@react-native-firebase/database 24.1.1 → 25.0.1
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/CHANGELOG.md +36 -0
- package/dist/module/DatabaseDataSnapshot.js +144 -0
- package/dist/module/DatabaseDataSnapshot.js.map +1 -0
- package/dist/module/DatabaseOnDisconnect.js +84 -0
- package/dist/module/DatabaseOnDisconnect.js.map +1 -0
- package/dist/module/DatabaseQuery.js +298 -0
- package/dist/module/DatabaseQuery.js.map +1 -0
- package/{lib → dist/module}/DatabaseQueryModifiers.js +49 -98
- package/dist/module/DatabaseQueryModifiers.js.map +1 -0
- package/dist/module/DatabaseReference.js +169 -0
- package/dist/module/DatabaseReference.js.map +1 -0
- package/dist/module/DatabaseStatics.js +35 -0
- package/dist/module/DatabaseStatics.js.map +1 -0
- package/{lib → dist/module}/DatabaseSyncTree.js +74 -156
- package/dist/module/DatabaseSyncTree.js.map +1 -0
- package/{lib → dist/module}/DatabaseThenableReference.js +12 -12
- package/dist/module/DatabaseThenableReference.js.map +1 -0
- package/{lib → dist/module}/DatabaseTransaction.js +26 -89
- package/dist/module/DatabaseTransaction.js.map +1 -0
- package/dist/module/index.js +27 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/modular/query.js +138 -0
- package/dist/module/modular/query.js.map +1 -0
- package/dist/module/modular/transaction.js +24 -0
- package/dist/module/modular/transaction.js.map +1 -0
- package/dist/module/modular.js +76 -0
- package/dist/module/modular.js.map +1 -0
- package/dist/module/namespaced.js +147 -0
- package/dist/module/namespaced.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/types/database.js +21 -0
- package/dist/module/types/database.js.map +1 -0
- package/dist/module/types/internal.js +4 -0
- package/dist/module/types/internal.js.map +1 -0
- package/dist/module/types/namespaced.js +67 -0
- package/dist/module/types/namespaced.js.map +1 -0
- package/dist/module/version.js +5 -0
- package/dist/module/version.js.map +1 -0
- package/dist/module/web/RNFBDatabaseModule.android.js +6 -0
- package/dist/module/web/RNFBDatabaseModule.android.js.map +1 -0
- package/dist/module/web/RNFBDatabaseModule.ios.js +6 -0
- package/dist/module/web/RNFBDatabaseModule.ios.js.map +1 -0
- package/dist/module/web/RNFBDatabaseModule.js +375 -0
- package/dist/module/web/RNFBDatabaseModule.js.map +1 -0
- package/{lib → dist/module}/web/query.js +19 -24
- package/dist/module/web/query.js.map +1 -0
- package/dist/typescript/lib/DatabaseDataSnapshot.d.ts +20 -0
- package/dist/typescript/lib/DatabaseDataSnapshot.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseOnDisconnect.d.ts +19 -0
- package/dist/typescript/lib/DatabaseOnDisconnect.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseQuery.d.ts +32 -0
- package/dist/typescript/lib/DatabaseQuery.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseQueryModifiers.d.ts +55 -0
- package/dist/typescript/lib/DatabaseQueryModifiers.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseReference.d.ts +21 -0
- package/dist/typescript/lib/DatabaseReference.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseStatics.d.ts +10 -0
- package/dist/typescript/lib/DatabaseStatics.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseSyncTree.d.ts +72 -0
- package/dist/typescript/lib/DatabaseSyncTree.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseThenableReference.d.ts +13 -0
- package/dist/typescript/lib/DatabaseThenableReference.d.ts.map +1 -0
- package/dist/typescript/lib/DatabaseTransaction.d.ts +15 -0
- package/dist/typescript/lib/DatabaseTransaction.d.ts.map +1 -0
- package/dist/typescript/lib/index.d.ts +6 -0
- package/dist/typescript/lib/index.d.ts.map +1 -0
- package/dist/typescript/lib/modular/query.d.ts +41 -0
- package/dist/typescript/lib/modular/query.d.ts.map +1 -0
- package/dist/typescript/lib/modular/transaction.d.ts +3 -0
- package/dist/typescript/lib/modular/transaction.d.ts.map +1 -0
- package/dist/typescript/lib/modular.d.ts +24 -0
- package/dist/typescript/lib/modular.d.ts.map +1 -0
- package/dist/typescript/lib/namespaced.d.ts +13 -0
- package/dist/typescript/lib/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/types/database.d.ts +93 -0
- package/dist/typescript/lib/types/database.d.ts.map +1 -0
- package/dist/typescript/lib/types/internal.d.ts +189 -0
- package/dist/typescript/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/lib/types/namespaced.d.ts +1230 -0
- package/dist/typescript/lib/types/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/version.d.ts +2 -0
- package/dist/typescript/lib/version.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.android.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.android.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.ios.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBDatabaseModule.ios.d.ts.map +1 -0
- package/dist/typescript/lib/web/query.d.ts +13 -0
- package/dist/typescript/lib/web/query.d.ts.map +1 -0
- package/dist/typescript/package.json +1 -0
- package/lib/{DatabaseDataSnapshot.js → DatabaseDataSnapshot.ts} +62 -88
- package/lib/{DatabaseOnDisconnect.js → DatabaseOnDisconnect.ts} +25 -23
- package/lib/{DatabaseQuery.js → DatabaseQuery.ts} +130 -144
- package/lib/DatabaseQueryModifiers.ts +283 -0
- package/lib/{DatabaseReference.js → DatabaseReference.ts} +103 -85
- package/lib/{DatabaseStatics.js → DatabaseStatics.ts} +4 -2
- package/lib/DatabaseSyncTree.ts +390 -0
- package/lib/DatabaseThenableReference.ts +73 -0
- package/lib/DatabaseTransaction.ts +172 -0
- package/lib/index.ts +25 -0
- package/lib/modular/query.ts +410 -0
- package/lib/modular/transaction.ts +34 -0
- package/lib/modular.ts +134 -0
- package/lib/{index.js → namespaced.ts} +91 -90
- package/lib/types/database.ts +144 -0
- package/lib/types/internal.ts +317 -0
- package/lib/{index.d.ts → types/namespaced.ts} +48 -9
- package/lib/version.ts +2 -0
- package/lib/web/RNFBDatabaseModule.android.ts +4 -0
- package/lib/web/RNFBDatabaseModule.ios.ts +4 -0
- package/lib/web/RNFBDatabaseModule.ts +534 -0
- package/lib/web/query.ts +97 -0
- package/package.json +42 -7
- package/tsconfig.json +21 -0
- package/typedoc.json +3 -3
- package/lib/modular/index.d.ts +0 -246
- package/lib/modular/index.js +0 -134
- package/lib/modular/query.d.ts +0 -972
- package/lib/modular/query.js +0 -305
- package/lib/modular/transaction.d.ts +0 -54
- package/lib/modular/transaction.js +0 -24
- package/lib/version.js +0 -2
- package/lib/web/RNFBDatabaseModule.android.js +0 -2
- package/lib/web/RNFBDatabaseModule.ios.js +0 -2
- package/lib/web/RNFBDatabaseModule.js +0 -558
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,42 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [25.0.1](https://github.com/invertase/react-native-firebase/compare/v25.0.0...v25.0.1) (2026-06-23)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @react-native-firebase/database
|
|
9
|
+
|
|
10
|
+
## [25.0.0](https://github.com/invertase/react-native-firebase/compare/v24.0.0...v25.0.0) (2026-06-23)
|
|
11
|
+
|
|
12
|
+
### ⚠ BREAKING CHANGES
|
|
13
|
+
|
|
14
|
+
- **auth:** migrate to TypeScript and bring auth closer in alignment with firebase-js-sdk API (#8991)
|
|
15
|
+
- **database:** database types now match firebase-js-sdk as closely as possible
|
|
16
|
+
|
|
17
|
+
Please see https://rnfirebase.io/migrating-to-v25 for help migrating if needed
|
|
18
|
+
|
|
19
|
+
react-native-firebase has a goal to be a drop-in replacement for firebase-js-sdk, with native extensions and performance. It has always worked that way at the javascript level but the typescript types have been divergent
|
|
20
|
+
|
|
21
|
+
We are fixing that as we refactor to typescript. Please bear with us as we get closer to our goal of react-native-firebase matching firebase-js-sdk both in functionality where possible, but also in exact typescript typing.
|
|
22
|
+
|
|
23
|
+
Specifics for Database:
|
|
24
|
+
|
|
25
|
+
- removed the modular ServerValue named export from @react-native-firebase/database; consumers must use serverTimestamp() / increment() instead.
|
|
26
|
+
- changed modular goOffline(db) and goOnline(db) so they no longer return a chainable value, which breaks consumer code that awaits them or calls .then(...) on them.
|
|
27
|
+
- aligned the modular TypeScript surface with the firebase-js-sdk, so modular types like DatabaseReference, Query, DataSnapshot, OnDisconnect, and QueryConstraint no longer expose the older namespaced instance-style API in their public typings; TypeScript consumers will need to switch to the function-based modular helpers.
|
|
28
|
+
- corrected getServerTime(db) to a synchronous Date return in the modular type surface, so TypeScript consumers that previously treated it as promise-like will need to update their code.
|
|
29
|
+
- **storage:** migrate to TypeScript and match firebase-js-sdk API (#8824)
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
- **android:** catch RejectedExecutionException on executor-backed Tasks ([d70520d](https://github.com/invertase/react-native-firebase/commit/d70520d39c16c6a414affe4585de6f65ec9ab345))
|
|
34
|
+
- **database, android:** remove RTDB listeners before shutting down executors ([f527153](https://github.com/invertase/react-native-firebase/commit/f527153548c8f6f97c553f7348f798bb1ce08b08))
|
|
35
|
+
|
|
36
|
+
### Code Refactoring
|
|
37
|
+
|
|
38
|
+
- **auth:** migrate to TypeScript and bring auth closer in alignment with firebase-js-sdk API ([#8991](https://github.com/invertase/react-native-firebase/issues/8991)) ([7cf7c1a](https://github.com/invertase/react-native-firebase/commit/7cf7c1ac0d31d09ade581deb027d4ed8126bb7cf))
|
|
39
|
+
- **database:** migrate to TypeScript ([#8977](https://github.com/invertase/react-native-firebase/issues/8977)) ([fc8b839](https://github.com/invertase/react-native-firebase/commit/fc8b839b8e315a0cb8f74bc9b13720109315dd11))
|
|
40
|
+
- **storage:** migrate to TypeScript and match firebase-js-sdk API ([#8824](https://github.com/invertase/react-native-firebase/issues/8824)) ([663b57c](https://github.com/invertase/react-native-firebase/commit/663b57c220ef733affc1055e674334f35c458861))
|
|
41
|
+
|
|
6
42
|
## [24.1.1](https://github.com/invertase/react-native-firebase/compare/v24.1.0...v24.1.1) (2026-06-10)
|
|
7
43
|
|
|
8
44
|
**Note:** Version bump only for package @react-native-firebase/database
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { createDeprecationProxy, isArray, isFunction, isNumber, isObject, isString, MODULAR_DEPRECATION_ARG } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
import { deepGet } from '@react-native-firebase/app/dist/module/common/deeps';
|
|
22
|
+
function ap(reference) {
|
|
23
|
+
return reference;
|
|
24
|
+
}
|
|
25
|
+
export default class DatabaseDataSnapshot {
|
|
26
|
+
constructor(reference, snapshot) {
|
|
27
|
+
this._snapshot = snapshot;
|
|
28
|
+
if (reference.key !== snapshot.key && isString(snapshot.key)) {
|
|
29
|
+
this._ref = ap(reference.ref).child.call(reference.ref, snapshot.key, MODULAR_DEPRECATION_ARG);
|
|
30
|
+
} else {
|
|
31
|
+
this._ref = reference;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
get key() {
|
|
35
|
+
return this._snapshot.key;
|
|
36
|
+
}
|
|
37
|
+
get ref() {
|
|
38
|
+
return this._ref;
|
|
39
|
+
}
|
|
40
|
+
child(path) {
|
|
41
|
+
if (!isString(path)) {
|
|
42
|
+
throw new Error("snapshot().child(*) 'path' must be a string value");
|
|
43
|
+
}
|
|
44
|
+
const rootValue = this._snapshot.value;
|
|
45
|
+
let value = deepGet(rootValue, path);
|
|
46
|
+
if (value === undefined) {
|
|
47
|
+
value = null;
|
|
48
|
+
}
|
|
49
|
+
const childRef = ap(this._ref).child.call(this._ref, path, MODULAR_DEPRECATION_ARG);
|
|
50
|
+
let childPriority = null;
|
|
51
|
+
if (this._snapshot.childPriorities) {
|
|
52
|
+
const childPriorityValue = this._snapshot.childPriorities[childRef.key];
|
|
53
|
+
if (isString(childPriorityValue) || isNumber(childPriorityValue)) {
|
|
54
|
+
childPriority = childPriorityValue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return createDeprecationProxy(new DatabaseDataSnapshot(childRef, {
|
|
58
|
+
value,
|
|
59
|
+
key: childRef.key,
|
|
60
|
+
exists: value !== null,
|
|
61
|
+
childKeys: isObject(value) ? Object.keys(value) : [],
|
|
62
|
+
priority: childPriority
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
exists() {
|
|
66
|
+
return this._snapshot.exists;
|
|
67
|
+
}
|
|
68
|
+
exportVal() {
|
|
69
|
+
let {
|
|
70
|
+
value
|
|
71
|
+
} = this._snapshot;
|
|
72
|
+
if (isObject(value) || isArray(value)) {
|
|
73
|
+
value = JSON.parse(JSON.stringify(value));
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
'.value': value,
|
|
77
|
+
'.priority': this._snapshot.priority
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
forEach(action) {
|
|
81
|
+
if (!isFunction(action)) {
|
|
82
|
+
throw new Error("snapshot.forEach(*) 'action' must be a function.");
|
|
83
|
+
}
|
|
84
|
+
const iterate = action;
|
|
85
|
+
if (isArray(this._snapshot.value)) {
|
|
86
|
+
return this._snapshot.value.some((_value, i) => iterate(this.child(i.toString()), i) === true);
|
|
87
|
+
}
|
|
88
|
+
if (!this._snapshot.childKeys.length) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
let cancelled = false;
|
|
92
|
+
for (let i = 0; i < this._snapshot.childKeys.length; i++) {
|
|
93
|
+
const key = this._snapshot.childKeys[i];
|
|
94
|
+
if (key === undefined) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const snapshot = this.child(key);
|
|
98
|
+
const actionReturn = iterate(snapshot, i);
|
|
99
|
+
if (actionReturn === true) {
|
|
100
|
+
cancelled = true;
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return cancelled;
|
|
105
|
+
}
|
|
106
|
+
getPriority() {
|
|
107
|
+
return this._snapshot.priority ?? null;
|
|
108
|
+
}
|
|
109
|
+
hasChild(path) {
|
|
110
|
+
if (!isString(path)) {
|
|
111
|
+
throw new Error("snapshot.hasChild(*) 'path' must be a string value.");
|
|
112
|
+
}
|
|
113
|
+
const rootValue = this._snapshot.value;
|
|
114
|
+
return deepGet(rootValue, path) !== undefined;
|
|
115
|
+
}
|
|
116
|
+
hasChildren() {
|
|
117
|
+
return this.numChildren() > 0;
|
|
118
|
+
}
|
|
119
|
+
numChildren() {
|
|
120
|
+
const {
|
|
121
|
+
value
|
|
122
|
+
} = this._snapshot;
|
|
123
|
+
if (isArray(value)) {
|
|
124
|
+
return value.length;
|
|
125
|
+
}
|
|
126
|
+
if (!isObject(value)) {
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
return Object.keys(value).length;
|
|
130
|
+
}
|
|
131
|
+
toJSON() {
|
|
132
|
+
return this.val();
|
|
133
|
+
}
|
|
134
|
+
val() {
|
|
135
|
+
const {
|
|
136
|
+
value
|
|
137
|
+
} = this._snapshot;
|
|
138
|
+
if (isObject(value) || isArray(value)) {
|
|
139
|
+
return JSON.parse(JSON.stringify(value));
|
|
140
|
+
}
|
|
141
|
+
return value;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=DatabaseDataSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDeprecationProxy","isArray","isFunction","isNumber","isObject","isString","MODULAR_DEPRECATION_ARG","deepGet","ap","reference","DatabaseDataSnapshot","constructor","snapshot","_snapshot","key","_ref","ref","child","call","path","Error","rootValue","value","undefined","childRef","childPriority","childPriorities","childPriorityValue","exists","childKeys","Object","keys","priority","exportVal","JSON","parse","stringify","forEach","action","iterate","some","_value","i","toString","length","cancelled","actionReturn","getPriority","hasChild","hasChildren","numChildren","toJSON","val"],"sourceRoot":"../../lib","sources":["DatabaseDataSnapshot.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { isFunction, isNull, isNumber, isObject, isString, isUndefined, isValidPath, promiseWithOptionalCallback } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
export default class DatabaseOnDisconnect {
|
|
22
|
+
constructor(reference) {
|
|
23
|
+
this._ref = reference;
|
|
24
|
+
}
|
|
25
|
+
cancel(onComplete) {
|
|
26
|
+
if (!isUndefined(onComplete) && !isFunction(onComplete)) {
|
|
27
|
+
throw new Error("firebase.database().ref().onDisconnect().cancel(*) 'onComplete' must be a function if provided.");
|
|
28
|
+
}
|
|
29
|
+
return promiseWithOptionalCallback(this._ref._database.native.onDisconnectCancel(this._ref.path), onComplete);
|
|
30
|
+
}
|
|
31
|
+
remove(onComplete) {
|
|
32
|
+
if (!isUndefined(onComplete) && !isFunction(onComplete)) {
|
|
33
|
+
throw new Error("firebase.database().ref().onDisconnect().remove(*) 'onComplete' must be a function if provided.");
|
|
34
|
+
}
|
|
35
|
+
return promiseWithOptionalCallback(this._ref._database.native.onDisconnectRemove(this._ref.path), onComplete);
|
|
36
|
+
}
|
|
37
|
+
set(value, onComplete) {
|
|
38
|
+
if (isUndefined(value)) {
|
|
39
|
+
throw new Error("firebase.database().ref().value(*) 'value' must be defined.");
|
|
40
|
+
}
|
|
41
|
+
if (!isUndefined(onComplete) && !isFunction(onComplete)) {
|
|
42
|
+
throw new Error("firebase.database().ref().onDisconnect().set(_, *) 'onComplete' must be a function if provided.");
|
|
43
|
+
}
|
|
44
|
+
return promiseWithOptionalCallback(this._ref._database.native.onDisconnectSet(this._ref.path, {
|
|
45
|
+
value
|
|
46
|
+
}), onComplete);
|
|
47
|
+
}
|
|
48
|
+
setWithPriority(value, priority, onComplete) {
|
|
49
|
+
if (isUndefined(value)) {
|
|
50
|
+
throw new Error("firebase.database().ref().setWithPriority(*) 'value' must be defined.");
|
|
51
|
+
}
|
|
52
|
+
if (!isNumber(priority) && !isString(priority) && !isNull(priority)) {
|
|
53
|
+
throw new Error("firebase.database().ref().onDisconnect().setWithPriority(_, *) 'priority' must be a number, string or null value.");
|
|
54
|
+
}
|
|
55
|
+
if (!isUndefined(onComplete) && !isFunction(onComplete)) {
|
|
56
|
+
throw new Error("firebase.database().ref().onDisconnect().setWithPriority(_, _, *) 'onComplete' must be a function if provided.");
|
|
57
|
+
}
|
|
58
|
+
return promiseWithOptionalCallback(this._ref._database.native.onDisconnectSetWithPriority(this._ref.path, {
|
|
59
|
+
value,
|
|
60
|
+
priority
|
|
61
|
+
}), onComplete);
|
|
62
|
+
}
|
|
63
|
+
update(values, onComplete) {
|
|
64
|
+
if (!isObject(values)) {
|
|
65
|
+
throw new Error("firebase.database().ref().onDisconnect().update(*) 'values' must be an object.");
|
|
66
|
+
}
|
|
67
|
+
if (!Object.keys(values).length) {
|
|
68
|
+
throw new Error("firebase.database().ref().onDisconnect().update(*) 'values' must be an object containing multiple values.");
|
|
69
|
+
}
|
|
70
|
+
const keys = Object.keys(values);
|
|
71
|
+
for (let i = 0; i < keys.length; i++) {
|
|
72
|
+
if (!isValidPath(keys[i])) {
|
|
73
|
+
throw new Error('firebase.database().onDisconnect().update(*) \'values\' contains an invalid path. Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!isUndefined(onComplete) && !isFunction(onComplete)) {
|
|
77
|
+
throw new Error("firebase.database().ref().onDisconnect().update(_, *) 'onComplete' must be a function if provided.");
|
|
78
|
+
}
|
|
79
|
+
return promiseWithOptionalCallback(this._ref._database.native.onDisconnectUpdate(this._ref.path, {
|
|
80
|
+
values
|
|
81
|
+
}), onComplete);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=DatabaseOnDisconnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isFunction","isNull","isNumber","isObject","isString","isUndefined","isValidPath","promiseWithOptionalCallback","DatabaseOnDisconnect","constructor","reference","_ref","cancel","onComplete","Error","_database","native","onDisconnectCancel","path","remove","onDisconnectRemove","set","value","onDisconnectSet","setWithPriority","priority","onDisconnectSetWithPriority","update","values","Object","keys","length","i","onDisconnectUpdate"],"sourceRoot":"../../lib","sources":["DatabaseOnDisconnect.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/*
|
|
4
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this library except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { createDeprecationProxy, isBoolean, isFunction, isNull, isNumber, isObject, isString, isUndefined, MODULAR_DEPRECATION_ARG, pathIsEmpty, pathToUrlEncodedString, ReferenceBase } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
import DatabaseDataSnapshot from "./DatabaseDataSnapshot.js";
|
|
22
|
+
import DatabaseSyncTree from "./DatabaseSyncTree.js";
|
|
23
|
+
const eventTypes = ['value', 'child_added', 'child_changed', 'child_moved', 'child_removed'];
|
|
24
|
+
let DatabaseReferenceClass = null;
|
|
25
|
+
export function provideReferenceClass(databaseReference) {
|
|
26
|
+
DatabaseReferenceClass = databaseReference;
|
|
27
|
+
}
|
|
28
|
+
function ap(query) {
|
|
29
|
+
return query;
|
|
30
|
+
}
|
|
31
|
+
function createReference(database, path) {
|
|
32
|
+
if (!DatabaseReferenceClass) {
|
|
33
|
+
throw new Error('DatabaseReference class has not been provided.');
|
|
34
|
+
}
|
|
35
|
+
return createDeprecationProxy(new DatabaseReferenceClass(database, path));
|
|
36
|
+
}
|
|
37
|
+
let listeners = 0;
|
|
38
|
+
export default class DatabaseQuery extends ReferenceBase {
|
|
39
|
+
constructor(database, path, modifiers) {
|
|
40
|
+
super(path);
|
|
41
|
+
this._database = database;
|
|
42
|
+
this._modifiers = modifiers;
|
|
43
|
+
}
|
|
44
|
+
get ref() {
|
|
45
|
+
return createReference(this._database, this.path);
|
|
46
|
+
}
|
|
47
|
+
endAt(value, key) {
|
|
48
|
+
if (!isNumber(value) && !isString(value) && !isBoolean(value) && !isNull(value)) {
|
|
49
|
+
throw new Error("firebase.database().ref().endAt(*) 'value' must be a number, string, boolean or null value.");
|
|
50
|
+
}
|
|
51
|
+
if (!isUndefined(key) && !isString(key)) {
|
|
52
|
+
throw new Error("firebase.database().ref().endAt(_, *) 'key' must be a string value if defined.");
|
|
53
|
+
}
|
|
54
|
+
if (this._modifiers.hasEndAt()) {
|
|
55
|
+
throw new Error('firebase.database().ref().endAt() Ending point was already set (by another call to endAt or equalTo).');
|
|
56
|
+
}
|
|
57
|
+
const modifiers = this._modifiers._copy().endAt(value, key);
|
|
58
|
+
modifiers.validateModifiers('firebase.database().ref().endAt()');
|
|
59
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
60
|
+
}
|
|
61
|
+
equalTo(value, key) {
|
|
62
|
+
if (!isNumber(value) && !isString(value) && !isBoolean(value) && !isNull(value)) {
|
|
63
|
+
throw new Error("firebase.database().ref().equalTo(*) 'value' must be a number, string, boolean or null value.");
|
|
64
|
+
}
|
|
65
|
+
if (!isUndefined(key) && !isString(key)) {
|
|
66
|
+
throw new Error("firebase.database().ref().equalTo(_, *) 'key' must be a string value if defined.");
|
|
67
|
+
}
|
|
68
|
+
if (this._modifiers.hasStartAt()) {
|
|
69
|
+
throw new Error('firebase.database().ref().equalTo() Starting point was already set (by another call to startAt or equalTo).');
|
|
70
|
+
}
|
|
71
|
+
if (this._modifiers.hasEndAt()) {
|
|
72
|
+
throw new Error('firebase.database().ref().equalTo() Ending point was already set (by another call to endAt or equalTo).');
|
|
73
|
+
}
|
|
74
|
+
return ap(ap(this).startAt.call(this, value, key, MODULAR_DEPRECATION_ARG)).endAt.call(this, value, MODULAR_DEPRECATION_ARG);
|
|
75
|
+
}
|
|
76
|
+
isEqual(other) {
|
|
77
|
+
if (!(other instanceof DatabaseQuery)) {
|
|
78
|
+
throw new Error("firebase.database().ref().isEqual(*) 'other' must be an instance of Query.");
|
|
79
|
+
}
|
|
80
|
+
const sameApp = other._database.app === this._database.app;
|
|
81
|
+
const sameDatabasePath = other.toString() === this.toString();
|
|
82
|
+
const sameModifiers = other._modifiers.toString() === this._modifiers.toString();
|
|
83
|
+
return sameApp && sameDatabasePath && sameModifiers;
|
|
84
|
+
}
|
|
85
|
+
limitToFirst(limit) {
|
|
86
|
+
if (this._modifiers.isValidLimit(limit)) {
|
|
87
|
+
throw new Error("firebase.database().ref().limitToFirst(*) 'limit' must be a positive integer value.");
|
|
88
|
+
}
|
|
89
|
+
if (this._modifiers.hasLimit()) {
|
|
90
|
+
throw new Error('firebase.database().ref().limitToFirst(*) Limit was already set (by another call to limitToFirst, or limitToLast)');
|
|
91
|
+
}
|
|
92
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, this._modifiers._copy().limitToFirst(limit)));
|
|
93
|
+
}
|
|
94
|
+
limitToLast(limit) {
|
|
95
|
+
if (this._modifiers.isValidLimit(limit)) {
|
|
96
|
+
throw new Error("firebase.database().ref().limitToLast(*) 'limit' must be a positive integer value.");
|
|
97
|
+
}
|
|
98
|
+
if (this._modifiers.hasLimit()) {
|
|
99
|
+
throw new Error('firebase.database().ref().limitToLast(*) Limit was already set (by another call to limitToFirst, or limitToLast)');
|
|
100
|
+
}
|
|
101
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, this._modifiers._copy().limitToLast(limit)));
|
|
102
|
+
}
|
|
103
|
+
off(eventType, callback, context) {
|
|
104
|
+
if (arguments.length === 0) {
|
|
105
|
+
DatabaseSyncTree.removeListenersForRegistrations(DatabaseSyncTree.getRegistrationsByPath(this.path));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (!isUndefined(eventType) && !eventTypes.includes(eventType)) {
|
|
109
|
+
throw new Error(`firebase.database().ref().off(*) 'eventType' must be one of ${eventTypes.join(', ')}.`);
|
|
110
|
+
}
|
|
111
|
+
if (!isUndefined(callback) && !isFunction(callback)) {
|
|
112
|
+
throw new Error("firebase.database().ref().off(_, *) 'callback' must be a function.");
|
|
113
|
+
}
|
|
114
|
+
if (!isUndefined(context) && !isNull(context) && !isObject(context)) {
|
|
115
|
+
throw new Error("firebase.database().ref().off(_, _, *) 'context' must be an object.");
|
|
116
|
+
}
|
|
117
|
+
if (eventType && callback) {
|
|
118
|
+
const registration = DatabaseSyncTree.getOneByPathEventListener(this.path, eventType, callback);
|
|
119
|
+
if (!registration) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
DatabaseSyncTree.removeListenersForRegistrations([`${registration}$cancelled`]);
|
|
123
|
+
DatabaseSyncTree.removeListenerRegistrations(callback, [registration]);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const registrations = DatabaseSyncTree.getRegistrationsByPathEvent(this.path, eventType);
|
|
127
|
+
DatabaseSyncTree.removeListenersForRegistrations(DatabaseSyncTree.getRegistrationsByPathEvent(this.path, `${eventType}$cancelled`));
|
|
128
|
+
DatabaseSyncTree.removeListenersForRegistrations(registrations);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
on(eventType, callback, cancelCallbackOrContext, context) {
|
|
132
|
+
if (!eventTypes.includes(eventType)) {
|
|
133
|
+
throw new Error(`firebase.database().ref().on(*) 'eventType' must be one of ${eventTypes.join(', ')}.`);
|
|
134
|
+
}
|
|
135
|
+
if (!isFunction(callback)) {
|
|
136
|
+
throw new Error("firebase.database().ref().on(_, *) 'callback' must be a function.");
|
|
137
|
+
}
|
|
138
|
+
if (!isUndefined(cancelCallbackOrContext) && !isFunction(cancelCallbackOrContext) && !isObject(cancelCallbackOrContext)) {
|
|
139
|
+
throw new Error("firebase.database().ref().on(_, _, *) 'cancelCallbackOrContext' must be a function or object.");
|
|
140
|
+
}
|
|
141
|
+
if (!isUndefined(context) && !isNull(context) && !isObject(context)) {
|
|
142
|
+
throw new Error("firebase.database().ref().on(_, _, _, *) 'context' must be an object.");
|
|
143
|
+
}
|
|
144
|
+
const queryKey = this._generateQueryKey();
|
|
145
|
+
const eventRegistrationKey = this._generateQueryEventKey(eventType);
|
|
146
|
+
const registrationCancellationKey = `${eventRegistrationKey}$cancelled`;
|
|
147
|
+
const scopedContext = cancelCallbackOrContext && !isFunction(cancelCallbackOrContext) ? cancelCallbackOrContext : context;
|
|
148
|
+
DatabaseSyncTree.addRegistration({
|
|
149
|
+
eventType,
|
|
150
|
+
ref: this.ref,
|
|
151
|
+
path: this.path,
|
|
152
|
+
key: queryKey,
|
|
153
|
+
appName: this._database.app.name,
|
|
154
|
+
dbURL: this._database._customUrlOrRegion,
|
|
155
|
+
eventRegistrationKey,
|
|
156
|
+
listener: scopedContext ? callback.bind(scopedContext) : callback
|
|
157
|
+
});
|
|
158
|
+
if (cancelCallbackOrContext && isFunction(cancelCallbackOrContext)) {
|
|
159
|
+
DatabaseSyncTree.addRegistration({
|
|
160
|
+
ref: this.ref,
|
|
161
|
+
once: true,
|
|
162
|
+
path: this.path,
|
|
163
|
+
key: queryKey,
|
|
164
|
+
appName: this._database.app.name,
|
|
165
|
+
dbURL: this._database._customUrlOrRegion,
|
|
166
|
+
eventType: `${eventType}$cancelled`,
|
|
167
|
+
eventRegistrationKey: registrationCancellationKey,
|
|
168
|
+
listener: scopedContext ? cancelCallbackOrContext.bind(scopedContext) : cancelCallbackOrContext
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
const listenProps = {
|
|
172
|
+
eventType,
|
|
173
|
+
path: this.path,
|
|
174
|
+
key: queryKey,
|
|
175
|
+
modifiers: this._modifiers.toArray(),
|
|
176
|
+
registration: {
|
|
177
|
+
eventRegistrationKey,
|
|
178
|
+
key: queryKey,
|
|
179
|
+
registrationCancellationKey
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
this._database.native.on(listenProps);
|
|
183
|
+
listeners += 1;
|
|
184
|
+
return callback;
|
|
185
|
+
}
|
|
186
|
+
once(eventType, successCallBack, failureCallbackOrContext, context) {
|
|
187
|
+
if (!eventTypes.includes(eventType)) {
|
|
188
|
+
throw new Error(`firebase.database().ref().once(*) 'eventType' must be one of ${eventTypes.join(', ')}.`);
|
|
189
|
+
}
|
|
190
|
+
if (!isUndefined(successCallBack) && !isFunction(successCallBack)) {
|
|
191
|
+
throw new Error("firebase.database().ref().once(_, *) 'successCallBack' must be a function.");
|
|
192
|
+
}
|
|
193
|
+
if (!isUndefined(failureCallbackOrContext) && !isObject(failureCallbackOrContext) && !isFunction(failureCallbackOrContext)) {
|
|
194
|
+
throw new Error("firebase.database().ref().once(_, _, *) 'failureCallbackOrContext' must be a function or context.");
|
|
195
|
+
}
|
|
196
|
+
if (!isUndefined(context) && !isObject(context)) {
|
|
197
|
+
throw new Error("firebase.database().ref().once(_, _, _, *) 'context' must be a context object.");
|
|
198
|
+
}
|
|
199
|
+
const modifiers = this._modifiers._copy().toArray();
|
|
200
|
+
return this._database.native.once(this.path, modifiers, eventType).then(result => {
|
|
201
|
+
let dataSnapshot;
|
|
202
|
+
let previousChildName;
|
|
203
|
+
if (eventType === 'value') {
|
|
204
|
+
dataSnapshot = createDeprecationProxy(new DatabaseDataSnapshot(this.ref, result));
|
|
205
|
+
} else {
|
|
206
|
+
const childResult = result;
|
|
207
|
+
dataSnapshot = createDeprecationProxy(new DatabaseDataSnapshot(this.ref, childResult.snapshot));
|
|
208
|
+
previousChildName = childResult.previousChildName;
|
|
209
|
+
}
|
|
210
|
+
if (isFunction(successCallBack)) {
|
|
211
|
+
if (isObject(failureCallbackOrContext)) {
|
|
212
|
+
successCallBack.bind(failureCallbackOrContext)(dataSnapshot, previousChildName);
|
|
213
|
+
} else if (isObject(context)) {
|
|
214
|
+
successCallBack.bind(context)(dataSnapshot, previousChildName);
|
|
215
|
+
} else {
|
|
216
|
+
successCallBack(dataSnapshot, previousChildName);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return dataSnapshot;
|
|
220
|
+
}).catch(error => {
|
|
221
|
+
if (isFunction(failureCallbackOrContext)) {
|
|
222
|
+
failureCallbackOrContext(error);
|
|
223
|
+
}
|
|
224
|
+
return Promise.reject(error);
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
orderByChild(path) {
|
|
228
|
+
if (!isString(path)) {
|
|
229
|
+
throw new Error("firebase.database().ref().orderByChild(*) 'path' must be a string value.");
|
|
230
|
+
}
|
|
231
|
+
if (pathIsEmpty(path)) {
|
|
232
|
+
throw new Error("firebase.database().ref().orderByChild(*) 'path' cannot be empty. Use orderByValue instead.");
|
|
233
|
+
}
|
|
234
|
+
if (this._modifiers.hasOrderBy()) {
|
|
235
|
+
throw new Error("firebase.database().ref().orderByChild(*) You can't combine multiple orderBy calls.");
|
|
236
|
+
}
|
|
237
|
+
const modifiers = this._modifiers._copy().orderByChild(path);
|
|
238
|
+
modifiers.validateModifiers('firebase.database().ref().orderByChild()');
|
|
239
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
240
|
+
}
|
|
241
|
+
orderByKey() {
|
|
242
|
+
if (this._modifiers.hasOrderBy()) {
|
|
243
|
+
throw new Error("firebase.database().ref().orderByKey() You can't combine multiple orderBy calls.");
|
|
244
|
+
}
|
|
245
|
+
const modifiers = this._modifiers._copy().orderByKey();
|
|
246
|
+
modifiers.validateModifiers('firebase.database().ref().orderByKey()');
|
|
247
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
248
|
+
}
|
|
249
|
+
orderByPriority() {
|
|
250
|
+
if (this._modifiers.hasOrderBy()) {
|
|
251
|
+
throw new Error("firebase.database().ref().orderByPriority() You can't combine multiple orderBy calls.");
|
|
252
|
+
}
|
|
253
|
+
const modifiers = this._modifiers._copy().orderByPriority();
|
|
254
|
+
modifiers.validateModifiers('firebase.database().ref().orderByPriority()');
|
|
255
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
256
|
+
}
|
|
257
|
+
orderByValue() {
|
|
258
|
+
if (this._modifiers.hasOrderBy()) {
|
|
259
|
+
throw new Error("firebase.database().ref().orderByValue() You can't combine multiple orderBy calls.");
|
|
260
|
+
}
|
|
261
|
+
const modifiers = this._modifiers._copy().orderByValue();
|
|
262
|
+
modifiers.validateModifiers('firebase.database().ref().orderByValue()');
|
|
263
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
264
|
+
}
|
|
265
|
+
startAt(value, key) {
|
|
266
|
+
if (!isNumber(value) && !isString(value) && !isBoolean(value) && !isNull(value)) {
|
|
267
|
+
throw new Error("firebase.database().ref().startAt(*) 'value' must be a number, string, boolean or null value.");
|
|
268
|
+
}
|
|
269
|
+
if (!isUndefined(key) && !isString(key)) {
|
|
270
|
+
throw new Error("firebase.database().ref().startAt(_, *) 'key' must be a string value if defined.");
|
|
271
|
+
}
|
|
272
|
+
if (this._modifiers.hasStartAt()) {
|
|
273
|
+
throw new Error('firebase.database().ref().startAt() Starting point was already set (by another call to startAt or equalTo).');
|
|
274
|
+
}
|
|
275
|
+
const modifiers = this._modifiers._copy().startAt(value, key);
|
|
276
|
+
modifiers.validateModifiers('firebase.database().ref().startAt()');
|
|
277
|
+
return createDeprecationProxy(new DatabaseQuery(this._database, this.path, modifiers));
|
|
278
|
+
}
|
|
279
|
+
toJSON() {
|
|
280
|
+
return this.toString();
|
|
281
|
+
}
|
|
282
|
+
toString() {
|
|
283
|
+
return `${this._database._customUrlOrRegion}${pathToUrlEncodedString(this.path)}`;
|
|
284
|
+
}
|
|
285
|
+
keepSynced(bool) {
|
|
286
|
+
if (!isBoolean(bool)) {
|
|
287
|
+
throw new Error("firebase.database().ref().keepSynced(*) 'bool' value must be a boolean value.");
|
|
288
|
+
}
|
|
289
|
+
return this._database.native.keepSynced(this._generateQueryKey(), this.path, this._modifiers.toArray(), bool);
|
|
290
|
+
}
|
|
291
|
+
_generateQueryKey() {
|
|
292
|
+
return `$${this._database._customUrlOrRegion}$/${this.path}$${this._database.app.name}$${this._modifiers.toString()}`;
|
|
293
|
+
}
|
|
294
|
+
_generateQueryEventKey(eventType) {
|
|
295
|
+
return `${this._generateQueryKey()}$${listeners}$${eventType}`;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=DatabaseQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createDeprecationProxy","isBoolean","isFunction","isNull","isNumber","isObject","isString","isUndefined","MODULAR_DEPRECATION_ARG","pathIsEmpty","pathToUrlEncodedString","ReferenceBase","DatabaseDataSnapshot","DatabaseSyncTree","eventTypes","DatabaseReferenceClass","provideReferenceClass","databaseReference","ap","query","createReference","database","path","Error","listeners","DatabaseQuery","constructor","modifiers","_database","_modifiers","ref","endAt","value","key","hasEndAt","_copy","validateModifiers","equalTo","hasStartAt","startAt","call","isEqual","other","sameApp","app","sameDatabasePath","toString","sameModifiers","limitToFirst","limit","isValidLimit","hasLimit","limitToLast","off","eventType","callback","context","arguments","length","removeListenersForRegistrations","getRegistrationsByPath","includes","join","registration","getOneByPathEventListener","removeListenerRegistrations","registrations","getRegistrationsByPathEvent","on","cancelCallbackOrContext","queryKey","_generateQueryKey","eventRegistrationKey","_generateQueryEventKey","registrationCancellationKey","scopedContext","addRegistration","appName","name","dbURL","_customUrlOrRegion","listener","bind","once","listenProps","toArray","native","successCallBack","failureCallbackOrContext","then","result","dataSnapshot","previousChildName","childResult","snapshot","catch","error","Promise","reject","orderByChild","hasOrderBy","orderByKey","orderByPriority","orderByValue","toJSON","keepSynced","bool"],"sourceRoot":"../../lib","sources":["DatabaseQuery.ts"],"mappings":"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","ignoreList":[]}
|