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 +31 -34
- package/dist/kuzzle.js +1 -1
- package/dist/kuzzle.js.LICENSE.txt +1 -1
- package/package.json +11 -7
- package/src/controllers/Auth.d.ts +4 -2
- package/src/controllers/Auth.js +9 -4
- package/src/controllers/Collection.d.ts +6 -2
- package/src/controllers/Collection.js +1 -1
- package/src/controllers/Security.d.ts +2 -1
- package/src/controllers/Security.js +2 -2
- package/src/types/Notification.d.ts +17 -3
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:
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
|
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
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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(
|
|
126
|
+
const { Kuzzle } = require("kuzzle-sdk");
|
|
128
127
|
// ... or with the new import directive.
|
|
129
|
-
import { Kuzzle } from
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
}
|
package/src/controllers/Auth.js
CHANGED
|
@@ -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, {
|
|
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
|
|
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 {
|
|
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:
|
|
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";
|