kuzzle-sdk 7.10.5 → 7.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/kuzzle.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see kuzzle.js.LICENSE.txt */
2
- !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","logoutAttempt","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={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.10.5",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("loginAttempt",(async e=>{if(e.success)this._loggedIn=!0;else try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),this.on("logoutAttempt",(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)}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())}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._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){const i={action:"login",body:t,cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:r,strategy:e};return this.query(i,{queuable:!1,timeout:-1,verb:"POST"}).then((e=>{if(!this.kuzzle.cookieAuthentication)return this._authenticationToken=new s.Jwt(e.result.jwt),this.kuzzle.emit("loginAttempt",{success:!0}),e.result.jwt;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}),e}this.kuzzle.emit("loginAttempt",{success:!0})})).catch((e=>{throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),e}))}logout(){return this.query({action:"logout",cookieAuth:this.kuzzle.cookieAuthentication},{queuable:!1,timeout:-1}).then((()=>{this._authenticationToken=null,this.kuzzle.emit("logoutAttempt",{success:!0})}))}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(5914),i=r(1183);class n extends s.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 i.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]&&void 0!==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,r){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){return this.query({action:"refresh",collection:e})}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._id,e.result._source)))}updateProfileMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateProfileMapping",body:e},t).then((e=>e.result))}updateRole(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateRole",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)))}updateRoleMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateRoleMapping",body:e},t).then((e=>e.result))}updateUser(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateUser",body:t};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}updateUserMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateUserMapping",body:e},t).then((e=>e.result))}validateCredentials(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({_id:t,action:"validateCredentials",body:r,strategy:e},s).then((e=>e.result))}}t.SecurityController=a},1994:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServerController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"server")}adminExists(e){return this.query({action:"adminExists"},e).then((e=>e.result.exists))}capabilities(e){return this.query({action:"capabilities"},e).then((e=>e.result))}getAllStats(e){return this.query({action:"getAllStats"},e).then((e=>e.result))}getConfig(e){return this.query({action:"getConfig"},e).then((e=>e.result))}getLastStats(e){return this.query({action:"getLastStats"},e).then((e=>e.result))}getStats(e,t,r){return this.query({action:"getStats",startTime:e,stopTime:t},r).then((e=>e.result))}info(e){return this.query({action:"info"},e).then((e=>e.result))}now(e){return this.query({action:"now"},e).then((e=>e.result.now))}}t.ServerController=i},6847:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InstrumentablePromise=void 0,t.InstrumentablePromise=class{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}},9665:e=>{"use strict";e.exports={Jwt:class{constructor(e){this._encodedJwt=e,this._userId=null,this._expiresAt=null,this._decode()}get encodedJwt(){return this._encodedJwt}get userId(){return this._userId}get expiresAt(){return this._expiresAt}get expired(){return Math.round(Date.now()/1e3)>this.expiresAt}_decode(){const e=this._encodedJwt.split(".")[1];if(!e)throw new Error("Invalid JWT format");let t;try{t=JSON.parse((e=>{const t=e.replace(/=+$/,"");let r="";if(t.length%4==1)throw new Error("Malformed base64 string.");for(let e,s=0,i=0,n=0;e=t.charAt(n++);~e&&(i=s%4?64*i+e:e,s++%4)?r+=String.fromCharCode(255&i>>(-2*s&6)):0)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e);return r})(e))}catch(e){throw new Error("Invalid JSON payload for JWT")}this._userId=t._id,this._expiresAt=t.exp}}}},4898:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleEventEmitter=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.fn=e,this.once=t}}class s{constructor(){this._events=new Map}_exists(e,t){return Boolean(e.find((e=>e.fn===t)))}listeners(e){return this._events.has(e)?this._events.get(e).map((e=>e.fn)):[]}addListener(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!t)return this;const i=typeof t;if("function"!==i)throw new Error(`Invalid listener type: expected a function, got a ${i}`);return this._events.has(e)||this._events.set(e,[]),this._exists(this._events.get(e),t)||this._events.get(e).push(new r(t,s)),this}on(e,t){return this.addListener(e,t)}prependListener(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!t)return this;if(this._events.has(e)||this._events.set(e,[]),!this._exists(this._events.get(e),t)){const i=[new r(t,s)].concat(this._events.get(e));this._events.set(e,i)}return this}addOnceListener(e,t){return this.addListener(e,t,!0)}once(e,t){return this.addOnceListener(e,t)}prependOnceListener(e,t){return this.prependListener(e,t,!0)}removeListener(e,t){const r=this._events.get(e);if(!r||!r.length)return this;const s=r.findIndex((e=>e.fn===t));return-1!==s&&r.splice(s,1),0===r.length&&this._events.delete(e),this}removeAllListeners(e){return e?this._events.delete(e):this._events=new Map,this}emit(e){const t=this._events.get(e);if(void 0===t)return!1;const r=[];for(var s=arguments.length,i=new Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];for(let e=0;e<t.length;e++){const s=t[e];s.fn(...i),s.once&&r.push(s.fn)}for(let t=0;t<r.length;t++){const s=r[t];this.removeListener(e,s)}return!0}eventNames(){return Array.from(this._events.keys())}listenerCount(e){return this._events.has(e)&&this._events.get(e).length||0}}t.KuzzleEventEmitter=s,e.exports={KuzzleEventEmitter:s}},6159:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Observer=void 0;const s=r(8496),i=r(1742);class n extends Set{constructor(e,t){super(),this.roomId=null,this.index=e,this.collection=t}get ids(){return Array.from(this.values())}get filters(){return{ids:{values:Array.from(this.values())}}}}function o(e,t,r){return`${e}:${t}:${r}`}function l(e,t){return`${e}:${t}`}t.Observer=class{constructor(e,t){this.documentsByCollection=new Map,this.documents=new Map,this.options={pullingDelay:5e3},Reflect.defineProperty(this,"sdk",{value:e}),this.options={...this.options,...t},this.mode="http"===this.sdk.protocol.name?"pulling":"realtime"}stop(e,t,r){return e&&t&&r?this.disposeDocuments(e,t,r):e&&t?this.disposeCollection(e,t):e?Promise.reject(new Error('Missing "collection" argument"')):this.disposeAll()}disposeDocuments(e,t,r){const s=this.documentsByCollection.get(l(e,t));for(let i=0;i<r.length;i++){const n=r[i];this.documents.delete(o(e,t,n._id)),s.delete(n._id)}return 0===s.size&&this.documentsByCollection.delete(l(e,t)),this.watchCollection(e,t)}disposeCollection(e,t){const r=this.documentsByCollection.get(l(e,t));for(let s=0,i=r.ids;s<i.length;s++){const r=i[s];this.documents.delete(o(e,t,r))}return this.documentsByCollection.delete(l(e,t)),"realtime"===this.mode?this.sdk.realtime.unsubscribe(r.roomId):(this.clearPullingTimer(),Promise.resolve())}disposeAll(){const e=[];for(let t=0,r=this.documentsByCollection.values();t<r.length;t++){const s=r[t];s.roomId&&e.push(this.sdk.realtime.unsubscribe(s.roomId))}return"pulling"===this.mode&&e.push(this.clearPullingTimer()),this.documentsByCollection.clear(),this.documents.clear(),Promise.all(e).then((()=>{}))}get(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.sdk.document.get(e,t,r,s).then((r=>this.observe(e,t,r)))}mGet(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i=[];let n;return this.sdk.document.mGet(e,t,r,s).then((r=>{let{successes:s,errors:o}=r;n=o;for(let r=0;r<s.length;r++){const n=s[r];i.push(this.addDocument(e,t,n))}return this.watchCollection(e,t)})).then((()=>({errors:n,successes:i})))}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.sdk.document._search(e,t,r,s).then((e=>{let{response:t,request:r,opts:s}=e;return new i.RealtimeDocumentSearchResult(this.sdk,r,s,t.result,this).start()}))}observe(e,t,r){const s=this.addDocument(e,t,r);return this.watchCollection(e,t).then((()=>s))}addDocument(e,t,r){const i=new s.RealtimeDocument(r),u=l(e,t);return this.documentsByCollection.has(u)||this.documentsByCollection.set(u,new n(e,t)),this.documentsByCollection.get(u).add(r._id),this.documents.set(o(e,t,r._id),i),i}watchCollection(e,t){return"realtime"===this.mode?this.resubscribe(e,t):(this.restartPulling(),Promise.resolve())}restartPulling(){this.clearPullingTimer(),0!==this.documentsByCollection.size&&(this.pullingTimer=setInterval(this.pullingHandler.bind(this),this.options.pullingDelay))}pullingHandler(){const e=[];for(let t=0,r=this.documentsByCollection.values();t<r.length;t++){const s=r[t],i=this.sdk.document.mGet(s.index,s.collection,s.ids).then((e=>{let{successes:t,errors:r}=e;for(let e=0;e<t.length;e++){const r=t[e],i=o(s.index,s.collection,r._id),n=this.documents.get(i);Object.assign(n._source,r._source)}for(let e=0;e<r.length;e++){const t=r[e],i=o(s.index,s.collection,t);this.documents.get(i).deleted=!0,this.documents.delete(i),s.delete(t),0===s.size&&this.documentsByCollection.delete(l(s.index,s.collection))}})).catch((()=>{}));e.push(i)}return Promise.all(e).then((()=>{}))}clearPullingTimer(){this.pullingTimer&&clearInterval(this.pullingTimer)}resubscribe(e,t){const r=this.documentsByCollection.get(l(e,t));return r?0===r.size?r.roomId?this.sdk.realtime.unsubscribe(r.roomId):Promise.resolve():this.sdk.realtime.subscribe(e,t,r.filters,this.notificationHandler.bind(this)).then((e=>{const t=r.roomId;if(r.roomId=e,t)return this.sdk.realtime.unsubscribe(t)})):Promise.resolve()}notificationHandler(e){const{index:t,collection:r,result:s}=e,i=o(t,r,s._id),n=this.documents.get(i);if("delete"!==e.event)return"write"===e.event&&Object.assign(n._source,s._source),Promise.resolve();n.deleted=!0,this.documents.delete(o(t,r,n._id));const u=this.documentsByCollection.get(l(t,r));return u.delete(s._id),0===u.size&&this.documentsByCollection.delete(l(t,r)),this.resubscribe(t,r)}}},8496:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeDocument=void 0,t.RealtimeDocument=class{constructor(e){let{_id:t,_source:r}=e;this._id=t,this._source=r,this.deleted=!1}}},8100:e=>{"use strict";e.exports=class{constructor(e,t,r,s,i){let n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};Reflect.defineProperty(this,"_kuzzle",{value:e.kuzzle}),this.controller=e,this.index=t,this.collection=r,this.callback=i,this.options=n,this.id=null,this.channel=null,this.request={action:"subscribe",body:s,collection:r,controller:"realtime",index:t,scope:this.options.scope,state:this.options.state,users:this.options.users,volatile:this.options.volatile},this.autoResubscribe="boolean"==typeof n.autoResubscribe?n.autoResubscribe:this.kuzzle.autoResubscribe,this.subscribeToSelf="boolean"!=typeof n.subscribeToSelf||n.subscribeToSelf,this._channelListener=this._channelListener.bind(this)}get kuzzle(){return this._kuzzle}subscribe(){return this.kuzzle.query(this.request,this.options).then((e=>(this.id=e.result.roomId,this.channel=e.result.channel,this.kuzzle.protocol.on(this.channel,this._channelListener),e)))}removeListeners(){this.channel&&this.kuzzle.protocol.removeListener(this.channel,this._channelListener)}_channelListener(e){if("TokenExpired"===e.type)return this.kuzzle.tokenExpired();const t=e.volatile&&e.volatile.sdkInstanceId===this.kuzzle.protocol.id;if(this.subscribeToSelf||!t)try{const t=this.callback(e);null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch&&t.catch((t=>{this.kuzzle.emit("callbackError",{error:t,notification:e})}))}catch(t){this.kuzzle.emit("callbackError",{error:t,notification:e})}}}},362:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchBuffer=void 0;const s=r(6847);t.BatchBuffer=class{constructor(){this.indexes=new Map}add(e,t,r,i,n){this.indexes.has(e)||this.indexes.set(e,new Map),this.indexes.get(e).has(t)||this.indexes.get(e).set(t,{documents:[],options:n,promise:new s.InstrumentablePromise});const o=this.indexes.get(e).get(t),l=o.documents.length;return o.options={...o.options,...n},o.documents.push({_id:i,body:r}),{idx:l,promise:o.promise}}}},8232:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchController=void 0;const s=r(7146),i=r(9493),n=r(6250),o=r(4528);class l extends s.DocumentController{constructor(e){let{interval:t=10,maxWriteBufferSize:r=200,maxReadBufferSize:s=200}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e),this.writer=this.createWriter(e,{interval:t,maxReadBufferSize:s,maxWriteBufferSize:r}),this.writer.begin()}async dispose(){await this.writer.dispose()}async create(e,t,r,s,i){const{idx:o,promise:l}=this.writer.addCreate(e,t,r,s,i),{successes:u,errors:c}=await l.promise;if(c.length>0){const s=c.find((e=>{const t=(0,n.omit)(e.document._source,["_kuzzle_info"]),s=r;return JSON.stringify(t)===JSON.stringify(s)}));if(s)throw new Error(`Cannot create document in "${e}":"${t}" : ${s.reason}`)}return u[o]}async replace(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addReplace(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{_id:t}=e;return t===r}));if(c)throw new Error(`Cannot replace document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async createOrReplace(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addCreateOrReplace(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{document:t}=e;return t._id===r}));if(c)throw new Error(`Cannot create or replace document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async update(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addUpdate(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{_id:t}=e;return t===r}));if(c)throw new Error(`Cannot update document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async get(e,t,r){const{promise:s}=this.writer.addGet(e,t,void 0,r),{successes:i}=await s.promise,n=i.find((e=>{let{_id:t}=e;return t===r}));if(!n)throw new o.KuzzleError({id:"services.storage.not_found",message:`Document "${e}":"${t}":"${r}" not found`});return n}async exists(e,t,r){const{idx:s,promise:i}=this.writer.addExists(e,t,void 0,r);return(await i.promise)[s]}async delete(e,t,r){const{idx:s,promise:i}=this.writer.addDelete(e,t,void 0,r),{successes:n,errors:o}=await i.promise,l=o.find((e=>{let{_id:t}=e;return t===r}));if(l)throw new Error(`Cannot delete document "${e}":"${t}":"${r}" : ${l.reason}`);return n[s]}createWriter(e,t){return new i.BatchWriter(e,t)}}t.BatchController=l},9493:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchWriter=void 0;const s=r(362);t.BatchWriter=class{constructor(e){let{interval:t=10,maxWriteBufferSize:r=200,maxReadBufferSize:i=200}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffers={create:new s.BatchBuffer,createOrReplace:new s.BatchBuffer,delete:new s.BatchBuffer,exists:new s.BatchBuffer,get:new s.BatchBuffer,replace:new s.BatchBuffer,update:new s.BatchBuffer},this.sdk=e,this.interval=t,this.maxWriteBufferSize=r,this.maxReadBufferSize=i}get addCreate(){return this.buffers.create.add.bind(this.buffers.create)}get addUpdate(){return this.buffers.update.add.bind(this.buffers.update)}get addGet(){return this.buffers.get.add.bind(this.buffers.get)}get addExists(){return this.buffers.exists.add.bind(this.buffers.exists)}get addDelete(){return this.buffers.delete.add.bind(this.buffers.delete)}get addReplace(){return this.buffers.replace.add.bind(this.buffers.replace)}get addCreateOrReplace(){return this.buffers.createOrReplace.add.bind(this.buffers.createOrReplace)}async execute(){const e={};for(let t=0,r=Object.entries(this.buffers);t<r.length;t++){const[s,i]=r[t];e[s]=i}this.prepareRound(),await Promise.all([this.sendCreateBuffer(e.create),this.sendUpdateBuffer(e.update),this.sendCreateOrReplaceBuffer(e.createOrReplace),this.sendDeleteBuffer(e.delete),this.sendExistsBuffer(e.exists),this.sendGetBuffer(e.get),this.sendReplaceBuffer(e.replace)])}begin(){this.prepareRound(),this.timer=setInterval((async()=>{await this.execute()}),this.interval)}async dispose(){await this.execute(),clearInterval(this.timer),this.timer=null}prepareRound(){for(let e=0,t=Object.keys(this.buffers);e<t.length;e++){const r=t[e];this.buffers[r]=new s.BatchBuffer}}async sendWriteBuffer(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=[];for(let i=0,n=t.indexes.entries();i<n.length;i++){const[t,o]=n[i];for(let i=0,n=o.entries();i<n.length;i++){const[o,{promise:l,documents:u}]=n[i];0!==u.length?s.push(this.sdk.document[e](t,o,u,{...r}).then(l.resolve).catch(l.reject)):l.resolve()}}await Promise.all(s)}sendCreateBuffer(e,t){return this.sendWriteBuffer("mCreate",e,t)}sendUpdateBuffer(e,t){return this.sendWriteBuffer("mUpdate",e,t)}sendReplaceBuffer(e,t){return this.sendWriteBuffer("mReplace",e,t)}sendCreateOrReplaceBuffer(e,t){return this.sendWriteBuffer("mCreateOrReplace",e,t)}async sendGetBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mGet(e,i,l).then(n.resolve).catch(n.reject))}}await Promise.all(t)}async sendExistsBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mGet(e,i,l).then((e=>{let{successes:t}=e;const r=t.map((e=>{let{_id:t}=e;return t})),s=new Array(l.length);for(let e=0;e<s.length;e++)s[e]=r.includes(l[e]);n.resolve(s)})).catch(n.reject))}}await Promise.all(t)}async sendDeleteBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mDelete(e,i,l).then(n.resolve).catch(n.reject))}}await Promise.all(t)}}},3026:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._searchAction="search",this._scrollAction="scroll"}}t.DocumentSearchResult=i,e.exports={DocumentSearchResult:i}},7885:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileSearchResult=void 0;const s=r(4103),i=r(2140);class n extends i.SearchResultBase{constructor(e,t,r,i){super(e,t,r,i),this._searchAction="searchProfiles",this._scrollAction="scrollProfiles",this.hits=i.hits.map((e=>new s.Profile(this._kuzzle,e._id,e._source)))}next(){return super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new s.Profile(e._kuzzle,t._id,t._source))),e):null))}}t.ProfileSearchResult=n},1742:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeDocumentSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s,i){super(e,t,r,s),this._searchAction="search",this._scrollAction="scroll",Reflect.defineProperty(this,"observer",{value:i})}start(){const{index:e,collection:t}=this._request,r=[];for(let s=0,i=this.hits;s<i.length;s++){const n=i[s];r.push(this.observer.addDocument(e,t,n))}return this.hits=r,this.observer.watchCollection(e,t).then((()=>this))}next(){return super.next()}_buildNextSearchResult(e){const t=new i(this._kuzzle,this._request,this._options,e,this.observer);return t.fetched+=this.fetched,t.start()}}t.RealtimeDocumentSearchResult=i},896:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RoleSearchResult=void 0;const s=r(3955),i=r(2140);class n extends i.SearchResultBase{constructor(e,t,r,i){super(e,t,r,i),this._searchAction="searchRoles",this._scrollAction=null,this.hits=this._result.hits.map((e=>new s.Role(this._kuzzle,e._id,e._source.controllers)))}next(){return this._request.scroll||this._request.sort?Promise.reject(new Error("only from/size params are allowed for role search")):super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new s.Role(e._kuzzle,t._id,t._source.controllers))),e):null))}}t.RoleSearchResult=n},2140:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultBase=void 0,t.SearchResultBase=class{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),Reflect.defineProperty(this,"_request",{value:t}),Reflect.defineProperty(this,"_options",{value:r}),Reflect.defineProperty(this,"_result",{value:s}),Reflect.defineProperty(this,"_controller",{value:t.controller,writable:!0}),Reflect.defineProperty(this,"_searchAction",{value:"search",writable:!0}),Reflect.defineProperty(this,"_scrollAction",{value:"scroll",writable:!0}),this.aggregations=s.aggregations,this.hits=s.hits||[],this.fetched=this.hits.length,this.total=s.total||0,this.suggest=s.suggest}next(){if(this.fetched>=this.total)return Promise.resolve(null);if(this._request.scroll)return this._kuzzle.query({action:this._scrollAction,controller:this._request.controller,scroll:this._request.scroll,scrollId:this._result.scrollId}).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)}));if(this._request.size&&this._request.body.sort){const e={...this._request,action:this._searchAction},t=this._result.hits[this._result.hits.length-1];if(!t)return Promise.reject(new Error('Unable to retrieve all results from search: the sort combination must identify one item only. Add document "_id" to the sort.'));let r;if(e.body.search_after=[],r="string"==typeof this._request.body.sort?[this._request.body.sort]:Array.isArray(this._request.body.sort)?this._request.body.sort:Object.keys(this._request.body.sort),0===r.length)return Promise.reject(new Error("Unable to retrieve next results from search: sort param is empty"));for(let s=0,i=r;s<i.length;s++){const r=i[s],n="string"==typeof r?r:Object.keys(r)[0],o="_id"===n?t._id:this._get(t._source,n.split("."));e.body.search_after.push(o)}return this._kuzzle.query(e,this._options).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)}))}return this._request.size?this._request.from>=this._result.total?Promise.resolve(null):this._kuzzle.query({...this._request,action:this._searchAction,from:this.fetched}).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)})):Promise.reject(new Error("Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params"))}_get(e,t){if(!e)return e;if(1===t.length)return e[t[0]];const r=t.shift();return this._get(e[r],t)}_buildNextSearchResult(e){const t=new(0,this.constructor)(this._kuzzle,this._request,this._options,e);return t.fetched+=this.fetched,t}}},1183:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpecificationsSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._controller="collection",this._searchAction="searchSpecifications",this._scrollAction="scrollSpecifications"}}t.SpecificationsSearchResult=i},4545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserSearchResult=void 0;const s=r(2140),i=r(3987);class n extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._searchAction="searchUsers",this._scrollAction="scrollUsers",this.hits=this._result.hits.map((e=>new i.User(this._kuzzle,e._id,e._source)))}next(){return super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new i.User(e._kuzzle,t._id,t._source))),e):null))}}t.UserSearchResult=n},4103:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0,t.Profile=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),this._id=t,this.rateLimit=r&&r.rateLimit?r.rateLimit:0,this.policies=r&&r.policies?r.policies:[];for(let e=0,t=Object.entries(r);e<t.length;e++){const[r,s]=t[e];this[r]||(this[r]=s)}}get kuzzle(){return this._kuzzle}getRoles(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.policies&&0!==this.policies.length?this.kuzzle.security.mGetRoles(this.policies.map((e=>e.roleId)),e):Promise.resolve([])}serialize(){return{_id:this._id,policies:this.policies,rateLimit:this.rateLimit}}}},3955:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Role=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),this._id=t,this.controllers=r}get kuzzle(){return this._kuzzle}serialize(){return{_id:this._id,controllers:this.controllers}}}t.Role=r,e.exports={Role:r}},3987:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.User=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),Reflect.defineProperty(this,"content",{enumerable:!0,get(){return this._source}}),this._id=t,this._source=r}get kuzzle(){return this._kuzzle}get profileIds(){return this._source.profileIds||[]}getProfiles(){return this.profileIds&&0!==this.profileIds.length?this.kuzzle.security.mGetProfiles(this.profileIds):Promise.resolve([])}serialize(){return{_id:this._id,_source:this._source}}}t.User=r,e.exports={User:r}},4169:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NETWORK_ERROR=t.USER_CONNECTION_CLOSED=t.WEBSOCKET_AUTH_RENEWAL=void 0,t.WEBSOCKET_AUTH_RENEWAL="websocket/auth-renewal",t.USER_CONNECTION_CLOSED="user/connection-closed",t.NETWORK_ERROR="network/error"},6900: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});const i=s(r(1873)),n=r(147);class o extends n.KuzzleAbstractProtocol{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(e,t,"http"),"string"!=typeof e||""===e)throw new Error("host is required");this._routes={},this._timeout=t.timeout||0,this._customRoutes=t.customRoutes||{},this._defaultHeaders=t.headers||{};for(let e=0,t=Object.keys(this._customRoutes);e<t.length;e++){const r=t[e],s=this._customRoutes[r];for(let e=0,t=Object.keys(s);e<t.length;e++){const i=t[e],n=s[i];if(!("string"==typeof n.url&&n.url.length>0))throw new Error(`Incorrect URL for custom route ${r}:${i}.`);if(!("string"==typeof n.verb&&n.verb.length>0))throw new Error(`Incorrect VERB for custom route ${r}:${i}.`)}}}get http(){return this.routes}get routes(){return this._routes}get protocol(){return this.ssl?"https":"http"}get connected(){return!0}get timeout(){return this._timeout}set timeout(e){this._timeout=e}connect(){if("ready"===this.state)return Promise.resolve();const e={method:"GET",path:"/_publicApi",payload:{headers:this._defaultHeaders}};return this._sendHttpRequest(e).then((e=>{let{result:t,error:r}=e;if(r){if(401===r.status||403===r.status)return this._warn('"server:publicApi" route is restricted for anonymous user.'),this._warn("This route is used by the HTTP protocol to build API URLs."),this._warn("Fallback to static routes, some API routes may be unavailable as well as plugin custom routes"),void(this._routes=i.default);if(404===r.status){const e={method:"GET",path:"/",payload:{headers:this._defaultHeaders}};return this._sendHttpRequest(e).then((e=>{let{result:t,error:r}=e;if(r){if(401!==r.status&&403!==r.status)throw r;this._warn('"server:info" route is restricted for anonymous user.'),this._warn("This route is used by the HTTP protocol to build API URLs."),this._warn('If you want to expose your API routes without disclosing server information you can use "server:publicApi" (available in Kuzzle 1.9.0).'),this._warn("Fallback to static routes, some API routes may be unavailable as well as plugin custom routes"),this._routes=i.default}else this._routes=this._constructRoutes(t.serverInfo.kuzzle.api.routes)}))}throw r}this._routes=this._constructRoutes(t)})).then((()=>{this._routes=Object.assign(this._routes,this._customRoutes),this.clientConnected()})).catch((e=>{const t=new Error(`Unable to connect to kuzzle server at ${this.host}:${this.port}`);throw t.internal=e,this.emit("networkError",t),e}))}enableCookieSupport(){if("undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie cannot be enabled outside of a browser");super.enableCookieSupport()}formatRequest(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.routes[e.controller]&&this.routes[e.controller][e.action];if(!r){const t=new Error(`No URL found for "${e.controller}:${e.action}".`);return void this.emit(e.requestId,{error:t,status:400})}const s=t.verb||r.verb,n={action:void 0,body:void 0,collection:void 0,controller:void 0,headers:{"Content-Type":"application/json",...this._defaultHeaders},index:void 0,meta:void 0,requestId:void 0},o={};for(let t=0,r=Object.keys(e);t<r.length;t++){const l=r[t],u=e[l];"body"===l?"GET"===s?Object.assign(o,u):n.body=JSON.stringify(u):"jwt"===l?n.headers.authorization="Bearer "+u:"volatile"===l?n.headers["x-kuzzle-volatile"]=JSON.stringify(u):"index"===l||"collection"===l?i.default[e.controller]||"GET"!==s?n[l]=u:o[l]=u:Object.prototype.hasOwnProperty.call(n,l)?n[l]=u:null!=u&&(o[l]=u)}const l=/\/:([^/]*)/;let u=r.url,c=l.exec(u);for(;c;){if(!e[c[1]]){const e=new Error(`Missing URL param "${c[1]}" in "${c.input}"`);return void this.emit(n.requestId,{error:e,status:400})}u=u.replace(l,`/${encodeURIComponent(e[c[1]])}`),delete o[c[1]],c=l.exec(u)}const a=[];for(let e=0,t=Object.keys(o);e<t.length;e++){const r=t[e];let s=o[r];const i=encodeURIComponent(r);Array.isArray(s)?a.push(`${i}=${encodeURIComponent(s.join())}`):"boolean"==typeof s?!0===s&&a.push(i):(s="object"==typeof s?JSON.stringify(s):s,a.push(`${i}=${encodeURIComponent(s)}`))}return a.length>0&&(u+="?"+a.join("&")),{method:s,path:u,payload:n}}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.formatRequest(e,t);r&&this._sendHttpRequest(r).then((e=>this.emit(r.payload.requestId,e))).catch((e=>this.emit(r.payload.requestId,{error:e})))}_sendHttpRequest(e){let{method:t,path:s,payload:i}=e;if("undefined"==typeof XMLHttpRequest){const e=r(Object(function(){var e=new Error("Cannot find module 'min-req-promise'");throw e.code="MODULE_NOT_FOUND",e}()));"/"!==s[0]&&(s=`/${s}`);const n=`${this.protocol}://${this.host}:${this.port}${s}`,o=i&&i.headers||{};return o["Content-Length"]=Buffer.byteLength(i&&i.body||""),e.request(n,t,{body:i&&i.body,headers:o,timeout:this._timeout}).then((e=>{if(431===e.statusCode)throw new Error("Request query string is too large. Try to use the method with the POST verb instead.");return JSON.parse(e.body)}))}return new Promise(((e,r)=>{const n=new XMLHttpRequest,o=`${this.protocol}://${this.host}:${this.port}${s}`;n.timeout=this._timeout,n.onreadystatechange=()=>{4===n.readyState&&0===n.status&&r(new Error("Cannot connect to host. Is the host online?"))},n.open(t,o),n.withCredentials=this.cookieSupport;for(let e=0,t=Object.entries(i&&i.headers||{});e<t.length;e++){const[r,s]=t[e];n.setRequestHeader(r,s)}n.onload=()=>{try{const t=JSON.parse(n.responseText);e(t)}catch(e){r(e)}},n.send(i&&i.body)}))}_constructRoutes(e){const t=Object.keys(e).map((t=>[t,e[t]])).reduce(((e,t)=>{let[r,s]=t;e[r]={};for(let t=0,i=Object.keys(s);t<i.length;t++){const n=i[t],{http:o}=s[n];o&&1===o.length?e[r][n]=o[0]:o&&o.length>1&&(e[r][n]="document"===r&&"search"===n?l(o):u(o))}return e}),{});for(let e=0,r=Object.keys(this._customRoutes);e<r.length;e++){const s=r[e];t[s]=this._customRoutes[s]}return t}_warn(e){console.warn(e)}}function l(e){return"POST"===e[0].verb?e[0]:e[1]}function u(e){let t=e[0],r=e[0],s=e[0].url.length,i=!0;for(let n=0;n<e.length;n++){const o=e[n];o.url.length!==s&&(i=!1),o.url.length<s&&(t=o,s=o.url.length),"GET"===o.verb&&(r=o)}return i?r:t}t.default=o},7380: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.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return i(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const l=r(4528),u=r(3189),c=o(r(6900)),a=n(r(4169));class d extends u.BaseProtocolRealtime{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(e,t,"ws"),"string"!=typeof e||""===e)throw new Error("host is required");if("undefined"!=typeof WebSocket)this.WebSocketClient=WebSocket,this.options=null;else if(this.WebSocketClient=r(Object(function(){var e=new Error("Cannot find module 'ws'");throw e.code="MODULE_NOT_FOUND",e}())),this.options={headers:t.headers||null,perMessageDeflate:!1},null!==this.options.headers&&(Array.isArray(this.options.headers)||"object"!=typeof this.options.headers))throw new Error('Invalid "headers" option: expected an object');this._pingInterval="number"==typeof t.pingInterval?t.pingInterval:2e3,this.client=null,this.lasturl=null}_connect(){return new Promise(((e,t)=>{const r=`${this.ssl?"wss":"ws"}://${this.host}:${this.port}`;super.connect(),r!==this.lasturl&&(this.wasConnected=!1,this.lasturl=r),this.client=new this.WebSocketClient(r,this.options),"undefined"!=typeof WebSocket?this.ping=()=>{this.client.send('{"p":1}')}:(this.ping=()=>{this.client.ping()},this.client.on("pong",(()=>{this.waitForPong=!1}))),this.client.onopen=()=>(this.clientConnected(),this.setupPingPong(),e()),this.client.onclose=(e,t)=>{let r,s=t;if("number"==typeof e?r=e:(r=e.code,e.reason&&(s=e.reason)),1e3===r)this.clientDisconnected(a.USER_CONNECTION_CLOSED);else if(this.wasConnected){const e=new Error(s);e.status=r,this.clientNetworkError(e)}},this.client.onerror=e=>{let r=e;if(e instanceof Error||(r=!e||"undefined"!=typeof Event&&e instanceof Event?new Error("Connection error"):new Error(e.message||e)),this.clientNetworkError(r),[this.client.CLOSING,this.client.CLOSED].indexOf(this.client.readyState)>-1)return t(r)},this.client.onmessage=e=>{const t=JSON.parse(e.data||e);if(t&&t.p&&2===t.p&&1===Object.keys(t).length)this.waitForPong=!1;else{if("TokenExpired"===t.type)this.emit("tokenExpired");else if(t.room)this.emit(t.room,t);else{this.emit("discarded",t);const e=new l.KuzzleError(t.error,(new Error).stack,this.constructor.name);this.emit("queryError",{error:e,request:t})}this.waitForPong=!1}}}))}connect(){return this.cookieSupport?this._httpProtocol.connect().then((()=>this._connect())):this._connect()}enableCookieSupport(){if("undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie cannot be enabled outside of a browser");super.enableCookieSupport(),this._httpProtocol=new c.default(this.host,{port:this.port,ssl:this.ssl}),this._httpProtocol.enableCookieSupport()}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.client||this.client.readyState!==this.client.OPEN)return;if(!this.cookieSupport||"auth"!==e.controller||"login"!==e.action&&"logout"!==e.action&&"refreshToken"!==e.action)return void this.client.send(JSON.stringify(e));const r=this._httpProtocol.formatRequest(e,t);r&&(this.emit("websocketRenewalStart"),this.client&&(this.client.onclose=void 0,this.client.close(1e3)),this.client=null,this.clientDisconnected(a.WEBSOCKET_AUTH_RENEWAL),this._httpProtocol._sendHttpRequest(r).then((e=>this.connect().then((()=>{this.emit(r.payload.requestId,e),this.emit("websocketRenewalDone")})))).catch((e=>{this.emit(r.payload.requestId,{error:e}),this.emit("websocketRenewalDone")})))}clientDisconnected(e){clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.clientDisconnected(e)}clientNetworkError(e){clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.clientNetworkError(e)}close(){this.state="offline",this.wasConnected=!1,this.client&&this.client.close(1e3),this.removeAllListeners(),this.client=null,this.stopRetryingToConnect=!0,clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.close()}setupPingPong(){clearInterval(this.pingIntervalId),this.waitForPong=!1,this.pingIntervalId=setInterval((()=>{if(this.client&&this.client.readyState===this.client.OPEN&&!this.waitForPong)return this.ping(),void(this.waitForPong=!0);if(this.waitForPong){const e=new Error("Kuzzle does'nt respond to ping. Connection lost.");e.status=503,clearInterval(this.pingIntervalId),this.client.onclose=void 0,this.client.close(1e3),this.waitForPong=!1,this.clientNetworkError(e)}}),this._pingInterval)}}t.default=d},147:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleAbstractProtocol=void 0;const s=r(4528),i=r(4957),n=r(4898),o=r(3041);class l extends n.KuzzleEventEmitter{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;super(),this._pendingRequests=new Map,this._host=e,this._name=r;const s=parseInt(t.port,10);if(this._port=isNaN(s)?7512:s,void 0!==t.ssl&&void 0!==t.sslConnection)throw new Error('Both "ssl" and "sslConnection" options are set. Use only "ssl".');"boolean"==typeof t.ssl?this._ssl=t.ssl:"boolean"==typeof t.sslConnection?this._ssl=t.sslConnection:this._ssl=443===s||7443===s,this.id=(0,i.uuidv4)(),this.state="offline",this._cookieSupport=!1,Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(this,e)&&Object.getOwnPropertyDescriptor(this,e).writable&&(this[e]=t[e])}))}get sslConnection(){return this._ssl}get host(){return this._host}get name(){return this._name}get port(){return this._port}get ssl(){return this._ssl}get connected(){return"connected"===this.state}get cookieSupport(){return this._cookieSupport}get pendingRequests(){return this._pendingRequests}enableCookieSupport(){this._cookieSupport=!0}clientConnected(e,t){this.state=e||"ready",this.emit(t?"reconnect":"connect")}close(){this.state="offline",this.clear()}query(e,t){if(!this.isReady())return this.emit("discarded",e),Promise.reject(new Error(`Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: ${JSON.stringify(e)}`));const r=Error().stack,i=new o.PendingRequest(e);return this._pendingRequests.set(e.requestId,i),this.once(e.requestId,(t=>{if(this._pendingRequests.delete(e.requestId),t.error){let n;if(t.error.status)n=new s.KuzzleError(t.error,r,this.constructor.name,e);else{const e=r.split("\n");e[0]="",t.error.stack+="\n"+e.join("\n"),n=t.error}return this.emit("queryError",{error:n,request:e}),"logout"!==e.action&&"security.token.invalid"===n.id&&this.emit("tokenExpired"),i.reject(n)}i.resolve(t)})),this.send(e,t),i.promise}isReady(){return"ready"===this.state}clear(){const e=new Error("Network error: request was sent but no response has been received");for(let t=0,r=this._pendingRequests.values();t<r.length;t++){const s=r[t];s.reject(e),this.removeAllListeners(s.request.requestId),this.emit("discarded",s.request)}this._pendingRequests.clear()}}t.KuzzleAbstractProtocol=l},3041:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingRequest=void 0;const s=r(6847);class i extends s.InstrumentablePromise{constructor(e){super(),this.request=e}}t.PendingRequest=i},3189: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.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&s(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.BaseProtocolRealtime=void 0;const o=r(147),l=n(r(4169)),u=r(9336);class c extends o.KuzzleAbstractProtocol{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e,t,arguments.length>2?arguments[2]:void 0),this.autoReconnect="boolean"!=typeof t.autoReconnect||t.autoReconnect,this._reconnectionDelay="number"==typeof t.reconnectionDelay?t.reconnectionDelay:1e3,this.wasConnected=!1,this.stopRetryingToConnect=!1,this.retrying=!1}get reconnectionDelay(){return this._reconnectionDelay}connect(){return this.state="connecting",Promise.resolve()}clientConnected(){super.clientConnected("connected",this.wasConnected),this.state="connected",this.wasConnected=!0,this.stopRetryingToConnect=!1}clientDisconnected(e){this.clear(),this.emit("disconnect",{origin:e})}clientNetworkError(e){this.isReady()&&this.emit("disconnect",{origin:l.NETWORK_ERROR}),this.state="offline",this.clear();const t=new Error(`Unable to connect to kuzzle server at ${this.host}:${this.port}: ${e.message} (ws status=${e.status})`);if(this.emit("networkError",t),this.autoReconnect&&!this.retrying&&!this.stopRetryingToConnect){this.retrying=!0;const e=(0,u.getBrowserWindow)();if((0,u.isBrowser)()&&"object"==typeof e.navigator&&!1===e.navigator.onLine)return void e.addEventListener("online",(()=>{this.retrying=!1,this.connect().catch((e=>this.clientNetworkError(e)))}),{once:!0});setTimeout((()=>{this.retrying=!1,this.connect().catch((e=>this.clientNetworkError(e)))}),this.reconnectionDelay)}}isReady(){return"connected"===this.state}}t.BaseProtocolRealtime=c},1076: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.Http=t.WebSocket=void 0;var i=r(7380);Object.defineProperty(t,"WebSocket",{enumerable:!0,get:function(){return s(i).default}});var n=r(6900);Object.defineProperty(t,"Http",{enumerable:!0,get:function(){return s(n).default}})},3405:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1977:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},323:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8694:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Document=void 0,t.Document=class{}},9468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8811:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8114:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6687:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3209:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},989:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2121:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4296:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3044: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}),i(r(3405),t),i(r(8694),t),i(r(9468),t),i(r(8811),t),i(r(6253),t),i(r(6687),t),i(r(3209),t),i(r(4296),t),i(r(1977),t),i(r(6231),t),i(r(2690),t),i(r(8114),t),i(r(989),t),i(r(2121),t),i(r(323),t)},6231:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2690:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8733:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Deprecation=void 0,t.Deprecation=class{constructor(e){this.deprecationWarning=!1}logDeprecation(e){if(this.deprecationWarning&&e.deprecations&&e.deprecations.length)for(let t=0,r=e.deprecations;t<r.length;t++){const e=r[t];console.warn(e.message)}return e}}},9336:(e,t)=>{"use strict";function r(){let e;try{if(e||(e=globalThis.window),e)return e}catch{}try{if(e||(e=global.window),e)return e}catch{}try{if(e||(e=window),e)return e}catch{}}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.getBrowserWindow=void 0,t.getBrowserWindow=r,t.isBrowser=function(){const e=r();return null!=e&&"object"==typeof e}},4219:(e,t,r)=>{let s;const{isBrowser:i,getBrowserWindow:n}=r(9336);e.exports={debug:function(e,t){if(function(){try{if(!i())return s||(s=(process.env.DEBUG||"").includes("kuzzle-sdk")),s;const e=n();return e.debugKuzzleSdk||e.location&&null!==new URL(e.location).searchParams.get("debugKuzzleSdk")}catch(e){return!1}}()&&(console.log(e),t)){const e=i()?t:JSON.stringify(t);console.log(e)}}}},6250:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.omit=void 0,t.omit=function(e,t){const r={};for(let s=0,i=Object.entries(e);s<i.length;s++){const[e,n]=i[s];t.includes(e)||(r[e]=n)}return r}},8964:e=>{const t=e=>Object.assign({},{apiNamespace:"__proxy__",name:"object",deprecated:[],exposeApi:!1,seal:!0,sealGet:!1,warnDeprecationOnce:!0},e),r=e=>{if(!e)return[];const t=Object.getOwnPropertyNames(e.prototype||e),i=Object.getPrototypeOf(e);return s([...t,...r(i)])},s=e=>[...new Set(e)];e.exports={proxify:function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"object"!=typeof e&&"function"!=typeof e)throw Error("proxify only applies on non-null object");const i=t(s),n=new Set(["inspect"]),o=new Set(i.deprecated),l=new Set,u=e=>{const t=`${i.name}.${e}`;i.warnDeprecationOnce&&l.has(t)||(l.add(t),console.warn(`Warning: ${t} is deprecated`))};i.exposeApi&&(e[i.apiNamespace]={registerProp:e=>n.add(e),unregisterProp:e=>n.delete(e),hasProp:e=>n.has(e)}),[...Object.getOwnPropertyNames(e),...r(e)].forEach((e=>n.add(e)));const c={get:(e,t)=>{if(i.sealGet&&!n.has(t))throw new Error(`${i.name}.${t} is not defined`);return o.has(t)&&u(t),e[t]},set:(e,t,r)=>{if(i.seal&&!n.has(t))throw new Error(`Cannot set a value to the undefined '${t}' property in '${i.name}'`);return o.has(t)&&u(t),e[t]=r,!0}};return new Proxy(e,c)}}},4843:e=>{"use strict";e.exports={hilightUserCode:function(e){return e.includes(" at ")?e.includes("sdk-javascript/src/")||-1===e.indexOf("at /")&&"/"!==e.charAt(e.indexOf("(")+1)||e.includes("node_modules")?" "+e:">"+e:e}}},4957:e=>{const t=e=>e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,t);e.exports={uuidv4:t}},1873:e=>{"use strict";e.exports=JSON.parse('{"auth":{"login":{"verb":"POST","url":"/_login/:strategy"},"logout":{"url":"/_logout","verb":"POST"},"getCurrentUser":{"url":"/users/_me","verb":"GET"},"getMyRights":{"url":"/users/_me/_rights","verb":"GET"},"checkToken":{"url":"/_checkToken","verb":"POST"},"updateSelf":{"url":"/_updateSelf","verb":"PUT"},"getStrategies":{"url":"/strategies","verb":"GET"},"createMyCredentials":{"url":"/credentials/:strategy/_me/_create","verb":"POST"},"updateMyCredentials":{"url":"/credentials/:strategy/_me/_update","verb":"PUT"},"credentialsExist":{"url":"/credentials/:strategy/_me/_exists","verb":"GET"},"validateMyCredentials":{"url":"/credentials/:strategy/_me/_validate","verb":"POST"},"deleteMyCredentials":{"url":"/credentials/:strategy/_me","verb":"DELETE"},"getMyCredentials":{"url":"/credentials/:strategy/_me","verb":"GET"},"refreshToken":{"url":"/_refreshToken","verb":"POST"}},"bulk":{"deleteByQuery":{"url":"/:index/:collection/_bulk/_query","verb":"DELETE"},"import":{"verb":"POST","url":"/:index/:collection/_bulk"},"write":{"verb":"POST","url":"/:index/:collection/_write"},"mWrite":{"verb":"POST","url":"/:index/:collection/_mWrite"},"updateByQuery":{"url":"/:index/:collection/_bulk/_query","verb":"PATCH"}},"document":{"create":{"verb":"POST","url":"/:index/:collection/_create"},"scroll":{"url":"/_scroll/:scrollId","verb":"GET"},"exists":{"url":"/:index/:collection/:_id/_exists","verb":"GET"},"get":{"url":"/:index/:collection/:_id","verb":"GET"},"mGet":{"url":"/:index/:collection/_mGet","verb":"POST"},"count":{"url":"/:index/:collection/_count","verb":"POST"},"mCreate":{"url":"/:index/:collection/_mCreate","verb":"POST"},"createOrReplace":{"url":"/:index/:collection/:_id","verb":"PUT"},"mCreateOrReplace":{"url":"/:index/:collection/_mCreateOrReplace","verb":"PUT"},"update":{"url":"/:index/:collection/:_id/_update","verb":"PATCH"},"updateByQuery":{"url":"/:index/:collection/_query","verb":"PUT"},"mUpdate":{"url":"/:index/:collection/_mUpdate","verb":"PUT"},"mUpsert":{"url":"/:index/:collection/_mUpsert","verb":"POST"},"replace":{"url":"/:index/:collection/:_id/_replace","verb":"PUT"},"mReplace":{"url":"/:index/:collection/_mReplace","verb":"PUT"},"delete":{"url":"/:index/:collection/:_id","verb":"DELETE"},"mDelete":{"url":"/:index/:collection/_mDelete","verb":"DELETE"},"deleteByQuery":{"url":"/:index/:collection/_query","verb":"DELETE"},"validate":{"url":"/:index/:collection/_validate","verb":"POST"},"search":{"url":"/:index/:collection/_search","verb":"GET"}},"security":{"createFirstAdmin":{"verb":"POST","url":"/_createFirstAdmin"},"createRestrictedUser":{"verb":"POST","url":"/users/_createRestricted"},"createUser":{"verb":"POST","url":"/users/_create"},"getRoleMapping":{"url":"/roles/_mapping","verb":"GET"},"updateRoleMapping":{"url":"/roles/_mapping","verb":"PUT"},"getProfileMapping":{"url":"/profiles/_mapping","verb":"GET"},"updateProfileMapping":{"url":"/profiles/_mapping","verb":"PUT"},"getUserMapping":{"url":"/users/_mapping","verb":"GET"},"updateUserMapping":{"url":"/users/_mapping","verb":"PUT"},"getRole":{"url":"/roles/:_id","verb":"GET"},"mGetRoles":{"url":"/roles/_mGet","verb":"POST"},"searchRoles":{"url":"/roles/_search","verb":"POST"},"createOrReplaceRole":{"url":"/roles/:_id","verb":"PUT"},"createRole":{"url":"/roles/:_id/_create","verb":"POST"},"deleteRole":{"url":"/roles/:_id","verb":"DELETE"},"getProfile":{"url":"/profiles/:_id","verb":"GET"},"mGetProfiles":{"url":"/profiles/_mGet","verb":"POST"},"createOrReplaceProfile":{"url":"/profiles/:_id","verb":"PUT"},"createProfile":{"url":"/profiles/:_id/_create","verb":"POST"},"deleteProfile":{"url":"/profiles/:_id","verb":"DELETE"},"searchProfiles":{"url":"/profiles/_search","verb":"POST"},"getUser":{"url":"/users/:_id","verb":"GET"},"getProfileRights":{"url":"/profiles/:_id/_rights","verb":"GET"},"getUserRights":{"url":"/users/:_id/_rights","verb":"GET"},"getUserStrategies":{"url":"/users/:_id/_strategies","verb":"GET"},"searchUsers":{"url":"/users/_search","verb":"POST"},"deleteUser":{"url":"/users/:_id","verb":"DELETE"},"updateUser":{"url":"/users/:_id/_update","verb":"PUT"},"replaceUser":{"url":"/users/:_id/_replace","verb":"PUT"},"updateProfile":{"url":"/profiles/:_id/_update","verb":"PUT"},"updateRole":{"url":"/roles/:_id/_update","verb":"PUT"},"mDeleteProfiles":{"url":"/profiles/_mDelete","verb":"POST"},"mDeleteRoles":{"url":"/roles/_mDelete","verb":"POST"},"mDeleteUsers":{"url":"/users/_mDelete","verb":"POST"},"scrollUsers":{"url":"/users/_scroll/:scrollId","verb":"GET"},"scrollProfiles":{"url":"/profiles/_scroll/:scrollId","verb":"GET"},"createCredentials":{"url":"/credentials/:strategy/:_id/_create","verb":"POST"},"updateCredentials":{"url":"/credentials/:strategy/:_id/_update","verb":"PUT"},"hasCredentials":{"url":"/credentials/:strategy/:_id/_exists","verb":"GET"},"validateCredentials":{"url":"/credentials/:strategy/:_id/_validate","verb":"POST"},"deleteCredentials":{"url":"/credentials/:strategy/:_id","verb":"DELETE"},"getCredentials":{"url":"/credentials/:strategy/:_id","verb":"GET"},"getCredentialsById":{"url":"/credentials/:strategy/:_id/_byId","verb":"GET"},"getCredentialFields":{"url":"/credentials/:strategy/_fields","verb":"GET"},"getAllCredentialFields":{"url":"/credentials/_fields","verb":"GET"}},"collection":{"update":{"url":"/:index/:collection/","verb":"POST"},"updateMapping":{"url":"/:index/:collection/_mapping","verb":"PUT"},"getMapping":{"url":"/:index/:collection/_mapping","verb":"GET"},"getSpecifications":{"url":"/:index/:collection/_specifications","verb":"GET"},"searchSpecifications":{"url":"/validations/_search","verb":"POST"},"scrollSpecifications":{"url":"/validations/_scroll/:scrollId","verb":"GET"},"updateSpecifications":{"url":"/:index/:collection/_specifications","verb":"PUT"},"deleteSpecifications":{"url":"/:index/:collection/_specifications","verb":"DELETE"},"validateSpecifications":{"url":"/:index/:collection/_validateSpecifications","verb":"POST"},"truncate":{"url":"/:index/:collection/_truncate","verb":"DELETE"},"list":{"url":"/:index/_list","verb":"GET"},"exists":{"url":"/:index/:collection/_exists","verb":"GET"},"create":{"url":"/:index/:collection","verb":"PUT"}},"index":{"mDelete":{"url":"/_mdelete","verb":"DELETE"},"create":{"url":"/:index/_create","verb":"POST"},"delete":{"url":"/:index","verb":"DELETE"},"refresh":{"url":"/:index/_refresh","verb":"POST"},"list":{"url":"/_list","verb":"GET"},"refreshInternal":{"url":"/_refreshInternal","verb":"POST"},"getAutoRefresh":{"url":"/:index/_autoRefresh","verb":"GET"},"setAutoRefresh":{"url":"/:index/_autoRefresh","verb":"POST"},"exists":{"url":"/:index/_exists","verb":"GET"}},"ms":{"append":{"url":"/ms/_append/:_id","verb":"POST"},"bitcount":{"url":"/ms/_bitcount/:_id","verb":"GET"},"bitop":{"url":"/ms/_bitop/:_id","verb":"POST"},"bitpos":{"url":"/ms/_bitpos/:_id","verb":"GET"},"dbsize":{"url":"/ms/_dbsize","verb":"GET"},"decrby":{"url":"/ms/_decrby/:_id","verb":"POST"},"del":{"url":"/ms","verb":"DELETE"},"expire":{"url":"/ms/_expire/:_id","verb":"POST"},"expireat":{"url":"/ms/_expireat/:_id","verb":"POST"},"flushdb":{"url":"/ms/_flushdb","verb":"POST"},"geoadd":{"url":"/ms/_geoadd/:_id","verb":"POST"},"geodist":{"url":"/ms/_geodist/:_id/:member1/:member2","verb":"GET"},"geohash":{"url":"/ms/_geohash/:_id","verb":"GET"},"georadius":{"url":"/ms/_georadius/:_id","verb":"GET"},"georadiusbymember":{"url":"/ms/_georadiusbymember/:_id","verb":"GET"},"getbit":{"url":"/ms/_getbit/:_id","verb":"GET"},"getrange":{"url":"/ms/_getrange/:_id","verb":"GET"},"hdel":{"url":"/ms/_hdel/:_id","verb":"DELETE"},"hmget":{"url":"/ms/_hmget/:_id","verb":"GET"},"hexists":{"url":"/ms/_hexists/:_id/:field","verb":"GET"},"hincrby":{"url":"/ms/_hincrby/:_id","verb":"POST"},"hmset":{"url":"/ms/_hmset/:_id","verb":"POST"},"hset":{"url":"/ms/_hset/:_id","verb":"POST"},"hstrlen":{"url":"/ms/_hstrlen/:_id/:field","verb":"GET"},"keys":{"url":"/ms/_keys/:pattern","verb":"GET"},"lindex":{"url":"/ms/_lindex/:_id/:idx","verb":"GET"},"linsert":{"url":"/ms/_linsert/:_id","verb":"POST"},"lpush":{"url":"/ms/_lpush/:_id","verb":"POST"},"lrange":{"url":"/ms/_lrange/:_id","verb":"GET"},"lrem":{"url":"/ms/_lrem/:_id","verb":"DELETE"},"lset":{"url":"/ms/_lset/:_id","verb":"POST"},"ltrim":{"url":"/ms/_ltrim/:_id","verb":"POST"},"mexecute":{"url":"/ms/_mexecute","verb":"POST"},"mget":{"url":"/ms/_mget","verb":"GET"},"mset":{"url":"/ms/_mset","verb":"POST"},"object":{"url":"/ms/_object/:_id","verb":"GET"},"pexpire":{"url":"/ms/_pexpire/:_id","verb":"POST"},"pexpireat":{"url":"/ms/_pexpireat/:_id","verb":"POST"},"pfadd":{"url":"/ms/_pfadd/:_id","verb":"POST"},"pfmerge":{"url":"/ms/_pfmerge/:_id","verb":"POST"},"ping":{"url":"/ms/_ping","verb":"GET"},"psetex":{"url":"/ms/_psetex/:_id","verb":"POST"},"randomkey":{"url":"/ms/_randomkey","verb":"GET"},"rename":{"url":"/ms/_rename/:_id","verb":"POST"},"renamenx":{"url":"/ms/_renamenx/:_id","verb":"POST"},"rpoplpush":{"url":"/ms/_rpoplpush","verb":"POST"},"sadd":{"url":"/ms/_sadd/:_id","verb":"POST"},"scan":{"url":"/ms/_scan","verb":"GET"},"sdiff":{"url":"/ms/_sdiff/:_id","verb":"GET"},"sdiffstore":{"url":"/ms/_sdiffstore/:_id","verb":"POST"},"set":{"url":"/ms/_set/:_id","verb":"POST"},"setex":{"url":"/ms/_setex/:_id","verb":"POST"},"setnx":{"url":"/ms/_setnx/:_id","verb":"POST"},"sinterstore":{"url":"/ms/_sinterstore","verb":"POST"},"sismember":{"url":"/ms/_sismember/:_id/:member","verb":"GET"},"smove":{"url":"/ms/_smove/:_id","verb":"POST"},"sort":{"url":"/ms/_sort/:_id","verb":"POST"},"spop":{"url":"/ms/_spop/:_id","verb":"POST"},"srandmember":{"url":"/ms/_srandmember/:_id","verb":"GET"},"srem":{"url":"/ms/_srem/:_id","verb":"DELETE"},"sscan":{"url":"/ms/_sscan/:_id","verb":"GET"},"sunion":{"url":"/ms/_sunion","verb":"GET"},"sunionstore":{"url":"/ms/_sunionstore","verb":"POST"},"time":{"url":"/ms/_time","verb":"GET"},"touch":{"url":"/ms/_touch","verb":"POST"},"zadd":{"url":"/ms/_zadd/:_id","verb":"POST"},"zcount":{"url":"/ms/_zcount/:_id","verb":"GET"},"zincrby":{"url":"/ms/_zincrby/:_id","verb":"POST"},"zinterstore":{"url":"/ms/_zinterstore/:_id","verb":"POST"},"zlexcount":{"url":"/ms/_zlexcount/:_id","verb":"GET"},"zrange":{"url":"/ms/_zrange/:_id","verb":"GET"},"zrangebylex":{"url":"/ms/_zrangebylex/:_id","verb":"GET"},"zrangebyscore":{"url":"/ms/_zrangebyscore/:_id","verb":"GET"},"zrem":{"url":"/ms/_zrem/:_id","verb":"DELETE"},"zremrangebylex":{"url":"/ms/_zremrangebylex/:_id","verb":"DELETE"},"zremrangebyrank":{"url":"/ms/_zremrangebyrank/:_id","verb":"DELETE"},"zremrangebyscore":{"url":"/ms/_zremrangebyscore/:_id","verb":"DELETE"},"zrevrangebylex":{"url":"/ms/_zrevrangebylex/:_id","verb":"GET"},"zrevrangebyscore":{"url":"/ms/_zrevrangebyscore/:_id","verb":"GET"},"zrevrank":{"url":"/ms/_zrevrank/:_id/:member","verb":"GET"},"zunionstore":{"url":"/ms/_zunionstore/:_id","verb":"POST"},"zcard":{"url":"/ms/_zcard/:_id","verb":"GET"},"type":{"url":"/ms/_type/:_id","verb":"GET"},"ttl":{"url":"/ms/_ttl/:_id","verb":"GET"},"strlen":{"url":"/ms/_strlen/:_id","verb":"GET"},"smembers":{"url":"/ms/_smembers/:_id","verb":"GET"},"scard":{"url":"/ms/_scard/:_id","verb":"GET"},"rpop":{"url":"/ms/_rpop/:_id","verb":"POST"},"pttl":{"url":"/ms/_pttl/:_id","verb":"GET"},"persist":{"url":"/ms/_persist/:_id","verb":"POST"},"lpop":{"url":"/ms/_lpop/:_id","verb":"POST"},"llen":{"url":"/ms/_llen/:_id","verb":"GET"},"incr":{"url":"/ms/_incr/:_id","verb":"POST"},"hvals":{"url":"/ms/_hvals/:_id","verb":"GET"},"hlen":{"url":"/ms/_hlen/:_id","verb":"GET"},"hkeys":{"url":"/ms/_hkeys/:_id","verb":"GET"},"hgetall":{"url":"/ms/_hgetall/:_id","verb":"GET"},"get":{"url":"/ms/:_id","verb":"GET"},"decr":{"url":"/ms/_decr/:_id","verb":"POST"},"rpushx":{"url":"/ms/_rpushx/:_id","verb":"POST"},"lpushx":{"url":"/ms/_lpushx/:_id","verb":"POST"},"getset":{"url":"/ms/_getset/:_id","verb":"POST"},"sinter":{"url":"/ms/_sinter","verb":"GET"},"pfcount":{"url":"/ms/_pfcount","verb":"GET"},"incrbyfloat":{"url":"/ms/_incrbyfloat/:_id","verb":"POST"},"incrby":{"url":"/ms/_incrby/:_id","verb":"POST"},"geopos":{"url":"/ms/_geopos/:_id","verb":"GET"},"hget":{"url":"/ms/_hget/:_id/:field","verb":"GET"},"hsetnx":{"url":"/ms/_hsetnx/:_id","verb":"POST"},"msetnx":{"url":"/ms/_msetnx","verb":"POST"},"rpush":{"url":"/ms/_rpush/:_id","verb":"POST"},"hincrbyfloat":{"url":"/ms/_hincrbyfloat/:_id","verb":"POST"},"zrevrange":{"url":"/ms/_zrevrange/:_id","verb":"GET"},"zrank":{"url":"/ms/_zrank/:_id/:member","verb":"GET"},"zscore":{"url":"/ms/_zscore/:_id/:member","verb":"GET"},"zscan":{"url":"/ms/_zscan/:_id","verb":"GET"},"hscan":{"url":"/ms/_hscan/:_id","verb":"GET"},"exists":{"url":"/ms/_exists","verb":"GET"}},"memoryStorage":{"append":{"url":"/ms/_append/:_id","verb":"POST"},"bitcount":{"url":"/ms/_bitcount/:_id","verb":"GET"},"bitop":{"url":"/ms/_bitop/:_id","verb":"POST"},"bitpos":{"url":"/ms/_bitpos/:_id","verb":"GET"},"dbsize":{"url":"/ms/_dbsize","verb":"GET"},"decrby":{"url":"/ms/_decrby/:_id","verb":"POST"},"del":{"url":"/ms","verb":"DELETE"},"expire":{"url":"/ms/_expire/:_id","verb":"POST"},"expireat":{"url":"/ms/_expireat/:_id","verb":"POST"},"flushdb":{"url":"/ms/_flushdb","verb":"POST"},"geoadd":{"url":"/ms/_geoadd/:_id","verb":"POST"},"geodist":{"url":"/ms/_geodist/:_id/:member1/:member2","verb":"GET"},"geohash":{"url":"/ms/_geohash/:_id","verb":"GET"},"georadius":{"url":"/ms/_georadius/:_id","verb":"GET"},"georadiusbymember":{"url":"/ms/_georadiusbymember/:_id","verb":"GET"},"getbit":{"url":"/ms/_getbit/:_id","verb":"GET"},"getrange":{"url":"/ms/_getrange/:_id","verb":"GET"},"hdel":{"url":"/ms/_hdel/:_id","verb":"DELETE"},"hmget":{"url":"/ms/_hmget/:_id","verb":"GET"},"hexists":{"url":"/ms/_hexists/:_id/:field","verb":"GET"},"hincrby":{"url":"/ms/_hincrby/:_id","verb":"POST"},"hmset":{"url":"/ms/_hmset/:_id","verb":"POST"},"hset":{"url":"/ms/_hset/:_id","verb":"POST"},"hstrlen":{"url":"/ms/_hstrlen/:_id/:field","verb":"GET"},"keys":{"url":"/ms/_keys/:pattern","verb":"GET"},"lindex":{"url":"/ms/_lindex/:_id/:idx","verb":"GET"},"linsert":{"url":"/ms/_linsert/:_id","verb":"POST"},"lpush":{"url":"/ms/_lpush/:_id","verb":"POST"},"lrange":{"url":"/ms/_lrange/:_id","verb":"GET"},"lrem":{"url":"/ms/_lrem/:_id","verb":"DELETE"},"lset":{"url":"/ms/_lset/:_id","verb":"POST"},"ltrim":{"url":"/ms/_ltrim/:_id","verb":"POST"},"mget":{"url":"/ms/_mget","verb":"GET"},"mset":{"url":"/ms/_mset","verb":"POST"},"object":{"url":"/ms/_object/:_id","verb":"GET"},"pexpire":{"url":"/ms/_pexpire/:_id","verb":"POST"},"pexpireat":{"url":"/ms/_pexpireat/:_id","verb":"POST"},"pfadd":{"url":"/ms/_pfadd/:_id","verb":"POST"},"pfmerge":{"url":"/ms/_pfmerge/:_id","verb":"POST"},"ping":{"url":"/ms/_ping","verb":"GET"},"psetex":{"url":"/ms/_psetex/:_id","verb":"POST"},"randomkey":{"url":"/ms/_randomkey","verb":"GET"},"rename":{"url":"/ms/_rename/:_id","verb":"POST"},"renamenx":{"url":"/ms/_renamenx/:_id","verb":"POST"},"rpoplpush":{"url":"/ms/_rpoplpush","verb":"POST"},"sadd":{"url":"/ms/_sadd/:_id","verb":"POST"},"scan":{"url":"/ms/_scan","verb":"GET"},"sdiff":{"url":"/ms/_sdiff/:_id","verb":"GET"},"sdiffstore":{"url":"/ms/_sdiffstore/:_id","verb":"POST"},"set":{"url":"/ms/_set/:_id","verb":"POST"},"setex":{"url":"/ms/_setex/:_id","verb":"POST"},"setnx":{"url":"/ms/_setnx/:_id","verb":"POST"},"sinterstore":{"url":"/ms/_sinterstore","verb":"POST"},"sismember":{"url":"/ms/_sismember/:_id/:member","verb":"GET"},"smove":{"url":"/ms/_smove/:_id","verb":"POST"},"sort":{"url":"/ms/_sort/:_id","verb":"POST"},"spop":{"url":"/ms/_spop/:_id","verb":"POST"},"srandmember":{"url":"/ms/_srandmember/:_id","verb":"GET"},"srem":{"url":"/ms/_srem/:_id","verb":"DELETE"},"sscan":{"url":"/ms/_sscan/:_id","verb":"GET"},"sunion":{"url":"/ms/_sunion","verb":"GET"},"sunionstore":{"url":"/ms/_sunionstore","verb":"POST"},"time":{"url":"/ms/_time","verb":"GET"},"touch":{"url":"/ms/_touch","verb":"POST"},"zadd":{"url":"/ms/_zadd/:_id","verb":"POST"},"zcount":{"url":"/ms/_zcount/:_id","verb":"GET"},"zincrby":{"url":"/ms/_zincrby/:_id","verb":"POST"},"zinterstore":{"url":"/ms/_zinterstore/:_id","verb":"POST"},"zlexcount":{"url":"/ms/_zlexcount/:_id","verb":"GET"},"zrange":{"url":"/ms/_zrange/:_id","verb":"GET"},"zrangebylex":{"url":"/ms/_zrangebylex/:_id","verb":"GET"},"zrangebyscore":{"url":"/ms/_zrangebyscore/:_id","verb":"GET"},"zrem":{"url":"/ms/_zrem/:_id","verb":"DELETE"},"zremrangebylex":{"url":"/ms/_zremrangebylex/:_id","verb":"DELETE"},"zremrangebyrank":{"url":"/ms/_zremrangebyrank/:_id","verb":"DELETE"},"zremrangebyscore":{"url":"/ms/_zremrangebyscore/:_id","verb":"DELETE"},"zrevrangebylex":{"url":"/ms/_zrevrangebylex/:_id","verb":"GET"},"zrevrangebyscore":{"url":"/ms/_zrevrangebyscore/:_id","verb":"GET"},"zrevrank":{"url":"/ms/_zrevrank/:_id/:member","verb":"GET"},"zunionstore":{"url":"/ms/_zunionstore/:_id","verb":"POST"},"zcard":{"url":"/ms/_zcard/:_id","verb":"GET"},"type":{"url":"/ms/_type/:_id","verb":"GET"},"ttl":{"url":"/ms/_ttl/:_id","verb":"GET"},"strlen":{"url":"/ms/_strlen/:_id","verb":"GET"},"smembers":{"url":"/ms/_smembers/:_id","verb":"GET"},"scard":{"url":"/ms/_scard/:_id","verb":"GET"},"rpop":{"url":"/ms/_rpop/:_id","verb":"POST"},"pttl":{"url":"/ms/_pttl/:_id","verb":"GET"},"persist":{"url":"/ms/_persist/:_id","verb":"POST"},"lpop":{"url":"/ms/_lpop/:_id","verb":"POST"},"llen":{"url":"/ms/_llen/:_id","verb":"GET"},"incr":{"url":"/ms/_incr/:_id","verb":"POST"},"hvals":{"url":"/ms/_hvals/:_id","verb":"GET"},"hlen":{"url":"/ms/_hlen/:_id","verb":"GET"},"hkeys":{"url":"/ms/_hkeys/:_id","verb":"GET"},"hgetall":{"url":"/ms/_hgetall/:_id","verb":"GET"},"get":{"url":"/ms/:_id","verb":"GET"},"decr":{"url":"/ms/_decr/:_id","verb":"POST"},"rpushx":{"url":"/ms/_rpushx/:_id","verb":"POST"},"lpushx":{"url":"/ms/_lpushx/:_id","verb":"POST"},"getset":{"url":"/ms/_getset/:_id","verb":"POST"},"sinter":{"url":"/ms/_sinter","verb":"GET"},"pfcount":{"url":"/ms/_pfcount","verb":"GET"},"incrbyfloat":{"url":"/ms/_incrbyfloat/:_id","verb":"POST"},"incrby":{"url":"/ms/_incrby/:_id","verb":"POST"},"geopos":{"url":"/ms/_geopos/:_id","verb":"GET"},"hget":{"url":"/ms/_hget/:_id/:field","verb":"GET"},"hsetnx":{"url":"/ms/_hsetnx/:_id","verb":"POST"},"msetnx":{"url":"/ms/_msetnx","verb":"POST"},"rpush":{"url":"/ms/_rpush/:_id","verb":"POST"},"hincrbyfloat":{"url":"/ms/_hincrbyfloat/:_id","verb":"POST"},"zrevrange":{"url":"/ms/_zrevrange/:_id","verb":"GET"},"zrank":{"url":"/ms/_zrank/:_id/:member","verb":"GET"},"zscore":{"url":"/ms/_zscore/:_id/:member","verb":"GET"},"zscan":{"url":"/ms/_zscan/:_id","verb":"GET"},"hscan":{"url":"/ms/_hscan/:_id","verb":"GET"},"exists":{"url":"/ms/_exists","verb":"GET"}},"realtime":{"list":{"url":"/_listSubscriptions","verb":"GET"},"publish":{"url":"/:index/:collection/_publish","verb":"POST"}},"server":{"getStats":{"url":"/_getStats","verb":"GET"},"getLastStats":{"url":"/_getLastStats","verb":"GET"},"getAllStats":{"url":"/_getAllStats","verb":"GET"},"getConfig":{"url":"/_getConfig","verb":"GET"},"adminExists":{"url":"/_adminExists","verb":"GET"},"now":{"url":"/_now","verb":"GET"},"healthCheck":{"url":"/_healthCheck","verb":"GET"},"info":{"url":"/","verb":"GET"}},"admin":{"resetKuzzleData":{"url":"/admin/_resetKuzzleData/","verb":"POST"},"resetCache":{"url":"/admin/_resetCache","verb":"POST"},"resetSecurity":{"url":"/admin/_resetSecurity/","verb":"POST"},"resetDatabase":{"url":"/admin/_resetDatabase/","verb":"POST"},"dump":{"url":"/admin/_dump","verb":"POST"},"shutdown":{"url":"/admin/_shutdown/","verb":"POST"},"loadFixtures":{"url":"/admin/_loadFixtures/","verb":"POST"},"loadMappings":{"url":"/admin/_loadMappings/","verb":"POST"},"loadSecurities":{"url":"/admin/_loadSecurities/","verb":"POST"}}}')}},t={},function r(s){var i=t[s];if(void 0!==i)return i.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,r),n.exports}(1045);var e,t}));
2
+ !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","logoutAttempt","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={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.10.7",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("loginAttempt",(async e=>{if(e.success)this._loggedIn=!0;else try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),this.on("logoutAttempt",(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._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){const i={action:"login",body:t,cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:r,strategy:e};return this.query(i,{queuable:!1,timeout:-1,verb:"POST"}).then((e=>{if(!this.kuzzle.cookieAuthentication)return this._authenticationToken=new s.Jwt(e.result.jwt),this.kuzzle.emit("loginAttempt",{success:!0}),e.result.jwt;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}),e}this.kuzzle.emit("loginAttempt",{success:!0})})).catch((e=>{throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),e}))}logout(){return this.query({action:"logout",cookieAuth:this.kuzzle.cookieAuthentication},{queuable:!1,timeout:-1}).then((()=>{this._authenticationToken=null,this.kuzzle.emit("logoutAttempt",{success:!0})}))}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(5914),i=r(1183);class n extends s.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 i.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]&&void 0!==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,r){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){return this.query({action:"refresh",collection:e})}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._id,e.result._source)))}updateProfileMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateProfileMapping",body:e},t).then((e=>e.result))}updateRole(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateRole",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)))}updateRoleMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateRoleMapping",body:e},t).then((e=>e.result))}updateUser(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateUser",body:t};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}updateUserMapping(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateUserMapping",body:e},t).then((e=>e.result))}validateCredentials(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({_id:t,action:"validateCredentials",body:r,strategy:e},s).then((e=>e.result))}}t.SecurityController=a},1994:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServerController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"server")}adminExists(e){return this.query({action:"adminExists"},e).then((e=>e.result.exists))}capabilities(e){return this.query({action:"capabilities"},e).then((e=>e.result))}getAllStats(e){return this.query({action:"getAllStats"},e).then((e=>e.result))}getConfig(e){return this.query({action:"getConfig"},e).then((e=>e.result))}getLastStats(e){return this.query({action:"getLastStats"},e).then((e=>e.result))}getStats(e,t,r){return this.query({action:"getStats",startTime:e,stopTime:t},r).then((e=>e.result))}info(e){return this.query({action:"info"},e).then((e=>e.result))}now(e){return this.query({action:"now"},e).then((e=>e.result.now))}}t.ServerController=i},6847:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InstrumentablePromise=void 0,t.InstrumentablePromise=class{constructor(){this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}},9665:e=>{"use strict";e.exports={Jwt:class{constructor(e){this._encodedJwt=e,this._userId=null,this._expiresAt=null,this._decode()}get encodedJwt(){return this._encodedJwt}get userId(){return this._userId}get expiresAt(){return this._expiresAt}get expired(){return Math.round(Date.now()/1e3)>this.expiresAt}_decode(){const e=this._encodedJwt.split(".")[1];if(!e)throw new Error("Invalid JWT format");let t;try{t=JSON.parse((e=>{const t=e.replace(/=+$/,"");let r="";if(t.length%4==1)throw new Error("Malformed base64 string.");for(let e,s=0,i=0,n=0;e=t.charAt(n++);~e&&(i=s%4?64*i+e:e,s++%4)?r+=String.fromCharCode(255&i>>(-2*s&6)):0)e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e);return r})(e))}catch(e){throw new Error("Invalid JSON payload for JWT")}this._userId=t._id,this._expiresAt=t.exp}}}},4898:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleEventEmitter=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.fn=e,this.once=t}}class s{constructor(){this._events=new Map}_exists(e,t){return Boolean(e.find((e=>e.fn===t)))}listeners(e){return this._events.has(e)?this._events.get(e).map((e=>e.fn)):[]}addListener(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!t)return this;const i=typeof t;if("function"!==i)throw new Error(`Invalid listener type: expected a function, got a ${i}`);return this._events.has(e)||this._events.set(e,[]),this._exists(this._events.get(e),t)||this._events.get(e).push(new r(t,s)),this}on(e,t){return this.addListener(e,t)}prependListener(e,t){let s=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!e||!t)return this;if(this._events.has(e)||this._events.set(e,[]),!this._exists(this._events.get(e),t)){const i=[new r(t,s)].concat(this._events.get(e));this._events.set(e,i)}return this}addOnceListener(e,t){return this.addListener(e,t,!0)}once(e,t){return this.addOnceListener(e,t)}prependOnceListener(e,t){return this.prependListener(e,t,!0)}removeListener(e,t){const r=this._events.get(e);if(!r||!r.length)return this;const s=r.findIndex((e=>e.fn===t));return-1!==s&&r.splice(s,1),0===r.length&&this._events.delete(e),this}removeAllListeners(e){return e?this._events.delete(e):this._events=new Map,this}emit(e){const t=this._events.get(e);if(void 0===t)return!1;const r=[];for(var s=arguments.length,i=new Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];for(let e=0;e<t.length;e++){const s=t[e];s.fn(...i),s.once&&r.push(s.fn)}for(let t=0;t<r.length;t++){const s=r[t];this.removeListener(e,s)}return!0}eventNames(){return Array.from(this._events.keys())}listenerCount(e){return this._events.has(e)&&this._events.get(e).length||0}}t.KuzzleEventEmitter=s,e.exports={KuzzleEventEmitter:s}},6159:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Observer=void 0;const s=r(8496),i=r(1742);class n extends Set{constructor(e,t){super(),this.roomId=null,this.index=e,this.collection=t}get ids(){return Array.from(this.values())}get filters(){return{ids:{values:Array.from(this.values())}}}}function o(e,t,r){return`${e}:${t}:${r}`}function l(e,t){return`${e}:${t}`}t.Observer=class{constructor(e,t){this.documentsByCollection=new Map,this.documents=new Map,this.options={pullingDelay:5e3},Reflect.defineProperty(this,"sdk",{value:e}),this.options={...this.options,...t},this.mode="http"===this.sdk.protocol.name?"pulling":"realtime"}stop(e,t,r){return e&&t&&r?this.disposeDocuments(e,t,r):e&&t?this.disposeCollection(e,t):e?Promise.reject(new Error('Missing "collection" argument"')):this.disposeAll()}disposeDocuments(e,t,r){const s=this.documentsByCollection.get(l(e,t));for(let i=0;i<r.length;i++){const n=r[i];this.documents.delete(o(e,t,n._id)),s.delete(n._id)}return 0===s.size&&this.documentsByCollection.delete(l(e,t)),this.watchCollection(e,t)}disposeCollection(e,t){const r=this.documentsByCollection.get(l(e,t));for(let s=0,i=r.ids;s<i.length;s++){const r=i[s];this.documents.delete(o(e,t,r))}return this.documentsByCollection.delete(l(e,t)),"realtime"===this.mode?this.sdk.realtime.unsubscribe(r.roomId):(this.clearPullingTimer(),Promise.resolve())}disposeAll(){const e=[];for(let t=0,r=this.documentsByCollection.values();t<r.length;t++){const s=r[t];s.roomId&&e.push(this.sdk.realtime.unsubscribe(s.roomId))}return"pulling"===this.mode&&e.push(this.clearPullingTimer()),this.documentsByCollection.clear(),this.documents.clear(),Promise.all(e).then((()=>{}))}get(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.sdk.document.get(e,t,r,s).then((r=>this.observe(e,t,r)))}mGet(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i=[];let n;return this.sdk.document.mGet(e,t,r,s).then((r=>{let{successes:s,errors:o}=r;n=o;for(let r=0;r<s.length;r++){const n=s[r];i.push(this.addDocument(e,t,n))}return this.watchCollection(e,t)})).then((()=>({errors:n,successes:i})))}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.sdk.document._search(e,t,r,s).then((e=>{let{response:t,request:r,opts:s}=e;return new i.RealtimeDocumentSearchResult(this.sdk,r,s,t.result,this).start()}))}observe(e,t,r){const s=this.addDocument(e,t,r);return this.watchCollection(e,t).then((()=>s))}addDocument(e,t,r){const i=new s.RealtimeDocument(r),u=l(e,t);return this.documentsByCollection.has(u)||this.documentsByCollection.set(u,new n(e,t)),this.documentsByCollection.get(u).add(r._id),this.documents.set(o(e,t,r._id),i),i}watchCollection(e,t){return"realtime"===this.mode?this.resubscribe(e,t):(this.restartPulling(),Promise.resolve())}restartPulling(){this.clearPullingTimer(),0!==this.documentsByCollection.size&&(this.pullingTimer=setInterval(this.pullingHandler.bind(this),this.options.pullingDelay))}pullingHandler(){const e=[];for(let t=0,r=this.documentsByCollection.values();t<r.length;t++){const s=r[t],i=this.sdk.document.mGet(s.index,s.collection,s.ids).then((e=>{let{successes:t,errors:r}=e;for(let e=0;e<t.length;e++){const r=t[e],i=o(s.index,s.collection,r._id),n=this.documents.get(i);Object.assign(n._source,r._source)}for(let e=0;e<r.length;e++){const t=r[e],i=o(s.index,s.collection,t);this.documents.get(i).deleted=!0,this.documents.delete(i),s.delete(t),0===s.size&&this.documentsByCollection.delete(l(s.index,s.collection))}})).catch((()=>{}));e.push(i)}return Promise.all(e).then((()=>{}))}clearPullingTimer(){this.pullingTimer&&clearInterval(this.pullingTimer)}resubscribe(e,t){const r=this.documentsByCollection.get(l(e,t));return r?0===r.size?r.roomId?this.sdk.realtime.unsubscribe(r.roomId):Promise.resolve():this.sdk.realtime.subscribe(e,t,r.filters,this.notificationHandler.bind(this)).then((e=>{const t=r.roomId;if(r.roomId=e,t)return this.sdk.realtime.unsubscribe(t)})):Promise.resolve()}notificationHandler(e){const{index:t,collection:r,result:s}=e,i=o(t,r,s._id),n=this.documents.get(i);if("delete"!==e.event)return"write"===e.event&&Object.assign(n._source,s._source),Promise.resolve();n.deleted=!0,this.documents.delete(o(t,r,n._id));const u=this.documentsByCollection.get(l(t,r));return u.delete(s._id),0===u.size&&this.documentsByCollection.delete(l(t,r)),this.resubscribe(t,r)}}},8496:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeDocument=void 0,t.RealtimeDocument=class{constructor(e){let{_id:t,_source:r}=e;this._id=t,this._source=r,this.deleted=!1}}},8100:e=>{"use strict";e.exports=class{constructor(e,t,r,s,i){let n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};Reflect.defineProperty(this,"_kuzzle",{value:e.kuzzle}),this.controller=e,this.index=t,this.collection=r,this.callback=i,this.options=n,this.id=null,this.channel=null,this.request={action:"subscribe",body:s,collection:r,controller:"realtime",index:t,scope:this.options.scope,state:this.options.state,users:this.options.users,volatile:this.options.volatile},this.autoResubscribe="boolean"==typeof n.autoResubscribe?n.autoResubscribe:this.kuzzle.autoResubscribe,this.subscribeToSelf="boolean"!=typeof n.subscribeToSelf||n.subscribeToSelf,this._channelListener=this._channelListener.bind(this)}get kuzzle(){return this._kuzzle}subscribe(){return this.kuzzle.query(this.request,this.options).then((e=>(this.id=e.result.roomId,this.channel=e.result.channel,this.kuzzle.protocol.on(this.channel,this._channelListener),e)))}removeListeners(){this.channel&&this.kuzzle.protocol.removeListener(this.channel,this._channelListener)}_channelListener(e){if("TokenExpired"===e.type)return this.kuzzle.tokenExpired();const t=e.volatile&&e.volatile.sdkInstanceId===this.kuzzle.protocol.id;if(this.subscribeToSelf||!t)try{const t=this.callback(e);null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch&&t.catch((t=>{this.kuzzle.emit("callbackError",{error:t,notification:e})}))}catch(t){this.kuzzle.emit("callbackError",{error:t,notification:e})}}}},362:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchBuffer=void 0;const s=r(6847);t.BatchBuffer=class{constructor(){this.indexes=new Map}add(e,t,r,i,n){this.indexes.has(e)||this.indexes.set(e,new Map),this.indexes.get(e).has(t)||this.indexes.get(e).set(t,{documents:[],options:n,promise:new s.InstrumentablePromise});const o=this.indexes.get(e).get(t),l=o.documents.length;return o.options={...o.options,...n},o.documents.push({_id:i,body:r}),{idx:l,promise:o.promise}}}},8232:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchController=void 0;const s=r(7146),i=r(9493),n=r(6250),o=r(4528);class l extends s.DocumentController{constructor(e){let{interval:t=10,maxWriteBufferSize:r=200,maxReadBufferSize:s=200}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e),this.writer=this.createWriter(e,{interval:t,maxReadBufferSize:s,maxWriteBufferSize:r}),this.writer.begin()}async dispose(){await this.writer.dispose()}async create(e,t,r,s,i){const{idx:o,promise:l}=this.writer.addCreate(e,t,r,s,i),{successes:u,errors:c}=await l.promise;if(c.length>0){const s=c.find((e=>{const t=(0,n.omit)(e.document._source,["_kuzzle_info"]),s=r;return JSON.stringify(t)===JSON.stringify(s)}));if(s)throw new Error(`Cannot create document in "${e}":"${t}" : ${s.reason}`)}return u[o]}async replace(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addReplace(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{_id:t}=e;return t===r}));if(c)throw new Error(`Cannot replace document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async createOrReplace(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addCreateOrReplace(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{document:t}=e;return t._id===r}));if(c)throw new Error(`Cannot create or replace document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async update(e,t,r,s,i){const{idx:n,promise:o}=this.writer.addUpdate(e,t,s,r,i),{successes:l,errors:u}=await o.promise,c=u.find((e=>{let{_id:t}=e;return t===r}));if(c)throw new Error(`Cannot update document "${e}":"${t}":"${r}": ${c.reason}`);return l[n]}async get(e,t,r){const{promise:s}=this.writer.addGet(e,t,void 0,r),{successes:i}=await s.promise,n=i.find((e=>{let{_id:t}=e;return t===r}));if(!n)throw new o.KuzzleError({id:"services.storage.not_found",message:`Document "${e}":"${t}":"${r}" not found`});return n}async exists(e,t,r){const{idx:s,promise:i}=this.writer.addExists(e,t,void 0,r);return(await i.promise)[s]}async delete(e,t,r){const{idx:s,promise:i}=this.writer.addDelete(e,t,void 0,r),{successes:n,errors:o}=await i.promise,l=o.find((e=>{let{_id:t}=e;return t===r}));if(l)throw new Error(`Cannot delete document "${e}":"${t}":"${r}" : ${l.reason}`);return n[s]}createWriter(e,t){return new i.BatchWriter(e,t)}}t.BatchController=l},9493:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BatchWriter=void 0;const s=r(362);t.BatchWriter=class{constructor(e){let{interval:t=10,maxWriteBufferSize:r=200,maxReadBufferSize:i=200}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.buffers={create:new s.BatchBuffer,createOrReplace:new s.BatchBuffer,delete:new s.BatchBuffer,exists:new s.BatchBuffer,get:new s.BatchBuffer,replace:new s.BatchBuffer,update:new s.BatchBuffer},this.sdk=e,this.interval=t,this.maxWriteBufferSize=r,this.maxReadBufferSize=i}get addCreate(){return this.buffers.create.add.bind(this.buffers.create)}get addUpdate(){return this.buffers.update.add.bind(this.buffers.update)}get addGet(){return this.buffers.get.add.bind(this.buffers.get)}get addExists(){return this.buffers.exists.add.bind(this.buffers.exists)}get addDelete(){return this.buffers.delete.add.bind(this.buffers.delete)}get addReplace(){return this.buffers.replace.add.bind(this.buffers.replace)}get addCreateOrReplace(){return this.buffers.createOrReplace.add.bind(this.buffers.createOrReplace)}async execute(){const e={};for(let t=0,r=Object.entries(this.buffers);t<r.length;t++){const[s,i]=r[t];e[s]=i}this.prepareRound(),await Promise.all([this.sendCreateBuffer(e.create),this.sendUpdateBuffer(e.update),this.sendCreateOrReplaceBuffer(e.createOrReplace),this.sendDeleteBuffer(e.delete),this.sendExistsBuffer(e.exists),this.sendGetBuffer(e.get),this.sendReplaceBuffer(e.replace)])}begin(){this.prepareRound(),this.timer=setInterval((async()=>{await this.execute()}),this.interval)}async dispose(){await this.execute(),clearInterval(this.timer),this.timer=null}prepareRound(){for(let e=0,t=Object.keys(this.buffers);e<t.length;e++){const r=t[e];this.buffers[r]=new s.BatchBuffer}}async sendWriteBuffer(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s=[];for(let i=0,n=t.indexes.entries();i<n.length;i++){const[t,o]=n[i];for(let i=0,n=o.entries();i<n.length;i++){const[o,{promise:l,documents:u}]=n[i];0!==u.length?s.push(this.sdk.document[e](t,o,u,{...r}).then(l.resolve).catch(l.reject)):l.resolve()}}await Promise.all(s)}sendCreateBuffer(e,t){return this.sendWriteBuffer("mCreate",e,t)}sendUpdateBuffer(e,t){return this.sendWriteBuffer("mUpdate",e,t)}sendReplaceBuffer(e,t){return this.sendWriteBuffer("mReplace",e,t)}sendCreateOrReplaceBuffer(e,t){return this.sendWriteBuffer("mCreateOrReplace",e,t)}async sendGetBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mGet(e,i,l).then(n.resolve).catch(n.reject))}}await Promise.all(t)}async sendExistsBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mGet(e,i,l).then((e=>{let{successes:t}=e;const r=t.map((e=>{let{_id:t}=e;return t})),s=new Array(l.length);for(let e=0;e<s.length;e++)s[e]=r.includes(l[e]);n.resolve(s)})).catch(n.reject))}}await Promise.all(t)}async sendDeleteBuffer(e){const t=[];for(let r=0,s=e.indexes.entries();r<s.length;r++){const[e,i]=s[r];for(let r=0,s=i.entries();r<s.length;r++){const[i,{promise:n,documents:o}]=s[r];if(0===o.length){n.resolve();continue}const l=o.map((e=>{let{_id:t}=e;return t}));t.push(this.sdk.document.mDelete(e,i,l).then(n.resolve).catch(n.reject))}}await Promise.all(t)}}},3026:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._searchAction="search",this._scrollAction="scroll"}}t.DocumentSearchResult=i,e.exports={DocumentSearchResult:i}},7885:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileSearchResult=void 0;const s=r(4103),i=r(2140);class n extends i.SearchResultBase{constructor(e,t,r,i){super(e,t,r,i),this._searchAction="searchProfiles",this._scrollAction="scrollProfiles",this.hits=i.hits.map((e=>new s.Profile(this._kuzzle,e._id,e._source)))}next(){return super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new s.Profile(e._kuzzle,t._id,t._source))),e):null))}}t.ProfileSearchResult=n},1742:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeDocumentSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s,i){super(e,t,r,s),this._searchAction="search",this._scrollAction="scroll",Reflect.defineProperty(this,"observer",{value:i})}start(){const{index:e,collection:t}=this._request,r=[];for(let s=0,i=this.hits;s<i.length;s++){const n=i[s];r.push(this.observer.addDocument(e,t,n))}return this.hits=r,this.observer.watchCollection(e,t).then((()=>this))}next(){return super.next()}_buildNextSearchResult(e){const t=new i(this._kuzzle,this._request,this._options,e,this.observer);return t.fetched+=this.fetched,t.start()}}t.RealtimeDocumentSearchResult=i},896:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RoleSearchResult=void 0;const s=r(3955),i=r(2140);class n extends i.SearchResultBase{constructor(e,t,r,i){super(e,t,r,i),this._searchAction="searchRoles",this._scrollAction=null,this.hits=this._result.hits.map((e=>new s.Role(this._kuzzle,e._id,e._source.controllers)))}next(){return this._request.scroll||this._request.sort?Promise.reject(new Error("only from/size params are allowed for role search")):super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new s.Role(e._kuzzle,t._id,t._source.controllers))),e):null))}}t.RoleSearchResult=n},2140:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultBase=void 0,t.SearchResultBase=class{constructor(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),Reflect.defineProperty(this,"_request",{value:t}),Reflect.defineProperty(this,"_options",{value:r}),Reflect.defineProperty(this,"_result",{value:s}),Reflect.defineProperty(this,"_controller",{value:t.controller,writable:!0}),Reflect.defineProperty(this,"_searchAction",{value:"search",writable:!0}),Reflect.defineProperty(this,"_scrollAction",{value:"scroll",writable:!0}),this.aggregations=s.aggregations,this.hits=s.hits||[],this.fetched=this.hits.length,this.total=s.total||0,this.suggest=s.suggest}next(){if(this.fetched>=this.total)return Promise.resolve(null);if(this._request.scroll)return this._kuzzle.query({action:this._scrollAction,controller:this._request.controller,scroll:this._request.scroll,scrollId:this._result.scrollId}).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)}));if(this._request.size&&this._request.body.sort){const e={...this._request,action:this._searchAction},t=this._result.hits[this._result.hits.length-1];if(!t)return Promise.reject(new Error('Unable to retrieve all results from search: the sort combination must identify one item only. Add document "_id" to the sort.'));let r;if(e.body.search_after=[],r="string"==typeof this._request.body.sort?[this._request.body.sort]:Array.isArray(this._request.body.sort)?this._request.body.sort:Object.keys(this._request.body.sort),0===r.length)return Promise.reject(new Error("Unable to retrieve next results from search: sort param is empty"));for(let s=0,i=r;s<i.length;s++){const r=i[s],n="string"==typeof r?r:Object.keys(r)[0],o="_id"===n?t._id:this._get(t._source,n.split("."));e.body.search_after.push(o)}return this._kuzzle.query(e,this._options).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)}))}return this._request.size?this._request.from>=this._result.total?Promise.resolve(null):this._kuzzle.query({...this._request,action:this._searchAction,from:this.fetched}).then((e=>{let{result:t}=e;return this._buildNextSearchResult(t)})):Promise.reject(new Error("Unable to retrieve next results from search: missing scrollId, from/sort, or from/size params"))}_get(e,t){if(!e)return e;if(1===t.length)return e[t[0]];const r=t.shift();return this._get(e[r],t)}_buildNextSearchResult(e){const t=new(0,this.constructor)(this._kuzzle,this._request,this._options,e);return t.fetched+=this.fetched,t}}},1183:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SpecificationsSearchResult=void 0;const s=r(2140);class i extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._controller="collection",this._searchAction="searchSpecifications",this._scrollAction="scrollSpecifications"}}t.SpecificationsSearchResult=i},4545:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserSearchResult=void 0;const s=r(2140),i=r(3987);class n extends s.SearchResultBase{constructor(e,t,r,s){super(e,t,r,s),this._searchAction="searchUsers",this._scrollAction="scrollUsers",this.hits=this._result.hits.map((e=>new i.User(this._kuzzle,e._id,e._source)))}next(){return super.next().then((e=>e?(e.hits=e._result.hits.map((t=>new i.User(e._kuzzle,t._id,t._source))),e):null))}}t.UserSearchResult=n},4103:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0,t.Profile=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),this._id=t,this.rateLimit=r&&r.rateLimit?r.rateLimit:0,this.policies=r&&r.policies?r.policies:[];for(let e=0,t=Object.entries(r);e<t.length;e++){const[r,s]=t[e];this[r]||(this[r]=s)}}get kuzzle(){return this._kuzzle}getRoles(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.policies&&0!==this.policies.length?this.kuzzle.security.mGetRoles(this.policies.map((e=>e.roleId)),e):Promise.resolve([])}serialize(){return{_id:this._id,policies:this.policies,rateLimit:this.rateLimit}}}},3955:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Role=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),this._id=t,this.controllers=r}get kuzzle(){return this._kuzzle}serialize(){return{_id:this._id,controllers:this.controllers}}}t.Role=r,e.exports={Role:r}},3987:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.User=void 0;class r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Reflect.defineProperty(this,"_kuzzle",{value:e}),Reflect.defineProperty(this,"content",{enumerable:!0,get(){return this._source}}),this._id=t,this._source=r}get kuzzle(){return this._kuzzle}get profileIds(){return this._source.profileIds||[]}getProfiles(){return this.profileIds&&0!==this.profileIds.length?this.kuzzle.security.mGetProfiles(this.profileIds):Promise.resolve([])}serialize(){return{_id:this._id,_source:this._source}}}t.User=r,e.exports={User:r}},4169:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DisconnectionOrigin=void 0,(r=t.DisconnectionOrigin||(t.DisconnectionOrigin={})).WEBSOCKET_AUTH_RENEWAL="websocket/auth-renewal",r.USER_CONNECTION_CLOSED="user/connection-closed",r.NETWORK_ERROR="network/error"},6900: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});const i=s(r(1873)),n=r(147);class o extends n.KuzzleAbstractProtocol{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(e,t,"http"),"string"!=typeof e||""===e)throw new Error("host is required");this._routes={},this._timeout=t.timeout||0,this._customRoutes=t.customRoutes||{},this._defaultHeaders=t.headers||{};for(let e=0,t=Object.keys(this._customRoutes);e<t.length;e++){const r=t[e],s=this._customRoutes[r];for(let e=0,t=Object.keys(s);e<t.length;e++){const i=t[e],n=s[i];if(!("string"==typeof n.url&&n.url.length>0))throw new Error(`Incorrect URL for custom route ${r}:${i}.`);if(!("string"==typeof n.verb&&n.verb.length>0))throw new Error(`Incorrect VERB for custom route ${r}:${i}.`)}}}get http(){return this.routes}get routes(){return this._routes}get protocol(){return this.ssl?"https":"http"}get connected(){return!0}get timeout(){return this._timeout}set timeout(e){this._timeout=e}connect(){if("ready"===this.state)return Promise.resolve();const e={method:"GET",path:"/_publicApi",payload:{headers:this._defaultHeaders}};return this._sendHttpRequest(e).then((e=>{let{result:t,error:r}=e;if(r){if(401===r.status||403===r.status)return this._warn('"server:publicApi" route is restricted for anonymous user.'),this._warn("This route is used by the HTTP protocol to build API URLs."),this._warn("Fallback to static routes, some API routes may be unavailable as well as plugin custom routes"),void(this._routes=i.default);if(404===r.status){const e={method:"GET",path:"/",payload:{headers:this._defaultHeaders}};return this._sendHttpRequest(e).then((e=>{let{result:t,error:r}=e;if(r){if(401!==r.status&&403!==r.status)throw r;this._warn('"server:info" route is restricted for anonymous user.'),this._warn("This route is used by the HTTP protocol to build API URLs."),this._warn('If you want to expose your API routes without disclosing server information you can use "server:publicApi" (available in Kuzzle 1.9.0).'),this._warn("Fallback to static routes, some API routes may be unavailable as well as plugin custom routes"),this._routes=i.default}else this._routes=this._constructRoutes(t.serverInfo.kuzzle.api.routes)}))}throw r}this._routes=this._constructRoutes(t)})).then((()=>{this._routes=Object.assign(this._routes,this._customRoutes),this.clientConnected()})).catch((e=>{const t=new Error(`Unable to connect to kuzzle server at ${this.host}:${this.port}`);throw t.internal=e,this.emit("networkError",t),e}))}enableCookieSupport(){if("undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie cannot be enabled outside of a browser");super.enableCookieSupport()}formatRequest(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.routes[e.controller]&&this.routes[e.controller][e.action];if(!r){const t=new Error(`No URL found for "${e.controller}:${e.action}".`);return void this.emit(e.requestId,{error:t,status:400})}const s=t.verb||r.verb,n={action:void 0,body:void 0,collection:void 0,controller:void 0,headers:{"Content-Type":"application/json",...this._defaultHeaders},index:void 0,meta:void 0,requestId:void 0},o={};for(let t=0,r=Object.keys(e);t<r.length;t++){const l=r[t],u=e[l];"body"===l?"GET"===s?Object.assign(o,u):n.body=JSON.stringify(u):"jwt"===l?n.headers.authorization="Bearer "+u:"volatile"===l?n.headers["x-kuzzle-volatile"]=JSON.stringify(u):"index"===l||"collection"===l?i.default[e.controller]||"GET"!==s?n[l]=u:o[l]=u:Object.prototype.hasOwnProperty.call(n,l)?n[l]=u:null!=u&&(o[l]=u)}const l=/\/:([^/]*)/;let u=r.url,c=l.exec(u);for(;c;){if(!e[c[1]]){const e=new Error(`Missing URL param "${c[1]}" in "${c.input}"`);return void this.emit(n.requestId,{error:e,status:400})}u=u.replace(l,`/${encodeURIComponent(e[c[1]])}`),delete o[c[1]],c=l.exec(u)}const a=[];for(let e=0,t=Object.keys(o);e<t.length;e++){const r=t[e];let s=o[r];const i=encodeURIComponent(r);Array.isArray(s)?a.push(`${i}=${encodeURIComponent(s.join())}`):"boolean"==typeof s?!0===s&&a.push(i):(s="object"==typeof s?JSON.stringify(s):s,a.push(`${i}=${encodeURIComponent(s)}`))}return a.length>0&&(u+="?"+a.join("&")),{method:s,path:u,payload:n}}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=this.formatRequest(e,t);r&&this._sendHttpRequest(r).then((e=>this.emit(r.payload.requestId,e))).catch((e=>this.emit(r.payload.requestId,{error:e})))}_sendHttpRequest(e){let{method:t,path:s,payload:i}=e;if("undefined"==typeof XMLHttpRequest){const e=r(Object(function(){var e=new Error("Cannot find module 'min-req-promise'");throw e.code="MODULE_NOT_FOUND",e}()));"/"!==s[0]&&(s=`/${s}`);const n=`${this.protocol}://${this.host}:${this.port}${s}`,o=i&&i.headers||{};return o["Content-Length"]=Buffer.byteLength(i&&i.body||""),e.request(n,t,{body:i&&i.body,headers:o,timeout:this._timeout}).then((e=>{if(431===e.statusCode)throw new Error("Request query string is too large. Try to use the method with the POST verb instead.");return JSON.parse(e.body)}))}return new Promise(((e,r)=>{const n=new XMLHttpRequest,o=`${this.protocol}://${this.host}:${this.port}${s}`;n.timeout=this._timeout,n.onreadystatechange=()=>{4===n.readyState&&0===n.status&&r(new Error("Cannot connect to host. Is the host online?"))},n.open(t,o),n.withCredentials=this.cookieSupport;for(let e=0,t=Object.entries(i&&i.headers||{});e<t.length;e++){const[r,s]=t[e];n.setRequestHeader(r,s)}n.onload=()=>{try{const t=JSON.parse(n.responseText);e(t)}catch(e){r(e)}},n.send(i&&i.body)}))}_constructRoutes(e){const t=Object.keys(e).map((t=>[t,e[t]])).reduce(((e,t)=>{let[r,s]=t;e[r]={};for(let t=0,i=Object.keys(s);t<i.length;t++){const n=i[t],{http:o}=s[n];o&&1===o.length?e[r][n]=o[0]:o&&o.length>1&&(e[r][n]="document"===r&&"search"===n?l(o):u(o))}return e}),{});for(let e=0,r=Object.keys(this._customRoutes);e<r.length;e++){const s=r[e];t[s]=this._customRoutes[s]}return t}_warn(e){console.warn(e)}}function l(e){return"POST"===e[0].verb?e[0]:e[1]}function u(e){let t=e[0],r=e[0],s=e[0].url.length,i=!0;for(let n=0;n<e.length;n++){const o=e[n];o.url.length!==s&&(i=!1),o.url.length<s&&(t=o,s=o.url.length),"GET"===o.verb&&(r=o)}return i?r:t}t.default=o},7380: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});const i=r(4528),n=r(3189),o=s(r(6900)),l=r(4169);class u extends n.BaseProtocolRealtime{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(super(e,t,"ws"),"string"!=typeof e||""===e)throw new Error("host is required");if("undefined"!=typeof WebSocket)this.WebSocketClient=WebSocket,this.options=null;else if(this.WebSocketClient=r(Object(function(){var e=new Error("Cannot find module 'ws'");throw e.code="MODULE_NOT_FOUND",e}())),this.options={headers:t.headers||null,perMessageDeflate:!1},null!==this.options.headers&&(Array.isArray(this.options.headers)||"object"!=typeof this.options.headers))throw new Error('Invalid "headers" option: expected an object');this._pingInterval="number"==typeof t.pingInterval?t.pingInterval:2e3,this.client=null,this.lasturl=null}_connect(){return new Promise(((e,t)=>{const r=`${this.ssl?"wss":"ws"}://${this.host}:${this.port}`;super.connect(),r!==this.lasturl&&(this.wasConnected=!1,this.lasturl=r),this.client=new this.WebSocketClient(r,this.options),"undefined"!=typeof WebSocket?this.ping=()=>{this.client.send('{"p":1}')}:(this.ping=()=>{this.client.ping()},this.client.on("pong",(()=>{this.waitForPong=!1}))),this.client.onopen=()=>(this.clientConnected(),this.setupPingPong(),e()),this.client.onclose=(e,t)=>{let r,s=t;if("number"==typeof e?r=e:(r=e.code,e.reason&&(s=e.reason)),1e3===r)this.clientDisconnected(l.DisconnectionOrigin.USER_CONNECTION_CLOSED);else if(this.wasConnected){const e=new Error(s);e.status=r,this.clientNetworkError(e)}},this.client.onerror=e=>{let r=e;if(e instanceof Error||(r=!e||"undefined"!=typeof Event&&e instanceof Event?new Error("Connection error"):new Error(e.message||e)),this.clientNetworkError(r),[this.client.CLOSING,this.client.CLOSED].indexOf(this.client.readyState)>-1)return t(r)},this.client.onmessage=e=>{const t=JSON.parse(e.data||e);if(t&&t.p&&2===t.p&&1===Object.keys(t).length)this.waitForPong=!1;else{if("TokenExpired"===t.type)this.emit("tokenExpired");else if(t.room)this.emit(t.room,t);else{this.emit("discarded",t);const e=new i.KuzzleError(t.error,(new Error).stack,this.constructor.name);this.emit("queryError",{error:e,request:t})}this.waitForPong=!1}}}))}connect(){return this.cookieSupport?this._httpProtocol.connect().then((()=>this._connect())):this._connect()}enableCookieSupport(){if("undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie cannot be enabled outside of a browser");super.enableCookieSupport(),this._httpProtocol=new o.default(this.host,{port:this.port,ssl:this.ssl}),this._httpProtocol.enableCookieSupport()}send(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.client||this.client.readyState!==this.client.OPEN)return;if(!this.cookieSupport||"auth"!==e.controller||"login"!==e.action&&"logout"!==e.action&&"refreshToken"!==e.action)return void this.client.send(JSON.stringify(e));const r=this._httpProtocol.formatRequest(e,t);r&&(this.emit("websocketRenewalStart"),this.client&&(this.client.onclose=void 0,this.client.close(1e3)),this.client=null,this.clientDisconnected(l.DisconnectionOrigin.WEBSOCKET_AUTH_RENEWAL),this._httpProtocol._sendHttpRequest(r).then((e=>this.connect().then((()=>{this.emit(r.payload.requestId,e),this.emit("websocketRenewalDone")})))).catch((e=>{this.emit(r.payload.requestId,{error:e}),this.emit("websocketRenewalDone")})))}clientDisconnected(e){clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.clientDisconnected(e)}clientNetworkError(e){clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.clientNetworkError(e)}close(){this.state="offline",this.wasConnected=!1,this.client&&this.client.close(1e3),this.removeAllListeners(),this.client=null,this.stopRetryingToConnect=!0,clearInterval(this.pingIntervalId),this.pingIntervalId=null,super.close()}setupPingPong(){clearInterval(this.pingIntervalId),this.waitForPong=!1,this.pingIntervalId=setInterval((()=>{if(this.client&&this.client.readyState===this.client.OPEN&&!this.waitForPong)return this.ping(),void(this.waitForPong=!0);if(this.waitForPong){const e=new Error("Kuzzle does'nt respond to ping. Connection lost.");e.status=503,clearInterval(this.pingIntervalId),this.client.onclose=void 0,this.client.close(1e3),this.waitForPong=!1,this.clientNetworkError(e)}}),this._pingInterval)}}t.default=u},147:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleAbstractProtocol=void 0;const s=r(4528),i=r(4957),n=r(4898),o=r(3041);class l extends n.KuzzleEventEmitter{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;super(),this._pendingRequests=new Map,this._host=e,this._name=r;const s=parseInt(t.port,10);if(this._port=isNaN(s)?7512:s,void 0!==t.ssl&&void 0!==t.sslConnection)throw new Error('Both "ssl" and "sslConnection" options are set. Use only "ssl".');"boolean"==typeof t.ssl?this._ssl=t.ssl:"boolean"==typeof t.sslConnection?this._ssl=t.sslConnection:this._ssl=443===s||7443===s,this.id=(0,i.uuidv4)(),this.state="offline",this._cookieSupport=!1,Object.keys(t).forEach((e=>{Object.prototype.hasOwnProperty.call(this,e)&&Object.getOwnPropertyDescriptor(this,e).writable&&(this[e]=t[e])}))}get sslConnection(){return this._ssl}get host(){return this._host}get name(){return this._name}get port(){return this._port}get ssl(){return this._ssl}get connected(){return"connected"===this.state}get cookieSupport(){return this._cookieSupport}get pendingRequests(){return this._pendingRequests}enableCookieSupport(){this._cookieSupport=!0}clientConnected(e,t){this.state=e||"ready",this.emit(t?"reconnect":"connect")}close(){this.state="offline",this.clear()}query(e,t){if(!this.isReady())return this.emit("discarded",e),Promise.reject(new Error(`Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: ${JSON.stringify(e)}`));const r=Error().stack,i=new o.PendingRequest(e);return this._pendingRequests.set(e.requestId,i),this.once(e.requestId,(t=>{if(this._pendingRequests.delete(e.requestId),t.error){let n;if(t.error.status)n=new s.KuzzleError(t.error,r,this.constructor.name,e);else{const e=r.split("\n");e[0]="",t.error.stack+="\n"+e.join("\n"),n=t.error}return this.emit("queryError",{error:n,request:e}),"logout"!==e.action&&"security.token.invalid"===n.id&&this.emit("tokenExpired"),i.reject(n)}i.resolve(t)})),this.send(e,t),i.promise}isReady(){return"ready"===this.state}clear(){const e=new Error("Network error: request was sent but no response has been received");for(let t=0,r=this._pendingRequests.values();t<r.length;t++){const s=r[t];s.reject(e),this.removeAllListeners(s.request.requestId),this.emit("discarded",s.request)}this._pendingRequests.clear()}}t.KuzzleAbstractProtocol=l},3041:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PendingRequest=void 0;const s=r(6847);class i extends s.InstrumentablePromise{constructor(e){super(),this.request=e}}t.PendingRequest=i},3189:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseProtocolRealtime=void 0;const s=r(147),i=r(9336),n=r(4169);class o extends s.KuzzleAbstractProtocol{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e,t,arguments.length>2?arguments[2]:void 0),this.autoReconnect="boolean"!=typeof t.autoReconnect||t.autoReconnect,this._reconnectionDelay="number"==typeof t.reconnectionDelay?t.reconnectionDelay:1e3,this.wasConnected=!1,this.stopRetryingToConnect=!1,this.retrying=!1}get reconnectionDelay(){return this._reconnectionDelay}connect(){return this.state="connecting",Promise.resolve()}clientConnected(){super.clientConnected("connected",this.wasConnected),this.state="connected",this.wasConnected=!0,this.stopRetryingToConnect=!1}clientDisconnected(e){this.clear(),this.emit("disconnect",{origin:e})}clientNetworkError(e){this.isReady()&&this.emit("disconnect",{origin:n.DisconnectionOrigin.NETWORK_ERROR}),this.state="offline",this.clear();const t=new Error(`Unable to connect to kuzzle server at ${this.host}:${this.port}: ${e.message} (ws status=${e.status})`);if(this.emit("networkError",t),this.autoReconnect&&!this.retrying&&!this.stopRetryingToConnect){this.retrying=!0;const e=(0,i.getBrowserWindow)();if((0,i.isBrowser)()&&"object"==typeof e.navigator&&!1===e.navigator.onLine)return void e.addEventListener("online",(()=>{this.retrying=!1,this.connect().catch((e=>this.clientNetworkError(e)))}),{once:!0});setTimeout((()=>{this.retrying=!1,this.connect().catch((e=>this.clientNetworkError(e)))}),this.reconnectionDelay)}}isReady(){return"connected"===this.state}}t.BaseProtocolRealtime=o},1076: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.Http=t.WebSocket=void 0;var i=r(7380);Object.defineProperty(t,"WebSocket",{enumerable:!0,get:function(){return s(i).default}});var n=r(6900);Object.defineProperty(t,"Http",{enumerable:!0,get:function(){return s(n).default}})},3405:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},1977:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},323:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8694:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Document=void 0,t.Document=class{}},9468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8811:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8114:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},6687:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3209:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},989:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2121:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},4296:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3044: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}),i(r(3405),t),i(r(8694),t),i(r(9468),t),i(r(8811),t),i(r(6253),t),i(r(6687),t),i(r(3209),t),i(r(4296),t),i(r(1977),t),i(r(6231),t),i(r(2690),t),i(r(8114),t),i(r(989),t),i(r(2121),t),i(r(323),t)},6231:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2690:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8733:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Deprecation=void 0,t.Deprecation=class{constructor(e){this.deprecationWarning=!1}logDeprecation(e){if(this.deprecationWarning&&e.deprecations&&e.deprecations.length)for(let t=0,r=e.deprecations;t<r.length;t++){const e=r[t];console.warn(e.message)}return e}}},9336:(e,t)=>{"use strict";function r(){let e;try{if(e||(e=globalThis.window),e)return e}catch{}try{if(e||(e=global.window),e)return e}catch{}try{if(e||(e=window),e)return e}catch{}}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.getBrowserWindow=void 0,t.getBrowserWindow=r,t.isBrowser=function(){const e=r();return null!=e&&"object"==typeof e}},4219:(e,t,r)=>{let s;const{isBrowser:i,getBrowserWindow:n}=r(9336);e.exports={debug:function(e,t){if(function(){try{if(!i())return s||(s=(process.env.DEBUG||"").includes("kuzzle-sdk")),s;const e=n();return e.debugKuzzleSdk||e.location&&null!==new URL(e.location).searchParams.get("debugKuzzleSdk")}catch(e){return!1}}()&&(console.log(e),t)){const e=i()?t:JSON.stringify(t);console.log(e)}}}},6250:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.omit=void 0,t.omit=function(e,t){const r={};for(let s=0,i=Object.entries(e);s<i.length;s++){const[e,n]=i[s];t.includes(e)||(r[e]=n)}return r}},8964:e=>{const t=e=>Object.assign({},{apiNamespace:"__proxy__",name:"object",deprecated:[],exposeApi:!1,seal:!0,sealGet:!1,warnDeprecationOnce:!0},e),r=e=>{if(!e)return[];const t=Object.getOwnPropertyNames(e.prototype||e),i=Object.getPrototypeOf(e);return s([...t,...r(i)])},s=e=>[...new Set(e)];e.exports={proxify:function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"object"!=typeof e&&"function"!=typeof e)throw Error("proxify only applies on non-null object");const i=t(s),n=new Set(["inspect"]),o=new Set(i.deprecated),l=new Set,u=e=>{const t=`${i.name}.${e}`;i.warnDeprecationOnce&&l.has(t)||(l.add(t),console.warn(`Warning: ${t} is deprecated`))};i.exposeApi&&(e[i.apiNamespace]={registerProp:e=>n.add(e),unregisterProp:e=>n.delete(e),hasProp:e=>n.has(e)}),[...Object.getOwnPropertyNames(e),...r(e)].forEach((e=>n.add(e)));const c={get:(e,t)=>{if(i.sealGet&&!n.has(t))throw new Error(`${i.name}.${t} is not defined`);return o.has(t)&&u(t),e[t]},set:(e,t,r)=>{if(i.seal&&!n.has(t))throw new Error(`Cannot set a value to the undefined '${t}' property in '${i.name}'`);return o.has(t)&&u(t),e[t]=r,!0}};return new Proxy(e,c)}}},4843:e=>{"use strict";e.exports={hilightUserCode:function(e){return e.includes(" at ")?e.includes("sdk-javascript/src/")||-1===e.indexOf("at /")&&"/"!==e.charAt(e.indexOf("(")+1)||e.includes("node_modules")?" "+e:">"+e:e}}},4957:e=>{const t=e=>e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,t);e.exports={uuidv4:t}},1873:e=>{"use strict";e.exports=JSON.parse('{"auth":{"login":{"verb":"POST","url":"/_login/:strategy"},"logout":{"url":"/_logout","verb":"POST"},"getCurrentUser":{"url":"/users/_me","verb":"GET"},"getMyRights":{"url":"/users/_me/_rights","verb":"GET"},"checkToken":{"url":"/_checkToken","verb":"POST"},"updateSelf":{"url":"/_updateSelf","verb":"PUT"},"getStrategies":{"url":"/strategies","verb":"GET"},"createMyCredentials":{"url":"/credentials/:strategy/_me/_create","verb":"POST"},"updateMyCredentials":{"url":"/credentials/:strategy/_me/_update","verb":"PUT"},"credentialsExist":{"url":"/credentials/:strategy/_me/_exists","verb":"GET"},"validateMyCredentials":{"url":"/credentials/:strategy/_me/_validate","verb":"POST"},"deleteMyCredentials":{"url":"/credentials/:strategy/_me","verb":"DELETE"},"getMyCredentials":{"url":"/credentials/:strategy/_me","verb":"GET"},"refreshToken":{"url":"/_refreshToken","verb":"POST"}},"bulk":{"deleteByQuery":{"url":"/:index/:collection/_bulk/_query","verb":"DELETE"},"import":{"verb":"POST","url":"/:index/:collection/_bulk"},"write":{"verb":"POST","url":"/:index/:collection/_write"},"mWrite":{"verb":"POST","url":"/:index/:collection/_mWrite"},"updateByQuery":{"url":"/:index/:collection/_bulk/_query","verb":"PATCH"}},"document":{"create":{"verb":"POST","url":"/:index/:collection/_create"},"scroll":{"url":"/_scroll/:scrollId","verb":"GET"},"exists":{"url":"/:index/:collection/:_id/_exists","verb":"GET"},"get":{"url":"/:index/:collection/:_id","verb":"GET"},"mGet":{"url":"/:index/:collection/_mGet","verb":"POST"},"count":{"url":"/:index/:collection/_count","verb":"POST"},"mCreate":{"url":"/:index/:collection/_mCreate","verb":"POST"},"createOrReplace":{"url":"/:index/:collection/:_id","verb":"PUT"},"mCreateOrReplace":{"url":"/:index/:collection/_mCreateOrReplace","verb":"PUT"},"update":{"url":"/:index/:collection/:_id/_update","verb":"PATCH"},"updateByQuery":{"url":"/:index/:collection/_query","verb":"PUT"},"mUpdate":{"url":"/:index/:collection/_mUpdate","verb":"PUT"},"mUpsert":{"url":"/:index/:collection/_mUpsert","verb":"POST"},"replace":{"url":"/:index/:collection/:_id/_replace","verb":"PUT"},"mReplace":{"url":"/:index/:collection/_mReplace","verb":"PUT"},"delete":{"url":"/:index/:collection/:_id","verb":"DELETE"},"mDelete":{"url":"/:index/:collection/_mDelete","verb":"DELETE"},"deleteByQuery":{"url":"/:index/:collection/_query","verb":"DELETE"},"validate":{"url":"/:index/:collection/_validate","verb":"POST"},"search":{"url":"/:index/:collection/_search","verb":"GET"}},"security":{"createFirstAdmin":{"verb":"POST","url":"/_createFirstAdmin"},"createRestrictedUser":{"verb":"POST","url":"/users/_createRestricted"},"createUser":{"verb":"POST","url":"/users/_create"},"getRoleMapping":{"url":"/roles/_mapping","verb":"GET"},"updateRoleMapping":{"url":"/roles/_mapping","verb":"PUT"},"getProfileMapping":{"url":"/profiles/_mapping","verb":"GET"},"updateProfileMapping":{"url":"/profiles/_mapping","verb":"PUT"},"getUserMapping":{"url":"/users/_mapping","verb":"GET"},"updateUserMapping":{"url":"/users/_mapping","verb":"PUT"},"getRole":{"url":"/roles/:_id","verb":"GET"},"mGetRoles":{"url":"/roles/_mGet","verb":"POST"},"searchRoles":{"url":"/roles/_search","verb":"POST"},"createOrReplaceRole":{"url":"/roles/:_id","verb":"PUT"},"createRole":{"url":"/roles/:_id/_create","verb":"POST"},"deleteRole":{"url":"/roles/:_id","verb":"DELETE"},"getProfile":{"url":"/profiles/:_id","verb":"GET"},"mGetProfiles":{"url":"/profiles/_mGet","verb":"POST"},"createOrReplaceProfile":{"url":"/profiles/:_id","verb":"PUT"},"createProfile":{"url":"/profiles/:_id/_create","verb":"POST"},"deleteProfile":{"url":"/profiles/:_id","verb":"DELETE"},"searchProfiles":{"url":"/profiles/_search","verb":"POST"},"getUser":{"url":"/users/:_id","verb":"GET"},"getProfileRights":{"url":"/profiles/:_id/_rights","verb":"GET"},"getUserRights":{"url":"/users/:_id/_rights","verb":"GET"},"getUserStrategies":{"url":"/users/:_id/_strategies","verb":"GET"},"searchUsers":{"url":"/users/_search","verb":"POST"},"deleteUser":{"url":"/users/:_id","verb":"DELETE"},"updateUser":{"url":"/users/:_id/_update","verb":"PUT"},"replaceUser":{"url":"/users/:_id/_replace","verb":"PUT"},"updateProfile":{"url":"/profiles/:_id/_update","verb":"PUT"},"updateRole":{"url":"/roles/:_id/_update","verb":"PUT"},"mDeleteProfiles":{"url":"/profiles/_mDelete","verb":"POST"},"mDeleteRoles":{"url":"/roles/_mDelete","verb":"POST"},"mDeleteUsers":{"url":"/users/_mDelete","verb":"POST"},"scrollUsers":{"url":"/users/_scroll/:scrollId","verb":"GET"},"scrollProfiles":{"url":"/profiles/_scroll/:scrollId","verb":"GET"},"createCredentials":{"url":"/credentials/:strategy/:_id/_create","verb":"POST"},"updateCredentials":{"url":"/credentials/:strategy/:_id/_update","verb":"PUT"},"hasCredentials":{"url":"/credentials/:strategy/:_id/_exists","verb":"GET"},"validateCredentials":{"url":"/credentials/:strategy/:_id/_validate","verb":"POST"},"deleteCredentials":{"url":"/credentials/:strategy/:_id","verb":"DELETE"},"getCredentials":{"url":"/credentials/:strategy/:_id","verb":"GET"},"getCredentialsById":{"url":"/credentials/:strategy/:_id/_byId","verb":"GET"},"getCredentialFields":{"url":"/credentials/:strategy/_fields","verb":"GET"},"getAllCredentialFields":{"url":"/credentials/_fields","verb":"GET"}},"collection":{"update":{"url":"/:index/:collection/","verb":"POST"},"updateMapping":{"url":"/:index/:collection/_mapping","verb":"PUT"},"getMapping":{"url":"/:index/:collection/_mapping","verb":"GET"},"getSpecifications":{"url":"/:index/:collection/_specifications","verb":"GET"},"searchSpecifications":{"url":"/validations/_search","verb":"POST"},"scrollSpecifications":{"url":"/validations/_scroll/:scrollId","verb":"GET"},"updateSpecifications":{"url":"/:index/:collection/_specifications","verb":"PUT"},"deleteSpecifications":{"url":"/:index/:collection/_specifications","verb":"DELETE"},"validateSpecifications":{"url":"/:index/:collection/_validateSpecifications","verb":"POST"},"truncate":{"url":"/:index/:collection/_truncate","verb":"DELETE"},"list":{"url":"/:index/_list","verb":"GET"},"exists":{"url":"/:index/:collection/_exists","verb":"GET"},"create":{"url":"/:index/:collection","verb":"PUT"}},"index":{"mDelete":{"url":"/_mdelete","verb":"DELETE"},"create":{"url":"/:index/_create","verb":"POST"},"delete":{"url":"/:index","verb":"DELETE"},"refresh":{"url":"/:index/_refresh","verb":"POST"},"list":{"url":"/_list","verb":"GET"},"refreshInternal":{"url":"/_refreshInternal","verb":"POST"},"getAutoRefresh":{"url":"/:index/_autoRefresh","verb":"GET"},"setAutoRefresh":{"url":"/:index/_autoRefresh","verb":"POST"},"exists":{"url":"/:index/_exists","verb":"GET"}},"ms":{"append":{"url":"/ms/_append/:_id","verb":"POST"},"bitcount":{"url":"/ms/_bitcount/:_id","verb":"GET"},"bitop":{"url":"/ms/_bitop/:_id","verb":"POST"},"bitpos":{"url":"/ms/_bitpos/:_id","verb":"GET"},"dbsize":{"url":"/ms/_dbsize","verb":"GET"},"decrby":{"url":"/ms/_decrby/:_id","verb":"POST"},"del":{"url":"/ms","verb":"DELETE"},"expire":{"url":"/ms/_expire/:_id","verb":"POST"},"expireat":{"url":"/ms/_expireat/:_id","verb":"POST"},"flushdb":{"url":"/ms/_flushdb","verb":"POST"},"geoadd":{"url":"/ms/_geoadd/:_id","verb":"POST"},"geodist":{"url":"/ms/_geodist/:_id/:member1/:member2","verb":"GET"},"geohash":{"url":"/ms/_geohash/:_id","verb":"GET"},"georadius":{"url":"/ms/_georadius/:_id","verb":"GET"},"georadiusbymember":{"url":"/ms/_georadiusbymember/:_id","verb":"GET"},"getbit":{"url":"/ms/_getbit/:_id","verb":"GET"},"getrange":{"url":"/ms/_getrange/:_id","verb":"GET"},"hdel":{"url":"/ms/_hdel/:_id","verb":"DELETE"},"hmget":{"url":"/ms/_hmget/:_id","verb":"GET"},"hexists":{"url":"/ms/_hexists/:_id/:field","verb":"GET"},"hincrby":{"url":"/ms/_hincrby/:_id","verb":"POST"},"hmset":{"url":"/ms/_hmset/:_id","verb":"POST"},"hset":{"url":"/ms/_hset/:_id","verb":"POST"},"hstrlen":{"url":"/ms/_hstrlen/:_id/:field","verb":"GET"},"keys":{"url":"/ms/_keys/:pattern","verb":"GET"},"lindex":{"url":"/ms/_lindex/:_id/:idx","verb":"GET"},"linsert":{"url":"/ms/_linsert/:_id","verb":"POST"},"lpush":{"url":"/ms/_lpush/:_id","verb":"POST"},"lrange":{"url":"/ms/_lrange/:_id","verb":"GET"},"lrem":{"url":"/ms/_lrem/:_id","verb":"DELETE"},"lset":{"url":"/ms/_lset/:_id","verb":"POST"},"ltrim":{"url":"/ms/_ltrim/:_id","verb":"POST"},"mexecute":{"url":"/ms/_mexecute","verb":"POST"},"mget":{"url":"/ms/_mget","verb":"GET"},"mset":{"url":"/ms/_mset","verb":"POST"},"object":{"url":"/ms/_object/:_id","verb":"GET"},"pexpire":{"url":"/ms/_pexpire/:_id","verb":"POST"},"pexpireat":{"url":"/ms/_pexpireat/:_id","verb":"POST"},"pfadd":{"url":"/ms/_pfadd/:_id","verb":"POST"},"pfmerge":{"url":"/ms/_pfmerge/:_id","verb":"POST"},"ping":{"url":"/ms/_ping","verb":"GET"},"psetex":{"url":"/ms/_psetex/:_id","verb":"POST"},"randomkey":{"url":"/ms/_randomkey","verb":"GET"},"rename":{"url":"/ms/_rename/:_id","verb":"POST"},"renamenx":{"url":"/ms/_renamenx/:_id","verb":"POST"},"rpoplpush":{"url":"/ms/_rpoplpush","verb":"POST"},"sadd":{"url":"/ms/_sadd/:_id","verb":"POST"},"scan":{"url":"/ms/_scan","verb":"GET"},"sdiff":{"url":"/ms/_sdiff/:_id","verb":"GET"},"sdiffstore":{"url":"/ms/_sdiffstore/:_id","verb":"POST"},"set":{"url":"/ms/_set/:_id","verb":"POST"},"setex":{"url":"/ms/_setex/:_id","verb":"POST"},"setnx":{"url":"/ms/_setnx/:_id","verb":"POST"},"sinterstore":{"url":"/ms/_sinterstore","verb":"POST"},"sismember":{"url":"/ms/_sismember/:_id/:member","verb":"GET"},"smove":{"url":"/ms/_smove/:_id","verb":"POST"},"sort":{"url":"/ms/_sort/:_id","verb":"POST"},"spop":{"url":"/ms/_spop/:_id","verb":"POST"},"srandmember":{"url":"/ms/_srandmember/:_id","verb":"GET"},"srem":{"url":"/ms/_srem/:_id","verb":"DELETE"},"sscan":{"url":"/ms/_sscan/:_id","verb":"GET"},"sunion":{"url":"/ms/_sunion","verb":"GET"},"sunionstore":{"url":"/ms/_sunionstore","verb":"POST"},"time":{"url":"/ms/_time","verb":"GET"},"touch":{"url":"/ms/_touch","verb":"POST"},"zadd":{"url":"/ms/_zadd/:_id","verb":"POST"},"zcount":{"url":"/ms/_zcount/:_id","verb":"GET"},"zincrby":{"url":"/ms/_zincrby/:_id","verb":"POST"},"zinterstore":{"url":"/ms/_zinterstore/:_id","verb":"POST"},"zlexcount":{"url":"/ms/_zlexcount/:_id","verb":"GET"},"zrange":{"url":"/ms/_zrange/:_id","verb":"GET"},"zrangebylex":{"url":"/ms/_zrangebylex/:_id","verb":"GET"},"zrangebyscore":{"url":"/ms/_zrangebyscore/:_id","verb":"GET"},"zrem":{"url":"/ms/_zrem/:_id","verb":"DELETE"},"zremrangebylex":{"url":"/ms/_zremrangebylex/:_id","verb":"DELETE"},"zremrangebyrank":{"url":"/ms/_zremrangebyrank/:_id","verb":"DELETE"},"zremrangebyscore":{"url":"/ms/_zremrangebyscore/:_id","verb":"DELETE"},"zrevrangebylex":{"url":"/ms/_zrevrangebylex/:_id","verb":"GET"},"zrevrangebyscore":{"url":"/ms/_zrevrangebyscore/:_id","verb":"GET"},"zrevrank":{"url":"/ms/_zrevrank/:_id/:member","verb":"GET"},"zunionstore":{"url":"/ms/_zunionstore/:_id","verb":"POST"},"zcard":{"url":"/ms/_zcard/:_id","verb":"GET"},"type":{"url":"/ms/_type/:_id","verb":"GET"},"ttl":{"url":"/ms/_ttl/:_id","verb":"GET"},"strlen":{"url":"/ms/_strlen/:_id","verb":"GET"},"smembers":{"url":"/ms/_smembers/:_id","verb":"GET"},"scard":{"url":"/ms/_scard/:_id","verb":"GET"},"rpop":{"url":"/ms/_rpop/:_id","verb":"POST"},"pttl":{"url":"/ms/_pttl/:_id","verb":"GET"},"persist":{"url":"/ms/_persist/:_id","verb":"POST"},"lpop":{"url":"/ms/_lpop/:_id","verb":"POST"},"llen":{"url":"/ms/_llen/:_id","verb":"GET"},"incr":{"url":"/ms/_incr/:_id","verb":"POST"},"hvals":{"url":"/ms/_hvals/:_id","verb":"GET"},"hlen":{"url":"/ms/_hlen/:_id","verb":"GET"},"hkeys":{"url":"/ms/_hkeys/:_id","verb":"GET"},"hgetall":{"url":"/ms/_hgetall/:_id","verb":"GET"},"get":{"url":"/ms/:_id","verb":"GET"},"decr":{"url":"/ms/_decr/:_id","verb":"POST"},"rpushx":{"url":"/ms/_rpushx/:_id","verb":"POST"},"lpushx":{"url":"/ms/_lpushx/:_id","verb":"POST"},"getset":{"url":"/ms/_getset/:_id","verb":"POST"},"sinter":{"url":"/ms/_sinter","verb":"GET"},"pfcount":{"url":"/ms/_pfcount","verb":"GET"},"incrbyfloat":{"url":"/ms/_incrbyfloat/:_id","verb":"POST"},"incrby":{"url":"/ms/_incrby/:_id","verb":"POST"},"geopos":{"url":"/ms/_geopos/:_id","verb":"GET"},"hget":{"url":"/ms/_hget/:_id/:field","verb":"GET"},"hsetnx":{"url":"/ms/_hsetnx/:_id","verb":"POST"},"msetnx":{"url":"/ms/_msetnx","verb":"POST"},"rpush":{"url":"/ms/_rpush/:_id","verb":"POST"},"hincrbyfloat":{"url":"/ms/_hincrbyfloat/:_id","verb":"POST"},"zrevrange":{"url":"/ms/_zrevrange/:_id","verb":"GET"},"zrank":{"url":"/ms/_zrank/:_id/:member","verb":"GET"},"zscore":{"url":"/ms/_zscore/:_id/:member","verb":"GET"},"zscan":{"url":"/ms/_zscan/:_id","verb":"GET"},"hscan":{"url":"/ms/_hscan/:_id","verb":"GET"},"exists":{"url":"/ms/_exists","verb":"GET"}},"memoryStorage":{"append":{"url":"/ms/_append/:_id","verb":"POST"},"bitcount":{"url":"/ms/_bitcount/:_id","verb":"GET"},"bitop":{"url":"/ms/_bitop/:_id","verb":"POST"},"bitpos":{"url":"/ms/_bitpos/:_id","verb":"GET"},"dbsize":{"url":"/ms/_dbsize","verb":"GET"},"decrby":{"url":"/ms/_decrby/:_id","verb":"POST"},"del":{"url":"/ms","verb":"DELETE"},"expire":{"url":"/ms/_expire/:_id","verb":"POST"},"expireat":{"url":"/ms/_expireat/:_id","verb":"POST"},"flushdb":{"url":"/ms/_flushdb","verb":"POST"},"geoadd":{"url":"/ms/_geoadd/:_id","verb":"POST"},"geodist":{"url":"/ms/_geodist/:_id/:member1/:member2","verb":"GET"},"geohash":{"url":"/ms/_geohash/:_id","verb":"GET"},"georadius":{"url":"/ms/_georadius/:_id","verb":"GET"},"georadiusbymember":{"url":"/ms/_georadiusbymember/:_id","verb":"GET"},"getbit":{"url":"/ms/_getbit/:_id","verb":"GET"},"getrange":{"url":"/ms/_getrange/:_id","verb":"GET"},"hdel":{"url":"/ms/_hdel/:_id","verb":"DELETE"},"hmget":{"url":"/ms/_hmget/:_id","verb":"GET"},"hexists":{"url":"/ms/_hexists/:_id/:field","verb":"GET"},"hincrby":{"url":"/ms/_hincrby/:_id","verb":"POST"},"hmset":{"url":"/ms/_hmset/:_id","verb":"POST"},"hset":{"url":"/ms/_hset/:_id","verb":"POST"},"hstrlen":{"url":"/ms/_hstrlen/:_id/:field","verb":"GET"},"keys":{"url":"/ms/_keys/:pattern","verb":"GET"},"lindex":{"url":"/ms/_lindex/:_id/:idx","verb":"GET"},"linsert":{"url":"/ms/_linsert/:_id","verb":"POST"},"lpush":{"url":"/ms/_lpush/:_id","verb":"POST"},"lrange":{"url":"/ms/_lrange/:_id","verb":"GET"},"lrem":{"url":"/ms/_lrem/:_id","verb":"DELETE"},"lset":{"url":"/ms/_lset/:_id","verb":"POST"},"ltrim":{"url":"/ms/_ltrim/:_id","verb":"POST"},"mget":{"url":"/ms/_mget","verb":"GET"},"mset":{"url":"/ms/_mset","verb":"POST"},"object":{"url":"/ms/_object/:_id","verb":"GET"},"pexpire":{"url":"/ms/_pexpire/:_id","verb":"POST"},"pexpireat":{"url":"/ms/_pexpireat/:_id","verb":"POST"},"pfadd":{"url":"/ms/_pfadd/:_id","verb":"POST"},"pfmerge":{"url":"/ms/_pfmerge/:_id","verb":"POST"},"ping":{"url":"/ms/_ping","verb":"GET"},"psetex":{"url":"/ms/_psetex/:_id","verb":"POST"},"randomkey":{"url":"/ms/_randomkey","verb":"GET"},"rename":{"url":"/ms/_rename/:_id","verb":"POST"},"renamenx":{"url":"/ms/_renamenx/:_id","verb":"POST"},"rpoplpush":{"url":"/ms/_rpoplpush","verb":"POST"},"sadd":{"url":"/ms/_sadd/:_id","verb":"POST"},"scan":{"url":"/ms/_scan","verb":"GET"},"sdiff":{"url":"/ms/_sdiff/:_id","verb":"GET"},"sdiffstore":{"url":"/ms/_sdiffstore/:_id","verb":"POST"},"set":{"url":"/ms/_set/:_id","verb":"POST"},"setex":{"url":"/ms/_setex/:_id","verb":"POST"},"setnx":{"url":"/ms/_setnx/:_id","verb":"POST"},"sinterstore":{"url":"/ms/_sinterstore","verb":"POST"},"sismember":{"url":"/ms/_sismember/:_id/:member","verb":"GET"},"smove":{"url":"/ms/_smove/:_id","verb":"POST"},"sort":{"url":"/ms/_sort/:_id","verb":"POST"},"spop":{"url":"/ms/_spop/:_id","verb":"POST"},"srandmember":{"url":"/ms/_srandmember/:_id","verb":"GET"},"srem":{"url":"/ms/_srem/:_id","verb":"DELETE"},"sscan":{"url":"/ms/_sscan/:_id","verb":"GET"},"sunion":{"url":"/ms/_sunion","verb":"GET"},"sunionstore":{"url":"/ms/_sunionstore","verb":"POST"},"time":{"url":"/ms/_time","verb":"GET"},"touch":{"url":"/ms/_touch","verb":"POST"},"zadd":{"url":"/ms/_zadd/:_id","verb":"POST"},"zcount":{"url":"/ms/_zcount/:_id","verb":"GET"},"zincrby":{"url":"/ms/_zincrby/:_id","verb":"POST"},"zinterstore":{"url":"/ms/_zinterstore/:_id","verb":"POST"},"zlexcount":{"url":"/ms/_zlexcount/:_id","verb":"GET"},"zrange":{"url":"/ms/_zrange/:_id","verb":"GET"},"zrangebylex":{"url":"/ms/_zrangebylex/:_id","verb":"GET"},"zrangebyscore":{"url":"/ms/_zrangebyscore/:_id","verb":"GET"},"zrem":{"url":"/ms/_zrem/:_id","verb":"DELETE"},"zremrangebylex":{"url":"/ms/_zremrangebylex/:_id","verb":"DELETE"},"zremrangebyrank":{"url":"/ms/_zremrangebyrank/:_id","verb":"DELETE"},"zremrangebyscore":{"url":"/ms/_zremrangebyscore/:_id","verb":"DELETE"},"zrevrangebylex":{"url":"/ms/_zrevrangebylex/:_id","verb":"GET"},"zrevrangebyscore":{"url":"/ms/_zrevrangebyscore/:_id","verb":"GET"},"zrevrank":{"url":"/ms/_zrevrank/:_id/:member","verb":"GET"},"zunionstore":{"url":"/ms/_zunionstore/:_id","verb":"POST"},"zcard":{"url":"/ms/_zcard/:_id","verb":"GET"},"type":{"url":"/ms/_type/:_id","verb":"GET"},"ttl":{"url":"/ms/_ttl/:_id","verb":"GET"},"strlen":{"url":"/ms/_strlen/:_id","verb":"GET"},"smembers":{"url":"/ms/_smembers/:_id","verb":"GET"},"scard":{"url":"/ms/_scard/:_id","verb":"GET"},"rpop":{"url":"/ms/_rpop/:_id","verb":"POST"},"pttl":{"url":"/ms/_pttl/:_id","verb":"GET"},"persist":{"url":"/ms/_persist/:_id","verb":"POST"},"lpop":{"url":"/ms/_lpop/:_id","verb":"POST"},"llen":{"url":"/ms/_llen/:_id","verb":"GET"},"incr":{"url":"/ms/_incr/:_id","verb":"POST"},"hvals":{"url":"/ms/_hvals/:_id","verb":"GET"},"hlen":{"url":"/ms/_hlen/:_id","verb":"GET"},"hkeys":{"url":"/ms/_hkeys/:_id","verb":"GET"},"hgetall":{"url":"/ms/_hgetall/:_id","verb":"GET"},"get":{"url":"/ms/:_id","verb":"GET"},"decr":{"url":"/ms/_decr/:_id","verb":"POST"},"rpushx":{"url":"/ms/_rpushx/:_id","verb":"POST"},"lpushx":{"url":"/ms/_lpushx/:_id","verb":"POST"},"getset":{"url":"/ms/_getset/:_id","verb":"POST"},"sinter":{"url":"/ms/_sinter","verb":"GET"},"pfcount":{"url":"/ms/_pfcount","verb":"GET"},"incrbyfloat":{"url":"/ms/_incrbyfloat/:_id","verb":"POST"},"incrby":{"url":"/ms/_incrby/:_id","verb":"POST"},"geopos":{"url":"/ms/_geopos/:_id","verb":"GET"},"hget":{"url":"/ms/_hget/:_id/:field","verb":"GET"},"hsetnx":{"url":"/ms/_hsetnx/:_id","verb":"POST"},"msetnx":{"url":"/ms/_msetnx","verb":"POST"},"rpush":{"url":"/ms/_rpush/:_id","verb":"POST"},"hincrbyfloat":{"url":"/ms/_hincrbyfloat/:_id","verb":"POST"},"zrevrange":{"url":"/ms/_zrevrange/:_id","verb":"GET"},"zrank":{"url":"/ms/_zrank/:_id/:member","verb":"GET"},"zscore":{"url":"/ms/_zscore/:_id/:member","verb":"GET"},"zscan":{"url":"/ms/_zscan/:_id","verb":"GET"},"hscan":{"url":"/ms/_hscan/:_id","verb":"GET"},"exists":{"url":"/ms/_exists","verb":"GET"}},"realtime":{"list":{"url":"/_listSubscriptions","verb":"GET"},"publish":{"url":"/:index/:collection/_publish","verb":"POST"}},"server":{"getStats":{"url":"/_getStats","verb":"GET"},"getLastStats":{"url":"/_getLastStats","verb":"GET"},"getAllStats":{"url":"/_getAllStats","verb":"GET"},"getConfig":{"url":"/_getConfig","verb":"GET"},"adminExists":{"url":"/_adminExists","verb":"GET"},"now":{"url":"/_now","verb":"GET"},"healthCheck":{"url":"/_healthCheck","verb":"GET"},"info":{"url":"/","verb":"GET"}},"admin":{"resetKuzzleData":{"url":"/admin/_resetKuzzleData/","verb":"POST"},"resetCache":{"url":"/admin/_resetCache","verb":"POST"},"resetSecurity":{"url":"/admin/_resetSecurity/","verb":"POST"},"resetDatabase":{"url":"/admin/_resetDatabase/","verb":"POST"},"dump":{"url":"/admin/_dump","verb":"POST"},"shutdown":{"url":"/admin/_shutdown/","verb":"POST"},"loadFixtures":{"url":"/admin/_loadFixtures/","verb":"POST"},"loadMappings":{"url":"/admin/_loadMappings/","verb":"POST"},"loadSecurities":{"url":"/admin/_loadSecurities/","verb":"POST"}}}')}},t={},function r(s){var i=t[s];if(void 0!==i)return i.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,r),n.exports}(1045);var e,t}));
3
3
  //# sourceMappingURL=kuzzle.js.map
@@ -1 +1 @@
1
- /*! Kuzzle Javascript SDK version 7.10.5 */
1
+ /*! Kuzzle Javascript SDK version 7.10.7 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kuzzle-sdk",
3
- "version": "7.10.5",
3
+ "version": "7.10.7",
4
4
  "description": "Official Javascript SDK for Kuzzle",
5
5
  "author": "The Kuzzle Team <support@kuzzle.io>",
6
6
  "repository": {
package/src/Kuzzle.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { KuzzleEventEmitter } from "./core/KuzzleEventEmitter";
1
+ import { KuzzleEventEmitter, PrivateAndPublicSDKEvents, PublicKuzzleEvents } from "./core/KuzzleEventEmitter";
2
2
  import { KuzzleAbstractProtocol } from "./protocols/abstract/Base";
3
3
  import { AuthController } from "./controllers/Auth";
4
4
  import { CollectionController } from "./controllers/Collection";
@@ -8,9 +8,11 @@ import { RealtimeController } from "./controllers/Realtime";
8
8
  import { ServerController } from "./controllers/Server";
9
9
  import { SecurityController } from "./controllers/Security";
10
10
  import { Deprecation } from "./utils/Deprecation";
11
- import { BaseRequest, JSONObject } from "./types";
11
+ import { BaseRequest, JSONObject, Notification } from "./types";
12
12
  import { RequestPayload } from "./types/RequestPayload";
13
13
  import { ResponsePayload } from "./types/ResponsePayload";
14
+ import { KuzzleError } from "./KuzzleError";
15
+ import { DisconnectionOrigin } from "./protocols/DisconnectionOrigin";
14
16
  export declare class Kuzzle extends KuzzleEventEmitter {
15
17
  [key: string]: any;
16
18
  /**
@@ -49,7 +51,7 @@ export declare class Kuzzle extends KuzzleEventEmitter {
49
51
  /**
50
52
  * List of every events emitted by the SDK.
51
53
  */
52
- events: string[];
54
+ events: PublicKuzzleEvents[];
53
55
  auth: AuthController;
54
56
  bulk: any;
55
57
  collection: CollectionController;
@@ -214,12 +216,43 @@ export declare class Kuzzle extends KuzzleEventEmitter {
214
216
  * Emit an event to all registered listeners
215
217
  * An event cannot be emitted multiple times before a timeout has been reached.
216
218
  */
217
- emit(eventName: string, ...payload: any[]): boolean;
219
+ emit(eventName: PrivateAndPublicSDKEvents, ...payload: unknown[]): boolean;
218
220
  private _superEmit;
221
+ on(eventName: "connected" | "reconnected" | "reAuthenticated" | "tokenExpired", listener: () => void): this;
222
+ on(eventName: "logoutAttempt", listener: (status: {
223
+ success: true;
224
+ }) => void): this;
225
+ on(eventName: "loginAttempt", listener: (data: {
226
+ success: boolean;
227
+ error: string;
228
+ }) => void): this;
229
+ on(eventName: "discarded", listener: (request: RequestPayload) => void): this;
230
+ on(eventName: "disconnected", listener: (context: {
231
+ origin: DisconnectionOrigin;
232
+ }) => void): this;
233
+ on(eventName: "networkError" | "reconnectionError", listener: (error: Error) => void): this;
234
+ on(eventName: "offlineQueuePop", listener: (request: RequestPayload) => void): this;
235
+ on(eventName: "offlineQueuePush", listener: (data: {
236
+ request: RequestPayload;
237
+ }) => void): this;
238
+ on(eventName: "queryError", listener: (data: {
239
+ error: KuzzleError;
240
+ request: RequestPayload;
241
+ }) => void): this;
242
+ on(eventName: "callbackError", listener: (data: {
243
+ error: KuzzleError;
244
+ notification: Notification;
245
+ }) => void): this;
219
246
  /**
220
247
  * Connects to a Kuzzle instance
221
248
  */
222
249
  connect(): Promise<void>;
250
+ /**
251
+ * Set this client to use a specific API key.
252
+ *
253
+ * After doing this you don't need to use login as it bypasses the authentication process.
254
+ */
255
+ setAPIKey(apiKey: string): void;
223
256
  _reconnect(): Promise<void>;
224
257
  /**
225
258
  * Try to re-authenticate the SDK if the current token is invalid.
@@ -275,7 +308,7 @@ export declare class Kuzzle extends KuzzleEventEmitter {
275
308
  * @param req
276
309
  * @param opts - Optional arguments
277
310
  */
278
- query<TRequest extends BaseRequest, TResult>(req: TRequest, opts?: JSONObject): Promise<ResponsePayload<TResult>>;
311
+ query<TRequest extends BaseRequest = BaseRequest, TResult = JSONObject>(req: TRequest, opts?: JSONObject): Promise<ResponsePayload<TResult>>;
279
312
  /**
280
313
  * Starts the requests queuing.
281
314
  */
package/src/Kuzzle.js CHANGED
@@ -334,6 +334,9 @@ class Kuzzle extends KuzzleEventEmitter_1.KuzzleEventEmitter {
334
334
  _superEmit(eventName, ...payload) {
335
335
  return super.emit(eventName, ...payload);
336
336
  }
337
+ on(eventName, listener) {
338
+ return super.on(eventName, listener);
339
+ }
337
340
  /**
338
341
  * Connects to a Kuzzle instance
339
342
  */
@@ -376,6 +379,17 @@ class Kuzzle extends KuzzleEventEmitter_1.KuzzleEventEmitter {
376
379
  });
377
380
  return this.protocol.connect();
378
381
  }
382
+ /**
383
+ * Set this client to use a specific API key.
384
+ *
385
+ * After doing this you don't need to use login as it bypasses the authentication process.
386
+ */
387
+ setAPIKey(apiKey) {
388
+ if (apiKey.match(/^kapikey-/) === null) {
389
+ throw new Error("Invalid API key. Missing the `kapikey-` prefix.");
390
+ }
391
+ this.jwt = apiKey;
392
+ }
379
393
  async _reconnect() {
380
394
  if (this._reconnectInProgress) {
381
395
  return;
@@ -1,3 +1,10 @@
1
+ declare type ListenerFunction = (...args: unknown[]) => unknown;
2
+ export declare type PublicKuzzleEvents = "callbackError" | "connected" | "discarded" | "disconnected" | "loginAttempt" | "logoutAttempt" | "networkError" | "offlineQueuePush" | "offlineQueuePop" | "queryError" | "reAuthenticated" | "reconnected" | "reconnectionError" | "tokenExpired";
3
+ declare type PrivateKuzzleEvents = "connect" | "reconnect" | "disconnect" | "offlineQueuePush" | "websocketRenewalStart" | "websocketRenewalDone";
4
+ /**
5
+ * For internal use only
6
+ */
7
+ export declare type PrivateAndPublicSDKEvents = PublicKuzzleEvents | PrivateKuzzleEvents;
1
8
  /**
2
9
  * @todo proper TS conversion
3
10
  */
@@ -5,16 +12,20 @@ export declare class KuzzleEventEmitter {
5
12
  private _events;
6
13
  constructor();
7
14
  private _exists;
8
- listeners(eventName: any): ((...any: any[]) => any)[];
9
- addListener(eventName: any, listener: any, once?: boolean): this;
10
- on(eventName: any, listener: any): this;
15
+ listeners(eventName: PrivateAndPublicSDKEvents): ListenerFunction[];
16
+ addListener(eventName: PrivateAndPublicSDKEvents, listener: ListenerFunction, once?: boolean): this;
17
+ on(eventName: PrivateAndPublicSDKEvents, listener: (args: any) => void): this;
11
18
  prependListener(eventName: any, listener: any, once?: boolean): this;
12
19
  addOnceListener(eventName: any, listener: any): this;
13
20
  once(eventName: any, listener: any): this;
14
21
  prependOnceListener(eventName: any, listener: any): this;
15
- removeListener(eventName: any, listener: any): this;
22
+ removeListener(eventName: PrivateAndPublicSDKEvents, listener: () => void): this;
23
+ removeListener(eventName: string, listener: () => void): this;
24
+ removeAllListeners(eventName?: PrivateAndPublicSDKEvents): this;
16
25
  removeAllListeners(eventName?: string): this;
17
- emit(eventName: any, ...payload: any[]): boolean;
26
+ emit(eventName: PrivateAndPublicSDKEvents, ...payload: unknown[]): boolean;
27
+ emit(eventName: string, ...payload: unknown[]): boolean;
18
28
  eventNames(): string[];
19
- listenerCount(eventName: any): number;
29
+ listenerCount(eventName: PrivateAndPublicSDKEvents): number;
20
30
  }
31
+ export {};
@@ -27,6 +27,7 @@ class KuzzleEventEmitter {
27
27
  if (!eventName || !listener) {
28
28
  return this;
29
29
  }
30
+ // TODO: this check could be safely, when TypeScript type will be completed.
30
31
  const listenerType = typeof listener;
31
32
  if (listenerType !== "function") {
32
33
  throw new Error(`Invalid listener type: expected a function, got a ${listenerType}`);
@@ -1,4 +1,5 @@
1
- declare const WEBSOCKET_AUTH_RENEWAL = "websocket/auth-renewal";
2
- declare const USER_CONNECTION_CLOSED = "user/connection-closed";
3
- declare const NETWORK_ERROR = "network/error";
4
- export { WEBSOCKET_AUTH_RENEWAL, USER_CONNECTION_CLOSED, NETWORK_ERROR };
1
+ export declare enum DisconnectionOrigin {
2
+ WEBSOCKET_AUTH_RENEWAL = "websocket/auth-renewal",
3
+ USER_CONNECTION_CLOSED = "user/connection-closed",
4
+ NETWORK_ERROR = "network/error"
5
+ }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NETWORK_ERROR = exports.USER_CONNECTION_CLOSED = exports.WEBSOCKET_AUTH_RENEWAL = void 0;
4
- const WEBSOCKET_AUTH_RENEWAL = "websocket/auth-renewal";
5
- exports.WEBSOCKET_AUTH_RENEWAL = WEBSOCKET_AUTH_RENEWAL;
6
- const USER_CONNECTION_CLOSED = "user/connection-closed";
7
- exports.USER_CONNECTION_CLOSED = USER_CONNECTION_CLOSED;
8
- const NETWORK_ERROR = "network/error";
9
- exports.NETWORK_ERROR = NETWORK_ERROR;
3
+ exports.DisconnectionOrigin = void 0;
4
+ var DisconnectionOrigin;
5
+ (function (DisconnectionOrigin) {
6
+ DisconnectionOrigin["WEBSOCKET_AUTH_RENEWAL"] = "websocket/auth-renewal";
7
+ DisconnectionOrigin["USER_CONNECTION_CLOSED"] = "user/connection-closed";
8
+ DisconnectionOrigin["NETWORK_ERROR"] = "network/error";
9
+ })(DisconnectionOrigin = exports.DisconnectionOrigin || (exports.DisconnectionOrigin = {}));
10
10
  //# sourceMappingURL=DisconnectionOrigin.js.map
@@ -1,6 +1,7 @@
1
1
  import { BaseProtocolRealtime } from "./abstract/Realtime";
2
2
  import { JSONObject } from "../types";
3
3
  import { RequestPayload } from "../types/RequestPayload";
4
+ import { DisconnectionOrigin } from "./DisconnectionOrigin";
4
5
  /**
5
6
  * WebSocket protocol used to connect to a Kuzzle server.
6
7
  */
@@ -51,7 +52,7 @@ export default class WebSocketProtocol extends BaseProtocolRealtime {
51
52
  /**
52
53
  * @override
53
54
  */
54
- clientDisconnected(origin: string): void;
55
+ clientDisconnected(origin: DisconnectionOrigin): void;
55
56
  /**
56
57
  * @override
57
58
  *
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
4
  };
@@ -29,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
6
  const KuzzleError_1 = require("../KuzzleError");
30
7
  const Realtime_1 = require("./abstract/Realtime");
31
8
  const Http_1 = __importDefault(require("./Http"));
32
- const DisconnectionOrigin = __importStar(require("./DisconnectionOrigin"));
9
+ const DisconnectionOrigin_1 = require("./DisconnectionOrigin");
33
10
  /**
34
11
  * WebSocket protocol used to connect to a Kuzzle server.
35
12
  */
@@ -118,7 +95,7 @@ class WebSocketProtocol extends Realtime_1.BaseProtocolRealtime {
118
95
  }
119
96
  }
120
97
  if (status === 1000) {
121
- this.clientDisconnected(DisconnectionOrigin.USER_CONNECTION_CLOSED);
98
+ this.clientDisconnected(DisconnectionOrigin_1.DisconnectionOrigin.USER_CONNECTION_CLOSED);
122
99
  }
123
100
  // do not forward a connection close error if no
124
101
  // connection has been previously established
@@ -220,7 +197,7 @@ class WebSocketProtocol extends Realtime_1.BaseProtocolRealtime {
220
197
  this.client.close(1000);
221
198
  }
222
199
  this.client = null;
223
- this.clientDisconnected(DisconnectionOrigin.WEBSOCKET_AUTH_RENEWAL); // Simulate a disconnection, this will enable offline queue and trigger realtime subscriptions backup
200
+ this.clientDisconnected(DisconnectionOrigin_1.DisconnectionOrigin.WEBSOCKET_AUTH_RENEWAL); // Simulate a disconnection, this will enable offline queue and trigger realtime subscriptions backup
224
201
  this._httpProtocol
225
202
  ._sendHttpRequest(formattedRequest)
226
203
  .then((response) => {
@@ -1,4 +1,6 @@
1
1
  import { KuzzleAbstractProtocol } from "./Base";
2
+ import { DisconnectionOrigin } from "../DisconnectionOrigin";
3
+ import { KuzzleError } from "../../KuzzleError";
2
4
  export declare abstract class BaseProtocolRealtime extends KuzzleAbstractProtocol {
3
5
  protected _reconnectionDelay: number;
4
6
  protected wasConnected: boolean;
@@ -20,12 +22,12 @@ export declare abstract class BaseProtocolRealtime extends KuzzleAbstractProtoco
20
22
  *
21
23
  * @param {string} origin String that describe what is causing the disconnection
22
24
  */
23
- clientDisconnected(origin: string): void;
25
+ clientDisconnected(origin: DisconnectionOrigin): void;
24
26
  /**
25
27
  * Called when the client's connection is closed with an error state
26
28
  *
27
- * @param {Error} error
29
+ * @param {KuzzleError} error
28
30
  */
29
- clientNetworkError(error: any): void;
31
+ clientNetworkError(error: KuzzleError): void;
30
32
  isReady(): boolean;
31
33
  }
@@ -1,32 +1,9 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.BaseProtocolRealtime = void 0;
27
4
  const Base_1 = require("./Base");
28
- const DisconnectionOrigin = __importStar(require("../DisconnectionOrigin"));
29
5
  const browser_1 = require("../../utils/browser");
6
+ const DisconnectionOrigin_1 = require("../DisconnectionOrigin");
30
7
  class BaseProtocolRealtime extends Base_1.KuzzleAbstractProtocol {
31
8
  constructor(host, options = {}, name) {
32
9
  super(host, options, name);
@@ -71,12 +48,12 @@ class BaseProtocolRealtime extends Base_1.KuzzleAbstractProtocol {
71
48
  /**
72
49
  * Called when the client's connection is closed with an error state
73
50
  *
74
- * @param {Error} error
51
+ * @param {KuzzleError} error
75
52
  */
76
53
  clientNetworkError(error) {
77
54
  // Only emit disconnect once, if the connection was ready before
78
55
  if (this.isReady()) {
79
- this.emit("disconnect", { origin: DisconnectionOrigin.NETWORK_ERROR });
56
+ this.emit("disconnect", { origin: DisconnectionOrigin_1.DisconnectionOrigin.NETWORK_ERROR });
80
57
  }
81
58
  this.state = "offline";
82
59
  this.clear();
@@ -1,6 +1,4 @@
1
1
  /**
2
2
  * An interface representing an object with string key and any value
3
3
  */
4
- export interface JSONObject {
5
- [key: string]: JSONObject | any;
6
- }
4
+ export declare type JSONObject = Record<PropertyKey, any>;
@@ -4,17 +4,11 @@ import { KDocument, KDocumentContentGeneric } from ".";
4
4
  * Enum for notification types
5
5
  */
6
6
  export declare type NotificationType = "document" | "user" | "TokenExpired";
7
- /**
8
- * Real-time notifications sent by Kuzzle.
9
- *
10
- */
11
- export interface Notification {
7
+ export interface BaseNotification {
12
8
  /**
13
9
  * Notification type
14
10
  */
15
11
  type: NotificationType;
16
- }
17
- export interface BaseNotification extends Notification {
18
12
  /**
19
13
  * Controller that triggered the notification
20
14
  */
@@ -58,11 +52,11 @@ export interface BaseNotification extends Notification {
58
52
  * Notification triggered by a document change.
59
53
  * (create, update, delete)
60
54
  */
61
- export interface DocumentNotification extends BaseNotification {
55
+ export interface DocumentNotification<TDocContent extends KDocumentContentGeneric = KDocumentContentGeneric> extends BaseNotification {
62
56
  /**
63
57
  * Updated document that triggered the notification
64
58
  */
65
- result: KDocument<KDocumentContentGeneric>;
59
+ result: KDocument<TDocContent>;
66
60
  /**
67
61
  * State of the document regarding the scope (`in` or `out`)
68
62
  */
@@ -95,3 +89,7 @@ export interface ServerNotification extends BaseNotification {
95
89
  message: string;
96
90
  type: "TokenExpired";
97
91
  }
92
+ /**
93
+ * Real-time notifications sent by Kuzzle.
94
+ */
95
+ export declare type Notification = DocumentNotification | UserNotification | ServerNotification;