@firebase/firestore 3.4.4 → 3.4.5-2022116201138

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 (213) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/firestore/src/api/credentials.d.ts +1 -0
  3. package/dist/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  4. package/dist/firestore/src/api/snapshot.d.ts +1 -2
  5. package/dist/firestore/src/api.d.ts +1 -1
  6. package/dist/firestore/src/core/database_info.d.ts +1 -0
  7. package/dist/firestore/src/core/target.d.ts +34 -5
  8. package/dist/firestore/src/index/index_byte_encoder.d.ts +18 -1
  9. package/dist/firestore/src/index/index_entry.d.ts +26 -0
  10. package/dist/firestore/src/lite-api/query.d.ts +2 -2
  11. package/dist/firestore/src/local/document_overlay_cache.d.ts +72 -0
  12. package/dist/firestore/src/local/index_manager.d.ts +52 -0
  13. package/dist/firestore/src/local/indexeddb_document_overlay_cache.d.ts +45 -0
  14. package/dist/firestore/src/local/indexeddb_index_manager.d.ts +40 -2
  15. package/dist/firestore/src/local/indexeddb_persistence.d.ts +6 -4
  16. package/dist/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  17. package/dist/firestore/src/local/indexeddb_schema.d.ts +195 -7
  18. package/dist/firestore/src/local/local_documents_view.d.ts +0 -1
  19. package/dist/firestore/src/local/local_serializer.d.ts +19 -3
  20. package/dist/firestore/src/local/memory_document_overlay_cache.d.ts +37 -0
  21. package/dist/firestore/src/local/memory_index_manager.d.ts +11 -0
  22. package/dist/firestore/src/local/memory_persistence.d.ts +6 -2
  23. package/dist/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  24. package/dist/firestore/src/local/persistence.d.ts +8 -2
  25. package/dist/firestore/src/local/remote_document_cache.d.ts +7 -9
  26. package/dist/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  27. package/dist/firestore/src/local/simple_db.d.ts +1 -0
  28. package/dist/firestore/src/model/document.d.ts +7 -0
  29. package/dist/firestore/src/model/document_key.d.ts +6 -0
  30. package/dist/firestore/src/model/field_index.d.ts +87 -7
  31. package/dist/firestore/src/model/overlay.d.ts +32 -0
  32. package/dist/firestore/src/model/target_index_matcher.d.ts +70 -0
  33. package/dist/firestore/src/model/values.d.ts +7 -0
  34. package/dist/firestore/src/platform/node/grpc_connection.d.ts +2 -2
  35. package/dist/firestore/src/platform/node/load_protos.d.ts +2 -2
  36. package/dist/firestore/src/util/sorted_set.d.ts +18 -0
  37. package/dist/firestore/test/unit/local/counting_query_engine.d.ts +3 -3
  38. package/dist/firestore/test/unit/local/document_overlay_cache.test.d.ts +1 -0
  39. package/dist/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  40. package/dist/firestore/test/unit/local/test_document_overlay_cache.d.ts +38 -0
  41. package/dist/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  42. package/dist/firestore/test/unit/local/test_remote_document_cache.d.ts +5 -3
  43. package/dist/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  44. package/dist/firestore/test/unit/model/field_index.test.d.ts +17 -0
  45. package/dist/firestore/test/unit/model/target.test.d.ts +17 -0
  46. package/dist/firestore/test/unit/model/target_index_matcher.test.d.ts +17 -0
  47. package/dist/firestore/test/util/helpers.d.ts +8 -2
  48. package/dist/index.d.ts +1 -2
  49. package/dist/index.esm2017.js +4815 -3708
  50. package/dist/index.esm2017.js.map +1 -1
  51. package/dist/index.esm5.js +4500 -3545
  52. package/dist/index.esm5.js.map +1 -1
  53. package/dist/index.node.cjs.js +2001 -389
  54. package/dist/index.node.cjs.js.map +1 -1
  55. package/dist/index.node.mjs +1981 -390
  56. package/dist/index.node.mjs.map +1 -1
  57. package/dist/index.rn.js +4798 -3733
  58. package/dist/index.rn.js.map +1 -1
  59. package/dist/internal.d.ts +265 -26
  60. package/dist/lite/firestore/src/api/credentials.d.ts +1 -0
  61. package/dist/lite/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  62. package/dist/lite/firestore/src/api/snapshot.d.ts +1 -2
  63. package/dist/lite/firestore/src/api.d.ts +1 -1
  64. package/dist/lite/firestore/src/core/database_info.d.ts +1 -0
  65. package/dist/lite/firestore/src/core/target.d.ts +34 -5
  66. package/dist/lite/firestore/src/index/index_byte_encoder.d.ts +18 -1
  67. package/dist/lite/firestore/src/index/index_entry.d.ts +26 -0
  68. package/dist/lite/firestore/src/lite-api/query.d.ts +2 -2
  69. package/dist/lite/firestore/src/local/document_overlay_cache.d.ts +72 -0
  70. package/dist/lite/firestore/src/local/index_manager.d.ts +52 -0
  71. package/dist/lite/firestore/src/local/indexeddb_document_overlay_cache.d.ts +45 -0
  72. package/dist/lite/firestore/src/local/indexeddb_index_manager.d.ts +40 -2
  73. package/dist/lite/firestore/src/local/indexeddb_persistence.d.ts +6 -4
  74. package/dist/lite/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  75. package/dist/lite/firestore/src/local/indexeddb_schema.d.ts +195 -7
  76. package/dist/lite/firestore/src/local/local_documents_view.d.ts +0 -1
  77. package/dist/lite/firestore/src/local/local_serializer.d.ts +19 -3
  78. package/dist/lite/firestore/src/local/memory_document_overlay_cache.d.ts +37 -0
  79. package/dist/lite/firestore/src/local/memory_index_manager.d.ts +11 -0
  80. package/dist/lite/firestore/src/local/memory_persistence.d.ts +6 -2
  81. package/dist/lite/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  82. package/dist/lite/firestore/src/local/persistence.d.ts +8 -2
  83. package/dist/lite/firestore/src/local/remote_document_cache.d.ts +7 -9
  84. package/dist/lite/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  85. package/dist/lite/firestore/src/local/simple_db.d.ts +1 -0
  86. package/dist/lite/firestore/src/model/document.d.ts +7 -0
  87. package/dist/lite/firestore/src/model/document_key.d.ts +6 -0
  88. package/dist/lite/firestore/src/model/field_index.d.ts +87 -7
  89. package/dist/lite/firestore/src/model/overlay.d.ts +32 -0
  90. package/dist/lite/firestore/src/model/target_index_matcher.d.ts +70 -0
  91. package/dist/lite/firestore/src/model/values.d.ts +7 -0
  92. package/dist/lite/firestore/src/platform/node/grpc_connection.d.ts +2 -2
  93. package/dist/lite/firestore/src/platform/node/load_protos.d.ts +2 -2
  94. package/dist/lite/firestore/src/util/sorted_set.d.ts +18 -0
  95. package/dist/lite/firestore/test/unit/local/counting_query_engine.d.ts +3 -3
  96. package/dist/lite/firestore/test/unit/local/document_overlay_cache.test.d.ts +1 -0
  97. package/dist/lite/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  98. package/dist/lite/firestore/test/unit/local/test_document_overlay_cache.d.ts +38 -0
  99. package/dist/lite/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  100. package/dist/lite/firestore/test/unit/local/test_remote_document_cache.d.ts +5 -3
  101. package/dist/lite/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  102. package/dist/lite/firestore/test/unit/model/field_index.test.d.ts +17 -0
  103. package/dist/lite/firestore/test/unit/model/target.test.d.ts +17 -0
  104. package/dist/lite/firestore/test/unit/model/target_index_matcher.test.d.ts +17 -0
  105. package/dist/lite/firestore/test/util/helpers.d.ts +8 -2
  106. package/dist/lite/index.browser.esm2017.js +1166 -1143
  107. package/dist/lite/index.browser.esm2017.js.map +1 -1
  108. package/dist/lite/index.browser.esm5.js +357 -337
  109. package/dist/lite/index.browser.esm5.js.map +1 -1
  110. package/dist/lite/index.node.cjs.js +64 -34
  111. package/dist/lite/index.node.cjs.js.map +1 -1
  112. package/dist/lite/index.node.mjs +64 -34
  113. package/dist/lite/index.node.mjs.map +1 -1
  114. package/dist/lite/index.rn.esm2017.js +344 -321
  115. package/dist/lite/index.rn.esm2017.js.map +1 -1
  116. package/dist/lite/internal.d.ts +16 -2
  117. package/dist/lite/packages/firestore/dist/lite/index.browser.esm2017.d.ts +122 -121
  118. package/dist/lite/packages/firestore/src/api/credentials.d.ts +1 -0
  119. package/dist/lite/packages/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  120. package/dist/lite/packages/firestore/src/api/snapshot.d.ts +1 -2
  121. package/dist/lite/packages/firestore/src/api.d.ts +1 -1
  122. package/dist/lite/packages/firestore/src/core/database_info.d.ts +1 -0
  123. package/dist/lite/packages/firestore/src/core/target.d.ts +34 -5
  124. package/dist/lite/packages/firestore/src/index/index_byte_encoder.d.ts +18 -1
  125. package/dist/lite/packages/firestore/src/index/index_entry.d.ts +26 -0
  126. package/dist/lite/packages/firestore/src/lite-api/query.d.ts +2 -2
  127. package/dist/lite/packages/firestore/src/local/document_overlay_cache.d.ts +72 -0
  128. package/dist/lite/packages/firestore/src/local/index_manager.d.ts +52 -0
  129. package/dist/lite/packages/firestore/src/local/indexeddb_document_overlay_cache.d.ts +45 -0
  130. package/dist/lite/packages/firestore/src/local/indexeddb_index_manager.d.ts +40 -2
  131. package/dist/lite/packages/firestore/src/local/indexeddb_persistence.d.ts +6 -4
  132. package/dist/lite/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  133. package/dist/lite/packages/firestore/src/local/indexeddb_schema.d.ts +195 -7
  134. package/dist/lite/packages/firestore/src/local/local_documents_view.d.ts +0 -1
  135. package/dist/lite/packages/firestore/src/local/local_serializer.d.ts +19 -3
  136. package/dist/lite/packages/firestore/src/local/memory_document_overlay_cache.d.ts +37 -0
  137. package/dist/lite/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  138. package/dist/lite/packages/firestore/src/local/memory_persistence.d.ts +6 -2
  139. package/dist/lite/packages/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  140. package/dist/lite/packages/firestore/src/local/persistence.d.ts +8 -2
  141. package/dist/lite/packages/firestore/src/local/remote_document_cache.d.ts +7 -9
  142. package/dist/lite/packages/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  143. package/dist/lite/packages/firestore/src/local/simple_db.d.ts +1 -0
  144. package/dist/lite/packages/firestore/src/model/document.d.ts +7 -0
  145. package/dist/lite/packages/firestore/src/model/document_key.d.ts +6 -0
  146. package/dist/lite/packages/firestore/src/model/field_index.d.ts +87 -7
  147. package/dist/lite/packages/firestore/src/model/overlay.d.ts +32 -0
  148. package/dist/lite/packages/firestore/src/model/target_index_matcher.d.ts +70 -0
  149. package/dist/lite/packages/firestore/src/model/values.d.ts +7 -0
  150. package/dist/lite/packages/firestore/src/platform/node/grpc_connection.d.ts +2 -2
  151. package/dist/lite/packages/firestore/src/platform/node/load_protos.d.ts +2 -2
  152. package/dist/lite/packages/firestore/src/util/sorted_set.d.ts +18 -0
  153. package/dist/lite/packages/firestore/test/unit/local/counting_query_engine.d.ts +3 -3
  154. package/dist/lite/packages/firestore/test/unit/local/document_overlay_cache.test.d.ts +1 -0
  155. package/dist/lite/packages/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  156. package/dist/lite/packages/firestore/test/unit/local/test_document_overlay_cache.d.ts +38 -0
  157. package/dist/lite/packages/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  158. package/dist/lite/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +5 -3
  159. package/dist/lite/packages/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  160. package/dist/lite/packages/firestore/test/unit/model/field_index.test.d.ts +17 -0
  161. package/dist/lite/packages/firestore/test/unit/model/target.test.d.ts +17 -0
  162. package/dist/lite/packages/firestore/test/unit/model/target_index_matcher.test.d.ts +17 -0
  163. package/dist/lite/packages/firestore/test/util/helpers.d.ts +8 -2
  164. package/dist/lite/private.d.ts +9 -2
  165. package/dist/packages/firestore/dist/index.esm2017.d.ts +199 -194
  166. package/dist/packages/firestore/src/api/credentials.d.ts +1 -0
  167. package/dist/packages/firestore/src/api/{query.d.ts → filter.d.ts} +0 -0
  168. package/dist/packages/firestore/src/api/snapshot.d.ts +1 -2
  169. package/dist/packages/firestore/src/api.d.ts +1 -1
  170. package/dist/packages/firestore/src/core/database_info.d.ts +1 -0
  171. package/dist/packages/firestore/src/core/target.d.ts +34 -5
  172. package/dist/packages/firestore/src/index/index_byte_encoder.d.ts +18 -1
  173. package/dist/packages/firestore/src/index/index_entry.d.ts +26 -0
  174. package/dist/packages/firestore/src/lite-api/query.d.ts +2 -2
  175. package/dist/packages/firestore/src/local/document_overlay_cache.d.ts +72 -0
  176. package/dist/packages/firestore/src/local/index_manager.d.ts +52 -0
  177. package/dist/packages/firestore/src/local/indexeddb_document_overlay_cache.d.ts +45 -0
  178. package/dist/packages/firestore/src/local/indexeddb_index_manager.d.ts +40 -2
  179. package/dist/packages/firestore/src/local/indexeddb_persistence.d.ts +6 -4
  180. package/dist/packages/firestore/src/local/indexeddb_remote_document_cache.d.ts +2 -8
  181. package/dist/packages/firestore/src/local/indexeddb_schema.d.ts +195 -7
  182. package/dist/packages/firestore/src/local/local_documents_view.d.ts +0 -1
  183. package/dist/packages/firestore/src/local/local_serializer.d.ts +19 -3
  184. package/dist/packages/firestore/src/local/memory_document_overlay_cache.d.ts +37 -0
  185. package/dist/packages/firestore/src/local/memory_index_manager.d.ts +11 -0
  186. package/dist/packages/firestore/src/local/memory_persistence.d.ts +6 -2
  187. package/dist/packages/firestore/src/local/memory_remote_document_cache.d.ts +1 -3
  188. package/dist/packages/firestore/src/local/persistence.d.ts +8 -2
  189. package/dist/packages/firestore/src/local/remote_document_cache.d.ts +7 -9
  190. package/dist/packages/firestore/src/local/remote_document_change_buffer.d.ts +3 -12
  191. package/dist/packages/firestore/src/local/simple_db.d.ts +1 -0
  192. package/dist/packages/firestore/src/model/document.d.ts +7 -0
  193. package/dist/packages/firestore/src/model/document_key.d.ts +6 -0
  194. package/dist/packages/firestore/src/model/field_index.d.ts +87 -7
  195. package/dist/packages/firestore/src/model/overlay.d.ts +32 -0
  196. package/dist/packages/firestore/src/model/target_index_matcher.d.ts +70 -0
  197. package/dist/packages/firestore/src/model/values.d.ts +7 -0
  198. package/dist/packages/firestore/src/platform/node/grpc_connection.d.ts +2 -2
  199. package/dist/packages/firestore/src/platform/node/load_protos.d.ts +2 -2
  200. package/dist/packages/firestore/src/util/sorted_set.d.ts +18 -0
  201. package/dist/packages/firestore/test/unit/local/counting_query_engine.d.ts +3 -3
  202. package/dist/packages/firestore/test/unit/local/document_overlay_cache.test.d.ts +1 -0
  203. package/dist/packages/firestore/test/unit/local/persistence_test_helpers.d.ts +1 -0
  204. package/dist/packages/firestore/test/unit/local/test_document_overlay_cache.d.ts +38 -0
  205. package/dist/packages/firestore/test/unit/local/test_index_manager.d.ts +11 -0
  206. package/dist/packages/firestore/test/unit/local/test_remote_document_cache.d.ts +5 -3
  207. package/dist/packages/firestore/test/unit/local/test_remote_document_change_buffer.d.ts +1 -1
  208. package/dist/packages/firestore/test/unit/model/field_index.test.d.ts +17 -0
  209. package/dist/packages/firestore/test/unit/model/target.test.d.ts +17 -0
  210. package/dist/packages/firestore/test/unit/model/target_index_matcher.test.d.ts +17 -0
  211. package/dist/packages/firestore/test/util/helpers.d.ts +8 -2
  212. package/dist/private.d.ts +258 -26
  213. package/package.json +4 -4
@@ -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.4";
17
+ const version$1 = "3.4.5-2022116201138";
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.5";
70
+ const version = "9.6.7-2022116201138";
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,11 +982,25 @@ 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
+ }
988
+ get collectionGroup() {
989
+ return this.path.popLast().lastSegment();
990
+ }
982
991
  /** Returns true if the document is in the specified collectionId. */
983
992
  hasCollectionId(collectionId) {
984
993
  return (this.path.length >= 2 &&
985
994
  this.path.get(this.path.length - 2) === collectionId);
986
995
  }
996
+ /** Returns the collection group (i.e. the name of the parent collection) for this key. */
997
+ getCollectionGroup() {
998
+ return this.path.get(this.path.length - 2);
999
+ }
1000
+ /** Returns the fully qualified path to the parent collection. */
1001
+ getCollectionPath() {
1002
+ return this.path.popLast();
1003
+ }
987
1004
  isEqual(other) {
988
1005
  return (other !== null && ResourcePath.comparator(this.path, other.path) === 0);
989
1006
  }
@@ -2646,10 +2663,11 @@ class ObjectValue {
2646
2663
  * from all views.
2647
2664
  */
2648
2665
  class MutableDocument {
2649
- constructor(key, documentType, version, data, documentState) {
2666
+ constructor(key, documentType, version, readTime, data, documentState) {
2650
2667
  this.key = key;
2651
2668
  this.documentType = documentType;
2652
2669
  this.version = version;
2670
+ this.readTime = readTime;
2653
2671
  this.data = data;
2654
2672
  this.documentState = documentState;
2655
2673
  }
@@ -2658,18 +2676,18 @@ class MutableDocument {
2658
2676
  * base document for mutations.
2659
2677
  */
2660
2678
  static newInvalidDocument(documentKey) {
2661
- return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2679
+ return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2662
2680
  }
2663
2681
  /**
2664
2682
  * Creates a new document that is known to exist with the given data at the
2665
2683
  * given version.
2666
2684
  */
2667
2685
  static newFoundDocument(documentKey, version, value) {
2668
- return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, value, 0 /* SYNCED */);
2686
+ return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, SnapshotVersion.min(), value, 0 /* SYNCED */);
2669
2687
  }
2670
2688
  /** Creates a new document that is known to not exist at the given version. */
2671
2689
  static newNoDocument(documentKey, version) {
2672
- return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, ObjectValue.empty(), 0 /* SYNCED */);
2690
+ return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2673
2691
  }
2674
2692
  /**
2675
2693
  * Creates a new document that is known to exist at the given version but
@@ -2677,7 +2695,7 @@ class MutableDocument {
2677
2695
  * base document).
2678
2696
  */
2679
2697
  static newUnknownDocument(documentKey, version) {
2680
- return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2698
+ return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2681
2699
  }
2682
2700
  /**
2683
2701
  * Changes the document type to indicate that it exists and that its version
@@ -2721,6 +2739,10 @@ class MutableDocument {
2721
2739
  this.documentState = 1 /* HAS_LOCAL_MUTATIONS */;
2722
2740
  return this;
2723
2741
  }
2742
+ setReadTime(readTime) {
2743
+ this.readTime = readTime;
2744
+ return this;
2745
+ }
2724
2746
  get hasLocalMutations() {
2725
2747
  return this.documentState === 1 /* HAS_LOCAL_MUTATIONS */;
2726
2748
  }
@@ -2751,7 +2773,7 @@ class MutableDocument {
2751
2773
  this.data.isEqual(other.data));
2752
2774
  }
2753
2775
  mutableCopy() {
2754
- return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
2776
+ return new MutableDocument(this.key, this.documentType, this.version, this.readTime, this.data.clone(), this.documentState);
2755
2777
  }
2756
2778
  toString() {
2757
2779
  return (`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, ` +
@@ -3017,9 +3039,9 @@ class ArrayContainsAnyFilter extends FieldFilter {
3017
3039
  * just after the provided values.
3018
3040
  */
3019
3041
  class Bound {
3020
- constructor(position, before) {
3042
+ constructor(position, inclusive) {
3021
3043
  this.position = position;
3022
- this.before = before;
3044
+ this.inclusive = inclusive;
3023
3045
  }
3024
3046
  }
3025
3047
  /**
@@ -3041,7 +3063,7 @@ function boundEquals(left, right) {
3041
3063
  else if (right === null) {
3042
3064
  return false;
3043
3065
  }
3044
- if (left.before !== right.before ||
3066
+ if (left.inclusive !== right.inclusive ||
3045
3067
  left.position.length !== right.position.length) {
3046
3068
  return false;
3047
3069
  }
@@ -3206,10 +3228,10 @@ function queryToTarget(query) {
3206
3228
  }
3207
3229
  // We need to swap the cursors to match the now-flipped query ordering.
3208
3230
  const startAt = queryImpl.endAt
3209
- ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.before)
3231
+ ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.inclusive)
3210
3232
  : null;
3211
3233
  const endAt = queryImpl.startAt
3212
- ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.before)
3234
+ ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.inclusive)
3213
3235
  : null;
3214
3236
  // Now return as a LimitType.First query.
3215
3237
  queryImpl.memoizedTarget = newTarget(queryImpl.path, queryImpl.collectionGroup, orderBys, queryImpl.filters, queryImpl.limit, startAt, endAt);
@@ -3837,10 +3859,10 @@ function toQueryTarget(serializer, target) {
3837
3859
  result.structuredQuery.limit = limit;
3838
3860
  }
3839
3861
  if (target.startAt) {
3840
- result.structuredQuery.startAt = toCursor(target.startAt);
3862
+ result.structuredQuery.startAt = toStartAtCursor(target.startAt);
3841
3863
  }
3842
3864
  if (target.endAt) {
3843
- result.structuredQuery.endAt = toCursor(target.endAt);
3865
+ result.structuredQuery.endAt = toEndAtCursor(target.endAt);
3844
3866
  }
3845
3867
  return result;
3846
3868
  }
@@ -3862,9 +3884,15 @@ function toOrder(orderBys) {
3862
3884
  }
3863
3885
  return orderBys.map(order => toPropertyOrder(order));
3864
3886
  }
3865
- function toCursor(cursor) {
3887
+ function toStartAtCursor(cursor) {
3888
+ return {
3889
+ before: cursor.inclusive,
3890
+ values: cursor.position
3891
+ };
3892
+ }
3893
+ function toEndAtCursor(cursor) {
3866
3894
  return {
3867
- before: cursor.before,
3895
+ before: !cursor.inclusive,
3868
3896
  values: cursor.position
3869
3897
  };
3870
3898
  }
@@ -6141,51 +6169,53 @@ function limitToLast(limit) {
6141
6169
  return new QueryLimitConstraint('limitToLast', limit, "L" /* Last */);
6142
6170
  }
6143
6171
  class QueryStartAtConstraint extends QueryConstraint {
6144
- constructor(type, _docOrFields, _before) {
6172
+ constructor(type, _docOrFields, _inclusive) {
6145
6173
  super();
6146
6174
  this.type = type;
6147
6175
  this._docOrFields = _docOrFields;
6148
- this._before = _before;
6176
+ this._inclusive = _inclusive;
6149
6177
  }
6150
6178
  _apply(query) {
6151
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6179
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6152
6180
  return new Query(query.firestore, query.converter, queryWithStartAt(query._query, bound));
6153
6181
  }
6154
6182
  }
6155
6183
  function startAt(...docOrFields) {
6156
- return new QueryStartAtConstraint('startAt', docOrFields, /*before=*/ true);
6184
+ return new QueryStartAtConstraint('startAt', docOrFields,
6185
+ /*inclusive=*/ true);
6157
6186
  }
6158
6187
  function startAfter(...docOrFields) {
6159
6188
  return new QueryStartAtConstraint('startAfter', docOrFields,
6160
- /*before=*/ false);
6189
+ /*inclusive=*/ false);
6161
6190
  }
6162
6191
  class QueryEndAtConstraint extends QueryConstraint {
6163
- constructor(type, _docOrFields, _before) {
6192
+ constructor(type, _docOrFields, _inclusive) {
6164
6193
  super();
6165
6194
  this.type = type;
6166
6195
  this._docOrFields = _docOrFields;
6167
- this._before = _before;
6196
+ this._inclusive = _inclusive;
6168
6197
  }
6169
6198
  _apply(query) {
6170
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6199
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6171
6200
  return new Query(query.firestore, query.converter, queryWithEndAt(query._query, bound));
6172
6201
  }
6173
6202
  }
6174
6203
  function endBefore(...docOrFields) {
6175
- return new QueryEndAtConstraint('endBefore', docOrFields, /*before=*/ true);
6204
+ return new QueryEndAtConstraint('endBefore', docOrFields,
6205
+ /*inclusive=*/ false);
6176
6206
  }
6177
6207
  function endAt(...docOrFields) {
6178
- return new QueryEndAtConstraint('endAt', docOrFields, /*before=*/ false);
6208
+ return new QueryEndAtConstraint('endAt', docOrFields, /*inclusive=*/ true);
6179
6209
  }
6180
6210
  /** Helper function to create a bound from a document or fields */
6181
- function newQueryBoundFromDocOrFields(query, methodName, docOrFields, before) {
6211
+ function newQueryBoundFromDocOrFields(query, methodName, docOrFields, inclusive) {
6182
6212
  docOrFields[0] = util.getModularInstance(docOrFields[0]);
6183
6213
  if (docOrFields[0] instanceof DocumentSnapshot) {
6184
- return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, before);
6214
+ return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, inclusive);
6185
6215
  }
6186
6216
  else {
6187
6217
  const reader = newUserDataReader(query.firestore);
6188
- return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, before);
6218
+ return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, inclusive);
6189
6219
  }
6190
6220
  }
6191
6221
  function newQueryFilter(query, methodName, dataReader, databaseId, fieldPath, op, value) {
@@ -6243,7 +6273,7 @@ function newQueryOrderBy(query, fieldPath, direction) {
6243
6273
  * of the query or if any of the fields in the order by are an uncommitted
6244
6274
  * server timestamp.
6245
6275
  */
6246
- function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6276
+ function newQueryBoundFromDocument(query, databaseId, methodName, doc, inclusive) {
6247
6277
  if (!doc) {
6248
6278
  throw new FirestoreError(Code.NOT_FOUND, `Can't use a DocumentSnapshot that doesn't exist for ` +
6249
6279
  `${methodName}().`);
@@ -6280,12 +6310,12 @@ function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6280
6310
  }
6281
6311
  }
6282
6312
  }
6283
- return new Bound(components, before);
6313
+ return new Bound(components, inclusive);
6284
6314
  }
6285
6315
  /**
6286
6316
  * Converts a list of field values to a `Bound` for the given query.
6287
6317
  */
6288
- function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, before) {
6318
+ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, inclusive) {
6289
6319
  // Use explicit order by's because it has to match the query the user made
6290
6320
  const orderBy = query.explicitOrderBy;
6291
6321
  if (values.length > orderBy.length) {
@@ -6322,7 +6352,7 @@ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, valu
6322
6352
  components.push(wrapped);
6323
6353
  }
6324
6354
  }
6325
- return new Bound(components, before);
6355
+ return new Bound(components, inclusive);
6326
6356
  }
6327
6357
  /**
6328
6358
  * Parses the given `documentIdValue` into a `ReferenceValue`, throwing