UNPKG

typesense

Version:
942 lines (874 loc) 472 kB
var Typesense; /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./src/Typesense/Alias.ts": /*!********************************!*\ !*** ./src/Typesense/Alias.ts ***! \********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Alias) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _Aliases__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Aliases */ "./src/Typesense/Aliases.ts"); var Alias = /*#__PURE__*/function () { function Alias(name, apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Alias); this.name = name; this.apiCall = apiCall; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Alias, [{ key: "retrieve", value: function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.apiCall.get(this.endpointPath())); case 1: case "end": return _context.stop(); } }, _callee, this); })); function retrieve() { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "delete", value: function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function _delete() { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "endpointPath", value: function endpointPath() { return "".concat(_Aliases__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); } }]); return Alias; }(); /***/ }), /***/ "./src/Typesense/Aliases.ts": /*!**********************************!*\ !*** ./src/Typesense/Aliases.ts ***! \**********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Aliases) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); var RESOURCEPATH = "/aliases"; var Aliases = /*#__PURE__*/function () { function Aliases(apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, Aliases); this.apiCall = apiCall; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(Aliases, [{ key: "upsert", value: function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, mapping) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.apiCall.put(this.endpointPath(name), mapping)); case 1: case "end": return _context.stop(); } }, _callee, this); })); function upsert(_x, _x2) { return _upsert.apply(this, arguments); } return upsert; }() }, { key: "retrieve", value: function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.apiCall.get(RESOURCEPATH)); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function retrieve() { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "endpointPath", value: function endpointPath(aliasName) { return "".concat(Aliases.RESOURCEPATH, "/").concat(encodeURIComponent(aliasName)); } }], [{ key: "RESOURCEPATH", get: function get() { return RESOURCEPATH; } }]); return Aliases; }(); /***/ }), /***/ "./src/Typesense/Analytics.ts": /*!************************************!*\ !*** ./src/Typesense/Analytics.ts ***! \************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ Analytics) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "./node_modules/@babel/runtime/helpers/esm/defineProperty.js"); /* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); /* harmony import */ var _AnalyticsRule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRule */ "./src/Typesense/AnalyticsRule.ts"); /* harmony import */ var _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AnalyticsEvents */ "./src/Typesense/AnalyticsEvents.ts"); var RESOURCEPATH = "/analytics"; var Analytics = /*#__PURE__*/function () { function Analytics(apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_0__["default"])(this, Analytics); (0,_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_2__["default"])(this, "individualAnalyticsRules", {}); this.apiCall = apiCall; this.apiCall = apiCall; this._analyticsRules = new _AnalyticsRules__WEBPACK_IMPORTED_MODULE_3__["default"](this.apiCall); this._analyticsEvents = new _AnalyticsEvents__WEBPACK_IMPORTED_MODULE_5__["default"](this.apiCall); } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_1__["default"])(Analytics, [{ key: "rules", value: function rules(id) { if (id === undefined) { return this._analyticsRules; } else { if (this.individualAnalyticsRules[id] === undefined) { this.individualAnalyticsRules[id] = new _AnalyticsRule__WEBPACK_IMPORTED_MODULE_4__["default"](id, this.apiCall); } return this.individualAnalyticsRules[id]; } } }, { key: "events", value: function events() { return this._analyticsEvents; } }], [{ key: "RESOURCEPATH", get: function get() { return RESOURCEPATH; } }]); return Analytics; }(); /***/ }), /***/ "./src/Typesense/AnalyticsEvents.ts": /*!******************************************!*\ !*** ./src/Typesense/AnalyticsEvents.ts ***! \******************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsEvents) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); var RESOURCEPATH = "/analytics/events"; var AnalyticsEvents = /*#__PURE__*/function () { function AnalyticsEvents(apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsEvents); this.apiCall = apiCall; this.apiCall = apiCall; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsEvents, [{ key: "create", value: function () { var _create = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.apiCall.post(this.endpointPath(), params)); case 1: case "end": return _context.stop(); } }, _callee, this); })); function create(_x) { return _create.apply(this, arguments); } return create; }() }, { key: "endpointPath", value: function endpointPath(operation) { return "".concat(AnalyticsEvents.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); } }], [{ key: "RESOURCEPATH", get: function get() { return RESOURCEPATH; } }]); return AnalyticsEvents; }(); /***/ }), /***/ "./src/Typesense/AnalyticsRule.ts": /*!****************************************!*\ !*** ./src/Typesense/AnalyticsRule.ts ***! \****************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRule) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _AnalyticsRules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AnalyticsRules */ "./src/Typesense/AnalyticsRules.ts"); var AnalyticsRule = /*#__PURE__*/function () { function AnalyticsRule(name, apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsRule); this.name = name; this.apiCall = apiCall; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRule, [{ key: "retrieve", value: function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.apiCall.get(this.endpointPath())); case 1: case "end": return _context.stop(); } }, _callee, this); })); function retrieve() { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "delete", value: function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.apiCall.delete(this.endpointPath())); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function _delete() { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "endpointPath", value: function endpointPath() { return "".concat(_AnalyticsRules__WEBPACK_IMPORTED_MODULE_4__["default"].RESOURCEPATH, "/").concat(encodeURIComponent(this.name)); } }]); return AnalyticsRule; }(); /***/ }), /***/ "./src/Typesense/AnalyticsRules.ts": /*!*****************************************!*\ !*** ./src/Typesense/AnalyticsRules.ts ***! \*****************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ AnalyticsRules) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3__); var RESOURCEPATH = "/analytics/rules"; var AnalyticsRules = /*#__PURE__*/function () { function AnalyticsRules(apiCall) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_1__["default"])(this, AnalyticsRules); this.apiCall = apiCall; this.apiCall = apiCall; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_2__["default"])(AnalyticsRules, [{ key: "upsert", value: function () { var _upsert = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee(name, params) { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: return _context.abrupt("return", this.apiCall.put(this.endpointPath(name), params)); case 1: case "end": return _context.stop(); } }, _callee, this); })); function upsert(_x, _x2) { return _upsert.apply(this, arguments); } return upsert; }() }, { key: "retrieve", value: function () { var _retrieve = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_0__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().mark(function _callee2() { return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_3___default().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: return _context2.abrupt("return", this.apiCall.get(this.endpointPath())); case 1: case "end": return _context2.stop(); } }, _callee2, this); })); function retrieve() { return _retrieve.apply(this, arguments); } return retrieve; }() }, { key: "endpointPath", value: function endpointPath(operation) { return "".concat(AnalyticsRules.RESOURCEPATH).concat(operation === undefined ? "" : "/" + encodeURIComponent(operation)); } }], [{ key: "RESOURCEPATH", get: function get() { return RESOURCEPATH; } }]); return AnalyticsRules; }(); /***/ }), /***/ "./src/Typesense/ApiCall.ts": /*!**********************************!*\ !*** ./src/Typesense/ApiCall.ts ***! \**********************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (/* binding */ ApiCall) /* harmony export */ }); /* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/esm/typeof.js"); /* harmony import */ var _babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"); /* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ "./node_modules/@babel/runtime/helpers/esm/classCallCheck.js"); /* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ "./node_modules/@babel/runtime/helpers/esm/createClass.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"); /* harmony import */ var _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! axios */ "./node_modules/axios/lib/axios.js"); /* harmony import */ var http__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! http */ "?e89d"); /* harmony import */ var http__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(http__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var https__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! https */ "?77e4"); /* harmony import */ var https__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(https__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var _Errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Errors */ "./src/Typesense/Errors/index.ts"); /* harmony import */ var _Errors_TypesenseError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Errors/TypesenseError */ "./src/Typesense/Errors/TypesenseError.ts"); var APIKEYHEADERNAME = "X-TYPESENSE-API-KEY"; var HEALTHY = true; var UNHEALTHY = false; var isNodeJSEnvironment = typeof process !== "undefined" && process.versions != null && process.versions.node != null; var ApiCall = /*#__PURE__*/function () { function ApiCall(configuration) { (0,_babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_2__["default"])(this, ApiCall); this.configuration = configuration; this.apiKey = this.configuration.apiKey; this.nodes = this.configuration.nodes == null ? this.configuration.nodes : JSON.parse(JSON.stringify(this.configuration.nodes)); // Make a copy, since we'll be adding additional metadata to the nodes this.nearestNode = this.configuration.nearestNode == null ? this.configuration.nearestNode : JSON.parse(JSON.stringify(this.configuration.nearestNode)); this.connectionTimeoutSeconds = this.configuration.connectionTimeoutSeconds; this.healthcheckIntervalSeconds = this.configuration.healthcheckIntervalSeconds; this.numRetriesPerRequest = this.configuration.numRetries; this.retryIntervalSeconds = this.configuration.retryIntervalSeconds; this.sendApiKeyAsQueryParam = this.configuration.sendApiKeyAsQueryParam; this.additionalUserHeaders = this.configuration.additionalHeaders; this.logger = this.configuration.logger; this.initializeMetadataForNodes(); this.currentNodeIndex = -1; } (0,_babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_3__["default"])(ApiCall, [{ key: "get", value: function () { var _get = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee(endpoint) { var queryParameters, _ref, _ref$abortSignal, abortSignal, _ref$responseType, responseType, _args = arguments; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee$(_context) { while (1) switch (_context.prev = _context.next) { case 0: queryParameters = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; _ref = _args.length > 2 && _args[2] !== undefined ? _args[2] : {}, _ref$abortSignal = _ref.abortSignal, abortSignal = _ref$abortSignal === void 0 ? null : _ref$abortSignal, _ref$responseType = _ref.responseType, responseType = _ref$responseType === void 0 ? undefined : _ref$responseType; return _context.abrupt("return", this.performRequest("get", endpoint, { queryParameters: queryParameters, abortSignal: abortSignal, responseType: responseType })); case 3: case "end": return _context.stop(); } }, _callee, this); })); function get(_x) { return _get.apply(this, arguments); } return get; }() }, { key: "delete", value: function () { var _delete2 = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee2(endpoint) { var queryParameters, _args2 = arguments; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee2$(_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: queryParameters = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {}; return _context2.abrupt("return", this.performRequest("delete", endpoint, { queryParameters: queryParameters })); case 2: case "end": return _context2.stop(); } }, _callee2, this); })); function _delete(_x2) { return _delete2.apply(this, arguments); } return _delete; }() }, { key: "post", value: function () { var _post = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee3(endpoint) { var bodyParameters, queryParameters, additionalHeaders, _args3 = arguments; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee3$(_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: bodyParameters = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {}; queryParameters = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {}; additionalHeaders = _args3.length > 3 && _args3[3] !== undefined ? _args3[3] : {}; return _context3.abrupt("return", this.performRequest("post", endpoint, { queryParameters: queryParameters, bodyParameters: bodyParameters, additionalHeaders: additionalHeaders })); case 4: case "end": return _context3.stop(); } }, _callee3, this); })); function post(_x3) { return _post.apply(this, arguments); } return post; }() }, { key: "put", value: function () { var _put = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee4(endpoint) { var bodyParameters, queryParameters, _args4 = arguments; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee4$(_context4) { while (1) switch (_context4.prev = _context4.next) { case 0: bodyParameters = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {}; queryParameters = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : {}; return _context4.abrupt("return", this.performRequest("put", endpoint, { queryParameters: queryParameters, bodyParameters: bodyParameters })); case 3: case "end": return _context4.stop(); } }, _callee4, this); })); function put(_x4) { return _put.apply(this, arguments); } return put; }() }, { key: "patch", value: function () { var _patch = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee5(endpoint) { var bodyParameters, queryParameters, _args5 = arguments; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee5$(_context5) { while (1) switch (_context5.prev = _context5.next) { case 0: bodyParameters = _args5.length > 1 && _args5[1] !== undefined ? _args5[1] : {}; queryParameters = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : {}; return _context5.abrupt("return", this.performRequest("patch", endpoint, { queryParameters: queryParameters, bodyParameters: bodyParameters })); case 3: case "end": return _context5.stop(); } }, _callee5, this); })); function patch(_x5) { return _patch.apply(this, arguments); } return patch; }() }, { key: "getAdapter", value: function getAdapter() { if (!this.configuration.axiosAdapter) return undefined; if (typeof this.configuration.axiosAdapter === "function") return this.configuration.axiosAdapter; var isCloudflareWorkers = typeof navigator !== "undefined" && navigator.userAgent === "Cloudflare-Workers"; return isCloudflareWorkers ? axios__WEBPACK_IMPORTED_MODULE_9__["default"].getAdapter(this.configuration.axiosAdapter).bind(globalThis) : axios__WEBPACK_IMPORTED_MODULE_9__["default"].getAdapter(this.configuration.axiosAdapter); } }, { key: "performRequest", value: function () { var _performRequest = (0,_babel_runtime_helpers_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__["default"])( /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _callee6(requestType, endpoint, _ref2) { var _this = this; var _ref2$queryParameters, queryParameters, _ref2$bodyParameters, bodyParameters, _ref2$additionalHeade, additionalHeaders, _ref2$abortSignal, abortSignal, _ref2$responseType, responseType, _ref2$skipConnectionT, skipConnectionTimeout, _ref2$enableKeepAlive, enableKeepAlive, requestNumber, lastException, wasAborted, _loop, _ret, numTries; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _callee6$(_context7) { while (1) switch (_context7.prev = _context7.next) { case 0: _ref2$queryParameters = _ref2.queryParameters, queryParameters = _ref2$queryParameters === void 0 ? null : _ref2$queryParameters, _ref2$bodyParameters = _ref2.bodyParameters, bodyParameters = _ref2$bodyParameters === void 0 ? null : _ref2$bodyParameters, _ref2$additionalHeade = _ref2.additionalHeaders, additionalHeaders = _ref2$additionalHeade === void 0 ? {} : _ref2$additionalHeade, _ref2$abortSignal = _ref2.abortSignal, abortSignal = _ref2$abortSignal === void 0 ? null : _ref2$abortSignal, _ref2$responseType = _ref2.responseType, responseType = _ref2$responseType === void 0 ? undefined : _ref2$responseType, _ref2$skipConnectionT = _ref2.skipConnectionTimeout, skipConnectionTimeout = _ref2$skipConnectionT === void 0 ? false : _ref2$skipConnectionT, _ref2$enableKeepAlive = _ref2.enableKeepAlive, enableKeepAlive = _ref2$enableKeepAlive === void 0 ? undefined : _ref2$enableKeepAlive; this.configuration.validate(); requestNumber = Date.now(); wasAborted = false; this.logger.debug("Request #".concat(requestNumber, ": Performing ").concat(requestType.toUpperCase(), " request: ").concat(endpoint)); _loop = /*#__PURE__*/_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().mark(function _loop() { var node, abortListener, requestOptions, cancelToken, source, response, _response$data, _response$data2, _error$code, _error$response; return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_4___default().wrap(function _loop$(_context6) { while (1) switch (_context6.prev = _context6.next) { case 0: node = _this.getNextNode(requestNumber); _this.logger.debug("Request #".concat(requestNumber, ": Attempting ").concat(requestType.toUpperCase(), " request Try #").concat(numTries, " to Node ").concat(node.index)); if (!(abortSignal && abortSignal.aborted)) { _context6.next = 4; break; } return _context6.abrupt("return", { v: Promise.reject(new Error("Request aborted by caller.")) }); case 4: _context6.prev = 4; requestOptions = { adapter: _this.getAdapter(), method: requestType, url: _this.uriFor(endpoint, node), headers: Object.assign({}, _this.defaultHeaders(), additionalHeaders, _this.additionalUserHeaders), maxContentLength: Infinity, maxBodyLength: Infinity, responseType: responseType, validateStatus: function validateStatus(status) { /* Override default validateStatus, which only considers 2xx a success. In our case, if the server returns any HTTP code, we will handle it below. We do this to be able to raise custom errors based on response code. */ return status > 0; }, transformResponse: [function (data, headers) { var transformedData = data; if (headers !== undefined && typeof data === "string" && headers["content-type"] && headers["content-type"].startsWith("application/json")) { transformedData = JSON.parse(data); } return transformedData; }] }; if (skipConnectionTimeout !== true) { requestOptions.timeout = _this.connectionTimeoutSeconds * 1000; } if (queryParameters && Object.keys(queryParameters).length !== 0) { requestOptions.params = queryParameters; } if (_this.sendApiKeyAsQueryParam) { requestOptions.params = requestOptions.params || {}; requestOptions.params["x-typesense-api-key"] = _this.apiKey; } if (_this.configuration.httpAgent) { _this.logger.debug("Request #".concat(requestNumber, ": Using custom httpAgent")); requestOptions.httpAgent = _this.configuration.httpAgent; } else if (enableKeepAlive === true) { if (!isNodeJSEnvironment) { _this.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); } else { _this.logger.debug("Request #".concat(requestNumber, ": Enabling KeepAlive")); requestOptions.httpAgent = new http__WEBPACK_IMPORTED_MODULE_5__.Agent({ keepAlive: true }); } } if (_this.configuration.httpsAgent) { _this.logger.debug("Request #".concat(requestNumber, ": Using custom httpsAgent")); requestOptions.httpsAgent = _this.configuration.httpsAgent; } else if (enableKeepAlive === true) { if (!isNodeJSEnvironment) { _this.logger.warn("Request #".concat(requestNumber, ": Cannot use custom httpAgent in a browser environment to enable keepAlive")); } else { _this.logger.debug("Request #".concat(requestNumber, ": Enabling keepAlive")); requestOptions.httpsAgent = new https__WEBPACK_IMPORTED_MODULE_6__.Agent({ keepAlive: true }); } } if (_this.configuration.paramsSerializer) { _this.logger.debug("Request #".concat(requestNumber, ": Using custom paramsSerializer")); requestOptions.paramsSerializer = _this.configuration.paramsSerializer; } if (bodyParameters && (typeof bodyParameters === "string" && bodyParameters.length !== 0 || (0,_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__["default"])(bodyParameters) === "object" && Object.keys(bodyParameters).length !== 0)) { requestOptions.data = bodyParameters; } // Translate from user-provided AbortController to the Axios request cancel mechanism. if (abortSignal) { cancelToken = axios__WEBPACK_IMPORTED_MODULE_9__["default"].CancelToken; source = cancelToken.source(); abortListener = function abortListener() { wasAborted = true; source.cancel(); }; abortSignal.addEventListener("abort", abortListener); requestOptions.cancelToken = source.token; } _context6.next = 16; return (0,axios__WEBPACK_IMPORTED_MODULE_9__["default"])(requestOptions); case 16: response = _context6.sent; if (response.status >= 1 && response.status <= 499) { // Treat any status code > 0 and < 500 to be an indication that node is healthy // We exclude 0 since some clients return 0 when request fails _this.setNodeHealthcheck(node, HEALTHY); } _this.logger.debug("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " was made. Response Code was ").concat(response.status, ".")); if (!(response.status >= 200 && response.status < 300)) { _context6.next = 23; break; } return _context6.abrupt("return", { v: Promise.resolve(response.data) }); case 23: if (!(response.status < 500)) { _context6.next = 27; break; } return _context6.abrupt("return", { v: Promise.reject(_this.customErrorForResponse(response, (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.message, requestOptions.data)) }); case 27: throw _this.customErrorForResponse(response, (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.message, requestOptions.data); case 28: _context6.next = 40; break; case 30: _context6.prev = 30; _context6.t0 = _context6["catch"](4); // This block handles retries for HTTPStatus > 500 and network layer issues like connection timeouts if (!wasAborted) { _this.setNodeHealthcheck(node, UNHEALTHY); } lastException = _context6.t0; _this.logger.warn("Request #".concat(requestNumber, ": Request to Node ").concat(node.index, " failed due to \"").concat((_error$code = _context6.t0 === null || _context6.t0 === void 0 ? void 0 : _context6.t0.code) !== null && _error$code !== void 0 ? _error$code : "", " ").concat(_context6.t0.message).concat(_context6.t0.response == null ? "" : " - " + JSON.stringify((_error$response = _context6.t0.response) === null || _error$response === void 0 ? void 0 : _error$response.data), "\"")); // this.logger.debug(error.stack) if (!wasAborted) { _context6.next = 37; break; } return _context6.abrupt("return", { v: Promise.reject(new Error("Request aborted by caller.")) }); case 37: if (numTries < _this.numRetriesPerRequest + 1) { _this.logger.warn("Request #".concat(requestNumber, ": Sleeping for ").concat(_this.retryIntervalSeconds, "s and then retrying request...")); } _context6.next = 40; return _this.timer(_this.retryIntervalSeconds); case 40: _context6.prev = 40; if (abortSignal && abortListener) { abortSignal.removeEventListener("abort", abortListener); } return _context6.finish(40); case 43: case "end": return _context6.stop(); } }, _loop, null, [[4, 30, 40, 43]]); }); numTries = 1; case 7: if (!(numTries <= this.numRetriesPerRequest + 1)) { _context7.next = 15; break; } return _context7.delegateYield(_loop(), "t0", 9); case 9: _ret = _context7.t0; if (!_ret) { _context7.next = 12; break; } return _context7.abrupt("return", _ret.v); case 12: numTries++; _context7.next = 7; break; case 15: this.logger.debug("Request #".concat(requestNumber, ": No retries left. Raising last error")); return _context7.abrupt("return", Promise.reject(lastException)); case 17: case "end": return _context7.stop(); } }, _callee6, this); })); function performRequest(_x6, _x7, _x8) { return _performRequest.apply(this, arguments); } return performRequest; }() // Attempts to find the next healthy node, looping through the list of nodes once. // But if no healthy nodes are found, it will just return the next node, even if it's unhealthy // so we can try the request for good measure, in case that node has become healthy since }, { key: "getNextNode", value: function getNextNode() { var requestNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; // Check if nearestNode is set and is healthy, if so return it if (this.nearestNode != null) { this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: Node ").concat(this.nearestNode.index, " is ").concat(this.nearestNode.isHealthy === true ? "Healthy" : "Unhealthy")); if (this.nearestNode.isHealthy === true || this.nodeDueForHealthcheck(this.nearestNode, requestNumber)) { this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(this.nearestNode.index)); return this.nearestNode; } this.logger.debug("Request #".concat(requestNumber, ": Falling back to individual nodes")); } // Fallback to nodes as usual this.logger.debug("Request #".concat(requestNumber, ": Nodes Health: ").concat(this.nodes.map(function (node) { return "Node ".concat(node.index, " is ").concat(node.isHealthy === true ? "Healthy" : "Unhealthy"); }).join(" || "))); var candidateNode = this.nodes[0]; for (var i = 0; i <= this.nodes.length; i++) { this.currentNodeIndex = (this.currentNodeIndex + 1) % this.nodes.length; candidateNode = this.nodes[this.currentNodeIndex]; if (candidateNode.isHealthy === true || this.nodeDueForHealthcheck(candidateNode, requestNumber)) { this.logger.debug("Request #".concat(requestNumber, ": Updated current node to Node ").concat(candidateNode.index)); return candidateNode; } } // None of the nodes are marked healthy, but some of them could have become healthy since last health check. // So we will just return the next node. this.logger.debug("Request #".concat(requestNumber, ": No healthy nodes were found. Returning the next node, Node ").concat(candidateNode.index)); return candidateNode; } }, { key: "nodeDueForHealthcheck", value: function nodeDueForHealthcheck(node) { var requestNumber = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var isDueForHealthcheck = Date.now() - node.lastAccessTimestamp > this.healthcheckIntervalSeconds * 1000; if (isDueForHealthcheck) { this.logger.debug("Request #".concat(requestNumber, ": Node ").concat(node.index, " has exceeded healtcheckIntervalSeconds of ").concat(this.healthcheckIntervalSeconds, ". Adding it back into rotation.")); } return isDueForHealthcheck; } }, { key: "initializeMetadataForNodes", value: function initializeMetadataForNodes() { var _this2 = this; if (this.nearestNode != null) { this.nearestNode.index = "nearestNode"; this.setNodeHealthcheck(this.nearestNode, HEALTHY); } this.nodes.forEach(function (node, i) { node.index = i; _this2.setNodeHealthcheck(node, HEALTHY); }); } }, { key: "setNodeHealthcheck", value: function setNodeHealthcheck(node, isHealthy) { node.isHealthy = isHealthy; node.lastAccessTimestamp = Date.now(); } }, { key: "uriFor", value: function uriFor(endpoint, node) { if (node.url != null) { return "".concat(node.url).concat(endpoint); } return "".concat(node.protocol, "://").concat(node.host, ":").concat(node.port).concat(node.path).concat(endpoint); } }, { key: "defaultHeaders", value: function defaultHeaders() { var defaultHeaders = {}; if (!this.sendApiKeyAsQueryParam) { defaultHeaders[APIKEYHEADERNAME] = this.apiKey; } defaultHeaders["Content-Type"] = "application/json"; return defaultHeaders; } }, { key: "timer", value: function () {