@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
@@ -6,7 +6,7 @@ import { FirebaseError, createMockUserToken, getModularInstance } from '@firebas
6
6
  import nodeFetch from 'node-fetch';
7
7
  import { randomBytes as randomBytes$1 } from 'crypto';
8
8
 
9
- const version$1 = "3.4.4";
9
+ const version$1 = "3.4.5-2022116201138";
10
10
 
11
11
  /**
12
12
  * @license
@@ -59,7 +59,7 @@ User.GOOGLE_CREDENTIALS = new User('google-credentials-uid');
59
59
  User.FIRST_PARTY = new User('first-party-uid');
60
60
  User.MOCK_USER = new User('mock-user');
61
61
 
62
- const version = "9.6.5";
62
+ const version = "9.6.7-2022116201138";
63
63
 
64
64
  /**
65
65
  * @license
@@ -658,6 +658,9 @@ class DatabaseId {
658
658
  this.projectId = projectId;
659
659
  this.database = database ? database : DEFAULT_DATABASE_NAME;
660
660
  }
661
+ static empty() {
662
+ return new DatabaseId('', '');
663
+ }
661
664
  get isDefaultDatabase() {
662
665
  return this.database === DEFAULT_DATABASE_NAME;
663
666
  }
@@ -971,11 +974,25 @@ class DocumentKey {
971
974
  static fromName(name) {
972
975
  return new DocumentKey(ResourcePath.fromString(name).popFirst(5));
973
976
  }
977
+ static empty() {
978
+ return new DocumentKey(ResourcePath.emptyPath());
979
+ }
980
+ get collectionGroup() {
981
+ return this.path.popLast().lastSegment();
982
+ }
974
983
  /** Returns true if the document is in the specified collectionId. */
975
984
  hasCollectionId(collectionId) {
976
985
  return (this.path.length >= 2 &&
977
986
  this.path.get(this.path.length - 2) === collectionId);
978
987
  }
988
+ /** Returns the collection group (i.e. the name of the parent collection) for this key. */
989
+ getCollectionGroup() {
990
+ return this.path.get(this.path.length - 2);
991
+ }
992
+ /** Returns the fully qualified path to the parent collection. */
993
+ getCollectionPath() {
994
+ return this.path.popLast();
995
+ }
979
996
  isEqual(other) {
980
997
  return (other !== null && ResourcePath.comparator(this.path, other.path) === 0);
981
998
  }
@@ -2638,10 +2655,11 @@ class ObjectValue {
2638
2655
  * from all views.
2639
2656
  */
2640
2657
  class MutableDocument {
2641
- constructor(key, documentType, version, data, documentState) {
2658
+ constructor(key, documentType, version, readTime, data, documentState) {
2642
2659
  this.key = key;
2643
2660
  this.documentType = documentType;
2644
2661
  this.version = version;
2662
+ this.readTime = readTime;
2645
2663
  this.data = data;
2646
2664
  this.documentState = documentState;
2647
2665
  }
@@ -2650,18 +2668,18 @@ class MutableDocument {
2650
2668
  * base document for mutations.
2651
2669
  */
2652
2670
  static newInvalidDocument(documentKey) {
2653
- return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2671
+ return new MutableDocument(documentKey, 0 /* INVALID */, SnapshotVersion.min(), SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2654
2672
  }
2655
2673
  /**
2656
2674
  * Creates a new document that is known to exist with the given data at the
2657
2675
  * given version.
2658
2676
  */
2659
2677
  static newFoundDocument(documentKey, version, value) {
2660
- return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, value, 0 /* SYNCED */);
2678
+ return new MutableDocument(documentKey, 1 /* FOUND_DOCUMENT */, version, SnapshotVersion.min(), value, 0 /* SYNCED */);
2661
2679
  }
2662
2680
  /** Creates a new document that is known to not exist at the given version. */
2663
2681
  static newNoDocument(documentKey, version) {
2664
- return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, ObjectValue.empty(), 0 /* SYNCED */);
2682
+ return new MutableDocument(documentKey, 2 /* NO_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 0 /* SYNCED */);
2665
2683
  }
2666
2684
  /**
2667
2685
  * Creates a new document that is known to exist at the given version but
@@ -2669,7 +2687,7 @@ class MutableDocument {
2669
2687
  * base document).
2670
2688
  */
2671
2689
  static newUnknownDocument(documentKey, version) {
2672
- return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2690
+ return new MutableDocument(documentKey, 3 /* UNKNOWN_DOCUMENT */, version, SnapshotVersion.min(), ObjectValue.empty(), 2 /* HAS_COMMITTED_MUTATIONS */);
2673
2691
  }
2674
2692
  /**
2675
2693
  * Changes the document type to indicate that it exists and that its version
@@ -2713,6 +2731,10 @@ class MutableDocument {
2713
2731
  this.documentState = 1 /* HAS_LOCAL_MUTATIONS */;
2714
2732
  return this;
2715
2733
  }
2734
+ setReadTime(readTime) {
2735
+ this.readTime = readTime;
2736
+ return this;
2737
+ }
2716
2738
  get hasLocalMutations() {
2717
2739
  return this.documentState === 1 /* HAS_LOCAL_MUTATIONS */;
2718
2740
  }
@@ -2743,7 +2765,7 @@ class MutableDocument {
2743
2765
  this.data.isEqual(other.data));
2744
2766
  }
2745
2767
  mutableCopy() {
2746
- return new MutableDocument(this.key, this.documentType, this.version, this.data.clone(), this.documentState);
2768
+ return new MutableDocument(this.key, this.documentType, this.version, this.readTime, this.data.clone(), this.documentState);
2747
2769
  }
2748
2770
  toString() {
2749
2771
  return (`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, ` +
@@ -3009,9 +3031,9 @@ class ArrayContainsAnyFilter extends FieldFilter {
3009
3031
  * just after the provided values.
3010
3032
  */
3011
3033
  class Bound {
3012
- constructor(position, before) {
3034
+ constructor(position, inclusive) {
3013
3035
  this.position = position;
3014
- this.before = before;
3036
+ this.inclusive = inclusive;
3015
3037
  }
3016
3038
  }
3017
3039
  /**
@@ -3033,7 +3055,7 @@ function boundEquals(left, right) {
3033
3055
  else if (right === null) {
3034
3056
  return false;
3035
3057
  }
3036
- if (left.before !== right.before ||
3058
+ if (left.inclusive !== right.inclusive ||
3037
3059
  left.position.length !== right.position.length) {
3038
3060
  return false;
3039
3061
  }
@@ -3198,10 +3220,10 @@ function queryToTarget(query) {
3198
3220
  }
3199
3221
  // We need to swap the cursors to match the now-flipped query ordering.
3200
3222
  const startAt = queryImpl.endAt
3201
- ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.before)
3223
+ ? new Bound(queryImpl.endAt.position, !queryImpl.endAt.inclusive)
3202
3224
  : null;
3203
3225
  const endAt = queryImpl.startAt
3204
- ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.before)
3226
+ ? new Bound(queryImpl.startAt.position, !queryImpl.startAt.inclusive)
3205
3227
  : null;
3206
3228
  // Now return as a LimitType.First query.
3207
3229
  queryImpl.memoizedTarget = newTarget(queryImpl.path, queryImpl.collectionGroup, orderBys, queryImpl.filters, queryImpl.limit, startAt, endAt);
@@ -3829,10 +3851,10 @@ function toQueryTarget(serializer, target) {
3829
3851
  result.structuredQuery.limit = limit;
3830
3852
  }
3831
3853
  if (target.startAt) {
3832
- result.structuredQuery.startAt = toCursor(target.startAt);
3854
+ result.structuredQuery.startAt = toStartAtCursor(target.startAt);
3833
3855
  }
3834
3856
  if (target.endAt) {
3835
- result.structuredQuery.endAt = toCursor(target.endAt);
3857
+ result.structuredQuery.endAt = toEndAtCursor(target.endAt);
3836
3858
  }
3837
3859
  return result;
3838
3860
  }
@@ -3854,9 +3876,15 @@ function toOrder(orderBys) {
3854
3876
  }
3855
3877
  return orderBys.map(order => toPropertyOrder(order));
3856
3878
  }
3857
- function toCursor(cursor) {
3879
+ function toStartAtCursor(cursor) {
3880
+ return {
3881
+ before: cursor.inclusive,
3882
+ values: cursor.position
3883
+ };
3884
+ }
3885
+ function toEndAtCursor(cursor) {
3858
3886
  return {
3859
- before: cursor.before,
3887
+ before: !cursor.inclusive,
3860
3888
  values: cursor.position
3861
3889
  };
3862
3890
  }
@@ -6133,51 +6161,53 @@ function limitToLast(limit) {
6133
6161
  return new QueryLimitConstraint('limitToLast', limit, "L" /* Last */);
6134
6162
  }
6135
6163
  class QueryStartAtConstraint extends QueryConstraint {
6136
- constructor(type, _docOrFields, _before) {
6164
+ constructor(type, _docOrFields, _inclusive) {
6137
6165
  super();
6138
6166
  this.type = type;
6139
6167
  this._docOrFields = _docOrFields;
6140
- this._before = _before;
6168
+ this._inclusive = _inclusive;
6141
6169
  }
6142
6170
  _apply(query) {
6143
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6171
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6144
6172
  return new Query(query.firestore, query.converter, queryWithStartAt(query._query, bound));
6145
6173
  }
6146
6174
  }
6147
6175
  function startAt(...docOrFields) {
6148
- return new QueryStartAtConstraint('startAt', docOrFields, /*before=*/ true);
6176
+ return new QueryStartAtConstraint('startAt', docOrFields,
6177
+ /*inclusive=*/ true);
6149
6178
  }
6150
6179
  function startAfter(...docOrFields) {
6151
6180
  return new QueryStartAtConstraint('startAfter', docOrFields,
6152
- /*before=*/ false);
6181
+ /*inclusive=*/ false);
6153
6182
  }
6154
6183
  class QueryEndAtConstraint extends QueryConstraint {
6155
- constructor(type, _docOrFields, _before) {
6184
+ constructor(type, _docOrFields, _inclusive) {
6156
6185
  super();
6157
6186
  this.type = type;
6158
6187
  this._docOrFields = _docOrFields;
6159
- this._before = _before;
6188
+ this._inclusive = _inclusive;
6160
6189
  }
6161
6190
  _apply(query) {
6162
- const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._before);
6191
+ const bound = newQueryBoundFromDocOrFields(query, this.type, this._docOrFields, this._inclusive);
6163
6192
  return new Query(query.firestore, query.converter, queryWithEndAt(query._query, bound));
6164
6193
  }
6165
6194
  }
6166
6195
  function endBefore(...docOrFields) {
6167
- return new QueryEndAtConstraint('endBefore', docOrFields, /*before=*/ true);
6196
+ return new QueryEndAtConstraint('endBefore', docOrFields,
6197
+ /*inclusive=*/ false);
6168
6198
  }
6169
6199
  function endAt(...docOrFields) {
6170
- return new QueryEndAtConstraint('endAt', docOrFields, /*before=*/ false);
6200
+ return new QueryEndAtConstraint('endAt', docOrFields, /*inclusive=*/ true);
6171
6201
  }
6172
6202
  /** Helper function to create a bound from a document or fields */
6173
- function newQueryBoundFromDocOrFields(query, methodName, docOrFields, before) {
6203
+ function newQueryBoundFromDocOrFields(query, methodName, docOrFields, inclusive) {
6174
6204
  docOrFields[0] = getModularInstance(docOrFields[0]);
6175
6205
  if (docOrFields[0] instanceof DocumentSnapshot) {
6176
- return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, before);
6206
+ return newQueryBoundFromDocument(query._query, query.firestore._databaseId, methodName, docOrFields[0]._document, inclusive);
6177
6207
  }
6178
6208
  else {
6179
6209
  const reader = newUserDataReader(query.firestore);
6180
- return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, before);
6210
+ return newQueryBoundFromFields(query._query, query.firestore._databaseId, reader, methodName, docOrFields, inclusive);
6181
6211
  }
6182
6212
  }
6183
6213
  function newQueryFilter(query, methodName, dataReader, databaseId, fieldPath, op, value) {
@@ -6235,7 +6265,7 @@ function newQueryOrderBy(query, fieldPath, direction) {
6235
6265
  * of the query or if any of the fields in the order by are an uncommitted
6236
6266
  * server timestamp.
6237
6267
  */
6238
- function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6268
+ function newQueryBoundFromDocument(query, databaseId, methodName, doc, inclusive) {
6239
6269
  if (!doc) {
6240
6270
  throw new FirestoreError(Code.NOT_FOUND, `Can't use a DocumentSnapshot that doesn't exist for ` +
6241
6271
  `${methodName}().`);
@@ -6272,12 +6302,12 @@ function newQueryBoundFromDocument(query, databaseId, methodName, doc, before) {
6272
6302
  }
6273
6303
  }
6274
6304
  }
6275
- return new Bound(components, before);
6305
+ return new Bound(components, inclusive);
6276
6306
  }
6277
6307
  /**
6278
6308
  * Converts a list of field values to a `Bound` for the given query.
6279
6309
  */
6280
- function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, before) {
6310
+ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, values, inclusive) {
6281
6311
  // Use explicit order by's because it has to match the query the user made
6282
6312
  const orderBy = query.explicitOrderBy;
6283
6313
  if (values.length > orderBy.length) {
@@ -6314,7 +6344,7 @@ function newQueryBoundFromFields(query, databaseId, dataReader, methodName, valu
6314
6344
  components.push(wrapped);
6315
6345
  }
6316
6346
  }
6317
- return new Bound(components, before);
6347
+ return new Bound(components, inclusive);
6318
6348
  }
6319
6349
  /**
6320
6350
  * Parses the given `documentIdValue` into a `ReferenceValue`, throwing