@firebase/firestore 3.0.2-canary.3846fb049 → 3.0.2-canary.4e7aba48a

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 (52) hide show
  1. package/dist/firestore/compat/api/database.d.ts +0 -9
  2. package/dist/firestore/compat/index.console.d.ts +10 -1
  3. package/dist/firestore/lite/index.d.ts +1 -1
  4. package/dist/firestore/src/api.d.ts +1 -1
  5. package/dist/firestore/src/lite-api/reference.d.ts +1 -1
  6. package/dist/firestore/src/lite-api/types.d.ts +12 -1
  7. package/dist/index.d.ts +13 -2
  8. package/dist/index.esm2017.js +2583 -2583
  9. package/dist/index.esm2017.js.map +1 -1
  10. package/dist/index.esm5.js +2516 -2516
  11. package/dist/index.esm5.js.map +1 -1
  12. package/dist/index.node.cjs.esm2017.js +4 -4
  13. package/dist/index.node.cjs.esm2017.js.map +1 -1
  14. package/dist/index.node.cjs.js +3 -3
  15. package/dist/index.node.cjs.js.map +1 -1
  16. package/dist/index.rn.js +2799 -2799
  17. package/dist/index.rn.js.map +1 -1
  18. package/dist/internal.d.ts +14 -2
  19. package/dist/lite/firestore/compat/api/database.d.ts +0 -9
  20. package/dist/lite/firestore/compat/index.console.d.ts +10 -1
  21. package/dist/lite/firestore/lite/index.d.ts +1 -1
  22. package/dist/lite/firestore/src/api.d.ts +1 -1
  23. package/dist/lite/firestore/src/lite-api/reference.d.ts +1 -1
  24. package/dist/lite/firestore/src/lite-api/types.d.ts +12 -1
  25. package/dist/lite/index.browser.esm2017.js +2 -2
  26. package/dist/lite/index.browser.esm2017.js.map +1 -1
  27. package/dist/lite/index.browser.esm5.js +2 -2
  28. package/dist/lite/index.browser.esm5.js.map +1 -1
  29. package/dist/lite/index.d.ts +13 -2
  30. package/dist/lite/index.node.cjs.js +2 -2
  31. package/dist/lite/index.node.cjs.js.map +1 -1
  32. package/dist/lite/index.node.esm2017.js +2 -2
  33. package/dist/lite/index.node.esm2017.js.map +1 -1
  34. package/dist/lite/index.rn.esm2017.js +2 -2
  35. package/dist/lite/index.rn.esm2017.js.map +1 -1
  36. package/dist/lite/internal.d.ts +14 -2
  37. package/dist/lite/packages/firestore/compat/api/database.d.ts +0 -9
  38. package/dist/lite/packages/firestore/compat/index.console.d.ts +10 -1
  39. package/dist/lite/packages/firestore/lite/index.d.ts +1 -1
  40. package/dist/lite/packages/firestore/src/api.d.ts +1 -1
  41. package/dist/lite/packages/firestore/src/lite-api/reference.d.ts +1 -1
  42. package/dist/lite/packages/firestore/src/lite-api/types.d.ts +12 -1
  43. package/dist/lite/private.d.ts +14 -2
  44. package/dist/packages/firestore/compat/api/database.d.ts +0 -9
  45. package/dist/packages/firestore/compat/index.console.d.ts +10 -1
  46. package/dist/packages/firestore/dist/index.esm2017.d.ts +156 -156
  47. package/dist/packages/firestore/lite/index.d.ts +1 -1
  48. package/dist/packages/firestore/src/api.d.ts +1 -1
  49. package/dist/packages/firestore/src/lite-api/reference.d.ts +1 -1
  50. package/dist/packages/firestore/src/lite-api/types.d.ts +12 -1
  51. package/dist/private.d.ts +14 -2
  52. package/package.json +9 -9
@@ -30,15 +30,6 @@ export interface PersistenceProvider {
30
30
  enableMultiTabIndexedDbPersistence(firestore: Firestore): Promise<void>;
31
31
  clearIndexedDbPersistence(firestore: Firestore): Promise<void>;
32
32
  }
33
- /**
34
- * The persistence provider included with the memory-only SDK. This provider
35
- * errors for all attempts to access persistence.
36
- */
37
- export declare class MemoryPersistenceProvider implements PersistenceProvider {
38
- enableIndexedDbPersistence(firestore: Firestore, forceOwnership: boolean): Promise<void>;
39
- enableMultiTabIndexedDbPersistence(firestore: Firestore): Promise<void>;
40
- clearIndexedDbPersistence(firestore: Firestore): Promise<void>;
41
- }
42
33
  /**
43
34
  * The persistence provider included with the full Firestore SDK.
44
35
  */
@@ -16,7 +16,7 @@
16
16
  */
17
17
  import { FirebaseAuthInternalName } from '@firebase/auth-interop-types';
18
18
  import { Provider } from '@firebase/component';
19
- import { Firestore as FirestoreCompat } from './api/database';
19
+ import { Firestore as FirestoreCompat, PersistenceProvider } from './api/database';
20
20
  export { CollectionReference, DocumentReference, DocumentSnapshot, QuerySnapshot } from './api/database';
21
21
  export { Blob } from './api/blob';
22
22
  export { GeoPoint } from './api/geo_point';
@@ -27,6 +27,15 @@ export interface FirestoreDatabase {
27
27
  projectId: string;
28
28
  database?: string;
29
29
  }
30
+ /**
31
+ * The persistence provider included with the memory-only SDK. This provider
32
+ * errors for all attempts to access persistence.
33
+ */
34
+ export declare class MemoryPersistenceProvider implements PersistenceProvider {
35
+ enableIndexedDbPersistence(firestore: FirestoreCompat, forceOwnership: boolean): Promise<void>;
36
+ enableMultiTabIndexedDbPersistence(firestore: Firestore): Promise<void>;
37
+ clearIndexedDbPersistence(firestore: Firestore): Promise<void>;
38
+ }
30
39
  /** Firestore class that exposes the constructor expected by the Console. */
31
40
  export declare class Firestore extends FirestoreCompat {
32
41
  constructor(firestoreDatabase: FirestoreDatabase, authProvider: Provider<FirebaseAuthInternalName>);
@@ -11,7 +11,7 @@ export { Firestore as Firestore, EmulatorMockTokenOptions, initializeFirestore,
11
11
  export { DocumentData, UpdateData, WithFieldValue, PartialWithFieldValue, SetOptions, DocumentReference, Query, CollectionReference, collection, collectionGroup, doc, refEqual, queryEqual } from '../src/lite-api/reference';
12
12
  export { endAt, endBefore, startAt, startAfter, limit, limitToLast, orderBy, OrderByDirection, where, WhereFilterOp, query, QueryConstraint, QueryConstraintType } from '../src/lite-api/query';
13
13
  export { addDoc, deleteDoc, updateDoc, setDoc, getDoc, getDocs } from '../src/lite-api/reference_impl';
14
- export { Primitive, NestedUpdateFields, AddPrefixToKeys, UnionToIntersection } from '../src/lite-api/types';
14
+ export { Primitive, NestedUpdateFields, ChildUpdateFields, AddPrefixToKeys, UnionToIntersection } from '../src/lite-api/types';
15
15
  export { FieldPath, documentId } from '../src/lite-api/field_path';
16
16
  export { FieldValue } from '../src/lite-api/field_value';
17
17
  export { increment, arrayRemove, arrayUnion, serverTimestamp, deleteField } from '../src/lite-api/field_value_impl';
@@ -34,7 +34,7 @@ export { Timestamp } from './api/timestamp';
34
34
  export { CACHE_SIZE_UNLIMITED } from './api/database';
35
35
  export { FirestoreErrorCode, FirestoreError } from './util/error';
36
36
  export { AbstractUserDataWriter } from './lite-api/user_data_writer';
37
- export { Primitive, NestedUpdateFields, AddPrefixToKeys, UnionToIntersection } from '../src/lite-api/types';
37
+ export { Primitive, NestedUpdateFields, ChildUpdateFields, AddPrefixToKeys, UnionToIntersection } from '../src/lite-api/types';
38
38
  /**
39
39
  * Internal exports
40
40
  */
@@ -50,7 +50,7 @@ export declare type WithFieldValue<T> = T extends Primitive ? T : T extends {} ?
50
50
  * reference nested fields within the document. FieldValues can be passed in
51
51
  * as property values.
52
52
  */
53
- export declare type UpdateData<T> = T extends Primitive ? T : T extends Map<infer K, infer V> ? Map<UpdateData<K>, UpdateData<V>> : T extends {} ? {
53
+ export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
54
54
  [K in keyof T]?: UpdateData<T[K]> | FieldValue;
55
55
  } & NestedUpdateFields<T> : Partial<T>;
56
56
  /**
@@ -28,8 +28,19 @@ export declare type Primitive = string | number | boolean | undefined | null;
28
28
  * all possible keys that are all marked as optional
29
29
  */
30
30
  export declare type NestedUpdateFields<T extends Record<string, unknown>> = UnionToIntersection<{
31
- [K in keyof T & string]: T[K] extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<T[K]>> : never;
31
+ [K in keyof T & string]: ChildUpdateFields<K, T[K]>;
32
32
  }[keyof T & string]>;
33
+ /**
34
+ * Helper for calculating the nested fields for a given type T1. This is needed
35
+ * to distribute union types such as `undefined | {...}` (happens for optional
36
+ * props) or `{a: A} | {b: B}`.
37
+ *
38
+ * In this use case, `V` is used to distribute the union types of `T[K]` on
39
+ * `Record`, since `T[K]` is evaluated as an expression and not distributed.
40
+ *
41
+ * See https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types
42
+ */
43
+ export declare type ChildUpdateFields<K extends string, V> = V extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<V>> : never;
33
44
  /**
34
45
  * Returns a new map where every key is prefixed with the outer key appended
35
46
  * to a dot.
package/dist/index.d.ts CHANGED
@@ -101,6 +101,17 @@ export declare class Bytes {
101
101
  * {@link Firestore} instance.
102
102
  */
103
103
  export declare const CACHE_SIZE_UNLIMITED = -1;
104
+ /**
105
+ * Helper for calculating the nested fields for a given type T1. This is needed
106
+ * to distribute union types such as `undefined | {...}` (happens for optional
107
+ * props) or `{a: A} | {b: B}`.
108
+ *
109
+ * In this use case, `V` is used to distribute the union types of `T[K]` on
110
+ * `Record`, since `T[K]` is evaluated as an expression and not distributed.
111
+ *
112
+ * See https://www.typescriptlang.org/docs/handbook/advanced-types.html#distributive-conditional-types
113
+ */
114
+ export declare type ChildUpdateFields<K extends string, V> = V extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<V>> : never;
104
115
  /**
105
116
  * Clears the persistent storage. This includes pending writes and cached
106
117
  * documents.
@@ -1038,7 +1049,7 @@ export declare function namedQuery(firestore: Firestore, name: string): Promise<
1038
1049
  * all possible keys that are all marked as optional
1039
1050
  */
1040
1051
  export declare type NestedUpdateFields<T extends Record<string, unknown>> = UnionToIntersection<{
1041
- [K in keyof T & string]: T[K] extends Record<string, unknown> ? AddPrefixToKeys<K, UpdateData<T[K]>> : never;
1052
+ [K in keyof T & string]: ChildUpdateFields<K, T[K]>;
1042
1053
  }[keyof T & string]>;
1043
1054
  /**
1044
1055
  * Attaches a listener for `DocumentSnapshot` events. You may either pass
@@ -1859,7 +1870,7 @@ export declare interface Unsubscribe {
1859
1870
  * reference nested fields within the document. FieldValues can be passed in
1860
1871
  * as property values.
1861
1872
  */
1862
- export declare type UpdateData<T> = T extends Primitive ? T : T extends Map<infer K, infer V> ? Map<UpdateData<K>, UpdateData<V>> : T extends {} ? {
1873
+ export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
1863
1874
  [K in keyof T]?: UpdateData<T[K]> | FieldValue;
1864
1875
  } & NestedUpdateFields<T> : Partial<T>;
1865
1876
  /**