@firebase/database-compat 0.2.10-canary.ab3f16cba → 0.2.10-canary.c20633ed3
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/dist/index.esm2017.js +1 -1
- package/dist/index.esm5.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.standalone.js +95 -95
- package/dist/index.standalone.js.map +1 -1
- package/dist/node-esm/index.js +1 -1
- package/package.json +8 -7
package/dist/index.esm2017.js
CHANGED
|
@@ -5,7 +5,7 @@ import { errorPrefix, validateArgCount, validateCallback, validateContextObject,
|
|
|
5
5
|
import { Logger } from '@firebase/logger';
|
|
6
6
|
|
|
7
7
|
const name = "@firebase/database-compat";
|
|
8
|
-
const version = "0.2.10-canary.
|
|
8
|
+
const version = "0.2.10-canary.c20633ed3";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @license
|
package/dist/index.esm5.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var firebase__default = /*#__PURE__*/_interopDefaultLegacy(firebase);
|
|
13
13
|
|
|
14
14
|
var name = "@firebase/database-compat";
|
|
15
|
-
var version = "0.2.10-canary.
|
|
15
|
+
var version = "0.2.10-canary.c20633ed3";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @license
|
package/dist/index.standalone.js
CHANGED
|
@@ -3665,7 +3665,7 @@ var logWrapper = function (prefix) {
|
|
|
3665
3665
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3666
3666
|
varArgs[_i] = arguments[_i];
|
|
3667
3667
|
}
|
|
3668
|
-
log.apply(void 0, tslib.__spreadArray([prefix], tslib.__read(varArgs)));
|
|
3668
|
+
log.apply(void 0, tslib.__spreadArray([prefix], tslib.__read(varArgs), false));
|
|
3669
3669
|
};
|
|
3670
3670
|
};
|
|
3671
3671
|
var error = function () {
|
|
@@ -3673,7 +3673,7 @@ var error = function () {
|
|
|
3673
3673
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3674
3674
|
varArgs[_i] = arguments[_i];
|
|
3675
3675
|
}
|
|
3676
|
-
var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, tslib.__spreadArray([], tslib.__read(varArgs)));
|
|
3676
|
+
var message = 'FIREBASE INTERNAL ERROR: ' + buildLogMessage_.apply(void 0, tslib.__spreadArray([], tslib.__read(varArgs), false));
|
|
3677
3677
|
logClient$1.error(message);
|
|
3678
3678
|
};
|
|
3679
3679
|
var fatal = function () {
|
|
@@ -3681,7 +3681,7 @@ var fatal = function () {
|
|
|
3681
3681
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3682
3682
|
varArgs[_i] = arguments[_i];
|
|
3683
3683
|
}
|
|
3684
|
-
var message = "FIREBASE FATAL ERROR: "
|
|
3684
|
+
var message = "FIREBASE FATAL ERROR: ".concat(buildLogMessage_.apply(void 0, tslib.__spreadArray([], tslib.__read(varArgs), false)));
|
|
3685
3685
|
logClient$1.error(message);
|
|
3686
3686
|
throw new Error(message);
|
|
3687
3687
|
};
|
|
@@ -3690,7 +3690,7 @@ var warn$1 = function () {
|
|
|
3690
3690
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
3691
3691
|
varArgs[_i] = arguments[_i];
|
|
3692
3692
|
}
|
|
3693
|
-
var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, tslib.__spreadArray([], tslib.__read(varArgs)));
|
|
3693
|
+
var message = 'FIREBASE WARNING: ' + buildLogMessage_.apply(void 0, tslib.__spreadArray([], tslib.__read(varArgs), false));
|
|
3694
3694
|
logClient$1.warn(message);
|
|
3695
3695
|
};
|
|
3696
3696
|
/**
|
|
@@ -4147,9 +4147,9 @@ var RepoInfo = /** @class */ (function () {
|
|
|
4147
4147
|
RepoInfo.prototype.toURLString = function () {
|
|
4148
4148
|
var protocol = this.secure ? 'https://' : 'http://';
|
|
4149
4149
|
var query = this.includeNamespaceInQueryParams
|
|
4150
|
-
? "?ns="
|
|
4150
|
+
? "?ns=".concat(this.namespace)
|
|
4151
4151
|
: '';
|
|
4152
|
-
return ""
|
|
4152
|
+
return "".concat(protocol).concat(this.host, "/").concat(query);
|
|
4153
4153
|
};
|
|
4154
4154
|
return RepoInfo;
|
|
4155
4155
|
}());
|
|
@@ -4394,7 +4394,7 @@ var WebSocketConnection = /** @class */ (function () {
|
|
|
4394
4394
|
// UA Format: Firebase/<wire_protocol>/<sdk_version>/<platform>/<device>
|
|
4395
4395
|
options = {
|
|
4396
4396
|
headers: {
|
|
4397
|
-
'User-Agent': "Firebase/"
|
|
4397
|
+
'User-Agent': "Firebase/".concat(PROTOCOL_VERSION, "/").concat(SDK_VERSION, "/").concat(process.platform, "/").concat(device),
|
|
4398
4398
|
'X-Firebase-GMPID': this.applicationId || ''
|
|
4399
4399
|
}
|
|
4400
4400
|
};
|
|
@@ -4404,7 +4404,7 @@ var WebSocketConnection = /** @class */ (function () {
|
|
|
4404
4404
|
// Note that this header is just used to bypass appcheck, and the token should still be sent
|
|
4405
4405
|
// through the websocket connection once it is established.
|
|
4406
4406
|
if (this.authToken) {
|
|
4407
|
-
options.headers['Authorization'] = "Bearer "
|
|
4407
|
+
options.headers['Authorization'] = "Bearer ".concat(this.authToken);
|
|
4408
4408
|
}
|
|
4409
4409
|
if (this.appCheckToken) {
|
|
4410
4410
|
options.headers['X-Firebase-AppCheck'] = this.appCheckToken;
|
|
@@ -4695,7 +4695,7 @@ var AppCheckTokenProvider = /** @class */ (function () {
|
|
|
4695
4695
|
(_a = this.appCheckProvider) === null || _a === void 0 ? void 0 : _a.get().then(function (appCheck) { return appCheck.addTokenListener(listener); });
|
|
4696
4696
|
};
|
|
4697
4697
|
AppCheckTokenProvider.prototype.notifyForInvalidToken = function () {
|
|
4698
|
-
warn$1("Provided AppCheck credentials for the app named \""
|
|
4698
|
+
warn$1("Provided AppCheck credentials for the app named \"".concat(this.appName_, "\" ") +
|
|
4699
4699
|
'are invalid. This usually indicates your app was not initialized correctly.');
|
|
4700
4700
|
};
|
|
4701
4701
|
return AppCheckTokenProvider;
|
|
@@ -5708,7 +5708,7 @@ var Connection = /** @class */ (function () {
|
|
|
5708
5708
|
this.lastSessionId = lastSessionId;
|
|
5709
5709
|
this.connectionCount = 0;
|
|
5710
5710
|
this.pendingDataMessages = [];
|
|
5711
|
-
this.state_ = 0 /* CONNECTING */;
|
|
5711
|
+
this.state_ = 0 /* RealtimeState.CONNECTING */;
|
|
5712
5712
|
this.log_ = logWrapper('c:' + this.id + ':');
|
|
5713
5713
|
this.transportManager_ = new TransportManager(repoInfo_);
|
|
5714
5714
|
this.log_('Connection created');
|
|
@@ -5791,7 +5791,7 @@ var Connection = /** @class */ (function () {
|
|
|
5791
5791
|
Connection.prototype.connReceiver_ = function (conn) {
|
|
5792
5792
|
var _this = this;
|
|
5793
5793
|
return function (message) {
|
|
5794
|
-
if (_this.state_ !== 2 /* DISCONNECTED */) {
|
|
5794
|
+
if (_this.state_ !== 2 /* RealtimeState.DISCONNECTED */) {
|
|
5795
5795
|
if (conn === _this.rx_) {
|
|
5796
5796
|
_this.onPrimaryMessageReceived_(message);
|
|
5797
5797
|
}
|
|
@@ -5957,7 +5957,7 @@ var Connection = /** @class */ (function () {
|
|
|
5957
5957
|
this.sessionId = handshake.s;
|
|
5958
5958
|
this.repoInfo_.host = host;
|
|
5959
5959
|
// if we've already closed the connection, then don't bother trying to progress further
|
|
5960
|
-
if (this.state_ === 0 /* CONNECTING */) {
|
|
5960
|
+
if (this.state_ === 0 /* RealtimeState.CONNECTING */) {
|
|
5961
5961
|
this.conn_.start();
|
|
5962
5962
|
this.onConnectionEstablished_(this.conn_, timestamp);
|
|
5963
5963
|
if (PROTOCOL_VERSION !== version) {
|
|
@@ -5996,7 +5996,7 @@ var Connection = /** @class */ (function () {
|
|
|
5996
5996
|
this.repoInfo_.host = host;
|
|
5997
5997
|
// TODO: if we're already "connected", we need to trigger a disconnect at the next layer up.
|
|
5998
5998
|
// We don't currently support resets after the connection has already been established
|
|
5999
|
-
if (this.state_ === 1 /* CONNECTED */) {
|
|
5999
|
+
if (this.state_ === 1 /* RealtimeState.CONNECTED */) {
|
|
6000
6000
|
this.close();
|
|
6001
6001
|
}
|
|
6002
6002
|
else {
|
|
@@ -6009,7 +6009,7 @@ var Connection = /** @class */ (function () {
|
|
|
6009
6009
|
var _this = this;
|
|
6010
6010
|
this.log_('Realtime connection established.');
|
|
6011
6011
|
this.conn_ = conn;
|
|
6012
|
-
this.state_ = 1 /* CONNECTED */;
|
|
6012
|
+
this.state_ = 1 /* RealtimeState.CONNECTED */;
|
|
6013
6013
|
if (this.onReady_) {
|
|
6014
6014
|
this.onReady_(timestamp, this.sessionId);
|
|
6015
6015
|
this.onReady_ = null;
|
|
@@ -6028,7 +6028,7 @@ var Connection = /** @class */ (function () {
|
|
|
6028
6028
|
};
|
|
6029
6029
|
Connection.prototype.sendPingOnPrimaryIfNecessary_ = function () {
|
|
6030
6030
|
// If the connection isn't considered healthy yet, we'll send a noop ping packet request.
|
|
6031
|
-
if (!this.isHealthy_ && this.state_ === 1 /* CONNECTED */) {
|
|
6031
|
+
if (!this.isHealthy_ && this.state_ === 1 /* RealtimeState.CONNECTED */) {
|
|
6032
6032
|
this.log_('sending ping on primary.');
|
|
6033
6033
|
this.sendData_({ t: 'c', d: { t: PING, d: {} } });
|
|
6034
6034
|
}
|
|
@@ -6049,7 +6049,7 @@ var Connection = /** @class */ (function () {
|
|
|
6049
6049
|
this.conn_ = null;
|
|
6050
6050
|
// NOTE: IF you're seeing a Firefox error for this line, I think it might be because it's getting
|
|
6051
6051
|
// called on window close and RealtimeState.CONNECTING is no longer defined. Just a guess.
|
|
6052
|
-
if (!everConnected && this.state_ === 0 /* CONNECTING */) {
|
|
6052
|
+
if (!everConnected && this.state_ === 0 /* RealtimeState.CONNECTING */) {
|
|
6053
6053
|
this.log_('Realtime connection failed.');
|
|
6054
6054
|
// Since we failed to connect at all, clear any cached entry for this namespace in case the machine went away
|
|
6055
6055
|
if (this.repoInfo_.isCacheableHost()) {
|
|
@@ -6058,7 +6058,7 @@ var Connection = /** @class */ (function () {
|
|
|
6058
6058
|
this.repoInfo_.internalHost = this.repoInfo_.host;
|
|
6059
6059
|
}
|
|
6060
6060
|
}
|
|
6061
|
-
else if (this.state_ === 1 /* CONNECTED */) {
|
|
6061
|
+
else if (this.state_ === 1 /* RealtimeState.CONNECTED */) {
|
|
6062
6062
|
this.log_('Realtime connection lost.');
|
|
6063
6063
|
}
|
|
6064
6064
|
this.close();
|
|
@@ -6075,7 +6075,7 @@ var Connection = /** @class */ (function () {
|
|
|
6075
6075
|
this.close();
|
|
6076
6076
|
};
|
|
6077
6077
|
Connection.prototype.sendData_ = function (data) {
|
|
6078
|
-
if (this.state_ !== 1 /* CONNECTED */) {
|
|
6078
|
+
if (this.state_ !== 1 /* RealtimeState.CONNECTED */) {
|
|
6079
6079
|
throw 'Connection is not connected';
|
|
6080
6080
|
}
|
|
6081
6081
|
else {
|
|
@@ -6086,9 +6086,9 @@ var Connection = /** @class */ (function () {
|
|
|
6086
6086
|
* Cleans up this connection, calling the appropriate callbacks
|
|
6087
6087
|
*/
|
|
6088
6088
|
Connection.prototype.close = function () {
|
|
6089
|
-
if (this.state_ !== 2 /* DISCONNECTED */) {
|
|
6089
|
+
if (this.state_ !== 2 /* RealtimeState.DISCONNECTED */) {
|
|
6090
6090
|
this.log_('Closing realtime connection.');
|
|
6091
|
-
this.state_ = 2 /* DISCONNECTED */;
|
|
6091
|
+
this.state_ = 2 /* RealtimeState.DISCONNECTED */;
|
|
6092
6092
|
this.closeConnections_();
|
|
6093
6093
|
if (this.onDisconnect_) {
|
|
6094
6094
|
this.onDisconnect_();
|
|
@@ -6194,7 +6194,7 @@ var EventEmitter = /** @class */ (function () {
|
|
|
6194
6194
|
}
|
|
6195
6195
|
if (Array.isArray(this.listeners_[eventType])) {
|
|
6196
6196
|
// Clone the list, since callbacks could add/remove listeners.
|
|
6197
|
-
var listeners = tslib.__spreadArray([], tslib.__read(this.listeners_[eventType]));
|
|
6197
|
+
var listeners = tslib.__spreadArray([], tslib.__read(this.listeners_[eventType]), false);
|
|
6198
6198
|
for (var i = 0; i < listeners.length; i++) {
|
|
6199
6199
|
listeners[i].callback.apply(listeners[i].context, varArgs);
|
|
6200
6200
|
}
|
|
@@ -6839,8 +6839,8 @@ var PersistentConnection = /** @class */ (function (_super) {
|
|
|
6839
6839
|
var indexSpec = '".indexOn": "' + query._queryParams.getIndex().toString() + '"';
|
|
6840
6840
|
var indexPath = query._path.toString();
|
|
6841
6841
|
warn$1("Using an unspecified index. Your data will be downloaded and " +
|
|
6842
|
-
|
|
6843
|
-
(indexPath
|
|
6842
|
+
"filtered on the client. Consider adding ".concat(indexSpec, " at ") +
|
|
6843
|
+
"".concat(indexPath, " to your security rules for better performance."));
|
|
6844
6844
|
}
|
|
6845
6845
|
}
|
|
6846
6846
|
};
|
|
@@ -9536,24 +9536,24 @@ var VALUE_INDEX = new ValueIndex();
|
|
|
9536
9536
|
* limitations under the License.
|
|
9537
9537
|
*/
|
|
9538
9538
|
function changeValue(snapshotNode) {
|
|
9539
|
-
return { type: "value" /* VALUE */, snapshotNode: snapshotNode };
|
|
9539
|
+
return { type: "value" /* ChangeType.VALUE */, snapshotNode: snapshotNode };
|
|
9540
9540
|
}
|
|
9541
9541
|
function changeChildAdded(childName, snapshotNode) {
|
|
9542
|
-
return { type: "child_added" /* CHILD_ADDED */, snapshotNode: snapshotNode, childName: childName };
|
|
9542
|
+
return { type: "child_added" /* ChangeType.CHILD_ADDED */, snapshotNode: snapshotNode, childName: childName };
|
|
9543
9543
|
}
|
|
9544
9544
|
function changeChildRemoved(childName, snapshotNode) {
|
|
9545
|
-
return { type: "child_removed" /* CHILD_REMOVED */, snapshotNode: snapshotNode, childName: childName };
|
|
9545
|
+
return { type: "child_removed" /* ChangeType.CHILD_REMOVED */, snapshotNode: snapshotNode, childName: childName };
|
|
9546
9546
|
}
|
|
9547
9547
|
function changeChildChanged(childName, snapshotNode, oldSnap) {
|
|
9548
9548
|
return {
|
|
9549
|
-
type: "child_changed" /* CHILD_CHANGED */,
|
|
9549
|
+
type: "child_changed" /* ChangeType.CHILD_CHANGED */,
|
|
9550
9550
|
snapshotNode: snapshotNode,
|
|
9551
9551
|
childName: childName,
|
|
9552
9552
|
oldSnap: oldSnap
|
|
9553
9553
|
};
|
|
9554
9554
|
}
|
|
9555
9555
|
function changeChildMoved(childName, snapshotNode) {
|
|
9556
|
-
return { type: "child_moved" /* CHILD_MOVED */, snapshotNode: snapshotNode, childName: childName };
|
|
9556
|
+
return { type: "child_moved" /* ChangeType.CHILD_MOVED */, snapshotNode: snapshotNode, childName: childName };
|
|
9557
9557
|
}
|
|
9558
9558
|
|
|
9559
9559
|
/**
|
|
@@ -10034,7 +10034,7 @@ var QueryParams = /** @class */ (function () {
|
|
|
10034
10034
|
return this.startSet_;
|
|
10035
10035
|
}
|
|
10036
10036
|
else {
|
|
10037
|
-
return this.viewFrom_ === "l" /* VIEW_FROM_LEFT */;
|
|
10037
|
+
return this.viewFrom_ === "l" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_LEFT */;
|
|
10038
10038
|
}
|
|
10039
10039
|
};
|
|
10040
10040
|
/**
|
|
@@ -10140,14 +10140,14 @@ function queryParamsLimitToFirst(queryParams, newLimit) {
|
|
|
10140
10140
|
var newParams = queryParams.copy();
|
|
10141
10141
|
newParams.limitSet_ = true;
|
|
10142
10142
|
newParams.limit_ = newLimit;
|
|
10143
|
-
newParams.viewFrom_ = "l" /* VIEW_FROM_LEFT */;
|
|
10143
|
+
newParams.viewFrom_ = "l" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_LEFT */;
|
|
10144
10144
|
return newParams;
|
|
10145
10145
|
}
|
|
10146
10146
|
function queryParamsLimitToLast(queryParams, newLimit) {
|
|
10147
10147
|
var newParams = queryParams.copy();
|
|
10148
10148
|
newParams.limitSet_ = true;
|
|
10149
10149
|
newParams.limit_ = newLimit;
|
|
10150
|
-
newParams.viewFrom_ = "r" /* VIEW_FROM_RIGHT */;
|
|
10150
|
+
newParams.viewFrom_ = "r" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_RIGHT */;
|
|
10151
10151
|
return newParams;
|
|
10152
10152
|
}
|
|
10153
10153
|
function queryParamsStartAt(queryParams, indexValue, key) {
|
|
@@ -10223,23 +10223,23 @@ function queryParamsToRestQueryStringParameters(queryParams) {
|
|
|
10223
10223
|
}
|
|
10224
10224
|
var orderBy;
|
|
10225
10225
|
if (queryParams.index_ === PRIORITY_INDEX) {
|
|
10226
|
-
orderBy = "$priority" /* PRIORITY_INDEX */;
|
|
10226
|
+
orderBy = "$priority" /* REST_QUERY_CONSTANTS.PRIORITY_INDEX */;
|
|
10227
10227
|
}
|
|
10228
10228
|
else if (queryParams.index_ === VALUE_INDEX) {
|
|
10229
|
-
orderBy = "$value" /* VALUE_INDEX */;
|
|
10229
|
+
orderBy = "$value" /* REST_QUERY_CONSTANTS.VALUE_INDEX */;
|
|
10230
10230
|
}
|
|
10231
10231
|
else if (queryParams.index_ === KEY_INDEX) {
|
|
10232
|
-
orderBy = "$key" /* KEY_INDEX */;
|
|
10232
|
+
orderBy = "$key" /* REST_QUERY_CONSTANTS.KEY_INDEX */;
|
|
10233
10233
|
}
|
|
10234
10234
|
else {
|
|
10235
10235
|
util.assert(queryParams.index_ instanceof PathIndex, 'Unrecognized index type!');
|
|
10236
10236
|
orderBy = queryParams.index_.toString();
|
|
10237
10237
|
}
|
|
10238
|
-
qs["orderBy" /* ORDER_BY */] = util.stringify(orderBy);
|
|
10238
|
+
qs["orderBy" /* REST_QUERY_CONSTANTS.ORDER_BY */] = util.stringify(orderBy);
|
|
10239
10239
|
if (queryParams.startSet_) {
|
|
10240
10240
|
var startParam = queryParams.startAfterSet_
|
|
10241
|
-
? "startAfter" /* START_AFTER */
|
|
10242
|
-
: "startAt" /* START_AT */;
|
|
10241
|
+
? "startAfter" /* REST_QUERY_CONSTANTS.START_AFTER */
|
|
10242
|
+
: "startAt" /* REST_QUERY_CONSTANTS.START_AT */;
|
|
10243
10243
|
qs[startParam] = util.stringify(queryParams.indexStartValue_);
|
|
10244
10244
|
if (queryParams.startNameSet_) {
|
|
10245
10245
|
qs[startParam] += ',' + util.stringify(queryParams.indexStartName_);
|
|
@@ -10247,8 +10247,8 @@ function queryParamsToRestQueryStringParameters(queryParams) {
|
|
|
10247
10247
|
}
|
|
10248
10248
|
if (queryParams.endSet_) {
|
|
10249
10249
|
var endParam = queryParams.endBeforeSet_
|
|
10250
|
-
? "endBefore" /* END_BEFORE */
|
|
10251
|
-
: "endAt" /* END_AT */;
|
|
10250
|
+
? "endBefore" /* REST_QUERY_CONSTANTS.END_BEFORE */
|
|
10251
|
+
: "endAt" /* REST_QUERY_CONSTANTS.END_AT */;
|
|
10252
10252
|
qs[endParam] = util.stringify(queryParams.indexEndValue_);
|
|
10253
10253
|
if (queryParams.endNameSet_) {
|
|
10254
10254
|
qs[endParam] += ',' + util.stringify(queryParams.indexEndName_);
|
|
@@ -10256,10 +10256,10 @@ function queryParamsToRestQueryStringParameters(queryParams) {
|
|
|
10256
10256
|
}
|
|
10257
10257
|
if (queryParams.limitSet_) {
|
|
10258
10258
|
if (queryParams.isViewFromLeft()) {
|
|
10259
|
-
qs["limitToFirst" /* LIMIT_TO_FIRST */] = queryParams.limit_;
|
|
10259
|
+
qs["limitToFirst" /* REST_QUERY_CONSTANTS.LIMIT_TO_FIRST */] = queryParams.limit_;
|
|
10260
10260
|
}
|
|
10261
10261
|
else {
|
|
10262
|
-
qs["limitToLast" /* LIMIT_TO_LAST */] = queryParams.limit_;
|
|
10262
|
+
qs["limitToLast" /* REST_QUERY_CONSTANTS.LIMIT_TO_LAST */] = queryParams.limit_;
|
|
10263
10263
|
}
|
|
10264
10264
|
}
|
|
10265
10265
|
return qs;
|
|
@@ -10267,39 +10267,39 @@ function queryParamsToRestQueryStringParameters(queryParams) {
|
|
|
10267
10267
|
function queryParamsGetQueryObject(queryParams) {
|
|
10268
10268
|
var obj = {};
|
|
10269
10269
|
if (queryParams.startSet_) {
|
|
10270
|
-
obj["sp" /* INDEX_START_VALUE */] =
|
|
10270
|
+
obj["sp" /* WIRE_PROTOCOL_CONSTANTS.INDEX_START_VALUE */] =
|
|
10271
10271
|
queryParams.indexStartValue_;
|
|
10272
10272
|
if (queryParams.startNameSet_) {
|
|
10273
|
-
obj["sn" /* INDEX_START_NAME */] =
|
|
10273
|
+
obj["sn" /* WIRE_PROTOCOL_CONSTANTS.INDEX_START_NAME */] =
|
|
10274
10274
|
queryParams.indexStartName_;
|
|
10275
10275
|
}
|
|
10276
|
-
obj["sin" /* INDEX_START_IS_INCLUSIVE */] =
|
|
10276
|
+
obj["sin" /* WIRE_PROTOCOL_CONSTANTS.INDEX_START_IS_INCLUSIVE */] =
|
|
10277
10277
|
!queryParams.startAfterSet_;
|
|
10278
10278
|
}
|
|
10279
10279
|
if (queryParams.endSet_) {
|
|
10280
|
-
obj["ep" /* INDEX_END_VALUE */] = queryParams.indexEndValue_;
|
|
10280
|
+
obj["ep" /* WIRE_PROTOCOL_CONSTANTS.INDEX_END_VALUE */] = queryParams.indexEndValue_;
|
|
10281
10281
|
if (queryParams.endNameSet_) {
|
|
10282
|
-
obj["en" /* INDEX_END_NAME */] = queryParams.indexEndName_;
|
|
10282
|
+
obj["en" /* WIRE_PROTOCOL_CONSTANTS.INDEX_END_NAME */] = queryParams.indexEndName_;
|
|
10283
10283
|
}
|
|
10284
|
-
obj["ein" /* INDEX_END_IS_INCLUSIVE */] =
|
|
10284
|
+
obj["ein" /* WIRE_PROTOCOL_CONSTANTS.INDEX_END_IS_INCLUSIVE */] =
|
|
10285
10285
|
!queryParams.endBeforeSet_;
|
|
10286
10286
|
}
|
|
10287
10287
|
if (queryParams.limitSet_) {
|
|
10288
|
-
obj["l" /* LIMIT */] = queryParams.limit_;
|
|
10288
|
+
obj["l" /* WIRE_PROTOCOL_CONSTANTS.LIMIT */] = queryParams.limit_;
|
|
10289
10289
|
var viewFrom = queryParams.viewFrom_;
|
|
10290
10290
|
if (viewFrom === '') {
|
|
10291
10291
|
if (queryParams.isViewFromLeft()) {
|
|
10292
|
-
viewFrom = "l" /* VIEW_FROM_LEFT */;
|
|
10292
|
+
viewFrom = "l" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_LEFT */;
|
|
10293
10293
|
}
|
|
10294
10294
|
else {
|
|
10295
|
-
viewFrom = "r" /* VIEW_FROM_RIGHT */;
|
|
10295
|
+
viewFrom = "r" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM_RIGHT */;
|
|
10296
10296
|
}
|
|
10297
10297
|
}
|
|
10298
|
-
obj["vf" /* VIEW_FROM */] = viewFrom;
|
|
10298
|
+
obj["vf" /* WIRE_PROTOCOL_CONSTANTS.VIEW_FROM */] = viewFrom;
|
|
10299
10299
|
}
|
|
10300
10300
|
// For now, priority index is the default, so we only specify if it's some other index
|
|
10301
10301
|
if (queryParams.index_ !== PRIORITY_INDEX) {
|
|
10302
|
-
obj["i" /* INDEX */] = queryParams.index_.toString();
|
|
10302
|
+
obj["i" /* WIRE_PROTOCOL_CONSTANTS.INDEX */] = queryParams.index_.toString();
|
|
10303
10303
|
}
|
|
10304
10304
|
return obj;
|
|
10305
10305
|
}
|
|
@@ -11061,16 +11061,16 @@ function eventGeneratorGenerateEventsForChanges(eventGenerator, changes, eventCa
|
|
|
11061
11061
|
var events = [];
|
|
11062
11062
|
var moves = [];
|
|
11063
11063
|
changes.forEach(function (change) {
|
|
11064
|
-
if (change.type === "child_changed" /* CHILD_CHANGED */ &&
|
|
11064
|
+
if (change.type === "child_changed" /* ChangeType.CHILD_CHANGED */ &&
|
|
11065
11065
|
eventGenerator.index_.indexedValueChanged(change.oldSnap, change.snapshotNode)) {
|
|
11066
11066
|
moves.push(changeChildMoved(change.childName, change.snapshotNode));
|
|
11067
11067
|
}
|
|
11068
11068
|
});
|
|
11069
|
-
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_removed" /* CHILD_REMOVED */, changes, eventRegistrations, eventCache);
|
|
11070
|
-
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_added" /* CHILD_ADDED */, changes, eventRegistrations, eventCache);
|
|
11071
|
-
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_moved" /* CHILD_MOVED */, moves, eventRegistrations, eventCache);
|
|
11072
|
-
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_changed" /* CHILD_CHANGED */, changes, eventRegistrations, eventCache);
|
|
11073
|
-
eventGeneratorGenerateEventsForType(eventGenerator, events, "value" /* VALUE */, changes, eventRegistrations, eventCache);
|
|
11069
|
+
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_removed" /* ChangeType.CHILD_REMOVED */, changes, eventRegistrations, eventCache);
|
|
11070
|
+
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_added" /* ChangeType.CHILD_ADDED */, changes, eventRegistrations, eventCache);
|
|
11071
|
+
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_moved" /* ChangeType.CHILD_MOVED */, moves, eventRegistrations, eventCache);
|
|
11072
|
+
eventGeneratorGenerateEventsForType(eventGenerator, events, "child_changed" /* ChangeType.CHILD_CHANGED */, changes, eventRegistrations, eventCache);
|
|
11073
|
+
eventGeneratorGenerateEventsForType(eventGenerator, events, "value" /* ChangeType.VALUE */, changes, eventRegistrations, eventCache);
|
|
11074
11074
|
return events;
|
|
11075
11075
|
}
|
|
11076
11076
|
/**
|
|
@@ -12156,31 +12156,31 @@ var ChildChangeAccumulator = /** @class */ (function () {
|
|
|
12156
12156
|
ChildChangeAccumulator.prototype.trackChildChange = function (change) {
|
|
12157
12157
|
var type = change.type;
|
|
12158
12158
|
var childKey = change.childName;
|
|
12159
|
-
util.assert(type === "child_added" /* CHILD_ADDED */ ||
|
|
12160
|
-
type === "child_changed" /* CHILD_CHANGED */ ||
|
|
12161
|
-
type === "child_removed" /* CHILD_REMOVED */, 'Only child changes supported for tracking');
|
|
12159
|
+
util.assert(type === "child_added" /* ChangeType.CHILD_ADDED */ ||
|
|
12160
|
+
type === "child_changed" /* ChangeType.CHILD_CHANGED */ ||
|
|
12161
|
+
type === "child_removed" /* ChangeType.CHILD_REMOVED */, 'Only child changes supported for tracking');
|
|
12162
12162
|
util.assert(childKey !== '.priority', 'Only non-priority child changes can be tracked.');
|
|
12163
12163
|
var oldChange = this.changeMap.get(childKey);
|
|
12164
12164
|
if (oldChange) {
|
|
12165
12165
|
var oldType = oldChange.type;
|
|
12166
|
-
if (type === "child_added" /* CHILD_ADDED */ &&
|
|
12167
|
-
oldType === "child_removed" /* CHILD_REMOVED */) {
|
|
12166
|
+
if (type === "child_added" /* ChangeType.CHILD_ADDED */ &&
|
|
12167
|
+
oldType === "child_removed" /* ChangeType.CHILD_REMOVED */) {
|
|
12168
12168
|
this.changeMap.set(childKey, changeChildChanged(childKey, change.snapshotNode, oldChange.snapshotNode));
|
|
12169
12169
|
}
|
|
12170
|
-
else if (type === "child_removed" /* CHILD_REMOVED */ &&
|
|
12171
|
-
oldType === "child_added" /* CHILD_ADDED */) {
|
|
12170
|
+
else if (type === "child_removed" /* ChangeType.CHILD_REMOVED */ &&
|
|
12171
|
+
oldType === "child_added" /* ChangeType.CHILD_ADDED */) {
|
|
12172
12172
|
this.changeMap.delete(childKey);
|
|
12173
12173
|
}
|
|
12174
|
-
else if (type === "child_removed" /* CHILD_REMOVED */ &&
|
|
12175
|
-
oldType === "child_changed" /* CHILD_CHANGED */) {
|
|
12174
|
+
else if (type === "child_removed" /* ChangeType.CHILD_REMOVED */ &&
|
|
12175
|
+
oldType === "child_changed" /* ChangeType.CHILD_CHANGED */) {
|
|
12176
12176
|
this.changeMap.set(childKey, changeChildRemoved(childKey, oldChange.oldSnap));
|
|
12177
12177
|
}
|
|
12178
|
-
else if (type === "child_changed" /* CHILD_CHANGED */ &&
|
|
12179
|
-
oldType === "child_added" /* CHILD_ADDED */) {
|
|
12178
|
+
else if (type === "child_changed" /* ChangeType.CHILD_CHANGED */ &&
|
|
12179
|
+
oldType === "child_added" /* ChangeType.CHILD_ADDED */) {
|
|
12180
12180
|
this.changeMap.set(childKey, changeChildAdded(childKey, change.snapshotNode));
|
|
12181
12181
|
}
|
|
12182
|
-
else if (type === "child_changed" /* CHILD_CHANGED */ &&
|
|
12183
|
-
oldType === "child_changed" /* CHILD_CHANGED */) {
|
|
12182
|
+
else if (type === "child_changed" /* ChangeType.CHILD_CHANGED */ &&
|
|
12183
|
+
oldType === "child_changed" /* ChangeType.CHILD_CHANGED */) {
|
|
12184
12184
|
this.changeMap.set(childKey, changeChildChanged(childKey, change.snapshotNode, oldChange.oldSnap));
|
|
12185
12185
|
}
|
|
12186
12186
|
else {
|
|
@@ -14905,7 +14905,7 @@ function repoLog(repo) {
|
|
|
14905
14905
|
if (repo.persistentConnection_) {
|
|
14906
14906
|
prefix = repo.persistentConnection_.id + ':';
|
|
14907
14907
|
}
|
|
14908
|
-
log.apply(void 0, tslib.__spreadArray([prefix], tslib.__read(varArgs)));
|
|
14908
|
+
log.apply(void 0, tslib.__spreadArray([prefix], tslib.__read(varArgs), false));
|
|
14909
14909
|
}
|
|
14910
14910
|
function repoCallOnCompleteCallback(repo, callback, status, errorReason) {
|
|
14911
14911
|
if (callback) {
|
|
@@ -14979,7 +14979,7 @@ function repoStartTransaction(repo, path, transactionUpdate, onComplete, unwatch
|
|
|
14979
14979
|
else {
|
|
14980
14980
|
validateFirebaseData('transaction failed: Data returned ', newVal, transaction.path);
|
|
14981
14981
|
// Mark as run and add to our queue.
|
|
14982
|
-
transaction.status = 0 /* RUN */;
|
|
14982
|
+
transaction.status = 0 /* TransactionStatus.RUN */;
|
|
14983
14983
|
var queueNode = treeSubTree(repo.transactionQueueTree_, path);
|
|
14984
14984
|
var nodeQueue = treeGetValue(queueNode) || [];
|
|
14985
14985
|
nodeQueue.push(transaction);
|
|
@@ -15038,7 +15038,7 @@ function repoSendReadyTransactions(repo, node) {
|
|
|
15038
15038
|
if (treeGetValue(node)) {
|
|
15039
15039
|
var queue = repoBuildTransactionQueue(repo, node);
|
|
15040
15040
|
util.assert(queue.length > 0, 'Sending zero length transaction queue');
|
|
15041
|
-
var allRun = queue.every(function (transaction) { return transaction.status === 0 /* RUN */; });
|
|
15041
|
+
var allRun = queue.every(function (transaction) { return transaction.status === 0 /* TransactionStatus.RUN */; });
|
|
15042
15042
|
// If they're all run (and not sent), we can send them. Else, we must wait.
|
|
15043
15043
|
if (allRun) {
|
|
15044
15044
|
repoSendTransactionQueue(repo, treeGetPath(node), queue);
|
|
@@ -15067,8 +15067,8 @@ function repoSendTransactionQueue(repo, path, queue) {
|
|
|
15067
15067
|
var latestHash = latestState.hash();
|
|
15068
15068
|
for (var i = 0; i < queue.length; i++) {
|
|
15069
15069
|
var txn = queue[i];
|
|
15070
|
-
util.assert(txn.status === 0 /* RUN */, 'tryToSendTransactionQueue_: items in queue should all be run.');
|
|
15071
|
-
txn.status = 1 /* SENT */;
|
|
15070
|
+
util.assert(txn.status === 0 /* TransactionStatus.RUN */, 'tryToSendTransactionQueue_: items in queue should all be run.');
|
|
15071
|
+
txn.status = 1 /* TransactionStatus.SENT */;
|
|
15072
15072
|
txn.retryCount++;
|
|
15073
15073
|
var relativePath = newRelativePath(path, txn.path);
|
|
15074
15074
|
// If we've gotten to this point, the output snapshot must be defined.
|
|
@@ -15089,7 +15089,7 @@ function repoSendTransactionQueue(repo, path, queue) {
|
|
|
15089
15089
|
// transactions or sets.
|
|
15090
15090
|
var callbacks = [];
|
|
15091
15091
|
var _loop_1 = function (i) {
|
|
15092
|
-
queue[i].status = 2 /* COMPLETED */;
|
|
15092
|
+
queue[i].status = 2 /* TransactionStatus.COMPLETED */;
|
|
15093
15093
|
events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, queue[i].currentWriteId));
|
|
15094
15094
|
if (queue[i].onComplete) {
|
|
15095
15095
|
// We never unset the output snapshot, and given that this
|
|
@@ -15117,18 +15117,18 @@ function repoSendTransactionQueue(repo, path, queue) {
|
|
|
15117
15117
|
// transactions are no longer sent. Update their status appropriately.
|
|
15118
15118
|
if (status === 'datastale') {
|
|
15119
15119
|
for (var i = 0; i < queue.length; i++) {
|
|
15120
|
-
if (queue[i].status === 3 /* SENT_NEEDS_ABORT */) {
|
|
15121
|
-
queue[i].status = 4 /* NEEDS_ABORT */;
|
|
15120
|
+
if (queue[i].status === 3 /* TransactionStatus.SENT_NEEDS_ABORT */) {
|
|
15121
|
+
queue[i].status = 4 /* TransactionStatus.NEEDS_ABORT */;
|
|
15122
15122
|
}
|
|
15123
15123
|
else {
|
|
15124
|
-
queue[i].status = 0 /* RUN */;
|
|
15124
|
+
queue[i].status = 0 /* TransactionStatus.RUN */;
|
|
15125
15125
|
}
|
|
15126
15126
|
}
|
|
15127
15127
|
}
|
|
15128
15128
|
else {
|
|
15129
15129
|
warn$1('transaction at ' + pathToSend.toString() + ' failed: ' + status);
|
|
15130
15130
|
for (var i = 0; i < queue.length; i++) {
|
|
15131
|
-
queue[i].status = 4 /* NEEDS_ABORT */;
|
|
15131
|
+
queue[i].status = 4 /* TransactionStatus.NEEDS_ABORT */;
|
|
15132
15132
|
queue[i].abortReason = status;
|
|
15133
15133
|
}
|
|
15134
15134
|
}
|
|
@@ -15172,7 +15172,7 @@ function repoRerunTransactionQueue(repo, queue, path) {
|
|
|
15172
15172
|
var events = [];
|
|
15173
15173
|
// Ignore all of the sets we're going to re-run.
|
|
15174
15174
|
var txnsToRerun = queue.filter(function (q) {
|
|
15175
|
-
return q.status === 0 /* RUN */;
|
|
15175
|
+
return q.status === 0 /* TransactionStatus.RUN */;
|
|
15176
15176
|
});
|
|
15177
15177
|
var setsToIgnore = txnsToRerun.map(function (q) {
|
|
15178
15178
|
return q.currentWriteId;
|
|
@@ -15182,12 +15182,12 @@ function repoRerunTransactionQueue(repo, queue, path) {
|
|
|
15182
15182
|
var relativePath = newRelativePath(path, transaction.path);
|
|
15183
15183
|
var abortTransaction = false, abortReason;
|
|
15184
15184
|
util.assert(relativePath !== null, 'rerunTransactionsUnderNode_: relativePath should not be null.');
|
|
15185
|
-
if (transaction.status === 4 /* NEEDS_ABORT */) {
|
|
15185
|
+
if (transaction.status === 4 /* TransactionStatus.NEEDS_ABORT */) {
|
|
15186
15186
|
abortTransaction = true;
|
|
15187
15187
|
abortReason = transaction.abortReason;
|
|
15188
15188
|
events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, transaction.currentWriteId, true));
|
|
15189
15189
|
}
|
|
15190
|
-
else if (transaction.status === 0 /* RUN */) {
|
|
15190
|
+
else if (transaction.status === 0 /* TransactionStatus.RUN */) {
|
|
15191
15191
|
if (transaction.retryCount >= MAX_TRANSACTION_RETRIES) {
|
|
15192
15192
|
abortTransaction = true;
|
|
15193
15193
|
abortReason = 'maxretry';
|
|
@@ -15230,7 +15230,7 @@ function repoRerunTransactionQueue(repo, queue, path) {
|
|
|
15230
15230
|
events = [];
|
|
15231
15231
|
if (abortTransaction) {
|
|
15232
15232
|
// Abort.
|
|
15233
|
-
queue[i].status = 2 /* COMPLETED */;
|
|
15233
|
+
queue[i].status = 2 /* TransactionStatus.COMPLETED */;
|
|
15234
15234
|
// Removing a listener can trigger pruning which can muck with
|
|
15235
15235
|
// mergedData/visibleData (as it prunes data). So defer the unwatcher
|
|
15236
15236
|
// until we're done.
|
|
@@ -15318,7 +15318,7 @@ function repoPruneCompletedTransactionsBelowNode(repo, node) {
|
|
|
15318
15318
|
if (queue) {
|
|
15319
15319
|
var to = 0;
|
|
15320
15320
|
for (var from = 0; from < queue.length; from++) {
|
|
15321
|
-
if (queue[from].status !== 2 /* COMPLETED */) {
|
|
15321
|
+
if (queue[from].status !== 2 /* TransactionStatus.COMPLETED */) {
|
|
15322
15322
|
queue[to] = queue[from];
|
|
15323
15323
|
to++;
|
|
15324
15324
|
}
|
|
@@ -15366,16 +15366,16 @@ function repoAbortTransactionsOnNode(repo, node) {
|
|
|
15366
15366
|
var events = [];
|
|
15367
15367
|
var lastSent = -1;
|
|
15368
15368
|
for (var i = 0; i < queue.length; i++) {
|
|
15369
|
-
if (queue[i].status === 3 /* SENT_NEEDS_ABORT */) ;
|
|
15370
|
-
else if (queue[i].status === 1 /* SENT */) {
|
|
15369
|
+
if (queue[i].status === 3 /* TransactionStatus.SENT_NEEDS_ABORT */) ;
|
|
15370
|
+
else if (queue[i].status === 1 /* TransactionStatus.SENT */) {
|
|
15371
15371
|
util.assert(lastSent === i - 1, 'All SENT items should be at beginning of queue.');
|
|
15372
15372
|
lastSent = i;
|
|
15373
15373
|
// Mark transaction for abort when it comes back.
|
|
15374
|
-
queue[i].status = 3 /* SENT_NEEDS_ABORT */;
|
|
15374
|
+
queue[i].status = 3 /* TransactionStatus.SENT_NEEDS_ABORT */;
|
|
15375
15375
|
queue[i].abortReason = 'set';
|
|
15376
15376
|
}
|
|
15377
15377
|
else {
|
|
15378
|
-
util.assert(queue[i].status === 0 /* RUN */, 'Unexpected transaction status in abort');
|
|
15378
|
+
util.assert(queue[i].status === 0 /* TransactionStatus.RUN */, 'Unexpected transaction status in abort');
|
|
15379
15379
|
// We can abort it immediately.
|
|
15380
15380
|
queue[i].unwatcher();
|
|
15381
15381
|
events = events.concat(syncTreeAckUserWrite(repo.serverSyncTree_, queue[i].currentWriteId, true));
|
|
@@ -15451,7 +15451,7 @@ function decodeQuery(queryString) {
|
|
|
15451
15451
|
results[decodeURIComponent(kv[0])] = decodeURIComponent(kv[1]);
|
|
15452
15452
|
}
|
|
15453
15453
|
else {
|
|
15454
|
-
warn$1("Invalid query segment '"
|
|
15454
|
+
warn$1("Invalid query segment '".concat(segment, "' in query '").concat(queryString, "'"));
|
|
15455
15455
|
}
|
|
15456
15456
|
}
|
|
15457
15457
|
}
|
|
@@ -17268,7 +17268,7 @@ var useRestClient = false;
|
|
|
17268
17268
|
* Update an existing `Repo` in place to point to a new host/port.
|
|
17269
17269
|
*/
|
|
17270
17270
|
function repoManagerApplyEmulatorSettings(repo, host, port, tokenProvider) {
|
|
17271
|
-
repo.repoInfo_ = new RepoInfo(host
|
|
17271
|
+
repo.repoInfo_ = new RepoInfo("".concat(host, ":").concat(port),
|
|
17272
17272
|
/* secure= */ false, repo.repoInfo_.namespace, repo.repoInfo_.webSocketOnly, repo.repoInfo_.nodeAdmin, repo.repoInfo_.persistenceKey, repo.repoInfo_.includeNamespaceInQueryParams);
|
|
17273
17273
|
if (tokenProvider) {
|
|
17274
17274
|
repo.authTokenProvider_ = tokenProvider;
|
|
@@ -17286,7 +17286,7 @@ function repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url, no
|
|
|
17286
17286
|
' a Project ID when calling firebase.initializeApp().');
|
|
17287
17287
|
}
|
|
17288
17288
|
log('Using default host for project ', app.options.projectId);
|
|
17289
|
-
dbUrl = app.options.projectId
|
|
17289
|
+
dbUrl = "".concat(app.options.projectId, "-default-rtdb.firebaseio.com");
|
|
17290
17290
|
}
|
|
17291
17291
|
var parsedUrl = parseRepoInfo(dbUrl, nodeAdmin);
|
|
17292
17292
|
var repoInfo = parsedUrl.repoInfo;
|
|
@@ -17297,7 +17297,7 @@ function repoManagerDatabaseFromApp(app, authProvider, appCheckProvider, url, no
|
|
|
17297
17297
|
}
|
|
17298
17298
|
if (dbEmulatorHost) {
|
|
17299
17299
|
isEmulator = true;
|
|
17300
|
-
dbUrl = "http://"
|
|
17300
|
+
dbUrl = "http://".concat(dbEmulatorHost, "?ns=").concat(repoInfo.namespace);
|
|
17301
17301
|
parsedUrl = parseRepoInfo(dbUrl, nodeAdmin);
|
|
17302
17302
|
repoInfo = parsedUrl.repoInfo;
|
|
17303
17303
|
}
|
|
@@ -17323,7 +17323,7 @@ function repoManagerDeleteRepo(repo, appName) {
|
|
|
17323
17323
|
var appRepos = repos[appName];
|
|
17324
17324
|
// This should never happen...
|
|
17325
17325
|
if (!appRepos || appRepos[repo.key] !== repo) {
|
|
17326
|
-
fatal("Database "
|
|
17326
|
+
fatal("Database ".concat(appName, "(").concat(repo.repoInfo_, ") has already been deleted."));
|
|
17327
17327
|
}
|
|
17328
17328
|
repoInterrupt(repo);
|
|
17329
17329
|
delete appRepos[repo.key];
|