@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
@@ -2,7 +2,7 @@ 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
7
  import { credentials, loadPackageDefinition, Metadata } from '@grpc/grpc-js';
8
8
  import { dirname, resolve, join } from 'path';
@@ -10,7 +10,7 @@ import { fileURLToPath } from 'url';
10
10
  import { loadSync } from '@grpc/proto-loader';
11
11
 
12
12
  const name = "@firebase/firestore";
13
- const version$1 = "3.4.1";
13
+ const version$1 = "3.4.2-202205224240";
14
14
 
15
15
  /**
16
16
  * @license
@@ -63,7 +63,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
63
63
  User.FIRST_PARTY = new User('first-party-uid');
64
64
  User.MOCK_USER = new User('mock-user');
65
65
 
66
- const version = "9.6.1";
66
+ const version = "9.6.2-202205224240";
67
67
 
68
68
  /**
69
69
  * @license
@@ -383,7 +383,7 @@ const Code = {
383
383
  DATA_LOSS: 'data-loss'
384
384
  };
385
385
  /** An error returned by a Firestore operation. */
386
- class FirestoreError extends Error {
386
+ class FirestoreError extends FirebaseError {
387
387
  /** @hideconstructor */
388
388
  constructor(
389
389
  /**
@@ -394,11 +394,9 @@ class FirestoreError extends Error {
394
394
  * A custom error description.
395
395
  */
396
396
  message) {
397
- super(message);
397
+ super(code, message);
398
398
  this.code = code;
399
399
  this.message = message;
400
- /** The custom name for all FirestoreErrors. */
401
- this.name = 'FirebaseError';
402
400
  // HACK: We write a toString property directly because Error is not a real
403
401
  // class and so inheritance does not work correctly. We could alternatively
404
402
  // do the same "back-door inheritance" trick that FirebaseError does.
@@ -3161,6 +3159,19 @@ class ByteString {
3161
3159
  const binaryString = binaryStringFromUint8Array(array);
3162
3160
  return new ByteString(binaryString);
3163
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
+ }
3164
3175
  toBase64() {
3165
3176
  return encodeBase64(this.binaryString);
3166
3177
  }
@@ -3521,6 +3532,9 @@ function typeOrder(value) {
3521
3532
  }
3522
3533
  /** Tests `left` and `right` for equality based on the backend semantics. */
3523
3534
  function valueEquals(left, right) {
3535
+ if (left === right) {
3536
+ return true;
3537
+ }
3524
3538
  const leftType = typeOrder(left);
3525
3539
  const rightType = typeOrder(right);
3526
3540
  if (leftType !== rightType) {
@@ -3611,6 +3625,9 @@ function arrayValueContains(haystack, needle) {
3611
3625
  return ((haystack.values || []).find(v => valueEquals(v, needle)) !== undefined);
3612
3626
  }
3613
3627
  function valueCompare(left, right) {
3628
+ if (left === right) {
3629
+ return 0;
3630
+ }
3614
3631
  const leftType = typeOrder(left);
3615
3632
  const rightType = typeOrder(right);
3616
3633
  if (leftType !== rightType) {
@@ -4182,7 +4199,7 @@ class MutableDocument {
4182
4199
  this.documentState === other.documentState &&
4183
4200
  this.data.isEqual(other.data));
4184
4201
  }
4185
- clone() {
4202
+ mutableCopy() {
4186
4203
  return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
4187
4204
  }
4188
4205
  toString() {
@@ -11919,18 +11936,20 @@ function localStoreApplyRemoteEventToLocalCache(localStore, remoteEvent) {
11919
11936
  .next(() => {
11920
11937
  return localStoreImpl.targetCache.addMatchingKeys(txn, change.addedDocuments, targetId);
11921
11938
  }));
11922
- const resumeToken = change.resumeToken;
11923
- // Update the resume token if the change includes one.
11924
- if (resumeToken.approximateByteSize() > 0) {
11925
- const newTargetData = oldTargetData
11926
- .withResumeToken(resumeToken, remoteVersion)
11927
- .withSequenceNumber(txn.currentSequenceNumber);
11928
- newTargetDataByTargetMap = newTargetDataByTargetMap.insert(targetId, newTargetData);
11929
- // Update the target data if there are target changes (or if
11930
- // sufficient time has passed since the last update).
11931
- if (shouldPersistTargetData(oldTargetData, newTargetData, change)) {
11932
- promises.push(localStoreImpl.targetCache.updateTargetData(txn, newTargetData));
11933
- }
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));
11934
11953
  }
11935
11954
  });
11936
11955
  let changedDocs = mutableDocumentMap();
@@ -12030,7 +12049,6 @@ documentVersions) {
12030
12049
  * too frequent.
12031
12050
  */
12032
12051
  function shouldPersistTargetData(oldTargetData, newTargetData, change) {
12033
- hardAssert(newTargetData.resumeToken.approximateByteSize() > 0);
12034
12052
  // Always persist target data if we don't already have a resume token.
12035
12053
  if (oldTargetData.resumeToken.approximateByteSize() === 0) {
12036
12054
  return true;
@@ -12867,7 +12885,7 @@ class MemoryRemoteDocumentCacheImpl {
12867
12885
  const previousSize = entry ? entry.size : 0;
12868
12886
  const currentSize = this.sizer(doc);
12869
12887
  this.docs = this.docs.insert(key, {
12870
- document: doc.clone(),
12888
+ document: doc.mutableCopy(),
12871
12889
  size: currentSize,
12872
12890
  readTime
12873
12891
  });
@@ -12890,7 +12908,7 @@ class MemoryRemoteDocumentCacheImpl {
12890
12908
  getEntry(transaction, documentKey) {
12891
12909
  const entry = this.docs.get(documentKey);
12892
12910
  return PersistencePromise.resolve(entry
12893
- ? entry.document.clone()
12911
+ ? entry.document.mutableCopy()
12894
12912
  : MutableDocument.newInvalidDocument(documentKey));
12895
12913
  }
12896
12914
  getEntries(transaction, documentKeys) {
@@ -12898,7 +12916,7 @@ class MemoryRemoteDocumentCacheImpl {
12898
12916
  documentKeys.forEach(documentKey => {
12899
12917
  const entry = this.docs.get(documentKey);
12900
12918
  results = results.insert(documentKey, entry
12901
- ? entry.document.clone()
12919
+ ? entry.document.mutableCopy()
12902
12920
  : MutableDocument.newInvalidDocument(documentKey));
12903
12921
  });
12904
12922
  return PersistencePromise.resolve(results);
@@ -12920,7 +12938,7 @@ class MemoryRemoteDocumentCacheImpl {
12920
12938
  if (!queryMatches(query, document)) {
12921
12939
  continue;
12922
12940
  }
12923
- results = results.insert(document.key, document.clone());
12941
+ results = results.insert(document.key, document.mutableCopy());
12924
12942
  }
12925
12943
  return PersistencePromise.resolve(results);
12926
12944
  }