kuzzle-sdk 7.12.0 → 7.14.0-beta.1

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/README.md CHANGED
@@ -5,9 +5,6 @@
5
5
  <a href="https://travis-ci.org/kuzzleio/sdk-javascript">
6
6
  <img src="https://travis-ci.org/kuzzleio/sdk-javascript.svg?branch=master"/>
7
7
  </a>
8
- <a href="https://codecov.io/gh/kuzzleio/sdk-javascript">
9
- <img src="https://codecov.io/gh/kuzzleio/sdk-javascript/branch/master/graph/badge.svg" />
10
- </a>
11
8
  <a href="https://david-dm.org/kuzzleio/sdk-javascript">
12
9
  <img src="https://david-dm.org/kuzzleio/sdk-javascript.svg" />
13
10
  </a>
@@ -24,8 +21,8 @@ This is the official Javascript SDK for the free and open-source backend Kuzzle.
24
21
 
25
22
  #### Multiprotocols
26
23
 
27
- Currently, the SDK provides 2 protocols: __Http and WebSocket.__
28
- WebSocket protocol implement the whole Kuzzle API, while the HTTP protocol does not implement realtime features (rooms and subscriptions).
24
+ Currently, the SDK provides 2 protocols: **Http and WebSocket.**
25
+ WebSocket protocol implement the whole Kuzzle API, while the HTTP protocol does not implement realtime features (rooms and subscriptions).
29
26
 
30
27
  #### Promises based
31
28
 
@@ -42,11 +39,10 @@ Any error must be caught either at the end of the `Promise` chain, or by using `
42
39
  Kuzzle is an open-source backend that includes a scalable server, a multiprotocol API,
43
40
  an administration console and a set of plugins that provide advanced functionalities like real-time pub/sub, blazing fast search and geofencing.
44
41
 
45
- * :octocat: __[Github](https://github.com/kuzzleio/kuzzle)__
46
- * :earth_africa: __[Website](https://kuzzle.io)__
47
- * :books: __[Documentation](https://docs.kuzzle.io)__
48
- * :email: __[Discord](http://join.discord.kuzzle.io)__
49
-
42
+ - :octocat: **[Github](https://github.com/kuzzleio/kuzzle)**
43
+ - :earth_africa: **[Website](https://kuzzle.io)**
44
+ - :books: **[Documentation](https://docs.kuzzle.io)**
45
+ - :email: **[Discord](http://join.discord.kuzzle.io)**
50
46
 
51
47
  ## Get trained by the creators of Kuzzle :zap:
52
48
 
@@ -59,24 +55,24 @@ Our teams will be able to meet your needs in terms of expertise and multi-techno
59
55
  ## Compatibility matrix
60
56
 
61
57
  | Kuzzle Version | SDK Version |
62
- |----------------|-------------|
58
+ | -------------- | ----------- |
63
59
  | 1.x.x | 5.x.x |
64
60
  | 1.x.x | 6.x.x |
65
61
  | 2.x.x | 7.x.x |
66
62
 
67
63
  ## Getting started :point_right:
68
64
 
69
- - [Node.js](https://docs.kuzzle.io/sdk/js/7/getting-started/node-js/)
70
- - [Browser](https://docs.kuzzle.io/sdk/js/7/getting-started/raw-web/)
71
- - [Webpack](https://docs.kuzzle.io/sdk/js/7/getting-started/webpack/)
72
- - [React/Redux](https://docs.kuzzle.io/sdk/js/7/getting-started/react/with-redux/)
73
- - [Vue.js](https://docs.kuzzle.io/sdk/js/7/getting-started/vuejs/standalone/)
65
+ - [Node.js](https://docs.kuzzle.io/sdk/js/7/getting-started/node-js/)
66
+ - [Browser](https://docs.kuzzle.io/sdk/js/7/getting-started/raw-web/)
67
+ - [Webpack](https://docs.kuzzle.io/sdk/js/7/getting-started/webpack/)
68
+ - [React/Redux](https://docs.kuzzle.io/sdk/js/7/getting-started/react/with-redux/)
69
+ - [Vue.js](https://docs.kuzzle.io/sdk/js/7/getting-started/vuejs/standalone/)
74
70
 
75
71
  ### Installation
76
72
 
77
73
  This SDK can be used either in NodeJS or in a browser.
78
74
 
79
- #### Node.js
75
+ #### Node.js
80
76
 
81
77
  ```
82
78
  npm install kuzzle-sdk
@@ -84,11 +80,13 @@ npm install kuzzle-sdk
84
80
 
85
81
  #### Browser
86
82
 
87
- To run the SDK in the browser, you have to build it yourself by cloning this repository and running
83
+ To run the SDK in the browser, you have to build it yourself by cloning this repository and running
84
+
88
85
  ```bash
89
86
  $ npm install
90
87
  $ npm run build
91
- ````
88
+ ```
89
+
92
90
  A `dist` directory will be created, containing a browser version of this SDK.
93
91
 
94
92
  ```html
@@ -98,18 +96,19 @@ A `dist` directory will be created, containing a browser version of this SDK.
98
96
  or use the CDN:
99
97
 
100
98
  ```html
101
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/kuzzle-sdk@latest/dist/kuzzle.min.js"></script>
99
+ <script
100
+ type="text/javascript"
101
+ src="https://cdn.jsdelivr.net/npm/kuzzle-sdk@latest/dist/kuzzle.min.js"
102
+ ></script>
102
103
  ```
103
104
 
104
105
  Then the Kuzzle SDK will be available under the `KuzzleSDK` variable:
105
106
 
106
107
  ```html
107
- <script>
108
- const kuzzle = new KuzzleSDK.Kuzzle(
109
- new KuzzleSDK.WebSocket('localhost')
110
- );
111
- // ...
112
- </script>
108
+ <script>
109
+ const kuzzle = new KuzzleSDK.Kuzzle(new KuzzleSDK.WebSocket("localhost"));
110
+ // ...
111
+ </script>
113
112
  ```
114
113
 
115
114
  #### Browser with Webpack
@@ -124,21 +123,19 @@ But you'll still need to pick the built version (which ships with the package).
124
123
 
125
124
  ```javascript
126
125
  // with the classic require...
127
- const { Kuzzle } = require('kuzzle-sdk')
126
+ const { Kuzzle } = require("kuzzle-sdk");
128
127
  // ... or with the new import directive.
129
- import { Kuzzle } from 'kuzzle-sdk'
128
+ import { Kuzzle } from "kuzzle-sdk";
130
129
  ```
131
130
 
132
131
  ### Example
133
132
 
134
- The SDK supports different protocols. When instantiating,
135
- you must choose the protocol to use and fill in the different options needed to connect to Kuzzle.
133
+ The SDK supports different protocols. When instantiating,
134
+ you must choose the protocol to use and fill in the different options needed to connect to Kuzzle.
136
135
 
137
136
  ```js
138
- const { Kuzzle, WebSocket } = require('kuzzle-sdk');
139
- const kuzzle = new Kuzzle(
140
- new WebSocket('localhost', { port: 7512 })
141
- );
137
+ const { Kuzzle, WebSocket } = require("kuzzle-sdk");
138
+ const kuzzle = new Kuzzle(new WebSocket("localhost", { port: 7512 }));
142
139
 
143
140
  try {
144
141
  await kuzzle.connect();
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","beforeLogin","afterLogin","logoutAttempt","beforeLogout","afterLogout","networkError","offlineQueuePush","offlineQueuePop","queryError","reAuthenticated","reconnected","reconnectionError","tokenExpired"],null==e)throw new Error('"protocol" argument missing');for(let t=0,r=["addListener","isReady","query"];t<r.length;t++){const s=r[t];if("function"!=typeof e[s])throw new Error(`Protocol instance must implement a "${s}" method`)}if(this.protocol=e,this._protectedEvents={afterLogin:{},connected:{},disconnected:{},error:{},loginAttempt:{},reconnected:{},tokenExpired:{}},this.autoResubscribe="boolean"!=typeof t.autoResubscribe||t.autoResubscribe,this.eventTimeout="number"==typeof t.eventTimeout?t.eventTimeout:200,this.sdkVersion="7.12.0",this.sdkName=`js@${this.sdkVersion}`,this.volatile="object"==typeof t.volatile?t.volatile:{},this._cookieAuthentication="boolean"==typeof t.cookieAuth&&t.cookieAuth,this._cookieAuthentication){let e,t,r;this.protocol.enableCookieSupport(),this.protocol.addListener("websocketRenewalStart",(()=>{e=this.autoQueue,t=this.autoReplay,r=this.autoResubscribe,this.autoQueue=!0,this.autoReplay=!0,this.autoResubscribe=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this.autoQueue=e,this.autoReplay=t,this.autoResubscribe=r}))}if(this.deprecationHandler=new p.Deprecation("boolean"!=typeof t.deprecationWarning||t.deprecationWarning),this._cookieAuthentication&&"undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie authentication with cookieAuth option is not supported outside a browser");return this.useController(i.AuthController,"auth"),this.useController(n.BulkController,"bulk"),this.useController(o.CollectionController,"collection"),this.useController(l.DocumentController,"document"),this.useController(u.IndexController,"index"),this.useController(h.MemoryStorageController,"ms"),this.useController(c.RealtimeController,"realtime"),this.useController(d.SecurityController,"security"),this.useController(a.ServerController,"server"),this._offlineQueue=[],this._autoQueue="boolean"==typeof t.autoQueue&&t.autoQueue,this._autoReplay="boolean"==typeof t.autoReplay&&t.autoReplay,this._offlineQueueLoader="function"==typeof t.offlineQueueLoader?t.offlineQueueLoader:null,this._queueFilter="function"==typeof t.queueFilter?t.queueFilter:null,this._queueMaxSize="number"==typeof t.queueMaxSize?t.queueMaxSize:500,this._queueTTL="number"==typeof t.queueTTL?t.queueTTL:12e4,this._replayInterval="number"==typeof t.replayInterval?t.replayInterval:10,this._requestTimeout="number"==typeof t.requestTimeout?t.requestTimeout:-1,this._tokenExpiredInterval="number"==typeof t.tokenExpiredInterval?t.tokenExpiredInterval:1e3,"auto"===t.offlineMode&&(this._autoQueue=!0,this._autoReplay=!0),this._queuing=!1,this._lastTokenExpired=null,this._reconnectInProgress=!1,this._loggedIn=!1,this.on("afterLogin",(async e=>{if(e.success)this._loggedIn=!0;else try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),this.on("afterLogout",(e=>{e.success&&(this._loggedIn=!1)})),this.on("connected",(async()=>{try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),(0,m.proxify)(this,{exposeApi:!0,name:"kuzzle",seal:!0})}get authenticated(){return Boolean(this.auth.authenticationToken&&!this.auth.authenticationToken.expired)}get autoQueue(){return this._autoQueue}set autoQueue(e){this._checkPropertyType("_autoQueue","boolean",e),this._autoQueue=e}get autoReconnect(){return this.protocol.autoReconnect}set autoReconnect(e){this._checkPropertyType("autoReconnect","boolean",e),this.protocol.autoReconnect=e}get autoReplay(){return this._autoReplay}set autoReplay(e){this._checkPropertyType("_autoReplay","boolean",e),this._autoReplay=e}get cookieAuthentication(){return this._cookieAuthentication}get connected(){return this.protocol.connected}get host(){return this.protocol.host}get jwt(){return this.auth.authenticationToken?this.auth.authenticationToken.encodedJwt:null}set jwt(e){this.auth.authenticationToken=e,this._loggedIn=!!e}get offlineQueue(){return this._offlineQueue}get offlineQueueLoader(){return this._offlineQueueLoader}set offlineQueueLoader(e){this._checkPropertyType("_offlineQueueLoader","function",e),this._offlineQueueLoader=e}get port(){return this.protocol.port}get queueFilter(){return this._queueFilter}set queueFilter(e){this._checkPropertyType("_queueFilter","function",e),this._queueFilter=e}get queueMaxSize(){return this._queueMaxSize}set queueMaxSize(e){this._checkPropertyType("_queueMaxSize","number",e),this._queueMaxSize=e}get queueTTL(){return this._queueTTL}set queueTTL(e){this._checkPropertyType("_queueTTL","number",e),this._queueTTL=e}get reconnectionDelay(){return this.protocol.reconnectionDelay}get replayInterval(){return this._replayInterval}set replayInterval(e){this._checkPropertyType("_replayInterval","number",e),this._replayInterval=e}get requestTimeout(){return this._requestTimeout}set requestTimeout(e){this._checkPropertyType("_requestTimeout","number",e),this._requestTimeout=e}get sslConnection(){return this.protocol.sslConnection}get tokenExpiredInterval(){return this._tokenExpiredInterval}set tokenExpiredInterval(e){this._checkPropertyType("_tokenExpiredInterval","number",e),this._tokenExpiredInterval=e}emit(e){const t=Date.now(),r=this._protectedEvents[e];if(r){if(r.lastEmitted&&r.lastEmitted>t-this.eventTimeout)return!1;r.lastEmitted=t}for(var s=arguments.length,i=new Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];return this._superEmit(e,...i)}_superEmit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return super.emit(e,...r)}on(e,t){return super.on(e,t)}connect(){return this.protocol.isReady()?Promise.resolve():(this.autoQueue&&this.startQueuing(),this.protocol.addListener("queryError",(e=>{let{error:t,request:r}=e;this.emit("queryError",{error:t,request:r})})),this.protocol.addListener("tokenExpired",(()=>this.tokenExpired())),this.protocol.addListener("connect",(()=>{this.autoQueue&&this.stopQueuing(),this.autoReplay&&this.playQueue(),this.emit("connected")})),this.protocol.addListener("networkError",(e=>{this.autoQueue&&this.startQueuing(),this.emit("networkError",e)})),this.protocol.addListener("disconnect",(e=>{this.emit("disconnected",e)})),this.protocol.addListener("reconnect",this._reconnect.bind(this)),this.protocol.addListener("discarded",(e=>this.emit("discarded",e))),this.protocol.addListener("websocketRenewalStart",(()=>{this._reconnectInProgress=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this._reconnectInProgress=!1})),this.protocol.connect())}setAPIKey(e){if(null===e.match(/^kapikey-/))throw new Error("Invalid API key. Missing the `kapikey-` prefix.");this.jwt=e}async _reconnect(){if(!this._reconnectInProgress){if(this.autoQueue&&this.stopQueuing(),this._loggedIn&&!await this.tryReAuthenticate())return this._loggedIn=!1,void this.disconnect();this.autoReplay&&this.playQueue(),this.emit("reconnected")}}async tryReAuthenticate(){this._reconnectInProgress=!0;try{return!!await this.isAuthenticated()||(this.authenticator?(await this.authenticate(),!0):(this.emit("reconnectionError",{error:new Error('Could not re-authenticate: "authenticator" property is not set.')}),!1))}catch(e){return this.emit("reconnectionError",{error:new Error(`Failed to authenticate the SDK after reconnection: ${e}`)}),!1}finally{this._reconnectInProgress=!1}}async authenticate(){if("function"!=typeof this.authenticator)throw new Error('The "authenticator" property must be a function.');await this.authenticator();const e=await this.isAuthenticated();if(this._loggedIn=e,!e)throw new Error('The "authenticator" function failed to authenticate the SDK.')}async isAuthenticated(){const{valid:e,kuid:t}=await this.auth.checkToken();return e&&"-1"!==t}addListener(e,t){if(-1===this.events.indexOf(e))throw new Error(`[${e}] is not a known event. Known events: ${this.events.join(", ")}`);return this._superAddListener(e,t)}_superAddListener(e,t){return super.addListener(e,t)}flushQueue(){return this._offlineQueue=[],this}disconnect(){this._loggedIn=!1,this.protocol.close()}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!=typeof e||Array.isArray(e))throw new Error(`Kuzzle.query: Invalid request: ${JSON.stringify(e)}`);if("object"!=typeof t||Array.isArray(t))throw new Error(`Kuzzle.query: Invalid "options" argument: ${JSON.stringify(t)}`);const r=JSON.parse(JSON.stringify(e)),s=JSON.parse(JSON.stringify(t));r.requestId||(r.requestId=(0,_.uuidv4)());let i=!0;s&&!1===s.queuable&&(i=!1),this.queueFilter&&(i=i&&this.queueFilter(r));const n="number"==typeof s.timeout?s.timeout:this._requestTimeout;for(let e=0,t=Object.entries(s);e<t.length;e++){const[s,i]=t[e];["queuable","timeout"].includes(s)||(r[s]=i)}if(void 0===r.refresh&&void 0!==s.refresh&&(r.refresh=s.refresh),void 0===r.retryOnConflict&&void 0!==s.retryOnConflict&&(r.retryOnConflict=s.retryOnConflict),r.volatile){if("object"!=typeof r.volatile||Array.isArray(r.volatile))throw new Error(`Kuzzle.query: Invalid volatile argument received: ${JSON.stringify(r.volatile)}`)}else r.volatile=this.volatile;for(let e=0,t=Object.keys(this.volatile);e<t.length;e++){const s=t[e];void 0===r.volatile[s]&&(r.volatile[s]=this.volatile[s])}return r.volatile.sdkInstanceId=r.volatile.sdkInstanceId||this.protocol.id,r.volatile.sdkName=r.volatile.sdkName||this.sdkName,this.auth.authenticateRequest(r),this._queuing?i?(this._cleanQueue(),this.emit("offlineQueuePush",{request:r}),new Promise(((e,t)=>{this.offlineQueue.push({reject:t,request:r,resolve:e,timeout:n,ts:Date.now()})}))):(this.emit("discarded",{request:r}),Promise.reject(new Error(`Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: ${JSON.stringify(r)}`))):this._timeoutRequest(n,r,s).then((e=>((0,b.debug)("RESPONSE",e),this.deprecationHandler.logDeprecation(e))))}startQueuing(){return this._queuing=!0,this}stopQueuing(){return this._queuing=!1,this}playQueue(){return this.protocol.isReady()&&(this._cleanQueue(),this._dequeue()),this}async tokenExpired(){if(this._reconnectInProgress)return;if(this._loggedIn&&await this.tryReAuthenticate())return void this.emit("reAuthenticated");const e=Date.now();e-this._lastTokenExpired<this.tokenExpiredInterval||(this._lastTokenExpired=e,this.jwt=null,this.emit("tokenExpired"))}useController(e,t){if(!(t&&t.length>0))throw new Error("You must provide a valid accessor.");if(this.__proxy__?this.__proxy__.hasProp(t):this[t])throw new Error(`There is already a controller with the accessor '${t}'. Please use another one.`);const r=new e(this);if(!(r.name&&r.name.length>0))throw new Error("Controllers must have a name.");if(r.kuzzle!==this)throw new Error("You must pass the Kuzzle SDK instance to the parent constructor.");return this.__proxy__&&this.__proxy__.registerProp(t),this[t]=r,this}_checkPropertyType(e,t,r){if("array"===t?!Array.isArray(r):typeof r!==t)throw new Error(`Expected ${e} to be a ${t}, ${typeof r} received`)}_cleanQueue(){const e=Date.now();let t=-1;this.queueTTL>0&&(this.offlineQueue.forEach(((r,s)=>{r.ts<e-this.queueTTL&&(t=s)})),-1!==t&&this.offlineQueue.splice(0,t+1).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: queued time exceeded the queueTTL option value"))}))),this.queueMaxSize>0&&this.offlineQueue.length>this.queueMaxSize&&this.offlineQueue.splice(0,this.offlineQueue.length-this.queueMaxSize).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: too many queued requests (see the queueMaxSize option)"))}))}_dequeue(){const e={},t=()=>{this.offlineQueue.length>0&&(this.offlineQueue[0].request.jwt=this.jwt,this._timeoutRequest(this.offlineQueue[0].timeout,this.offlineQueue[0].request).then(this.offlineQueue[0].resolve).catch(this.offlineQueue[0].reject),this.emit("offlineQueuePop",this.offlineQueue.shift().request),setTimeout((()=>{t()}),Math.max(0,this.replayInterval)))};if(this.offlineQueueLoader){if("function"!=typeof this.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof this.offlineQueueLoader);return Promise.resolve().then((()=>this.offlineQueueLoader())).then((r=>{if(!Array.isArray(r))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof r);this._offlineQueue=r.concat(this.offlineQueue).filter((t=>{if(!t.request||void 0===t.request.requestId||!t.request.action||!t.request.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return!Object.prototype.hasOwnProperty.call(e,t.request.requestId)&&(e[t.request.requestId]=!0)})),t()}))}t()}_timeoutRequest(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,b.debug)("REQUEST",t),-1===e)return this.protocol.query(t,r);const s=new Promise(((r,s)=>{setTimeout((()=>{s(new f.RequestTimeoutError(t,e))}),e)}));return Promise.race([s,this.protocol.query(t,r)])}}t.Kuzzle=v},4528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleError=void 0;const s=r(4843);class i extends Error{constructor(e,t,r,i){super(e.message),this.status=e.status,this.id=e.id,this.code=e.code,this.props=e.props,i&&(this.controller=i.controller,this.collection=i.collection,this.action=i.action,this.index=i.index,this.volatile=i.volatile,this.requestId=i.requestId,this._id=i._id),e.errors&&(this.errors=e.errors,this.count=e.count),e.stack?(this.kuzzleStack=e.stack,this.stack=e.stack+"\n",this.stack+=" |\n",this.stack+=" |\n",this.stack+=` ${r}\n`,this.stack+=" |\n",this.stack+=" |\n"):this.stack=`KuzzleError: ${e.message}\n`,t&&(this.stack+=t.split("\n").map(s.hilightUserCode).slice(1).join("\n"))}}t.KuzzleError=i},8349:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTimeoutError=void 0;class r extends Error{constructor(e,t){super(`Request timed out after ${t} ms`),this.request=e,this.delay=t}}t.RequestTimeoutError=r},9235:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthController=void 0;const s=r(9665),i=r(5914),n=r(3987);class o extends i.BaseController{constructor(e){super(e,"auth"),this._authenticationToken=null,this.kuzzle.on("tokenExpired",(()=>{this._authenticationToken=null}))}get authenticationToken(){return this._authenticationToken}set authenticationToken(e){if(null==e)this._authenticationToken=null;else{if("string"!=typeof e)throw new Error(`Invalid token argument: ${e}`);this._authenticationToken=new s.Jwt(e)}}authenticateRequest(e){this.kuzzle.cookieAuthentication||this.authenticationToken&&("auth"!==e.controller||"checkToken"!==e.action&&"login"!==e.action)&&(e.jwt=this.authenticationToken.encodedJwt)}createApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:t._id,action:"createApiKey",body:{description:e},expiresIn:t.expiresIn,refresh:t.refresh};return this.query(r,t).then((e=>e.result))}checkRights(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"checkRights",body:e};return this.query(r,t).then((e=>e.result.allowed))}deleteApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteApiKey",refresh:t.refresh};return this.query(r,t).then((()=>null))}searchApiKeys(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t={action:"searchApiKeys",body:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},from:e.from,lang:e.lang,size:e.size};return this.query(t,e).then((e=>e.result))}checkToken(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!1;return void 0===e&&(r=this.kuzzle.cookieAuthentication,!r&&this.authenticationToken&&(e=this.authenticationToken.encodedJwt)),this.query({action:"checkToken",body:{token:e},cookieAuth:r},{queuable:!1,...t}).then((e=>e.result))}createMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"createMyCredentials",body:t,strategy:e},r).then((e=>e.result))}credentialsExist(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"credentialsExist",strategy:e},t).then((e=>e.result))}deleteMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"deleteMyCredentials",strategy:e},t).then((e=>e.result.acknowledged))}getCurrentUser(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getCurrentUser"},e).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}getMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"getMyCredentials",strategy:e},t).then((e=>e.result))}getMyRights(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getMyRights"},e).then((e=>e.result.hits))}getStrategies(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getStrategies"},e).then((e=>e.result))}login(e,t,r){const i={action:"login",body:t,cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:r,strategy:e};return this.kuzzle.emit("beforeLogin"),this.query(i,{queuable:!1,timeout:-1,verb:"POST"}).then((e=>{if(this.kuzzle.cookieAuthentication){if(e.result.jwt){const e=new Error("Kuzzle support for cookie authentication is disabled or not supported");throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}return this.kuzzle.emit("loginAttempt",{success:!0}),void this.kuzzle.emit("afterLogin",{success:!0})}return this._authenticationToken=new s.Jwt(e.result.jwt),this.kuzzle.emit("loginAttempt",{success:!0}),this.kuzzle.emit("afterLogin",{success:!0}),e.result.jwt})).catch((e=>{throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}))}async logout(){this.kuzzle.emit("beforeLogout");try{await this.query({action:"logout",cookieAuth:this.kuzzle.cookieAuthentication},{queuable:!1,timeout:-1}),this._authenticationToken=null,this.kuzzle.emit("logoutAttempt",{success:!0}),this.kuzzle.emit("afterLogout",{success:!0})}catch(e){throw this.kuzzle.emit("logoutAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogout",{error:e.message,success:!1}),e}}updateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"updateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}updateSelf(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateSelf",body:e},t).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}validateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"validateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}refreshToken(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={action:"refreshToken",cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:e.expiresIn};return this.query(t,e).then((e=>(this.kuzzle.cookieAuthentication||(this._authenticationToken=new s.Jwt(e.result.jwt)),e.result)))}}t.AuthController=o},5914:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseController=void 0,t.BaseController=class{constructor(e,t){Reflect.defineProperty(this,"_kuzzle",{value:e}),this._name=t}get kuzzle(){return this._kuzzle}get name(){return this._name}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.controller=e.controller||this.name,this._kuzzle.query(e,t)}}},4134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BulkController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"bulk")}deleteByQuery(e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s={action:"deleteByQuery",body:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},collection:t,index:e};return this.query(s,r).then((e=>e.result.deleted))}import(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"import",body:{bulkData:r},collection:t,index:e},s).then((e=>e.result))}updateByQuery(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={action:"updateByQuery",body:{changes:s,query:r},collection:t,index:e};return this.query(n,i).then((e=>e.result.updated))}write(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.query({_id:s,action:"write",body:r,collection:t,index:e,notify:i.notify},i).then((e=>e.result))}mWrite(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"mWrite",body:{documents:r},collection:t,index:e,notify:s.notify},s).then((e=>e.result))}}t.BulkController=i},8285:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionController=void 0;const s=r(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]&&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{get ids(){return Array.from(this.values())}get filters(){return{ids:{values:Array.from(this.values())}}}constructor(e,t){super(),this.roomId=null,this.index=e,this.collection=t}}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{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)}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}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=r(147),n=s(r(1873));class o extends i.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=n.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=n.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,i={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):i.body=JSON.stringify(u):"jwt"===l?i.headers.authorization="Bearer "+u:"volatile"===l?i.headers["x-kuzzle-volatile"]=JSON.stringify(u):"index"===l||"collection"===l?n.default[e.controller]||"GET"!==s?i[l]=u:o[l]=u:Object.prototype.hasOwnProperty.call(i,l)?i[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(i.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:i}}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.");const t=e.headers["content-type"];return t&&t.includes("application/json")?JSON.parse(e.body):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=n.getResponseHeader("Content-Type");if(!t||!t.includes("application/json"))return void e(n.responseText);const r=JSON.parse(n.responseText);e(r)}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{get sslConnection(){return this._ssl}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 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=>{if(!e)return[];const s=Object.getOwnPropertyNames(e.prototype||e),i=Object.getPrototypeOf(e);return r([...s,...t(i)])},r=e=>[...new Set(e)];e.exports={proxify:function(e){let r=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 s=(e=>Object.assign({},{apiNamespace:"__proxy__",name:"object",deprecated:[],exposeApi:!1,seal:!0,sealGet:!1,warnDeprecationOnce:!0},e))(r),i=new Set(["inspect"]),n=new Set(s.deprecated),o=new Set,l=e=>{const t=`${s.name}.${e}`;s.warnDeprecationOnce&&o.has(t)||(o.add(t),console.warn(`Warning: ${t} is deprecated`))};return s.exposeApi&&(e[s.apiNamespace]={registerProp:e=>i.add(e),unregisterProp:e=>i.delete(e),hasProp:e=>i.has(e)}),[...Object.getOwnPropertyNames(e),...t(e)].forEach((e=>i.add(e))),new Proxy(e,{get:(e,t)=>{if(s.sealGet&&!i.has(t))throw new Error(`${s.name}.${t} is not defined`);return n.has(t)&&l(t),e[t]},set:(e,t,r)=>{if(s.seal&&!i.has(t))throw new Error(`Cannot set a value to the undefined '${t}' property in '${s.name}'`);return n.has(t)&&l(t),e[t]=r,!0}})}}},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","beforeLogin","afterLogin","logoutAttempt","beforeLogout","afterLogout","networkError","offlineQueuePush","offlineQueuePop","queryError","reAuthenticated","reconnected","reconnectionError","tokenExpired"],null==e)throw new Error('"protocol" argument missing');for(let t=0,r=["addListener","isReady","query"];t<r.length;t++){const s=r[t];if("function"!=typeof e[s])throw new Error(`Protocol instance must implement a "${s}" method`)}if(this.protocol=e,this._protectedEvents={afterLogin:{},connected:{},disconnected:{},error:{},loginAttempt:{},reconnected:{},tokenExpired:{}},this.autoResubscribe="boolean"!=typeof t.autoResubscribe||t.autoResubscribe,this.eventTimeout="number"==typeof t.eventTimeout?t.eventTimeout:200,this.sdkVersion="7.14.0-beta.1",this.sdkName=`js@${this.sdkVersion}`,this.volatile="object"==typeof t.volatile?t.volatile:{},this._cookieAuthentication="boolean"==typeof t.cookieAuth&&t.cookieAuth,this._cookieAuthentication){let e,t,r;this.protocol.enableCookieSupport(),this.protocol.addListener("websocketRenewalStart",(()=>{e=this.autoQueue,t=this.autoReplay,r=this.autoResubscribe,this.autoQueue=!0,this.autoReplay=!0,this.autoResubscribe=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this.autoQueue=e,this.autoReplay=t,this.autoResubscribe=r}))}if(this.deprecationHandler=new p.Deprecation("boolean"!=typeof t.deprecationWarning||t.deprecationWarning),this._cookieAuthentication&&"undefined"==typeof XMLHttpRequest)throw new Error("Support for cookie authentication with cookieAuth option is not supported outside a browser");return this.useController(i.AuthController,"auth"),this.useController(n.BulkController,"bulk"),this.useController(o.CollectionController,"collection"),this.useController(l.DocumentController,"document"),this.useController(u.IndexController,"index"),this.useController(h.MemoryStorageController,"ms"),this.useController(c.RealtimeController,"realtime"),this.useController(d.SecurityController,"security"),this.useController(a.ServerController,"server"),this._offlineQueue=[],this._autoQueue="boolean"==typeof t.autoQueue&&t.autoQueue,this._autoReplay="boolean"==typeof t.autoReplay&&t.autoReplay,this._offlineQueueLoader="function"==typeof t.offlineQueueLoader?t.offlineQueueLoader:null,this._queueFilter="function"==typeof t.queueFilter?t.queueFilter:null,this._queueMaxSize="number"==typeof t.queueMaxSize?t.queueMaxSize:500,this._queueTTL="number"==typeof t.queueTTL?t.queueTTL:12e4,this._replayInterval="number"==typeof t.replayInterval?t.replayInterval:10,this._requestTimeout="number"==typeof t.requestTimeout?t.requestTimeout:-1,this._tokenExpiredInterval="number"==typeof t.tokenExpiredInterval?t.tokenExpiredInterval:1e3,"auto"===t.offlineMode&&(this._autoQueue=!0,this._autoReplay=!0),this._queuing=!1,this._lastTokenExpired=null,this._reconnectInProgress=!1,this._loggedIn=!1,this.on("afterLogin",(async e=>{if(e.success)this._loggedIn=!0;else try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),this.on("afterLogout",(e=>{e.success&&(this._loggedIn=!1)})),this.on("connected",(async()=>{try{this._loggedIn=await this.isAuthenticated()}catch{this._loggedIn=!1}})),(0,m.proxify)(this,{exposeApi:!0,name:"kuzzle",seal:!0})}get authenticated(){return Boolean(this.auth.authenticationToken&&!this.auth.authenticationToken.expired)}get autoQueue(){return this._autoQueue}set autoQueue(e){this._checkPropertyType("_autoQueue","boolean",e),this._autoQueue=e}get autoReconnect(){return this.protocol.autoReconnect}set autoReconnect(e){this._checkPropertyType("autoReconnect","boolean",e),this.protocol.autoReconnect=e}get autoReplay(){return this._autoReplay}set autoReplay(e){this._checkPropertyType("_autoReplay","boolean",e),this._autoReplay=e}get cookieAuthentication(){return this._cookieAuthentication}get connected(){return this.protocol.connected}get host(){return this.protocol.host}get jwt(){return this.auth.authenticationToken?this.auth.authenticationToken.encodedJwt:null}set jwt(e){this.auth.authenticationToken=e,this._loggedIn=!!e}get offlineQueue(){return this._offlineQueue}get offlineQueueLoader(){return this._offlineQueueLoader}set offlineQueueLoader(e){this._checkPropertyType("_offlineQueueLoader","function",e),this._offlineQueueLoader=e}get port(){return this.protocol.port}get queueFilter(){return this._queueFilter}set queueFilter(e){this._checkPropertyType("_queueFilter","function",e),this._queueFilter=e}get queueMaxSize(){return this._queueMaxSize}set queueMaxSize(e){this._checkPropertyType("_queueMaxSize","number",e),this._queueMaxSize=e}get queueTTL(){return this._queueTTL}set queueTTL(e){this._checkPropertyType("_queueTTL","number",e),this._queueTTL=e}get reconnectionDelay(){return this.protocol.reconnectionDelay}get replayInterval(){return this._replayInterval}set replayInterval(e){this._checkPropertyType("_replayInterval","number",e),this._replayInterval=e}get requestTimeout(){return this._requestTimeout}set requestTimeout(e){this._checkPropertyType("_requestTimeout","number",e),this._requestTimeout=e}get sslConnection(){return this.protocol.sslConnection}get tokenExpiredInterval(){return this._tokenExpiredInterval}set tokenExpiredInterval(e){this._checkPropertyType("_tokenExpiredInterval","number",e),this._tokenExpiredInterval=e}emit(e){const t=Date.now(),r=this._protectedEvents[e];if(r){if(r.lastEmitted&&r.lastEmitted>t-this.eventTimeout)return!1;r.lastEmitted=t}for(var s=arguments.length,i=new Array(s>1?s-1:0),n=1;n<s;n++)i[n-1]=arguments[n];return this._superEmit(e,...i)}_superEmit(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return super.emit(e,...r)}on(e,t){return super.on(e,t)}connect(){return this.protocol.isReady()?Promise.resolve():(this.autoQueue&&this.startQueuing(),this.protocol.addListener("queryError",(e=>{let{error:t,request:r}=e;this.emit("queryError",{error:t,request:r})})),this.protocol.addListener("tokenExpired",(()=>this.tokenExpired())),this.protocol.addListener("connect",(()=>{this.autoQueue&&this.stopQueuing(),this.autoReplay&&this.playQueue(),this.emit("connected")})),this.protocol.addListener("networkError",(e=>{this.autoQueue&&this.startQueuing(),this.emit("networkError",e)})),this.protocol.addListener("disconnect",(e=>{this.emit("disconnected",e)})),this.protocol.addListener("reconnect",this._reconnect.bind(this)),this.protocol.addListener("discarded",(e=>this.emit("discarded",e))),this.protocol.addListener("websocketRenewalStart",(()=>{this._reconnectInProgress=!0})),this.protocol.addListener("websocketRenewalDone",(()=>{this._reconnectInProgress=!1})),this.protocol.connect())}setAPIKey(e){if(null===e.match(/^kapikey-/))throw new Error("Invalid API key. Missing the `kapikey-` prefix.");this.jwt=e}async _reconnect(){if(!this._reconnectInProgress){if(this.autoQueue&&this.stopQueuing(),this._loggedIn&&!await this.tryReAuthenticate())return this._loggedIn=!1,void this.disconnect();this.autoReplay&&this.playQueue(),this.emit("reconnected")}}async tryReAuthenticate(){this._reconnectInProgress=!0;try{return!!await this.isAuthenticated()||(this.authenticator?(await this.authenticate(),!0):(this.emit("reconnectionError",{error:new Error('Could not re-authenticate: "authenticator" property is not set.')}),!1))}catch(e){return this.emit("reconnectionError",{error:new Error(`Failed to authenticate the SDK after reconnection: ${e}`)}),!1}finally{this._reconnectInProgress=!1}}async authenticate(){if("function"!=typeof this.authenticator)throw new Error('The "authenticator" property must be a function.');await this.authenticator();const e=await this.isAuthenticated();if(this._loggedIn=e,!e)throw new Error('The "authenticator" function failed to authenticate the SDK.')}async isAuthenticated(){const{valid:e,kuid:t}=await this.auth.checkToken();return e&&"-1"!==t}addListener(e,t){if(-1===this.events.indexOf(e))throw new Error(`[${e}] is not a known event. Known events: ${this.events.join(", ")}`);return this._superAddListener(e,t)}_superAddListener(e,t){return super.addListener(e,t)}flushQueue(){return this._offlineQueue=[],this}disconnect(){this._loggedIn=!1,this.protocol.close()}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("object"!=typeof e||Array.isArray(e))throw new Error(`Kuzzle.query: Invalid request: ${JSON.stringify(e)}`);if("object"!=typeof t||Array.isArray(t))throw new Error(`Kuzzle.query: Invalid "options" argument: ${JSON.stringify(t)}`);const r=JSON.parse(JSON.stringify(e)),s=JSON.parse(JSON.stringify(t));r.requestId||(r.requestId=(0,_.uuidv4)());let i=!0;s&&!1===s.queuable&&(i=!1),this.queueFilter&&(i=i&&this.queueFilter(r));const n="number"==typeof s.timeout?s.timeout:this._requestTimeout;for(let e=0,t=Object.entries(s);e<t.length;e++){const[s,i]=t[e];["queuable","timeout"].includes(s)||(r[s]=i)}if(void 0===r.refresh&&void 0!==s.refresh&&(r.refresh=s.refresh),void 0===r.retryOnConflict&&void 0!==s.retryOnConflict&&(r.retryOnConflict=s.retryOnConflict),r.volatile){if("object"!=typeof r.volatile||Array.isArray(r.volatile))throw new Error(`Kuzzle.query: Invalid volatile argument received: ${JSON.stringify(r.volatile)}`)}else r.volatile=this.volatile;for(let e=0,t=Object.keys(this.volatile);e<t.length;e++){const s=t[e];void 0===r.volatile[s]&&(r.volatile[s]=this.volatile[s])}return r.volatile.sdkInstanceId=r.volatile.sdkInstanceId||this.protocol.id,r.volatile.sdkName=r.volatile.sdkName||this.sdkName,this.auth.authenticateRequest(r),this._queuing?i?(this._cleanQueue(),this.emit("offlineQueuePush",{request:r}),new Promise(((e,t)=>{this.offlineQueue.push({reject:t,request:r,resolve:e,timeout:n,ts:Date.now()})}))):(this.emit("discarded",{request:r}),Promise.reject(new Error(`Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: ${JSON.stringify(r)}`))):this._timeoutRequest(n,r,s).then((e=>((0,b.debug)("RESPONSE",e),this.deprecationHandler.logDeprecation(e))))}startQueuing(){return this._queuing=!0,this}stopQueuing(){return this._queuing=!1,this}playQueue(){return this.protocol.isReady()&&(this._cleanQueue(),this._dequeue()),this}async tokenExpired(){if(this._reconnectInProgress)return;if(this._loggedIn&&await this.tryReAuthenticate())return void this.emit("reAuthenticated");const e=Date.now();e-this._lastTokenExpired<this.tokenExpiredInterval||(this._lastTokenExpired=e,this.jwt=null,this.emit("tokenExpired"))}useController(e,t){if(!(t&&t.length>0))throw new Error("You must provide a valid accessor.");if(this.__proxy__?this.__proxy__.hasProp(t):this[t])throw new Error(`There is already a controller with the accessor '${t}'. Please use another one.`);const r=new e(this);if(!(r.name&&r.name.length>0))throw new Error("Controllers must have a name.");if(r.kuzzle!==this)throw new Error("You must pass the Kuzzle SDK instance to the parent constructor.");return this.__proxy__&&this.__proxy__.registerProp(t),this[t]=r,this}_checkPropertyType(e,t,r){if("array"===t?!Array.isArray(r):typeof r!==t)throw new Error(`Expected ${e} to be a ${t}, ${typeof r} received`)}_cleanQueue(){const e=Date.now();let t=-1;this.queueTTL>0&&(this.offlineQueue.forEach(((r,s)=>{r.ts<e-this.queueTTL&&(t=s)})),-1!==t&&this.offlineQueue.splice(0,t+1).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: queued time exceeded the queueTTL option value"))}))),this.queueMaxSize>0&&this.offlineQueue.length>this.queueMaxSize&&this.offlineQueue.splice(0,this.offlineQueue.length-this.queueMaxSize).forEach((e=>{this.emit("offlineQueuePop",e.request),e.reject(new Error("Query aborted: too many queued requests (see the queueMaxSize option)"))}))}_dequeue(){const e={},t=()=>{this.offlineQueue.length>0&&(this.offlineQueue[0].request.jwt=this.jwt,this._timeoutRequest(this.offlineQueue[0].timeout,this.offlineQueue[0].request).then(this.offlineQueue[0].resolve).catch(this.offlineQueue[0].reject),this.emit("offlineQueuePop",this.offlineQueue.shift().request),setTimeout((()=>{t()}),Math.max(0,this.replayInterval)))};if(this.offlineQueueLoader){if("function"!=typeof this.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof this.offlineQueueLoader);return Promise.resolve().then((()=>this.offlineQueueLoader())).then((r=>{if(!Array.isArray(r))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof r);this._offlineQueue=r.concat(this.offlineQueue).filter((t=>{if(!t.request||void 0===t.request.requestId||!t.request.action||!t.request.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return!Object.prototype.hasOwnProperty.call(e,t.request.requestId)&&(e[t.request.requestId]=!0)})),t()}))}t()}_timeoutRequest(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if((0,b.debug)("REQUEST",t),-1===e)return this.protocol.query(t,r);const s=new Promise(((r,s)=>{setTimeout((()=>{s(new f.RequestTimeoutError(t,e))}),e)}));return Promise.race([s,this.protocol.query(t,r)])}}t.Kuzzle=v},4528:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KuzzleError=void 0;const s=r(4843);class i extends Error{constructor(e,t,r,i){super(e.message),this.status=e.status,this.id=e.id,this.code=e.code,this.props=e.props,i&&(this.controller=i.controller,this.collection=i.collection,this.action=i.action,this.index=i.index,this.volatile=i.volatile,this.requestId=i.requestId,this._id=i._id),e.errors&&(this.errors=e.errors,this.count=e.count),e.stack?(this.kuzzleStack=e.stack,this.stack=e.stack+"\n",this.stack+=" |\n",this.stack+=" |\n",this.stack+=` ${r}\n`,this.stack+=" |\n",this.stack+=" |\n"):this.stack=`KuzzleError: ${e.message}\n`,t&&(this.stack+=t.split("\n").map(s.hilightUserCode).slice(1).join("\n"))}}t.KuzzleError=i},8349:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RequestTimeoutError=void 0;class r extends Error{constructor(e,t){super(`Request timed out after ${t} ms`),this.request=e,this.delay=t}}t.RequestTimeoutError=r},9235:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AuthController=void 0;const s=r(9665),i=r(5914),n=r(3987);class o extends i.BaseController{constructor(e){super(e,"auth"),this._authenticationToken=null,this.kuzzle.on("tokenExpired",(()=>{this._authenticationToken=null}))}get authenticationToken(){return this._authenticationToken}set authenticationToken(e){if(null==e)this._authenticationToken=null;else{if("string"!=typeof e)throw new Error(`Invalid token argument: ${e}`);this._authenticationToken=new s.Jwt(e)}}authenticateRequest(e){this.kuzzle.cookieAuthentication||this.authenticationToken&&("auth"!==e.controller||"checkToken"!==e.action&&"login"!==e.action)&&(e.jwt=this.authenticationToken.encodedJwt)}createApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:t._id,action:"createApiKey",body:{description:e},expiresIn:t.expiresIn,refresh:t.refresh};return this.query(r,t).then((e=>e.result))}checkRights(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"checkRights",body:e};return this.query(r,t).then((e=>e.result.allowed))}deleteApiKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={_id:e,action:"deleteApiKey",refresh:t.refresh};return this.query(r,t).then((()=>null))}searchApiKeys(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t={action:"searchApiKeys",body:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},from:e.from,lang:e.lang,size:e.size};return this.query(t,e).then((e=>e.result))}checkToken(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=!1;return void 0===e&&(r=this.kuzzle.cookieAuthentication,!r&&this.authenticationToken&&(e=this.authenticationToken.encodedJwt)),this.query({action:"checkToken",body:{token:e},cookieAuth:r},{queuable:!1,...t}).then((e=>e.result))}createMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"createMyCredentials",body:t,strategy:e},r).then((e=>e.result))}credentialsExist(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"credentialsExist",strategy:e},t).then((e=>e.result))}deleteMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"deleteMyCredentials",strategy:e},t).then((e=>e.result.acknowledged))}getCurrentUser(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getCurrentUser"},e).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}getMyCredentials(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"getMyCredentials",strategy:e},t).then((e=>e.result))}getMyRights(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getMyRights"},e).then((e=>e.result.hits))}getStrategies(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"getStrategies"},e).then((e=>e.result))}login(e,t,r){let i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const n={action:"login",body:t,cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:r,strategy:e};return this.kuzzle.emit("beforeLogin"),this.query(n,{queuable:!1,timeout:-1,verb:"POST",...i}).then((e=>{if(this.kuzzle.cookieAuthentication){if(e.result.jwt){const e=new Error("Kuzzle support for cookie authentication is disabled or not supported");throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}return this.kuzzle.emit("loginAttempt",{success:!0}),void this.kuzzle.emit("afterLogin",{success:!0})}return this._authenticationToken=new s.Jwt(e.result.jwt),this.kuzzle.emit("loginAttempt",{success:!0}),this.kuzzle.emit("afterLogin",{success:!0}),e.result.jwt})).catch((e=>{throw this.kuzzle.emit("loginAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogin",{error:e.message,success:!1}),e}))}async logout(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.kuzzle.emit("beforeLogout");try{await this.query({action:"logout",cookieAuth:this.kuzzle.cookieAuthentication},{queuable:!1,timeout:-1,...e}),this._authenticationToken=null,this.kuzzle.emit("logoutAttempt",{success:!0}),this.kuzzle.emit("afterLogout",{success:!0})}catch(e){throw this.kuzzle.emit("logoutAttempt",{error:e.message,success:!1}),this.kuzzle.emit("afterLogout",{error:e.message,success:!1}),e}}updateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"updateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}updateSelf(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"updateSelf",body:e},t).then((e=>new n.User(this.kuzzle,e.result._id,e.result._source)))}validateMyCredentials(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"validateMyCredentials",body:t,strategy:e},r).then((e=>e.result))}refreshToken(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={action:"refreshToken",cookieAuth:this.kuzzle.cookieAuthentication,expiresIn:e.expiresIn};return this.query(t,e).then((e=>(this.kuzzle.cookieAuthentication||(this._authenticationToken=new s.Jwt(e.result.jwt)),e.result)))}}t.AuthController=o},5914:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseController=void 0,t.BaseController=class{constructor(e,t){Reflect.defineProperty(this,"_kuzzle",{value:e}),this._name=t}get kuzzle(){return this._kuzzle}get name(){return this._name}query(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.controller=e.controller||this.name,this._kuzzle.query(e,t)}}},4134:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BulkController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"bulk")}deleteByQuery(e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s={action:"deleteByQuery",body:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},collection:t,index:e};return this.query(s,r).then((e=>e.result.deleted))}import(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"import",body:{bulkData:r},collection:t,index:e},s).then((e=>e.result))}updateByQuery(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={action:"updateByQuery",body:{changes:s,query:r},collection:t,index:e};return this.query(n,i).then((e=>e.result.updated))}write(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return this.query({_id:s,action:"write",body:r,collection:t,index:e,notify:i.notify},i).then((e=>e.result))}mWrite(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"mWrite",body:{documents:r},collection:t,index:e,notify:s.notify},s).then((e=>e.result))}}t.BulkController=i},8285:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CollectionController=void 0;const s=r(1183),i=r(5914);class n extends i.BaseController{constructor(e){super(e,"collection")}create(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"create",body:r,collection:t,index:e};return this.query(i,s).then((()=>{}))}deleteSpecifications(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"deleteSpecifications",collection:t,index:e};return this.query(s,r).then((()=>{}))}exists(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"exists",collection:t,index:e},r).then((e=>e.result))}refresh(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"refresh",collection:t,index:e},r).then((()=>{}))}getMapping(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"getMapping",collection:t,includeKuzzleMeta:r.includeKuzzleMeta||!1,index:e};return this.query(s,r).then((e=>e.result))}getSpecifications(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.query({action:"getSpecifications",collection:t,index:e},r).then((e=>e.result))}list(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"list",from:t.from,index:e,size:t.size||0};return this.query(r,t).then((e=>e.result))}searchSpecifications(){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const t={action:"searchSpecifications",body:arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}};for(let r=0,s=["from","size","scroll"];r<s.length;r++){const i=s[r];t[i]=e[i]}return this.query(t,e).then((r=>new s.SpecificationsSearchResult(this.kuzzle,t,e,r.result)))}truncate(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"truncate",collection:t,index:e};return this.query(s,r).then((()=>{}))}update(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"update",body:r,collection:t,index:e},s).then((()=>{}))}updateMapping(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"updateMapping",body:r,collection:t,index:e},s).then((e=>e.result))}updateSpecifications(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"updateSpecifications",body:r,collection:t,index:e},s).then((e=>e.result))}validateSpecifications(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"validateSpecifications",body:r,collection:t,index:e},s).then((e=>e.result))}delete(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={action:"delete",collection:t,index:e};return this.query(s,r).then((()=>{}))}}t.CollectionController=n},7146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocumentController=void 0;const s=r(5914),i=r(3026);class n extends s.BaseController{constructor(e){super(e,"document")}count(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"count",body:r,collection:t,index:e};return this.query(i,s).then((e=>e.result.count))}create(e,t,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const i={_id:arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,action:"create",body:r,collection:t,index:e,silent:s.silent};return this.query(i,s).then((e=>e.result))}createOrReplace(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"createOrReplace",body:s,collection:t,index:e,silent:i.silent};return this.query(n,i).then((e=>e.result))}delete(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"delete",collection:t,index:e,silent:s.silent};return this.query(i,s).then((e=>e.result._id))}deleteByQuery(e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const s={action:"deleteByQuery",body:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},collection:t,index:e,lang:r.lang,silent:r.silent};return this.query(s,r).then((e=>e.result.ids))}deleteFields(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"deleteFields",body:{fields:s},collection:t,index:e,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}exists(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"exists",collection:t,index:e};return this.query(i,s).then((e=>e.result))}get(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:r,action:"get",collection:t,index:e};return this.query(i,s).then((e=>e.result))}mCreate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mCreate",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mCreateOrReplace(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mCreateOrReplace",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mDelete(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mDelete",body:{ids:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mGet(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mGet",body:{ids:r},collection:t,index:e};return this.query(i,s).then((e=>e.result))}mReplace(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mReplace",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mUpdate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mUpdate",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}mUpsert(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"mUpsert",body:{documents:r},collection:t,index:e,silent:s.silent,strict:s.strict};return this.query(i,s).then((e=>e.result))}replace(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"replace",body:s,collection:t,index:e,silent:i.silent};return this.query(n,i).then((e=>e.result))}search(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this._search(e,t,r,s).then((e=>{let{response:t,request:r,opts:s}=e;return new i.DocumentSearchResult(this.kuzzle,r,s,t.result)}))}_search(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={action:"search",body:null,collection:t,index:e};"http"===this.kuzzle.protocol.name&&s.verb&&"get"===s.verb.toLowerCase()?i.searchBody=r:i.body=r;for(let e=0,t=["from","size","scroll","lang"];e<t.length;e++){const r=t[e];i[r]=s[r]}const n={verb:s.verb||"POST",...s};return this.query(i,n).then((e=>({opts:n,request:i,response:e})))}update(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"update",body:s,collection:t,index:e,retryOnConflict:i.retryOnConflict,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}updateByQuery(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={action:"updateByQuery",body:{changes:s,query:r},collection:t,index:e,lang:i.lang,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}upsert(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const n={_id:r,action:"upsert",body:{changes:s,default:i.default},collection:t,index:e,silent:i.silent,source:i.source};return this.query(n,i).then((e=>e.result))}validate(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({action:"validate",body:r,collection:t,index:e},s).then((e=>e.result))}}t.DocumentController=n},8779:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IndexController=void 0;const s=r(5914);class i extends s.BaseController{constructor(e){super(e,"index")}create(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"create",index:e};return this.query(r,t).then((()=>{}))}delete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"delete",index:e};return this.query(r,t).then((()=>{}))}exists(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"exists",index:e},t).then((e=>e.result))}list(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"list"},e).then((e=>e.result.indexes))}mDelete(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"mDelete",body:{indexes:e}};return this.query(r,t).then((e=>e.result.deleted))}stats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.query({action:"stats"},e).then((e=>e.result))}}t.IndexController=i},3318:(e,t,r)=>{const{BaseController:s}=r(5914),i={getter:!0,required:["_id"]},n={getter:!0,required:["_id","field"]},o={getter:!0,required:["keys"]},l={getter:!0,required:["_id","member"]},u={getter:!0,required:["_id","cursor"],opts:["match","count"],mapResults:E},c={getter:!0,required:["_id","start","stop"],opts:f,mapResults:T},a={getter:!0,required:["_id","min","max"],opts:f,mapResults:T},d={required:["_id"]},h={required:["_id","value"]},p={append:h,bitcount:{getter:!0,required:["_id"],opts:["start","end"]},bitop:{required:["_id","operation","keys"]},bitpos:{getter:!0,required:["_id","bit"],opts:["start","end"]},dbsize:{getter:!0},decr:d,decrby:h,del:{required:["keys"]},exists:o,expire:{required:["_id","seconds"],mapResults:Boolean},expireat:{required:["_id","timestamp"],mapResults:Boolean},flushdb:{mapResults:y},geoadd:{required:["_id","points"]},geodist:{getter:!0,required:["_id","member1","member2"],opts:["unit"],mapResults:parseFloat},geohash:{getter:!0,required:["_id","members"]},geopos:{getter:!0,required:["_id","members"],mapResults:function(e){return e.map((e=>e.map(parseFloat)))}},georadius:{getter:!0,required:["_id","lon","lat","distance","unit"],opts:b,mapResults:v},georadiusbymember:{getter:!0,required:["_id","member","distance","unit"],opts:b,mapResults:v},get:i,getbit:{getter:!0,required:["_id","offset"]},getrange:{getter:!0,required:["_id","start","end"]},getset:h,hdel:{required:["_id","fields"]},hexists:{getter:!0,required:["_id","field"],mapResults:Boolean},hget:n,hgetall:{getter:!0,required:["_id"]},hincrby:{required:["_id","field","value"]},hincrbyfloat:{required:["_id","field","value"],mapResults:parseFloat},hkeys:i,hlen:i,hmget:{getter:!0,required:["_id","fields"]},hmset:{required:["_id","entries"],mapResults:y},hscan:u,hset:{required:["_id","field","value"],mapResults:Boolean},hsetnx:{required:["_id","field","value"],mapResults:Boolean},hstrlen:n,hvals:i,incr:d,incrby:h,incrbyfloat:{required:["_id","value"],mapResults:parseFloat},keys:{getter:!0,required:["pattern"]},lindex:{getter:!0,required:["_id","idx"]},linsert:{required:["_id","position","pivot","value"]},llen:i,lpop:d,lpush:{required:["_id","values"]},lpushx:h,lrange:{getter:!0,required:["_id","start","stop"]},lrem:{required:["_id","count","value"]},lset:{required:["_id","index","value"],mapResults:y},ltrim:{required:["_id","start","stop"],mapResults:y},mexecute:{required:["actions"]},mget:o,mset:{required:["entries"],mapResults:y},msetnx:{required:["entries"],mapResults:Boolean},object:{getter:!0,required:["_id","subcommand"]},persist:{required:["_id"],mapResults:Boolean},pexpire:{required:["_id","milliseconds"],mapResults:Boolean},pexpireat:{required:["_id","timestamp"],mapResults:Boolean},pfadd:{required:["_id","elements"],mapResults:Boolean},pfcount:o,pfmerge:{required:["_id","sources"],mapResults:y},ping:{getter:!0},psetex:{required:["_id","value","milliseconds"],mapResults:y},pttl:i,randomkey:{getter:!0},rename:{required:["_id","newkey"],mapResults:y},renamenx:{required:["_id","newkey"],mapResults:Boolean},rpop:d,rpoplpush:{required:["source","destination"]},rpush:{required:["_id","values"]},rpushx:h,sadd:{required:["_id","members"]},scan:{getter:!0,required:["cursor"],opts:["match","count"],mapResults:E},scard:i,sdiff:{getter:!0,required:["_id","keys"]},sdiffstore:{required:["_id","keys","destination"]},set:{required:["_id","value"],opts:["ex","px","nx","xx"],mapResults:y},setex:{required:["_id","value","seconds"],mapResults:y},setnx:{required:["_id","value"],mapResults:Boolean},sinter:o,sinterstore:{required:["destination","keys"]},sismember:{getter:!0,required:["_id","member"],mapResults:Boolean},smembers:i,smove:{required:["_id","destination","member"],mapResults:Boolean},sort:{required:["_id"],opts:["alpha","by","direction","get","limit"]},spop:{required:["_id"],opts:["count"],mapResults:g},srandmember:{getter:!0,required:["_id"],opts:["count"],mapResults:g},srem:{required:["_id","members"]},sscan:u,strlen:i,sunion:o,sunionstore:{required:["destination","keys"]},time:{getter:!0,mapResults:function(e){return e.map((e=>parseInt(e)))}},touch:{required:["keys"]},ttl:i,type:i,zadd:{required:["_id","elements"],opts:["nx","xx","ch","incr"]},zcard:i,zcount:{getter:!0,required:["_id","min","max"]},zincrby:{required:["_id","member","value"]},zinterstore:{required:["_id","keys"],opts:["weights","aggregate"]},zlexcount:{getter:!0,required:["_id","min","max"]},zrange:c,zrangebylex:{getter:!0,required:["_id","min","max"],opts:["limit"]},zrevrangebylex:{getter:!0,required:["_id","min","max"],opts:["limit"]},zrangebyscore:a,zrank:l,zrem:{required:["_id","members"]},zremrangebylex:{required:["_id","min","max"]},zremrangebyrank:{required:["_id","start","stop"]},zremrangebyscore:{required:["_id","min","max"]},zrevrange:c,zrevrangebyscore:a,zrevrank:l,zscan:u,zscore:{getter:!0,required:["_id","member"],mapResults:parseFloat},zunionstore:{required:["_id","keys"],opts:["weights","aggregate"]}};class _ extends s{constructor(e){super(e,"ms")}}for(let e=0,t=Object.keys(p);e<t.length;e++){const r=t[e];_.prototype[r]=function(){const e=p[r],t={action:r},s={};e.getter||(t.body={});for(var i=arguments.length,n=new Array(i),o=0;o<i;o++)n[o]=arguments[o];for(let s=0,i=e.required||[];s<i.length;s++){const o=i[s],l=n.shift();if(void 0===l)throw new Error(`ms.${r}: missing parameter ${o}`);m(t,e.getter,o,l)}if(n.length>1)throw new Error(`ms.${r}: too many parameters provided`);if(n.length){if("object"!=typeof n[0]||Array.isArray(n[0]))throw new Error(`ms.${r}: invalid optional paramater (expected an object`);if(Object.assign(s,n[0]),Array.isArray(e.opts))for(let r=0,i=e.opts;r<i.length;r++){const n=i[r];null!=s[n]&&m(t,e.getter,n,s[n])}}return"function"==typeof e.opts&&e.opts(t,s),this.query(t,s).then((t=>e.mapResults?e.mapResults(t.result):t.result))}}function m(e,t,r,s){t||"_id"===r?e[r]=s:e.body[r]=s}function b(e,t){const r=[];Object.keys(t).filter((function(e){return t[e]&&-1!==["withcoord","withdist","count","sort"].indexOf(e)})).forEach((function(e){"withcoord"===e||"withdist"===e?r.push(e):"count"!==e&&"sort"!==e||("count"===e&&r.push("count"),r.push(t[e]))})),r.length>0&&(e.options=r)}function f(e,t){e.options=["withscores"],t.limit&&(e.limit=t.limit)}function v(e){return Array.isArray(e[0])?e.map((function(e){const t={name:e.shift()};for(let r=0;r<e.length;r++){const s=e[r];Array.isArray(s)?t.coordinates=s.map(parseFloat):t.distance=parseFloat(s)}return t})):e.map((function(e){return{name:e}}))}function g(e){return Array.isArray(e)?e:[e]}function y(){}function T(e){const t=[];for(let r=0;r<e.length;r+=2)t.push({member:e[r],score:parseFloat(e[r+1])});return t}function E(e){return{cursor:e[0],values:e[1]}}e.exports={MemoryStorageController:_}},8429:function(e,t,r){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RealtimeController=t.UserOption=t.ScopeOption=void 0;const i=r(5914),n=s(r(8100));var o,l;(l=t.ScopeOption||(t.ScopeOption={})).all="all",l.in="in",l.out="out",l.none="none",(o=t.UserOption||(t.UserOption={})).all="all",o.in="in",o.out="out",o.none="none";class u extends i.BaseController{constructor(e){super(e,"realtime"),this._subscriptions=new Map,this._subscriptionsOff=new Map,this.kuzzle.on("tokenExpired",(()=>this.removeSubscriptions())),this.kuzzle.on("disconnected",(()=>this.saveSubscriptions())),this.kuzzle.on("networkError",(()=>this.saveSubscriptions())),this.kuzzle.on("reconnected",(()=>this.resubscribe())),this.kuzzle.on("reAuthenticated",(()=>{this.saveSubscriptions(),this.resubscribe()}))}count(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"count",body:{roomId:e}},t).then((e=>e.result.count))}publish(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};const i={_id:s._id,action:"publish",body:r,collection:t,index:e};return this.query(i,s).then((e=>e.result.published))}subscribe(e,t,r,s){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const o=new n.default(this,e,t,r,s,i);return o.subscribe().then((()=>(this._subscriptions.has(o.id)||this._subscriptions.set(o.id,[]),this._subscriptions.get(o.id).push(o),o.id)))}unsubscribe(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"unsubscribe",body:{roomId:e}};return this.query(r,t).then((()=>{const t=this._subscriptions.get(e);if(t){for(let e=0;e<t.length;e++)t[e].removeListeners();this._subscriptions.delete(e)}}))}saveSubscriptions(){this._subscriptions.forEach(((e,t)=>{for(let r=0;r<e.length;r++){const s=e[r];s.removeListeners(),s.autoResubscribe&&(this._subscriptionsOff.has(t)||this._subscriptionsOff.set(t,[]),this._subscriptionsOff.get(t).push(s))}this._subscriptions.delete(t)}))}resubscribe(){this._subscriptionsOff.forEach(((e,t)=>{for(let r=0;r<e.length;r++){const s=e[r];this._subscriptions.has(t)||this._subscriptions.set(t,[]),this._subscriptions.get(t).push(s),s.subscribe().catch((()=>this.kuzzle.emit("discarded",{request:s.request})))}this._subscriptionsOff.delete(t)}))}removeSubscriptions(){this._subscriptions.forEach((e=>{for(let t=0;t<e.length;t++)e[t].removeListeners()})),this._subscriptions=new Map,this._subscriptionsOff=new Map}}t.RealtimeController=u},7127:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SecurityController=void 0;const s=r(5914),i=r(3955),n=r(896),o=r(4103),l=r(7885),u=r(3987),c=r(4545);class a extends s.BaseController{constructor(e){super(e,"security")}createApiKey(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:r._id,action:"createApiKey",body:{description:t},expiresIn:r.expiresIn,refresh:r.refresh,userId:e};return this.query(s,r).then((e=>e.result))}checkRights(e,t,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){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.query({action:"refresh",collection:e},t)}replaceUser(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"replaceUser",body:t};return this.query(s,r).then((e=>new u.User(this.kuzzle,e.result._id,e.result._source)))}searchProfiles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchProfiles",body:e};for(let e=0,s=Object.entries(t);e<s.length;e++){const[t,i]=s[e];r[t]=i}return this.query(r,t).then((e=>new l.ProfileSearchResult(this.kuzzle,r,t,e.result)))}searchRoles(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchRoles",body:e};for(let e=0,s=Object.entries(t);e<s.length;e++){const[t,i]=s[e];r[t]=i}return this.query(r,t).then((e=>new n.RoleSearchResult(this.kuzzle,r,t,e.result)))}searchUsers(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r={action:"searchUsers",body:e};for(let e=0,s=["from","size","scroll","lang"];e<s.length;e++){const i=s[e];r[i]=t[i]}return this.query(r,t).then((e=>new c.UserSearchResult(this.kuzzle,r,t,e.result)))}updateCredentials(e,t,r){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return this.query({_id:t,action:"updateCredentials",body:r,strategy:e},s).then((e=>e.result))}updateProfile(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={_id:e,action:"updateProfile",body:t};return this.query(s,r).then((e=>new o.Profile(this.kuzzle,e.result._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{get ids(){return Array.from(this.values())}get filters(){return{ids:{values:Array.from(this.values())}}}constructor(e,t){super(),this.roomId=null,this.index=e,this.collection=t}}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{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)}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}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=r(147),n=s(r(1873));class o extends i.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=n.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=n.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,i={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):i.body=JSON.stringify(u):"jwt"===l?i.headers.authorization="Bearer "+u:"volatile"===l?i.headers["x-kuzzle-volatile"]=JSON.stringify(u):"index"===l||"collection"===l?n.default[e.controller]||"GET"!==s?i[l]=u:o[l]=u:Object.prototype.hasOwnProperty.call(i,l)?i[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(i.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:i}}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.");const t=e.headers["content-type"];return t&&t.includes("application/json")?JSON.parse(e.body):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=n.getResponseHeader("Content-Type");if(!t||!t.includes("application/json"))return void e(n.responseText);const r=JSON.parse(n.responseText);e(r)}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{get sslConnection(){return this._ssl}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 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=>{if(!e)return[];const s=Object.getOwnPropertyNames(e.prototype||e),i=Object.getPrototypeOf(e);return r([...s,...t(i)])},r=e=>[...new Set(e)];e.exports={proxify:function(e){let r=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 s=(e=>Object.assign({},{apiNamespace:"__proxy__",name:"object",deprecated:[],exposeApi:!1,seal:!0,sealGet:!1,warnDeprecationOnce:!0},e))(r),i=new Set(["inspect"]),n=new Set(s.deprecated),o=new Set,l=e=>{const t=`${s.name}.${e}`;s.warnDeprecationOnce&&o.has(t)||(o.add(t),console.warn(`Warning: ${t} is deprecated`))};return s.exposeApi&&(e[s.apiNamespace]={registerProp:e=>i.add(e),unregisterProp:e=>i.delete(e),hasProp:e=>i.has(e)}),[...Object.getOwnPropertyNames(e),...t(e)].forEach((e=>i.add(e))),new Proxy(e,{get:(e,t)=>{if(s.sealGet&&!i.has(t))throw new Error(`${s.name}.${t} is not defined`);return n.has(t)&&l(t),e[t]},set:(e,t,r)=>{if(s.seal&&!i.has(t))throw new Error(`Cannot set a value to the undefined '${t}' property in '${s.name}'`);return n.has(t)&&l(t),e[t]=r,!0}})}}},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.12.0 */
1
+ /*! Kuzzle Javascript SDK version 7.14.0-beta.1 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kuzzle-sdk",
3
- "version": "7.12.0",
3
+ "version": "7.14.0-beta.1",
4
4
  "description": "Official Javascript SDK for Kuzzle",
5
5
  "author": "The Kuzzle Team <support@kuzzle.io>",
6
6
  "repository": {
@@ -38,26 +38,28 @@
38
38
  "license": "Apache-2.0",
39
39
  "dependencies": {
40
40
  "min-req-promise": "^1.0.1",
41
- "ws": "^8.13.0"
41
+ "ws": "^8.17.1"
42
42
  },
43
43
  "devDependencies": {
44
+ "@babel/core": "^7.21.4",
45
+ "@babel/preset-env": "^7.21.4",
44
46
  "@commitlint/cli": "^17.6.7",
45
47
  "@commitlint/config-conventional": "^17.6.7",
46
48
  "@semantic-release/changelog": "^6.0.3",
47
49
  "@semantic-release/commit-analyzer": "^10.0.1",
48
50
  "@semantic-release/git": "^10.0.1",
49
51
  "@semantic-release/release-notes-generator": "^11.0.4",
50
- "@babel/core": "^7.21.4",
51
- "@babel/preset-env": "^7.21.4",
52
52
  "@types/node": "^18.15.11",
53
53
  "babel-loader": "^8.3.0",
54
54
  "buffer": "^6.0.3",
55
- "codecov": "^3.8.3",
56
55
  "cucumber": "^6.0.5",
57
- "semantic-release-config-kuzzle": "^1.0.0",
58
- "semantic-release-slack-bot": "^4.0.2",
59
56
  "cz-conventional-changelog": "^3.3.0",
57
+ "eslint-plugin-html": "^8.1.2",
58
+ "eslint-plugin-import": "^2.31.0",
60
59
  "eslint-plugin-kuzzle": "^0.0.6",
60
+ "eslint-plugin-node": "^11.1.0",
61
+ "eslint-plugin-promise": "^7.1.0",
62
+ "eslint-plugin-standard": "^5.0.0",
61
63
  "https-browserify": "^1.0.0",
62
64
  "lodash": "^4.17.21",
63
65
  "lolex": "^6.0.0",
@@ -67,6 +69,8 @@
67
69
  "proxyquire": "^2.1.3",
68
70
  "retry": "^0.13.1",
69
71
  "rewire": "^6.0.0",
72
+ "semantic-release-config-kuzzle": "^1.0.0",
73
+ "semantic-release-slack-bot": "^4.0.2",
70
74
  "should": "13.2.3",
71
75
  "should-sinon": "0.0.6",
72
76
  "sinon": "^14.0.2",
@@ -236,13 +236,13 @@ export declare class AuthController extends BaseController {
236
236
  *
237
237
  * @returns The encrypted JSON Web Token
238
238
  */
239
- login(strategy: string, credentials: JSONObject, expiresIn?: string | number): Promise<string>;
239
+ login(strategy: string, credentials: JSONObject, expiresIn?: string | number, options?: ArgsAuthControllerLogin): Promise<string>;
240
240
  /**
241
241
  * Send logout request to kuzzle with jwt.
242
242
  *
243
243
  * @see https://docs.kuzzle.io/sdk/js/7/controllers/auth/logout
244
244
  */
245
- logout(): Promise<void>;
245
+ logout(options?: ArgsAuthControllerLogin): Promise<void>;
246
246
  /**
247
247
  * Update credentials of the specified strategy for the current user.
248
248
  *
@@ -340,6 +340,8 @@ export type ArgsAuthControllerGetStrategies = ArgsDefault;
340
340
  export type ArgsAuthControllerUpdateMyCredentials = ArgsDefault;
341
341
  export type ArgsAuthControllerUpdateSelf = ArgsDefault;
342
342
  export type ArgsAuthControllerValidateMyCredentials = ArgsDefault;
343
+ export type ArgsAuthControllerLogin = ArgsDefault;
344
+ export type ArgsAuthControllerLogout = ArgsDefault;
343
345
  export interface ArgsAuthControllerRefreshToken extends ArgsDefault {
344
346
  expiresIn?: number | string;
345
347
  }
@@ -297,7 +297,7 @@ class AuthController extends Base_1.BaseController {
297
297
  *
298
298
  * @returns The encrypted JSON Web Token
299
299
  */
300
- login(strategy, credentials, expiresIn) {
300
+ login(strategy, credentials, expiresIn, options = {}) {
301
301
  const request = {
302
302
  action: "login",
303
303
  body: credentials,
@@ -306,7 +306,12 @@ class AuthController extends Base_1.BaseController {
306
306
  strategy,
307
307
  };
308
308
  this.kuzzle.emit("beforeLogin");
309
- return this.query(request, { queuable: false, timeout: -1, verb: "POST" })
309
+ return this.query(request, {
310
+ queuable: false,
311
+ timeout: -1,
312
+ verb: "POST",
313
+ ...options,
314
+ })
310
315
  .then((response) => {
311
316
  if (this.kuzzle.cookieAuthentication) {
312
317
  if (response.result.jwt) {
@@ -347,13 +352,13 @@ class AuthController extends Base_1.BaseController {
347
352
  *
348
353
  * @see https://docs.kuzzle.io/sdk/js/7/controllers/auth/logout
349
354
  */
350
- async logout() {
355
+ async logout(options = {}) {
351
356
  this.kuzzle.emit("beforeLogout");
352
357
  try {
353
358
  await this.query({
354
359
  action: "logout",
355
360
  cookieAuth: this.kuzzle.cookieAuthentication,
356
- }, { queuable: false, timeout: -1 });
361
+ }, { queuable: false, timeout: -1, ...options });
357
362
  this._authenticationToken = null;
358
363
  /**
359
364
  * @deprecated logout `logoutAttempt` is legacy event. Use afterLogout instead.
@@ -1,6 +1,6 @@
1
- import { BaseController } from "./Base";
2
1
  import { SpecificationsSearchResult } from "../core/searchResult/Specifications";
3
- import { CollectionMappings, JSONObject, ArgsDefault } from "../types";
2
+ import { ArgsDefault, CollectionMappings, JSONObject } from "../types";
3
+ import { BaseController } from "./Base";
4
4
  export declare class CollectionController extends BaseController {
5
5
  constructor(kuzzle: any);
6
6
  /**
@@ -169,6 +169,10 @@ export declare class CollectionController extends BaseController {
169
169
  * Mappings definition
170
170
  */
171
171
  mappings?: CollectionMappings;
172
+ /**
173
+ * If true, reindex the collection
174
+ */
175
+ reindexCollection?: boolean;
172
176
  /**
173
177
  * Elasticsearch index settings
174
178
  */
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CollectionController = void 0;
4
- const Base_1 = require("./Base");
5
4
  const Specifications_1 = require("../core/searchResult/Specifications");
5
+ const Base_1 = require("./Base");
6
6
  class CollectionController extends Base_1.BaseController {
7
7
  constructor(kuzzle) {
8
8
  super(kuzzle, "collection");
@@ -80,7 +80,7 @@ export declare class SecurityController extends BaseController {
80
80
  mGetProfiles(ids: any, options?: ArgsSecurityControllerMGetProfiles): Promise<any>;
81
81
  mGetUsers(ids: any, options?: ArgsSecurityControllerMGetUsers): Promise<any>;
82
82
  mGetRoles(ids: any, options?: ArgsSecurityControllerMGetRoles): Promise<any>;
83
- refresh(collection: any): Promise<import("../types").JSONObject>;
83
+ refresh(collection: any, options?: ArgsSecurityControllerRefresh): Promise<import("../types").JSONObject>;
84
84
  replaceUser(_id: any, body: any, options?: ArgsSecurityControllerReplaceUser): Promise<User>;
85
85
  searchProfiles(body: any, options?: ArgsSecurityControllerSearchProfiles): Promise<ProfileSearchResult>;
86
86
  searchRoles(body: any, options?: ArgsSecurityControllerSearchRoles): Promise<RoleSearchResult>;
@@ -160,3 +160,4 @@ export type ArgsSecurityControllerUpdateRoleMapping = ArgsDefault;
160
160
  export type ArgsSecurityControllerUpdateUser = ArgsDefault;
161
161
  export type ArgsSecurityControllerUpdateUserMapping = ArgsDefault;
162
162
  export type ArgsSecurityControllerValidateCredentials = ArgsDefault;
163
+ export type ArgsSecurityControllerRefresh = ArgsDefault;
@@ -305,11 +305,11 @@ class SecurityController extends Base_1.BaseController {
305
305
  body: { ids },
306
306
  }, options).then((response) => response.result.hits.map((hit) => new Role_1.Role(this.kuzzle, hit._id, hit._source.controllers)));
307
307
  }
308
- refresh(collection) {
308
+ refresh(collection, options = {}) {
309
309
  return this.query({
310
310
  action: "refresh",
311
311
  collection,
312
- });
312
+ }, options);
313
313
  }
314
314
  replaceUser(_id, body, options = {}) {
315
315
  const request = {
@@ -1,5 +1,5 @@
1
1
  import { JSONObject } from "./JSONObject";
2
- import { KDocument, KDocumentContentGeneric } from ".";
2
+ import { KDocumentContentGeneric } from ".";
3
3
  /**
4
4
  * Enum for notification types
5
5
  */
@@ -56,7 +56,21 @@ export interface DocumentNotification<TDocContent extends KDocumentContentGeneri
56
56
  /**
57
57
  * Updated document that triggered the notification
58
58
  */
59
- result: KDocument<TDocContent>;
59
+ result: {
60
+ /**
61
+ * The message or full document content.
62
+ */
63
+ _source: TDocContent;
64
+ /**
65
+ * Document unique ID.
66
+ * `null` if the notification is from a real-time message.
67
+ */
68
+ _id: string | null;
69
+ /**
70
+ * List of fields that have been updated (only available on document partial updates).
71
+ */
72
+ _updatedFields?: string[];
73
+ };
60
74
  /**
61
75
  * State of the document regarding the scope (`in` or `out`)
62
76
  */
@@ -84,7 +98,7 @@ export interface UserNotification extends BaseNotification {
84
98
  }
85
99
  export interface ServerNotification extends BaseNotification {
86
100
  /**
87
- * Server message explaining why this notifications has been triggered
101
+ * Server message explaining why this notifications has been triggered.
88
102
  */
89
103
  message: string;
90
104
  type: "TokenExpired";