@firebase/firestore 3.4.8 → 3.4.9
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/CHANGELOG.md +10 -0
- package/dist/firestore/lite/index.d.ts +1 -0
- package/dist/firestore/src/api/transaction.d.ts +2 -1
- package/dist/firestore/src/api/transaction_options.d.ts +17 -0
- package/dist/firestore/src/api.d.ts +1 -0
- package/dist/firestore/src/core/firestore_client.d.ts +2 -1
- package/dist/firestore/src/core/query.d.ts +2 -4
- package/dist/firestore/src/core/target.d.ts +6 -4
- package/dist/firestore/src/core/transaction_options.d.ts +25 -0
- package/dist/firestore/src/core/transaction_runner.d.ts +3 -2
- package/dist/firestore/src/lite-api/transaction.d.ts +2 -1
- package/dist/firestore/src/lite-api/transaction_options.d.ts +23 -0
- package/dist/firestore/src/local/index_manager.d.ts +24 -3
- package/dist/firestore/src/local/indexeddb_index_manager.d.ts +4 -7
- package/dist/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/firestore/src/local/memory_index_manager.d.ts +3 -2
- package/dist/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/firestore/src/model/collections.d.ts +1 -1
- package/dist/firestore/src/model/values.d.ts +14 -2
- package/dist/firestore/src/util/misc.d.ts +3 -0
- package/dist/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/firestore/test/unit/local/test_index_manager.d.ts +2 -2
- package/dist/index.d.ts +24 -1
- package/dist/index.esm2017.js +4108 -3992
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +4198 -4087
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +1711 -1565
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +1711 -1565
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.rn.js +4100 -3984
- package/dist/index.rn.js.map +1 -1
- package/dist/internal.d.ts +50 -4
- package/dist/lite/firestore/lite/index.d.ts +1 -0
- package/dist/lite/firestore/src/api/transaction.d.ts +2 -1
- package/dist/lite/firestore/src/api/transaction_options.d.ts +17 -0
- package/dist/lite/firestore/src/api.d.ts +1 -0
- package/dist/lite/firestore/src/core/firestore_client.d.ts +2 -1
- package/dist/lite/firestore/src/core/query.d.ts +2 -4
- package/dist/lite/firestore/src/core/target.d.ts +6 -4
- package/dist/lite/firestore/src/core/transaction_options.d.ts +25 -0
- package/dist/lite/firestore/src/core/transaction_runner.d.ts +3 -2
- package/dist/lite/firestore/src/lite-api/transaction.d.ts +2 -1
- package/dist/lite/firestore/src/lite-api/transaction_options.d.ts +23 -0
- package/dist/lite/firestore/src/local/index_manager.d.ts +24 -3
- package/dist/lite/firestore/src/local/indexeddb_index_manager.d.ts +4 -7
- package/dist/lite/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/lite/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/lite/firestore/src/local/memory_index_manager.d.ts +3 -2
- package/dist/lite/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/lite/firestore/src/model/collections.d.ts +1 -1
- package/dist/lite/firestore/src/model/values.d.ts +14 -2
- package/dist/lite/firestore/src/util/misc.d.ts +3 -0
- package/dist/lite/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/lite/firestore/test/unit/local/test_index_manager.d.ts +2 -2
- package/dist/lite/index.browser.esm2017.js +341 -312
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +299 -291
- package/dist/lite/index.browser.esm5.js.map +1 -1
- package/dist/lite/index.d.ts +24 -1
- package/dist/lite/index.node.cjs.js +56 -15
- package/dist/lite/index.node.cjs.js.map +1 -1
- package/dist/lite/index.node.mjs +56 -15
- package/dist/lite/index.node.mjs.map +1 -1
- package/dist/lite/index.rn.esm2017.js +1227 -1198
- package/dist/lite/index.rn.esm2017.js.map +1 -1
- package/dist/lite/internal.d.ts +25 -1
- package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +28 -28
- package/dist/lite/packages/firestore/lite/index.d.ts +1 -0
- package/dist/lite/packages/firestore/src/api/transaction.d.ts +2 -1
- package/dist/lite/packages/firestore/src/api/transaction_options.d.ts +17 -0
- package/dist/lite/packages/firestore/src/api.d.ts +1 -0
- package/dist/lite/packages/firestore/src/core/firestore_client.d.ts +2 -1
- package/dist/lite/packages/firestore/src/core/query.d.ts +2 -4
- package/dist/lite/packages/firestore/src/core/target.d.ts +6 -4
- package/dist/lite/packages/firestore/src/core/transaction_options.d.ts +25 -0
- package/dist/lite/packages/firestore/src/core/transaction_runner.d.ts +3 -2
- package/dist/lite/packages/firestore/src/lite-api/transaction.d.ts +2 -1
- package/dist/lite/packages/firestore/src/lite-api/transaction_options.d.ts +23 -0
- package/dist/lite/packages/firestore/src/local/index_manager.d.ts +24 -3
- package/dist/lite/packages/firestore/src/local/indexeddb_index_manager.d.ts +4 -7
- package/dist/lite/packages/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/lite/packages/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/lite/packages/firestore/src/local/memory_index_manager.d.ts +3 -2
- package/dist/lite/packages/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/lite/packages/firestore/src/model/collections.d.ts +1 -1
- package/dist/lite/packages/firestore/src/model/values.d.ts +14 -2
- package/dist/lite/packages/firestore/src/util/misc.d.ts +3 -0
- package/dist/lite/packages/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/lite/packages/firestore/test/unit/local/test_index_manager.d.ts +2 -2
- package/dist/lite/private.d.ts +25 -1
- package/dist/packages/firestore/dist/index.esm2017.d.ts +155 -154
- package/dist/packages/firestore/lite/index.d.ts +1 -0
- package/dist/packages/firestore/src/api/transaction.d.ts +2 -1
- package/dist/packages/firestore/src/api/transaction_options.d.ts +17 -0
- package/dist/packages/firestore/src/api.d.ts +1 -0
- package/dist/packages/firestore/src/core/firestore_client.d.ts +2 -1
- package/dist/packages/firestore/src/core/query.d.ts +2 -4
- package/dist/packages/firestore/src/core/target.d.ts +6 -4
- package/dist/packages/firestore/src/core/transaction_options.d.ts +25 -0
- package/dist/packages/firestore/src/core/transaction_runner.d.ts +3 -2
- package/dist/packages/firestore/src/lite-api/transaction.d.ts +2 -1
- package/dist/packages/firestore/src/lite-api/transaction_options.d.ts +23 -0
- package/dist/packages/firestore/src/local/index_manager.d.ts +24 -3
- package/dist/packages/firestore/src/local/indexeddb_index_manager.d.ts +4 -7
- package/dist/packages/firestore/src/local/indexeddb_schema.d.ts +1 -0
- package/dist/packages/firestore/src/local/local_documents_view.d.ts +1 -1
- package/dist/packages/firestore/src/local/memory_index_manager.d.ts +3 -2
- package/dist/packages/firestore/src/local/query_engine.d.ts +44 -5
- package/dist/packages/firestore/src/model/collections.d.ts +1 -1
- package/dist/packages/firestore/src/model/values.d.ts +14 -2
- package/dist/packages/firestore/src/util/misc.d.ts +3 -0
- package/dist/packages/firestore/test/unit/local/counting_query_engine.d.ts +2 -1
- package/dist/packages/firestore/test/unit/local/test_index_manager.d.ts +2 -2
- package/dist/private.d.ts +50 -4
- package/package.json +7 -7
package/dist/lite/internal.d.ts
CHANGED
|
@@ -2110,7 +2110,7 @@ declare class ResourcePath extends BasePath<ResourcePath> {
|
|
|
2110
2110
|
* `updateFunction `is returned here. Otherwise, if the transaction failed, a
|
|
2111
2111
|
* rejected promise with the corresponding failure error is returned.
|
|
2112
2112
|
*/
|
|
2113
|
-
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T
|
|
2113
|
+
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
2114
2114
|
|
|
2115
2115
|
/**
|
|
2116
2116
|
* Returns a sentinel used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link @firebase/firestore/lite#(updateDoc:1)} to
|
|
@@ -2615,6 +2615,30 @@ declare class Transaction_2 {
|
|
|
2615
2615
|
private ensureCommitNotCalled;
|
|
2616
2616
|
}
|
|
2617
2617
|
|
|
2618
|
+
/**
|
|
2619
|
+
* @license
|
|
2620
|
+
* Copyright 2022 Google LLC
|
|
2621
|
+
*
|
|
2622
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2623
|
+
* you may not use this file except in compliance with the License.
|
|
2624
|
+
* You may obtain a copy of the License at
|
|
2625
|
+
*
|
|
2626
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2627
|
+
*
|
|
2628
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2629
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2630
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2631
|
+
* See the License for the specific language governing permissions and
|
|
2632
|
+
* limitations under the License.
|
|
2633
|
+
*/
|
|
2634
|
+
/**
|
|
2635
|
+
* Options to customize transaction behavior.
|
|
2636
|
+
*/
|
|
2637
|
+
export declare interface TransactionOptions {
|
|
2638
|
+
/** Maximum number of attempts to commit, after which transaction fails. Default is 5. */
|
|
2639
|
+
readonly maxAttempts?: number;
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2618
2642
|
/** Used to represent a field transform on a mutation. */
|
|
2619
2643
|
declare class TransformOperation {
|
|
2620
2644
|
private _;
|
|
@@ -243,7 +243,7 @@ declare class an {
|
|
|
243
243
|
/**
|
|
244
244
|
* Sentinel values that can be used when writing document fields with `set()`
|
|
245
245
|
* or `update()`.
|
|
246
|
-
*/ declare class
|
|
246
|
+
*/ declare class bn {
|
|
247
247
|
/**
|
|
248
248
|
* @param _methodName - The public API endpoint that returns this class.
|
|
249
249
|
* @hideconstructor
|
|
@@ -335,7 +335,7 @@ declare class an {
|
|
|
335
335
|
*
|
|
336
336
|
* Latitude values are in the range of [-90, 90].
|
|
337
337
|
* Longitude values are in the range of [-180, 180].
|
|
338
|
-
*/ declare class
|
|
338
|
+
*/ declare class vn {
|
|
339
339
|
/**
|
|
340
340
|
* Creates a new immutable `GeoPoint` object with the provided latitude and
|
|
341
341
|
* longitude values.
|
|
@@ -536,7 +536,7 @@ declare class gt {
|
|
|
536
536
|
* to be compared using the `>`, `<=`, `>=` and `>` operators.
|
|
537
537
|
*/ valueOf(): string;
|
|
538
538
|
}
|
|
539
|
-
declare class
|
|
539
|
+
declare class kr {
|
|
540
540
|
/** @hideconstructor */
|
|
541
541
|
constructor(t: any, e: any);
|
|
542
542
|
_firestore: any;
|
|
@@ -548,14 +548,14 @@ declare class Ur {
|
|
|
548
548
|
* @param documentRef - A reference to the document to be read.
|
|
549
549
|
* @returns A `DocumentSnapshot` with the read data.
|
|
550
550
|
*/ get(t: any): any;
|
|
551
|
-
set(t: any, e: any, n: any):
|
|
552
|
-
update(t: any, e: any, n: any, ...r: any[]):
|
|
551
|
+
set(t: any, e: any, n: any): kr;
|
|
552
|
+
update(t: any, e: any, n: any, ...r: any[]): kr;
|
|
553
553
|
/**
|
|
554
554
|
* Deletes the document referred to by the provided {@link DocumentReference}.
|
|
555
555
|
*
|
|
556
556
|
* @param documentRef - A reference to the document to be deleted.
|
|
557
557
|
* @returns This `Transaction` instance. Used for chaining method calls.
|
|
558
|
-
*/ delete(t: any):
|
|
558
|
+
*/ delete(t: any): kr;
|
|
559
559
|
}
|
|
560
560
|
/**
|
|
561
561
|
* @license
|
|
@@ -624,7 +624,7 @@ declare class Ur {
|
|
|
624
624
|
* @throws Error - If the provided input is not a valid Firestore document.
|
|
625
625
|
* @returns A `Promise` resolved with a `DocumentReference` pointing to the
|
|
626
626
|
* newly created document after it has been written to the backend.
|
|
627
|
-
*/ declare function
|
|
627
|
+
*/ declare function Ir(t: any, e: any): Promise<an>;
|
|
628
628
|
/**
|
|
629
629
|
* Returns a special value that can be used with {@link (setDoc:1)} or {@link
|
|
630
630
|
* updateDoc:1} that tells the server to remove the given elements from any
|
|
@@ -635,7 +635,7 @@ declare class Ur {
|
|
|
635
635
|
* @param elements - The elements to remove from the array.
|
|
636
636
|
* @returns The `FieldValue` sentinel for use in a call to `setDoc()` or
|
|
637
637
|
* `updateDoc()`
|
|
638
|
-
*/ declare function Dr(...t: any[]):
|
|
638
|
+
*/ declare function Dr(...t: any[]): Fn;
|
|
639
639
|
/**
|
|
640
640
|
* Returns a special value that can be used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link
|
|
641
641
|
* @firebase/firestore/lite#(updateDoc:1)} that tells the server to union the given elements with any array
|
|
@@ -647,7 +647,7 @@ declare class Ur {
|
|
|
647
647
|
* @param elements - The elements to union into the array.
|
|
648
648
|
* @returns The `FieldValue` sentinel for use in a call to `setDoc()` or
|
|
649
649
|
* `updateDoc()`.
|
|
650
|
-
*/ declare function Vr(...t: any[]):
|
|
650
|
+
*/ declare function Vr(...t: any[]): xn;
|
|
651
651
|
declare function fn(t: any, e: any, ...n: any[]): ln;
|
|
652
652
|
/**
|
|
653
653
|
* Creates and returns a new `Query` instance that includes all documents in the
|
|
@@ -684,7 +684,7 @@ declare function fn(t: any, e: any, ...n: any[]): ln;
|
|
|
684
684
|
* @param reference - A reference to the document to delete.
|
|
685
685
|
* @returns A `Promise` resolved once the document has been successfully
|
|
686
686
|
* deleted from the backend.
|
|
687
|
-
*/ declare function
|
|
687
|
+
*/ declare function Ar(t: any): Promise<void>;
|
|
688
688
|
/**
|
|
689
689
|
* @license
|
|
690
690
|
* Copyright 2020 Google LLC
|
|
@@ -724,7 +724,7 @@ declare function fr(...t: any[]): lr;
|
|
|
724
724
|
* @param reference - The reference of the document to fetch.
|
|
725
725
|
* @returns A Promise resolved with a `DocumentSnapshot` containing the current
|
|
726
726
|
* document contents.
|
|
727
|
-
*/ declare function
|
|
727
|
+
*/ declare function br(t: any): Promise<Yn>;
|
|
728
728
|
/**
|
|
729
729
|
* Executes the query and returns the results as a {@link QuerySnapshot}.
|
|
730
730
|
*
|
|
@@ -736,7 +736,7 @@ declare function fr(...t: any[]): lr;
|
|
|
736
736
|
*
|
|
737
737
|
* @param query - The `Query` to execute.
|
|
738
738
|
* @returns A Promise that will be resolved with the results of the query.
|
|
739
|
-
*/ declare function
|
|
739
|
+
*/ declare function vr(t: any): Promise<Kn>;
|
|
740
740
|
/**
|
|
741
741
|
* Returns the existing `Firestore` instance that is associated with the
|
|
742
742
|
* provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
|
|
@@ -832,7 +832,7 @@ declare function sn(t: any, e: any): import("../../lite").Firestore;
|
|
|
832
832
|
* (the `updateFunction` returned a failed promise), the promise returned by the
|
|
833
833
|
* `updateFunction `is returned here. Otherwise, if the transaction failed, a
|
|
834
834
|
* rejected promise with the corresponding failure error is returned.
|
|
835
|
-
*/ declare function
|
|
835
|
+
*/ declare function jr(t: any, e: any, n: any): Promise<any>;
|
|
836
836
|
/**
|
|
837
837
|
* Returns a sentinel used with {@link @firebase/firestore/lite#(setDoc:1)} or {@link @firebase/firestore/lite#(updateDoc:1)} to
|
|
838
838
|
* include a server-generated timestamp in the written data.
|
|
@@ -904,7 +904,7 @@ declare function Tr(t: any, e: any, n: any, ...r: any[]): Promise<void>;
|
|
|
904
904
|
*
|
|
905
905
|
* @returns A `WriteBatch` that can be used to atomically execute multiple
|
|
906
906
|
* writes.
|
|
907
|
-
*/ declare function
|
|
907
|
+
*/ declare function xr(t: any): $r;
|
|
908
908
|
/**
|
|
909
909
|
* A dot-separated path for navigating sub-objects within a document.
|
|
910
910
|
* @internal
|
|
@@ -979,40 +979,40 @@ import { FirebaseError as c } from "@firebase/util/dist/src/errors";
|
|
|
979
979
|
q: any;
|
|
980
980
|
/** Creates a new top-level parse context. */ ht(t: any, e: any, n: any, r?: boolean): Rn;
|
|
981
981
|
}
|
|
982
|
-
declare class
|
|
982
|
+
declare class Fn extends bn {
|
|
983
983
|
constructor(t: any, e: any);
|
|
984
984
|
lt: any;
|
|
985
|
-
_toFieldTransform(t: any):
|
|
985
|
+
_toFieldTransform(t: any): be;
|
|
986
986
|
isEqual(t: any): boolean;
|
|
987
987
|
}
|
|
988
|
-
declare class
|
|
988
|
+
declare class xn extends bn {
|
|
989
989
|
constructor(t: any, e: any);
|
|
990
990
|
lt: any;
|
|
991
|
-
_toFieldTransform(t: any):
|
|
991
|
+
_toFieldTransform(t: any): be;
|
|
992
992
|
isEqual(t: any): boolean;
|
|
993
993
|
}
|
|
994
|
-
declare class Nn extends
|
|
994
|
+
declare class Nn extends bn {
|
|
995
995
|
_toFieldTransform(t: any): null;
|
|
996
996
|
isEqual(t: any): boolean;
|
|
997
997
|
}
|
|
998
998
|
declare class lr extends Zn {
|
|
999
999
|
constructor(t: any, e: any, n: any);
|
|
1000
1000
|
type: any;
|
|
1001
|
-
|
|
1001
|
+
vt: any;
|
|
1002
1002
|
Et: any;
|
|
1003
1003
|
_apply(t: any): hn;
|
|
1004
1004
|
}
|
|
1005
|
-
declare class qn extends
|
|
1005
|
+
declare class qn extends bn {
|
|
1006
1006
|
constructor(t: any, e: any);
|
|
1007
1007
|
ft: any;
|
|
1008
|
-
_toFieldTransform(t: any):
|
|
1008
|
+
_toFieldTransform(t: any): be;
|
|
1009
1009
|
isEqual(t: any): boolean;
|
|
1010
1010
|
}
|
|
1011
1011
|
declare class ir extends Zn {
|
|
1012
1012
|
constructor(t: any, e: any, n: any);
|
|
1013
1013
|
type: any;
|
|
1014
1014
|
gt: any;
|
|
1015
|
-
|
|
1015
|
+
bt: any;
|
|
1016
1016
|
_apply(t: any): hn;
|
|
1017
1017
|
}
|
|
1018
1018
|
declare class rr extends Zn {
|
|
@@ -1022,14 +1022,14 @@ declare class rr extends Zn {
|
|
|
1022
1022
|
type: string;
|
|
1023
1023
|
_apply(t: any): hn;
|
|
1024
1024
|
}
|
|
1025
|
-
declare class Sn extends
|
|
1026
|
-
_toFieldTransform(t: any):
|
|
1025
|
+
declare class Sn extends bn {
|
|
1026
|
+
_toFieldTransform(t: any): be;
|
|
1027
1027
|
isEqual(t: any): boolean;
|
|
1028
1028
|
}
|
|
1029
1029
|
declare class cr extends Zn {
|
|
1030
1030
|
constructor(t: any, e: any, n: any);
|
|
1031
1031
|
type: any;
|
|
1032
|
-
|
|
1032
|
+
vt: any;
|
|
1033
1033
|
Et: any;
|
|
1034
1034
|
_apply(t: any): hn;
|
|
1035
1035
|
}
|
|
@@ -1134,9 +1134,9 @@ declare class J {
|
|
|
1134
1134
|
* See the License for the specific language governing permissions and
|
|
1135
1135
|
* limitations under the License.
|
|
1136
1136
|
*/
|
|
1137
|
-
/** A field path and the TransformOperation to perform upon it. */ declare class
|
|
1137
|
+
/** A field path and the TransformOperation to perform upon it. */ declare class be {
|
|
1138
1138
|
constructor(t: any, e: any);
|
|
1139
1139
|
field: any;
|
|
1140
1140
|
transform: any;
|
|
1141
1141
|
}
|
|
1142
|
-
export { gn as Bytes, ln as CollectionReference, an as DocumentReference, Yn as DocumentSnapshot, yn as FieldPath,
|
|
1142
|
+
export { gn as Bytes, ln as CollectionReference, an as DocumentReference, Yn as DocumentSnapshot, yn as FieldPath, bn as FieldValue, rn as Firestore, U as FirestoreError, vn as GeoPoint, hn as Query, Zn as QueryConstraint, Hn as QueryDocumentSnapshot, Kn as QuerySnapshot, gt as Timestamp, kr as Transaction, $r as WriteBatch, Ir as addDoc, Dr as arrayRemove, Vr as arrayUnion, fn as collection, dn as collectionGroup, un as connectFirestoreEmulator, Ar as deleteDoc, Rr as deleteField, wn as doc, _n as documentId, dr as endAt, fr as endBefore, br as getDoc, vr as getDocs, on as getFirestore, Nr as increment, sn as initializeFirestore, or as limit, ur as limitToLast, sr as orderBy, tr as query, pn as queryEqual, mn as refEqual, jr as runTransaction, Pr as serverTimestamp, Er as setDoc, w as setLogLevel, Jn as snapshotEqual, hr as startAfter, ar as startAt, cn as terminate, Tr as updateDoc, nr as where, xr as writeBatch };
|
|
@@ -17,6 +17,7 @@ export { FieldValue } from '../src/lite-api/field_value';
|
|
|
17
17
|
export { increment, arrayRemove, arrayUnion, serverTimestamp, deleteField } from '../src/lite-api/field_value_impl';
|
|
18
18
|
export { FirestoreDataConverter, DocumentSnapshot, QueryDocumentSnapshot, QuerySnapshot, snapshotEqual } from '../src/lite-api/snapshot';
|
|
19
19
|
export { WriteBatch, writeBatch } from '../src/lite-api/write_batch';
|
|
20
|
+
export { TransactionOptions } from '../src/lite-api/transaction_options';
|
|
20
21
|
export { Transaction, runTransaction } from '../src/lite-api/transaction';
|
|
21
22
|
export { setLogLevel, LogLevelString as LogLevel } from '../src/util/log';
|
|
22
23
|
export { Bytes } from '../src/lite-api/bytes';
|
|
@@ -19,6 +19,7 @@ import { DocumentReference } from '../lite-api/reference';
|
|
|
19
19
|
import { Transaction as LiteTransaction } from '../lite-api/transaction';
|
|
20
20
|
import { Firestore } from './database';
|
|
21
21
|
import { DocumentSnapshot } from './snapshot';
|
|
22
|
+
import { TransactionOptions } from './transaction_options';
|
|
22
23
|
/**
|
|
23
24
|
* A reference to a transaction.
|
|
24
25
|
*
|
|
@@ -55,4 +56,4 @@ export declare class Transaction extends LiteTransaction {
|
|
|
55
56
|
* `updateFunction `is returned here. Otherwise, if the transaction failed, a
|
|
56
57
|
* rejected promise with the corresponding failure error is returned.
|
|
57
58
|
*/
|
|
58
|
-
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T
|
|
59
|
+
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Google LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export { TransactionOptions } from '../lite-api/transaction_options';
|
|
@@ -22,6 +22,7 @@ export { DocumentChange, DocumentSnapshot, QueryDocumentSnapshot, QuerySnapshot,
|
|
|
22
22
|
export { DocumentReference, CollectionReference, Query, doc, collection, collectionGroup, SetOptions, DocumentData, UpdateData, WithFieldValue, PartialWithFieldValue, refEqual, queryEqual } from './api/reference';
|
|
23
23
|
export { endAt, endBefore, startAt, startAfter, limit, limitToLast, where, orderBy, query, QueryConstraint, QueryConstraintType, OrderByDirection, WhereFilterOp } from './api/filter';
|
|
24
24
|
export { Unsubscribe, SnapshotListenOptions } from './api/reference_impl';
|
|
25
|
+
export { TransactionOptions } from './api/transaction_options';
|
|
25
26
|
export { runTransaction, Transaction } from './api/transaction';
|
|
26
27
|
export { getDoc, getDocFromCache, getDocFromServer, getDocs, getDocsFromCache, getDocsFromServer, onSnapshot, onSnapshotsInSync, setDoc, updateDoc, deleteDoc, addDoc, executeWrite } from './api/reference_impl';
|
|
27
28
|
export { FieldValue } from './api/field_value';
|
|
@@ -30,6 +30,7 @@ import { EventManager, ListenOptions, Observer } from './event_manager';
|
|
|
30
30
|
import { Query } from './query';
|
|
31
31
|
import { SyncEngine } from './sync_engine';
|
|
32
32
|
import { Transaction } from './transaction';
|
|
33
|
+
import { TransactionOptions } from './transaction_options';
|
|
33
34
|
import { ViewSnapshot } from './view_snapshot';
|
|
34
35
|
export declare const MAX_CONCURRENT_LIMBO_RESOLUTIONS = 100;
|
|
35
36
|
/**
|
|
@@ -113,6 +114,6 @@ export declare function firestoreClientAddSnapshotsInSyncListener(client: Firest
|
|
|
113
114
|
* been committed. For this reason, it is required that all reads are
|
|
114
115
|
* performed before any writes. Transactions must be performed while online.
|
|
115
116
|
*/
|
|
116
|
-
export declare function firestoreClientTransaction<T>(client: FirestoreClient, updateFunction: (transaction: Transaction) => Promise<T
|
|
117
|
+
export declare function firestoreClientTransaction<T>(client: FirestoreClient, updateFunction: (transaction: Transaction) => Promise<T>, options: TransactionOptions): Promise<T>;
|
|
117
118
|
export declare function firestoreClientLoadBundle(client: FirestoreClient, databaseId: DatabaseId, data: ReadableStream<Uint8Array> | ArrayBuffer | string, resultTask: LoadBundleTask): void;
|
|
118
119
|
export declare function firestoreClientGetNamedQuery(client: FirestoreClient, queryName: string): Promise<NamedQuery | undefined>;
|
|
@@ -76,9 +76,7 @@ export declare function asCollectionQueryAtPath(query: Query, path: ResourcePath
|
|
|
76
76
|
* Returns true if this query does not specify any query constraints that
|
|
77
77
|
* could remove results.
|
|
78
78
|
*/
|
|
79
|
-
export declare function
|
|
80
|
-
export declare function hasLimitToFirst(query: Query): boolean;
|
|
81
|
-
export declare function hasLimitToLast(query: Query): boolean;
|
|
79
|
+
export declare function queryMatchesAllDocuments(query: Query): boolean;
|
|
82
80
|
export declare function getFirstOrderByField(query: Query): FieldPath | null;
|
|
83
81
|
export declare function getInequalityFilterField(query: Query): FieldPath | null;
|
|
84
82
|
/**
|
|
@@ -113,7 +111,7 @@ export declare function queryOrderBy(query: Query): OrderBy[];
|
|
|
113
111
|
export declare function queryToTarget(query: Query): Target;
|
|
114
112
|
export declare function queryWithAddedFilter(query: Query, filter: Filter): Query;
|
|
115
113
|
export declare function queryWithAddedOrderBy(query: Query, orderBy: OrderBy): Query;
|
|
116
|
-
export declare function queryWithLimit(query: Query, limit: number, limitType: LimitType): Query;
|
|
114
|
+
export declare function queryWithLimit(query: Query, limit: number | null, limitType: LimitType): Query;
|
|
117
115
|
export declare function queryWithStartAt(query: Query, bound: Bound): Query;
|
|
118
116
|
export declare function queryWithEndAt(query: Query, bound: Bound): Query;
|
|
119
117
|
export declare function queryEquals(left: Query, right: Query): boolean;
|
|
@@ -72,16 +72,18 @@ export declare function targetGetArrayValues(target: Target, fieldIndex: FieldIn
|
|
|
72
72
|
export declare function targetGetNotInValues(target: Target, fieldIndex: FieldIndex): ProtoValue[] | null;
|
|
73
73
|
/**
|
|
74
74
|
* Returns a lower bound of field values that can be used as a starting point to
|
|
75
|
-
* scan the index defined by `fieldIndex`. Returns `
|
|
75
|
+
* scan the index defined by `fieldIndex`. Returns `MIN_VALUE` if no lower bound
|
|
76
76
|
* exists.
|
|
77
77
|
*/
|
|
78
|
-
export declare function targetGetLowerBound(target: Target, fieldIndex: FieldIndex): Bound
|
|
78
|
+
export declare function targetGetLowerBound(target: Target, fieldIndex: FieldIndex): Bound;
|
|
79
79
|
/**
|
|
80
80
|
* Returns an upper bound of field values that can be used as an ending point
|
|
81
|
-
* when scanning the index defined by `fieldIndex`. Returns `
|
|
81
|
+
* when scanning the index defined by `fieldIndex`. Returns `MAX_VALUE` if no
|
|
82
82
|
* upper bound exists.
|
|
83
83
|
*/
|
|
84
|
-
export declare function targetGetUpperBound(target: Target, fieldIndex: FieldIndex): Bound
|
|
84
|
+
export declare function targetGetUpperBound(target: Target, fieldIndex: FieldIndex): Bound;
|
|
85
|
+
/** Returns the number of segments of a perfect index for this target. */
|
|
86
|
+
export declare function targetGetSegmentCount(target: Target): number;
|
|
85
87
|
export declare abstract class Filter {
|
|
86
88
|
abstract matches(doc: Document): boolean;
|
|
87
89
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Google LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_TRANSACTION_OPTIONS: TransactionOptions;
|
|
18
|
+
/**
|
|
19
|
+
* Options to customize transaction behavior.
|
|
20
|
+
*/
|
|
21
|
+
export declare interface TransactionOptions {
|
|
22
|
+
/** Maximum number of attempts to commit, after which transaction fails. Default is 5. */
|
|
23
|
+
readonly maxAttempts: number;
|
|
24
|
+
}
|
|
25
|
+
export declare function validateTransactionOptions(options: TransactionOptions): void;
|
|
@@ -18,7 +18,7 @@ import { Datastore } from '../remote/datastore';
|
|
|
18
18
|
import { AsyncQueue } from '../util/async_queue';
|
|
19
19
|
import { Deferred } from '../util/promise';
|
|
20
20
|
import { Transaction } from './transaction';
|
|
21
|
-
|
|
21
|
+
import { TransactionOptions } from './transaction_options';
|
|
22
22
|
/**
|
|
23
23
|
* TransactionRunner encapsulates the logic needed to run and retry transactions
|
|
24
24
|
* with backoff.
|
|
@@ -26,11 +26,12 @@ export declare const DEFAULT_MAX_ATTEMPTS_COUNT = 5;
|
|
|
26
26
|
export declare class TransactionRunner<T> {
|
|
27
27
|
private readonly asyncQueue;
|
|
28
28
|
private readonly datastore;
|
|
29
|
+
private readonly options;
|
|
29
30
|
private readonly updateFunction;
|
|
30
31
|
private readonly deferred;
|
|
31
32
|
private attemptsRemaining;
|
|
32
33
|
private backoff;
|
|
33
|
-
constructor(asyncQueue: AsyncQueue, datastore: Datastore, updateFunction: (transaction: Transaction) => Promise<T>, deferred: Deferred<T>);
|
|
34
|
+
constructor(asyncQueue: AsyncQueue, datastore: Datastore, options: TransactionOptions, updateFunction: (transaction: Transaction) => Promise<T>, deferred: Deferred<T>);
|
|
34
35
|
/** Runs the transaction and sets the result on deferred. */
|
|
35
36
|
run(): void;
|
|
36
37
|
private runWithBackOff;
|
|
@@ -19,6 +19,7 @@ import { Firestore } from './database';
|
|
|
19
19
|
import { FieldPath } from './field_path';
|
|
20
20
|
import { DocumentReference, PartialWithFieldValue, SetOptions, UpdateData, WithFieldValue } from './reference';
|
|
21
21
|
import { DocumentSnapshot } from './snapshot';
|
|
22
|
+
import { TransactionOptions } from './transaction_options';
|
|
22
23
|
/**
|
|
23
24
|
* A reference to a transaction.
|
|
24
25
|
*
|
|
@@ -116,4 +117,4 @@ export declare class Transaction {
|
|
|
116
117
|
* `updateFunction `is returned here. Otherwise, if the transaction failed, a
|
|
117
118
|
* rejected promise with the corresponding failure error is returned.
|
|
118
119
|
*/
|
|
119
|
-
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T
|
|
120
|
+
export declare function runTransaction<T>(firestore: Firestore, updateFunction: (transaction: Transaction) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Google LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Options to customize transaction behavior.
|
|
19
|
+
*/
|
|
20
|
+
export declare interface TransactionOptions {
|
|
21
|
+
/** Maximum number of attempts to commit, after which transaction fails. Default is 5. */
|
|
22
|
+
readonly maxAttempts?: number;
|
|
23
|
+
}
|
|
@@ -21,6 +21,22 @@ import { FieldIndex, IndexOffset } from '../model/field_index';
|
|
|
21
21
|
import { ResourcePath } from '../model/path';
|
|
22
22
|
import { PersistencePromise } from './persistence_promise';
|
|
23
23
|
import { PersistenceTransaction } from './persistence_transaction';
|
|
24
|
+
/** Represents the index state as it relates to a particular target. */
|
|
25
|
+
export declare const enum IndexType {
|
|
26
|
+
/** Indicates that no index could be found for serving the target. */
|
|
27
|
+
NONE = 0,
|
|
28
|
+
/**
|
|
29
|
+
* Indicates that only a "partial index" could be found for serving the
|
|
30
|
+
* target. A partial index is one which does not have a segment for every
|
|
31
|
+
* filter/orderBy in the target.
|
|
32
|
+
*/
|
|
33
|
+
PARTIAL = 1,
|
|
34
|
+
/**
|
|
35
|
+
* Indicates that a "full index" could be found for serving the target. A full
|
|
36
|
+
* index is one which has a segment for every filter/orderBy in the target.
|
|
37
|
+
*/
|
|
38
|
+
FULL = 2
|
|
39
|
+
}
|
|
24
40
|
/**
|
|
25
41
|
* Represents a set of indexes that are used to execute queries efficiently.
|
|
26
42
|
*
|
|
@@ -68,10 +84,10 @@ export interface IndexManager {
|
|
|
68
84
|
/** Returns all configured field indexes. */
|
|
69
85
|
getFieldIndexes(transaction: PersistenceTransaction): PersistencePromise<FieldIndex[]>;
|
|
70
86
|
/**
|
|
71
|
-
* Returns
|
|
72
|
-
*
|
|
87
|
+
* Returns the type of index (if any) that can be used to serve the given
|
|
88
|
+
* target.
|
|
73
89
|
*/
|
|
74
|
-
|
|
90
|
+
getIndexType(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexType>;
|
|
75
91
|
/**
|
|
76
92
|
* Returns the documents that match the given target based on the provided
|
|
77
93
|
* index or `null` if the target does not have a matching index.
|
|
@@ -93,4 +109,9 @@ export interface IndexManager {
|
|
|
93
109
|
updateCollectionGroup(transaction: PersistenceTransaction, collectionGroup: string, offset: IndexOffset): PersistencePromise<void>;
|
|
94
110
|
/** Updates the index entries for the provided documents. */
|
|
95
111
|
updateIndexEntries(transaction: PersistenceTransaction, documents: DocumentMap): PersistencePromise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Iterates over all field indexes that are used to serve the given target,
|
|
114
|
+
* and returns the minimum offset of them all.
|
|
115
|
+
*/
|
|
116
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
96
117
|
}
|
|
@@ -21,7 +21,7 @@ import { DocumentMap } from '../model/collections';
|
|
|
21
21
|
import { DocumentKey } from '../model/document_key';
|
|
22
22
|
import { FieldIndex, IndexOffset } from '../model/field_index';
|
|
23
23
|
import { ResourcePath } from '../model/path';
|
|
24
|
-
import { IndexManager } from './index_manager';
|
|
24
|
+
import { IndexManager, IndexType } from './index_manager';
|
|
25
25
|
import { PersistencePromise } from './persistence_promise';
|
|
26
26
|
import { PersistenceTransaction } from './persistence_transaction';
|
|
27
27
|
/**
|
|
@@ -70,12 +70,8 @@ export declare class IndexedDbIndexManager implements IndexManager {
|
|
|
70
70
|
private generateLowerBound;
|
|
71
71
|
/** Generates the upper bound for `arrayValue` and `directionalValue`. */
|
|
72
72
|
private generateUpperBound;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
* and user.
|
|
76
|
-
*/
|
|
77
|
-
private generateEmptyBound;
|
|
78
|
-
getFieldIndex(transaction: PersistenceTransaction, target: Target): PersistencePromise<FieldIndex | null>;
|
|
73
|
+
private getFieldIndex;
|
|
74
|
+
getIndexType(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexType>;
|
|
79
75
|
/**
|
|
80
76
|
* Returns the byte encoded form of the directional values in the field index.
|
|
81
77
|
* Returns `null` if the document does not have all fields specified in the
|
|
@@ -132,4 +128,5 @@ export declare class IndexedDbIndexManager implements IndexManager {
|
|
|
132
128
|
* '[foo > 2 && foo != 3]` becomes `[foo > 2 && < 3, foo > 3]`.
|
|
133
129
|
*/
|
|
134
130
|
private createRange;
|
|
131
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
135
132
|
}
|
|
@@ -20,6 +20,7 @@ import { BundledQuery } from '../protos/firestore_bundle_proto';
|
|
|
20
20
|
import { Document as ProtoDocument, DocumentsTarget as ProtoDocumentsTarget, QueryTarget as ProtoQueryTarget, Write as ProtoWrite } from '../protos/firestore_proto_api';
|
|
21
21
|
import { EncodedResourcePath } from './encoded_resource_path';
|
|
22
22
|
import { DbTimestampKey } from './indexeddb_sentinels';
|
|
23
|
+
export declare const INDEXING_ENABLED = false;
|
|
23
24
|
export declare const INDEXING_SCHEMA_VERSION = 14;
|
|
24
25
|
/**
|
|
25
26
|
* Schema Version for the Web client:
|
|
@@ -33,7 +33,7 @@ import { RemoteDocumentCache } from './remote_document_cache';
|
|
|
33
33
|
export declare class LocalDocumentsView {
|
|
34
34
|
readonly remoteDocumentCache: RemoteDocumentCache;
|
|
35
35
|
readonly mutationQueue: MutationQueue;
|
|
36
|
-
readonly indexManager
|
|
36
|
+
private readonly indexManager;
|
|
37
37
|
constructor(remoteDocumentCache: RemoteDocumentCache, mutationQueue: MutationQueue, indexManager: IndexManager);
|
|
38
38
|
/**
|
|
39
39
|
* Get the local view of the document identified by `key`.
|
|
@@ -19,7 +19,7 @@ import { DocumentMap } from '../model/collections';
|
|
|
19
19
|
import { DocumentKey } from '../model/document_key';
|
|
20
20
|
import { FieldIndex, IndexOffset } from '../model/field_index';
|
|
21
21
|
import { ResourcePath } from '../model/path';
|
|
22
|
-
import { IndexManager } from './index_manager';
|
|
22
|
+
import { IndexManager, IndexType } from './index_manager';
|
|
23
23
|
import { PersistencePromise } from './persistence_promise';
|
|
24
24
|
import { PersistenceTransaction } from './persistence_transaction';
|
|
25
25
|
/**
|
|
@@ -32,9 +32,10 @@ export declare class MemoryIndexManager implements IndexManager {
|
|
|
32
32
|
addFieldIndex(transaction: PersistenceTransaction, index: FieldIndex): PersistencePromise<void>;
|
|
33
33
|
deleteFieldIndex(transaction: PersistenceTransaction, index: FieldIndex): PersistencePromise<void>;
|
|
34
34
|
getDocumentsMatchingTarget(transaction: PersistenceTransaction, target: Target): PersistencePromise<DocumentKey[] | null>;
|
|
35
|
-
|
|
35
|
+
getIndexType(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexType>;
|
|
36
36
|
getFieldIndexes(transaction: PersistenceTransaction, collectionGroup?: string): PersistencePromise<FieldIndex[]>;
|
|
37
37
|
getNextCollectionGroupToUpdate(transaction: PersistenceTransaction): PersistencePromise<string | null>;
|
|
38
|
+
getMinOffset(transaction: PersistenceTransaction, target: Target): PersistencePromise<IndexOffset>;
|
|
38
39
|
updateCollectionGroup(transaction: PersistenceTransaction, collectionGroup: string, offset: IndexOffset): PersistencePromise<void>;
|
|
39
40
|
updateIndexEntries(transaction: PersistenceTransaction, documents: DocumentMap): PersistencePromise<void>;
|
|
40
41
|
}
|
|
@@ -17,14 +17,35 @@
|
|
|
17
17
|
import { Query } from '../core/query';
|
|
18
18
|
import { SnapshotVersion } from '../core/snapshot_version';
|
|
19
19
|
import { DocumentKeySet, DocumentMap } from '../model/collections';
|
|
20
|
+
import { IndexManager } from './index_manager';
|
|
20
21
|
import { LocalDocumentsView } from './local_documents_view';
|
|
21
22
|
import { PersistencePromise } from './persistence_promise';
|
|
22
23
|
import { PersistenceTransaction } from './persistence_transaction';
|
|
23
24
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* The Firestore query engine.
|
|
26
|
+
*
|
|
27
|
+
* Firestore queries can be executed in three modes. The Query Engine determines
|
|
28
|
+
* what mode to use based on what data is persisted. The mode only determines
|
|
29
|
+
* the runtime complexity of the query - the result set is equivalent across all
|
|
30
|
+
* implementations.
|
|
31
|
+
*
|
|
32
|
+
* The Query engine will use indexed-based execution if a user has configured
|
|
33
|
+
* any index that can be used to execute query (via `setIndexConfiguration()`).
|
|
34
|
+
* Otherwise, the engine will try to optimize the query by re-using a previously
|
|
35
|
+
* persisted query result. If that is not possible, the query will be executed
|
|
36
|
+
* via a full collection scan.
|
|
37
|
+
*
|
|
38
|
+
* Index-based execution is the default when available. The query engine
|
|
39
|
+
* supports partial indexed execution and merges the result from the index
|
|
40
|
+
* lookup with documents that have not yet been indexed. The index evaluation
|
|
41
|
+
* matches the backend's format and as such, the SDK can use indexing for all
|
|
42
|
+
* queries that the backend supports.
|
|
43
|
+
*
|
|
44
|
+
* If no index exists, the query engine tries to take advantage of the target
|
|
45
|
+
* document mapping in the TargetCache. These mappings exists for all queries
|
|
46
|
+
* that have been synced with the backend at least once and allow the query
|
|
47
|
+
* engine to only read documents that previously matched a query plus any
|
|
48
|
+
* documents that were edited after the query was last listened to.
|
|
28
49
|
*
|
|
29
50
|
* There are some cases when this optimization is not guaranteed to produce
|
|
30
51
|
* the same results as full collection scans. In these cases, query
|
|
@@ -40,16 +61,29 @@ import { PersistenceTransaction } from './persistence_transaction';
|
|
|
40
61
|
*/
|
|
41
62
|
export declare class QueryEngine {
|
|
42
63
|
private localDocumentsView;
|
|
64
|
+
private indexManager;
|
|
65
|
+
private initialized;
|
|
43
66
|
/** Sets the document view to query against. */
|
|
44
|
-
|
|
67
|
+
initialize(localDocuments: LocalDocumentsView, indexManager: IndexManager): void;
|
|
45
68
|
/** Returns all local documents matching the specified query. */
|
|
46
69
|
getDocumentsMatchingQuery(transaction: PersistenceTransaction, query: Query, lastLimboFreeSnapshotVersion: SnapshotVersion, remoteKeys: DocumentKeySet): PersistencePromise<DocumentMap>;
|
|
70
|
+
/**
|
|
71
|
+
* Performs an indexed query that evaluates the query based on a collection's
|
|
72
|
+
* persisted index values. Returns `null` if an index is not available.
|
|
73
|
+
*/
|
|
74
|
+
private performQueryUsingIndex;
|
|
75
|
+
/**
|
|
76
|
+
* Performs a query based on the target's persisted query mapping. Returns
|
|
77
|
+
* `null` if the mapping is not available or cannot be used.
|
|
78
|
+
*/
|
|
79
|
+
private performQueryUsingRemoteKeys;
|
|
47
80
|
/** Applies the query filter and sorting to the provided documents. */
|
|
48
81
|
private applyQuery;
|
|
49
82
|
/**
|
|
50
83
|
* Determines if a limit query needs to be refilled from cache, making it
|
|
51
84
|
* ineligible for index-free execution.
|
|
52
85
|
*
|
|
86
|
+
* @param query The query.
|
|
53
87
|
* @param sortedPreviousResults - The documents that matched the query when it
|
|
54
88
|
* was last synchronized, sorted by the query's comparator.
|
|
55
89
|
* @param remoteKeys - The document keys that matched the query at the last
|
|
@@ -59,4 +93,9 @@ export declare class QueryEngine {
|
|
|
59
93
|
*/
|
|
60
94
|
private needsRefill;
|
|
61
95
|
private executeFullCollectionScan;
|
|
96
|
+
/**
|
|
97
|
+
* Combines the results from an indexed execution with the remaining documents
|
|
98
|
+
* that have not yet been indexed.
|
|
99
|
+
*/
|
|
100
|
+
private appendRemainingResults;
|
|
62
101
|
}
|