@dereekb/firebase 7.0.1 → 7.3.0

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/package.json +6 -6
  3. package/src/lib/client/firestore/driver.query.js +1 -0
  4. package/src/lib/client/firestore/driver.query.js.map +1 -1
  5. package/src/lib/common/firestore/accessor/accessor.d.ts +1 -0
  6. package/src/lib/common/firestore/accessor/accessor.js.map +1 -1
  7. package/src/lib/common/firestore/accessor/accessor.wrap.d.ts +23 -0
  8. package/src/lib/common/firestore/accessor/accessor.wrap.js +43 -0
  9. package/src/lib/common/firestore/accessor/accessor.wrap.js.map +1 -0
  10. package/src/lib/common/firestore/accessor/accessor.wrap.modify.d.ts +56 -0
  11. package/src/lib/common/firestore/accessor/accessor.wrap.modify.js +95 -0
  12. package/src/lib/common/firestore/accessor/accessor.wrap.modify.js.map +1 -0
  13. package/src/lib/common/firestore/accessor/document.d.ts +31 -11
  14. package/src/lib/common/firestore/accessor/document.js +16 -11
  15. package/src/lib/common/firestore/accessor/document.js.map +1 -1
  16. package/src/lib/common/firestore/accessor/document.utility.d.ts +4 -0
  17. package/src/lib/common/firestore/accessor/document.utility.js +3 -1
  18. package/src/lib/common/firestore/accessor/document.utility.js.map +1 -1
  19. package/src/lib/common/firestore/accessor/index.d.ts +2 -0
  20. package/src/lib/common/firestore/accessor/index.js +2 -0
  21. package/src/lib/common/firestore/accessor/index.js.map +1 -1
  22. package/src/lib/common/firestore/collection/collection.d.ts +8 -8
  23. package/src/lib/common/firestore/collection/collection.js +2 -8
  24. package/src/lib/common/firestore/collection/collection.js.map +1 -1
  25. package/src/lib/common/firestore/collection/collection.key.d.ts +53 -0
  26. package/src/lib/common/firestore/collection/collection.key.js +3 -0
  27. package/src/lib/common/firestore/collection/collection.key.js.map +1 -0
  28. package/src/lib/common/firestore/collection/index.d.ts +1 -0
  29. package/src/lib/common/firestore/collection/index.js +1 -0
  30. package/src/lib/common/firestore/collection/index.js.map +1 -1
  31. package/src/lib/common/firestore/query/constraint.d.ts +4 -0
  32. package/src/lib/common/firestore/query/constraint.js +8 -2
  33. package/src/lib/common/firestore/query/constraint.js.map +1 -1
  34. package/src/lib/common/firestore/snapshot/snapshot.d.ts +7 -4
  35. package/src/lib/common/firestore/snapshot/snapshot.field.d.ts +115 -5
  36. package/src/lib/common/firestore/snapshot/snapshot.field.js +147 -2
  37. package/src/lib/common/firestore/snapshot/snapshot.field.js.map +1 -1
  38. package/src/lib/common/firestore/snapshot/snapshot.js +2 -1
  39. package/src/lib/common/firestore/snapshot/snapshot.js.map +1 -1
  40. package/src/lib/common/firestore/types.d.ts +2 -2
  41. package/test/CHANGELOG.md +24 -0
  42. package/test/package.json +8 -8
  43. package/test/src/lib/common/firestore.mock.item.d.ts +66 -26
  44. package/test/src/lib/common/firestore.mock.item.fixture.d.ts +4 -2
  45. package/test/src/lib/common/firestore.mock.item.fixture.js +10 -4
  46. package/test/src/lib/common/firestore.mock.item.fixture.js.map +1 -1
  47. package/test/src/lib/common/firestore.mock.item.js +91 -29
  48. package/test/src/lib/common/firestore.mock.item.js.map +1 -1
  49. package/test/src/lib/common/firestore.mock.item.query.d.ts +1 -1
  50. package/test/src/lib/common/firestore.mock.item.query.js +3 -3
  51. package/test/src/lib/common/firestore.mock.item.service.d.ts +11 -6
  52. package/test/src/lib/common/firestore.mock.item.service.js +18 -6
  53. package/test/src/lib/common/firestore.mock.item.service.js.map +1 -1
  54. package/test/src/lib/common/test.driver.accessor.js +32 -7
  55. package/test/src/lib/common/test.driver.accessor.js.map +1 -1
  56. package/test/src/lib/common/test.driver.query.js +72 -3
  57. package/test/src/lib/common/test.driver.query.js.map +1 -1
@@ -17,18 +17,17 @@ export declare type FirestoreModelName = ModelTypeString;
17
17
  * Each collection name in the app should be unique, as usage of CollectionGroups would cause collections with the same name to be returned.
18
18
  */
19
19
  export declare type FirestoreCollectionName = string;
20
- /**
21
- * FirestoreCollectionName derived from a FirestoreModelName
22
- */
23
- export declare type FirestoreModelCollectionName<M extends FirestoreModelName> = `${Lowercase<M>}`;
24
20
  /**
25
21
  * A firestore model's identity
26
22
  */
27
- export declare type FirestoreModelIdentity<M extends FirestoreModelName = FirestoreModelName> = {
23
+ export declare type FirestoreModelIdentity<M extends FirestoreModelName = FirestoreModelName, C extends FirestoreCollectionName = FirestoreCollectionName> = {
28
24
  readonly model: M;
29
- readonly collection: FirestoreModelCollectionName<M>;
25
+ readonly collection: C;
30
26
  };
31
- export declare type FirestoreCollectionNames<I extends FirestoreModelIdentity> = I extends FirestoreModelIdentity<infer M> ? FirestoreModelCollectionName<M> : never;
27
+ /**
28
+ * A default collection name derived from the model name.
29
+ */
30
+ export declare type FirestoreModelDefaultCollectionName<M extends FirestoreModelName> = `${Lowercase<M>}`;
32
31
  export declare type FirestoreModelNames<I extends FirestoreModelIdentity> = I extends FirestoreModelIdentity<infer M> ? M : never;
33
32
  /**
34
33
  * Creates a FirestoreModelIdentity value.
@@ -36,7 +35,8 @@ export declare type FirestoreModelNames<I extends FirestoreModelIdentity> = I ex
36
35
  * @param modelName
37
36
  * @returns
38
37
  */
39
- export declare function firestoreModelIdentity<M extends FirestoreModelName>(modelName: M): FirestoreModelIdentity<M>;
38
+ export declare function firestoreModelIdentity<M extends FirestoreModelName>(modelName: M): FirestoreModelIdentity<M, FirestoreModelDefaultCollectionName<M>>;
39
+ export declare function firestoreModelIdentity<M extends FirestoreModelName, C extends FirestoreCollectionName = FirestoreCollectionName>(modelName: M, collectionName: C): FirestoreModelIdentity<M, C>;
40
40
  /**
41
41
  * Reference to a FirestoreCollectionName
42
42
  */
@@ -5,15 +5,9 @@ const document_1 = require("../accessor/document");
5
5
  const iterator_1 = require("../query/iterator");
6
6
  const query_1 = require("../query/query");
7
7
  const collection_query_1 = require("./collection.query");
8
- /**
9
- * Creates a FirestoreModelIdentity value.
10
- *
11
- * @param modelName
12
- * @returns
13
- */
14
- function firestoreModelIdentity(modelName) {
8
+ function firestoreModelIdentity(modelName, collectionName) {
15
9
  return {
16
- collection: modelName.toLowerCase(),
10
+ collection: collectionName !== null && collectionName !== void 0 ? collectionName : modelName.toLowerCase(),
17
11
  model: modelName
18
12
  };
19
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":";;;AACA,mDAc8B;AAC9B,gDAA0L;AAC1L,0CAA8E;AAE9E,yDAAsG;AAiCtG;;;;;GAKG;AACH,SAAgB,sBAAsB,CAA+B,SAAY;IAC/E,OAAO;QACL,UAAU,EAAE,SAAS,CAAC,WAAW,EAAqC;QACtE,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AALD,wDAKC;AA6GD;;GAEG;AACH,SAAgB,uBAAuB,CAAoC,WAA4C;IACrH,MAAM,MAAM,GAAG,WAAyE,CAAC;IAEzF,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;IACxE,MAAwD,CAAC,SAAS,GAAG,UAAU,CAAC;IAEjF,MAAM,kBAAkB,GAAiD,IAAA,4CAAiC,EAAC,MAAM,CAAC,CAAC;IACnH,MAAM,gBAAgB,GAAmD,IAAA,2CAAgC,EAAC,MAAM,CAAC,CAAC;IAClH,MAAM,YAAY,GAA6B,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,yBAAyB,GAAG,IAAA,oDAAyC,EAAC,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3H,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,kDAA+B,EAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnG,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,qCACE,MAAM;QACN,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,gBAAgB,IACb,yBAAyB,KAC5B,kBAAkB;QAClB,KAAK;QACL,aAAa,IACb;AACJ,CAAC;AAxBD,0DAwBC"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.ts"],"names":[],"mappings":";;;AACA,mDAc8B;AAC9B,gDAA0L;AAC1L,0CAA8E;AAE9E,yDAAsG;AAwCtG,SAAgB,sBAAsB,CAA4F,SAAY,EAAE,cAAkB;IAChK,OAAO;QACL,UAAU,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAK,SAAS,CAAC,WAAW,EAAQ;QAC5D,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC;AALD,wDAKC;AA6GD;;GAEG;AACH,SAAgB,uBAAuB,CAAoC,WAA4C;IACrH,MAAM,MAAM,GAAG,WAAyE,CAAC;IAEzF,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC;IACxE,MAAwD,CAAC,SAAS,GAAG,UAAU,CAAC;IAEjF,MAAM,kBAAkB,GAAiD,IAAA,4CAAiC,EAAC,MAAM,CAAC,CAAC;IACnH,MAAM,gBAAgB,GAAmD,IAAA,2CAAgC,EAAC,MAAM,CAAC,CAAC;IAClH,MAAM,YAAY,GAA6B,IAAA,6BAAqB,EAAC,MAAM,CAAC,CAAC;IAE7E,MAAM,yBAAyB,GAAG,IAAA,oDAAyC,EAAC,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC3H,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,kDAA+B,EAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;IACnG,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IAE/B,qCACE,MAAM;QACN,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,gBAAgB,IACb,yBAAyB,KAC5B,kBAAkB;QAClB,KAAK;QACL,aAAa,IACb;AACJ,CAAC;AAxBD,0DAwBC"}
@@ -0,0 +1,53 @@
1
+ import { GrantedRole } from '@dereekb/model';
2
+ import { FirebaseAuthUserId } from '../../auth';
3
+ import { FirestoreModelId, FirestoreModelKey } from './collection';
4
+ export declare type FirestoreModelKeyMap<T> = {
5
+ [key: FirestoreModelKey]: T;
6
+ };
7
+ /**
8
+ * Array of FirestoreModelKey values.
9
+ */
10
+ export declare type FirestoreModelKeyArray = FirestoreModelKey[];
11
+ /**
12
+ * A map with a single GrantedRole provided for a given model.
13
+ */
14
+ export declare type FirestoreModelKeyGrantedRoleMap<R extends GrantedRole> = {
15
+ [key: FirestoreModelKey]: R;
16
+ };
17
+ /**
18
+ * A map with multiple GrantedRoles provided for a given model.
19
+ */
20
+ export declare type FirestoreModelKeyGrantedRoleArrayMap<R extends GrantedRole> = {
21
+ [key: FirestoreModelKey]: R[];
22
+ };
23
+ export declare type FirestoreModelIdMap<T> = {
24
+ [key: FirestoreModelId]: T;
25
+ };
26
+ /**
27
+ * Array of FirestoreModelId values.
28
+ */
29
+ export declare type FirestoreModelIdArray = FirestoreModelId[];
30
+ /**
31
+ * A map with a single GrantedRole provided for a given model.
32
+ */
33
+ export declare type FirestoreModelIdGrantedRoleMap<R extends GrantedRole> = {
34
+ [key: FirestoreModelId]: R;
35
+ };
36
+ /**
37
+ * A map with multiple GrantedRoles provided for a given model.
38
+ */
39
+ export declare type FirestoreModelIdGrantedRoleArrayMap<R extends GrantedRole> = {
40
+ [key: FirestoreModelId]: R[];
41
+ };
42
+ /**
43
+ * A map with a single GrantedRole provided for a given user.
44
+ */
45
+ export declare type FirebaseAuthUserGrantedRoleMap<R extends GrantedRole> = {
46
+ [key: FirebaseAuthUserId]: R;
47
+ };
48
+ /**
49
+ * A map with multiple GrantedRoles provided for a given user.
50
+ */
51
+ export declare type FirebaseAuthUserRoleArrayMap<R extends GrantedRole> = {
52
+ [key: FirestoreModelKey]: R[];
53
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=collection.key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection.key.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/collection.key.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  export * from './collection';
2
+ export * from './collection.key';
2
3
  export * from './collection.group';
3
4
  export * from './subcollection';
4
5
  export * from './subcollection.single';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./collection"), exports);
5
+ tslib_1.__exportStar(require("./collection.key"), exports);
5
6
  tslib_1.__exportStar(require("./collection.group"), exports);
6
7
  tslib_1.__exportStar(require("./subcollection"), exports);
7
8
  tslib_1.__exportStar(require("./subcollection.single"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,6DAAmC;AACnC,0DAAgC;AAChC,iEAAuC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/collection/index.ts"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,2DAAiC;AACjC,6DAAmC;AACnC,0DAAgC;AAChC,iEAAuC"}
@@ -46,6 +46,9 @@ export interface WhereQueryConstraintData {
46
46
  }
47
47
  export declare function where<T>(fieldPath: keyof T, opStr: WhereFilterOp, value: unknown): FirestoreQueryConstraint<WhereQueryConstraintData>;
48
48
  export declare function where(fieldPath: string | FieldPath, opStr: WhereFilterOp, value: unknown): FirestoreQueryConstraint<WhereQueryConstraintData>;
49
+ export declare const FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = "where_doc_id";
50
+ export declare type WhereDocumentIdQueryConstraintData = Omit<WhereQueryConstraintData, 'fieldPath'>;
51
+ export declare function whereDocumentId(opStr: WhereFilterOp, value: unknown): FirestoreQueryConstraint<WhereDocumentIdQueryConstraintData>;
49
52
  export declare const FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = "order_by";
50
53
  export declare type OrderByDirection = SortingOrder;
51
54
  export interface OrderByQueryConstraintData {
@@ -111,6 +114,7 @@ export declare type FullFirestoreQueryConstraintDataMapping = {
111
114
  [FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE]: LimitQueryConstraintData;
112
115
  [FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE]: LimitToLastQueryConstraintData;
113
116
  [FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE]: WhereQueryConstraintData;
117
+ [FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE]: WhereDocumentIdQueryConstraintData;
114
118
  [FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE]: OffsetQueryConstraintData;
115
119
  [FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE]: OrderByQueryConstraintData;
116
120
  [FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE]: OrderByDocumentIdQueryConstraintData;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.separateConstraints = exports.replaceConstraints = exports.filterConstraintsOfType = exports.addOrReplaceLimitInConstraints = exports.endBefore = exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = exports.endAt = exports.endAtValue = exports.FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = exports.startAfter = exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = exports.startAtValue = exports.FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.startAt = exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = exports.orderByDocumentId = exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = exports.orderBy = exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = exports.where = exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = exports.offset = exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = exports.limitToLast = exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = exports.limit = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = exports.firestoreQueryConstraintFactory = exports.firestoreQueryConstraint = void 0;
3
+ exports.separateConstraints = exports.replaceConstraints = exports.filterConstraintsOfType = exports.addOrReplaceLimitInConstraints = exports.endBefore = exports.FIRESTORE_END_BEFORE_QUERY_CONSTRAINT_TYPE = exports.endAt = exports.endAtValue = exports.FIRESTORE_END_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.FIRESTORE_END_AT_QUERY_CONSTRAINT_TYPE = exports.startAfter = exports.FIRESTORE_START_AFTER_QUERY_CONSTRAINT_TYPE = exports.startAtValue = exports.FIRESTORE_START_AT_VALUE_QUERY_CONSTRAINT_TYPE = exports.startAt = exports.FIRESTORE_START_AT_QUERY_CONSTRAINT_TYPE = exports.orderByDocumentId = exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = exports.orderBy = exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = exports.whereDocumentId = exports.FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = exports.where = exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE = exports.offset = exports.FIRESTORE_OFFSET_QUERY_CONSTRAINT_TYPE = exports.limitToLast = exports.FIRESTORE_LIMIT_TO_LAST_QUERY_CONSTRAINT_TYPE = exports.limit = exports.FIRESTORE_LIMIT_QUERY_CONSTRAINT_TYPE = exports.firestoreQueryConstraintFactory = exports.firestoreQueryConstraint = void 0;
4
4
  const util_1 = require("@dereekb/util");
5
5
  function firestoreQueryConstraint(type, data) {
6
6
  return {
@@ -48,13 +48,19 @@ function where(fieldPath, opStr, value) {
48
48
  return firestoreQueryConstraint(exports.FIRESTORE_WHERE_QUERY_CONSTRAINT_TYPE, { fieldPath: fieldPath, opStr, value });
49
49
  }
50
50
  exports.where = where;
51
+ // MARK: WhereDocumentId
52
+ exports.FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = 'where_doc_id';
53
+ function whereDocumentId(opStr, value) {
54
+ return firestoreQueryConstraint(exports.FIRESTORE_WHERE_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, { opStr, value });
55
+ }
56
+ exports.whereDocumentId = whereDocumentId;
51
57
  // MARK: OrderBy
52
58
  exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE = 'order_by';
53
59
  function orderBy(fieldPath, directionStr) {
54
60
  return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_QUERY_CONSTRAINT_TYPE, { fieldPath: fieldPath, directionStr });
55
61
  }
56
62
  exports.orderBy = orderBy;
57
- // MARK: OrderBy
63
+ // MARK: OrderByDocumentId
58
64
  exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE = 'order_by_doc_id';
59
65
  function orderByDocumentId(directionStr) {
60
66
  return firestoreQueryConstraint(exports.FIRESTORE_ORDER_BY_DOCUMENT_ID_QUERY_CONSTRAINT_TYPE, { directionStr });
@@ -1 +1 @@
1
- {"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/query/constraint.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { MaybeMap, ModelFieldConversions, ApplyMapFunctionWithOptions, ModelFieldConversionsConfig, TypedMappedModelData } from '@dereekb/util';
1
+ import { MaybeMap, ModelFieldConversions, ApplyMapFunctionWithOptions, ModelFieldConversionsConfig, TypedMappedModelData, ArrayOrValue, PartialModelModifier } from '@dereekb/util';
2
2
  import { SnapshotOptions, SetOptions, DocumentSnapshot, FirestoreDataConverter } from '../types';
3
3
  /**
4
4
  * The default "empty" value in the Firestore.
@@ -46,12 +46,15 @@ export declare type ExpectedFirestoreModelData<T extends object, R extends objec
46
46
  */
47
47
  export declare type FirestoreModelData<T extends object, R extends object = object> = Partial<ExpectedFirestoreModelData<T, MaybeMap<R>>>;
48
48
  export declare type SnapshotConverterConfigWithFields<T extends object, O extends object = FirestoreModelData<T>> = {
49
- fields: ModelFieldConversionsConfig<T, O>;
49
+ readonly fields: ModelFieldConversionsConfig<T, O>;
50
50
  };
51
51
  export declare type SnapshotConverterConfigWithConversions<T extends object, O extends object = FirestoreModelData<T>> = {
52
- fieldConversions: ModelFieldConversions<T, O>;
52
+ readonly fieldConversions: ModelFieldConversions<T, O>;
53
+ };
54
+ export declare type SnapshotConverterModifier<T extends object, O extends object = FirestoreModelData<T>> = PartialModelModifier<T, O>;
55
+ export declare type SnapshotConverterConfig<T extends object, O extends object = FirestoreModelData<T>> = (SnapshotConverterConfigWithFields<T, O> | SnapshotConverterConfigWithConversions<T, O>) & {
56
+ readonly modifiers?: ArrayOrValue<SnapshotConverterModifier<T, O>>;
53
57
  };
54
- export declare type SnapshotConverterConfig<T extends object, O extends object = FirestoreModelData<T>> = SnapshotConverterConfigWithFields<T, O> | SnapshotConverterConfigWithConversions<T, O>;
55
58
  export interface SnapshotConverterFunctions<T extends object, O extends object = FirestoreModelData<T>> extends FirestoreDataConverter<T, O> {
56
59
  from: SnapshotConverterFromFunction<T, O>;
57
60
  to: SnapshotConverterToFunction<T, O>;
@@ -1,21 +1,25 @@
1
- import { ModelFieldMapFunctionsConfig, GetterOrValue, Maybe, ModelFieldMapConvertFunction } from '@dereekb/util';
1
+ import { ModelFieldMapFunctionsConfig, GetterOrValue, Maybe, ModelFieldMapConvertFunction, PrimativeKey, ReadKeyFunction, ModelFieldMapFunctionsWithDefaultsConfig, FindUniqueFunction, FindUniqueStringsTransformConfig, MapFunction, FilterKeyValueTuplesInput } from '@dereekb/util';
2
2
  export interface BaseFirestoreFieldConfig<V, D = unknown> {
3
3
  fromData: ModelFieldMapConvertFunction<D, V>;
4
4
  toData: ModelFieldMapConvertFunction<V, D>;
5
5
  defaultBeforeSave?: GetterOrValue<D | null>;
6
6
  }
7
- export interface FirestoreFieldConfigWithDefault<V, D = unknown> extends BaseFirestoreFieldConfig<V, D> {
7
+ export interface FirestoreFieldDefault<V> {
8
8
  default: GetterOrValue<V>;
9
9
  }
10
- export interface FirestoreFieldConfigWithDefaultData<V, D = unknown> extends BaseFirestoreFieldConfig<V, D> {
10
+ export interface FirestoreFieldDefaultData<D = unknown> {
11
11
  defaultData: GetterOrValue<D>;
12
12
  }
13
+ export interface FirestoreFieldConfigWithDefault<V, D = unknown> extends BaseFirestoreFieldConfig<V, D>, FirestoreFieldDefault<V> {
14
+ }
15
+ export interface FirestoreFieldConfigWithDefaultData<V, D = unknown> extends BaseFirestoreFieldConfig<V, D>, FirestoreFieldDefaultData<D> {
16
+ }
13
17
  export declare type FirestoreFieldConfig<V, D = unknown> = FirestoreFieldConfigWithDefault<V, D> | FirestoreFieldConfigWithDefaultData<V, D>;
14
18
  /**
15
19
  * All firebase ModelFieldMapFunctionsConfig are configured to handle the read field value as null/undefined. This implies that
16
20
  * by design, the firebase database documents do not need to be fully intact for the system to handle them properly.
17
21
  */
18
- export declare type FirestoreModelFieldMapFunctionsConfig<V, D> = ModelFieldMapFunctionsConfig<V, Maybe<D>>;
22
+ export declare type FirestoreModelFieldMapFunctionsConfig<V, D> = ModelFieldMapFunctionsWithDefaultsConfig<V, Maybe<D>>;
19
23
  export declare function firestoreField<V, D = unknown>(config: FirestoreFieldConfig<V, D>): FirestoreModelFieldMapFunctionsConfig<V, D>;
20
24
  export declare const FIRESTORE_PASSTHROUGH_FIELD: FirestoreModelFieldMapFunctionsConfig<unknown, unknown>;
21
25
  export declare function firestorePassThroughField<T>(): ModelFieldMapFunctionsConfig<T, T>;
@@ -25,7 +29,7 @@ export declare type MapConfiguredFirestoreFieldConfig<V, D = unknown> = MapConfi
25
29
  export declare type DefaultMapConfiguredFirestoreFieldConfig<V, D = unknown> = Omit<FirestoreFieldConfigWithDefault<V, D>, 'fromData' | 'toData' | 'default'> & Partial<Pick<FirestoreFieldConfigWithDefault<V, D>, 'default'>>;
26
30
  export declare type OptionalMapConfiguredFirestoreFieldConfig<V, D = unknown> = Omit<BaseFirestoreFieldConfig<V, D>, 'fromData' | 'toData' | 'defaultBeforeSave'>;
27
31
  export declare type FirestoreStringConfig = DefaultMapConfiguredFirestoreFieldConfig<string, string>;
28
- export declare function firestoreString(config: FirestoreStringConfig): FirestoreModelFieldMapFunctionsConfig<string, string>;
32
+ export declare function firestoreString(config?: FirestoreStringConfig): FirestoreModelFieldMapFunctionsConfig<string, string>;
29
33
  export declare function optionalFirestoreString(): ModelFieldMapFunctionsConfig<Maybe<string>, Maybe<string>>;
30
34
  export declare function firestoreUID(): FirestoreModelFieldMapFunctionsConfig<string, string>;
31
35
  export declare function optionalFirestoreUID(): ModelFieldMapFunctionsConfig<Maybe<string>, Maybe<string>>;
@@ -40,3 +44,109 @@ export declare function optionalFirestoreBoolean(): ModelFieldMapFunctionsConfig
40
44
  export declare type FirestoreNumberFieldConfig = MapConfiguredFirestoreFieldConfigWithDefault<number, number>;
41
45
  export declare function firestoreNumber(config: FirestoreNumberFieldConfig): FirestoreModelFieldMapFunctionsConfig<number, number>;
42
46
  export declare function optionalFirestoreNumber(): ModelFieldMapFunctionsConfig<Maybe<number>, Maybe<number>>;
47
+ export declare type FirestoreArrayFieldConfig<T> = DefaultMapConfiguredFirestoreFieldConfig<T[], T[]> & Partial<FirestoreFieldDefault<T[]>>;
48
+ export declare function firestoreArray<T>(config: FirestoreArrayFieldConfig<T>): FirestoreModelFieldMapFunctionsConfig<T[], T[]>;
49
+ export declare function optionalFirestoreArray<T>(): ModelFieldMapFunctionsConfig<Maybe<T[]>, Maybe<T[]>>;
50
+ export declare type FirestoreUniqueArrayFieldConfig<T> = FirestoreArrayFieldConfig<T> & {
51
+ readonly findUnique: FindUniqueFunction<T>;
52
+ };
53
+ export declare function firestoreUniqueArray<T>(config: FirestoreUniqueArrayFieldConfig<T>): FirestoreModelFieldMapFunctionsConfig<T[], T[]>;
54
+ export declare type FirestoreUniqueKeyedArrayFieldConfig<T, K extends PrimativeKey = PrimativeKey> = FirestoreArrayFieldConfig<T> & {
55
+ readonly readKey: ReadKeyFunction<T, K>;
56
+ };
57
+ export declare function firestoreUniqueKeyedArray<T, K extends PrimativeKey = PrimativeKey>(config: FirestoreUniqueKeyedArrayFieldConfig<T, K>): FirestoreModelFieldMapFunctionsConfig<T[], T[]>;
58
+ export declare type FirestoreUniqueStringArrayFieldConfig = Omit<FirestoreUniqueArrayFieldConfig<string>, 'findUnique'> & FindUniqueStringsTransformConfig;
59
+ export declare function firestoreUniqueStringArray(config: FirestoreUniqueStringArrayFieldConfig): FirestoreModelFieldMapFunctionsConfig<string[], string[]>;
60
+ /**
61
+ * FirestoreField configuration for an array of ModelKey values.
62
+ *
63
+ * @returns
64
+ */
65
+ export declare function firestoreModelKeyArray(): FirestoreModelFieldMapFunctionsConfig<string[], string[]>;
66
+ /**
67
+ * FirestoreField configuration for an array of ModelId values.
68
+ *
69
+ * @returns
70
+ */
71
+ export declare const firestoreModelIdArray: typeof firestoreModelKeyArray;
72
+ export declare type FirestoreEncodedArrayFieldConfig<T, E extends string | number> = DefaultMapConfiguredFirestoreFieldConfig<T[], E[]> & {
73
+ readonly convert: {
74
+ fromData: MapFunction<E, T>;
75
+ toData: MapFunction<T, E>;
76
+ };
77
+ };
78
+ /**
79
+ * A Firestore array that encodes values to either string or number values using another FirestoreModelField config for encoding/decoding.
80
+ *
81
+ * @param config
82
+ * @returns
83
+ */
84
+ export declare function firestoreEncodedArray<T, E extends string | number>(config: FirestoreEncodedArrayFieldConfig<T, E>): FirestoreModelFieldMapFunctionsConfig<T[], E[]>;
85
+ /**
86
+ * Firestore/JSON maps only have string keys.
87
+ */
88
+ export declare type FirestoreMapFieldType<T, K extends string = string> = Record<K, T>;
89
+ export declare type FirestoreMapFieldConfig<T, K extends string = string> = DefaultMapConfiguredFirestoreFieldConfig<FirestoreMapFieldType<T, K>, FirestoreMapFieldType<T, K>> & Partial<FirestoreFieldDefault<FirestoreMapFieldType<T, K>>> & {
90
+ /**
91
+ * Optional filter to apply when saving to data.
92
+ *
93
+ * By default will filter all null/undefined values from maps.
94
+ */
95
+ mapFilter?: FilterKeyValueTuplesInput<FirestoreMapFieldType<K>>;
96
+ /**
97
+ * Optional map function to apply to each input value before
98
+ */
99
+ mapFieldValues?: MapFunction<Maybe<T>, Maybe<T>>;
100
+ };
101
+ /**
102
+ * FirestoreField configuration for a map-type object.
103
+ *
104
+ * By default it will remove all null/undefined keys from objects before saving.
105
+ *
106
+ * @param config
107
+ * @returns
108
+ */
109
+ export declare function firestoreMap<T, K extends string = string>(config?: FirestoreMapFieldConfig<T, K>): FirestoreModelFieldMapFunctionsConfig<FirestoreMapFieldType<T, K>, FirestoreMapFieldType<T, K>>;
110
+ /**
111
+ * FirestoreField configuration for a map of granted roles, keyed by model keys.
112
+ *
113
+ * Filters out models with no/null roles by default.
114
+ */
115
+ export declare function firestoreModelKeyGrantedRoleMap(): FirestoreModelFieldMapFunctionsConfig<FirestoreMapFieldType<string, string>, FirestoreMapFieldType<string, string>>;
116
+ /**
117
+ * FirestoreField configuration for a map of granted roles, keyed by model ids.
118
+ *
119
+ * Filters out models with no/null roles by default.
120
+ */
121
+ export declare const firestoreModelIdGrantedRoleMap: typeof firestoreModelKeyGrantedRoleMap;
122
+ /**
123
+ * FirestoreField configuration for a map-type object with array values.
124
+ *
125
+ * @param config
126
+ * @returns
127
+ */
128
+ export declare type FirestoreArrayMapFieldType<T, K extends string = string> = FirestoreMapFieldType<T[], K>;
129
+ export declare type FirestoreArrayMapFieldConfig<T, K extends string = string> = FirestoreMapFieldConfig<T[], K>;
130
+ export declare function firestoreArrayMap<T, K extends string = string>(config?: FirestoreArrayMapFieldConfig<T, K>): FirestoreModelFieldMapFunctionsConfig<FirestoreMapFieldType<T[], K>, FirestoreMapFieldType<T[], K>>;
131
+ /**
132
+ * FirestoreField configuration for a map of granted roles, keyed by models keys.
133
+ *
134
+ * Filters empty roles/arrays by default.
135
+ */
136
+ export declare function firestoreModelKeyGrantedRoleArrayMap(): FirestoreModelFieldMapFunctionsConfig<FirestoreMapFieldType<string[], string>, FirestoreMapFieldType<string[], string>>;
137
+ /**
138
+ * FirestoreField configuration for a map of granted roles, keyed by models ids.
139
+ *
140
+ * Filters empty roles/arrays by default.
141
+ */
142
+ export declare const firestoreModelIdGrantedRoleArrayMap: typeof firestoreModelKeyGrantedRoleArrayMap;
143
+ export declare type FirestoreSetFieldConfig<T extends string | number> = DefaultMapConfiguredFirestoreFieldConfig<Set<T>, T[]>;
144
+ /**
145
+ * Do not use.
146
+ *
147
+ * @deprecated should retrieve/store the data as a POJO array and not use class types like this.
148
+ *
149
+ * @param config
150
+ * @returns
151
+ */
152
+ export declare function firestoreSet<T extends string | number>(config: FirestoreSetFieldConfig<T>): FirestoreModelFieldMapFunctionsConfig<Set<T>, T[]>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.optionalFirestoreNumber = exports.firestoreNumber = exports.optionalFirestoreBoolean = exports.firestoreBoolean = exports.optionalFirestoreDate = exports.firestoreDate = exports.optionalFirestoreUID = exports.firestoreUID = exports.optionalFirestoreString = exports.firestoreString = exports.firestorePassThroughField = exports.FIRESTORE_PASSTHROUGH_FIELD = exports.firestoreField = void 0;
3
+ exports.firestoreSet = exports.firestoreModelIdGrantedRoleArrayMap = exports.firestoreModelKeyGrantedRoleArrayMap = exports.firestoreArrayMap = exports.firestoreModelIdGrantedRoleMap = exports.firestoreModelKeyGrantedRoleMap = exports.firestoreMap = exports.firestoreEncodedArray = exports.firestoreModelIdArray = exports.firestoreModelKeyArray = exports.firestoreUniqueStringArray = exports.firestoreUniqueKeyedArray = exports.firestoreUniqueArray = exports.optionalFirestoreArray = exports.firestoreArray = exports.optionalFirestoreNumber = exports.firestoreNumber = exports.optionalFirestoreBoolean = exports.firestoreBoolean = exports.optionalFirestoreDate = exports.firestoreDate = exports.optionalFirestoreUID = exports.firestoreUID = exports.optionalFirestoreString = exports.firestoreString = exports.firestorePassThroughField = exports.FIRESTORE_PASSTHROUGH_FIELD = exports.firestoreField = void 0;
4
4
  const date_1 = require("@dereekb/date");
5
5
  const util_1 = require("@dereekb/util");
6
6
  const snapshot_1 = require("./snapshot");
@@ -17,7 +17,7 @@ function firestoreField(config) {
17
17
  convert: config.fromData
18
18
  },
19
19
  to: {
20
- default: (_a = config.defaultBeforeSave) !== null && _a !== void 0 ? _a : snapshot_1.FIRESTORE_EMPTY_VALUE,
20
+ default: ((_a = config.defaultBeforeSave) !== null && _a !== void 0 ? _a : snapshot_1.FIRESTORE_EMPTY_VALUE),
21
21
  convert: config.toData
22
22
  }
23
23
  };
@@ -92,4 +92,149 @@ function optionalFirestoreNumber() {
92
92
  return firestorePassThroughField();
93
93
  }
94
94
  exports.optionalFirestoreNumber = optionalFirestoreNumber;
95
+ function firestoreArray(config) {
96
+ var _a;
97
+ return firestoreField({
98
+ default: (_a = config.default) !== null && _a !== void 0 ? _a : [],
99
+ fromData: util_1.passThrough,
100
+ toData: util_1.passThrough
101
+ });
102
+ }
103
+ exports.firestoreArray = firestoreArray;
104
+ function optionalFirestoreArray() {
105
+ return firestorePassThroughField();
106
+ }
107
+ exports.optionalFirestoreArray = optionalFirestoreArray;
108
+ function firestoreUniqueArray(config) {
109
+ var _a;
110
+ const { findUnique } = config;
111
+ return firestoreField({
112
+ default: (_a = config.default) !== null && _a !== void 0 ? _a : [],
113
+ fromData: findUnique,
114
+ toData: findUnique
115
+ });
116
+ }
117
+ exports.firestoreUniqueArray = firestoreUniqueArray;
118
+ function firestoreUniqueKeyedArray(config) {
119
+ return firestoreUniqueArray(Object.assign(Object.assign({}, config), { findUnique: (0, util_1.makeFindUniqueFunction)(config.readKey) }));
120
+ }
121
+ exports.firestoreUniqueKeyedArray = firestoreUniqueKeyedArray;
122
+ function firestoreUniqueStringArray(config) {
123
+ const findUnique = (0, util_1.findUniqueTransform)(config);
124
+ return firestoreUniqueArray(Object.assign(Object.assign({}, config), { findUnique }));
125
+ }
126
+ exports.firestoreUniqueStringArray = firestoreUniqueStringArray;
127
+ /**
128
+ * FirestoreField configuration for an array of ModelKey values.
129
+ *
130
+ * @returns
131
+ */
132
+ function firestoreModelKeyArray() {
133
+ // firestore model key paths are case-sensitive, so don't transform them.
134
+ return firestoreUniqueStringArray({});
135
+ }
136
+ exports.firestoreModelKeyArray = firestoreModelKeyArray;
137
+ /**
138
+ * FirestoreField configuration for an array of ModelId values.
139
+ *
140
+ * @returns
141
+ */
142
+ exports.firestoreModelIdArray = firestoreModelKeyArray;
143
+ /**
144
+ * A Firestore array that encodes values to either string or number values using another FirestoreModelField config for encoding/decoding.
145
+ *
146
+ * @param config
147
+ * @returns
148
+ */
149
+ function firestoreEncodedArray(config) {
150
+ var _a;
151
+ const { fromData, toData } = config.convert;
152
+ return firestoreField({
153
+ default: (_a = config.default) !== null && _a !== void 0 ? _a : [],
154
+ fromData: (input) => input.map(fromData),
155
+ toData: (input) => (0, util_1.filterMaybeValues)(input.map(toData))
156
+ });
157
+ }
158
+ exports.firestoreEncodedArray = firestoreEncodedArray;
159
+ /**
160
+ * FirestoreField configuration for a map-type object.
161
+ *
162
+ * By default it will remove all null/undefined keys from objects before saving.
163
+ *
164
+ * @param config
165
+ * @returns
166
+ */
167
+ function firestoreMap(config = {}) {
168
+ var _a;
169
+ const { mapFilter: filter = util_1.KeyValueTypleValueFilter.NULL, mapFieldValues } = config;
170
+ const filterFinalMapValuesFn = (0, util_1.filterFromPOJOFunction)({
171
+ copy: false,
172
+ filter
173
+ });
174
+ const makeCopy = (mapFieldValues ? (0, util_1.mapObjectMapFunction)(mapFieldValues) : util_1.copyObject);
175
+ return firestoreField({
176
+ default: (_a = config.default) !== null && _a !== void 0 ? _a : {},
177
+ fromData: util_1.passThrough,
178
+ toData: (model) => {
179
+ const copy = makeCopy(model);
180
+ return filterFinalMapValuesFn(copy);
181
+ }
182
+ });
183
+ }
184
+ exports.firestoreMap = firestoreMap;
185
+ /**
186
+ * FirestoreField configuration for a map of granted roles, keyed by model keys.
187
+ *
188
+ * Filters out models with no/null roles by default.
189
+ */
190
+ function firestoreModelKeyGrantedRoleMap() {
191
+ return firestoreMap({
192
+ mapFilter: util_1.KeyValueTypleValueFilter.EMPTY
193
+ });
194
+ }
195
+ exports.firestoreModelKeyGrantedRoleMap = firestoreModelKeyGrantedRoleMap;
196
+ /**
197
+ * FirestoreField configuration for a map of granted roles, keyed by model ids.
198
+ *
199
+ * Filters out models with no/null roles by default.
200
+ */
201
+ exports.firestoreModelIdGrantedRoleMap = firestoreModelKeyGrantedRoleMap;
202
+ function firestoreArrayMap(config = {}) {
203
+ return firestoreMap(Object.assign({ mapFilter: util_1.KeyValueTypleValueFilter.EMPTY, mapFieldValues: util_1.filterMaybeValues }, config));
204
+ }
205
+ exports.firestoreArrayMap = firestoreArrayMap;
206
+ /**
207
+ * FirestoreField configuration for a map of granted roles, keyed by models keys.
208
+ *
209
+ * Filters empty roles/arrays by default.
210
+ */
211
+ function firestoreModelKeyGrantedRoleArrayMap() {
212
+ return firestoreArrayMap({
213
+ mapFieldValues: util_1.filterEmptyValues
214
+ });
215
+ }
216
+ exports.firestoreModelKeyGrantedRoleArrayMap = firestoreModelKeyGrantedRoleArrayMap;
217
+ /**
218
+ * FirestoreField configuration for a map of granted roles, keyed by models ids.
219
+ *
220
+ * Filters empty roles/arrays by default.
221
+ */
222
+ exports.firestoreModelIdGrantedRoleArrayMap = firestoreModelKeyGrantedRoleArrayMap;
223
+ /**
224
+ * Do not use.
225
+ *
226
+ * @deprecated should retrieve/store the data as a POJO array and not use class types like this.
227
+ *
228
+ * @param config
229
+ * @returns
230
+ */
231
+ function firestoreSet(config) {
232
+ var _a;
233
+ return firestoreField({
234
+ default: (_a = config.default) !== null && _a !== void 0 ? _a : (() => new Set()),
235
+ fromData: (data) => new Set(data),
236
+ toData: (set) => Array.from(set)
237
+ });
238
+ }
239
+ exports.firestoreSet = firestoreSet;
95
240
  //# sourceMappingURL=snapshot.field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.field.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.field.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.field.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ exports.FIRESTORE_EMPTY_VALUE = null;
11
11
  function snapshotConverterFunctions(config) {
12
12
  var _a;
13
13
  const conversions = (_a = config.fieldConversions) !== null && _a !== void 0 ? _a : (0, util_1.modelFieldConversions)(config.fields);
14
- const { from: fromData, to: toData } = (0, util_1.makeModelMapFunctions)(conversions);
14
+ const mapFunctions = (0, util_1.makeModelMapFunctions)(conversions);
15
+ const { from: fromData, to: toData } = config.modifiers ? (0, util_1.modifyModelMapFunctions)({ mapFunctions, modifiers: config.modifiers }) : mapFunctions;
15
16
  const from = (input, target) => {
16
17
  const data = input.data();
17
18
  return fromData(data, target);
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.ts"],"names":[],"mappings":";;;AAAA,wCAA6N;AAC7N,oCAAsM;AAEtM,aAAa;AACb;;GAEG;AACU,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAiE1C,SAAgB,0BAA0B,CAA6D,MAAqC;;IAC1I,MAAM,WAAW,GAAgC,MAAC,MAAuD,CAAC,gBAAgB,mCAAI,IAAA,4BAAqB,EAAQ,MAAkD,CAAC,MAAM,CAAC,CAAC;IACtN,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAA,4BAAqB,EAAO,WAAW,CAAC,CAAC;IAEhF,MAAM,IAAI,GAAwC,CAAC,KAAuB,EAAE,MAA0B,EAAE,EAAE;QACxG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,IAAS,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,EAAE,GAAsC,CAAC,KAAQ,EAAE,MAA0B,EAAE,OAA2B,EAAE,EAAE;QAClH,IAAI,SAA2C,CAAC;QAEhD,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAI,OAAiC,CAAC,WAAW,CAAC;YAEnE,IAAK,OAA2B,CAAC,KAAK,EAAE;gBACtC,SAAS,GAAG;oBACV,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH;YAED,IAAI,WAAW,EAAE;gBACf,SAAS,mCACJ,SAAS,KACZ,MAAM,EAAE,IAAA,4BAAoB,EAAC,WAAW,CAAgB,GACzD,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,EAAE;QACF,aAAa,EAAE,CAAC,QAA6B,EAAE,OAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/G,WAAW,EAAE,CAAC,WAAyD,EAAE,OAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,WAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3I,CAAC;AACJ,CAAC;AAtCD,gEAsCC"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../../../../../packages/firebase/src/lib/common/firestore/snapshot/snapshot.ts"],"names":[],"mappings":";;;AAAA,wCAA0R;AAC1R,oCAAsM;AAEtM,aAAa;AACb;;GAEG;AACU,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAqE1C,SAAgB,0BAA0B,CAA6D,MAAqC;;IAC1I,MAAM,WAAW,GAAgC,MAAC,MAAuD,CAAC,gBAAgB,mCAAI,IAAA,4BAAqB,EAAQ,MAAkD,CAAC,MAAM,CAAC,CAAC;IACtN,MAAM,YAAY,GAAG,IAAA,4BAAqB,EAAO,WAAW,CAAC,CAAC;IAC9D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,8BAAuB,EAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAEhJ,MAAM,IAAI,GAAwC,CAAC,KAAuB,EAAE,MAA0B,EAAE,EAAE;QACxG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC,IAAS,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,MAAM,EAAE,GAAsC,CAAC,KAAQ,EAAE,MAA0B,EAAE,OAA2B,EAAE,EAAE;QAClH,IAAI,SAA2C,CAAC;QAEhD,IAAI,OAAO,EAAE;YACX,MAAM,WAAW,GAAI,OAAiC,CAAC,WAAW,CAAC;YAEnE,IAAK,OAA2B,CAAC,KAAK,EAAE;gBACtC,SAAS,GAAG;oBACV,WAAW,EAAE,IAAI;iBAClB,CAAC;aACH;YAED,IAAI,WAAW,EAAE;gBACf,SAAS,mCACJ,SAAS,KACZ,MAAM,EAAE,IAAA,4BAAoB,EAAC,WAAW,CAAgB,GACzD,CAAC;aACH;SACF;QAED,OAAO,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,EAAE;QACF,aAAa,EAAE,CAAC,QAA6B,EAAE,OAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/G,WAAW,EAAE,CAAC,WAAyD,EAAE,OAAoB,EAAE,EAAE,CAAC,EAAE,CAAC,WAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3I,CAAC;AACJ,CAAC;AAvCD,gEAuCC"}
@@ -62,10 +62,10 @@ export interface DocumentSnapshot<T = DocumentData> {
62
62
  }
63
63
  export declare type SetOptions = SetOptionsMerge | SetOptionsMergeFields;
64
64
  export interface SetOptionsMerge {
65
- readonly merge?: boolean | undefined;
65
+ readonly merge: boolean | undefined;
66
66
  }
67
67
  export interface SetOptionsMergeFields {
68
- readonly mergeFields?: Array<string | FieldPath>;
68
+ readonly mergeFields: Array<string | FieldPath>;
69
69
  }
70
70
  export interface SnapshotOptions {
71
71
  readonly serverTimestamps?: 'estimate' | 'previous' | 'none';