@depup/firebase__database 1.1.1-depup.0
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.
- package/README.md +31 -0
- package/changes.json +10 -0
- package/dist/index.cjs.js +14089 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.esm.js +14032 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.node.cjs.js +14109 -0
- package/dist/index.node.cjs.js.map +1 -0
- package/dist/index.standalone.js +14052 -0
- package/dist/index.standalone.js.map +1 -0
- package/dist/internal.d.ts +2991 -0
- package/dist/node-esm/index.node.esm.js +14048 -0
- package/dist/node-esm/index.node.esm.js.map +1 -0
- package/dist/node-esm/package.json +1 -0
- package/dist/node-esm/src/api/Database.d.ts +137 -0
- package/dist/node-esm/src/api/OnDisconnect.d.ts +110 -0
- package/dist/node-esm/src/api/Reference.d.ts +124 -0
- package/dist/node-esm/src/api/Reference_impl.d.ts +1100 -0
- package/dist/node-esm/src/api/ServerValue.d.ts +30 -0
- package/dist/node-esm/src/api/Transaction.d.ts +83 -0
- package/dist/node-esm/src/api/test_access.d.ts +31 -0
- package/dist/node-esm/src/api.d.ts +18 -0
- package/dist/node-esm/src/api.standalone.d.ts +30 -0
- package/dist/node-esm/src/core/AppCheckTokenProvider.d.ts +32 -0
- package/dist/node-esm/src/core/AuthTokenProvider.d.ts +49 -0
- package/dist/node-esm/src/core/CompoundWrite.d.ts +81 -0
- package/dist/node-esm/src/core/PersistentConnection.d.ts +135 -0
- package/dist/node-esm/src/core/ReadonlyRestClient.d.ts +60 -0
- package/dist/node-esm/src/core/Repo.d.ts +144 -0
- package/dist/node-esm/src/core/RepoInfo.d.ts +61 -0
- package/dist/node-esm/src/core/ServerActions.d.ts +52 -0
- package/dist/node-esm/src/core/SnapshotHolder.d.ts +26 -0
- package/dist/node-esm/src/core/SparseSnapshotTree.d.ts +64 -0
- package/dist/node-esm/src/core/SyncPoint.d.ts +91 -0
- package/dist/node-esm/src/core/SyncTree.d.ts +166 -0
- package/dist/node-esm/src/core/WriteTree.d.ts +205 -0
- package/dist/node-esm/src/core/operation/AckUserWrite.d.ts +36 -0
- package/dist/node-esm/src/core/operation/ListenComplete.d.ts +26 -0
- package/dist/node-esm/src/core/operation/Merge.d.ts +33 -0
- package/dist/node-esm/src/core/operation/Operation.d.ts +45 -0
- package/dist/node-esm/src/core/operation/Overwrite.d.ts +28 -0
- package/dist/node-esm/src/core/snap/ChildrenNode.d.ts +112 -0
- package/dist/node-esm/src/core/snap/IndexMap.d.ts +43 -0
- package/dist/node-esm/src/core/snap/LeafNode.d.ts +83 -0
- package/dist/node-esm/src/core/snap/Node.d.ts +126 -0
- package/dist/node-esm/src/core/snap/childSet.d.ts +32 -0
- package/dist/node-esm/src/core/snap/comparators.d.ts +19 -0
- package/dist/node-esm/src/core/snap/indexes/Index.d.ts +50 -0
- package/dist/node-esm/src/core/snap/indexes/KeyIndex.d.ts +34 -0
- package/dist/node-esm/src/core/snap/indexes/PathIndex.d.ts +29 -0
- package/dist/node-esm/src/core/snap/indexes/PriorityIndex.d.ts +33 -0
- package/dist/node-esm/src/core/snap/indexes/ValueIndex.d.ts +31 -0
- package/dist/node-esm/src/core/snap/nodeFromJSON.d.ts +24 -0
- package/dist/node-esm/src/core/snap/snap.d.ts +23 -0
- package/dist/node-esm/src/core/stats/StatsCollection.d.ts +26 -0
- package/dist/node-esm/src/core/stats/StatsListener.d.ts +30 -0
- package/dist/node-esm/src/core/stats/StatsManager.d.ts +20 -0
- package/dist/node-esm/src/core/stats/StatsReporter.d.ts +28 -0
- package/dist/node-esm/src/core/storage/DOMStorageWrapper.d.ts +46 -0
- package/dist/node-esm/src/core/storage/MemoryStorage.d.ts +27 -0
- package/dist/node-esm/src/core/storage/storage.d.ts +22 -0
- package/dist/node-esm/src/core/util/EventEmitter.d.ts +39 -0
- package/dist/node-esm/src/core/util/ImmutableTree.d.ts +117 -0
- package/dist/node-esm/src/core/util/NextPushId.d.ts +33 -0
- package/dist/node-esm/src/core/util/OnlineMonitor.d.ts +31 -0
- package/dist/node-esm/src/core/util/Path.d.ts +94 -0
- package/dist/node-esm/src/core/util/ServerValues.d.ts +56 -0
- package/dist/node-esm/src/core/util/SortedMap.d.ts +324 -0
- package/dist/node-esm/src/core/util/Tree.d.ts +105 -0
- package/dist/node-esm/src/core/util/VisibilityMonitor.d.ts +23 -0
- package/dist/node-esm/src/core/util/libs/parser.d.ts +32 -0
- package/dist/node-esm/src/core/util/misc.d.ts +19 -0
- package/dist/node-esm/src/core/util/util.d.ts +176 -0
- package/dist/node-esm/src/core/util/validation.d.ts +70 -0
- package/dist/node-esm/src/core/version.d.ts +23 -0
- package/dist/node-esm/src/core/view/CacheNode.d.ts +41 -0
- package/dist/node-esm/src/core/view/Change.d.ts +46 -0
- package/dist/node-esm/src/core/view/ChildChangeAccumulator.d.ts +22 -0
- package/dist/node-esm/src/core/view/CompleteChildSource.d.ts +55 -0
- package/dist/node-esm/src/core/view/Event.d.ts +64 -0
- package/dist/node-esm/src/core/view/EventGenerator.d.ts +42 -0
- package/dist/node-esm/src/core/view/EventQueue.d.ts +67 -0
- package/dist/node-esm/src/core/view/EventRegistration.d.ts +87 -0
- package/dist/node-esm/src/core/view/QueryParams.d.ts +95 -0
- package/dist/node-esm/src/core/view/View.d.ts +59 -0
- package/dist/node-esm/src/core/view/ViewCache.d.ts +32 -0
- package/dist/node-esm/src/core/view/ViewProcessor.d.ts +32 -0
- package/dist/node-esm/src/core/view/filter/IndexedFilter.d.ts +35 -0
- package/dist/node-esm/src/core/view/filter/LimitedFilter.d.ts +47 -0
- package/dist/node-esm/src/core/view/filter/NodeFilter.d.ts +54 -0
- package/dist/node-esm/src/core/view/filter/RangedFilter.d.ts +47 -0
- package/dist/node-esm/src/index.d.ts +28 -0
- package/dist/node-esm/src/index.node.d.ts +17 -0
- package/dist/node-esm/src/index.standalone.d.ts +17 -0
- package/dist/node-esm/src/internal/index.d.ts +38 -0
- package/dist/node-esm/src/realtime/BrowserPollConnection.d.ts +198 -0
- package/dist/node-esm/src/realtime/Connection.d.ts +102 -0
- package/dist/node-esm/src/realtime/Constants.d.ts +27 -0
- package/dist/node-esm/src/realtime/Transport.d.ts +58 -0
- package/dist/node-esm/src/realtime/TransportManager.d.ts +50 -0
- package/dist/node-esm/src/realtime/WebSocketConnection.d.ts +127 -0
- package/dist/node-esm/src/realtime/polling/PacketReceiver.d.ts +38 -0
- package/dist/node-esm/src/register.d.ts +1 -0
- package/dist/node-esm/test/helpers/EventAccumulator.d.ts +35 -0
- package/dist/node-esm/test/helpers/syncpoint-util.d.ts +29 -0
- package/dist/node-esm/test/helpers/util.d.ts +36 -0
- package/dist/private.d.ts +2853 -0
- package/dist/public.d.ts +1405 -0
- package/dist/src/api/Database.d.ts +137 -0
- package/dist/src/api/OnDisconnect.d.ts +110 -0
- package/dist/src/api/Reference.d.ts +124 -0
- package/dist/src/api/Reference_impl.d.ts +1100 -0
- package/dist/src/api/ServerValue.d.ts +30 -0
- package/dist/src/api/Transaction.d.ts +83 -0
- package/dist/src/api/test_access.d.ts +31 -0
- package/dist/src/api.d.ts +18 -0
- package/dist/src/api.standalone.d.ts +30 -0
- package/dist/src/core/AppCheckTokenProvider.d.ts +32 -0
- package/dist/src/core/AuthTokenProvider.d.ts +49 -0
- package/dist/src/core/CompoundWrite.d.ts +81 -0
- package/dist/src/core/PersistentConnection.d.ts +135 -0
- package/dist/src/core/ReadonlyRestClient.d.ts +60 -0
- package/dist/src/core/Repo.d.ts +144 -0
- package/dist/src/core/RepoInfo.d.ts +61 -0
- package/dist/src/core/ServerActions.d.ts +52 -0
- package/dist/src/core/SnapshotHolder.d.ts +26 -0
- package/dist/src/core/SparseSnapshotTree.d.ts +64 -0
- package/dist/src/core/SyncPoint.d.ts +91 -0
- package/dist/src/core/SyncTree.d.ts +166 -0
- package/dist/src/core/WriteTree.d.ts +205 -0
- package/dist/src/core/operation/AckUserWrite.d.ts +36 -0
- package/dist/src/core/operation/ListenComplete.d.ts +26 -0
- package/dist/src/core/operation/Merge.d.ts +33 -0
- package/dist/src/core/operation/Operation.d.ts +45 -0
- package/dist/src/core/operation/Overwrite.d.ts +28 -0
- package/dist/src/core/snap/ChildrenNode.d.ts +112 -0
- package/dist/src/core/snap/IndexMap.d.ts +43 -0
- package/dist/src/core/snap/LeafNode.d.ts +83 -0
- package/dist/src/core/snap/Node.d.ts +126 -0
- package/dist/src/core/snap/childSet.d.ts +32 -0
- package/dist/src/core/snap/comparators.d.ts +19 -0
- package/dist/src/core/snap/indexes/Index.d.ts +50 -0
- package/dist/src/core/snap/indexes/KeyIndex.d.ts +34 -0
- package/dist/src/core/snap/indexes/PathIndex.d.ts +29 -0
- package/dist/src/core/snap/indexes/PriorityIndex.d.ts +33 -0
- package/dist/src/core/snap/indexes/ValueIndex.d.ts +31 -0
- package/dist/src/core/snap/nodeFromJSON.d.ts +24 -0
- package/dist/src/core/snap/snap.d.ts +23 -0
- package/dist/src/core/stats/StatsCollection.d.ts +26 -0
- package/dist/src/core/stats/StatsListener.d.ts +30 -0
- package/dist/src/core/stats/StatsManager.d.ts +20 -0
- package/dist/src/core/stats/StatsReporter.d.ts +28 -0
- package/dist/src/core/storage/DOMStorageWrapper.d.ts +46 -0
- package/dist/src/core/storage/MemoryStorage.d.ts +27 -0
- package/dist/src/core/storage/storage.d.ts +22 -0
- package/dist/src/core/util/EventEmitter.d.ts +39 -0
- package/dist/src/core/util/ImmutableTree.d.ts +117 -0
- package/dist/src/core/util/NextPushId.d.ts +33 -0
- package/dist/src/core/util/OnlineMonitor.d.ts +31 -0
- package/dist/src/core/util/Path.d.ts +94 -0
- package/dist/src/core/util/ServerValues.d.ts +56 -0
- package/dist/src/core/util/SortedMap.d.ts +324 -0
- package/dist/src/core/util/Tree.d.ts +105 -0
- package/dist/src/core/util/VisibilityMonitor.d.ts +23 -0
- package/dist/src/core/util/libs/parser.d.ts +32 -0
- package/dist/src/core/util/misc.d.ts +19 -0
- package/dist/src/core/util/util.d.ts +176 -0
- package/dist/src/core/util/validation.d.ts +70 -0
- package/dist/src/core/version.d.ts +23 -0
- package/dist/src/core/view/CacheNode.d.ts +41 -0
- package/dist/src/core/view/Change.d.ts +46 -0
- package/dist/src/core/view/ChildChangeAccumulator.d.ts +22 -0
- package/dist/src/core/view/CompleteChildSource.d.ts +55 -0
- package/dist/src/core/view/Event.d.ts +64 -0
- package/dist/src/core/view/EventGenerator.d.ts +42 -0
- package/dist/src/core/view/EventQueue.d.ts +67 -0
- package/dist/src/core/view/EventRegistration.d.ts +87 -0
- package/dist/src/core/view/QueryParams.d.ts +95 -0
- package/dist/src/core/view/View.d.ts +59 -0
- package/dist/src/core/view/ViewCache.d.ts +32 -0
- package/dist/src/core/view/ViewProcessor.d.ts +32 -0
- package/dist/src/core/view/filter/IndexedFilter.d.ts +35 -0
- package/dist/src/core/view/filter/LimitedFilter.d.ts +47 -0
- package/dist/src/core/view/filter/NodeFilter.d.ts +54 -0
- package/dist/src/core/view/filter/RangedFilter.d.ts +47 -0
- package/dist/src/index.d.ts +28 -0
- package/dist/src/index.node.d.ts +17 -0
- package/dist/src/index.standalone.d.ts +17 -0
- package/dist/src/internal/index.d.ts +38 -0
- package/dist/src/realtime/BrowserPollConnection.d.ts +198 -0
- package/dist/src/realtime/Connection.d.ts +102 -0
- package/dist/src/realtime/Constants.d.ts +27 -0
- package/dist/src/realtime/Transport.d.ts +58 -0
- package/dist/src/realtime/TransportManager.d.ts +50 -0
- package/dist/src/realtime/WebSocketConnection.d.ts +127 -0
- package/dist/src/realtime/polling/PacketReceiver.d.ts +38 -0
- package/dist/src/register.d.ts +1 -0
- package/dist/src/tsdoc-metadata.json +11 -0
- package/dist/test/helpers/EventAccumulator.d.ts +35 -0
- package/dist/test/helpers/syncpoint-util.d.ts +29 -0
- package/dist/test/helpers/util.d.ts +36 -0
- package/package.json +104 -0
|
@@ -0,0 +1,117 @@
|
|
|
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 './Path';
|
|
18
|
+
import { SortedMap } from './SortedMap';
|
|
19
|
+
/**
|
|
20
|
+
* A tree with immutable elements.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ImmutableTree<T> {
|
|
23
|
+
readonly value: T | null;
|
|
24
|
+
readonly children: SortedMap<string, ImmutableTree<T>>;
|
|
25
|
+
static fromObject<T>(obj: {
|
|
26
|
+
[k: string]: T;
|
|
27
|
+
}): ImmutableTree<T>;
|
|
28
|
+
constructor(value: T | null, children?: SortedMap<string, ImmutableTree<T>>);
|
|
29
|
+
/**
|
|
30
|
+
* True if the value is empty and there are no children
|
|
31
|
+
*/
|
|
32
|
+
isEmpty(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Given a path and predicate, return the first node and the path to that node
|
|
35
|
+
* where the predicate returns true.
|
|
36
|
+
*
|
|
37
|
+
* TODO Do a perf test -- If we're creating a bunch of `{path: value:}`
|
|
38
|
+
* objects on the way back out, it may be better to pass down a pathSoFar obj.
|
|
39
|
+
*
|
|
40
|
+
* @param relativePath - The remainder of the path
|
|
41
|
+
* @param predicate - The predicate to satisfy to return a node
|
|
42
|
+
*/
|
|
43
|
+
findRootMostMatchingPathAndValue(relativePath: Path, predicate: (a: T) => boolean): {
|
|
44
|
+
path: Path;
|
|
45
|
+
value: T;
|
|
46
|
+
} | null;
|
|
47
|
+
/**
|
|
48
|
+
* Find, if it exists, the shortest subpath of the given path that points a defined
|
|
49
|
+
* value in the tree
|
|
50
|
+
*/
|
|
51
|
+
findRootMostValueAndPath(relativePath: Path): {
|
|
52
|
+
path: Path;
|
|
53
|
+
value: T;
|
|
54
|
+
} | null;
|
|
55
|
+
/**
|
|
56
|
+
* @returns The subtree at the given path
|
|
57
|
+
*/
|
|
58
|
+
subtree(relativePath: Path): ImmutableTree<T>;
|
|
59
|
+
/**
|
|
60
|
+
* Sets a value at the specified path.
|
|
61
|
+
*
|
|
62
|
+
* @param relativePath - Path to set value at.
|
|
63
|
+
* @param toSet - Value to set.
|
|
64
|
+
* @returns Resulting tree.
|
|
65
|
+
*/
|
|
66
|
+
set(relativePath: Path, toSet: T | null): ImmutableTree<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Removes the value at the specified path.
|
|
69
|
+
*
|
|
70
|
+
* @param relativePath - Path to value to remove.
|
|
71
|
+
* @returns Resulting tree.
|
|
72
|
+
*/
|
|
73
|
+
remove(relativePath: Path): ImmutableTree<T>;
|
|
74
|
+
/**
|
|
75
|
+
* Gets a value from the tree.
|
|
76
|
+
*
|
|
77
|
+
* @param relativePath - Path to get value for.
|
|
78
|
+
* @returns Value at path, or null.
|
|
79
|
+
*/
|
|
80
|
+
get(relativePath: Path): T | null;
|
|
81
|
+
/**
|
|
82
|
+
* Replace the subtree at the specified path with the given new tree.
|
|
83
|
+
*
|
|
84
|
+
* @param relativePath - Path to replace subtree for.
|
|
85
|
+
* @param newTree - New tree.
|
|
86
|
+
* @returns Resulting tree.
|
|
87
|
+
*/
|
|
88
|
+
setTree(relativePath: Path, newTree: ImmutableTree<T>): ImmutableTree<T>;
|
|
89
|
+
/**
|
|
90
|
+
* Performs a depth first fold on this tree. Transforms a tree into a single
|
|
91
|
+
* value, given a function that operates on the path to a node, an optional
|
|
92
|
+
* current value, and a map of child names to folded subtrees
|
|
93
|
+
*/
|
|
94
|
+
fold<V>(fn: (path: Path, value: T, children: {
|
|
95
|
+
[k: string]: V;
|
|
96
|
+
}) => V): V;
|
|
97
|
+
/**
|
|
98
|
+
* Recursive helper for public-facing fold() method
|
|
99
|
+
*/
|
|
100
|
+
private fold_;
|
|
101
|
+
/**
|
|
102
|
+
* Find the first matching value on the given path. Return the result of applying f to it.
|
|
103
|
+
*/
|
|
104
|
+
findOnPath<V>(path: Path, f: (path: Path, value: T) => V | null): V | null;
|
|
105
|
+
private findOnPath_;
|
|
106
|
+
foreachOnPath(path: Path, f: (path: Path, value: T) => void): ImmutableTree<T>;
|
|
107
|
+
private foreachOnPath_;
|
|
108
|
+
/**
|
|
109
|
+
* Calls the given function for each node in the tree that has a value.
|
|
110
|
+
*
|
|
111
|
+
* @param f - A function to be called with the path from the root of the tree to
|
|
112
|
+
* a node, and the value at that node. Called in depth-first order.
|
|
113
|
+
*/
|
|
114
|
+
foreach(f: (path: Path, value: T) => void): void;
|
|
115
|
+
private foreach_;
|
|
116
|
+
foreachChild(f: (name: string, value: T) => void): void;
|
|
117
|
+
}
|
|
@@ -0,0 +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
|
+
/**
|
|
18
|
+
* Fancy ID generator that creates 20-character string identifiers with the
|
|
19
|
+
* following properties:
|
|
20
|
+
*
|
|
21
|
+
* 1. They're based on timestamp so that they sort *after* any existing ids.
|
|
22
|
+
* 2. They contain 72-bits of random data after the timestamp so that IDs won't
|
|
23
|
+
* collide with other clients' IDs.
|
|
24
|
+
* 3. They sort *lexicographically* (so the timestamp is converted to characters
|
|
25
|
+
* that will sort properly).
|
|
26
|
+
* 4. They're monotonically increasing. Even if you generate more than one in
|
|
27
|
+
* the same timestamp, the latter ones will sort after the former ones. We do
|
|
28
|
+
* this by using the previous random bits but "incrementing" them by 1 (only
|
|
29
|
+
* in the case of a timestamp collision).
|
|
30
|
+
*/
|
|
31
|
+
export declare const nextPushId: (now: number) => string;
|
|
32
|
+
export declare const successor: (key: string) => string;
|
|
33
|
+
export declare const predecessor: (key: string) => string;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 { EventEmitter } from './EventEmitter';
|
|
18
|
+
/**
|
|
19
|
+
* Monitors online state (as reported by window.online/offline events).
|
|
20
|
+
*
|
|
21
|
+
* The expectation is that this could have many false positives (thinks we are online
|
|
22
|
+
* when we're not), but no false negatives. So we can safely use it to determine when
|
|
23
|
+
* we definitely cannot reach the internet.
|
|
24
|
+
*/
|
|
25
|
+
export declare class OnlineMonitor extends EventEmitter {
|
|
26
|
+
private online_;
|
|
27
|
+
static getInstance(): OnlineMonitor;
|
|
28
|
+
constructor();
|
|
29
|
+
getInitialEvent(eventType: string): boolean[];
|
|
30
|
+
currentlyOnline(): boolean;
|
|
31
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* An immutable object representing a parsed path. It's immutable so that you
|
|
19
|
+
* can pass them around to other functions without worrying about them changing
|
|
20
|
+
* it.
|
|
21
|
+
*/
|
|
22
|
+
export declare class Path {
|
|
23
|
+
pieces_: string[];
|
|
24
|
+
pieceNum_: number;
|
|
25
|
+
/**
|
|
26
|
+
* @param pathOrString - Path string to parse, or another path, or the raw
|
|
27
|
+
* tokens array
|
|
28
|
+
*/
|
|
29
|
+
constructor(pathOrString: string | string[], pieceNum?: number);
|
|
30
|
+
toString(): string;
|
|
31
|
+
}
|
|
32
|
+
export declare function newEmptyPath(): Path;
|
|
33
|
+
export declare function pathGetFront(path: Path): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* @returns The number of segments in this path
|
|
36
|
+
*/
|
|
37
|
+
export declare function pathGetLength(path: Path): number;
|
|
38
|
+
export declare function pathPopFront(path: Path): Path;
|
|
39
|
+
export declare function pathGetBack(path: Path): string | null;
|
|
40
|
+
export declare function pathToUrlEncodedString(path: Path): string;
|
|
41
|
+
/**
|
|
42
|
+
* Shallow copy of the parts of the path.
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
export declare function pathSlice(path: Path, begin?: number): string[];
|
|
46
|
+
export declare function pathParent(path: Path): Path | null;
|
|
47
|
+
export declare function pathChild(path: Path, childPathObj: string | Path): Path;
|
|
48
|
+
/**
|
|
49
|
+
* @returns True if there are no segments in this path
|
|
50
|
+
*/
|
|
51
|
+
export declare function pathIsEmpty(path: Path): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @returns The path from outerPath to innerPath
|
|
54
|
+
*/
|
|
55
|
+
export declare function newRelativePath(outerPath: Path, innerPath: Path): Path;
|
|
56
|
+
/**
|
|
57
|
+
* @returns -1, 0, 1 if left is less, equal, or greater than the right.
|
|
58
|
+
*/
|
|
59
|
+
export declare function pathCompare(left: Path, right: Path): number;
|
|
60
|
+
/**
|
|
61
|
+
* @returns true if paths are the same.
|
|
62
|
+
*/
|
|
63
|
+
export declare function pathEquals(path: Path, other: Path): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* @returns True if this path is a parent of (or the same as) other
|
|
66
|
+
*/
|
|
67
|
+
export declare function pathContains(path: Path, other: Path): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Dynamic (mutable) path used to count path lengths.
|
|
70
|
+
*
|
|
71
|
+
* This class is used to efficiently check paths for valid
|
|
72
|
+
* length (in UTF8 bytes) and depth (used in path validation).
|
|
73
|
+
*
|
|
74
|
+
* Throws Error exception if path is ever invalid.
|
|
75
|
+
*
|
|
76
|
+
* The definition of a path always begins with '/'.
|
|
77
|
+
*/
|
|
78
|
+
export declare class ValidationPath {
|
|
79
|
+
errorPrefix_: string;
|
|
80
|
+
parts_: string[];
|
|
81
|
+
/** Initialize to number of '/' chars needed in path. */
|
|
82
|
+
byteLength_: number;
|
|
83
|
+
/**
|
|
84
|
+
* @param path - Initial Path.
|
|
85
|
+
* @param errorPrefix_ - Prefix for any error messages.
|
|
86
|
+
*/
|
|
87
|
+
constructor(path: Path, errorPrefix_: string);
|
|
88
|
+
}
|
|
89
|
+
export declare function validationPathPush(validationPath: ValidationPath, child: string): void;
|
|
90
|
+
export declare function validationPathPop(validationPath: ValidationPath): void;
|
|
91
|
+
/**
|
|
92
|
+
* String for use in error messages - uses '.' notation for path.
|
|
93
|
+
*/
|
|
94
|
+
export declare function validationPathToErrorString(validationPath: ValidationPath): string;
|
|
@@ -0,0 +1,56 @@
|
|
|
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 { SyncTree } from '../SyncTree';
|
|
19
|
+
import { Indexable } from './misc';
|
|
20
|
+
import { Path } from './Path';
|
|
21
|
+
interface ValueProvider {
|
|
22
|
+
getImmediateChild(childName: string): ValueProvider;
|
|
23
|
+
node(): Node;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Generate placeholders for deferred values.
|
|
27
|
+
*/
|
|
28
|
+
export declare const generateWithValues: (values: {
|
|
29
|
+
[k: string]: unknown;
|
|
30
|
+
} | null) => {
|
|
31
|
+
[k: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Value to use when firing local events. When writing server values, fire
|
|
35
|
+
* local events with an approximate value, otherwise return value as-is.
|
|
36
|
+
*/
|
|
37
|
+
export declare const resolveDeferredLeafValue: (value: {
|
|
38
|
+
[k: string]: unknown;
|
|
39
|
+
} | string | number | boolean, existingVal: ValueProvider, serverValues: {
|
|
40
|
+
[k: string]: unknown;
|
|
41
|
+
}) => string | number | boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Recursively replace all deferred values and priorities in the tree with the
|
|
44
|
+
* specified generated replacement values.
|
|
45
|
+
* @param path - path to which write is relative
|
|
46
|
+
* @param node - new data written at path
|
|
47
|
+
* @param syncTree - current data
|
|
48
|
+
*/
|
|
49
|
+
export declare const resolveDeferredValueTree: (path: Path, node: Node, syncTree: SyncTree, serverValues: Indexable) => Node;
|
|
50
|
+
/**
|
|
51
|
+
* Recursively replace all deferred values and priorities in the node with the
|
|
52
|
+
* specified generated replacement values. If there are no server values in the node,
|
|
53
|
+
* it'll be returned as-is.
|
|
54
|
+
*/
|
|
55
|
+
export declare const resolveDeferredValueSnapshot: (node: Node, existing: Node, serverValues: Indexable) => Node;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,324 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* @fileoverview Implementation of an immutable SortedMap using a Left-leaning
|
|
19
|
+
* Red-Black Tree, adapted from the implementation in Mugs
|
|
20
|
+
* (http://mads379.github.com/mugs/) by Mads Hartmann Jensen
|
|
21
|
+
* (mads379\@gmail.com).
|
|
22
|
+
*
|
|
23
|
+
* Original paper on Left-leaning Red-Black Trees:
|
|
24
|
+
* http://www.cs.princeton.edu/~rs/talks/LLRB/LLRB.pdf
|
|
25
|
+
*
|
|
26
|
+
* Invariant 1: No red node has a red child
|
|
27
|
+
* Invariant 2: Every leaf path has the same number of black nodes
|
|
28
|
+
* Invariant 3: Only the left child can be red (left leaning)
|
|
29
|
+
*/
|
|
30
|
+
export type Comparator<K> = (key1: K, key2: K) => number;
|
|
31
|
+
/**
|
|
32
|
+
* An iterator over an LLRBNode.
|
|
33
|
+
*/
|
|
34
|
+
export declare class SortedMapIterator<K, V, T> {
|
|
35
|
+
private isReverse_;
|
|
36
|
+
private resultGenerator_;
|
|
37
|
+
private nodeStack_;
|
|
38
|
+
/**
|
|
39
|
+
* @param node - Node to iterate.
|
|
40
|
+
* @param isReverse_ - Whether or not to iterate in reverse
|
|
41
|
+
*/
|
|
42
|
+
constructor(node: LLRBNode<K, V> | LLRBEmptyNode<K, V>, startKey: K | null, comparator: Comparator<K>, isReverse_: boolean, resultGenerator_?: ((k: K, v: V) => T) | null);
|
|
43
|
+
getNext(): T;
|
|
44
|
+
hasNext(): boolean;
|
|
45
|
+
peek(): T;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Represents a node in a Left-leaning Red-Black tree.
|
|
49
|
+
*/
|
|
50
|
+
export declare class LLRBNode<K, V> {
|
|
51
|
+
key: K;
|
|
52
|
+
value: V;
|
|
53
|
+
color: boolean;
|
|
54
|
+
left: LLRBNode<K, V> | LLRBEmptyNode<K, V>;
|
|
55
|
+
right: LLRBNode<K, V> | LLRBEmptyNode<K, V>;
|
|
56
|
+
/**
|
|
57
|
+
* @param key - Key associated with this node.
|
|
58
|
+
* @param value - Value associated with this node.
|
|
59
|
+
* @param color - Whether this node is red.
|
|
60
|
+
* @param left - Left child.
|
|
61
|
+
* @param right - Right child.
|
|
62
|
+
*/
|
|
63
|
+
constructor(key: K, value: V, color: boolean | null, left?: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null, right?: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null);
|
|
64
|
+
static RED: boolean;
|
|
65
|
+
static BLACK: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Returns a copy of the current node, optionally replacing pieces of it.
|
|
68
|
+
*
|
|
69
|
+
* @param key - New key for the node, or null.
|
|
70
|
+
* @param value - New value for the node, or null.
|
|
71
|
+
* @param color - New color for the node, or null.
|
|
72
|
+
* @param left - New left child for the node, or null.
|
|
73
|
+
* @param right - New right child for the node, or null.
|
|
74
|
+
* @returns The node copy.
|
|
75
|
+
*/
|
|
76
|
+
copy(key: K | null, value: V | null, color: boolean | null, left: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null, right: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null): LLRBNode<K, V>;
|
|
77
|
+
/**
|
|
78
|
+
* @returns The total number of nodes in the tree.
|
|
79
|
+
*/
|
|
80
|
+
count(): number;
|
|
81
|
+
/**
|
|
82
|
+
* @returns True if the tree is empty.
|
|
83
|
+
*/
|
|
84
|
+
isEmpty(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Traverses the tree in key order and calls the specified action function
|
|
87
|
+
* for each node.
|
|
88
|
+
*
|
|
89
|
+
* @param action - Callback function to be called for each
|
|
90
|
+
* node. If it returns true, traversal is aborted.
|
|
91
|
+
* @returns The first truthy value returned by action, or the last falsey
|
|
92
|
+
* value returned by action
|
|
93
|
+
*/
|
|
94
|
+
inorderTraversal(action: (k: K, v: V) => unknown): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Traverses the tree in reverse key order and calls the specified action function
|
|
97
|
+
* for each node.
|
|
98
|
+
*
|
|
99
|
+
* @param action - Callback function to be called for each
|
|
100
|
+
* node. If it returns true, traversal is aborted.
|
|
101
|
+
* @returns True if traversal was aborted.
|
|
102
|
+
*/
|
|
103
|
+
reverseTraversal(action: (k: K, v: V) => void): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* @returns The minimum node in the tree.
|
|
106
|
+
*/
|
|
107
|
+
private min_;
|
|
108
|
+
/**
|
|
109
|
+
* @returns The maximum key in the tree.
|
|
110
|
+
*/
|
|
111
|
+
minKey(): K;
|
|
112
|
+
/**
|
|
113
|
+
* @returns The maximum key in the tree.
|
|
114
|
+
*/
|
|
115
|
+
maxKey(): K;
|
|
116
|
+
/**
|
|
117
|
+
* @param key - Key to insert.
|
|
118
|
+
* @param value - Value to insert.
|
|
119
|
+
* @param comparator - Comparator.
|
|
120
|
+
* @returns New tree, with the key/value added.
|
|
121
|
+
*/
|
|
122
|
+
insert(key: K, value: V, comparator: Comparator<K>): LLRBNode<K, V>;
|
|
123
|
+
/**
|
|
124
|
+
* @returns New tree, with the minimum key removed.
|
|
125
|
+
*/
|
|
126
|
+
private removeMin_;
|
|
127
|
+
/**
|
|
128
|
+
* @param key - The key of the item to remove.
|
|
129
|
+
* @param comparator - Comparator.
|
|
130
|
+
* @returns New tree, with the specified item removed.
|
|
131
|
+
*/
|
|
132
|
+
remove(key: K, comparator: Comparator<K>): LLRBNode<K, V> | LLRBEmptyNode<K, V>;
|
|
133
|
+
/**
|
|
134
|
+
* @returns Whether this is a RED node.
|
|
135
|
+
*/
|
|
136
|
+
isRed_(): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* @returns New tree after performing any needed rotations.
|
|
139
|
+
*/
|
|
140
|
+
private fixUp_;
|
|
141
|
+
/**
|
|
142
|
+
* @returns New tree, after moveRedLeft.
|
|
143
|
+
*/
|
|
144
|
+
private moveRedLeft_;
|
|
145
|
+
/**
|
|
146
|
+
* @returns New tree, after moveRedRight.
|
|
147
|
+
*/
|
|
148
|
+
private moveRedRight_;
|
|
149
|
+
/**
|
|
150
|
+
* @returns New tree, after rotateLeft.
|
|
151
|
+
*/
|
|
152
|
+
private rotateLeft_;
|
|
153
|
+
/**
|
|
154
|
+
* @returns New tree, after rotateRight.
|
|
155
|
+
*/
|
|
156
|
+
private rotateRight_;
|
|
157
|
+
/**
|
|
158
|
+
* @returns Newt ree, after colorFlip.
|
|
159
|
+
*/
|
|
160
|
+
private colorFlip_;
|
|
161
|
+
/**
|
|
162
|
+
* For testing.
|
|
163
|
+
*
|
|
164
|
+
* @returns True if all is well.
|
|
165
|
+
*/
|
|
166
|
+
private checkMaxDepth_;
|
|
167
|
+
check_(): number;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Represents an empty node (a leaf node in the Red-Black Tree).
|
|
171
|
+
*/
|
|
172
|
+
export declare class LLRBEmptyNode<K, V> {
|
|
173
|
+
key: K;
|
|
174
|
+
value: V;
|
|
175
|
+
left: LLRBNode<K, V> | LLRBEmptyNode<K, V>;
|
|
176
|
+
right: LLRBNode<K, V> | LLRBEmptyNode<K, V>;
|
|
177
|
+
color: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Returns a copy of the current node.
|
|
180
|
+
*
|
|
181
|
+
* @returns The node copy.
|
|
182
|
+
*/
|
|
183
|
+
copy(key: K | null, value: V | null, color: boolean | null, left: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null, right: LLRBNode<K, V> | LLRBEmptyNode<K, V> | null): LLRBEmptyNode<K, V>;
|
|
184
|
+
/**
|
|
185
|
+
* Returns a copy of the tree, with the specified key/value added.
|
|
186
|
+
*
|
|
187
|
+
* @param key - Key to be added.
|
|
188
|
+
* @param value - Value to be added.
|
|
189
|
+
* @param comparator - Comparator.
|
|
190
|
+
* @returns New tree, with item added.
|
|
191
|
+
*/
|
|
192
|
+
insert(key: K, value: V, comparator: Comparator<K>): LLRBNode<K, V>;
|
|
193
|
+
/**
|
|
194
|
+
* Returns a copy of the tree, with the specified key removed.
|
|
195
|
+
*
|
|
196
|
+
* @param key - The key to remove.
|
|
197
|
+
* @param comparator - Comparator.
|
|
198
|
+
* @returns New tree, with item removed.
|
|
199
|
+
*/
|
|
200
|
+
remove(key: K, comparator: Comparator<K>): LLRBEmptyNode<K, V>;
|
|
201
|
+
/**
|
|
202
|
+
* @returns The total number of nodes in the tree.
|
|
203
|
+
*/
|
|
204
|
+
count(): number;
|
|
205
|
+
/**
|
|
206
|
+
* @returns True if the tree is empty.
|
|
207
|
+
*/
|
|
208
|
+
isEmpty(): boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Traverses the tree in key order and calls the specified action function
|
|
211
|
+
* for each node.
|
|
212
|
+
*
|
|
213
|
+
* @param action - Callback function to be called for each
|
|
214
|
+
* node. If it returns true, traversal is aborted.
|
|
215
|
+
* @returns True if traversal was aborted.
|
|
216
|
+
*/
|
|
217
|
+
inorderTraversal(action: (k: K, v: V) => unknown): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Traverses the tree in reverse key order and calls the specified action function
|
|
220
|
+
* for each node.
|
|
221
|
+
*
|
|
222
|
+
* @param action - Callback function to be called for each
|
|
223
|
+
* node. If it returns true, traversal is aborted.
|
|
224
|
+
* @returns True if traversal was aborted.
|
|
225
|
+
*/
|
|
226
|
+
reverseTraversal(action: (k: K, v: V) => void): boolean;
|
|
227
|
+
minKey(): null;
|
|
228
|
+
maxKey(): null;
|
|
229
|
+
check_(): number;
|
|
230
|
+
/**
|
|
231
|
+
* @returns Whether this node is red.
|
|
232
|
+
*/
|
|
233
|
+
isRed_(): boolean;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* An immutable sorted map implementation, based on a Left-leaning Red-Black
|
|
237
|
+
* tree.
|
|
238
|
+
*/
|
|
239
|
+
export declare class SortedMap<K, V> {
|
|
240
|
+
private comparator_;
|
|
241
|
+
private root_;
|
|
242
|
+
/**
|
|
243
|
+
* Always use the same empty node, to reduce memory.
|
|
244
|
+
*/
|
|
245
|
+
static EMPTY_NODE: LLRBEmptyNode<unknown, unknown>;
|
|
246
|
+
/**
|
|
247
|
+
* @param comparator_ - Key comparator.
|
|
248
|
+
* @param root_ - Optional root node for the map.
|
|
249
|
+
*/
|
|
250
|
+
constructor(comparator_: Comparator<K>, root_?: LLRBNode<K, V> | LLRBEmptyNode<K, V>);
|
|
251
|
+
/**
|
|
252
|
+
* Returns a copy of the map, with the specified key/value added or replaced.
|
|
253
|
+
* (TODO: We should perhaps rename this method to 'put')
|
|
254
|
+
*
|
|
255
|
+
* @param key - Key to be added.
|
|
256
|
+
* @param value - Value to be added.
|
|
257
|
+
* @returns New map, with item added.
|
|
258
|
+
*/
|
|
259
|
+
insert(key: K, value: V): SortedMap<K, V>;
|
|
260
|
+
/**
|
|
261
|
+
* Returns a copy of the map, with the specified key removed.
|
|
262
|
+
*
|
|
263
|
+
* @param key - The key to remove.
|
|
264
|
+
* @returns New map, with item removed.
|
|
265
|
+
*/
|
|
266
|
+
remove(key: K): SortedMap<K, V>;
|
|
267
|
+
/**
|
|
268
|
+
* Returns the value of the node with the given key, or null.
|
|
269
|
+
*
|
|
270
|
+
* @param key - The key to look up.
|
|
271
|
+
* @returns The value of the node with the given key, or null if the
|
|
272
|
+
* key doesn't exist.
|
|
273
|
+
*/
|
|
274
|
+
get(key: K): V | null;
|
|
275
|
+
/**
|
|
276
|
+
* Returns the key of the item *before* the specified key, or null if key is the first item.
|
|
277
|
+
* @param key - The key to find the predecessor of
|
|
278
|
+
* @returns The predecessor key.
|
|
279
|
+
*/
|
|
280
|
+
getPredecessorKey(key: K): K | null;
|
|
281
|
+
/**
|
|
282
|
+
* @returns True if the map is empty.
|
|
283
|
+
*/
|
|
284
|
+
isEmpty(): boolean;
|
|
285
|
+
/**
|
|
286
|
+
* @returns The total number of nodes in the map.
|
|
287
|
+
*/
|
|
288
|
+
count(): number;
|
|
289
|
+
/**
|
|
290
|
+
* @returns The minimum key in the map.
|
|
291
|
+
*/
|
|
292
|
+
minKey(): K | null;
|
|
293
|
+
/**
|
|
294
|
+
* @returns The maximum key in the map.
|
|
295
|
+
*/
|
|
296
|
+
maxKey(): K | null;
|
|
297
|
+
/**
|
|
298
|
+
* Traverses the map in key order and calls the specified action function
|
|
299
|
+
* for each key/value pair.
|
|
300
|
+
*
|
|
301
|
+
* @param action - Callback function to be called
|
|
302
|
+
* for each key/value pair. If action returns true, traversal is aborted.
|
|
303
|
+
* @returns The first truthy value returned by action, or the last falsey
|
|
304
|
+
* value returned by action
|
|
305
|
+
*/
|
|
306
|
+
inorderTraversal(action: (k: K, v: V) => unknown): boolean;
|
|
307
|
+
/**
|
|
308
|
+
* Traverses the map in reverse key order and calls the specified action function
|
|
309
|
+
* for each key/value pair.
|
|
310
|
+
*
|
|
311
|
+
* @param action - Callback function to be called
|
|
312
|
+
* for each key/value pair. If action returns true, traversal is aborted.
|
|
313
|
+
* @returns True if the traversal was aborted.
|
|
314
|
+
*/
|
|
315
|
+
reverseTraversal(action: (k: K, v: V) => void): boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Returns an iterator over the SortedMap.
|
|
318
|
+
* @returns The iterator.
|
|
319
|
+
*/
|
|
320
|
+
getIterator<T>(resultGenerator?: (k: K, v: V) => T): SortedMapIterator<K, V, T>;
|
|
321
|
+
getIteratorFrom<T>(key: K, resultGenerator?: (k: K, v: V) => T): SortedMapIterator<K, V, T>;
|
|
322
|
+
getReverseIteratorFrom<T>(key: K, resultGenerator?: (k: K, v: V) => T): SortedMapIterator<K, V, T>;
|
|
323
|
+
getReverseIterator<T>(resultGenerator?: (k: K, v: V) => T): SortedMapIterator<K, V, T>;
|
|
324
|
+
}
|