@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
@@ -7,6 +7,7 @@
7
7
  import { DocumentData as DocumentData_2 } from '@firebase/firestore-types';
8
8
  import { EmulatorMockTokenOptions } from '@firebase/util';
9
9
  import { FirebaseApp } from '@firebase/app';
10
+ import { FirebaseError } from '@firebase/util';
10
11
  import { _FirebaseService } from '@firebase/app';
11
12
  import { LogLevelString as LogLevel } from '@firebase/logger';
12
13
  import { SetOptions as SetOptions_2 } from '@firebase/firestore-types';
@@ -362,6 +363,7 @@ export declare class _ByteString {
362
363
  private constructor();
363
364
  static fromBase64String(base64: string): _ByteString;
364
365
  static fromUint8Array(array: Uint8Array): _ByteString;
366
+ [Symbol.iterator](): Iterator<number>;
365
367
  toBase64(): string;
366
368
  toUint8Array(): Uint8Array;
367
369
  approximateByteSize(): number;
@@ -870,6 +872,8 @@ declare interface Document_2 {
870
872
  */
871
873
  isUnknownDocument(): boolean;
872
874
  isEqual(other: Document_2 | null | undefined): boolean;
875
+ /** Creates a mutable copy of this document. */
876
+ mutableCopy(): MutableDocument;
873
877
  toString(): string;
874
878
  }
875
879
 
@@ -1679,7 +1683,7 @@ declare interface FirestoreDataConverter_2<T> {
1679
1683
  }
1680
1684
 
1681
1685
  /** An error returned by a Firestore operation. */
1682
- export declare class FirestoreError extends Error {
1686
+ export declare class FirestoreError extends FirebaseError {
1683
1687
  /**
1684
1688
  * The backend error code associated with this error.
1685
1689
  */
@@ -1688,8 +1692,6 @@ export declare class FirestoreError extends Error {
1688
1692
  * A custom error description.
1689
1693
  */
1690
1694
  readonly message: string;
1691
- /** The custom name for all FirestoreErrors. */
1692
- readonly name: string;
1693
1695
  /** The stack of the error. */
1694
1696
  readonly stack?: string;
1695
1697
  /** @hideconstructor */
@@ -1704,22 +1706,6 @@ export declare class FirestoreError extends Error {
1704
1706
  message: string);
1705
1707
  }
1706
1708
 
1707
- /**
1708
- * @license
1709
- * Copyright 2017 Google LLC
1710
- *
1711
- * Licensed under the Apache License, Version 2.0 (the "License");
1712
- * you may not use this file except in compliance with the License.
1713
- * You may obtain a copy of the License at
1714
- *
1715
- * http://www.apache.org/licenses/LICENSE-2.0
1716
- *
1717
- * Unless required by applicable law or agreed to in writing, software
1718
- * distributed under the License is distributed on an "AS IS" BASIS,
1719
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1720
- * See the License for the specific language governing permissions and
1721
- * limitations under the License.
1722
- */
1723
1709
  /**
1724
1710
  * The set of Firestore status codes. The codes are the same at the ones
1725
1711
  * exposed by gRPC here:
@@ -2646,10 +2632,11 @@ declare class MutableDocument implements Document_2 {
2646
2632
  isNoDocument(): boolean;
2647
2633
  isUnknownDocument(): boolean;
2648
2634
  isEqual(other: Document_2 | null | undefined): boolean;
2649
- clone(): MutableDocument;
2635
+ mutableCopy(): MutableDocument;
2650
2636
  toString(): string;
2651
2637
  }
2652
2638
 
2639
+ /** Miscellaneous collection types / constants. */
2653
2640
  declare type MutableDocumentMap = SortedMap<_DocumentKey, MutableDocument>;
2654
2641
 
2655
2642
  /**
@@ -4252,10 +4239,12 @@ export declare function setLogLevel(logLevel: LogLevel): void;
4252
4239
  *
4253
4240
  * @param merge - Changes the behavior of a `setDoc()` call to only replace the
4254
4241
  * values specified in its data argument. Fields omitted from the `setDoc()`
4255
- * call remain untouched.
4242
+ * call remain untouched. If your input sets any field to an empty map, all
4243
+ * nested fields are overwritten.
4256
4244
  * @param mergeFields - Changes the behavior of `setDoc()` calls to only replace
4257
4245
  * the specified field paths. Any field path that is not specified is ignored
4258
- * and remains untouched.
4246
+ * and remains untouched. If your input sets any field to an empty map, all
4247
+ * nested fields are overwritten.
4259
4248
  */
4260
4249
  export declare type SetOptions = {
4261
4250
  readonly merge?: boolean;
@@ -5169,6 +5158,7 @@ declare class Transaction_2 {
5169
5158
  *
5170
5159
  * @param documentRef - A reference to the document to be set.
5171
5160
  * @param data - An object of the fields and values for the document.
5161
+ * @throws Error - If the provided input is not a valid Firestore document.
5172
5162
  * @returns This `Transaction` instance. Used for chaining method calls.
5173
5163
  */
5174
5164
  set<T>(documentRef: DocumentReference<T>, data: WithFieldValue<T>): this;
@@ -5181,6 +5171,7 @@ declare class Transaction_2 {
5181
5171
  * @param documentRef - A reference to the document to be set.
5182
5172
  * @param data - An object of the fields and values for the document.
5183
5173
  * @param options - An object to configure the set behavior.
5174
+ * @throws Error - If the provided input is not a valid Firestore document.
5184
5175
  * @returns This `Transaction` instance. Used for chaining method calls.
5185
5176
  */
5186
5177
  set<T>(documentRef: DocumentReference<T>, data: PartialWithFieldValue<T>, options: SetOptions): this;
@@ -5193,6 +5184,7 @@ declare class Transaction_2 {
5193
5184
  * @param data - An object containing the fields and values with which to
5194
5185
  * update the document. Fields can contain dots to reference nested fields
5195
5186
  * within the document.
5187
+ * @throws Error - If the provided input is not valid Firestore data.
5196
5188
  * @returns This `Transaction` instance. Used for chaining method calls.
5197
5189
  */
5198
5190
  update<T>(documentRef: DocumentReference<T>, data: UpdateData<T>): this;
@@ -5208,6 +5200,7 @@ declare class Transaction_2 {
5208
5200
  * @param field - The first field to update.
5209
5201
  * @param value - The first value.
5210
5202
  * @param moreFieldsAndValues - Additional key/value pairs.
5203
+ * @throws Error - If the provided input is not valid Firestore data.
5211
5204
  * @returns This `Transaction` instance. Used for chaining method calls.
5212
5205
  */
5213
5206
  update(documentRef: DocumentReference<unknown>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): this;
@@ -5482,6 +5475,7 @@ export declare class WriteBatch {
5482
5475
  * @param documentRef - A reference to the document to be set.
5483
5476
  * @param data - An object of the fields and values for the document.
5484
5477
  * @param options - An object to configure the set behavior.
5478
+ * @throws Error - If the provided input is not a valid Firestore document.
5485
5479
  * @returns This `WriteBatch` instance. Used for chaining method calls.
5486
5480
  */
5487
5481
  set<T>(documentRef: DocumentReference<T>, data: PartialWithFieldValue<T>, options: SetOptions): WriteBatch;
@@ -5494,6 +5488,7 @@ export declare class WriteBatch {
5494
5488
  * @param data - An object containing the fields and values with which to
5495
5489
  * update the document. Fields can contain dots to reference nested fields
5496
5490
  * within the document.
5491
+ * @throws Error - If the provided input is not valid Firestore data.
5497
5492
  * @returns This `WriteBatch` instance. Used for chaining method calls.
5498
5493
  */
5499
5494
  update<T>(documentRef: DocumentReference<T>, data: UpdateData<T>): WriteBatch;
@@ -5509,6 +5504,7 @@ export declare class WriteBatch {
5509
5504
  * @param field - The first field to update.
5510
5505
  * @param value - The first value.
5511
5506
  * @param moreFieldsAndValues - Additional key value pairs.
5507
+ * @throws Error - If the provided input is not valid Firestore data.
5512
5508
  * @returns This `WriteBatch` instance. Used for chaining method calls.
5513
5509
  */
5514
5510
  update(documentRef: DocumentReference<unknown>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { ByteString } from '../util/byte_string';
18
+ /** An index value encoder. */
19
+ export interface DirectionalIndexByteEncoder {
20
+ writeBytes(value: ByteString): void;
21
+ writeString(value: string): void;
22
+ writeNumber(value: number): void;
23
+ writeInfinity(): void;
24
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2021 Google LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { Value } from '../protos/firestore_proto_api';
18
+ import { DirectionalIndexByteEncoder } from './directional_index_byte_encoder';
19
+ /** Firestore index value writer. */
20
+ export declare class FirestoreIndexValueWriter {
21
+ static INSTANCE: FirestoreIndexValueWriter;
22
+ private constructor();
23
+ /** Writes an index value. */
24
+ writeIndexValue(value: Value, encoder: DirectionalIndexByteEncoder): void;
25
+ private writeIndexValueAux;
26
+ private writeIndexString;
27
+ private writeUnlabeledIndexString;
28
+ private writeIndexMap;
29
+ private writeIndexArray;
30
+ private writeIndexEntityRef;
31
+ private writeValueTypeLabel;
32
+ private writeTruncationMarker;
33
+ }
@@ -0,0 +1,14 @@
1
+ import { DirectionalIndexByteEncoder } from './directional_index_byte_encoder';
2
+ /**
3
+ * Implements `DirectionalIndexByteEncoder` using `OrderedCodeWriter` for the
4
+ * actual encoding.
5
+ */
6
+ export declare class IndexByteEncoder {
7
+ private orderedCode;
8
+ private ascending;
9
+ private descending;
10
+ seed(encodedBytes: Uint8Array): void;
11
+ forKind(kind: 'asc' | 'desc'): DirectionalIndexByteEncoder;
12
+ encodedBytes(): Uint8Array;
13
+ reset(): void;
14
+ }
@@ -0,0 +1,60 @@
1
+ import { ByteString } from '../util/byte_string';
2
+ /**
3
+ * Counts the number of zeros in a byte.
4
+ *
5
+ * Visible for testing.
6
+ */
7
+ export declare function numberOfLeadingZerosInByte(x: number): number;
8
+ /**
9
+ * OrderedCodeWriter is a minimal-allocation implementation of the writing
10
+ * behavior defined by the backend.
11
+ *
12
+ * The code is ported from its Java counterpart.
13
+ */
14
+ export declare class OrderedCodeWriter {
15
+ buffer: Uint8Array;
16
+ position: number;
17
+ writeBytesAscending(value: ByteString): void;
18
+ writeBytesDescending(value: ByteString): void;
19
+ /** Writes utf8 bytes into this byte sequence, ascending. */
20
+ writeUtf8Ascending(sequence: string): void;
21
+ /** Writes utf8 bytes into this byte sequence, descending */
22
+ writeUtf8Descending(sequence: string): void;
23
+ writeNumberAscending(val: number): void;
24
+ writeNumberDescending(val: number): void;
25
+ /**
26
+ * Writes the "infinity" byte sequence that sorts after all other byte
27
+ * sequences written in ascending order.
28
+ */
29
+ writeInfinityAscending(): void;
30
+ /**
31
+ * Writes the "infinity" byte sequence that sorts before all other byte
32
+ * sequences written in descending order.
33
+ */
34
+ writeInfinityDescending(): void;
35
+ /**
36
+ * Resets the buffer such that it is the same as when it was newly
37
+ * constructed.
38
+ */
39
+ reset(): void;
40
+ seed(encodedBytes: Uint8Array): void;
41
+ /** Makes a copy of the encoded bytes in this buffer. */
42
+ encodedBytes(): Uint8Array;
43
+ /**
44
+ * Encodes `val` into an encoding so that the order matches the IEEE 754
45
+ * floating-point comparison results with the following exceptions:
46
+ * -0.0 < 0.0
47
+ * all non-NaN < NaN
48
+ * NaN = NaN
49
+ */
50
+ private toOrderedBits;
51
+ /** Writes a single byte ascending to the buffer. */
52
+ private writeByteAscending;
53
+ /** Writes a single byte descending to the buffer. */
54
+ private writeByteDescending;
55
+ private writeSeparatorAscending;
56
+ private writeSeparatorDescending;
57
+ private writeEscapedByteAscending;
58
+ private writeEscapedByteDescending;
59
+ private ensureAvailable;
60
+ }
@@ -61,10 +61,12 @@ export declare type UpdateData<T> = T extends Primitive ? T : T extends {} ? {
61
61
  *
62
62
  * @param merge - Changes the behavior of a `setDoc()` call to only replace the
63
63
  * values specified in its data argument. Fields omitted from the `setDoc()`
64
- * call remain untouched.
64
+ * call remain untouched. If your input sets any field to an empty map, all
65
+ * nested fields are overwritten.
65
66
  * @param mergeFields - Changes the behavior of `setDoc()` calls to only replace
66
67
  * the specified field paths. Any field path that is not specified is ignored
67
- * and remains untouched.
68
+ * and remains untouched. If your input sets any field to an empty map, all
69
+ * nested fields are overwritten.
68
70
  */
69
71
  export declare type SetOptions = {
70
72
  readonly merge?: boolean;
@@ -77,6 +77,7 @@ export declare function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
77
77
  *
78
78
  * @param reference - A reference to the document to write.
79
79
  * @param data - A map of the fields and values for the document.
80
+ * @throws Error - If the provided input is not a valid Firestore document.
80
81
  * @returns A `Promise` resolved once the data has been successfully written
81
82
  * to the backend.
82
83
  */
@@ -94,6 +95,7 @@ export declare function setDoc<T>(reference: DocumentReference<T>, data: WithFie
94
95
  * @param reference - A reference to the document to write.
95
96
  * @param data - A map of the fields and values for the document.
96
97
  * @param options - An object to configure the set behavior.
98
+ * @throws Error - If the provided input is not a valid Firestore document.
97
99
  * @returns A `Promise` resolved once the data has been successfully written
98
100
  * to the backend.
99
101
  */
@@ -112,6 +114,7 @@ export declare function setDoc<T>(reference: DocumentReference<T>, data: Partial
112
114
  * @param data - An object containing the fields and values with which to
113
115
  * update the document. Fields can contain dots to reference nested fields
114
116
  * within the document.
117
+ * @throws Error - If the provided input is not valid Firestore data.
115
118
  * @returns A `Promise` resolved once the data has been successfully written
116
119
  * to the backend.
117
120
  */
@@ -133,6 +136,7 @@ export declare function updateDoc<T>(reference: DocumentReference<T>, data: Upda
133
136
  * @param field - The first field to update.
134
137
  * @param value - The first value.
135
138
  * @param moreFieldsAndValues - Additional key value pairs.
139
+ * @throws Error - If the provided input is not valid Firestore data.
136
140
  * @returns A `Promise` resolved once the data has been successfully written
137
141
  * to the backend.
138
142
  */
@@ -161,6 +165,7 @@ export declare function deleteDoc(reference: DocumentReference<unknown>): Promis
161
165
  *
162
166
  * @param reference - A reference to the collection to add this document to.
163
167
  * @param data - An Object containing the data for the new document.
168
+ * @throws Error - If the provided input is not a valid Firestore document.
164
169
  * @returns A `Promise` resolved with a `DocumentReference` pointing to the
165
170
  * newly created document after it has been written to the backend.
166
171
  */
@@ -45,6 +45,7 @@ export declare class Transaction {
45
45
  *
46
46
  * @param documentRef - A reference to the document to be set.
47
47
  * @param data - An object of the fields and values for the document.
48
+ * @throws Error - If the provided input is not a valid Firestore document.
48
49
  * @returns This `Transaction` instance. Used for chaining method calls.
49
50
  */
50
51
  set<T>(documentRef: DocumentReference<T>, data: WithFieldValue<T>): this;
@@ -57,6 +58,7 @@ export declare class Transaction {
57
58
  * @param documentRef - A reference to the document to be set.
58
59
  * @param data - An object of the fields and values for the document.
59
60
  * @param options - An object to configure the set behavior.
61
+ * @throws Error - If the provided input is not a valid Firestore document.
60
62
  * @returns This `Transaction` instance. Used for chaining method calls.
61
63
  */
62
64
  set<T>(documentRef: DocumentReference<T>, data: PartialWithFieldValue<T>, options: SetOptions): this;
@@ -69,6 +71,7 @@ export declare class Transaction {
69
71
  * @param data - An object containing the fields and values with which to
70
72
  * update the document. Fields can contain dots to reference nested fields
71
73
  * within the document.
74
+ * @throws Error - If the provided input is not valid Firestore data.
72
75
  * @returns This `Transaction` instance. Used for chaining method calls.
73
76
  */
74
77
  update<T>(documentRef: DocumentReference<T>, data: UpdateData<T>): this;
@@ -84,6 +87,7 @@ export declare class Transaction {
84
87
  * @param field - The first field to update.
85
88
  * @param value - The first value.
86
89
  * @param moreFieldsAndValues - Additional key/value pairs.
90
+ * @throws Error - If the provided input is not valid Firestore data.
87
91
  * @returns This `Transaction` instance. Used for chaining method calls.
88
92
  */
89
93
  update(documentRef: DocumentReference<unknown>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): this;
@@ -53,6 +53,7 @@ export declare class WriteBatch {
53
53
  * @param documentRef - A reference to the document to be set.
54
54
  * @param data - An object of the fields and values for the document.
55
55
  * @param options - An object to configure the set behavior.
56
+ * @throws Error - If the provided input is not a valid Firestore document.
56
57
  * @returns This `WriteBatch` instance. Used for chaining method calls.
57
58
  */
58
59
  set<T>(documentRef: DocumentReference<T>, data: PartialWithFieldValue<T>, options: SetOptions): WriteBatch;
@@ -65,6 +66,7 @@ export declare class WriteBatch {
65
66
  * @param data - An object containing the fields and values with which to
66
67
  * update the document. Fields can contain dots to reference nested fields
67
68
  * within the document.
69
+ * @throws Error - If the provided input is not valid Firestore data.
68
70
  * @returns This `WriteBatch` instance. Used for chaining method calls.
69
71
  */
70
72
  update<T>(documentRef: DocumentReference<T>, data: UpdateData<T>): WriteBatch;
@@ -80,6 +82,7 @@ export declare class WriteBatch {
80
82
  * @param field - The first field to update.
81
83
  * @param value - The first value.
82
84
  * @param moreFieldsAndValues - Additional key value pairs.
85
+ * @throws Error - If the provided input is not valid Firestore data.
83
86
  * @returns This `WriteBatch` instance. Used for chaining method calls.
84
87
  */
85
88
  update(documentRef: DocumentReference<unknown>, field: string | FieldPath, value: unknown, ...moreFieldsAndValues: unknown[]): WriteBatch;
@@ -16,11 +16,16 @@
16
16
  */
17
17
  import { SnapshotVersion } from '../core/snapshot_version';
18
18
  import { MutableDocumentMap } from '../model/collections';
19
+ import { MutableDocument } from '../model/document';
19
20
  import { IndexManager } from './index_manager';
20
21
  import { LocalSerializer } from './local_serializer';
21
22
  import { PersistencePromise } from './persistence_promise';
22
23
  import { PersistenceTransaction } from './persistence_transaction';
23
24
  import { RemoteDocumentCache } from './remote_document_cache';
25
+ export interface DocumentSizeEntry {
26
+ document: MutableDocument;
27
+ size: number;
28
+ }
24
29
  export interface IndexedDbRemoteDocumentCache extends RemoteDocumentCache {
25
30
  }
26
31
  /**
@@ -21,10 +21,6 @@ import { SortedSet } from '../util/sorted_set';
21
21
  import { Document, MutableDocument } from './document';
22
22
  import { DocumentKey } from './document_key';
23
23
  /** Miscellaneous collection types / constants. */
24
- export interface DocumentSizeEntry {
25
- document: MutableDocument;
26
- size: number;
27
- }
28
24
  export declare type MutableDocumentMap = SortedMap<DocumentKey, MutableDocument>;
29
25
  export declare function mutableDocumentMap(): MutableDocumentMap;
30
26
  export interface DocumentSizeEntries {
@@ -61,6 +61,8 @@ export interface Document {
61
61
  */
62
62
  isUnknownDocument(): boolean;
63
63
  isEqual(other: Document | null | undefined): boolean;
64
+ /** Creates a mutable copy of this document. */
65
+ mutableCopy(): MutableDocument;
64
66
  toString(): string;
65
67
  }
66
68
  /**
@@ -124,7 +126,7 @@ export declare class MutableDocument implements Document {
124
126
  isNoDocument(): boolean;
125
127
  isUnknownDocument(): boolean;
126
128
  isEqual(other: Document | null | undefined): boolean;
127
- clone(): MutableDocument;
129
+ mutableCopy(): MutableDocument;
128
130
  toString(): string;
129
131
  }
130
132
  /**
@@ -18,6 +18,7 @@ import { DatabaseId } from '../core/database_info';
18
18
  import { ArrayValue, MapValue, Value } from '../protos/firestore_proto_api';
19
19
  import { DocumentKey } from './document_key';
20
20
  import { TypeOrder } from './type_order';
21
+ export declare const MAX_VALUE: Value;
21
22
  /** Extracts the backend's type order for the provided value. */
22
23
  export declare function typeOrder(value: Value): TypeOrder;
23
24
  /** Tests `left` and `right` for equality based on the backend semantics. */
@@ -73,3 +74,5 @@ export declare function isMapValue(value?: Value | null): value is {
73
74
  };
74
75
  /** Creates a deep copy of `source`. */
75
76
  export declare function deepClone(source: Value): Value;
77
+ /** Returns true if the Value represents the canonical {@link #MAX_VALUE} . */
78
+ export declare function isMaxValue(value: Value): boolean;
@@ -29,6 +29,7 @@ export declare class ByteString {
29
29
  private constructor();
30
30
  static fromBase64String(base64: string): ByteString;
31
31
  static fromUint8Array(array: Uint8Array): ByteString;
32
+ [Symbol.iterator](): Iterator<number>;
32
33
  toBase64(): string;
33
34
  toUint8Array(): Uint8Array;
34
35
  approximateByteSize(): number;
@@ -14,6 +14,7 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ import { FirebaseError } from '@firebase/util';
17
18
  /**
18
19
  * The set of Firestore status codes. The codes are the same at the ones
19
20
  * exposed by gRPC here:
@@ -170,7 +171,7 @@ export declare const Code: {
170
171
  DATA_LOSS: FirestoreErrorCode;
171
172
  };
172
173
  /** An error returned by a Firestore operation. */
173
- export declare class FirestoreError extends Error {
174
+ export declare class FirestoreError extends FirebaseError {
174
175
  /**
175
176
  * The backend error code associated with this error.
176
177
  */
@@ -179,8 +180,6 @@ export declare class FirestoreError extends Error {
179
180
  * A custom error description.
180
181
  */
181
182
  readonly message: string;
182
- /** The custom name for all FirestoreErrors. */
183
- readonly name: string;
184
183
  /** The stack of the error. */
185
184
  readonly stack?: string;
186
185
  /** @hideconstructor */
@@ -71,6 +71,7 @@ export declare function bound(values: Array<[string, {}, firestore.OrderByDirect
71
71
  export declare function query(resourcePath: string, ...constraints: Array<OrderBy | Filter>): Query;
72
72
  export declare function targetData(targetId: TargetId, queryPurpose: TargetPurpose, path: string): TargetData;
73
73
  export declare function noChangeEvent(targetId: number, snapshotVersion: number, resumeToken?: ByteString): RemoteEvent;
74
+ export declare function existenceFilterEvent(targetId: number, count: number, snapshotVersion: number): RemoteEvent;
74
75
  export declare function docAddedRemoteEvent(docOrDocs: MutableDocument | MutableDocument[], updatedInTargets?: TargetId[], removedFromTargets?: TargetId[], activeTargets?: TargetId[]): RemoteEvent;
75
76
  export declare function docUpdateRemoteEvent(doc: MutableDocument, updatedInTargets?: TargetId[], removedFromTargets?: TargetId[], limboTargets?: TargetId[]): RemoteEvent;
76
77
  export declare class TestBundledDocuments {