@firebase/firestore 3.4.0 → 3.4.1-canary.0b385f18c
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 +8 -0
- package/dist/firestore/compat/index.d.ts +1 -1
- package/dist/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
- package/dist/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
- package/dist/firestore/src/index/index_byte_encoder.d.ts +14 -0
- package/dist/firestore/src/index/ordered_code_writer.d.ts +60 -0
- package/dist/firestore/src/lite-api/reference.d.ts +4 -2
- package/dist/firestore/src/lite-api/reference_impl.d.ts +5 -0
- package/dist/firestore/src/lite-api/transaction.d.ts +4 -0
- package/dist/firestore/src/lite-api/write_batch.d.ts +3 -0
- package/dist/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
- package/dist/firestore/src/model/collections.d.ts +0 -4
- package/dist/firestore/src/model/document.d.ts +3 -1
- package/dist/firestore/src/model/values.d.ts +3 -0
- package/dist/firestore/src/util/byte_string.d.ts +1 -0
- package/dist/firestore/src/util/error.d.ts +2 -3
- package/dist/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
- package/dist/firestore/test/util/helpers.d.ts +1 -0
- package/dist/index.d.ts +13 -21
- package/dist/index.esm2017.js +2649 -2640
- package/dist/index.esm2017.js.map +1 -1
- package/dist/index.esm5.js +2640 -2630
- package/dist/index.esm5.js.map +1 -1
- package/dist/index.node.cjs.js +49 -38
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +50 -35
- package/dist/index.node.mjs.map +1 -1
- package/dist/index.rn.js +2847 -2838
- package/dist/index.rn.js.map +1 -1
- package/dist/internal.d.ts +18 -22
- package/dist/lite/firestore/compat/index.d.ts +1 -1
- package/dist/lite/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
- package/dist/lite/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
- package/dist/lite/firestore/src/index/index_byte_encoder.d.ts +14 -0
- package/dist/lite/firestore/src/index/ordered_code_writer.d.ts +60 -0
- package/dist/lite/firestore/src/lite-api/reference.d.ts +4 -2
- package/dist/lite/firestore/src/lite-api/reference_impl.d.ts +5 -0
- package/dist/lite/firestore/src/lite-api/transaction.d.ts +4 -0
- package/dist/lite/firestore/src/lite-api/write_batch.d.ts +3 -0
- package/dist/lite/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
- package/dist/lite/firestore/src/model/collections.d.ts +0 -4
- package/dist/lite/firestore/src/model/document.d.ts +3 -1
- package/dist/lite/firestore/src/model/values.d.ts +3 -0
- package/dist/lite/firestore/src/util/byte_string.d.ts +1 -0
- package/dist/lite/firestore/src/util/error.d.ts +2 -3
- package/dist/lite/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
- package/dist/lite/firestore/test/util/helpers.d.ts +1 -0
- package/dist/lite/index.browser.esm2017.js +846 -833
- package/dist/lite/index.browser.esm2017.js.map +1 -1
- package/dist/lite/index.browser.esm5.js +834 -820
- package/dist/lite/index.browser.esm5.js.map +1 -1
- package/dist/lite/index.d.ts +18 -21
- package/dist/lite/index.node.cjs.js +26 -8
- package/dist/lite/index.node.cjs.js.map +1 -1
- package/dist/lite/index.node.mjs +27 -9
- package/dist/lite/index.node.mjs.map +1 -1
- package/dist/lite/index.rn.esm2017.js +836 -823
- package/dist/lite/index.rn.esm2017.js.map +1 -1
- package/dist/lite/internal.d.ts +86 -21
- package/dist/lite/packages/firestore/babel-register.d.ts +1 -0
- package/dist/lite/packages/firestore/compat/index.d.ts +1 -1
- package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +114 -113
- package/dist/lite/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
- package/dist/lite/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
- package/dist/lite/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
- package/dist/lite/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
- package/dist/lite/packages/firestore/src/lite-api/reference.d.ts +4 -2
- package/dist/lite/packages/firestore/src/lite-api/reference_impl.d.ts +5 -0
- package/dist/lite/packages/firestore/src/lite-api/transaction.d.ts +4 -0
- package/dist/lite/packages/firestore/src/lite-api/write_batch.d.ts +3 -0
- package/dist/lite/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
- package/dist/lite/packages/firestore/src/model/collections.d.ts +0 -4
- package/dist/lite/packages/firestore/src/model/document.d.ts +3 -1
- package/dist/lite/packages/firestore/src/model/values.d.ts +3 -0
- package/dist/lite/packages/firestore/src/util/byte_string.d.ts +1 -0
- package/dist/lite/packages/firestore/src/util/error.d.ts +2 -3
- package/dist/lite/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
- package/dist/lite/packages/firestore/test/util/helpers.d.ts +1 -0
- package/dist/lite/private.d.ts +85 -21
- package/dist/packages/firestore/babel-register.d.ts +1 -0
- package/dist/packages/firestore/compat/index.d.ts +1 -1
- package/dist/packages/firestore/dist/index.esm2017.d.ts +152 -152
- package/dist/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
- package/dist/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
- package/dist/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
- package/dist/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
- package/dist/packages/firestore/src/lite-api/reference.d.ts +4 -2
- package/dist/packages/firestore/src/lite-api/reference_impl.d.ts +5 -0
- package/dist/packages/firestore/src/lite-api/transaction.d.ts +4 -0
- package/dist/packages/firestore/src/lite-api/write_batch.d.ts +3 -0
- package/dist/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
- package/dist/packages/firestore/src/model/collections.d.ts +0 -4
- package/dist/packages/firestore/src/model/document.d.ts +3 -1
- package/dist/packages/firestore/src/model/values.d.ts +3 -0
- package/dist/packages/firestore/src/util/byte_string.d.ts +1 -0
- package/dist/packages/firestore/src/util/error.d.ts +2 -3
- package/dist/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
- package/dist/packages/firestore/test/util/helpers.d.ts +1 -0
- package/dist/private.d.ts +17 -22
- package/package.json +10 -10
package/dist/index.node.cjs.js
CHANGED
|
@@ -8,18 +8,13 @@ var logger = require('@firebase/logger');
|
|
|
8
8
|
var util = require('util');
|
|
9
9
|
var util$1 = require('@firebase/util');
|
|
10
10
|
var crypto = require('crypto');
|
|
11
|
-
var module$1 = require('module');
|
|
12
11
|
var grpcJs = require('@grpc/grpc-js');
|
|
13
12
|
var path = require('path');
|
|
14
13
|
var url = require('url');
|
|
15
14
|
var protoLoader = require('@grpc/proto-loader');
|
|
16
15
|
|
|
17
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
-
|
|
19
|
-
var module__default = /*#__PURE__*/_interopDefaultLegacy(module$1);
|
|
20
|
-
|
|
21
16
|
const name = "@firebase/firestore";
|
|
22
|
-
const version$1 = "3.4.
|
|
17
|
+
const version$1 = "3.4.1-canary.0b385f18c";
|
|
23
18
|
|
|
24
19
|
/**
|
|
25
20
|
* @license
|
|
@@ -72,7 +67,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
|
|
|
72
67
|
User.FIRST_PARTY = new User('first-party-uid');
|
|
73
68
|
User.MOCK_USER = new User('mock-user');
|
|
74
69
|
|
|
75
|
-
const version = "9.6.
|
|
70
|
+
const version = "9.6.1-canary.0b385f18c";
|
|
76
71
|
|
|
77
72
|
/**
|
|
78
73
|
* @license
|
|
@@ -392,7 +387,7 @@ const Code = {
|
|
|
392
387
|
DATA_LOSS: 'data-loss'
|
|
393
388
|
};
|
|
394
389
|
/** An error returned by a Firestore operation. */
|
|
395
|
-
class FirestoreError extends
|
|
390
|
+
class FirestoreError extends util$1.FirebaseError {
|
|
396
391
|
/** @hideconstructor */
|
|
397
392
|
constructor(
|
|
398
393
|
/**
|
|
@@ -403,11 +398,9 @@ class FirestoreError extends Error {
|
|
|
403
398
|
* A custom error description.
|
|
404
399
|
*/
|
|
405
400
|
message) {
|
|
406
|
-
super(message);
|
|
401
|
+
super(code, message);
|
|
407
402
|
this.code = code;
|
|
408
403
|
this.message = message;
|
|
409
|
-
/** The custom name for all FirestoreErrors. */
|
|
410
|
-
this.name = 'FirebaseError';
|
|
411
404
|
// HACK: We write a toString property directly because Error is not a real
|
|
412
405
|
// class and so inheritance does not work correctly. We could alternatively
|
|
413
406
|
// do the same "back-door inheritance" trick that FirebaseError does.
|
|
@@ -3170,6 +3163,19 @@ class ByteString {
|
|
|
3170
3163
|
const binaryString = binaryStringFromUint8Array(array);
|
|
3171
3164
|
return new ByteString(binaryString);
|
|
3172
3165
|
}
|
|
3166
|
+
[Symbol.iterator]() {
|
|
3167
|
+
let i = 0;
|
|
3168
|
+
return {
|
|
3169
|
+
next: () => {
|
|
3170
|
+
if (i < this.binaryString.length) {
|
|
3171
|
+
return { value: this.binaryString.charCodeAt(i++), done: false };
|
|
3172
|
+
}
|
|
3173
|
+
else {
|
|
3174
|
+
return { value: undefined, done: true };
|
|
3175
|
+
}
|
|
3176
|
+
}
|
|
3177
|
+
};
|
|
3178
|
+
}
|
|
3173
3179
|
toBase64() {
|
|
3174
3180
|
return encodeBase64(this.binaryString);
|
|
3175
3181
|
}
|
|
@@ -3530,6 +3536,9 @@ function typeOrder(value) {
|
|
|
3530
3536
|
}
|
|
3531
3537
|
/** Tests `left` and `right` for equality based on the backend semantics. */
|
|
3532
3538
|
function valueEquals(left, right) {
|
|
3539
|
+
if (left === right) {
|
|
3540
|
+
return true;
|
|
3541
|
+
}
|
|
3533
3542
|
const leftType = typeOrder(left);
|
|
3534
3543
|
const rightType = typeOrder(right);
|
|
3535
3544
|
if (leftType !== rightType) {
|
|
@@ -3620,6 +3629,9 @@ function arrayValueContains(haystack, needle) {
|
|
|
3620
3629
|
return ((haystack.values || []).find(v => valueEquals(v, needle)) !== undefined);
|
|
3621
3630
|
}
|
|
3622
3631
|
function valueCompare(left, right) {
|
|
3632
|
+
if (left === right) {
|
|
3633
|
+
return 0;
|
|
3634
|
+
}
|
|
3623
3635
|
const leftType = typeOrder(left);
|
|
3624
3636
|
const rightType = typeOrder(right);
|
|
3625
3637
|
if (leftType !== rightType) {
|
|
@@ -4191,7 +4203,7 @@ class MutableDocument {
|
|
|
4191
4203
|
this.documentState === other.documentState &&
|
|
4192
4204
|
this.data.isEqual(other.data));
|
|
4193
4205
|
}
|
|
4194
|
-
|
|
4206
|
+
mutableCopy() {
|
|
4195
4207
|
return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
|
|
4196
4208
|
}
|
|
4197
4209
|
toString() {
|
|
@@ -11928,18 +11940,20 @@ function localStoreApplyRemoteEventToLocalCache(localStore, remoteEvent) {
|
|
|
11928
11940
|
.next(() => {
|
|
11929
11941
|
return localStoreImpl.targetCache.addMatchingKeys(txn, change.addedDocuments, targetId);
|
|
11930
11942
|
}));
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
|
|
11934
|
-
|
|
11935
|
-
.
|
|
11936
|
-
|
|
11937
|
-
|
|
11938
|
-
|
|
11939
|
-
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
|
|
11943
|
+
let newTargetData = oldTargetData.withSequenceNumber(txn.currentSequenceNumber);
|
|
11944
|
+
if (remoteEvent.targetMismatches.has(targetId)) {
|
|
11945
|
+
newTargetData = newTargetData
|
|
11946
|
+
.withResumeToken(ByteString.EMPTY_BYTE_STRING, SnapshotVersion.min())
|
|
11947
|
+
.withLastLimboFreeSnapshotVersion(SnapshotVersion.min());
|
|
11948
|
+
}
|
|
11949
|
+
else if (change.resumeToken.approximateByteSize() > 0) {
|
|
11950
|
+
newTargetData = newTargetData.withResumeToken(change.resumeToken, remoteVersion);
|
|
11951
|
+
}
|
|
11952
|
+
newTargetDataByTargetMap = newTargetDataByTargetMap.insert(targetId, newTargetData);
|
|
11953
|
+
// Update the target data if there are target changes (or if
|
|
11954
|
+
// sufficient time has passed since the last update).
|
|
11955
|
+
if (shouldPersistTargetData(oldTargetData, newTargetData, change)) {
|
|
11956
|
+
promises.push(localStoreImpl.targetCache.updateTargetData(txn, newTargetData));
|
|
11943
11957
|
}
|
|
11944
11958
|
});
|
|
11945
11959
|
let changedDocs = mutableDocumentMap();
|
|
@@ -12039,7 +12053,6 @@ documentVersions) {
|
|
|
12039
12053
|
* too frequent.
|
|
12040
12054
|
*/
|
|
12041
12055
|
function shouldPersistTargetData(oldTargetData, newTargetData, change) {
|
|
12042
|
-
hardAssert(newTargetData.resumeToken.approximateByteSize() > 0);
|
|
12043
12056
|
// Always persist target data if we don't already have a resume token.
|
|
12044
12057
|
if (oldTargetData.resumeToken.approximateByteSize() === 0) {
|
|
12045
12058
|
return true;
|
|
@@ -12876,7 +12889,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12876
12889
|
const previousSize = entry ? entry.size : 0;
|
|
12877
12890
|
const currentSize = this.sizer(doc);
|
|
12878
12891
|
this.docs = this.docs.insert(key, {
|
|
12879
|
-
document: doc.
|
|
12892
|
+
document: doc.mutableCopy(),
|
|
12880
12893
|
size: currentSize,
|
|
12881
12894
|
readTime
|
|
12882
12895
|
});
|
|
@@ -12899,7 +12912,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12899
12912
|
getEntry(transaction, documentKey) {
|
|
12900
12913
|
const entry = this.docs.get(documentKey);
|
|
12901
12914
|
return PersistencePromise.resolve(entry
|
|
12902
|
-
? entry.document.
|
|
12915
|
+
? entry.document.mutableCopy()
|
|
12903
12916
|
: MutableDocument.newInvalidDocument(documentKey));
|
|
12904
12917
|
}
|
|
12905
12918
|
getEntries(transaction, documentKeys) {
|
|
@@ -12907,7 +12920,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12907
12920
|
documentKeys.forEach(documentKey => {
|
|
12908
12921
|
const entry = this.docs.get(documentKey);
|
|
12909
12922
|
results = results.insert(documentKey, entry
|
|
12910
|
-
? entry.document.
|
|
12923
|
+
? entry.document.mutableCopy()
|
|
12911
12924
|
: MutableDocument.newInvalidDocument(documentKey));
|
|
12912
12925
|
});
|
|
12913
12926
|
return PersistencePromise.resolve(results);
|
|
@@ -12929,7 +12942,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12929
12942
|
if (!queryMatches(query, document)) {
|
|
12930
12943
|
continue;
|
|
12931
12944
|
}
|
|
12932
|
-
results = results.insert(document.key, document.
|
|
12945
|
+
results = results.insert(document.key, document.mutableCopy());
|
|
12933
12946
|
}
|
|
12934
12947
|
return PersistencePromise.resolve(results);
|
|
12935
12948
|
}
|
|
@@ -14320,11 +14333,9 @@ function nodePromise(action) {
|
|
|
14320
14333
|
* See the License for the specific language governing permissions and
|
|
14321
14334
|
* limitations under the License.
|
|
14322
14335
|
*/
|
|
14323
|
-
//
|
|
14324
|
-
//
|
|
14325
|
-
const
|
|
14326
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14327
|
-
const { version: grpcVersion } = require$1('@grpc/grpc-js/package.json');
|
|
14336
|
+
// TODO: Fetch runtime version from grpc-js/package.json instead
|
|
14337
|
+
// when there's a cleaner way to dynamic require JSON in both Node ESM and CJS
|
|
14338
|
+
const grpcVersion = '1.3.7';
|
|
14328
14339
|
const LOG_TAG$9 = 'Connection';
|
|
14329
14340
|
const X_GOOG_API_CLIENT_VALUE = `gl-node/${process.versions.node} fire/${SDK_VERSION} grpc/${grpcVersion}`;
|
|
14330
14341
|
function createMetadata(databasePath, authToken, appCheckToken, appId) {
|
|
@@ -14491,8 +14502,8 @@ class GrpcConnection {
|
|
|
14491
14502
|
*/
|
|
14492
14503
|
// __filename and __dirname globals are unavailable in ES modules
|
|
14493
14504
|
// @ts-ignore To avoid using `--module es2020` flag.
|
|
14494
|
-
const
|
|
14495
|
-
const
|
|
14505
|
+
const __filenameInESM = url.fileURLToPath(new (require('url').URL)('file:' + __filename).href);
|
|
14506
|
+
const __dirnameInESM = path.dirname(__filenameInESM);
|
|
14496
14507
|
/** Used by tests so we can match @grpc/proto-loader behavior. */
|
|
14497
14508
|
const protoLoaderOptions = {
|
|
14498
14509
|
longs: String,
|
|
@@ -14506,7 +14517,7 @@ const protoLoaderOptions = {
|
|
|
14506
14517
|
* @returns The GrpcObject representing our protos.
|
|
14507
14518
|
*/
|
|
14508
14519
|
function loadProtos() {
|
|
14509
|
-
const root = path.resolve(
|
|
14520
|
+
const root = path.resolve(__dirnameInESM, "src/protos" );
|
|
14510
14521
|
const firestoreProtoFile = path.join(root, 'google/firestore/v1/firestore.proto');
|
|
14511
14522
|
const packageDefinition = protoLoader.loadSync(firestoreProtoFile, Object.assign(Object.assign({}, protoLoaderOptions), { includeDirs: [root] }));
|
|
14512
14523
|
return grpcJs.loadPackageDefinition(packageDefinition);
|
|
@@ -20919,7 +20930,7 @@ function registerFirestore(variant, useFetchStreams = true) {
|
|
|
20919
20930
|
settings = Object.assign({ useFetchStreams }, settings);
|
|
20920
20931
|
firestoreInstance._setSettings(settings);
|
|
20921
20932
|
return firestoreInstance;
|
|
20922
|
-
},
|
|
20933
|
+
}, 'PUBLIC'));
|
|
20923
20934
|
app.registerVersion(name, version$1, variant);
|
|
20924
20935
|
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
|
|
20925
20936
|
app.registerVersion(name, version$1, 'cjs2017');
|