UNPKG

@hms-networks/kolibri-js-client

Version:

Kolibri Consumer API client for building kolibri based applications

1,035 lines (1,012 loc) 1.94 MB
(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