@firebase/firestore 3.4.4-canary.2dd99ae2d → 3.4.4-canary.434d87ee2

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 (112) hide show
  1. package/dist/firestore/src/api/snapshot.d.ts +1 -2
  2. package/dist/firestore/src/core/target.d.ts +8 -4
  3. package/dist/firestore/src/lite-api/query.d.ts +2 -2
  4. package/dist/firestore/src/local/index_manager.d.ts +52 -0
  5. package/dist/firestore/src/local/indexeddb_index_manager.d.ts +21 -2
  6. package/dist/firestore/src/local/indexeddb_persistence.d.ts +4 -4
  7. package/dist/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  8. package/dist/firestore/src/local/indexeddb_schema.d.ts +149 -7
  9. package/dist/firestore/src/local/local_serializer.d.ts +7 -2
  10. package/dist/firestore/src/local/memory_index_manager.d.ts +11 -0
  11. package/dist/firestore/src/local/memory_persistence.d.ts +3 -2
  12. package/dist/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  13. package/dist/firestore/src/local/persistence.d.ts +2 -2
  14. package/dist/firestore/src/local/remote_document_cache.d.ts +3 -0
  15. package/dist/firestore/src/local/simple_db.d.ts +1 -0
  16. package/dist/firestore/src/model/field_index.d.ts +2 -2
  17. package/dist/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  18. package/dist/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  19. package/dist/firestore/test/unit/local/test_remote_document_cache.d.ts +2 -0
  20. package/dist/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  21. package/dist/firestore/test/util/helpers.d.ts +1 -1
  22. package/dist/index.d.ts +1 -2
  23. package/dist/index.esm2017.js +3329 -3095
  24. package/dist/index.esm2017.js.map +1 -1
  25. package/dist/index.esm5.js +3590 -3370
  26. package/dist/index.esm5.js.map +1 -1
  27. package/dist/index.node.cjs.js +446 -150
  28. package/dist/index.node.cjs.js.map +1 -1
  29. package/dist/index.node.mjs +446 -150
  30. package/dist/index.node.mjs.map +1 -1
  31. package/dist/index.rn.js +3536 -3302
  32. package/dist/index.rn.js.map +1 -1
  33. package/dist/internal.d.ts +175 -6
  34. package/dist/lite/firestore/src/api/snapshot.d.ts +1 -2
  35. package/dist/lite/firestore/src/core/target.d.ts +8 -4
  36. package/dist/lite/firestore/src/lite-api/query.d.ts +2 -2
  37. package/dist/lite/firestore/src/local/index_manager.d.ts +52 -0
  38. package/dist/lite/firestore/src/local/indexeddb_index_manager.d.ts +21 -2
  39. package/dist/lite/firestore/src/local/indexeddb_persistence.d.ts +4 -4
  40. package/dist/lite/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  41. package/dist/lite/firestore/src/local/indexeddb_schema.d.ts +149 -7
  42. package/dist/lite/firestore/src/local/local_serializer.d.ts +7 -2
  43. package/dist/lite/firestore/src/local/memory_index_manager.d.ts +11 -0
  44. package/dist/lite/firestore/src/local/memory_persistence.d.ts +3 -2
  45. package/dist/lite/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  46. package/dist/lite/firestore/src/local/persistence.d.ts +2 -2
  47. package/dist/lite/firestore/src/local/remote_document_cache.d.ts +3 -0
  48. package/dist/lite/firestore/src/local/simple_db.d.ts +1 -0
  49. package/dist/lite/firestore/src/model/field_index.d.ts +2 -2
  50. package/dist/lite/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  51. package/dist/lite/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  52. package/dist/lite/firestore/test/unit/local/test_remote_document_cache.d.ts +2 -0
  53. package/dist/lite/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  54. package/dist/lite/firestore/test/util/helpers.d.ts +1 -1
  55. package/dist/lite/index.browser.esm2017.js +1146 -1143
  56. package/dist/lite/index.browser.esm2017.js.map +1 -1
  57. package/dist/lite/index.browser.esm5.js +332 -331
  58. package/dist/lite/index.browser.esm5.js.map +1 -1
  59. package/dist/lite/index.node.cjs.js +36 -29
  60. package/dist/lite/index.node.cjs.js.map +1 -1
  61. package/dist/lite/index.node.mjs +36 -29
  62. package/dist/lite/index.node.mjs.map +1 -1
  63. package/dist/lite/index.rn.esm2017.js +301 -298
  64. package/dist/lite/index.rn.esm2017.js.map +1 -1
  65. package/dist/lite/internal.d.ts +2 -2
  66. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +121 -121
  67. package/dist/lite/packages/firestore/src/api/snapshot.d.ts +1 -2
  68. package/dist/lite/packages/firestore/src/core/target.d.ts +8 -4
  69. package/dist/lite/packages/firestore/src/lite-api/query.d.ts +2 -2
  70. package/dist/lite/packages/firestore/src/local/index_manager.d.ts +52 -0
  71. package/dist/lite/packages/firestore/src/local/indexeddb_index_manager.d.ts +21 -2
  72. package/dist/lite/packages/firestore/src/local/indexeddb_persistence.d.ts +4 -4
  73. package/dist/lite/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  74. package/dist/lite/packages/firestore/src/local/indexeddb_schema.d.ts +149 -7
  75. package/dist/lite/packages/firestore/src/local/local_serializer.d.ts +7 -2
  76. package/dist/lite/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  77. package/dist/lite/packages/firestore/src/local/memory_persistence.d.ts +3 -2
  78. package/dist/lite/packages/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  79. package/dist/lite/packages/firestore/src/local/persistence.d.ts +2 -2
  80. package/dist/lite/packages/firestore/src/local/remote_document_cache.d.ts +3 -0
  81. package/dist/lite/packages/firestore/src/local/simple_db.d.ts +1 -0
  82. package/dist/lite/packages/firestore/src/model/field_index.d.ts +2 -2
  83. package/dist/lite/packages/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  84. package/dist/lite/packages/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  85. package/dist/lite/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +2 -0
  86. package/dist/lite/packages/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  87. package/dist/lite/packages/firestore/test/util/helpers.d.ts +1 -1
  88. package/dist/lite/private.d.ts +2 -2
  89. package/dist/packages/firestore/dist/index.esm2017.d.ts +176 -176
  90. package/dist/packages/firestore/src/api/snapshot.d.ts +1 -2
  91. package/dist/packages/firestore/src/core/target.d.ts +8 -4
  92. package/dist/packages/firestore/src/lite-api/query.d.ts +2 -2
  93. package/dist/packages/firestore/src/local/index_manager.d.ts +52 -0
  94. package/dist/packages/firestore/src/local/indexeddb_index_manager.d.ts +21 -2
  95. package/dist/packages/firestore/src/local/indexeddb_persistence.d.ts +4 -4
  96. package/dist/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  97. package/dist/packages/firestore/src/local/indexeddb_schema.d.ts +149 -7
  98. package/dist/packages/firestore/src/local/local_serializer.d.ts +7 -2
  99. package/dist/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  100. package/dist/packages/firestore/src/local/memory_persistence.d.ts +3 -2
  101. package/dist/packages/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  102. package/dist/packages/firestore/src/local/persistence.d.ts +2 -2
  103. package/dist/packages/firestore/src/local/remote_document_cache.d.ts +3 -0
  104. package/dist/packages/firestore/src/local/simple_db.d.ts +1 -0
  105. package/dist/packages/firestore/src/model/field_index.d.ts +2 -2
  106. package/dist/packages/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  107. package/dist/packages/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  108. package/dist/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +2 -0
  109. package/dist/packages/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  110. package/dist/packages/firestore/test/util/helpers.d.ts +1 -1
  111. package/dist/private.d.ts +175 -6
  112. package/package.json +9 -9
@@ -14,14 +14,16 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { User } from '../auth/user';
17
18
  import { BundleMetadata, NamedQuery } from '../core/bundle';
18
19
  import { Query } from '../core/query';
19
20
  import { SnapshotVersion } from '../core/snapshot_version';
20
21
  import { MutableDocument } from '../model/document';
22
+ import { FieldIndex, IndexOffset } from '../model/field_index';
21
23
  import { MutationBatch } from '../model/mutation_batch';
22
- import { BundleMetadata as ProtoBundleMetadata, NamedQuery as ProtoNamedQuery, BundledQuery as ProtoBundledQuery } from '../protos/firestore_bundle_proto';
24
+ import { BundledQuery as ProtoBundledQuery, BundleMetadata as ProtoBundleMetadata, NamedQuery as ProtoNamedQuery } from '../protos/firestore_bundle_proto';
23
25
  import { JsonProtoSerializer } from '../remote/serializer';
24
- import { DbBundle, DbMutationBatch, DbNamedQuery, DbRemoteDocument, DbTarget, DbTimestampKey } from './indexeddb_schema';
26
+ import { DbBundle, DbIndexConfiguration, DbIndexState, DbMutationBatch, DbNamedQuery, DbRemoteDocument, DbTarget, DbTimestampKey } from './indexeddb_schema';
25
27
  import { TargetData } from './target_data';
26
28
  /** Serializer for values stored in the LocalStore. */
27
29
  export declare class LocalSerializer {
@@ -61,3 +63,6 @@ export declare function fromBundledQuery(bundledQuery: ProtoBundledQuery): Query
61
63
  export declare function fromProtoNamedQuery(namedQuery: ProtoNamedQuery): NamedQuery;
62
64
  /** Decodes a BundleMetadata proto into a BundleMetadata object. */
63
65
  export declare function fromBundleMetadata(metadata: ProtoBundleMetadata): BundleMetadata;
66
+ export declare function toDbIndexConfiguration(index: FieldIndex): DbIndexConfiguration;
67
+ export declare function fromDbIndexConfiguration(index: DbIndexConfiguration, state: DbIndexState | null): FieldIndex;
68
+ export declare function toDbIndexState(indexId: number, user: User, sequenceNumber: number, offset: IndexOffset): DbIndexState;
@@ -14,6 +14,9 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { Target } from '../core/target';
18
+ import { DocumentKeySet, DocumentMap } from '../model/collections';
19
+ import { FieldIndex, IndexOffset } from '../model/field_index';
17
20
  import { ResourcePath } from '../model/path';
18
21
  import { IndexManager } from './index_manager';
19
22
  import { PersistencePromise } from './persistence_promise';
@@ -25,6 +28,14 @@ export declare class MemoryIndexManager implements IndexManager {
25
28
  private collectionParentIndex;
26
29
  addToCollectionParentIndex(transaction: PersistenceTransaction, collectionPath: ResourcePath): PersistencePromise<void>;
27
30
  getCollectionParents(transaction: PersistenceTransaction, collectionId: string): PersistencePromise<ResourcePath[]>;
31
+ addFieldIndex(transaction: PersistenceTransaction, index: FieldIndex): PersistencePromise<void>;
32
+ deleteFieldIndex(transaction: PersistenceTransaction, index: FieldIndex): PersistencePromise<void>;
33
+ getDocumentsMatchingTarget(transaction: PersistenceTransaction, fieldIndex: FieldIndex, target: Target): PersistencePromise<DocumentKeySet>;
34
+ getFieldIndex(transaction: PersistenceTransaction, target: Target): PersistencePromise<FieldIndex | null>;
35
+ getFieldIndexes(transaction: PersistenceTransaction, collectionGroup?: string): PersistencePromise<FieldIndex[]>;
36
+ getNextCollectionGroupToUpdate(transaction: PersistenceTransaction): PersistencePromise<string | null>;
37
+ updateCollectionGroup(transaction: PersistenceTransaction, collectionGroup: string, offset: IndexOffset): PersistencePromise<void>;
38
+ updateIndexEntries(transaction: PersistenceTransaction, documents: DocumentMap): PersistencePromise<void>;
28
39
  }
29
40
  /**
30
41
  * Internal implementation of the collection-parent index exposed by MemoryIndexManager.
@@ -19,6 +19,7 @@ import { ListenSequenceNumber, TargetId } from '../core/types';
19
19
  import { Document } from '../model/document';
20
20
  import { DocumentKey } from '../model/document_key';
21
21
  import { JsonProtoSerializer } from '../remote/serializer';
22
+ import { IndexManager } from './index_manager';
22
23
  import { ActiveTargets, LruDelegate, LruGarbageCollector, LruParams } from './lru_garbage_collector';
23
24
  import { MemoryBundleCache } from './memory_bundle_cache';
24
25
  import { MemoryIndexManager } from './memory_index_manager';
@@ -62,8 +63,8 @@ export declare class MemoryPersistence implements Persistence {
62
63
  get started(): boolean;
63
64
  setDatabaseDeletedListener(): void;
64
65
  setNetworkEnabled(): void;
65
- getIndexManager(): MemoryIndexManager;
66
- getMutationQueue(user: User): MutationQueue;
66
+ getIndexManager(user: User): MemoryIndexManager;
67
+ getMutationQueue(user: User, indexManager: IndexManager): MutationQueue;
67
68
  getTargetCache(): MemoryTargetCache;
68
69
  getRemoteDocumentCache(): MemoryRemoteDocumentCache;
69
70
  getBundleCache(): MemoryBundleCache;
@@ -16,7 +16,6 @@
16
16
  */
17
17
  import { Document } from '../model/document';
18
18
  import { DocumentKey } from '../model/document_key';
19
- import { IndexManager } from './index_manager';
20
19
  import { PersistencePromise } from './persistence_promise';
21
20
  import { PersistenceTransaction } from './persistence_transaction';
22
21
  import { RemoteDocumentCache } from './remote_document_cache';
@@ -27,9 +26,8 @@ export interface MemoryRemoteDocumentCache extends RemoteDocumentCache {
27
26
  /**
28
27
  * Creates a new memory-only RemoteDocumentCache.
29
28
  *
30
- * @param indexManager - A class that manages collection group indices.
31
29
  * @param sizer - Used to assess the size of a document. For eager GC, this is
32
30
  * expected to just return 0 to avoid unnecessarily doing the work of
33
31
  * calculating the size.
34
32
  */
35
- export declare function newMemoryRemoteDocumentCache(indexManager: IndexManager, sizer: DocumentSizer): MemoryRemoteDocumentCache;
33
+ export declare function newMemoryRemoteDocumentCache(sizer: DocumentSizer): MemoryRemoteDocumentCache;
@@ -140,7 +140,7 @@ export interface Persistence {
140
140
  * extent possible (e.g. in the case of uid switching from
141
141
  * sally=&gt;jack=&gt;sally, sally's mutation queue will be preserved).
142
142
  */
143
- getMutationQueue(user: User): MutationQueue;
143
+ getMutationQueue(user: User, indexManager: IndexManager): MutationQueue;
144
144
  /**
145
145
  * Returns a TargetCache representing the persisted cache of targets.
146
146
  *
@@ -173,7 +173,7 @@ export interface Persistence {
173
173
  * this is called. In particular, the memory-backed implementation does this
174
174
  * to emulate the persisted implementation to the extent possible.
175
175
  */
176
- getIndexManager(): IndexManager;
176
+ getIndexManager(user: User): IndexManager;
177
177
  /**
178
178
  * Performs an operation inside a persistence transaction. Any reads or writes
179
179
  * against persistence must be performed within a transaction. Writes will be
@@ -19,6 +19,7 @@ import { SnapshotVersion } from '../core/snapshot_version';
19
19
  import { DocumentKeySet, MutableDocumentMap } from '../model/collections';
20
20
  import { MutableDocument } from '../model/document';
21
21
  import { DocumentKey } from '../model/document_key';
22
+ import { IndexManager } from './index_manager';
22
23
  import { PersistencePromise } from './persistence_promise';
23
24
  import { PersistenceTransaction } from './persistence_transaction';
24
25
  import { RemoteDocumentChangeBuffer } from './remote_document_change_buffer';
@@ -30,6 +31,8 @@ import { RemoteDocumentChangeBuffer } from './remote_document_change_buffer';
30
31
  * documents that are known to not exist.
31
32
  */
32
33
  export interface RemoteDocumentCache {
34
+ /** Sets the index manager to use for managing the collectionGroup index. */
35
+ setIndexManager(indexManager: IndexManager): void;
33
36
  /**
34
37
  * Looks up an entry in the cache.
35
38
  *
@@ -36,6 +36,7 @@ export declare class SimpleDbTransaction {
36
36
  constructor(action: string, transaction: IDBTransaction);
37
37
  get completionPromise(): Promise<void>;
38
38
  abort(error?: Error): void;
39
+ maybeCommit(): void;
39
40
  /**
40
41
  * Returns a SimpleDbStore<KeyType, ValueType> for the specified store. All
41
42
  * operations performed on the SimpleDbStore happen within the context of this
@@ -43,7 +43,7 @@ export declare class FieldIndex {
43
43
  /** The collection ID this index applies to. */
44
44
  readonly collectionGroup: string;
45
45
  /** The field segments for this index. */
46
- readonly segments: IndexSegment[];
46
+ readonly fields: IndexSegment[];
47
47
  /** Shows how up-to-date the index is for the current user. */
48
48
  readonly indexState: IndexState;
49
49
  /** An ID for an index that has not yet been added to persistence. */
@@ -57,7 +57,7 @@ export declare class FieldIndex {
57
57
  /** The collection ID this index applies to. */
58
58
  collectionGroup: string,
59
59
  /** The field segments for this index. */
60
- segments: IndexSegment[],
60
+ fields: IndexSegment[],
61
61
  /** Shows how up-to-date the index is for the current user. */
62
62
  indexState: IndexState);
63
63
  }
@@ -54,6 +54,7 @@ export declare function testIndexedDbPersistence(options?: {
54
54
  dontPurgeData?: boolean;
55
55
  synchronizeTabs?: boolean;
56
56
  queue?: AsyncQueue;
57
+ schemaVersion?: number;
57
58
  }, lruParams?: LruParams): Promise<IndexedDbPersistence>;
58
59
  /** Creates and starts a MemoryPersistence instance for testing. */
59
60
  export declare function testMemoryEagerPersistence(): Promise<MemoryPersistence>;
@@ -14,8 +14,11 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { Target } from '../../../src/core/target';
17
18
  import { IndexManager } from '../../../src/local/index_manager';
18
19
  import { Persistence } from '../../../src/local/persistence';
20
+ import { DocumentKeySet, DocumentMap } from '../../../src/model/collections';
21
+ import { FieldIndex, IndexOffset } from '../../../src/model/field_index';
19
22
  import { ResourcePath } from '../../../src/model/path';
20
23
  /**
21
24
  * A wrapper around IndexManager that automatically creates a
@@ -27,4 +30,12 @@ export declare class TestIndexManager {
27
30
  constructor(persistence: Persistence, indexManager: IndexManager);
28
31
  addToCollectionParentIndex(collectionPath: ResourcePath): Promise<void>;
29
32
  getCollectionParents(collectionId: string): Promise<ResourcePath[]>;
33
+ addFieldIndex(index: FieldIndex): Promise<void>;
34
+ deleteFieldIndex(index: FieldIndex): Promise<void>;
35
+ getFieldIndexes(collectionGroup?: string): Promise<FieldIndex[]>;
36
+ getFieldIndex(target: Target): Promise<FieldIndex | null>;
37
+ getDocumentsMatchingTarget(fieldIndex: FieldIndex, target: Target): Promise<DocumentKeySet>;
38
+ getNextCollectionGroupToUpdate(): Promise<string | null>;
39
+ updateCollectionGroup(collectionGroup: string, offset: IndexOffset): Promise<void>;
40
+ updateIndexEntries(documents: DocumentMap): Promise<void>;
30
41
  }
@@ -16,6 +16,7 @@
16
16
  */
17
17
  import { Query } from '../../../src/core/query';
18
18
  import { SnapshotVersion } from '../../../src/core/snapshot_version';
19
+ import { IndexManager } from '../../../src/local/index_manager';
19
20
  import { Persistence } from '../../../src/local/persistence';
20
21
  import { RemoteDocumentChangeBuffer } from '../../../src/local/remote_document_change_buffer';
21
22
  import { DocumentKeySet, MutableDocumentMap } from '../../../src/model/collections';
@@ -29,6 +30,7 @@ export declare class TestRemoteDocumentCache {
29
30
  private readonly persistence;
30
31
  private readonly cache;
31
32
  constructor(persistence: Persistence);
33
+ setIndexManager(indexManager: IndexManager): void;
32
34
  /**
33
35
  * Reads all of the documents first so we can safely add them and keep the size calculation in
34
36
  * sync.
@@ -28,7 +28,7 @@ export declare class TestRemoteDocumentChangeBuffer {
28
28
  buffer: RemoteDocumentChangeBuffer;
29
29
  constructor(persistence: Persistence, buffer: RemoteDocumentChangeBuffer);
30
30
  addEntry(document: MutableDocument, readTime: SnapshotVersion): void;
31
- removeEntry(key: DocumentKey): void;
31
+ removeEntry(key: DocumentKey, readTime: SnapshotVersion): void;
32
32
  getEntry(documentKey: DocumentKey): Promise<MutableDocument>;
33
33
  apply(): Promise<void>;
34
34
  }
@@ -71,7 +71,7 @@ export declare function setMutation(keyStr: string, json: JsonObject<unknown>):
71
71
  export declare function patchMutation(keyStr: string, json: JsonObject<unknown>, precondition?: Precondition): PatchMutation;
72
72
  export declare function deleteMutation(keyStr: string): DeleteMutation;
73
73
  export declare function mutationResult(testVersion: TestSnapshotVersion): MutationResult;
74
- export declare function bound(values: unknown[], before: boolean): Bound;
74
+ export declare function bound(values: unknown[], inclusive: boolean): Bound;
75
75
  export declare function query(resourcePath: string, ...constraints: Array<OrderBy | Filter>): Query;
76
76
  export declare function targetData(targetId: TargetId, queryPurpose: TargetPurpose, path: string): TargetData;
77
77
  export declare function noChangeEvent(targetId: number, snapshotVersion: number, resumeToken?: ByteString): RemoteEvent;