@firebase/firestore 3.4.1 → 3.4.2-202205224240

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 (94) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  3. package/dist/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  4. package/dist/firestore/src/index/index_byte_encoder.d.ts +14 -0
  5. package/dist/firestore/src/index/ordered_code_writer.d.ts +60 -0
  6. package/dist/firestore/src/lite-api/reference.d.ts +4 -2
  7. package/dist/firestore/src/lite-api/reference_impl.d.ts +5 -0
  8. package/dist/firestore/src/lite-api/transaction.d.ts +4 -0
  9. package/dist/firestore/src/lite-api/write_batch.d.ts +3 -0
  10. package/dist/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
  11. package/dist/firestore/src/model/collections.d.ts +0 -4
  12. package/dist/firestore/src/model/document.d.ts +3 -1
  13. package/dist/firestore/src/model/values.d.ts +3 -0
  14. package/dist/firestore/src/util/byte_string.d.ts +1 -0
  15. package/dist/firestore/src/util/error.d.ts +2 -3
  16. package/dist/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  17. package/dist/firestore/test/util/helpers.d.ts +1 -0
  18. package/dist/index.d.ts +13 -21
  19. package/dist/index.esm2017.js +2649 -2640
  20. package/dist/index.esm2017.js.map +1 -1
  21. package/dist/index.esm5.js +2640 -2630
  22. package/dist/index.esm5.js.map +1 -1
  23. package/dist/index.node.cjs.js +42 -24
  24. package/dist/index.node.cjs.js.map +1 -1
  25. package/dist/index.node.mjs +43 -25
  26. package/dist/index.node.mjs.map +1 -1
  27. package/dist/index.rn.js +2839 -2830
  28. package/dist/index.rn.js.map +1 -1
  29. package/dist/internal.d.ts +18 -22
  30. package/dist/lite/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  31. package/dist/lite/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  32. package/dist/lite/firestore/src/index/index_byte_encoder.d.ts +14 -0
  33. package/dist/lite/firestore/src/index/ordered_code_writer.d.ts +60 -0
  34. package/dist/lite/firestore/src/lite-api/reference.d.ts +4 -2
  35. package/dist/lite/firestore/src/lite-api/reference_impl.d.ts +5 -0
  36. package/dist/lite/firestore/src/lite-api/transaction.d.ts +4 -0
  37. package/dist/lite/firestore/src/lite-api/write_batch.d.ts +3 -0
  38. package/dist/lite/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
  39. package/dist/lite/firestore/src/model/collections.d.ts +0 -4
  40. package/dist/lite/firestore/src/model/document.d.ts +3 -1
  41. package/dist/lite/firestore/src/model/values.d.ts +3 -0
  42. package/dist/lite/firestore/src/util/byte_string.d.ts +1 -0
  43. package/dist/lite/firestore/src/util/error.d.ts +2 -3
  44. package/dist/lite/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  45. package/dist/lite/firestore/test/util/helpers.d.ts +1 -0
  46. package/dist/lite/index.browser.esm2017.js +1378 -1365
  47. package/dist/lite/index.browser.esm2017.js.map +1 -1
  48. package/dist/lite/index.browser.esm5.js +842 -828
  49. package/dist/lite/index.browser.esm5.js.map +1 -1
  50. package/dist/lite/index.d.ts +18 -21
  51. package/dist/lite/index.node.cjs.js +25 -7
  52. package/dist/lite/index.node.cjs.js.map +1 -1
  53. package/dist/lite/index.node.mjs +26 -8
  54. package/dist/lite/index.node.mjs.map +1 -1
  55. package/dist/lite/index.rn.esm2017.js +849 -836
  56. package/dist/lite/index.rn.esm2017.js.map +1 -1
  57. package/dist/lite/internal.d.ts +86 -21
  58. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +142 -141
  59. package/dist/lite/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  60. package/dist/lite/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  61. package/dist/lite/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
  62. package/dist/lite/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
  63. package/dist/lite/packages/firestore/src/lite-api/reference.d.ts +4 -2
  64. package/dist/lite/packages/firestore/src/lite-api/reference_impl.d.ts +5 -0
  65. package/dist/lite/packages/firestore/src/lite-api/transaction.d.ts +4 -0
  66. package/dist/lite/packages/firestore/src/lite-api/write_batch.d.ts +3 -0
  67. package/dist/lite/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
  68. package/dist/lite/packages/firestore/src/model/collections.d.ts +0 -4
  69. package/dist/lite/packages/firestore/src/model/document.d.ts +3 -1
  70. package/dist/lite/packages/firestore/src/model/values.d.ts +3 -0
  71. package/dist/lite/packages/firestore/src/util/byte_string.d.ts +1 -0
  72. package/dist/lite/packages/firestore/src/util/error.d.ts +2 -3
  73. package/dist/lite/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  74. package/dist/lite/packages/firestore/test/util/helpers.d.ts +1 -0
  75. package/dist/lite/private.d.ts +85 -21
  76. package/dist/packages/firestore/dist/index.esm2017.d.ts +152 -152
  77. package/dist/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  78. package/dist/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  79. package/dist/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
  80. package/dist/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
  81. package/dist/packages/firestore/src/lite-api/reference.d.ts +4 -2
  82. package/dist/packages/firestore/src/lite-api/reference_impl.d.ts +5 -0
  83. package/dist/packages/firestore/src/lite-api/transaction.d.ts +4 -0
  84. package/dist/packages/firestore/src/lite-api/write_batch.d.ts +3 -0
  85. package/dist/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +5 -0
  86. package/dist/packages/firestore/src/model/collections.d.ts +0 -4
  87. package/dist/packages/firestore/src/model/document.d.ts +3 -1
  88. package/dist/packages/firestore/src/model/values.d.ts +3 -0
  89. package/dist/packages/firestore/src/util/byte_string.d.ts +1 -0
  90. package/dist/packages/firestore/src/util/error.d.ts +2 -3
  91. package/dist/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  92. package/dist/packages/firestore/test/util/helpers.d.ts +1 -0
  93. package/dist/private.d.ts +17 -22
  94. package/package.json +7 -7
@@ -14,7 +14,7 @@ var url = require('url');
14
14
  var protoLoader = require('@grpc/proto-loader');
15
15
 
16
16
  const name = "@firebase/firestore";
17
- const version$1 = "3.4.1";
17
+ const version$1 = "3.4.2-202205224240";
18
18
 
19
19
  /**
20
20
  * @license
@@ -67,7 +67,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
67
67
  User.FIRST_PARTY = new User('first-party-uid');
68
68
  User.MOCK_USER = new User('mock-user');
69
69
 
70
- const version = "9.6.1";
70
+ const version = "9.6.2-202205224240";
71
71
 
72
72
  /**
73
73
  * @license
@@ -387,7 +387,7 @@ const Code = {
387
387
  DATA_LOSS: 'data-loss'
388
388
  };
389
389
  /** An error returned by a Firestore operation. */
390
- class FirestoreError extends Error {
390
+ class FirestoreError extends util$1.FirebaseError {
391
391
  /** @hideconstructor */
392
392
  constructor(
393
393
  /**
@@ -398,11 +398,9 @@ class FirestoreError extends Error {
398
398
  * A custom error description.
399
399
  */
400
400
  message) {
401
- super(message);
401
+ super(code, message);
402
402
  this.code = code;
403
403
  this.message = message;
404
- /** The custom name for all FirestoreErrors. */
405
- this.name = 'FirebaseError';
406
404
  // HACK: We write a toString property directly because Error is not a real
407
405
  // class and so inheritance does not work correctly. We could alternatively
408
406
  // do the same "back-door inheritance" trick that FirebaseError does.
@@ -3165,6 +3163,19 @@ class ByteString {
3165
3163
  const binaryString = binaryStringFromUint8Array(array);
3166
3164
  return new ByteString(binaryString);
3167
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
+ }
3168
3179
  toBase64() {
3169
3180
  return encodeBase64(this.binaryString);
3170
3181
  }
@@ -3525,6 +3536,9 @@ function typeOrder(value) {
3525
3536
  }
3526
3537
  /** Tests `left` and `right` for equality based on the backend semantics. */
3527
3538
  function valueEquals(left, right) {
3539
+ if (left === right) {
3540
+ return true;
3541
+ }
3528
3542
  const leftType = typeOrder(left);
3529
3543
  const rightType = typeOrder(right);
3530
3544
  if (leftType !== rightType) {
@@ -3615,6 +3629,9 @@ function arrayValueContains(haystack, needle) {
3615
3629
  return ((haystack.values || []).find(v => valueEquals(v, needle)) !== undefined);
3616
3630
  }
3617
3631
  function valueCompare(left, right) {
3632
+ if (left === right) {
3633
+ return 0;
3634
+ }
3618
3635
  const leftType = typeOrder(left);
3619
3636
  const rightType = typeOrder(right);
3620
3637
  if (leftType !== rightType) {
@@ -4186,7 +4203,7 @@ class MutableDocument {
4186
4203
  this.documentState === other.documentState &&
4187
4204
  this.data.isEqual(other.data));
4188
4205
  }
4189
- clone() {
4206
+ mutableCopy() {
4190
4207
  return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
4191
4208
  }
4192
4209
  toString() {
@@ -11923,18 +11940,20 @@ function localStoreApplyRemoteEventToLocalCache(localStore, remoteEvent) {
11923
11940
  .next(() => {
11924
11941
  return localStoreImpl.targetCache.addMatchingKeys(txn, change.addedDocuments, targetId);
11925
11942
  }));
11926
- const resumeToken = change.resumeToken;
11927
- // Update the resume token if the change includes one.
11928
- if (resumeToken.approximateByteSize() > 0) {
11929
- const newTargetData = oldTargetData
11930
- .withResumeToken(resumeToken, remoteVersion)
11931
- .withSequenceNumber(txn.currentSequenceNumber);
11932
- newTargetDataByTargetMap = newTargetDataByTargetMap.insert(targetId, newTargetData);
11933
- // Update the target data if there are target changes (or if
11934
- // sufficient time has passed since the last update).
11935
- if (shouldPersistTargetData(oldTargetData, newTargetData, change)) {
11936
- promises.push(localStoreImpl.targetCache.updateTargetData(txn, newTargetData));
11937
- }
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));
11938
11957
  }
11939
11958
  });
11940
11959
  let changedDocs = mutableDocumentMap();
@@ -12034,7 +12053,6 @@ documentVersions) {
12034
12053
  * too frequent.
12035
12054
  */
12036
12055
  function shouldPersistTargetData(oldTargetData, newTargetData, change) {
12037
- hardAssert(newTargetData.resumeToken.approximateByteSize() > 0);
12038
12056
  // Always persist target data if we don't already have a resume token.
12039
12057
  if (oldTargetData.resumeToken.approximateByteSize() === 0) {
12040
12058
  return true;
@@ -12871,7 +12889,7 @@ class MemoryRemoteDocumentCacheImpl {
12871
12889
  const previousSize = entry ? entry.size : 0;
12872
12890
  const currentSize = this.sizer(doc);
12873
12891
  this.docs = this.docs.insert(key, {
12874
- document: doc.clone(),
12892
+ document: doc.mutableCopy(),
12875
12893
  size: currentSize,
12876
12894
  readTime
12877
12895
  });
@@ -12894,7 +12912,7 @@ class MemoryRemoteDocumentCacheImpl {
12894
12912
  getEntry(transaction, documentKey) {
12895
12913
  const entry = this.docs.get(documentKey);
12896
12914
  return PersistencePromise.resolve(entry
12897
- ? entry.document.clone()
12915
+ ? entry.document.mutableCopy()
12898
12916
  : MutableDocument.newInvalidDocument(documentKey));
12899
12917
  }
12900
12918
  getEntries(transaction, documentKeys) {
@@ -12902,7 +12920,7 @@ class MemoryRemoteDocumentCacheImpl {
12902
12920
  documentKeys.forEach(documentKey => {
12903
12921
  const entry = this.docs.get(documentKey);
12904
12922
  results = results.insert(documentKey, entry
12905
- ? entry.document.clone()
12923
+ ? entry.document.mutableCopy()
12906
12924
  : MutableDocument.newInvalidDocument(documentKey));
12907
12925
  });
12908
12926
  return PersistencePromise.resolve(results);
@@ -12924,7 +12942,7 @@ class MemoryRemoteDocumentCacheImpl {
12924
12942
  if (!queryMatches(query, document)) {
12925
12943
  continue;
12926
12944
  }
12927
- results = results.insert(document.key, document.clone());
12945
+ results = results.insert(document.key, document.mutableCopy());
12928
12946
  }
12929
12947
  return PersistencePromise.resolve(results);
12930
12948
  }