@firebase/firestore 3.4.3 → 3.4.4-canary.0482aa5b7

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 (125) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/firestore/src/api/database.d.ts +14 -9
  3. package/dist/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  4. package/dist/firestore/src/api/index_configuration.d.ts +117 -0
  5. package/dist/firestore/src/api/snapshot.d.ts +1 -2
  6. package/dist/firestore/src/api.d.ts +2 -1
  7. package/dist/firestore/src/core/database_info.d.ts +1 -0
  8. package/dist/firestore/src/core/firestore_client.d.ts +2 -0
  9. package/dist/firestore/src/core/target.d.ts +34 -5
  10. package/dist/firestore/src/lite-api/query.d.ts +2 -2
  11. package/dist/firestore/src/local/index_manager.d.ts +52 -0
  12. package/dist/firestore/src/local/indexeddb_index_manager.d.ts +11 -0
  13. package/dist/firestore/src/local/indexeddb_schema.d.ts +121 -7
  14. package/dist/firestore/src/local/local_serializer.d.ts +1 -1
  15. package/dist/firestore/src/local/memory_index_manager.d.ts +11 -0
  16. package/dist/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  17. package/dist/firestore/src/model/document.d.ts +7 -0
  18. package/dist/firestore/src/model/document_key.d.ts +1 -0
  19. package/dist/firestore/src/model/field_index.d.ts +156 -0
  20. package/dist/firestore/src/model/values.d.ts +7 -0
  21. package/dist/firestore/test/integration/api/index_configuration.test.d.ts +17 -0
  22. package/dist/firestore/test/unit/local/test_remote_document_cache.d.ts +1 -1
  23. package/dist/firestore/test/unit/model/field_index.test.d.ts +17 -0
  24. package/dist/firestore/test/unit/model/target.test.d.ts +17 -0
  25. package/dist/firestore/test/util/helpers.d.ts +8 -2
  26. package/dist/index.d.ts +16 -11
  27. package/dist/index.esm2017.js +2979 -2671
  28. package/dist/index.esm2017.js.map +1 -1
  29. package/dist/index.esm5.js +3036 -2815
  30. package/dist/index.esm5.js.map +1 -1
  31. package/dist/index.node.cjs.js +644 -235
  32. package/dist/index.node.cjs.js.map +1 -1
  33. package/dist/index.node.mjs +644 -236
  34. package/dist/index.node.mjs.map +1 -1
  35. package/dist/index.rn.js +2761 -2449
  36. package/dist/index.rn.js.map +1 -1
  37. package/dist/internal.d.ts +303 -25
  38. package/dist/lite/firestore/src/api/database.d.ts +14 -9
  39. package/dist/lite/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  40. package/dist/lite/firestore/src/api/index_configuration.d.ts +117 -0
  41. package/dist/lite/firestore/src/api/snapshot.d.ts +1 -2
  42. package/dist/lite/firestore/src/api.d.ts +2 -1
  43. package/dist/lite/firestore/src/core/database_info.d.ts +1 -0
  44. package/dist/lite/firestore/src/core/firestore_client.d.ts +2 -0
  45. package/dist/lite/firestore/src/core/target.d.ts +34 -5
  46. package/dist/lite/firestore/src/lite-api/query.d.ts +2 -2
  47. package/dist/lite/firestore/src/local/index_manager.d.ts +52 -0
  48. package/dist/lite/firestore/src/local/indexeddb_index_manager.d.ts +11 -0
  49. package/dist/lite/firestore/src/local/indexeddb_schema.d.ts +121 -7
  50. package/dist/lite/firestore/src/local/local_serializer.d.ts +1 -1
  51. package/dist/lite/firestore/src/local/memory_index_manager.d.ts +11 -0
  52. package/dist/lite/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  53. package/dist/lite/firestore/src/model/document.d.ts +7 -0
  54. package/dist/lite/firestore/src/model/document_key.d.ts +1 -0
  55. package/dist/lite/firestore/src/model/field_index.d.ts +156 -0
  56. package/dist/lite/firestore/src/model/values.d.ts +7 -0
  57. package/dist/lite/firestore/test/integration/api/index_configuration.test.d.ts +17 -0
  58. package/dist/lite/firestore/test/unit/local/test_remote_document_cache.d.ts +1 -1
  59. package/dist/lite/firestore/test/unit/model/field_index.test.d.ts +17 -0
  60. package/dist/lite/firestore/test/unit/model/target.test.d.ts +17 -0
  61. package/dist/lite/firestore/test/util/helpers.d.ts +8 -2
  62. package/dist/lite/index.browser.esm2017.js +352 -338
  63. package/dist/lite/index.browser.esm2017.js.map +1 -1
  64. package/dist/lite/index.browser.esm5.js +334 -326
  65. package/dist/lite/index.browser.esm5.js.map +1 -1
  66. package/dist/lite/index.node.cjs.js +53 -34
  67. package/dist/lite/index.node.cjs.js.map +1 -1
  68. package/dist/lite/index.node.mjs +53 -34
  69. package/dist/lite/index.node.mjs.map +1 -1
  70. package/dist/lite/index.rn.esm2017.js +318 -304
  71. package/dist/lite/index.rn.esm2017.js.map +1 -1
  72. package/dist/lite/internal.d.ts +11 -2
  73. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +98 -97
  74. package/dist/lite/packages/firestore/src/api/database.d.ts +14 -9
  75. package/dist/lite/packages/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  76. package/dist/lite/packages/firestore/src/api/index_configuration.d.ts +117 -0
  77. package/dist/lite/packages/firestore/src/api/snapshot.d.ts +1 -2
  78. package/dist/lite/packages/firestore/src/api.d.ts +2 -1
  79. package/dist/lite/packages/firestore/src/core/database_info.d.ts +1 -0
  80. package/dist/lite/packages/firestore/src/core/firestore_client.d.ts +2 -0
  81. package/dist/lite/packages/firestore/src/core/target.d.ts +34 -5
  82. package/dist/lite/packages/firestore/src/lite-api/query.d.ts +2 -2
  83. package/dist/lite/packages/firestore/src/local/index_manager.d.ts +52 -0
  84. package/dist/lite/packages/firestore/src/local/indexeddb_index_manager.d.ts +11 -0
  85. package/dist/lite/packages/firestore/src/local/indexeddb_schema.d.ts +121 -7
  86. package/dist/lite/packages/firestore/src/local/local_serializer.d.ts +1 -1
  87. package/dist/lite/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  88. package/dist/lite/packages/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  89. package/dist/lite/packages/firestore/src/model/document.d.ts +7 -0
  90. package/dist/lite/packages/firestore/src/model/document_key.d.ts +1 -0
  91. package/dist/lite/packages/firestore/src/model/field_index.d.ts +156 -0
  92. package/dist/lite/packages/firestore/src/model/values.d.ts +7 -0
  93. package/dist/lite/packages/firestore/test/integration/api/index_configuration.test.d.ts +17 -0
  94. package/dist/lite/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +1 -1
  95. package/dist/lite/packages/firestore/test/unit/model/field_index.test.d.ts +17 -0
  96. package/dist/lite/packages/firestore/test/unit/model/target.test.d.ts +17 -0
  97. package/dist/lite/packages/firestore/test/util/helpers.d.ts +8 -2
  98. package/dist/lite/private.d.ts +9 -2
  99. package/dist/packages/firestore/dist/index.esm2017.d.ts +214 -191
  100. package/dist/packages/firestore/src/api/database.d.ts +14 -9
  101. package/dist/packages/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  102. package/dist/packages/firestore/src/api/index_configuration.d.ts +117 -0
  103. package/dist/packages/firestore/src/api/snapshot.d.ts +1 -2
  104. package/dist/packages/firestore/src/api.d.ts +2 -1
  105. package/dist/packages/firestore/src/core/database_info.d.ts +1 -0
  106. package/dist/packages/firestore/src/core/firestore_client.d.ts +2 -0
  107. package/dist/packages/firestore/src/core/target.d.ts +34 -5
  108. package/dist/packages/firestore/src/lite-api/query.d.ts +2 -2
  109. package/dist/packages/firestore/src/local/index_manager.d.ts +52 -0
  110. package/dist/packages/firestore/src/local/indexeddb_index_manager.d.ts +11 -0
  111. package/dist/packages/firestore/src/local/indexeddb_schema.d.ts +121 -7
  112. package/dist/packages/firestore/src/local/local_serializer.d.ts +1 -1
  113. package/dist/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  114. package/dist/packages/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  115. package/dist/packages/firestore/src/model/document.d.ts +7 -0
  116. package/dist/packages/firestore/src/model/document_key.d.ts +1 -0
  117. package/dist/packages/firestore/src/model/field_index.d.ts +156 -0
  118. package/dist/packages/firestore/src/model/values.d.ts +7 -0
  119. package/dist/packages/firestore/test/integration/api/index_configuration.test.d.ts +17 -0
  120. package/dist/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +1 -1
  121. package/dist/packages/firestore/test/unit/model/field_index.test.d.ts +17 -0
  122. package/dist/packages/firestore/test/unit/model/target.test.d.ts +17 -0
  123. package/dist/packages/firestore/test/util/helpers.d.ts +8 -2
  124. package/dist/private.d.ts +205 -25
  125. package/package.json +10 -10
@@ -14,7 +14,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
14
 
15
15
  var nodeFetch__default = /*#__PURE__*/_interopDefaultLegacy(nodeFetch);
16
16
 
17
- const version$1 = "3.4.3";
17
+ const version$1 = "3.4.4-canary.0482aa5b7";
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.3";
70
+ const version = "9.6.5-canary.0482aa5b7";
71
71
 
72
72
  /**
73
73
  * @license
@@ -666,6 +666,9 @@ class DatabaseId {
666
666
  this.projectId = projectId;
667
667
  this.database = database ? database : DEFAULT_DATABASE_NAME;
668
668
  }
669
+ static empty() {
670
+ return new DatabaseId('', '');
671
+ }
669
672
  get isDefaultDatabase() {
670
673
  return this.database === DEFAULT_DATABASE_NAME;
671
674
  }
@@ -979,6 +982,9 @@ class DocumentKey {
979
982
  static fromName(name) {
980
983
  return new DocumentKey(ResourcePath.fromString(name).popFirst(5));
981
984
  }
985
+ static empty() {
986
+ return new DocumentKey(ResourcePath.emptyPath());
987
+ }
982
988
  /** Returns true if the document is in the specified collectionId. */
983
989
  hasCollectionId(collectionId) {
984
990
  return (this.path.length >= 2 &&
@@ -2646,10 +2652,11 @@ class ObjectValue {
2646
2652
  * from all views.
2647
2653
  */
2648
2654
  class MutableDocument {
2649
- constructor(key, documentType, version, data, documentState) {
2655
+ constructor(key, documentType, version, readTime, data, documentState) {
2650
2656
  this.key = key;
2651
2657
  this.documentType = documentType;
2652
2658
  this.version = version;
2659
+ this.readTime = readTime;
2653
2660
  this.data = data;
2654
2661
  this.documentState = documentState;
2655
2662
  }
@@ -2658,18 +2665,18 @@ class MutableDocument {
2658
2665
  * base document for mutations.
2659
2666
  */
2660
2667
  static newInvalidDocument(documentKey) {
2661
- return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2668
+ return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2662
2669
  }
2663
2670
  /**
2664
2671
  * Creates a new document that is known to exist with the given data at the
2665
2672
  * given version.
2666
2673
  */
2667
2674
  static newFoundDocument(documentKey, version, value) {
2668
- return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, value, 0 /* SYNCED */);
2675
+ return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, SnapshotVersion.min(), value, 0 /* SYNCED */);
2669
2676
  }
2670
2677
  /** Creates a new document that is known to not exist at the given version. */
2671
2678
  static newNoDocument(documentKey, version) {
2672
- return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, ObjectValue.empty(), 0 /* SYNCED */);
2679
+ return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2673
2680
  }
2674
2681
  /**
2675
2682
  * Creates a new document that is known to exist at the given version but
@@ -2677,7 +2684,7 @@ class MutableDocument {
2677
2684
  * base document).
2678
2685
  */
2679
2686
  static newUnknownDocument(documentKey, version) {
2680
- return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2687
+ return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2681
2688
  }
2682
2689
  /**
2683
2690
  * Changes the document type to indicate that it exists and that its version
@@ -2721,6 +2728,10 @@ class MutableDocument {
2721
2728
  this.documentState = 1 /* HAS_LOCAL_MUTATIONS */;
2722
2729
  return this;
2723
2730
  }
2731
+ setReadTime(readTime) {
2732
+ this.readTime = readTime;
2733
+ return this;
2734
+ }
2724
2735
  get hasLocalMutations() {
2725
2736
  return this.documentState === 1 /* HAS_LOCAL_MUTATIONS */;
2726
2737
  }
@@ -2751,7 +2762,7 @@ class MutableDocument {
2751
2762
  this.data.isEqual(other.data));
2752
2763
  }
2753
2764
  mutableCopy() {
2754
- return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
2765
+ return new MutableDocument(this.key, this.documentType, this.version, this.readTime, this.data.clone(), this.documentState);
2755
2766
  }
2756
2767
  toString() {
2757
2768
  return (`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, ` +
@@ -3017,9 +3028,9 @@ class ArrayContainsAnyFilter extends FieldFilter {
3017
3028
  * just after the provided values.
3018
3029
  */
3019
3030
  class Bound {
3020
- constructor(position, before) {
3031
+ constructor(position, inclusive) {
3021
3032
  this.position = position;
3022
- this.before = before;
3033
+ this.inclusive = inclusive;
3023
3034
  }
3024
3035
  }
3025
3036
  /**
@@ -3041,7 +3052,7 @@ function boundEquals(left, right) {
3041
3052
  else if (right === null) {
3042
3053
  return false;
3043
3054
  }
3044
- if (left.before !== right.before ||
3055
+ if (left.inclusive !== right.inclusive ||
3045
3056
  left.position.length !== right.position.length) {
3046
3057
  return false;
3047
3058
  }
@@ -3206,10 +3217,10 @@ function queryToTarget(query) {
3206
3217
  }
3207
3218
  // We need to swap the cursors to match the now-flipped query ordering.
3208
3219
  const startAt = queryImpl.endAt
3209
- ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.before)
3220
+ ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.inclusive)
3210
3221
  : null;
3211
3222
  const endAt = queryImpl.startAt
3212
- ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.before)
3223
+ ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.inclusive)
3213
3224
  : null;
3214
3225
  // Now return as a LimitType.First query.
3215
3226
  queryImpl.memoizedTarget = newTarget(queryImpl.path, queryImpl.collectionGroup, orderBys, queryImpl.filters, queryImpl.limit, startAt, endAt);
@@ -3837,10 +3848,10 @@ function toQueryTarget(serializer, target) {
3837
3848
  result.structuredQuery.limit = limit;
3838
3849
  }
3839
3850
  if (target.startAt) {
3840
- result.structuredQuery.startAt = toCursor(target.startAt);
3851
+ result.structuredQuery.startAt = toStartAtCursor(target.startAt);
3841
3852
  }
3842
3853
  if (target.endAt) {
3843
- result.structuredQuery.endAt = toCursor(target.endAt);
3854
+ result.structuredQuery.endAt = toEndAtCursor(target.endAt);
3844
3855
  }
3845
3856
  return result;
3846
3857
  }
@@ -3862,9 +3873,15 @@ function toOrder(orderBys) {
3862
3873
  }
3863
3874
  return orderBys.map(order => toPropertyOrder(order));
3864
3875
  }
3865
- function toCursor(cursor) {
3876
+ function toStartAtCursor(cursor) {
3877
+ return {
3878
+ before: cursor.inclusive,
3879
+ values: cursor.position
3880
+ };
3881
+ }
3882
+ function toEndAtCursor(cursor) {
3866
3883
  return {
3867
- before: cursor.before,
3884
+ before: !cursor.inclusive,
3868
3885
  values: cursor.position
3869
3886
  };
3870
3887
  }
@@ -6141,51 +6158,53 @@ function limitToLast(limit) {
6141
6158
  return new QueryLimitConstraint('limitToLast', limit, "L" /* Last */);
6142
6159
  }
6143
6160
  class QueryStartAtConstraint extends QueryConstraint {
6144
- constructor(type, _docOrFields, _before) {
6161
+ constructor(type, _docOrFields, _inclusive) {
6145
6162
  super();
6146
6163
  this.type = type;
6147
6164
  this._docOrFields = _docOrFields;
6148
- this._before = _before;
6165
+ this._inclusive = _inclusive;
6149
6166
  }
6150
6167
  _apply(query) {
6151
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6168
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6152
6169
  return new Query(query.firestore, query.converter, queryWithStartAt(query._query, bound));
6153
6170
  }
6154
6171
  }
6155
6172
  function startAt(...docOrFields) {
6156
- return new QueryStartAtConstraint('startAt', docOrFields, /*before=*/ true);
6173
+ return new QueryStartAtConstraint('startAt', docOrFields,
6174
+ /*inclusive=*/ true);
6157
6175
  }
6158
6176
  function startAfter(...docOrFields) {
6159
6177
  return new QueryStartAtConstraint('startAfter', docOrFields,
6160
- /*before=*/ false);
6178
+ /*inclusive=*/ false);
6161
6179
  }
6162
6180
  class QueryEndAtConstraint extends QueryConstraint {
6163
- constructor(type, _docOrFields, _before) {
6181
+ constructor(type, _docOrFields, _inclusive) {
6164
6182
  super();
6165
6183
  this.type = type;
6166
6184
  this._docOrFields = _docOrFields;
6167
- this._before = _before;
6185
+ this._inclusive = _inclusive;
6168
6186
  }
6169
6187
  _apply(query) {
6170
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6188
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6171
6189
  return new Query(query.firestore, query.converter, queryWithEndAt(query._query, bound));
6172
6190
  }
6173
6191
  }
6174
6192
  function endBefore(...docOrFields) {
6175
- return new QueryEndAtConstraint('endBefore', docOrFields, /*before=*/ true);
6193
+ return new QueryEndAtConstraint('endBefore', docOrFields,
6194
+ /*inclusive=*/ false);
6176
6195
  }
6177
6196
  function endAt(...docOrFields) {
6178
- return new QueryEndAtConstraint('endAt', docOrFields, /*before=*/ false);
6197
+ return new QueryEndAtConstraint('endAt', docOrFields, /*inclusive=*/ true);
6179
6198
  }
6180
6199
  /** Helper function to create a bound from a document or fields */
6181
- function newQueryBoundFromDocOrFields(query, methodName, docOrFields, before) {
6200
+ function newQueryBoundFromDocOrFields(query, methodName, docOrFields, inclusive) {
6182
6201
  docOrFields[0] = util.getModularInstance(docOrFields[0]);
6183
6202
  if (docOrFields[0] instanceof DocumentSnapshot) {
6184
- return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, before);
6203
+ return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, inclusive);
6185
6204
  }
6186
6205
  else {
6187
6206
  const reader = newUserDataReader(query.firestore);
6188
- return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, before);
6207
+ return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, inclusive);
6189
6208
  }
6190
6209
  }
6191
6210
  function newQueryFilter(query, methodName, dataReader, databaseId, fieldPath, op, value) {
@@ -6243,7 +6262,7 @@ function newQueryOrderBy(query, fieldPath, direction) {
6243
6262
  * of the query or if any of the fields in the order by are an uncommitted
6244
6263
  * server timestamp.
6245
6264
  */
6246
- function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6265
+ function newQueryBoundFromDocument(query, databaseId, methodName, doc, inclusive) {
6247
6266
  if (!doc) {
6248
6267
  throw new FirestoreError(Code.NOT_FOUND, `Can't use a DocumentSnapshot that doesn't exist for ` +
6249
6268
  `${methodName}().`);
@@ -6280,12 +6299,12 @@ function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6280
6299
  }
6281
6300
  }
6282
6301
  }
6283
- return new Bound(components, before);
6302
+ return new Bound(components, inclusive);
6284
6303
  }
6285
6304
  /**
6286
6305
  * Converts a list of field values to a `Bound` for the given query.
6287
6306
  */
6288
- function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, before) {
6307
+ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, inclusive) {
6289
6308
  // Use explicit order by's because it has to match the query the user made
6290
6309
  const orderBy = query.explicitOrderBy;
6291
6310
  if (values.length > orderBy.length) {
@@ -6322,7 +6341,7 @@ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, valu
6322
6341
  components.push(wrapped);
6323
6342
  }
6324
6343
  }
6325
- return new Bound(components, before);
6344
+ return new Bound(components, inclusive);
6326
6345
  }
6327
6346
  /**
6328
6347
  * Parses the given `documentIdValue` into a `ReferenceValue`, throwing