@hms-networks/kolibri-js-client
Version:
Kolibri Consumer API client for building kolibri based applications
1,035 lines (1,012 loc) • 1.94 MB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["KolibriJsClient"] = factory();
else
root["KolibriJsClient"] = factory();
})(self, () => {
return /******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "./build/esm5/client.js":
/*!******************************!*\
!*** ./build/esm5/client.js ***!
\******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "KolibriClient": () => (/* binding */ KolibriClient)
/* harmony export */ });
/*
* Copyright 2021 HMS Industrial Networks AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http: //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var KolibriClient = /** @class */ (function () {
function KolibriClient(delegate) {
this.delegate = delegate;
}
KolibriClient.prototype.addOnUnsubscribedListener = function (listener) {
this.delegate.addOnUnsubscribed(listener);
};
KolibriClient.prototype.addOnWriteListener = function (listener) {
this.delegate.addOnWriteListener(listener);
};
KolibriClient.prototype.addOnUserNotifyListener = function (listener) {
this.delegate.addOnUserNotifyListener(listener);
};
KolibriClient.prototype.addOnErrorListener = function (listener) {
this.delegate.addOnErrorListener(listener);
};
KolibriClient.prototype.addOnReconnectListener = function (listener) {
this.delegate.addOnReconnectListener(listener);
};
KolibriClient.prototype.addOnDisconnectListener = function (listener) {
this.delegate.addOnDisconnectListener(listener);
};
KolibriClient.prototype.callKolibriRpc = function (server, method, params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.callKolibriRpc(server, method, params)];
});
});
};
KolibriClient.prototype.registerKolibriRpc = function (method, handler) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
this.delegate.registerKolibriRpc(method, handler);
return [2 /*return*/];
});
});
};
KolibriClient.prototype.connect = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.connect()];
});
});
};
KolibriClient.prototype.disconnect = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.disconnect()];
});
});
};
KolibriClient.prototype.login = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.login(params)];
});
});
};
KolibriClient.prototype.close = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.close()];
});
});
};
KolibriClient.prototype.write = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.write(params)];
});
});
};
KolibriClient.prototype.read = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.read(params)];
});
});
};
KolibriClient.prototype.subscribe = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.subscribe(params)];
});
});
};
KolibriClient.prototype.unsubscribe = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.unsubscribe(params)];
});
});
};
// -------------------------------------------------------------------------------------
// ----------------------- PERMISSION MANAGEMENT ---------------------------------------
// -------------------------------------------------------------------------------------
KolibriClient.prototype.permissionNodeSet = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionNodeSet(params)];
});
});
};
KolibriClient.prototype.permissionNodeList = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionNodeList(params)];
});
});
};
KolibriClient.prototype.permissionRpcAdd = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionRpcAdd(params)];
});
});
};
KolibriClient.prototype.permissionRpcRemove = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionRpcRemove(params)];
});
});
};
KolibriClient.prototype.permissionRpcList = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionRpcList(params)];
});
});
};
KolibriClient.prototype.permissionUserList = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.permissionUserList(params)];
});
});
};
// -------------------------------------------------------------------------------------
// ----------------------- PROJECT MANAGEMENT ------------------------------------------
// -------------------------------------------------------------------------------------
KolibriClient.prototype.projectBrowse = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectBrowse(params)];
});
});
};
KolibriClient.prototype.projectCreate = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectCreate(params)];
});
});
};
KolibriClient.prototype.projectDelete = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectDelete(params)];
});
});
};
KolibriClient.prototype.projectGetLiveUsage = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectGetLiveUsage(params)];
});
});
};
KolibriClient.prototype.projectGetProperties = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectGetProperties(params)];
});
});
};
KolibriClient.prototype.projectGetStatistics = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectGetStatistics(params)];
});
});
};
KolibriClient.prototype.projectModify = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectModify(params)];
});
});
};
KolibriClient.prototype.projectGetHistoryUsage = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.projectGetHistoryUsage(params)];
});
});
};
// -------------------------------------------------------------------------------------
// ----------------------- USER MANAGEMENT ---------------------------------------------
// -------------------------------------------------------------------------------------
KolibriClient.prototype.userSubscribe = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userSubscribe(params)];
});
});
};
KolibriClient.prototype.userUnsubscribe = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userUnsubscribe(params)];
});
});
};
KolibriClient.prototype.userBrowse = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userBrowse(params)];
});
});
};
KolibriClient.prototype.userCreate = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userCreate(params)];
});
});
};
KolibriClient.prototype.userModify = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userModify(params)];
});
});
};
KolibriClient.prototype.userGetSessions = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGetSessions(params)];
});
});
};
KolibriClient.prototype.userGetHistory = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGetHistory(params)];
});
});
};
KolibriClient.prototype.userDelete = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userDelete(params)];
});
});
};
KolibriClient.prototype.userGetProperties = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGetProperties(params)];
});
});
};
// -------------------------------------------------------------------------------------
// ----------------------- USERGROUP MANAGEMENT ----------------------------------------
// -------------------------------------------------------------------------------------
KolibriClient.prototype.userGroupBrowse = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupBrowse(params)];
});
});
};
KolibriClient.prototype.userGroupCreate = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupCreate(params)];
});
});
};
KolibriClient.prototype.userGroupModify = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupModify(params)];
});
});
};
KolibriClient.prototype.userGroupDelete = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupDelete(params)];
});
});
};
KolibriClient.prototype.userGroupGetProperties = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupGetProperties(params)];
});
});
};
KolibriClient.prototype.userGroupAddMember = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupAddMember(params)];
});
});
};
KolibriClient.prototype.userGroupRemoveMember = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupRemoveMember(params)];
});
});
};
KolibriClient.prototype.userGroupListMembers = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupListMembers(params)];
});
});
};
KolibriClient.prototype.userGroupIsMember = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.userGroupIsMember(params)];
});
});
};
// -------------------------------------------------------------------------------------
// ----------------------- NODE MANAGEMENT ----------------------------------------
// -------------------------------------------------------------------------------------
KolibriClient.prototype.nodeBrowse = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeBrowse(params)];
});
});
};
KolibriClient.prototype.nodeCreate = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeCreate(params)];
});
});
};
KolibriClient.prototype.nodeModify = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeModify(params)];
});
});
};
KolibriClient.prototype.nodeDelete = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeDelete(params)];
});
});
};
KolibriClient.prototype.nodeGetProperties = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeGetProperties(params)];
});
});
};
KolibriClient.prototype.nodeGetHistory = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeGetHistory(params)];
});
});
};
KolibriClient.prototype.nodeDeleteHistory = function (params) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.delegate.nodeDeleteHistory(params)];
});
});
};
return KolibriClient;
}());
//# sourceMappingURL=client.js.map
/***/ }),
/***/ "./build/esm5/client_factory.js":
/*!**************************************!*\
!*** ./build/esm5/client_factory.js ***!
\**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "KolibriClientFactory": () => (/* binding */ KolibriClientFactory)
/* harmony export */ });
/* harmony import */ var _client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./client */ "./build/esm5/client.js");
/* harmony import */ var _common_kolibri_rpc_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/kolibri_rpc_client */ "./build/esm5/common/kolibri_rpc_client.js");
/* harmony import */ var browser_or_node__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! browser-or-node */ "./node_modules/browser-or-node/lib/index.js");
/*
* Copyright 2021 HMS Industrial Networks AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http: //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var KolibriClientFactory = /** @class */ (function () {
function KolibriClientFactory() {
}
KolibriClientFactory.create = function (config) {
if (browser_or_node__WEBPACK_IMPORTED_MODULE_2__.isBrowser) {
delete config.proxy;
}
var delegate = new _common_kolibri_rpc_client__WEBPACK_IMPORTED_MODULE_1__.KolibriRpcClient(config);
return new _client__WEBPACK_IMPORTED_MODULE_0__.KolibriClient(delegate);
};
return KolibriClientFactory;
}());
//# sourceMappingURL=client_factory.js.map
/***/ }),
/***/ "./build/esm5/client_types.js":
/*!************************************!*\
!*** ./build/esm5/client_types.js ***!
\************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/*
* Copyright 2021 HMS Industrial Networks AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http: //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
//# sourceMappingURL=client_types.js.map
/***/ }),
/***/ "./build/esm5/common/base_client.js":
/*!******************************************!*\
!*** ./build/esm5/common/base_client.js ***!
\******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "BaseClient": () => (/* binding */ BaseClient)
/* harmony export */ });
/* harmony import */ var url_parse__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url-parse */ "./node_modules/url-parse/index.js");
/* harmony import */ var url_parse__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url_parse__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./subscription */ "./build/esm5/common/subscription.js");
/* harmony import */ var _kolibri_connection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./kolibri_connection */ "./build/esm5/common/kolibri_connection.js");
/* harmony import */ var _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @hms-networks/kolibri-js-core */ "./node_modules/@hms-networks/kolibri-js-core/build/bundles/kolibri-js-core.umd.min.js");
/* harmony import */ var _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var https_proxy_agent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! https-proxy-agent */ "?af08");
/* harmony import */ var https_proxy_agent__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(https_proxy_agent__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _error_kolibri_request_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../error/kolibri_request_error */ "./build/esm5/error/kolibri_request_error.js");
/*
* Copyright 2021 HMS Industrial Networks AB
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http: //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var __extends = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __assign = (undefined && undefined.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (undefined && undefined.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var BaseClient = /** @class */ (function () {
function BaseClient(config) {
var _this = this;
this.config = config;
this.rpcId = 1;
this.tId = 1;
this.subscription = new _subscription__WEBPACK_IMPORTED_MODULE_1__.Subscription();
this.writeTransactions = new Map();
this.consumerRpcs = new Map();
this.kolibriRpcs = new Map();
var urlStr = "".concat(config.host, "/").concat(config.project).concat(config.path);
var brokerUrl = new (url_parse__WEBPACK_IMPORTED_MODULE_0___default())(urlStr);
if (config.port) {
brokerUrl.set('port', config.port.toString());
}
var connectionOptions = {
url: brokerUrl,
protocol: this.getKolibriProtocol(),
tlsOptions: config.tls,
reconnectOptions: config.reconnect,
clientMessageListener: function (jsonrpc) { return _this.clientEventDispatcher(jsonrpc); }
};
if (config.proxy) {
var agent = new https_proxy_agent__WEBPACK_IMPORTED_MODULE_4__.HttpsProxyAgent(config.proxy);
connectionOptions.requestOptions = {
agent: agent
};
}
this.connection = new _kolibri_connection__WEBPACK_IMPORTED_MODULE_2__.KolibriConnection(connectionOptions);
this.initBuildInConsumerRpcs();
this.registerKolibriRpc(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriRequestMethods.GetRpcInfoRequestMethod, this.handleGetRpcInfoRequest.bind(this));
if (this.config.auth) {
this.loginParams = this.config.auth;
}
if (this.config.reconnect) {
this.initReconnectHandler();
}
this.connection.addOnDisconnectListener(function (event) { return __awaiter(_this, void 0, void 0, function () { var _a; return __generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, ((_a = this.onDisconnectListener) === null || _a === void 0 ? void 0 : _a.call(this, event))];
case 1:
_b.sent();
return [2 /*return*/];
}
}); }); });
}
BaseClient.prototype.getNextRpcId = function () {
return this.rpcId++;
};
BaseClient.prototype.getNextTid = function () {
return this.tId++;
};
BaseClient.prototype.storeLoginData = function (params, result) {
this.loginParams = params;
this.loginResult = result;
};
BaseClient.prototype.storeSubscribeData = function (params, result) {
this.subscribeParams = params;
this.subscribeResult = result;
};
BaseClient.prototype.clearSubscribeData = function () {
this.subscribeParams = undefined;
this.subscribeResult = undefined;
};
BaseClient.prototype.storeUserSubscribeData = function (params, result) {
this.userSubscribeParams = params;
this.userSubscribeResult = result;
};
BaseClient.prototype.clearUserSubscribeData = function () {
this.userSubscribeParams = undefined;
this.userSubscribeResult = undefined;
};
BaseClient.prototype.addOnUnsubscribed = function (listener) {
this.subscription.onUnsubscribed = listener;
};
BaseClient.prototype.addOnWriteListener = function (listener) {
this.subscription.onWrite = listener;
};
BaseClient.prototype.addOnUserNotifyListener = function (listener) {
this.subscription.onUserNotify = listener;
};
BaseClient.prototype.addOnErrorListener = function (listener) {
this.subscription.onError = listener;
};
BaseClient.prototype.addOnReconnectListener = function (listener) {
this.onReconnectListener = listener;
};
BaseClient.prototype.addOnDisconnectListener = function (listener) {
this.onDisconnectListener = listener;
};
BaseClient.prototype.connect = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, this.connection.connect()];
});
});
};
BaseClient.prototype.disconnect = function () {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
this.rpcId = 1;
this.tId = 1;
this.connection.disableReconnect();
return [4 /*yield*/, this.connection.close()];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
BaseClient.prototype.sendKolibriRpcRequest = function (request) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.connection.sendRequest(request)];
case 1:
response = _a.sent();
if ((0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isKolibriRpcSuccess)(response)) {
return [2 /*return*/, response];
}
else if ((0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isKolibriRpcError)(response)) {
throw (0,_error_kolibri_request_error__WEBPACK_IMPORTED_MODULE_5__.getRequestError)(response.error.code, response.error.data);
}
else {
throw new Error('Unknown response type!');
}
return [2 /*return*/];
}
});
});
};
BaseClient.prototype.sendKolibriRequest = function (kolibriRequest) {
return __awaiter(this, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.connection.sendRequest(kolibriRequest)];
case 1:
response = _a.sent();
if ((0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isJsonRpcSuccess)(response)) {
return [2 /*return*/, response];
}
else if ((0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isJsonRpcFailure)(response)) {
throw (0,_error_kolibri_request_error__WEBPACK_IMPORTED_MODULE_5__.getRequestError)(response.error.code, response.error.data);
}
else {
throw new Error('Unknown response type!');
}
return [2 /*return*/];
}
});
});
};
BaseClient.prototype.registerKolibriRpc = function (method, handler) {
this.kolibriRpcs.set(method, handler.bind(this));
};
BaseClient.prototype.handleGetRpcInfoRequest = function (_args) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/, Array.from(this.kolibriRpcs.keys())];
});
});
};
BaseClient.prototype.handleWriteRequest = function (request) {
var _a, _b, _c, _d;
return __awaiter(this, void 0, void 0, function () {
var writeRequest, combinedWriteResult, response, e_1;
var _this = this;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
writeRequest = request;
combinedWriteResult = writeRequest.params.nodes
.map(function (node) {
var nodeProperties = _this.subscription.fetchSubscribedNode(node.path);
if (!nodeProperties)
return;
return __assign(__assign({}, nodeProperties), node);
})
.filter(function (elem) { return elem !== undefined; });
_e.label = 1;
case 1:
_e.trys.push([1, 3, , 4]);
if (writeRequest.params.tid) {
this.writeTransactions.set(writeRequest.params.tid, combinedWriteResult);
}
else if (combinedWriteResult.length !== 0) {
(_b = (_a = this.subscription).onWrite) === null || _b === void 0 ? void 0 : _b.call(_a, combinedWriteResult);
}
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.DefaultKolibriResponse(writeRequest.id, 0);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 2:
_e.sent();
return [3 /*break*/, 4];
case 3:
e_1 = _e.sent();
(_d = (_c = this.subscription).onError) === null || _d === void 0 ? void 0 : _d.call(_c, e_1);
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
};
BaseClient.prototype.handleUnsubscribedRequest = function (request) {
var _a, _b, _c, _d;
return __awaiter(this, void 0, void 0, function () {
var unsubscribedRequest, response, e_2;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
unsubscribedRequest = request;
this.subscription.deleteSubscribedNodes(unsubscribedRequest.params);
_e.label = 1;
case 1:
_e.trys.push([1, 3, , 4]);
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.DefaultKolibriResponse(request.id, 0);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 2:
_e.sent();
(_b = (_a = this.subscription).onUnsubscribed) === null || _b === void 0 ? void 0 : _b.call(_a, unsubscribedRequest.params);
return [3 /*break*/, 4];
case 3:
e_2 = _e.sent();
(_d = (_c = this.subscription).onError) === null || _d === void 0 ? void 0 : _d.call(_c, e_2);
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
};
BaseClient.prototype.handleUserNotifyRequest = function (request) {
var _a, _b, _c, _d;
return __awaiter(this, void 0, void 0, function () {
var userNotifyRequest, response, e_3;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
userNotifyRequest = request;
_e.label = 1;
case 1:
_e.trys.push([1, 3, , 4]);
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.DefaultKolibriResponse(request.id, 0);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 2:
_e.sent();
(_b = (_a = this.subscription).onUserNotify) === null || _b === void 0 ? void 0 : _b.call(_a, userNotifyRequest.params);
return [3 /*break*/, 4];
case 3:
e_3 = _e.sent();
(_d = (_c = this.subscription).onError) === null || _d === void 0 ? void 0 : _d.call(_c, e_3);
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
}
});
});
};
BaseClient.prototype.handleCommitRequest = function (request) {
var _a, _b, _c, _d;
return __awaiter(this, void 0, void 0, function () {
var commitRequest, pendingWriteResult, response, e_4;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
commitRequest = request;
pendingWriteResult = this.writeTransactions
.get(commitRequest.params.tid);
if (pendingWriteResult) {
(_b = (_a = this.subscription).onWrite) === null || _b === void 0 ? void 0 : _b.call(_a, pendingWriteResult);
}
else {
// could not match commit with pending transaction. Respond to broker anyway.
}
_e.label = 1;
case 1:
_e.trys.push([1, 3, 4, 5]);
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.DefaultKolibriResponse(commitRequest.id, 0);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 2:
_e.sent();
return [3 /*break*/, 5];
case 3:
e_4 = _e.sent();
(_d = (_c = this.subscription).onError) === null || _d === void 0 ? void 0 : _d.call(_c, e_4);
return [3 /*break*/, 5];
case 4:
this.writeTransactions.delete(commitRequest.params.tid);
return [7 /*endfinally*/];
case 5: return [2 /*return*/];
}
});
});
};
BaseClient.prototype.clientEventDispatcher = function (jsonrpc) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!(0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isJsonRpcRequest)(jsonrpc)) {
return [2 /*return*/];
}
if (!(0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isKolibriRpcRequest)(jsonrpc)) return [3 /*break*/, 2];
return [4 /*yield*/, this.handleKolibriRpcRequest(jsonrpc)];
case 1:
_a.sent();
return [3 /*break*/, 4];
case 2: return [4 /*yield*/, this.handleConsumerRpcRequest(jsonrpc)];
case 3:
_a.sent();
_a.label = 4;
case 4: return [2 /*return*/];
}
});
});
};
BaseClient.prototype.handleConsumerRpcRequest = function (jsonrpc) {
return __awaiter(this, void 0, void 0, function () {
var handlerFunction, error, response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
handlerFunction = this.consumerRpcs.get(jsonrpc.method);
if (!!handlerFunction) return [3 /*break*/, 2];
error = (0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorFromCode)(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorcode.METHOD_NOT_FOUND.code);
error.data = jsonrpc.method;
response = new /** @class */ (function (_super) {
__extends(class_1, _super);
function class_1() {
return _super !== null && _super.apply(this, arguments) || this;
}
return class_1;
}(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriErrorResponse))(jsonrpc.id, error);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 1:
_a.sent();
return [2 /*return*/];
case 2: return [4 /*yield*/, handlerFunction(jsonrpc)];
case 3:
_a.sent();
return [2 /*return*/];
}
});
});
};
BaseClient.prototype.handleKolibriRpcRequest = function (jsonrpc) {
return __awaiter(this, void 0, void 0, function () {
var handlerFunction, response, error, result, e_5, ex_1, e_6;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
handlerFunction = this.kolibriRpcs.get(jsonrpc.method);
if (!!handlerFunction) return [3 /*break*/, 2];
error = (0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorFromCode)(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorcode.METHOD_NOT_FOUND.code);
error.data = jsonrpc.method;
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriRpcErrorResponse(jsonrpc.id, jsonrpc._server, error);
return [4 /*yield*/, this.connection.sendResponse(response)];
case 1:
_a.sent();
return [2 /*return*/];
case 2:
_a.trys.push([2, 4, , 9]);
return [4 /*yield*/, handlerFunction(jsonrpc.params)];
case 3:
result = _a.sent();
return [3 /*break*/, 9];
case 4:
e_5 = _a.sent();
_a.label = 5;
case 5:
_a.trys.push([5, 7, , 8]);
if ((0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.isJsonRpcError)(e_5)) {
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriRpcErrorResponse(jsonrpc.id, jsonrpc._server, e_5);
}
else {
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriRpcErrorResponse(jsonrpc.id, jsonrpc._server, (0,_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorFromCode)(_hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.errorcode.KOLIBRI_RPC_ERROR.code));
}
return [4 /*yield*/, this.connection.sendResponse(response)];
case 6:
_a.sent();
return [2 /*return*/];
case 7:
ex_1 = _a.sent();
throw new Error('Failed to send error!');
case 8: return [3 /*break*/, 9];
case 9:
_a.trys.push([9, 11, , 12]);
response = new _hms_networks_kolibri_js_core__WEBPACK_IMPORTED_MODULE_3__.KolibriRpcSuccessResponse(jsonrpc.id, jsonrpc._server, result);
return [4 /*yield*/, this.connection.sendResponse(response)];
case