UNPKG

kuzzle-sdk

Version:
2 lines 116 kB
/*! For license information please see kuzzle.js.LICENSE.txt */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.KuzzleSDK=t():e.KuzzleSDK=t()}(self,(()=>{return e={1045:function(e,t,r){"use strict";var s=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,i)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||s(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),(0,r(9336).isBrowser)(),i(r(6371),t),i(r(1076),t),i(r(147),t),i(r(4898),t),i(r(2140),t),i(r(3026),t),i(r(7885),t),i(r(896),t),i(r(1183),t),i(r(4545),t),i(r(6159),t),i(r(8496),t),i(r(8232),t),i(r(3044),t),i(r(9235),t),i(r(5914),t),i(r(8285),t),i(r(7146),t),i(r(8779),t),i(r(8429),t),i(r(1994),t)},6371:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Kuzzle=void 0;const s=r(4898),i=r(9235),n=r(4134),o=r(8285),l=r(7146),u=r(8779),c=r(8429),a=r(1994),d=r(7127),h=r(3318),p=r(8733),_=r(4957),m=r(8964),b=r(4219),f=r(8349);class v extends s.KuzzleEventEmitter{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(),this.authenticator=null,this.events=["callbackError","connected","discarded","disconnected","loginAttempt","beforeLogin","afterLogin","logoutAttempt","beforeLogout","afterLogout","networkError","offlineQueuePush","offlineQueuePop","queryError","reAuthenticated","reconnected","reconnectionError","tokenExpired"],null==e)throw new Error('"protocol" argument missing');for(let t=0,r=["addListener","isReady","query"];t<r.length;t++){const s=r[t];if("function"!=typeof e[s])throw new Error(`Protocol instance must implement a "${s}" method`)}if(this.protocol=e,this._protectedEvents={afterLogin:{},connected:{},disconnected:{},error:{},loginAttempt:{},reconnected:{},tokenExpired:{}},this.autoResubscribe="boolean"!=typeof t.autoResubscribe||t.autoResubscribe,this.eventTimeout="number"==typeof t.eventTimeout?t.eventTimeout:200,this.sdkVersion="7.15.0",this.sdkName=`js@${this.sdkVersion}`,this.volatile="object"==typeof t.volatile?t.volatile:{},this._cookieAuthentication="boolean"==typeof t.cookieAuth&&t.cookieAuth,this._cookieAuthentication){let e,t,r;this.protocol.enableCookieSupport(),this.protocol.addListener("websocketRenewalStart",(()=>{e=this.autoQueue,t=this.autoReplay,r=this.autoResubscribe,this.autoQueue=!0,this.autoReplay=!0,this.autoResubscribe=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this.autoQueue=e,this.autoReplay=t,this.autoResubscribe=r}))}if(this.deprecationHandler=new p.Deprecation("boolean"!=typeof t.deprecationWarning||t.deprecationWarning),this._cookieAuthentication&&"undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie authentication with cookieAuth option is not supported outside a browser");return this.useController(i.AuthController,"auth"),this.useController(n.BulkController,"bulk"),this.useController(o.CollectionController,"collection"),this.useController(l.DocumentController,"document"),this.useController(u.IndexController,"index"),this.useController(h.MemoryStorageController,"ms"),this.useController(c.RealtimeController,"realtime"),this.useController(d.SecurityController,"security"),this.useController(a.ServerController,"server"),this._offlineQueue=[],this._autoQueue="boolean"==typeof t.autoQueue&&t.autoQueue,this._autoReplay="boolean"==typeof t.autoReplay&&t.autoReplay,this._offlineQueueLoader="function"==typeof t.offlineQueueLoader?t.offlineQueueLoader:null,this._queueFilter="function"==typeof t.queueFilter?t.queueFilter:null,this._queueMaxSize="number"==typeof t.queueMaxSize?t.queueMaxSize:500,this._queueTTL="number"==typeof t.queueTTL?t.queueTTL:12e4,this._replayInterval="number"==typeof t.replayInterval?t.replayInterval:10,this._requestTimeout="number"==typeof t.requestTimeout?t.requestTimeout:-1,this._tokenExpiredInterval="number"==typeof t.tokenExpiredInterval?t.tokenExpiredInterval:1e3,"auto"===t.offlineMode&&(this._autoQueue=!0,this._autoReplay=!0),this._queuing=!1,this._lastTokenExpired=null,this._reconnectInProgress=!1,this._loggedIn=!1,this.on("afterLogin",(async e=>{if(e.success)this._loggedIn=!0;else try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),this.on("afterLogout",(e=>{e.success&&(this._loggedIn=!1)})),this.on("connected",(async()=>{try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),(0,m.proxify)(this,{exposeApi:!0,name:"kuzzle",seal:!0})}get authenticated(){return Boolean(this.auth.authenticationToken&&!this.auth.authenticationToken.expired)}get autoQueue(){return this._autoQueue}set autoQueue(e){this._checkPropertyType("_autoQueue","boolean",e),this._autoQueue=e}get autoReconnect(){return this.protocol.autoReconnect}set autoReconnect(e){this._checkPropertyType("autoReconnect","boolean",e),this.protocol.autoReconnect=e}get autoReplay(){return this._autoReplay}set autoReplay(e){this._checkPropertyType("_autoReplay","boolean",e),this._autoReplay=e}get cookieAuthentication(){return this._cookieAuthentication}get connected(){return this.protocol.connected}get host(){return this.protocol.host}get jwt(){return this.auth.authenticationToken?this.auth.authenticationToken.encodedJwt:null}set jwt(e){this.auth.authenticationToken=e,this._loggedIn=!!e}get offlineQueue(){return this._offlineQueue}get offlineQueueLoader(){return this._offlineQueueLoader}set offlineQueueLoader(e){this._checkPropertyType("_offlineQueueLoader","function",e),this._offlineQueueLoader=e}get port(){return this.protocol.port}get queueFilter(){return this._queueFilter}set queueFilter(e){this._checkPropertyType("_queueFilter","function",e),this._queueFilter=e}get queueMaxSize(){return this._queueMaxSize}set queueMaxSize(e){this._checkPropertyType("_queueMaxSize","number",e),this._queueMaxSize=e}get queueTTL(){return this._queueTTL}set queueTTL(e){this._checkPropertyType("_queueTTL","number",e),this._queueTTL=e}get reconnectionDelay(){return this.protocol.reconnectionDelay}get replayInterval(){return this._replayInterval}set replayInterval(e){this._checkPropertyType("_replayInterval","number",e),this._replayInterval=e}get requestTimeout(){return this._requestTimeout}set requestTimeout(e){this._checkPropertyType("_requestTimeout","number",e),this._requestTimeout=e}get sslConnection(){return this.protocol.sslConnection}get tokenExpiredInterval(){return this._tokenExpiredInterval}set tokenExpiredInterval(e){this._checkPropertyType("_tokenExpiredInterval","number",e),this._tokenExpiredInterval=e}emit(e){const t=Date.now(),r=this._protectedEvents[e];if(r){if(r.lastEmitted&&r.lastEmitted>t-this.eventTimeout)return!1;r.lastEmitted=t}for(var s=arguments.length,i=new Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];return this._superEmit(e,...i)}_superEmit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return super.emit(e,...r)}on(e,t){return super.on(e,t)}connect(){return this.protocol.isReady()?Promise.resolve():(this.autoQueue&&this.startQueuing(),this.protocol.addListener("queryError",(e=>{let{error:t,request:r}=e;this.emit("queryError",{error:t,request:r})})),this.protocol.addListener("tokenExpired",(()=>this.tokenExpired())),this.protocol.addListener("connect",(()=>{this.autoQueue&&this.stopQueuing(),this.autoReplay&&this.playQueue(),this.emit("connected")})),this.protocol.addListener("networkError",(e=>{this.autoQueue&&this.startQueuing(),this.emit("networkError",e)})),this.protocol.addListener("disconnect",(e=>{this.emit("disconnected",e)})),this.protocol.addListener("reconnect",this._reconnect.bind(this)),this.protocol.addListener("discarded",(e=>this.emit("discarded",e))),this.protocol.addListener("websocketRenewalStart",(()=>{this._reconnectInProgress=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this._reconnectInProgress=!1})),this.protocol.connect())}setAPIKey(e){if(null===e.match(/^kapikey-/))throw new Error("Invalid API key. Missing the `kapikey-` prefix.");this.jwt=e}async _reconnect(){if(!this._reconnectInProgress){if(this.autoQueue&&this.stopQueuing(),this._loggedIn&&!await this.tryReAuthenticate())return this._loggedIn=!1,void this.disconnect();this.autoReplay&&this.playQueue(),this.emit("reconnected")}}async tryReAuthenticate(){this._reconnectInProgress=!0;try{return!!await this.isAuthenticated()||(this.authenticator?(await this.authenticate(),!0):(this.emit("reconnectionError",{error:new Error('Could not re-authenticate: "authenticator" property is not set.')}),!1))}catch(e){return this.emit("reconnectionError",{error:new Error(`Failed to authenticate the SDK after reconnection: ${e}`)}),!1}finally{this._reconnectInProgress=!1}}async authenticate(){if("function"!=typeof this.authenticator)throw new Error('The "authenticator" property must be a function.');await this.authenticator();const e=await this.isAuthenticated();if(this._loggedIn=e,!e)throw new Error('The "authenticator" function failed to authenticate the SDK.')}async isAuthenticated(){const{valid:e,kuid:t}=await this.auth.checkToken();return e&&"-1"!==t}addListener(e,t){if(-1===this.events.indexOf(e))throw new Error(`[${e}] is not a known event. Known events: ${this.events.join(", ")}`);return this._superAddListener(e,t)}_superAddListener(e,t){return super.addListener(e,t)}flushQueue(){return this._offlineQueue=[],this}disconnect(){this._loggedIn=!1,this.protocol.close()}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!=typeof e||Array.isArray(e))throw new Error(`Kuzzle.query: Invalid request: ${JSON.stringify(e)}`);if("object"!=typeof t||Array.isArray(t))throw new Error(`Kuzzle.query: Invalid "options" argument: ${JSON.stringify(t)}`);const r=JSON.parse(JSON.stringify(e)),s=JSON.parse(JSON.stringify(t));r.requestId||(r.requestId=(0,_.uuidv4)());let i=!0;s&&!1===s.queuable&&(i=!1),this.queueFilter&&(i=i&&this.queueFilter(r));const n="number"==typeof s.timeout?s.timeout:this._requestTimeout;for(let e=0,t=Object.entries(s);e<t.length;e++){const[s,i]=t[e];["queuable","timeout"].includes(s)||(r[s]=i)}if(void 0===r.refresh&&void 0!==s.refresh&&(r.refresh=s.refresh),void 0===r.retryOnConflict&&void 0!==s.retryOnConflict&&(r.retryOnConflict=s.retryOnConflict),r.volatile){if("object"!=typeof r.volatile||Array.isArray(r.volatile))throw new Error(`Kuzzle.query: Invalid volatile argument received: ${JSON.stringify(r.volatile)}`)}else r.volatile=this.volatile;for(let e=0,t=Object.keys(this.volatile);e<t.length;e++){const s=t[e];void 0===r.volatile[s]&&(r.volatile[s]=this.volatile[s])}return r.volatile.sdkInstanceId=r.volatile.sdkInstanceId||this.protocol.id,r.volatile.sdkName=r.volatile.sdkName||this.sdkName,this.auth.authenticateRequest(r),this._queuing?i?(this._cleanQueue(),this.emit("offlineQueuePush",{request:r}),new Promise(((e,t)=>{this.offlineQueue.push({reject:t,request:r,resolve:e,timeout:n,ts:Date.now()})}))):(this.emit("discarded",{request:r}),Promise.reject(new Error(`Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: ${JSON.stringify(r)}`))):this._timeoutRequest(n,r,s).then((e=>((0,b.debug)("RESPONSE",e),this.deprecationHandler.logDeprecation(e))))}startQueuing(){return this._queuing=!0,this}stopQueuing(){return this._queuing=!1,this}playQueue(){return this.protocol.isReady()&&(this._cleanQueue(),this._dequeue()),this}async tokenExpired(){if(this._reconnectInProgress)return;if(this._loggedIn&&await this.tryReAuthenticate())return void this.emit("reAuthenticated");const e=Date.now();e-this._lastTokenExpired<this.tokenExpiredInterval||(this._lastTokenExpired=e,this.jwt=null,this.emit("tokenExpired"))}useController(e,t){if(!(t&&t.length>0))throw new Error("You must provide a valid accessor.");if(this.__proxy__?this.__proxy__.hasProp(t):this[t])throw new Error(`There is already a controller with the accessor '${t}'. Please use another one.`);const r=new e(this);if(!(r.name&&r.name.length>0))throw new Error("Controllers must have a name.");if(r.kuzzle!==this)throw new Error("You must pass the Kuzzle SDK instance to the parent constructor.");return this.__proxy__&&this.__proxy__.registerProp(t),this[t]=r,this}_checkPropertyType(e,t,r){if("array"===t?!Array.isArray(r):typeof r!==t)throw new Error(`Expected ${e} to be a ${t}, ${typeof r} received`)}_cleanQueue(){const e=Date.now();let t=-1;this.queueTTL>0&&(this.offlineQueue.forEach(((r,s)=>{r.ts<e-this.queueTTL&&(t=s)})),-1!==t&&this.offlineQueue.splice(0,t+1).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: queued time exceeded the queueTTL option value"))}))),this.queueMaxSize>0&&this.offlineQueue.length>this.queueMaxSize&&this.offlineQueue.splice(0,this.offlineQueue.length-this.queueMaxSize).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: too many queued requests (see the queueMaxSize option)"))}))}_dequeue(){const e={},t=()=>{this.offlineQueue.length>0&&(this.offlineQueue[0].request.jwt=this.jwt,this._timeoutRequest(this.offlineQueue[0].timeout,this.offlineQueue[0].request).then(this.offlineQueue[0].resolve).catch(this.offlineQueue[0].reject),this.emit("offlineQueuePop",this.offlineQueue.shift().request),setTimeout((()=>{t()}),Math.max(0,this.replayInterval)))};if(this.offlineQueueLoader){if("function"!=typeof this.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof this.offlineQueueLoader);return Promise.resolve().then((()=>this.offlineQueueLoader())).then((r=>{if(!Array.isArray(r))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof r);this._offlineQueue=r.concat(this.offlineQueue).filter((t=>{if(!t.request||void 0===t.request.requestId||!t.request.action||!t.request.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return!Object.prototype.hasOwnProperty.call(e,t.request.requestId)&&(e[t.request.requestId]=!0)})),t()}))}t()}_timeoutRequest(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,b.debug)("REQUEST",t),-1===e)return this.protocol.query(t,r);const s=new Promise(((r,s)=>{setTimeout((()=>{s(new f.RequestTimeoutError(t,e))}),e)}));return Promise.race([s,this.protocol.query(t,r)])}}t.Kuzzle=v},4528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleError=void 0;const s=r(4843);class i extends Error{constructor(e,t,r,i){super(e.message),this.status=e.status,this.id=e.id,this.code=e.code,this.props=e.props,i&&(this.controller=i.controller,this.collection=i.collection,this.action=i.action,this.index=i.index,this.volatile=i.volatile,this.requestId=i.requestId,this._id=i._id),e.errors&&(this.errors=e.errors,this.count=e.count),e.stack?(this.kuzzleStack=e.stack,this.stack=e.stack+"\n",this.stack+=" |\n",this.stack+=" |\n",this.stack+=` ${r}\n`,this.stack+=" |\n",this.stack+=" |\n"):this.stack=`KuzzleError: ${e.message}\n`,t&&(this.stack+=t.split("\n").map(s.hilightUserCode).slice(1).join("\n"))}}t.KuzzleError=i},8349:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTimeoutError=void 0;class r extends Error{constructor(e,t){super(`Request timed out after ${t} ms`),this.request=e,this.delay=t}}t.RequestTimeoutError=r},9235:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthController=void 0;const s=r(9665),i=r(5914),n=r(3987);class o extends i.BaseController{constructor(e){super(e,"auth"),this._authenticationToken=null,this.kuzzle.on("tokenExpired",(()=>{this._authenticationToken=null}))}get authenticationToken(){return this._authenticationToken}set authenticationToken(e){if(null==e)this._authenticationToken=null;else{if("string"!=typeof e)throw new Error(`Invalid token argument: ${e}`);this._authenticationToken=new s.Jwt(e)}}authenticateRequest(e){this.kuzzle.cookieAuthentication||this.authenticationToken&&("auth"!==e.controller||"checkToken"!==e.action&&"login"!==e.action)&&(e.jwt=this.authenticationToken.encodedJwt)}createApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:t._id,action:"createApiKey",body:{description:e},expiresIn:t.expiresIn,refresh:t.refresh};return this.query(r,t).then((e=>e.result))}checkRights(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"checkRights",body:e};return this.query(r,t).then((e=>e.result.allowed))}deleteApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteApiKey",refresh:t.refresh};return this.query(r,t).then((()=>null))}searchApiKeys(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t={action:"searchApiKeys",body:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},from:e.from,lang:e.lang,size:e.size};return this.query(t,e).then((e=>e.result))}checkToken(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!1;return void 0===e&&(r=this.kuzzle.cookieAuthentication,!r&&this.authenticationToken&&(e=this.authenticationToken.encodedJwt)),this.query({action:"checkToken",body:{token:e},cookieAuth:r},{queuable:!1,...t}).then((e=>e.result))}createMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"createMyCredentials",body:t,strategy:e},r).then((e=>e.result))}credentialsExist(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"credentialsExist",strategy:e},t).then((e=>e.result))}deleteMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"deleteMyCredentials",strategy:e},t).then((e=>e.result.acknowledged))}getCurrentUser(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getCurrentUser"},e).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}getMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"getMyCredentials",strategy:e},t).then((e=>e.result))}getMyRights(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getMyRights"},e).then((e=>e.result.hits))}getStrategies(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getStrategies"},e).then((e=>e.result))}login(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const n={action:"login",body:t,cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:r,strategy:e};return this.kuzzle.emit("beforeLogin"),this.query(n,{queuable:!1,timeout:-1,verb:"POST",...i}).then((e=>{if(this.kuzzle.cookieAuthentication){if(e.result.jwt){const e=new Error("Kuzzle support for cookie authentication is disabled or not supported");throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}return this.kuzzle.emit("loginAttempt",{success:!0}),void this.kuzzle.emit("afterLogin",{success:!0})}return this._authenticationToken=new s.Jwt(e.result.jwt),this.kuzzle.emit("loginAttempt",{success:!0}),this.kuzzle.emit("afterLogin",{success:!0}),e.result.jwt})).catch((e=>{throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}))}async logout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.kuzzle.emit("beforeLogout");try{await this.query({action:"logout",cookieAuth:this.kuzzle.cookieAuthentication},{queuable:!1,timeout:-1,...e}),this._authenticationToken=null,this.kuzzle.emit("logoutAttempt",{success:!0}),this.kuzzle.emit("afterLogout",{success:!0})}catch(e){throw this.kuzzle.emit("logoutAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogout",{error:e.message,success:!1}),e}}updateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"updateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}updateSelf(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateSelf",body:e},t).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}validateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"validateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}refreshToken(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={action:"refreshToken",cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:e.expiresIn};return this.query(t,e).then((e=>(this.kuzzle.cookieAuthentication||(this._authenticationToken=new s.Jwt(e.result.jwt)),e.result)))}}t.AuthController=o},5914:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseController=void 0,t.BaseController=class{constructor(e,t){Reflect.defineProperty(this,"_kuzzle",{value:e}),this._name=t}get kuzzle(){return this._kuzzle}get name(){return this._name}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.controller=e.controller||this.name,this._kuzzle.query(e,t)}}},4134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BulkController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"bulk")}deleteByQuery(e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s={action:"deleteByQuery",body:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},collection:t,index:e};return this.query(s,r).then((e=>e.result.deleted))}import(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"import",body:{bulkData:r},collection:t,index:e},s).then((e=>e.result))}updateByQuery(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={action:"updateByQuery",body:{changes:s,query:r},collection:t,index:e};return this.query(n,i).then((e=>e.result.updated))}write(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.query({_id:s,action:"write",body:r,collection:t,index:e,notify:i.notify},i).then((e=>e.result))}mWrite(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"mWrite",body:{documents:r},collection:t,index:e,notify:s.notify},s).then((e=>e.result))}}t.BulkController=i},8285:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionController=void 0;const s=r(1183),i=r(5914);class n extends i.BaseController{constructor(e){super(e,"collection")}create(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"create",body:r,collection:t,index:e};return this.query(i,s).then((()=>{}))}deleteSpecifications(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"deleteSpecifications",collection:t,index:e};return this.query(s,r).then((()=>{}))}exists(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"exists",collection:t,index:e},r).then((e=>e.result))}refresh(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"refresh",collection:t,index:e},r).then((()=>{}))}getMapping(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"getMapping",collection:t,includeKuzzleMeta:r.includeKuzzleMeta||!1,index:e};return this.query(s,r).then((e=>e.result))}getSpecifications(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"getSpecifications",collection:t,index:e},r).then((e=>e.result))}list(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"list",from:t.from,index:e,size:t.size||0};return this.query(r,t).then((e=>e.result))}searchSpecifications(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t={action:"searchSpecifications",body:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}};for(let r=0,s=["from","size","scroll"];r<s.length;r++){const i=s[r];t[i]=e[i]}return this.query(t,e).then((r=>new s.SpecificationsSearchResult(this.kuzzle,t,e,r.result)))}truncate(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"truncate",collection:t,index:e};return this.query(s,r).then((()=>{}))}update(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"update",body:r,collection:t,index:e},s).then((()=>{}))}updateMapping(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"updateMapping",body:r,collection:t,index:e},s).then((e=>e.result))}updateSpecifications(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"updateSpecifications",body:r,collection:t,index:e},s).then((e=>e.result))}validateSpecifications(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"validateSpecifications",body:r,collection:t,index:e},s).then((e=>e.result))}delete(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"delete",collection:t,index:e};return this.query(s,r).then((()=>{}))}}t.CollectionController=n},7146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentController=void 0;const s=r(5914),i=r(3026);class n extends s.BaseController{constructor(e){super(e,"document")}count(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"count",body:r,collection:t,index:e};return this.query(i,s).then((e=>e.result.count))}create(e,t,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const i={_id:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,action:"create",body:r,collection:t,index:e,silent:s.silent};return this.query(i,s).then((e=>e.result))}createOrReplace(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"createOrReplace",body:s,collection:t,index:e,silent:i.silent};return this.query(n,i).then((e=>e.result))}delete(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"delete",collection:t,index:e,silent:s.silent};return this.query(i,s).then((e=>e.result._id))}deleteByQuery(e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s={action:"deleteByQuery",body:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},collection:t,index:e,lang:r.lang,silent:r.silent};return this.query(s,r).then((e=>e.result.ids))}deleteFields(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"deleteFields",body:{fields:s},collection:t,index:e,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}exists(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"exists",collection:t,index:e};return this.query(i,s).then((e=>e.result))}get(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"get",collection:t,index:e};return this.query(i,s).then((e=>e.result))}mCreate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mCreate",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mCreateOrReplace(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mCreateOrReplace",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mDelete(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mDelete",body:{ids:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mGet(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mGet",body:{ids:r},collection:t,index:e};return this.query(i,s).then((e=>e.result))}mReplace(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mReplace",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mUpdate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mUpdate",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mUpsert(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mUpsert",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}replace(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"replace",body:s,collection:t,index:e,silent:i.silent};return this.query(n,i).then((e=>e.result))}search(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this._search(e,t,r,s).then((e=>{let{response:t,request:r,opts:s}=e;return new i.DocumentSearchResult(this.kuzzle,r,s,t.result)}))}_search(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"search",body:null,collection:t,index:e};"http"===this.kuzzle.protocol.name&&s.verb&&"get"===s.verb.toLowerCase()?i.searchBody=r:i.body=r;for(let e=0,t=["from","size","scroll","lang"];e<t.length;e++){const r=t[e];i[r]=s[r]}const n={verb:s.verb||"POST",...s};return this.query(i,n).then((e=>({opts:n,request:i,response:e})))}update(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"update",body:s,collection:t,index:e,retryOnConflict:i.retryOnConflict,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}updateByQuery(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={action:"updateByQuery",body:{changes:s,query:r},collection:t,index:e,lang:i.lang,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}upsert(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"upsert",body:{changes:s,default:i.default},collection:t,index:e,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}validate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"validate",body:r,collection:t,index:e},s).then((e=>e.result))}}t.DocumentController=n},8779:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndexController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"index")}create(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"create",index:e};return this.query(r,t).then((()=>{}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"delete",index:e};return this.query(r,t).then((()=>{}))}exists(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"exists",index:e},t).then((e=>e.result))}list(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"list"},e).then((e=>e.result.indexes))}mDelete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mDelete",body:{indexes:e}};return this.query(r,t).then((e=>e.result.deleted))}stats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"stats"},e).then((e=>e.result))}}t.IndexController=i},3318:(e,t,r)=>{const{BaseController:s}=r(5914),i={getter:!0,required:["_id"]},n={getter:!0,required:["_id","field"]},o={getter:!0,required:["keys"]},l={getter:!0,required:["_id","member"]},u={getter:!0,required:["_id","cursor"],opts:["match","count"],mapResults:E},c={getter:!0,required:["_id","start","stop"],opts:f,mapResults:T},a={getter:!0,required:["_id","min","max"],opts:f,mapResults:T},d={required:["_id"]},h={required:["_id","value"]},p={append:h,bitcount:{getter:!0,required:["_id"],opts:["start","end"]},bitop:{required:["_id","operation","keys"]},bitpos:{getter:!0,required:["_id","bit"],opts:["start","end"]},dbsize:{getter:!0},decr:d,decrby:h,del:{required:["keys"]},exists:o,expire:{required:["_id","seconds"],mapResults:Boolean},expireat:{required:["_id","timestamp"],mapResults:Boolean},flushdb:{mapResults:y},geoadd:{required:["_id","points"]},geodist:{getter:!0,required:["_id","member1","member2"],opts:["unit"],mapResults:parseFloat},geohash:{getter:!0,required:["_id","members"]},geopos:{getter:!0,required:["_id","members"],mapResults:function(e){return e.map((e=>e.map(parseFloat)))}},georadius:{getter:!0,required:["_id","lon","lat","distance","unit"],opts:b,mapResults:v},georadiusbymember:{getter:!0,required:["_id","member","distance","unit"],opts:b,mapResults:v},get:i,getbit:{getter:!0,required:["_id","offset"]},getrange:{getter:!0,required:["_id","start","end"]},getset:h,hdel:{required:["_id","fields"]},hexists:{getter:!0,required:["_id","field"],mapResults:Boolean},hget:n,hgetall:{getter:!0,required:["_id"]},hincrby:{required:["_id","field","value"]},hincrbyfloat:{required:["_id","field","value"],mapResults:parseFloat},hkeys:i,hlen:i,hmget:{getter:!0,required:["_id","fields"]},hmset:{required:["_id","entries"],mapResults:y},hscan:u,hset:{required:["_id","field","value"],mapResults:Boolean},hsetnx:{required:["_id","field","value"],mapResults:Boolean},hstrlen:n,hvals:i,incr:d,incrby:h,incrbyfloat:{required:["_id","value"],mapResults:parseFloat},keys:{getter:!0,required:["pattern"]},lindex:{getter:!0,required:["_id","idx"]},linsert:{required:["_id","position","pivot","value"]},llen:i,lpop:d,lpush:{required:["_id","values"]},lpushx:h,lrange:{getter:!0,required:["_id","start","stop"]},lrem:{required:["_id","count","value"]},lset:{required:["_id","index","value"],mapResults:y},ltrim:{required:["_id","start","stop"],mapResults:y},mexecute:{required:["actions"]},mget:o,mset:{required:["entries"],mapResults:y},msetnx:{required:["entries"],mapResults:Boolean},object:{getter:!0,required:["_id","subcommand"]},persist:{required:["_id"],mapResults:Boolean},pexpire:{required:["_id","milliseconds"],mapResults:Boolean},pexpireat:{required:["_id","timestamp"],mapResults:Boolean},pfadd:{required:["_id","elements"],mapResults:Boolean},pfcount:o,pfmerge:{required:["_id","sources"],mapResults:y},ping:{getter:!0},psetex:{required:["_id","value","milliseconds"],mapResults:y},pttl:i,randomkey:{getter:!0},rename:{required:["_id","newkey"],mapResults:y},renamenx:{required:["_id","newkey"],mapResults:Boolean},rpop:d,rpoplpush:{required:["source","destination"]},rpush:{required:["_id","values"]},rpushx:h,sadd:{required:["_id","members"]},scan:{getter:!0,required:["cursor"],opts:["match","count"],mapResults:E},scard:i,sdiff:{getter:!0,required:["_id","keys"]},sdiffstore:{required:["_id","keys","destination"]},set:{required:["_id","value"],opts:["ex","px","nx","xx"],mapResults:y},setex:{required:["_id","value","seconds"],mapResults:y},setnx:{required:["_id","value"],mapResults:Boolean},sinter:o,sinterstore:{required:["destination","keys"]},sismember:{getter:!0,required:["_id","member"],mapResults:Boolean},smembers:i,smove:{required:["_id","destination","member"],mapResults:Boolean},sort:{required:["_id"],opts:["alpha","by","direction","get","limit"]},spop:{required:["_id"],opts:["count"],mapResults:g},srandmember:{getter:!0,required:["_id"],opts:["count"],mapResults:g},srem:{required:["_id","members"]},sscan:u,strlen:i,sunion:o,sunionstore:{required:["destination","keys"]},time:{getter:!0,mapResults:function(e){return e.map((e=>parseInt(e)))}},touch:{required:["keys"]},ttl:i,type:i,zadd:{required:["_id","elements"],opts:["nx","xx","ch","incr"]},zcard:i,zcount:{getter:!0,required:["_id","min","max"]},zincrby:{required:["_id","member","value"]},zinterstore:{required:["_id","keys"],opts:["weights","aggregate"]},zlexcount:{getter:!0,required:["_id","min","max"]},zrange:c,zrangebylex:{getter:!0,required:["_id","min","max"],opts:["limit"]},zrevrangebylex:{getter:!0,required:["_id","min","max"],opts:["limit"]},zrangebyscore:a,zrank:l,zrem:{required:["_id","members"]},zremrangebylex:{required:["_id","min","max"]},zremrangebyrank:{required:["_id","start","stop"]},zremrangebyscore:{required:["_id","min","max"]},zrevrange:c,zrevrangebyscore:a,zrevrank:l,zscan:u,zscore:{getter:!0,required:["_id","member"],mapResults:parseFloat},zunionstore:{required:["_id","keys"],opts:["weights","aggregate"]}};class _ extends s{constructor(e){super(e,"ms")}}for(let e=0,t=Object.keys(p);e<t.length;e++){const r=t[e];_.prototype[r]=function(){const e=p[r],t={action:r},s={};e.getter||(t.body={});for(var i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];for(let s=0,i=e.required||[];s<i.length;s++){const o=i[s],l=n.shift();if(void 0===l)throw new Error(`ms.${r}: missing parameter ${o}`);m(t,e.getter,o,l)}if(n.length>1)throw new Error(`ms.${r}: too many parameters provided`);if(n.length){if("object"!=typeof n[0]||Array.isArray(n[0]))throw new Error(`ms.${r}: invalid optional paramater (expected an object`);if(Object.assign(s,n[0]),Array.isArray(e.opts))for(let r=0,i=e.opts;r<i.length;r++){const n=i[r];null!=s[n]&&m(t,e.getter,n,s[n])}}return"function"==typeof e.opts&&e.opts(t,s),this.query(t,s).then((t=>e.mapResults?e.mapResults(t.result):t.result))}}function m(e,t,r,s){t||"_id"===r?e[r]=s:e.body[r]=s}function b(e,t){const r=[];Object.keys(t).filter((function(e){return t[e]&&-1!==["withcoord","withdist","count","sort"].indexOf(e)})).forEach((function(e){"withcoord"===e||"withdist"===e?r.push(e):"count"!==e&&"sort"!==e||("count"===e&&r.push("count"),r.push(t[e]))})),r.length>0&&(e.options=r)}function f(e,t){e.options=["withscores"],t.limit&&(e.limit=t.limit)}function v(e){return Array.isArray(e[0])?e.map((function(e){const t={name:e.shift()};for(let r=0;r<e.length;r++){const s=e[r];Array.isArray(s)?t.coordinates=s.map(parseFloat):t.distance=parseFloat(s)}return t})):e.map((function(e){return{name:e}}))}function g(e){return Array.isArray(e)?e:[e]}function y(){}function T(e){const t=[];for(let r=0;r<e.length;r+=2)t.push({member:e[r],score:parseFloat(e[r+1])});return t}function E(e){return{cursor:e[0],values:e[1]}}e.exports={MemoryStorageController:_}},8429:function(e,t,r){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeController=t.UserOption=t.ScopeOption=void 0;const i=r(5914),n=s(r(8100));var o,l;(l=t.ScopeOption||(t.ScopeOption={})).all="all",l.in="in",l.out="out",l.none="none",(o=t.UserOption||(t.UserOption={})).all="all",o.in="in",o.out="out",o.none="none";class u extends i.BaseController{constructor(e){super(e,"realtime"),this._subscriptions=new Map,this._subscriptionsOff=new Map,this.kuzzle.on("tokenExpired",(()=>this.removeSubscriptions())),this.kuzzle.on("disconnected",(()=>this.saveSubscriptions())),this.kuzzle.on("networkError",(()=>this.saveSubscriptions())),this.kuzzle.on("reconnected",(()=>this.resubscribe())),this.kuzzle.on("reAuthenticated",(()=>{this.saveSubscriptions(),this.resubscribe()}))}count(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"count",body:{roomId:e}},t).then((e=>e.result.count))}publish(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:s._id,action:"publish",body:r,collection:t,index:e};return this.query(i,s).then((e=>e.result.published))}subscribe(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const o=new n.default(this,e,t,r,s,i);return o.subscribe().then((()=>(this._subscriptions.has(o.id)||this._subscriptions.set(o.id,[]),this._subscriptions.get(o.id).push(o),o.id)))}unsubscribe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"unsubscribe",body:{roomId:e}};return this.query(r,t).then((()=>{const t=this._subscriptions.get(e);if(t){for(let e=0;e<t.length;e++)t[e].removeListeners();this._subscriptions.delete(e)}}))}saveSubscriptions(){this._subscriptions.forEach(((e,t)=>{for(let r=0;r<e.length;r++){const s=e[r];s.removeListeners(),s.autoResubscribe&&(this._subscriptionsOff.has(t)||this._subscriptionsOff.set(t,[]),this._subscriptionsOff.get(t).push(s))}this._subscriptions.delete(t)}))}resubscribe(){this._subscriptionsOff.forEach(((e,t)=>{for(let r=0;r<e.length;r++){const s=e[r];this._subscriptions.has(t)||this._subscriptions.set(t,[]),this._subscriptions.get(t).push(s),s.subscribe().catch((()=>this.kuzzle.emit("discarded",{request:s.request})))}this._subscriptionsOff.delete(t)}))}removeSubscriptions(){this._subscriptions.forEach((e=>{for(let t=0;t<e.length;t++)e[t].removeListeners()})),this._subscriptions=new Map,this._subscriptionsOff=new Map}}t.RealtimeController=u},7127:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SecurityController=void 0;const s=r(5914),i=r(3955),n=r(896),o=r(4103),l=r(7885),u=r(3987),c=r(4545);class a extends s.BaseController{constructor(e){super(e,"security")}createApiKey(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:r._id,action:"createApiKey",body:{description:t},expiresIn:r.expiresIn,refresh:r.refresh,userId:e};return this.query(s,r).then((e=>e.result))}checkRights(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"checkRights",body:t,userId:e};return this.query(s,r).then((e=>e.result.allowed))}deleteApiKey(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:t,action:"deleteApiKey",refresh:r.refresh,userId:e};return this.query(s,r)}searchApiKeys(e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r={action:"searchApiKeys",body:arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},from:t.from,lang:t.lang,size:t.size,userId:e};return this.query(r,t).then((e=>e.result))}createCredentials(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({_id:t,action:"createCredentials",body:r,strategy:e},s).then((e=>e.result))}createFirstAdmin(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createFirstAdmin",body:t,reset:r.reset};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}createOrReplaceProfile(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createOrReplaceProfile",body:t};return this.query(s,r).then((e=>new o.Profile(this.kuzzle,e.result._id,e.result._source)))}createOrReplaceRole(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createOrReplaceRole",body:t,force:!!r.force||null};return this.query(s,r).then((e=>new i.Role(this.kuzzle,e.result._id,e.result._source.controllers)))}createProfile(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createProfile",body:t};return this.query(s,r).then((e=>new o.Profile(this.kuzzle,e.result._id,e.result._source)))}createRestrictedUser(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};e.content||(e.content={});const s={_id:t,action:"createRestrictedUser",body:e};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}createRole(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createRole",body:t,force:!!r.force||null};return this.query(s,r).then((e=>new i.Role(this.kuzzle,e.result._id,e.result._source.controllers)))}createUser(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"createUser",body:t};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}deleteCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:t,action:"deleteCredentials",strategy:e};return this.query(s,r).then((e=>e.result))}deleteProfile(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteProfile"};return this.query(r,t).then((e=>e.result))}deleteRole(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteRole"};return this.query(r,t).then((e=>e.result))}deleteUser(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteUser"};return this.query(r,t).then((e=>e.result))}getAllCredentialFields(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getAllCredentialFields"},e).then((e=>e.result))}getCredentialFields(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"getCredentialFields",strategy:e},t).then((e=>e.result))}getCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({_id:t,action:"getCredentials",strategy:e},r).then((e=>e.result))}getCredentialsById(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({_id:t,action:"getCredentialsById",strategy:e},r).then((e=>e.result))}getProfile(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getProfile"},t).then((e=>new o.Profile(this.kuzzle,e.result._id,e.result._source)))}getProfileMapping(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getProfileMapping"},e).then((e=>e.result))}getProfileRights(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getProfileRights"},t).then((e=>e.result.hits))}getRole(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getRole"},t).then((e=>new i.Role(this.kuzzle,e.result._id,e.result._source.controllers)))}getRoleMapping(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getRoleMapping"},e).then((e=>e.result))}getUser(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getUser"},t).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}getUserMapping(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getUserMapping"},e).then((e=>e.result))}getUserRights(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getUserRights"},t).then((e=>e.result.hits))}getUserStrategies(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({_id:e,action:"getUserStrategies"},t).then((e=>e.result.strategies))}hasCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({_id:t,action:"hasCredentials",strategy:e},r).then((e=>e.result))}mDeleteProfiles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mDeleteProfiles",body:{ids:e}};return this.query(r,t).then((e=>e.result))}mDeleteRoles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mDeleteRoles",body:{ids:e}};return this.query(r,t).then((e=>e.result))}mDeleteUsers(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mDeleteUsers",body:{ids:e}};return this.query(r,t).then((e=>e.result))}mGetProfiles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"mGetProfiles",body:{ids:e}},t).then((e=>e.result.hits.map((e=>new o.Profile(this.kuzzle,e._id,e._source)))))}mGetUsers(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mGetUsers",body:{ids:e}};return this.query(r,t).then((e=>e.result.hits.map((e=>new u.User(this.kuzzle,e._id,e._source)))))}mGetRoles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"mGetRoles",body:{ids:e}},t).then((e=>e.result.hits.map((e=>new i.Role(this.kuzzle,e._id,e._source.controllers)))))}refresh(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"refresh",collection:e},t)}replaceUser(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"replaceUser",body:t};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}searchProfiles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchProfiles",body:e};for(let e=0,s=Object.entries(t);e<s.length;e++){const[t,i]=s[e];r[t]=i}return this.query(r,t).then((e=>new l.ProfileSearchResult(this.kuzzle,r,t,e.result)))}searchRoles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchRoles",body:e};for(let e=0,s=Object.entries(t);e<s.length;e++){const[t,i]=s[e];r[t]=i}return this.query(r,t).then((e=>new n.RoleSearchResult(this.kuzzle,r,t,e.result)))}searchUsers(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchUsers",body:e};for(let e=0,s=["from","size","scroll","lang"];e<s.length;e++){const i=s[e];r[i]=t[i]}return this.query(r,t).then((e=>new c.UserSearchResult(this.kuzzle,r,t,e.result)))}updateCredentials(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({_id:t,action:"updateCredentials",body:r,strategy:e},s).then((e=>e.result))}updateProfile(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateProfile",body:t};return this.query(s,r).then((e=>new o.Profile(this.kuzzle,e.result._