@firebase/firestore 3.4.1-canary.c2fff0c6a → 3.4.2-canary.044a8d7f9

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 (70) hide show
  1. package/CHANGELOG.md +12 -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/model/values.d.ts +3 -0
  8. package/dist/firestore/src/util/byte_string.d.ts +1 -0
  9. package/dist/firestore/src/util/error.d.ts +2 -3
  10. package/dist/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  11. package/dist/firestore/test/util/helpers.d.ts +1 -0
  12. package/dist/index.d.ts +6 -21
  13. package/dist/index.esm2017.js +2639 -2630
  14. package/dist/index.esm2017.js.map +1 -1
  15. package/dist/index.esm5.js +2601 -2591
  16. package/dist/index.esm5.js.map +1 -1
  17. package/dist/index.node.cjs.js +38 -20
  18. package/dist/index.node.cjs.js.map +1 -1
  19. package/dist/index.node.mjs +38 -20
  20. package/dist/index.node.mjs.map +1 -1
  21. package/dist/index.rn.js +2837 -2828
  22. package/dist/index.rn.js.map +1 -1
  23. package/dist/internal.d.ts +7 -21
  24. package/dist/lite/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  25. package/dist/lite/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  26. package/dist/lite/firestore/src/index/index_byte_encoder.d.ts +14 -0
  27. package/dist/lite/firestore/src/index/ordered_code_writer.d.ts +60 -0
  28. package/dist/lite/firestore/src/lite-api/reference.d.ts +4 -2
  29. package/dist/lite/firestore/src/model/values.d.ts +3 -0
  30. package/dist/lite/firestore/src/util/byte_string.d.ts +1 -0
  31. package/dist/lite/firestore/src/util/error.d.ts +2 -3
  32. package/dist/lite/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  33. package/dist/lite/firestore/test/util/helpers.d.ts +1 -0
  34. package/dist/lite/index.browser.esm2017.js +834 -822
  35. package/dist/lite/index.browser.esm2017.js.map +1 -1
  36. package/dist/lite/index.browser.esm5.js +835 -822
  37. package/dist/lite/index.browser.esm5.js.map +1 -1
  38. package/dist/lite/index.d.ts +6 -21
  39. package/dist/lite/index.node.cjs.js +23 -6
  40. package/dist/lite/index.node.cjs.js.map +1 -1
  41. package/dist/lite/index.node.mjs +24 -7
  42. package/dist/lite/index.node.mjs.map +1 -1
  43. package/dist/lite/index.rn.esm2017.js +833 -821
  44. package/dist/lite/index.rn.esm2017.js.map +1 -1
  45. package/dist/lite/internal.d.ts +7 -21
  46. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +109 -109
  47. package/dist/lite/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  48. package/dist/lite/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  49. package/dist/lite/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
  50. package/dist/lite/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
  51. package/dist/lite/packages/firestore/src/lite-api/reference.d.ts +4 -2
  52. package/dist/lite/packages/firestore/src/model/values.d.ts +3 -0
  53. package/dist/lite/packages/firestore/src/util/byte_string.d.ts +1 -0
  54. package/dist/lite/packages/firestore/src/util/error.d.ts +2 -3
  55. package/dist/lite/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  56. package/dist/lite/packages/firestore/test/util/helpers.d.ts +1 -0
  57. package/dist/lite/private.d.ts +6 -21
  58. package/dist/packages/firestore/dist/index.esm2017.d.ts +156 -156
  59. package/dist/packages/firestore/src/index/directional_index_byte_encoder.d.ts +24 -0
  60. package/dist/packages/firestore/src/index/firestore_index_value_writer.d.ts +33 -0
  61. package/dist/packages/firestore/src/index/index_byte_encoder.d.ts +14 -0
  62. package/dist/packages/firestore/src/index/ordered_code_writer.d.ts +60 -0
  63. package/dist/packages/firestore/src/lite-api/reference.d.ts +4 -2
  64. package/dist/packages/firestore/src/model/values.d.ts +3 -0
  65. package/dist/packages/firestore/src/util/byte_string.d.ts +1 -0
  66. package/dist/packages/firestore/src/util/error.d.ts +2 -3
  67. package/dist/packages/firestore/test/unit/index/ordered_code_writer.test.d.ts +1 -0
  68. package/dist/packages/firestore/test/util/helpers.d.ts +1 -0
  69. package/dist/private.d.ts +6 -21
  70. package/package.json +9 -9
@@ -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-canary.c2fff0c6a";
13
+ const version$1 = "3.4.2-canary.044a8d7f9";
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-canary.c2fff0c6a";
66
+ const version = "9.6.2-canary.044a8d7f9";
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) {
@@ -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;