@firebase/database 1.0.9 → 1.0.10

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 (225) hide show
  1. package/dist/index.cjs.js +13834 -13834
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm2017.js +13834 -13834
  4. package/dist/index.esm2017.js.map +1 -1
  5. package/dist/index.node.cjs.js +13849 -13849
  6. package/dist/index.node.cjs.js.map +1 -1
  7. package/dist/index.standalone.js +13797 -13797
  8. package/dist/index.standalone.js.map +1 -1
  9. package/dist/node-esm/index.node.esm.js +13849 -13849
  10. package/dist/node-esm/index.node.esm.js.map +1 -1
  11. package/dist/node-esm/src/api/Database.d.ts +137 -137
  12. package/dist/node-esm/src/api/OnDisconnect.d.ts +110 -110
  13. package/dist/node-esm/src/api/Reference.d.ts +122 -122
  14. package/dist/node-esm/src/api/Reference_impl.d.ts +1098 -1098
  15. package/dist/node-esm/src/api/ServerValue.d.ts +30 -30
  16. package/dist/node-esm/src/api/Transaction.d.ts +83 -83
  17. package/dist/node-esm/src/api/test_access.d.ts +31 -31
  18. package/dist/node-esm/src/api.d.ts +18 -18
  19. package/dist/node-esm/src/api.standalone.d.ts +30 -30
  20. package/dist/node-esm/src/core/AppCheckTokenProvider.d.ts +30 -30
  21. package/dist/node-esm/src/core/AuthTokenProvider.d.ts +49 -49
  22. package/dist/node-esm/src/core/CompoundWrite.d.ts +81 -81
  23. package/dist/node-esm/src/core/PersistentConnection.d.ts +135 -135
  24. package/dist/node-esm/src/core/ReadonlyRestClient.d.ts +60 -60
  25. package/dist/node-esm/src/core/Repo.d.ts +144 -144
  26. package/dist/node-esm/src/core/RepoInfo.d.ts +56 -56
  27. package/dist/node-esm/src/core/ServerActions.d.ts +52 -52
  28. package/dist/node-esm/src/core/SnapshotHolder.d.ts +26 -26
  29. package/dist/node-esm/src/core/SparseSnapshotTree.d.ts +64 -64
  30. package/dist/node-esm/src/core/SyncPoint.d.ts +91 -91
  31. package/dist/node-esm/src/core/SyncTree.d.ts +166 -166
  32. package/dist/node-esm/src/core/WriteTree.d.ts +205 -205
  33. package/dist/node-esm/src/core/operation/AckUserWrite.d.ts +36 -36
  34. package/dist/node-esm/src/core/operation/ListenComplete.d.ts +26 -26
  35. package/dist/node-esm/src/core/operation/Merge.d.ts +33 -33
  36. package/dist/node-esm/src/core/operation/Operation.d.ts +45 -45
  37. package/dist/node-esm/src/core/operation/Overwrite.d.ts +28 -28
  38. package/dist/node-esm/src/core/snap/ChildrenNode.d.ts +112 -112
  39. package/dist/node-esm/src/core/snap/IndexMap.d.ts +43 -43
  40. package/dist/node-esm/src/core/snap/LeafNode.d.ts +83 -83
  41. package/dist/node-esm/src/core/snap/Node.d.ts +126 -126
  42. package/dist/node-esm/src/core/snap/childSet.d.ts +32 -32
  43. package/dist/node-esm/src/core/snap/comparators.d.ts +19 -19
  44. package/dist/node-esm/src/core/snap/indexes/Index.d.ts +50 -50
  45. package/dist/node-esm/src/core/snap/indexes/KeyIndex.d.ts +34 -34
  46. package/dist/node-esm/src/core/snap/indexes/PathIndex.d.ts +29 -29
  47. package/dist/node-esm/src/core/snap/indexes/PriorityIndex.d.ts +33 -33
  48. package/dist/node-esm/src/core/snap/indexes/ValueIndex.d.ts +31 -31
  49. package/dist/node-esm/src/core/snap/nodeFromJSON.d.ts +24 -24
  50. package/dist/node-esm/src/core/snap/snap.d.ts +23 -23
  51. package/dist/node-esm/src/core/stats/StatsCollection.d.ts +26 -26
  52. package/dist/node-esm/src/core/stats/StatsListener.d.ts +30 -30
  53. package/dist/node-esm/src/core/stats/StatsManager.d.ts +20 -20
  54. package/dist/node-esm/src/core/stats/StatsReporter.d.ts +28 -28
  55. package/dist/node-esm/src/core/storage/DOMStorageWrapper.d.ts +46 -46
  56. package/dist/node-esm/src/core/storage/MemoryStorage.d.ts +27 -27
  57. package/dist/node-esm/src/core/storage/storage.d.ts +22 -22
  58. package/dist/node-esm/src/core/util/EventEmitter.d.ts +39 -39
  59. package/dist/node-esm/src/core/util/ImmutableTree.d.ts +117 -117
  60. package/dist/node-esm/src/core/util/NextPushId.d.ts +33 -33
  61. package/dist/node-esm/src/core/util/OnlineMonitor.d.ts +31 -31
  62. package/dist/node-esm/src/core/util/Path.d.ts +94 -94
  63. package/dist/node-esm/src/core/util/ServerValues.d.ts +56 -56
  64. package/dist/node-esm/src/core/util/SortedMap.d.ts +324 -324
  65. package/dist/node-esm/src/core/util/Tree.d.ts +105 -105
  66. package/dist/node-esm/src/core/util/VisibilityMonitor.d.ts +23 -23
  67. package/dist/node-esm/src/core/util/libs/parser.d.ts +32 -32
  68. package/dist/node-esm/src/core/util/misc.d.ts +19 -19
  69. package/dist/node-esm/src/core/util/util.d.ts +176 -176
  70. package/dist/node-esm/src/core/util/validation.d.ts +70 -70
  71. package/dist/node-esm/src/core/version.d.ts +23 -23
  72. package/dist/node-esm/src/core/view/CacheNode.d.ts +41 -41
  73. package/dist/node-esm/src/core/view/Change.d.ts +46 -46
  74. package/dist/node-esm/src/core/view/ChildChangeAccumulator.d.ts +22 -22
  75. package/dist/node-esm/src/core/view/CompleteChildSource.d.ts +55 -55
  76. package/dist/node-esm/src/core/view/Event.d.ts +64 -64
  77. package/dist/node-esm/src/core/view/EventGenerator.d.ts +42 -42
  78. package/dist/node-esm/src/core/view/EventQueue.d.ts +67 -67
  79. package/dist/node-esm/src/core/view/EventRegistration.d.ts +87 -87
  80. package/dist/node-esm/src/core/view/QueryParams.d.ts +95 -95
  81. package/dist/node-esm/src/core/view/View.d.ts +59 -59
  82. package/dist/node-esm/src/core/view/ViewCache.d.ts +32 -32
  83. package/dist/node-esm/src/core/view/ViewProcessor.d.ts +32 -32
  84. package/dist/node-esm/src/core/view/filter/IndexedFilter.d.ts +35 -35
  85. package/dist/node-esm/src/core/view/filter/LimitedFilter.d.ts +47 -47
  86. package/dist/node-esm/src/core/view/filter/NodeFilter.d.ts +54 -54
  87. package/dist/node-esm/src/core/view/filter/RangedFilter.d.ts +47 -47
  88. package/dist/node-esm/src/index.d.ts +28 -28
  89. package/dist/node-esm/src/index.node.d.ts +17 -17
  90. package/dist/node-esm/src/index.standalone.d.ts +17 -17
  91. package/dist/node-esm/src/internal/index.d.ts +38 -38
  92. package/dist/node-esm/src/realtime/BrowserPollConnection.d.ts +198 -198
  93. package/dist/node-esm/src/realtime/Connection.d.ts +102 -102
  94. package/dist/node-esm/src/realtime/Constants.d.ts +27 -27
  95. package/dist/node-esm/src/realtime/Transport.d.ts +58 -58
  96. package/dist/node-esm/src/realtime/TransportManager.d.ts +50 -50
  97. package/dist/node-esm/src/realtime/WebSocketConnection.d.ts +127 -127
  98. package/dist/node-esm/src/realtime/polling/PacketReceiver.d.ts +38 -38
  99. package/dist/node-esm/src/register.d.ts +1 -1
  100. package/dist/node-esm/test/compound_write.test.d.ts +17 -17
  101. package/dist/node-esm/test/connection.test.d.ts +17 -17
  102. package/dist/node-esm/test/deno.test.d.ts +17 -17
  103. package/dist/node-esm/test/exp/integration.test.d.ts +17 -17
  104. package/dist/node-esm/test/helpers/EventAccumulator.d.ts +35 -35
  105. package/dist/node-esm/test/helpers/syncpoint-util.d.ts +29 -29
  106. package/dist/node-esm/test/helpers/util.d.ts +34 -34
  107. package/dist/node-esm/test/node.test.d.ts +17 -17
  108. package/dist/node-esm/test/parser.test.d.ts +17 -17
  109. package/dist/node-esm/test/path.test.d.ts +17 -17
  110. package/dist/node-esm/test/pushid.test.d.ts +17 -17
  111. package/dist/node-esm/test/queryconstraint.test.d.ts +17 -17
  112. package/dist/node-esm/test/repoinfo.test.d.ts +17 -17
  113. package/dist/node-esm/test/sortedmap.test.d.ts +17 -17
  114. package/dist/node-esm/test/sparsesnapshottree.test.d.ts +17 -17
  115. package/dist/node-esm/test/syncpoint.test.d.ts +17 -17
  116. package/dist/node-esm/test/transport.test.d.ts +17 -17
  117. package/dist/node-esm/test/websocketconnection.test.d.ts +17 -17
  118. package/dist/src/api/Database.d.ts +137 -137
  119. package/dist/src/api/OnDisconnect.d.ts +110 -110
  120. package/dist/src/api/Reference.d.ts +122 -122
  121. package/dist/src/api/Reference_impl.d.ts +1098 -1098
  122. package/dist/src/api/ServerValue.d.ts +30 -30
  123. package/dist/src/api/Transaction.d.ts +83 -83
  124. package/dist/src/api/test_access.d.ts +31 -31
  125. package/dist/src/api.d.ts +18 -18
  126. package/dist/src/api.standalone.d.ts +30 -30
  127. package/dist/src/core/AppCheckTokenProvider.d.ts +30 -30
  128. package/dist/src/core/AuthTokenProvider.d.ts +49 -49
  129. package/dist/src/core/CompoundWrite.d.ts +81 -81
  130. package/dist/src/core/PersistentConnection.d.ts +135 -135
  131. package/dist/src/core/ReadonlyRestClient.d.ts +60 -60
  132. package/dist/src/core/Repo.d.ts +144 -144
  133. package/dist/src/core/RepoInfo.d.ts +56 -56
  134. package/dist/src/core/ServerActions.d.ts +52 -52
  135. package/dist/src/core/SnapshotHolder.d.ts +26 -26
  136. package/dist/src/core/SparseSnapshotTree.d.ts +64 -64
  137. package/dist/src/core/SyncPoint.d.ts +91 -91
  138. package/dist/src/core/SyncTree.d.ts +166 -166
  139. package/dist/src/core/WriteTree.d.ts +205 -205
  140. package/dist/src/core/operation/AckUserWrite.d.ts +36 -36
  141. package/dist/src/core/operation/ListenComplete.d.ts +26 -26
  142. package/dist/src/core/operation/Merge.d.ts +33 -33
  143. package/dist/src/core/operation/Operation.d.ts +45 -45
  144. package/dist/src/core/operation/Overwrite.d.ts +28 -28
  145. package/dist/src/core/snap/ChildrenNode.d.ts +112 -112
  146. package/dist/src/core/snap/IndexMap.d.ts +43 -43
  147. package/dist/src/core/snap/LeafNode.d.ts +83 -83
  148. package/dist/src/core/snap/Node.d.ts +126 -126
  149. package/dist/src/core/snap/childSet.d.ts +32 -32
  150. package/dist/src/core/snap/comparators.d.ts +19 -19
  151. package/dist/src/core/snap/indexes/Index.d.ts +50 -50
  152. package/dist/src/core/snap/indexes/KeyIndex.d.ts +34 -34
  153. package/dist/src/core/snap/indexes/PathIndex.d.ts +29 -29
  154. package/dist/src/core/snap/indexes/PriorityIndex.d.ts +33 -33
  155. package/dist/src/core/snap/indexes/ValueIndex.d.ts +31 -31
  156. package/dist/src/core/snap/nodeFromJSON.d.ts +24 -24
  157. package/dist/src/core/snap/snap.d.ts +23 -23
  158. package/dist/src/core/stats/StatsCollection.d.ts +26 -26
  159. package/dist/src/core/stats/StatsListener.d.ts +30 -30
  160. package/dist/src/core/stats/StatsManager.d.ts +20 -20
  161. package/dist/src/core/stats/StatsReporter.d.ts +28 -28
  162. package/dist/src/core/storage/DOMStorageWrapper.d.ts +46 -46
  163. package/dist/src/core/storage/MemoryStorage.d.ts +27 -27
  164. package/dist/src/core/storage/storage.d.ts +22 -22
  165. package/dist/src/core/util/EventEmitter.d.ts +39 -39
  166. package/dist/src/core/util/ImmutableTree.d.ts +117 -117
  167. package/dist/src/core/util/NextPushId.d.ts +33 -33
  168. package/dist/src/core/util/OnlineMonitor.d.ts +31 -31
  169. package/dist/src/core/util/Path.d.ts +94 -94
  170. package/dist/src/core/util/ServerValues.d.ts +56 -56
  171. package/dist/src/core/util/SortedMap.d.ts +324 -324
  172. package/dist/src/core/util/Tree.d.ts +105 -105
  173. package/dist/src/core/util/VisibilityMonitor.d.ts +23 -23
  174. package/dist/src/core/util/libs/parser.d.ts +32 -32
  175. package/dist/src/core/util/misc.d.ts +19 -19
  176. package/dist/src/core/util/util.d.ts +176 -176
  177. package/dist/src/core/util/validation.d.ts +70 -70
  178. package/dist/src/core/version.d.ts +23 -23
  179. package/dist/src/core/view/CacheNode.d.ts +41 -41
  180. package/dist/src/core/view/Change.d.ts +46 -46
  181. package/dist/src/core/view/ChildChangeAccumulator.d.ts +22 -22
  182. package/dist/src/core/view/CompleteChildSource.d.ts +55 -55
  183. package/dist/src/core/view/Event.d.ts +64 -64
  184. package/dist/src/core/view/EventGenerator.d.ts +42 -42
  185. package/dist/src/core/view/EventQueue.d.ts +67 -67
  186. package/dist/src/core/view/EventRegistration.d.ts +87 -87
  187. package/dist/src/core/view/QueryParams.d.ts +95 -95
  188. package/dist/src/core/view/View.d.ts +59 -59
  189. package/dist/src/core/view/ViewCache.d.ts +32 -32
  190. package/dist/src/core/view/ViewProcessor.d.ts +32 -32
  191. package/dist/src/core/view/filter/IndexedFilter.d.ts +35 -35
  192. package/dist/src/core/view/filter/LimitedFilter.d.ts +47 -47
  193. package/dist/src/core/view/filter/NodeFilter.d.ts +54 -54
  194. package/dist/src/core/view/filter/RangedFilter.d.ts +47 -47
  195. package/dist/src/index.d.ts +28 -28
  196. package/dist/src/index.node.d.ts +17 -17
  197. package/dist/src/index.standalone.d.ts +17 -17
  198. package/dist/src/internal/index.d.ts +38 -38
  199. package/dist/src/realtime/BrowserPollConnection.d.ts +198 -198
  200. package/dist/src/realtime/Connection.d.ts +102 -102
  201. package/dist/src/realtime/Constants.d.ts +27 -27
  202. package/dist/src/realtime/Transport.d.ts +58 -58
  203. package/dist/src/realtime/TransportManager.d.ts +50 -50
  204. package/dist/src/realtime/WebSocketConnection.d.ts +127 -127
  205. package/dist/src/realtime/polling/PacketReceiver.d.ts +38 -38
  206. package/dist/src/register.d.ts +1 -1
  207. package/dist/test/compound_write.test.d.ts +17 -17
  208. package/dist/test/connection.test.d.ts +17 -17
  209. package/dist/test/deno.test.d.ts +17 -17
  210. package/dist/test/exp/integration.test.d.ts +17 -17
  211. package/dist/test/helpers/EventAccumulator.d.ts +35 -35
  212. package/dist/test/helpers/syncpoint-util.d.ts +29 -29
  213. package/dist/test/helpers/util.d.ts +34 -34
  214. package/dist/test/node.test.d.ts +17 -17
  215. package/dist/test/parser.test.d.ts +17 -17
  216. package/dist/test/path.test.d.ts +17 -17
  217. package/dist/test/pushid.test.d.ts +17 -17
  218. package/dist/test/queryconstraint.test.d.ts +17 -17
  219. package/dist/test/repoinfo.test.d.ts +17 -17
  220. package/dist/test/sortedmap.test.d.ts +17 -17
  221. package/dist/test/sparsesnapshottree.test.d.ts +17 -17
  222. package/dist/test/syncpoint.test.d.ts +17 -17
  223. package/dist/test/transport.test.d.ts +17 -17
  224. package/dist/test/websocketconnection.test.d.ts +17 -17
  225. package/package.json +8 -8
@@ -1,205 +1,205 @@
1
- /**
2
- * @license
3
- * Copyright 2017 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 { CompoundWrite } from './CompoundWrite';
18
- import { ChildrenNode } from './snap/ChildrenNode';
19
- import { Index } from './snap/indexes/Index';
20
- import { NamedNode, Node } from './snap/Node';
21
- import { Path } from './util/Path';
22
- import { CacheNode } from './view/CacheNode';
23
- /**
24
- * Defines a single user-initiated write operation. May be the result of a set(), transaction(), or update() call. In
25
- * the case of a set() or transaction, snap will be non-null. In the case of an update(), children will be non-null.
26
- */
27
- export interface WriteRecord {
28
- writeId: number;
29
- path: Path;
30
- snap?: Node | null;
31
- children?: {
32
- [k: string]: Node;
33
- } | null;
34
- visible: boolean;
35
- }
36
- /**
37
- * Create a new WriteTreeRef for the given path. For use with a new sync point at the given path.
38
- *
39
- */
40
- export declare function writeTreeChildWrites(writeTree: WriteTree, path: Path): WriteTreeRef;
41
- /**
42
- * Record a new overwrite from user code.
43
- *
44
- * @param visible - This is set to false by some transactions. It should be excluded from event caches
45
- */
46
- export declare function writeTreeAddOverwrite(writeTree: WriteTree, path: Path, snap: Node, writeId: number, visible?: boolean): void;
47
- /**
48
- * Record a new merge from user code.
49
- */
50
- export declare function writeTreeAddMerge(writeTree: WriteTree, path: Path, changedChildren: {
51
- [k: string]: Node;
52
- }, writeId: number): void;
53
- export declare function writeTreeGetWrite(writeTree: WriteTree, writeId: number): WriteRecord | null;
54
- /**
55
- * Remove a write (either an overwrite or merge) that has been successfully acknowledge by the server. Recalculates
56
- * the tree if necessary. We return true if it may have been visible, meaning views need to reevaluate.
57
- *
58
- * @returns true if the write may have been visible (meaning we'll need to reevaluate / raise
59
- * events as a result).
60
- */
61
- export declare function writeTreeRemoveWrite(writeTree: WriteTree, writeId: number): boolean;
62
- /**
63
- * Return a complete snapshot for the given path if there's visible write data at that path, else null.
64
- * No server data is considered.
65
- *
66
- */
67
- export declare function writeTreeGetCompleteWriteData(writeTree: WriteTree, path: Path): Node | null;
68
- /**
69
- * Given optional, underlying server data, and an optional set of constraints (exclude some sets, include hidden
70
- * writes), attempt to calculate a complete snapshot for the given path
71
- *
72
- * @param writeIdsToExclude - An optional set to be excluded
73
- * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false
74
- */
75
- export declare function writeTreeCalcCompleteEventCache(writeTree: WriteTree, treePath: Path, completeServerCache: Node | null, writeIdsToExclude?: number[], includeHiddenWrites?: boolean): Node | null;
76
- /**
77
- * With optional, underlying server data, attempt to return a children node of children that we have complete data for.
78
- * Used when creating new views, to pre-fill their complete event children snapshot.
79
- */
80
- export declare function writeTreeCalcCompleteEventChildren(writeTree: WriteTree, treePath: Path, completeServerChildren: ChildrenNode | null): Node;
81
- /**
82
- * Given that the underlying server data has updated, determine what, if anything, needs to be
83
- * applied to the event cache.
84
- *
85
- * Possibilities:
86
- *
87
- * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data
88
- *
89
- * 2. Some write is completely shadowing. No events to be raised
90
- *
91
- * 3. Is partially shadowed. Events
92
- *
93
- * Either existingEventSnap or existingServerSnap must exist
94
- */
95
- export declare function writeTreeCalcEventCacheAfterServerOverwrite(writeTree: WriteTree, treePath: Path, childPath: Path, existingEventSnap: Node | null, existingServerSnap: Node | null): Node | null;
96
- /**
97
- * Returns a complete child for a given server snap after applying all user writes or null if there is no
98
- * complete child for this ChildKey.
99
- */
100
- export declare function writeTreeCalcCompleteChild(writeTree: WriteTree, treePath: Path, childKey: string, existingServerSnap: CacheNode): Node | null;
101
- /**
102
- * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at
103
- * a higher path, this will return the child of that write relative to the write and this path.
104
- * Returns null if there is no write at this path.
105
- */
106
- export declare function writeTreeShadowingWrite(writeTree: WriteTree, path: Path): Node | null;
107
- /**
108
- * This method is used when processing child remove events on a query. If we can, we pull in children that were outside
109
- * the window, but may now be in the window.
110
- */
111
- export declare function writeTreeCalcIndexedSlice(writeTree: WriteTree, treePath: Path, completeServerData: Node | null, startPost: NamedNode, count: number, reverse: boolean, index: Index): NamedNode[];
112
- export declare function newWriteTree(): WriteTree;
113
- /**
114
- * WriteTree tracks all pending user-initiated writes and has methods to calculate the result of merging them
115
- * with underlying server data (to create "event cache" data). Pending writes are added with addOverwrite()
116
- * and addMerge(), and removed with removeWrite().
117
- */
118
- export interface WriteTree {
119
- /**
120
- * A tree tracking the result of applying all visible writes. This does not include transactions with
121
- * applyLocally=false or writes that are completely shadowed by other writes.
122
- */
123
- visibleWrites: CompoundWrite;
124
- /**
125
- * A list of all pending writes, regardless of visibility and shadowed-ness. Used to calculate arbitrary
126
- * sets of the changed data, such as hidden writes (from transactions) or changes with certain writes excluded (also
127
- * used by transactions).
128
- */
129
- allWrites: WriteRecord[];
130
- lastWriteId: number;
131
- }
132
- /**
133
- * If possible, returns a complete event cache, using the underlying server data if possible. In addition, can be used
134
- * to get a cache that includes hidden writes, and excludes arbitrary writes. Note that customizing the returned node
135
- * can lead to a more expensive calculation.
136
- *
137
- * @param writeIdsToExclude - Optional writes to exclude.
138
- * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false
139
- */
140
- export declare function writeTreeRefCalcCompleteEventCache(writeTreeRef: WriteTreeRef, completeServerCache: Node | null, writeIdsToExclude?: number[], includeHiddenWrites?: boolean): Node | null;
141
- /**
142
- * If possible, returns a children node containing all of the complete children we have data for. The returned data is a
143
- * mix of the given server data and write data.
144
- *
145
- */
146
- export declare function writeTreeRefCalcCompleteEventChildren(writeTreeRef: WriteTreeRef, completeServerChildren: ChildrenNode | null): ChildrenNode;
147
- /**
148
- * Given that either the underlying server data has updated or the outstanding writes have updated, determine what,
149
- * if anything, needs to be applied to the event cache.
150
- *
151
- * Possibilities:
152
- *
153
- * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data
154
- *
155
- * 2. Some write is completely shadowing. No events to be raised
156
- *
157
- * 3. Is partially shadowed. Events should be raised
158
- *
159
- * Either existingEventSnap or existingServerSnap must exist, this is validated via an assert
160
- *
161
- *
162
- */
163
- export declare function writeTreeRefCalcEventCacheAfterServerOverwrite(writeTreeRef: WriteTreeRef, path: Path, existingEventSnap: Node | null, existingServerSnap: Node | null): Node | null;
164
- /**
165
- * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at
166
- * a higher path, this will return the child of that write relative to the write and this path.
167
- * Returns null if there is no write at this path.
168
- *
169
- */
170
- export declare function writeTreeRefShadowingWrite(writeTreeRef: WriteTreeRef, path: Path): Node | null;
171
- /**
172
- * This method is used when processing child remove events on a query. If we can, we pull in children that were outside
173
- * the window, but may now be in the window
174
- */
175
- export declare function writeTreeRefCalcIndexedSlice(writeTreeRef: WriteTreeRef, completeServerData: Node | null, startPost: NamedNode, count: number, reverse: boolean, index: Index): NamedNode[];
176
- /**
177
- * Returns a complete child for a given server snap after applying all user writes or null if there is no
178
- * complete child for this ChildKey.
179
- */
180
- export declare function writeTreeRefCalcCompleteChild(writeTreeRef: WriteTreeRef, childKey: string, existingServerCache: CacheNode): Node | null;
181
- /**
182
- * Return a WriteTreeRef for a child.
183
- */
184
- export declare function writeTreeRefChild(writeTreeRef: WriteTreeRef, childName: string): WriteTreeRef;
185
- export declare function newWriteTreeRef(path: Path, writeTree: WriteTree): WriteTreeRef;
186
- /**
187
- * A WriteTreeRef wraps a WriteTree and a path, for convenient access to a particular subtree. All of the methods
188
- * just proxy to the underlying WriteTree.
189
- *
190
- */
191
- export interface WriteTreeRef {
192
- /**
193
- * The path to this particular write tree ref. Used for calling methods on writeTree_ while exposing a simpler
194
- * interface to callers.
195
- */
196
- readonly treePath: Path;
197
- /**
198
- * * A reference to the actual tree of write data. All methods are pass-through to the tree, but with the appropriate
199
- * path prefixed.
200
- *
201
- * This lets us make cheap references to points in the tree for sync points without having to copy and maintain all of
202
- * the data.
203
- */
204
- readonly writeTree: WriteTree;
205
- }
1
+ /**
2
+ * @license
3
+ * Copyright 2017 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 { CompoundWrite } from './CompoundWrite';
18
+ import { ChildrenNode } from './snap/ChildrenNode';
19
+ import { Index } from './snap/indexes/Index';
20
+ import { NamedNode, Node } from './snap/Node';
21
+ import { Path } from './util/Path';
22
+ import { CacheNode } from './view/CacheNode';
23
+ /**
24
+ * Defines a single user-initiated write operation. May be the result of a set(), transaction(), or update() call. In
25
+ * the case of a set() or transaction, snap will be non-null. In the case of an update(), children will be non-null.
26
+ */
27
+ export interface WriteRecord {
28
+ writeId: number;
29
+ path: Path;
30
+ snap?: Node | null;
31
+ children?: {
32
+ [k: string]: Node;
33
+ } | null;
34
+ visible: boolean;
35
+ }
36
+ /**
37
+ * Create a new WriteTreeRef for the given path. For use with a new sync point at the given path.
38
+ *
39
+ */
40
+ export declare function writeTreeChildWrites(writeTree: WriteTree, path: Path): WriteTreeRef;
41
+ /**
42
+ * Record a new overwrite from user code.
43
+ *
44
+ * @param visible - This is set to false by some transactions. It should be excluded from event caches
45
+ */
46
+ export declare function writeTreeAddOverwrite(writeTree: WriteTree, path: Path, snap: Node, writeId: number, visible?: boolean): void;
47
+ /**
48
+ * Record a new merge from user code.
49
+ */
50
+ export declare function writeTreeAddMerge(writeTree: WriteTree, path: Path, changedChildren: {
51
+ [k: string]: Node;
52
+ }, writeId: number): void;
53
+ export declare function writeTreeGetWrite(writeTree: WriteTree, writeId: number): WriteRecord | null;
54
+ /**
55
+ * Remove a write (either an overwrite or merge) that has been successfully acknowledge by the server. Recalculates
56
+ * the tree if necessary. We return true if it may have been visible, meaning views need to reevaluate.
57
+ *
58
+ * @returns true if the write may have been visible (meaning we'll need to reevaluate / raise
59
+ * events as a result).
60
+ */
61
+ export declare function writeTreeRemoveWrite(writeTree: WriteTree, writeId: number): boolean;
62
+ /**
63
+ * Return a complete snapshot for the given path if there's visible write data at that path, else null.
64
+ * No server data is considered.
65
+ *
66
+ */
67
+ export declare function writeTreeGetCompleteWriteData(writeTree: WriteTree, path: Path): Node | null;
68
+ /**
69
+ * Given optional, underlying server data, and an optional set of constraints (exclude some sets, include hidden
70
+ * writes), attempt to calculate a complete snapshot for the given path
71
+ *
72
+ * @param writeIdsToExclude - An optional set to be excluded
73
+ * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false
74
+ */
75
+ export declare function writeTreeCalcCompleteEventCache(writeTree: WriteTree, treePath: Path, completeServerCache: Node | null, writeIdsToExclude?: number[], includeHiddenWrites?: boolean): Node | null;
76
+ /**
77
+ * With optional, underlying server data, attempt to return a children node of children that we have complete data for.
78
+ * Used when creating new views, to pre-fill their complete event children snapshot.
79
+ */
80
+ export declare function writeTreeCalcCompleteEventChildren(writeTree: WriteTree, treePath: Path, completeServerChildren: ChildrenNode | null): Node;
81
+ /**
82
+ * Given that the underlying server data has updated, determine what, if anything, needs to be
83
+ * applied to the event cache.
84
+ *
85
+ * Possibilities:
86
+ *
87
+ * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data
88
+ *
89
+ * 2. Some write is completely shadowing. No events to be raised
90
+ *
91
+ * 3. Is partially shadowed. Events
92
+ *
93
+ * Either existingEventSnap or existingServerSnap must exist
94
+ */
95
+ export declare function writeTreeCalcEventCacheAfterServerOverwrite(writeTree: WriteTree, treePath: Path, childPath: Path, existingEventSnap: Node | null, existingServerSnap: Node | null): Node | null;
96
+ /**
97
+ * Returns a complete child for a given server snap after applying all user writes or null if there is no
98
+ * complete child for this ChildKey.
99
+ */
100
+ export declare function writeTreeCalcCompleteChild(writeTree: WriteTree, treePath: Path, childKey: string, existingServerSnap: CacheNode): Node | null;
101
+ /**
102
+ * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at
103
+ * a higher path, this will return the child of that write relative to the write and this path.
104
+ * Returns null if there is no write at this path.
105
+ */
106
+ export declare function writeTreeShadowingWrite(writeTree: WriteTree, path: Path): Node | null;
107
+ /**
108
+ * This method is used when processing child remove events on a query. If we can, we pull in children that were outside
109
+ * the window, but may now be in the window.
110
+ */
111
+ export declare function writeTreeCalcIndexedSlice(writeTree: WriteTree, treePath: Path, completeServerData: Node | null, startPost: NamedNode, count: number, reverse: boolean, index: Index): NamedNode[];
112
+ export declare function newWriteTree(): WriteTree;
113
+ /**
114
+ * WriteTree tracks all pending user-initiated writes and has methods to calculate the result of merging them
115
+ * with underlying server data (to create "event cache" data). Pending writes are added with addOverwrite()
116
+ * and addMerge(), and removed with removeWrite().
117
+ */
118
+ export interface WriteTree {
119
+ /**
120
+ * A tree tracking the result of applying all visible writes. This does not include transactions with
121
+ * applyLocally=false or writes that are completely shadowed by other writes.
122
+ */
123
+ visibleWrites: CompoundWrite;
124
+ /**
125
+ * A list of all pending writes, regardless of visibility and shadowed-ness. Used to calculate arbitrary
126
+ * sets of the changed data, such as hidden writes (from transactions) or changes with certain writes excluded (also
127
+ * used by transactions).
128
+ */
129
+ allWrites: WriteRecord[];
130
+ lastWriteId: number;
131
+ }
132
+ /**
133
+ * If possible, returns a complete event cache, using the underlying server data if possible. In addition, can be used
134
+ * to get a cache that includes hidden writes, and excludes arbitrary writes. Note that customizing the returned node
135
+ * can lead to a more expensive calculation.
136
+ *
137
+ * @param writeIdsToExclude - Optional writes to exclude.
138
+ * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false
139
+ */
140
+ export declare function writeTreeRefCalcCompleteEventCache(writeTreeRef: WriteTreeRef, completeServerCache: Node | null, writeIdsToExclude?: number[], includeHiddenWrites?: boolean): Node | null;
141
+ /**
142
+ * If possible, returns a children node containing all of the complete children we have data for. The returned data is a
143
+ * mix of the given server data and write data.
144
+ *
145
+ */
146
+ export declare function writeTreeRefCalcCompleteEventChildren(writeTreeRef: WriteTreeRef, completeServerChildren: ChildrenNode | null): ChildrenNode;
147
+ /**
148
+ * Given that either the underlying server data has updated or the outstanding writes have updated, determine what,
149
+ * if anything, needs to be applied to the event cache.
150
+ *
151
+ * Possibilities:
152
+ *
153
+ * 1. No writes are shadowing. Events should be raised, the snap to be applied comes from the server data
154
+ *
155
+ * 2. Some write is completely shadowing. No events to be raised
156
+ *
157
+ * 3. Is partially shadowed. Events should be raised
158
+ *
159
+ * Either existingEventSnap or existingServerSnap must exist, this is validated via an assert
160
+ *
161
+ *
162
+ */
163
+ export declare function writeTreeRefCalcEventCacheAfterServerOverwrite(writeTreeRef: WriteTreeRef, path: Path, existingEventSnap: Node | null, existingServerSnap: Node | null): Node | null;
164
+ /**
165
+ * Returns a node if there is a complete overwrite for this path. More specifically, if there is a write at
166
+ * a higher path, this will return the child of that write relative to the write and this path.
167
+ * Returns null if there is no write at this path.
168
+ *
169
+ */
170
+ export declare function writeTreeRefShadowingWrite(writeTreeRef: WriteTreeRef, path: Path): Node | null;
171
+ /**
172
+ * This method is used when processing child remove events on a query. If we can, we pull in children that were outside
173
+ * the window, but may now be in the window
174
+ */
175
+ export declare function writeTreeRefCalcIndexedSlice(writeTreeRef: WriteTreeRef, completeServerData: Node | null, startPost: NamedNode, count: number, reverse: boolean, index: Index): NamedNode[];
176
+ /**
177
+ * Returns a complete child for a given server snap after applying all user writes or null if there is no
178
+ * complete child for this ChildKey.
179
+ */
180
+ export declare function writeTreeRefCalcCompleteChild(writeTreeRef: WriteTreeRef, childKey: string, existingServerCache: CacheNode): Node | null;
181
+ /**
182
+ * Return a WriteTreeRef for a child.
183
+ */
184
+ export declare function writeTreeRefChild(writeTreeRef: WriteTreeRef, childName: string): WriteTreeRef;
185
+ export declare function newWriteTreeRef(path: Path, writeTree: WriteTree): WriteTreeRef;
186
+ /**
187
+ * A WriteTreeRef wraps a WriteTree and a path, for convenient access to a particular subtree. All of the methods
188
+ * just proxy to the underlying WriteTree.
189
+ *
190
+ */
191
+ export interface WriteTreeRef {
192
+ /**
193
+ * The path to this particular write tree ref. Used for calling methods on writeTree_ while exposing a simpler
194
+ * interface to callers.
195
+ */
196
+ readonly treePath: Path;
197
+ /**
198
+ * * A reference to the actual tree of write data. All methods are pass-through to the tree, but with the appropriate
199
+ * path prefixed.
200
+ *
201
+ * This lets us make cheap references to points in the tree for sync points without having to copy and maintain all of
202
+ * the data.
203
+ */
204
+ readonly writeTree: WriteTree;
205
+ }
@@ -1,36 +1,36 @@
1
- /**
2
- * @license
3
- * Copyright 2017 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 { ImmutableTree } from '../util/ImmutableTree';
18
- import { Path } from '../util/Path';
19
- import { Operation, OperationType } from './Operation';
20
- export declare class AckUserWrite implements Operation {
21
- /** @inheritDoc */ path: Path;
22
- /** @inheritDoc */ affectedTree: ImmutableTree<boolean>;
23
- /** @inheritDoc */ revert: boolean;
24
- /** @inheritDoc */
25
- type: OperationType;
26
- /** @inheritDoc */
27
- source: import("./Operation").OperationSource;
28
- /**
29
- * @param affectedTree - A tree containing true for each affected path. Affected paths can't overlap.
30
- */
31
- constructor(
32
- /** @inheritDoc */ path: Path,
33
- /** @inheritDoc */ affectedTree: ImmutableTree<boolean>,
34
- /** @inheritDoc */ revert: boolean);
35
- operationForChild(childName: string): AckUserWrite;
36
- }
1
+ /**
2
+ * @license
3
+ * Copyright 2017 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 { ImmutableTree } from '../util/ImmutableTree';
18
+ import { Path } from '../util/Path';
19
+ import { Operation, OperationType } from './Operation';
20
+ export declare class AckUserWrite implements Operation {
21
+ /** @inheritDoc */ path: Path;
22
+ /** @inheritDoc */ affectedTree: ImmutableTree<boolean>;
23
+ /** @inheritDoc */ revert: boolean;
24
+ /** @inheritDoc */
25
+ type: OperationType;
26
+ /** @inheritDoc */
27
+ source: import("./Operation").OperationSource;
28
+ /**
29
+ * @param affectedTree - A tree containing true for each affected path. Affected paths can't overlap.
30
+ */
31
+ constructor(
32
+ /** @inheritDoc */ path: Path,
33
+ /** @inheritDoc */ affectedTree: ImmutableTree<boolean>,
34
+ /** @inheritDoc */ revert: boolean);
35
+ operationForChild(childName: string): AckUserWrite;
36
+ }
@@ -1,26 +1,26 @@
1
- /**
2
- * @license
3
- * Copyright 2017 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 { Path } from '../util/Path';
18
- import { Operation, OperationSource, OperationType } from './Operation';
19
- export declare class ListenComplete implements Operation {
20
- source: OperationSource;
21
- path: Path;
22
- /** @inheritDoc */
23
- type: OperationType;
24
- constructor(source: OperationSource, path: Path);
25
- operationForChild(childName: string): ListenComplete;
26
- }
1
+ /**
2
+ * @license
3
+ * Copyright 2017 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 { Path } from '../util/Path';
18
+ import { Operation, OperationSource, OperationType } from './Operation';
19
+ export declare class ListenComplete implements Operation {
20
+ source: OperationSource;
21
+ path: Path;
22
+ /** @inheritDoc */
23
+ type: OperationType;
24
+ constructor(source: OperationSource, path: Path);
25
+ operationForChild(childName: string): ListenComplete;
26
+ }
@@ -1,33 +1,33 @@
1
- /**
2
- * @license
3
- * Copyright 2017 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 { Node } from '../snap/Node';
18
- import { ImmutableTree } from '../util/ImmutableTree';
19
- import { Path } from '../util/Path';
20
- import { Operation, OperationSource, OperationType } from './Operation';
21
- export declare class Merge implements Operation {
22
- /** @inheritDoc */ source: OperationSource;
23
- /** @inheritDoc */ path: Path;
24
- /** @inheritDoc */ children: ImmutableTree<Node>;
25
- /** @inheritDoc */
26
- type: OperationType;
27
- constructor(
28
- /** @inheritDoc */ source: OperationSource,
29
- /** @inheritDoc */ path: Path,
30
- /** @inheritDoc */ children: ImmutableTree<Node>);
31
- operationForChild(childName: string): Operation;
32
- toString(): string;
33
- }
1
+ /**
2
+ * @license
3
+ * Copyright 2017 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 { Node } from '../snap/Node';
18
+ import { ImmutableTree } from '../util/ImmutableTree';
19
+ import { Path } from '../util/Path';
20
+ import { Operation, OperationSource, OperationType } from './Operation';
21
+ export declare class Merge implements Operation {
22
+ /** @inheritDoc */ source: OperationSource;
23
+ /** @inheritDoc */ path: Path;
24
+ /** @inheritDoc */ children: ImmutableTree<Node>;
25
+ /** @inheritDoc */
26
+ type: OperationType;
27
+ constructor(
28
+ /** @inheritDoc */ source: OperationSource,
29
+ /** @inheritDoc */ path: Path,
30
+ /** @inheritDoc */ children: ImmutableTree<Node>);
31
+ operationForChild(childName: string): Operation;
32
+ toString(): string;
33
+ }