@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.mjs
CHANGED
|
@@ -2,16 +2,15 @@ import { _getProvider, getApp, _removeServiceInstance, _registerComponent, regis
|
|
|
2
2
|
import { Component } from '@firebase/component';
|
|
3
3
|
import { Logger, LogLevel } from '@firebase/logger';
|
|
4
4
|
import { inspect, TextEncoder, TextDecoder } from 'util';
|
|
5
|
-
import { createMockUserToken, getModularInstance, deepEqual, getUA, isIndexedDBAvailable, isSafari } from '@firebase/util';
|
|
5
|
+
import { FirebaseError, createMockUserToken, getModularInstance, deepEqual, getUA, isIndexedDBAvailable, isSafari } from '@firebase/util';
|
|
6
6
|
import { randomBytes as randomBytes$1 } from 'crypto';
|
|
7
|
-
import module from 'module';
|
|
8
7
|
import { credentials, loadPackageDefinition, Metadata } from '@grpc/grpc-js';
|
|
9
8
|
import { dirname, resolve, join } from 'path';
|
|
10
9
|
import { fileURLToPath } from 'url';
|
|
11
10
|
import { loadSync } from '@grpc/proto-loader';
|
|
12
11
|
|
|
13
12
|
const name = "@firebase/firestore";
|
|
14
|
-
const version$1 = "3.4.
|
|
13
|
+
const version$1 = "3.4.1-canary.0b385f18c";
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* @license
|
|
@@ -64,7 +63,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
|
|
|
64
63
|
User.FIRST_PARTY = new User('first-party-uid');
|
|
65
64
|
User.MOCK_USER = new User('mock-user');
|
|
66
65
|
|
|
67
|
-
const version = "9.6.
|
|
66
|
+
const version = "9.6.1-canary.0b385f18c";
|
|
68
67
|
|
|
69
68
|
/**
|
|
70
69
|
* @license
|
|
@@ -384,7 +383,7 @@ const Code = {
|
|
|
384
383
|
DATA_LOSS: 'data-loss'
|
|
385
384
|
};
|
|
386
385
|
/** An error returned by a Firestore operation. */
|
|
387
|
-
class FirestoreError extends
|
|
386
|
+
class FirestoreError extends FirebaseError {
|
|
388
387
|
/** @hideconstructor */
|
|
389
388
|
constructor(
|
|
390
389
|
/**
|
|
@@ -395,11 +394,9 @@ class FirestoreError extends Error {
|
|
|
395
394
|
* A custom error description.
|
|
396
395
|
*/
|
|
397
396
|
message) {
|
|
398
|
-
super(message);
|
|
397
|
+
super(code, message);
|
|
399
398
|
this.code = code;
|
|
400
399
|
this.message = message;
|
|
401
|
-
/** The custom name for all FirestoreErrors. */
|
|
402
|
-
this.name = 'FirebaseError';
|
|
403
400
|
// HACK: We write a toString property directly because Error is not a real
|
|
404
401
|
// class and so inheritance does not work correctly. We could alternatively
|
|
405
402
|
// do the same "back-door inheritance" trick that FirebaseError does.
|
|
@@ -3162,6 +3159,19 @@ class ByteString {
|
|
|
3162
3159
|
const binaryString = binaryStringFromUint8Array(array);
|
|
3163
3160
|
return new ByteString(binaryString);
|
|
3164
3161
|
}
|
|
3162
|
+
[Symbol.iterator]() {
|
|
3163
|
+
let i = 0;
|
|
3164
|
+
return {
|
|
3165
|
+
next: () => {
|
|
3166
|
+
if (i < this.binaryString.length) {
|
|
3167
|
+
return { value: this.binaryString.charCodeAt(i++), done: false };
|
|
3168
|
+
}
|
|
3169
|
+
else {
|
|
3170
|
+
return { value: undefined, done: true };
|
|
3171
|
+
}
|
|
3172
|
+
}
|
|
3173
|
+
};
|
|
3174
|
+
}
|
|
3165
3175
|
toBase64() {
|
|
3166
3176
|
return encodeBase64(this.binaryString);
|
|
3167
3177
|
}
|
|
@@ -3522,6 +3532,9 @@ function typeOrder(value) {
|
|
|
3522
3532
|
}
|
|
3523
3533
|
/** Tests `left` and `right` for equality based on the backend semantics. */
|
|
3524
3534
|
function valueEquals(left, right) {
|
|
3535
|
+
if (left === right) {
|
|
3536
|
+
return true;
|
|
3537
|
+
}
|
|
3525
3538
|
const leftType = typeOrder(left);
|
|
3526
3539
|
const rightType = typeOrder(right);
|
|
3527
3540
|
if (leftType !== rightType) {
|
|
@@ -3612,6 +3625,9 @@ function arrayValueContains(haystack, needle) {
|
|
|
3612
3625
|
return ((haystack.values || []).find(v => valueEquals(v, needle)) !== undefined);
|
|
3613
3626
|
}
|
|
3614
3627
|
function valueCompare(left, right) {
|
|
3628
|
+
if (left === right) {
|
|
3629
|
+
return 0;
|
|
3630
|
+
}
|
|
3615
3631
|
const leftType = typeOrder(left);
|
|
3616
3632
|
const rightType = typeOrder(right);
|
|
3617
3633
|
if (leftType !== rightType) {
|
|
@@ -4183,7 +4199,7 @@ class MutableDocument {
|
|
|
4183
4199
|
this.documentState === other.documentState &&
|
|
4184
4200
|
this.data.isEqual(other.data));
|
|
4185
4201
|
}
|
|
4186
|
-
|
|
4202
|
+
mutableCopy() {
|
|
4187
4203
|
return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
|
|
4188
4204
|
}
|
|
4189
4205
|
toString() {
|
|
@@ -11920,18 +11936,20 @@ function localStoreApplyRemoteEventToLocalCache(localStore, remoteEvent) {
|
|
|
11920
11936
|
.next(() => {
|
|
11921
11937
|
return localStoreImpl.targetCache.addMatchingKeys(txn, change.addedDocuments, targetId);
|
|
11922
11938
|
}));
|
|
11923
|
-
|
|
11924
|
-
|
|
11925
|
-
|
|
11926
|
-
|
|
11927
|
-
.
|
|
11928
|
-
|
|
11929
|
-
|
|
11930
|
-
|
|
11931
|
-
|
|
11932
|
-
|
|
11933
|
-
|
|
11934
|
-
|
|
11939
|
+
let newTargetData = oldTargetData.withSequenceNumber(txn.currentSequenceNumber);
|
|
11940
|
+
if (remoteEvent.targetMismatches.has(targetId)) {
|
|
11941
|
+
newTargetData = newTargetData
|
|
11942
|
+
.withResumeToken(ByteString.EMPTY_BYTE_STRING, SnapshotVersion.min())
|
|
11943
|
+
.withLastLimboFreeSnapshotVersion(SnapshotVersion.min());
|
|
11944
|
+
}
|
|
11945
|
+
else if (change.resumeToken.approximateByteSize() > 0) {
|
|
11946
|
+
newTargetData = newTargetData.withResumeToken(change.resumeToken, remoteVersion);
|
|
11947
|
+
}
|
|
11948
|
+
newTargetDataByTargetMap = newTargetDataByTargetMap.insert(targetId, newTargetData);
|
|
11949
|
+
// Update the target data if there are target changes (or if
|
|
11950
|
+
// sufficient time has passed since the last update).
|
|
11951
|
+
if (shouldPersistTargetData(oldTargetData, newTargetData, change)) {
|
|
11952
|
+
promises.push(localStoreImpl.targetCache.updateTargetData(txn, newTargetData));
|
|
11935
11953
|
}
|
|
11936
11954
|
});
|
|
11937
11955
|
let changedDocs = mutableDocumentMap();
|
|
@@ -12031,7 +12049,6 @@ documentVersions) {
|
|
|
12031
12049
|
* too frequent.
|
|
12032
12050
|
*/
|
|
12033
12051
|
function shouldPersistTargetData(oldTargetData, newTargetData, change) {
|
|
12034
|
-
hardAssert(newTargetData.resumeToken.approximateByteSize() > 0);
|
|
12035
12052
|
// Always persist target data if we don't already have a resume token.
|
|
12036
12053
|
if (oldTargetData.resumeToken.approximateByteSize() === 0) {
|
|
12037
12054
|
return true;
|
|
@@ -12868,7 +12885,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12868
12885
|
const previousSize = entry ? entry.size : 0;
|
|
12869
12886
|
const currentSize = this.sizer(doc);
|
|
12870
12887
|
this.docs = this.docs.insert(key, {
|
|
12871
|
-
document: doc.
|
|
12888
|
+
document: doc.mutableCopy(),
|
|
12872
12889
|
size: currentSize,
|
|
12873
12890
|
readTime
|
|
12874
12891
|
});
|
|
@@ -12891,7 +12908,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12891
12908
|
getEntry(transaction, documentKey) {
|
|
12892
12909
|
const entry = this.docs.get(documentKey);
|
|
12893
12910
|
return PersistencePromise.resolve(entry
|
|
12894
|
-
? entry.document.
|
|
12911
|
+
? entry.document.mutableCopy()
|
|
12895
12912
|
: MutableDocument.newInvalidDocument(documentKey));
|
|
12896
12913
|
}
|
|
12897
12914
|
getEntries(transaction, documentKeys) {
|
|
@@ -12899,7 +12916,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12899
12916
|
documentKeys.forEach(documentKey => {
|
|
12900
12917
|
const entry = this.docs.get(documentKey);
|
|
12901
12918
|
results = results.insert(documentKey, entry
|
|
12902
|
-
? entry.document.
|
|
12919
|
+
? entry.document.mutableCopy()
|
|
12903
12920
|
: MutableDocument.newInvalidDocument(documentKey));
|
|
12904
12921
|
});
|
|
12905
12922
|
return PersistencePromise.resolve(results);
|
|
@@ -12921,7 +12938,7 @@ class MemoryRemoteDocumentCacheImpl {
|
|
|
12921
12938
|
if (!queryMatches(query, document)) {
|
|
12922
12939
|
continue;
|
|
12923
12940
|
}
|
|
12924
|
-
results = results.insert(document.key, document.
|
|
12941
|
+
results = results.insert(document.key, document.mutableCopy());
|
|
12925
12942
|
}
|
|
12926
12943
|
return PersistencePromise.resolve(results);
|
|
12927
12944
|
}
|
|
@@ -14312,11 +14329,9 @@ function nodePromise(action) {
|
|
|
14312
14329
|
* See the License for the specific language governing permissions and
|
|
14313
14330
|
* limitations under the License.
|
|
14314
14331
|
*/
|
|
14315
|
-
//
|
|
14316
|
-
//
|
|
14317
|
-
const
|
|
14318
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14319
|
-
const { version: grpcVersion } = require('@grpc/grpc-js/package.json');
|
|
14332
|
+
// TODO: Fetch runtime version from grpc-js/package.json instead
|
|
14333
|
+
// when there's a cleaner way to dynamic require JSON in both Node ESM and CJS
|
|
14334
|
+
const grpcVersion = '1.3.7';
|
|
14320
14335
|
const LOG_TAG$9 = 'Connection';
|
|
14321
14336
|
const X_GOOG_API_CLIENT_VALUE = `gl-node/${process.versions.node} fire/${SDK_VERSION} grpc/${grpcVersion}`;
|
|
14322
14337
|
function createMetadata(databasePath, authToken, appCheckToken, appId) {
|
|
@@ -14483,8 +14498,8 @@ class GrpcConnection {
|
|
|
14483
14498
|
*/
|
|
14484
14499
|
// __filename and __dirname globals are unavailable in ES modules
|
|
14485
14500
|
// @ts-ignore To avoid using `--module es2020` flag.
|
|
14486
|
-
const
|
|
14487
|
-
const
|
|
14501
|
+
const __filenameInESM = fileURLToPath(import.meta.url);
|
|
14502
|
+
const __dirnameInESM = dirname(__filenameInESM);
|
|
14488
14503
|
/** Used by tests so we can match @grpc/proto-loader behavior. */
|
|
14489
14504
|
const protoLoaderOptions = {
|
|
14490
14505
|
longs: String,
|
|
@@ -14498,7 +14513,7 @@ const protoLoaderOptions = {
|
|
|
14498
14513
|
* @returns The GrpcObject representing our protos.
|
|
14499
14514
|
*/
|
|
14500
14515
|
function loadProtos() {
|
|
14501
|
-
const root = resolve(
|
|
14516
|
+
const root = resolve(__dirnameInESM, "src/protos" );
|
|
14502
14517
|
const firestoreProtoFile = join(root, 'google/firestore/v1/firestore.proto');
|
|
14503
14518
|
const packageDefinition = loadSync(firestoreProtoFile, Object.assign(Object.assign({}, protoLoaderOptions), { includeDirs: [root] }));
|
|
14504
14519
|
return loadPackageDefinition(packageDefinition);
|
|
@@ -20911,7 +20926,7 @@ function registerFirestore(variant, useFetchStreams = true) {
|
|
|
20911
20926
|
settings = Object.assign({ useFetchStreams }, settings);
|
|
20912
20927
|
firestoreInstance._setSettings(settings);
|
|
20913
20928
|
return firestoreInstance;
|
|
20914
|
-
},
|
|
20929
|
+
}, 'PUBLIC'));
|
|
20915
20930
|
registerVersion(name, version$1, variant);
|
|
20916
20931
|
// BUILD_TARGET will be replaced by values like esm5, esm2017, cjs5, etc during the compilation
|
|
20917
20932
|
registerVersion(name, version$1, 'esm2017');
|