From f0f45b8896b931f125f8721ccdaa28699fd62b4b Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 7 Jul 2016 09:46:19 +0000 Subject: [PATCH 1/2] Travis CI - [ci skip] - automatic dist folder --- dist/kuzzle.js | 7 +++++++ dist/kuzzle.min.js | 6 +++--- dist/kuzzle.min.map | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/dist/kuzzle.js b/dist/kuzzle.js index 0d1f4346a..4c8cb4b2a 100644 --- a/dist/kuzzle.js +++ b/dist/kuzzle.js @@ -120,6 +120,7 @@ process.chdir = function (dir) { process.umask = function() { return 0; }; },{}],2:[function(require,module,exports){ +(function (Buffer){ // uuid.js // // Copyright (c) 2010-2012 Robert Kieffer @@ -393,6 +394,7 @@ process.umask = function() { return 0; }; } })('undefined' !== typeof window ? window : null); +}).call(this,require("buffer").Buffer) },{}],3:[function(require,module,exports){ (function (process){ var @@ -2566,6 +2568,11 @@ KuzzleDataMapping.prototype.refresh = function (options, cb) { if (res.result[self.collection.index]) { if (res.result[self.collection.index].mappings[self.collection.collection]) { self.mapping = res.result[self.collection.index].mappings[self.collection.collection].properties; + + // Mappings can be empty. The mapping property should never be "undefined" + if (self.mapping === undefined) { + self.mapping = {}; + } } else { return cb ? cb(new Error('No mapping found for collection ' + self.collection.collection)) : false; } diff --git a/dist/kuzzle.min.js b/dist/kuzzle.min.js index 82e4d7d62..fb342991d 100644 --- a/dist/kuzzle.min.js +++ b/dist/kuzzle.min.js @@ -1,4 +1,4 @@ -// Official Javascript SDK for Kuzzle v1.9.1 - License: Apache-2.0 -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g1)for(var c=1;cb;b++)0===(3&b)&&(a=4294967296*Math.random()),e[b]=a>>>((3&b)<<3)&255;return e},"undefined"!=typeof console&&console.warn&&console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()")}}function e(){if("function"==typeof a)try{var b=a("crypto").randomBytes;l=j=b&&function(){return b(16)},j()}catch(c){}}function f(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){16>e&&(b[d+e++]=q[a])});16>e;)b[d+e++]=0;return b}function g(a,b){var c=b||0,d=p;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function h(a,b,c){var d=b&&c||0,e=b||[];a=a||{};var f=null!=a.clockseq?a.clockseq:u,h=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:w+1,j=h-v+(i-w)/1e4;if(0>j&&null==a.clockseq&&(f=f+1&16383),(0>j||h>v)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=h,w=i,u=f,h+=122192928e5;var k=(1e4*(268435455&h)+i)%4294967296;e[d++]=k>>>24&255,e[d++]=k>>>16&255,e[d++]=k>>>8&255,e[d++]=255&k;var l=h/4294967296*1e4&268435455;e[d++]=l>>>8&255,e[d++]=255&l,e[d++]=l>>>24&15|16,e[d++]=l>>>16&255,e[d++]=f>>>8|128,e[d++]=255&f;for(var m=a.node||t,n=0;6>n;n++)e[d+n]=m[n];return b?b:g(e)}function i(a,b,c){var d=b&&c||0;"string"==typeof a&&(b="binary"===a?new o(16):null,a=null),a=a||{};var e=a.random||(a.rng||j)();if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,b)for(var f=0;16>f;f++)b[d+f]=e[f];return b||g(e)}var j,k,l,m,n;c?d():e();for(var o="function"==typeof Buffer?Buffer:Array,p=[],q={},r=0;256>r;r++)p[r]=(r+256).toString(16).substr(1),q[p[r]]=r;var s=j(),t=[1|s[0],s[1],s[2],s[3],s[4],s[5]],u=16383&(s[6]<<8|s[7]),v=0,w=0,x=i;x.v1=h,x.v4=i,x.parse=f,x.unparse=g,x.BufferClass=o,x._rng=j,x._mathRNG=k,x._nodeRNG=l,x._whatwgRNG=m,"undefined"!=typeof b&&b.exports?b.exports=x:"function"==typeof define&&define.amd?define(function(){return x}):(n=c.uuid,x.noConflict=function(){return c.uuid=n,x},c.uuid=x)}("undefined"!=typeof window?window:null)},{}],3:[function(a,b,c){(function(c){function d(){var a=this,b=Date.now(),c=-1;a.queueTTL>0&&(a.offlineQueue.forEach(function(d,e){d.ts0&&a.offlineQueue.length>a.queueMaxSize&&a.offlineQueue.splice(0,a.offlineQueue.length-a.queueMaxSize).forEach(function(b){a.emitEvent("offlineQueuePop",b.query)})}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){"logout"!==a.action&&c.error&&"Token expired"===c.error.message&&(d.jwtToken=void 0,d.emitEvent("jwtTokenExpired",a,b)),b&&b(c.error,c)}),d.socket.emit("kuzzle",a),d.requestHistory[a.requestId]=c,Object.keys(d.requestHistory).forEach(function(a){d.requestHistory[a]0?(e.call(b,b.offlineQueue[0].query,b.offlineQueue[0].cb),b.emitEvent("offlineQueuePop",b.offlineQueue.shift()),setTimeout(function(){d()},Math.max(0,b.replayInterval))):b.queuing=!1};if(b.offlineQueueLoader){if("function"!=typeof b.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof b.offlineQueueLoader);if(a=b.offlineQueueLoader(),!Array.isArray(a))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof a);b.offlineQueue=a.concat(b.offlineQueue).filter(function(a){if(!a.query||void 0===a.query.requestId||!a.query.action||!a.query.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return c.hasOwnProperty(a.query.requestId)?!1:c[a.query.requestId]=!0})}d()}function g(){var a=this;Object.keys(a.subscriptions).forEach(function(b){Object.keys(a.subscriptions[b]).forEach(function(c){var d=a.subscriptions[b][c];d.renew(d.callback)})})}var h=a("node-uuid"),i=a("./kuzzleDataCollection"),j=a("./security/kuzzleSecurity"),k=a("./kuzzleMemoryStorage"),l=a("./security/kuzzleUser");b.exports=Kuzzle=function(b,d,e){var f=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,d,e);if(e||"function"!=typeof d||(e=d,d=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:e},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,listeners:[]},loginAttempt:{lastEmitted:null,listeners:[]},offlineQueuePush:{listeners:[]},offlineQueuePop:{listeners:[]}}},eventTimeout:{value:200},io:{value:null,writable:!0},queuing:{value:!1,writable:!0},requestHistory:{value:{},writable:!0},socket:{value:null,writable:!0},state:{value:"initializing",writable:!0},subscriptions:{value:{pending:{}},writable:!0},autoReconnect:{value:d&&"boolean"==typeof d.autoReconnect?d.autoReconnect:!0,enumerable:!0},defaultIndex:{value:d&&"string"==typeof d.defaultIndex?d.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:d&&"number"==typeof d.reconnectionDelay?d.reconnectionDelay:1e3,enumerable:!0},url:{value:b,enumerable:!0},autoQueue:{value:!1,enumerable:!0,writable:!0},autoReplay:{value:!1,enumerable:!0,writable:!0},autoResubscribe:{value:!0,enumerable:!0,writable:!0},headers:{value:{},enumerable:!0,writable:!0},metadata:{value:{},enumerable:!0,writable:!0},offlineQueue:{value:[],enumerable:!0,writable:!0},queueFilter:{value:null,enumerable:!0,writable:!0},queueMaxSize:{value:500,enumerable:!0,writable:!0},queueTTL:{value:12e4,enumerable:!0,writable:!0},replayInterval:{value:10,enumerable:!0,writable:!0},jwtToken:{value:void 0,enumerable:!0,writable:!0},offlineQueueLoader:{value:null,enumerable:!0,writable:!0}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),d&&(Object.keys(d).forEach(function(a){f.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(f,a).writable&&(f[a]=d[a])}),"auto"===d.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===f.state)throw new Error("This Kuzzle object has been invalidated. Did you try to access it after a disconnect call?")}}),Object.defineProperty(this,"addHeaders",{value:function(a,b){return Object.keys(b).forEach(function(c){a[c]||(a[c]=b[c])}),a}}),Object.defineProperty(this,"callbackRequired",{value:function(a,b){if(!b||"function"!=typeof b)throw new Error(a+": a callback argument is required for read queries")}}),Object.defineProperty(this,"security",{value:new j(this),enumerable:!0}),Object.defineProperty(this,"emitEvent",{value:function(a){var b=Date.now(),d=Array.prototype.slice.call(arguments,1),e=this.eventListeners[a];return e.lastEmitted&&e.lastEmitted>=b-this.eventTimeout?!1:(e.listeners.forEach(function(a){c.nextTick(function(){a.fn.apply(void 0,d)})}),void(void 0!==e.lastEmitted&&(e.lastEmitted=b)))}}),Object.defineProperty(this,"memoryStorage",{value:new k(this),enumerable:!0}),d&&d.connect&&"auto"!==d.connect?this.state="ready":this.connect(),this.bluebird?this.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["getAllStatistics","getServerInfo","getStatistics","listCollections","listIndexes","login","logout","now","query","checkToken","whoAmI"];return d&&-1!==e.indexOf(a)}}):void 0},Kuzzle.prototype.connect=function(){var a=this;return-1===["initializing","ready","disconnected","error","offline"].indexOf(this.state)?(a.connectCB&&a.connectCB(null,a),a):(a.state="connecting",a.socket=a.io(a.url,{reconnection:a.autoReconnect,reconnectionDelay:a.reconnectionDelay,forceNew:!0}),a.socket.once("connect",function(){a.state="connected",g.call(a),f.call(a),a.emitEvent("connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){var c=new Error('Unable to connect to kuzzle server at "'+a.url+'"');c.internal=b,a.state="error",a.emitEvent("error",c),a.connectCB&&a.connectCB(c)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),a.emitEvent("disconnected")}),a.socket.on("reconnect",function(){var b=function(){a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")};a.state="connected",a.jwtToken?a.checkToken(a.jwtToken,function(c,d){!c&&d.valid||(a.jwtToken=void 0,a.emitEvent("jwtTokenExpired")),b()}):b()}),this)},Kuzzle.prototype.setJwtToken=function(a){if("string"==typeof a)this.jwtToken=a;else{if("object"!=typeof a)return this.emitEvent("loginAttempt",{success:!1,error:"Invalid token argument: "+a}),this;if(!a.result||!a.result.jwt||"string"!=typeof a.result.jwt)return this.emitEvent("loginAttempt",{success:!1,error:"Cannot find a valid JWT token in the following object: "+JSON.stringify(a)}),this;this.jwtToken=a.result.jwt}return g.call(this),this.emitEvent("loginAttempt",{success:!0}),this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a){var b,c,d=this,e={strategy:a};return arguments[1]&&("object"==typeof arguments[1]?b=arguments[1]:"number"==typeof arguments[1]||"string"==typeof arguments[1]?e.expiresIn=arguments[1]:"function"==typeof arguments[1]&&(c=arguments[1])),arguments[2]&&("number"==typeof arguments[2]||"string"==typeof arguments[2]?e.expiresIn=arguments[2]:"function"==typeof arguments[2]&&(c=arguments[2])),arguments[3]&&"function"==typeof arguments[3]&&(c=arguments[3]),"object"==typeof b&&Object.keys(b).forEach(function(a){e[a]=b[a]}),this.query({controller:"auth",action:"login"},{body:e},{queuable:!1},function(a,b){a?(c&&"function"==typeof c&&c(a),d.emitEvent("loginAttempt",{success:!1,error:a.message})):(b.result.jwt&&d.setJwtToken(b.result.jwt),c&&"function"==typeof c&&c(null,b.result))}),d},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:h.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{queuable:!1},function(c){null===c?(b.jwtToken=void 0,"function"==typeof a&&a(null,b)):"function"==typeof a&&a(c)}),b},Kuzzle.prototype.checkToken=function(a,b){var c=this,d={body:{token:a}};return this.callbackRequired("Kuzzle.checkToken",b),this.query({controller:"auth",action:"checkToken"},d,{queuable:!1},function(a,c){return a?b(a):void b(null,c.result)}),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return b.callbackRequired("Kuzzle.whoAmI",a),b.query({controller:"auth",action:"getCurrentUser"},{},{},function(c,d){return c?a(c):void a(null,new l(b.security,d.result._id,d.result._source))}),b},Kuzzle.prototype.getMyRights=function(a,b){var c=this;b||"function"!=typeof a||(b=a,a=null),c.callbackRequired("Kuzzle.getMyRights",b),c.query({controller:"auth",action:"getMyRights"},{},null,function(a,c){return a?b(a):void b(null,c.result.hits)})},Kuzzle.prototype.updateSelf=function(a,b,c){var d=this,e={},f={controller:"auth",action:"updateSelf"};c||"function"!=typeof b||(c=b,b=null),e.body=a,c?d.query(f,e,b,function(a,b){return a?c(a):void c(null,b.result)}):d.query(f,e,b)},Kuzzle.prototype.addListener=function(a,b){var c,d=Object.keys(this.eventListeners),e=typeof b;if(this.isValid(),-1===d.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+d.toString());if("function"!==e)throw new Error("Invalid listener type: expected a function, got a "+e);return c=h.v1(),this.eventListeners[a].listeners.push({id:c,fn:b}),c},Kuzzle.prototype.getAllStatistics=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getAllStatistics",b),this.query({controller:"admin",action:"getAllStats"},{},a,function(a,c){return a?b(a):void b(null,c.result.hits)}),this},Kuzzle.prototype.getStatistics=function(a,b,c){var d;return c||(1===arguments.length?(c=arguments[0],b=null,a=null):(c=arguments[1],"object"==typeof arguments[0]?(b=arguments[0],a=null):(a=arguments[0],b=null))),d=function(b,d){return b?c(b):void(a?c(null,d.result.hits):c(null,[d.result]))},this.callbackRequired("Kuzzle.getStatistics",c),a?this.query({controller:"admin",action:"getStats"},{body:{startTime:a}},b,d):this.query({controller:"admin",action:"getLastStats"},{},b,d),this},Kuzzle.prototype.dataCollectionFactory=function(a,b){if(this.isValid(),!b){if(!this.defaultIndex)throw new Error("Unable to create a new data collection object: no index specified");b=this.defaultIndex}if("string"!=typeof b)throw new Error('Invalid "index" argument: string expected, got '+typeof b);if("string"!=typeof a)throw new Error('Invalid "collection" argument: string expected, got '+typeof a);return this.collections[b]||(this.collections[b]={}),this.collections[b][a]||(this.collections[b][a]=new i(this,b,a)),this.collections[b][a]},Kuzzle.prototype.flushQueue=function(){return this.offlineQueue=[],this},Kuzzle.prototype.listCollections=function(){var a,b,c,d="all",e=Array.prototype.slice.call(arguments);if(e.forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.listCollections: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.listCollections",c),b&&b.type&&(d=b.type),this.query({index:a,controller:"read",action:"listCollections"},{body:{type:d}},b,function(a,b){return a?c(a):c(null,b.result.collections)}),this},Kuzzle.prototype.listIndexes=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.listIndexes",b),this.query({controller:"read",action:"listIndexes"},{},a,function(a,c){return a?b(a):b(null,c.result.indexes)}),this},Kuzzle.prototype.disconnect=function(){var a;this.logout(),this.state="disconnected",this.socket.close(),this.socket=null;for(a in this.collections)this.collections.hasOwnProperty(a)&&delete this.collections[a]},Kuzzle.prototype.getServerInfo=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getServerInfo",b),this.query({controller:"read",action:"serverInfo"},{},a,function(a,c){return a?b(a):void b(null,c.result.serverInfo)}),this},Kuzzle.prototype.refreshIndex=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.refreshIndex: index required");a=this.defaultIndex}return this.query({index:a,controller:"admin",action:"refreshIndex"},{},b,c),this},Kuzzle.prototype.getAutoRefresh=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.getAutoRefresh: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.getAutoRefresh",c),this.query({index:a,controller:"admin",action:"getAutoRefresh"},{},b,c),this},Kuzzle.prototype.setAutoRefresh=function(){var a,b,c,d;if(Array.prototype.slice.call(arguments).forEach(function(e){switch(typeof e){case"string":a=e;break;case"boolean":b=e;break;case"object":c=e;break;case"function":d=e}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.setAutoRefresh: index required");a=this.defaultIndex}if(void 0===b)throw new Error("Kuzzle.setAutoRefresh: autoRefresh value is required");return this.query({index:a,controller:"admin",action:"setAutoRefresh"},{body:{autoRefresh:b}},c,d),this},Kuzzle.prototype.now=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.now",b),this.query({controller:"read",action:"now"},{},a,function(a,c){return a?b(a):void b(null,c.result.now)}),this},Kuzzle.prototype.query=function(a,b,c,f){var g,i={action:a.action,controller:a.controller,metadata:this.metadata},j=this;if(this.isValid(),f||"function"!=typeof c||(f=c,c=null),c&&(c.metadata&&Object.keys(c.metadata).forEach(function(a){i.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){i.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(i[g]=b[g]);return i=j.addHeaders(i,this.headers),void 0===j.jwtToken||"auth"===i.controller&&"checkToken"===i.action||(i.headers=i.headers||{},i.headers.authorization="Bearer "+j.jwtToken),a.collection&&(i.collection=a.collection),a.index&&(i.index=a.index),i.requestId||(i.requestId=h.v4()),"connected"===j.state||c&&c.queuable===!1?"connected"===j.state?e.call(this,i,f):f&&f(new Error("Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: "+JSON.stringify(i))):(j.queuing||-1!==["initializing","connecting"].indexOf(j.state))&&(d.call(this,i,f),j.queueFilter&&!j.queueFilter(i)||(j.offlineQueue.push({ts:Date.now(),query:i,cb:f}),j.emitEvent("offlineQueuePush",{query:i,cb:f}))),j},Kuzzle.prototype.removeAllListeners=function(a){var b=Object.keys(this.eventListeners),c=this;if(a){if(-1===b.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+b.toString());this.eventListeners[a].listeners=[]}else b.forEach(function(a){c.eventListeners[a].listeners=[]})},Kuzzle.prototype.removeListener=function(a,b){var c=Object.keys(this.eventListeners),d=this;if(-1===c.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+c.toString());this.eventListeners[a].listeners.forEach(function(c,e){c.id===b&&d.eventListeners[a].listeners.splice(e,1)})},Kuzzle.prototype.replayQueue=function(){return"offline"===this.state||this.autoReplay||(d.call(this),f.call(this)),this},Kuzzle.prototype.setDefaultIndex=function(a){if("string"!=typeof a)throw new Error("Invalid default index: ["+a+"] (an index name is expected)");if(0===a.length)throw new Error("Cannot set an empty index as the default index");return this.defaultIndex=a,this},Kuzzle.prototype.setHeaders=function(a,b){var c=this;if("object"!=typeof a||Array.isArray(a))throw new Error("Expected a content object, received a "+typeof a);return b?c.headers=a:Object.keys(a).forEach(function(b){c.headers[b]=a[b]}),c},Kuzzle.prototype.startQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!0),this},Kuzzle.prototype.stopQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!1),this}}).call(this,a("_process"))},{"./kuzzleDataCollection":4,"./kuzzleMemoryStorage":7,"./security/kuzzleSecurity":11,"./security/kuzzleUser":13,_process:1,"node-uuid":2,"socket.io-client":void 0}],4:[function(a,b,c){function d(a,b,c){if(!b||!c)throw new Error("The KuzzleDataCollection object constructor needs an index and a collection arguments");return Object.defineProperties(this,{collection:{value:c,enumerable:!0},index:{value:b,enumerable:!0},kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),Object.defineProperty(this,"buildQueryArgs",{value:function(a,b){return{controller:a,action:b,collection:this.collection,index:this.index}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["publishMessage","setHeaders","subscribe"];return d&&-1===e.indexOf(a)}}):this}var e=a("./kuzzleDocument"),f=a("./kuzzleDataMapping"),g=a("./kuzzleRoom");d.prototype.advancedSearch=function(a,b,c){var d,f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.advancedSearch",c),d=f.kuzzle.addHeaders({body:a},this.headers),f.kuzzle.query(this.buildQueryArgs("read","search"),d,b,function(a,b){var d=[];return a?c(a):(b.result.hits.forEach(function(a){var b=new e(f,a._id,a._source);b.version=a._version,d.push(b)}),void c(null,{total:b.result.total,documents:d}))}),this},d.prototype.count=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.count",c),d=this.kuzzle.addHeaders({body:a},this.headers),this.kuzzle.query(this.buildQueryArgs("read","count"),d,b,function(a,b){return a?c(a):void c(null,b.result.count)}),this},d.prototype.create=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","createCollection"),c,a,b),this},d.prototype.createDocument=function(a,b,c,d){var f=this,g={},h="create";return a&&"string"!=typeof a&&(d=c,c=b,b=a,a=null),d||"function"!=typeof c||(d=c,c=null),b instanceof e?g=b.serialize():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g=f.kuzzle.addHeaders(g,f.headers),d?f.kuzzle.query(this.buildQueryArgs("write",h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write",h),g,c),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};"string"==typeof a?(e._id=a,d="delete"):(e.body=a,d="deleteByQuery"),c||"function"!=typeof b||(c=b,b=null),e=this.kuzzle.addHeaders(e,this.headers),c?this.kuzzle.query(this.buildQueryArgs("write",d),e,b,function(a,b){return a?c(a):void("delete"===d?c(null,[b.result._id]):c(null,b.result.ids))}):this.kuzzle.query(this.buildQueryArgs("write",d),e,b)},d.prototype.fetchDocument=function(a,b,c){var d={_id:a},f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.fetch",c),d=f.kuzzle.addHeaders(d,this.headers),f.kuzzle.query(this.buildQueryArgs("read","get"),d,b,function(a,b){var d;return a?c(a):(d=new e(f,b.result._id,b.result._source),d.version=b.result._version,void c(null,d))}),this},d.prototype.fetchAllDocuments=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),a&&(a.from&&(c.from=a.from),a.size&&(c.size=a.size)),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch(c,a,b),this},d.prototype.getMapping=function(a,b){var c;return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.getMapping",b),c=new f(this),c.refresh(a,b),this},d.prototype.publishMessage=function(a,b){var c={};return a instanceof e?c=a.serialize():c.body=a,c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","publish"),c,b),this},d.prototype.replaceDocument=function(a,b,c,d){var f=this,g={_id:a,body:b};return d||"function"!=typeof c||(d=c,c=null),g=f.kuzzle.addHeaders(g,this.headers),d?f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c),this},d.prototype.subscribe=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.subscribe",c),d=new g(this,b),d.renew(a,c)},d.prototype.truncate=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("admin","truncateCollection"),c,a,b),this},d.prototype.updateDocument=function(a,b,c,d){var f={_id:a,body:b},g=this;return d||"function"!=typeof c||(d=c,c=null),f=g.kuzzle.addHeaders(f,this.headers),d?g.kuzzle.query(this.buildQueryArgs("write","update"),f,c,function(a,b){var c;return a?d(a):(c=new e(g,b.result._id),void c.refresh(d))}):g.kuzzle.query(this.buildQueryArgs("write","update"),f,c),g},d.prototype.documentFactory=function(a,b){return new e(this,a,b)},d.prototype.roomFactory=function(a){return new g(this,a)},d.prototype.dataMappingFactory=function(a){return new f(this,a)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"./kuzzleDataMapping":5,"./kuzzleDocument":6,"./kuzzleRoom":8}],5:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},mapping:{value:b||{},enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["set","setHeaders"];return d&&-1===e.indexOf(a)}}):this}d.prototype.apply=function(a,b){var c=this,d=this.kuzzle.addHeaders({body:{properties:this.mapping}},this.headers);return b||"function"!=typeof a||(b=a,a=null),c.kuzzle.query(this.collection.buildQueryArgs("admin","updateMapping"),d,a,function(d){return d?b?b(d):!1:void c.refresh(a,b)}),this},d.prototype.refresh=function(a,b){var c=this,d=this.kuzzle.addHeaders({},this.headers);return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.query(this.collection.buildQueryArgs("admin","getMapping"),d,a,function(a,d){return a?b?b(a):!1:d.result[c.collection.index]?d.result[c.collection.index].mappings[c.collection.collection]?(c.mapping=d.result[c.collection.index].mappings[c.collection.collection].properties,void(b&&b(null,c))):b?b(new Error("No mapping found for collection "+c.collection.collection)):!1:b?b(new Error("No mapping found for index "+c.collection.index)):!1}),this},d.prototype.set=function(a,b){return this.mapping[a]=b,this},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],6:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{collection:{value:a.collection,enumerable:!0},dataCollection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},id:{value:void 0,enumerable:!0,writable:!0},content:{value:{},writable:!0,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},version:{value:void 0,enumerable:!0,writable:!0}}),!c&&b&&"object"==typeof b&&(c=b,b=null),c&&(c._version&&(this.version=c._version,delete c._version),this.setContent(c,!0)),b&&Object.defineProperty(this,"id",{value:b,enumerable:!0}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","refresh","save"];return d&&-1!==e.indexOf(a)}}):this}d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a._version=this.version,a=this.kuzzle.addHeaders(a,this.headers)},d.prototype.toString=function(){return JSON.stringify(this.serialize())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a,function(a){return a?b(a):void b(null,c.id)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a)},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");this.kuzzle.callbackRequired("KuzzleDocument.refresh",b),c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,e){var f;return a?b(a):(f=new d(c.dataCollection,c.id,e.result._source),f.version=e.result._version,void b(null,f))})},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.dataCollection.buildQueryArgs("write","createOrReplace"),c,a,function(a,c){return a?b?b(a):!1:(d.id=c.result._id,d.version=c.result._version,void(b&&b(null,d)))}),d},d.prototype.publish=function(a){var b=this.serialize();return this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this},d.prototype.setContent=function(a,b){var c=this;return b?this.content=a:Object.keys(a).forEach(function(b){c.content[b]=a[b]}),this},d.prototype.subscribe=function(a,b){var c;if(a&&!b&&"function"==typeof a&&(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDocument.subscribe",b),!this.id)throw new Error("KuzzleDocument.subscribe: cannot subscribe to a document if no ID has been provided");return c={ids:{values:[this.id]}},this.dataCollection.subscribe(c,a,b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],7:[function(a,b,c){function d(a){return Object.defineProperties(this,{kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),this.setHeaders=a.setHeaders.bind(this),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["setHeaders"];return d&&-1===e.indexOf(a)}}):this}!function(){var a=["id","value"],b=["id","keys"],c={append:a,bgrewriteaof:[],bgsave:[],bitcount:["id","start","end"],bitop:["operation","destkey",b],bitpos:["id","bit",{__opts__:["start","end"]}],blpop:[b,"timeout"],brpoplpush:["source","destination"],dbsize:[],decrby:a,del:[b],discard:[],exec:[],exists:[b],expire:["id","seconds"],expireat:["id","timestamp"],flushdb:[],getbit:["id","offset"],getrange:["id","start","end"],hdel:["id",["field","fields"]],hexists:["id","field"],hincrby:["id","field","value"],hmset:["id","values"],hset:["id","field","value"],info:["section"],keys:["pattern"],lastsave:[],lindex:["id","idx"],linsert:["id","position","pivot","value"],lpush:["id",["value","values"]],lrange:["id","start","stop"],lrem:["id","count","value"],lset:["id","idx","value"],ltrim:["id","start","stop"],mset:["values"],multi:[],object:["subcommand","args"],pexpire:["id","milliseconds"],pexpireat:["id","timestamp"],pfadd:["id",["element","elements"]],pfmerge:["destkey",["sourcekey","sourcekeys"]],ping:[],psetex:["id","milliseconds","value"],publish:["channel","message"],randomkey:[],rename:["id","newkey"],renamenx:["id","newkey"],restore:["id","ttl","content"],rpoplpush:["source","destination"],sadd:["id",["member","members"]],save:[],set:["id","value",{__opts__:["ex","px","nx","xx"]}],sdiffstore:["destination",b],setbit:["id","offset","value"],setex:["id","seconds","value"],setrange:["id","offset","value"],sinterstore:["destination",b],sismember:["id","member"],smove:["id","destination","member"], -sort:["id",{__opts__:["by","offset","count","get","direction","alpha","store"]}],spop:["id","count"],srem:["id",["member","members"]],sunionstore:["destination",b],unwatch:[],wait:["numslaves","timeout"],zadd:["id",{__opts__:["nx","xx","ch","incr","score","member","members"]}],zcount:["id","min","max"],zincrby:["id","value","member"],zinterstore:["destination",b,{__opts__:["weight","weights","aggregate"]}],zlexcount:["id","min","max"],zrange:["id","start","stop",{__opts__:["withscores"]}],zrangebylex:["id","min","max",{__opts__:["offset","count"]}],zrangebyscore:["id","min","max",{__opts__:["withscores","offset","count"]}],zrem:["id","member"],zremrangebylex:["id","min","max"],zremrangebyscore:["id","min","max"],zrevrangebylex:["id","max","min",{__opts__:["offset","count"]}],zrevrangebyscore:["id","max","min",{__opts__:["withscores","offset","count"]}],zrevrank:["id","member"]};c.decr=c.get=c.dump=c.hgetall=c.hkeys=c.hlen=c.hstrlen=c.hvals=c.incr=c.llen=c.lpop=c.persist=c.pttl=c.rpop=c.scard=c.smembers=c.strlen=c.ttl=c.type=c.zcard=["id"],c.getset=c.lpushx=a,c.del=c.exists=c.mget=c.pfcount=c.sdiff=c.sinter=c.sunion=c.watch=[b],c.incrby=c.incrbyfloat=c.decrby,c.brpop=c.blpop,c.hget=c.hexists,c.hmget=c.hdel,c.hsetnx=c.hset,c.msetnx=c.mset,c.rpush=c.lpush,c.hincrbyfloat=c.hincrby,c.srandmember=c.spop,c.zrevrange=c.zrange,c.zscore=c.zrevrank,Object.keys(c).forEach(function(a){d.prototype[a]=function(){var b,d=Array.prototype.slice.call(arguments),e=null,f={controller:"ms",action:a},g={};return"function"==typeof d[d.length-1]&&(b=d.pop()),d.length&&"object"==typeof d[d.length-1]&&1===Object.keys(d[d.length-1]).length&&void 0!==d[d.length-1].queuable&&(e=d.pop()),c[a].forEach(function(a,b){void 0!==d[b]&&(Array.isArray(a)&&(a=Array.isArray(d[b])?a[1]:a[0]),"id"===a?g._id=d[b]:(g.body||(g.body={}),"object"==typeof a&&void 0!==a.__opts__?a.__opts__.forEach(function(a){void 0!==d[b][a]&&(g.body[a]=d[b][a])}):g.body[a]=d[b]))}),this.kuzzle.query(f,g,e,b),this}})}(),b.exports=d},{}],8:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:h.v4()},lastRenewal:{value:null,writable:!0},notifier:{value:null,writable:!0},queue:{value:[],writable:!0},renewalDelay:{value:500},scope:{value:b&&b.scope?b.scope:"all"},state:{value:b&&b.state?b.state:"done"},subscribing:{value:!1,writable:!0},users:{value:b&&b.users?b.users:"none"},collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},filters:{value:null,enumerable:!0,writable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},metadata:{value:b&&b.metadata?b.metadata:{},enumerable:!0,writable:!0},roomId:{value:null,enumerable:!0,writable:!0},subscribeToSelf:{value:b&&"boolean"==typeof b.subscribeToSelf?b.subscribeToSelf:!0,enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["count"];return d&&-1!==e.indexOf(a)}}):this}function e(a){return a.error?this.callback(a.error):"jwtTokenExpired"===a.action?(this.kuzzle.jwtToken=void 0,this.kuzzle.emitEvent("jwtTokenExpired")):void(this.kuzzle.requestHistory[a.requestId]?(this.subscribeToSelf&&this.callback(null,a),delete this.kuzzle.requestHistory[a.requestId]):this.callback(null,a))}function f(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}function g(){return"connected"===this.kuzzle.state&&!this.subscribing}var h=a("node-uuid");d.prototype.count=function(a){var b;if(this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),!g.call(this))return this.queue.push({action:"count",args:[a]}),this;if(!this.roomId)throw new Error("KuzzleRoom.count: cannot count subscriptions on an inactive room");return this.kuzzle.query(this.collection.buildQueryArgs("subscribe","count"),b,function(b,c){return b?a(b):void a(null,c.result.count)}),this},d.prototype.renew=function(a,b){var c=Date.now(),d={scope:this.scope,state:this.state,users:this.users},g=this;return!b&&a&&"function"==typeof a&&(b=a,a=null),g.kuzzle.callbackRequired("KuzzleRoom.renew",b),g.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(a&&(g.filters=a),"connected"!==g.kuzzle.state?(g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,g):g.subscribing?(g.queue.push({action:"renew",args:[a,b]}),g):(g.unsubscribe(),g.roomId=null,g.subscribing=!0,g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,d.body=g.filters,d=g.kuzzle.addHeaders(d,this.headers),g.kuzzle.query(g.collection.buildQueryArgs("subscribe","on"),d,{metadata:g.metadata},function(a,b){if(delete g.kuzzle.subscriptions.pending[g.id],g.subscribing=!1,a)throw g.queue=[],new Error("Error during Kuzzle subscription: "+a.message);g.lastRenewal=c,g.roomId=b.result.roomId,g.channel=b.result.channel,g.kuzzle.subscriptions[g.roomId]||(g.kuzzle.subscriptions[g.roomId]={}),g.kuzzle.subscriptions[g.roomId][g.id]=g,g.notifier=e.bind(g),g.kuzzle.socket.on(g.channel,g.notifier),f.call(g)}),g))},d.prototype.unsubscribe=function(){var a,b=this,c=b.roomId;return g.call(this)?(c&&(b.kuzzle.socket.off(b.channel,this.notifier),1===Object.keys(b.kuzzle.subscriptions[c]).length?(delete b.kuzzle.subscriptions[c],0===Object.keys(b.kuzzle.subscriptions.pending).length?b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}):a=setInterval(function(){0===Object.keys(b.kuzzle.subscriptions.pending).length&&(b.kuzzle.subscriptions[c]||b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}),clearInterval(a))},100)):delete b.kuzzle.subscriptions[c][b.id],b.roomId=null),b):(b.queue.push({action:"unsubscribe",args:[]}),b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":2}],9:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteProfile"},updateActionName:{value:"updateProfile"}}),c&&c.roles&&(c.roles=c.roles.map(function(b){return b._id&&b._source?new f(a,b._id,b._source):b})),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleRole");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c,d=this;if(!this.content.roles)throw new Error('Argument "roles" is mandatory in a profile. This argument contains an array of KuzzleRole or an array of id string');return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c=this.serialize(),d.kuzzle.query(d.kuzzleSecurity.buildQueryArgs("createOrReplaceProfile"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))}),d},d.prototype.addRole=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be a KuzzleRole or a id string');return this.content.roles||(this.content.roles=[]),this.content.roles.push(a),this},d.prototype.setRoles=function(a){if(!Array.isArray(a))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string');return a.map(function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string')}),this.content.roles=a,this},d.prototype.hydrate=function(a,b){var c=this,e={ids:[]};e.ids=this.content.roles.map(function(a){return"string"==typeof a?a:a instanceof f?a.id:void 0}),a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleProfile.hydrate",b),c.kuzzle.query(c.kuzzleSecurity.buildQueryArgs("mGetRoles"),{body:e},a,function(a,e){return a?b(a):void b(null,new d(c,c.id,{roles:e.result.hits}))})},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.roles&&Array.isArray(a.body.roles)?(a.body.roles=a.body.roles.map(function(a){return a instanceof f?a.id:a}),a):a},d.prototype.getRoles=function(){return this.content.roles},b.exports=d},{"./kuzzleRole":10,"./kuzzleSecurityDocument":12}],10:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteRole"},updateActionName:{value:"updateRole"}}),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c=this.serialize(),d=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceRole"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))})},b.exports=d},{"./kuzzleSecurityDocument":12}],11:[function(a,b,c){function d(a){return Object.defineProperty(this,"kuzzle",{value:a}),Object.defineProperty(this,"buildQueryArgs",{value:function(a){return{controller:"security",action:a}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["roleFactory","profileFactory","userFactory","isActionAllowed"];return d&&-1===e.indexOf(a)}}):this}var e=a("./kuzzleRole"),f=a("./kuzzleProfile"),g=a("./kuzzleUser");d.prototype.getRole=function(a,b,c){var d,f=this;if(!a)throw new Error("Id parameter is mandatory for getRole function");c||"function"!=typeof b||(c=b,b=null),d={_id:a},f.kuzzle.callbackRequired("KuzzleSecurity.getRole",c),f.kuzzle.query(this.buildQueryArgs("getRole"),d,b,function(a,b){return a?c(a):void c(null,new e(f,b.result._id,b.result._source))})},d.prototype.searchRoles=function(a,b,c){var d=this;c||"function"!=typeof b||(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchRoles",c),d.kuzzle.query(this.buildQueryArgs("searchRoles"),{body:a},b,function(a,b){var f;return a?c(a):(f=b.result.hits.map(function(a){return new e(d,a._id,a._source)}),void c(null,{total:b.result.total,roles:f}))})},d.prototype.createRole=function(a,b,c,d){var f=this,g={},h="createRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createRole: cannot create a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceRole":"createRole"),d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),void d(null,c))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateRole=function(a,b,c,d){var f=this,g={},h="updateRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateRole: cannot update a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(c){return c?d(c):void d(null,new e(f,a,b))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteRole=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b)},d.prototype.roleFactory=function(a,b){return new e(this,a,b)},d.prototype.getProfile=function(a,b,c){var d,e=this,g=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getProfile function");c||"function"!=typeof b?void 0!==b.hydrate&&(g=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getProfile",c),e.kuzzle.query(this.buildQueryArgs("getProfile"),d,b,function(a,b){return a?c(a):(g||(b.result._source.roles=b.result._source.roles.map(function(a){var b={_id:a._id};return void 0!==a._source.restrictedTo&&(b.restrictedTo=a._source.restrictedTo),void 0!==a._source.allowInternalIndex&&(b.allowInternalIndex=a._source.allowInternalIndex),b})),void c(null,new f(e,b.result._id,b.result._source)))})},d.prototype.searchProfiles=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchProfiles",c),d.kuzzle.query(this.buildQueryArgs("searchProfiles"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new f(d,a._id,a._source)}),void c(null,{total:b.result.total,profiles:e}))})},d.prototype.createProfile=function(a,b,c,d){var e=this,g={},h="createProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createProfile: cannot create a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceProfile":"createProfile"),d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new f(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateProfile=function(a,b,c,d){var e=this,g={},h="updateProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateProfile: cannot update a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c={};return a?d(a):(Object.keys(b.result._source).forEach(function(a){"roles"!==a&&(c[a]=b.result._source[a])}),c.roles=b.result._source.roles.map(function(a){return a._id}),void d(null,new f(e,b.result._id,c)))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteProfile=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b)},d.prototype.profileFactory=function(a,b){return new f(this,a,b)},d.prototype.getUser=function(a,b,c){var d,e=this,f=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getUser function");c||"function"!=typeof b?void 0!==b.hydrate&&(f=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getUser",c),e.kuzzle.query(this.buildQueryArgs("getUser"),d,b,function(a,b){return a?c(a):(f||(b.result._source.profile=b.result._source.profile._id),void c(null,new g(e,b.result._id,b.result._source)))})},d.prototype.searchUsers=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchUsers",c),d.kuzzle.query(this.buildQueryArgs("searchUsers"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new g(d,a._id,a._source)}),void c(null,{total:b.result.total,users:e}))})},d.prototype.createUser=function(a,b,c,d){var e=this,f={},h="createUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createUser: cannot create a user without a user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,c&&(h=c.replaceIfExist?"createOrReplaceUser":"createUser"),d?e.kuzzle.query(this.buildQueryArgs(h),f,null,function(a,b){var c;return a?d(a):(c=new g(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),f)},d.prototype.updateUser=function(a,b,c,d){var e=this,f={},h="updateUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateUser: cannot update an user without an user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),f,c,function(a,b){return a?d(a):void d(null,new g(e,b.result._id,b.result._source))}):e.kuzzle.query(this.buildQueryArgs(h),f,c)},d.prototype.deleteUser=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b)},d.prototype.userFactory=function(a,b){return new g(this,a,b)},d.prototype.isActionAllowed=function(a,b,c,d,e){var f;if(!a||"object"!=typeof a)throw new Error("rights parameter is mandatory for isActionAllowed function");if(!b||"string"!=typeof b)throw new Error("controller parameter is mandatory for isActionAllowed function");if(!c||"string"!=typeof c)throw new Error("action parameter is mandatory for isActionAllowed function");return f=a.filter(function(a){return a.controller===b||"*"===a.controller}).filter(function(a){return a.action===c||"*"===a.action}).filter(function(a){return a.index===d||"*"===a.index}).filter(function(a){return a.collection===e||"*"===a.collection}),f.some(function(a){return"allowed"===a.value})?"allowed":f.some(function(a){return"conditional"===a.value})?"conditional":"denied"},d.prototype.getUserRights=function(a,b,c){var d={_id:a},e=this;if(!a||"string"!=typeof a)throw new Error("userId parameter is mandatory for isActionAllowed function");c||"function"!=typeof b||(c=b,b=null),e.kuzzle.callbackRequired("Kuzzle.getUserRights",c),this.kuzzle.query(this.buildQueryArgs("getUserRights"),d,b,function(a,b){return a?c(a):void c(null,b.result.hits)})},b.exports=d},{"./kuzzleProfile":9,"./kuzzleRole":10,"./kuzzleUser":13}],12:[function(a,b,c){function d(a,b,c){if(!b)throw new Error("A security document must have an id");return Object.defineProperties(this,{kuzzle:{value:a.kuzzle},kuzzleSecurity:{value:a},id:{value:b,enumerable:!0},content:{value:{},writable:!0,enumerable:!0}}),c&&this.setContent(c,!0),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","update"];return d&&-1!==e.indexOf(a)}}):void 0}d.prototype.setContent=function(a){return this.content=a,this},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a},d.prototype["delete"]=function(a,b){var c=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.deleteActionName),{_id:this.id},a,function(a,c){return a?b?b(a):!1:void(b&&b(null,c.result._id))})},d.prototype.update=function(a,b,c){var d={},e=this;if("object"!=typeof a)throw new Error('Parameter "content" must be a object');b&&void 0===c&&"function"==typeof b&&(c=b,b=null),d._id=e.id,d.body=a,e.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.updateActionName),d,b,function(a,b){return a?c?c(a):!1:(e.setContent(b.result._source),void(c&&c(null,e)))})},b.exports=d},{}],13:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),c.profile&&c.profile._id&&c.profile._source&&(this.content.profile=new f(a,c.profile._id,c.profile._source)),Object.defineProperties(this,{deleteActionName:{value:"deleteUser"},updateActionName:{value:"updateUser"}}),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleProfile");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.hydrate=function(a,b){var c=this;if(a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleUser.hydrate",b),!this.content.profile||"string"!=typeof this.content.profile)throw new Error("The User must contains a profile as string in order to be hydrated");c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("getProfile"),{_id:this.content.profile},a,function(a,e){var g;return a?b(a):(g=new d(c.kuzzleSecurity,c.id,c.content),g.setProfile(new f(c.kuzzleSecurity,e.result._id,e.result._source)),void b(null,g))})},d.prototype.setProfile=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "profile" must be a KuzzleProfile or a string');return this.content.profile=a,this},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceUser"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))}),d},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.profile&&a.body.profile.id&&(a.body.profile=a.body.profile.id),a},d.prototype.getProfiles=function(){return this.content.profile},b.exports=d},{"./kuzzleProfile":9,"./kuzzleSecurityDocument":12}]},{},[3]); +// Official Javascript SDK for Kuzzle v1.9.2 - License: Apache-2.0 +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g1)for(var c=1;c>>((3&b)<<3)&255;return e},"undefined"!=typeof console&&console.warn&&console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()")}}function f(){if("function"==typeof a)try{var b=a("crypto").randomBytes;m=k=b&&function(){return b(16)},k()}catch(c){}}function g(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){e<16&&(b[d+e++]=r[a])});e<16;)b[d+e++]=0;return b}function h(a,b){var c=b||0,d=q;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function i(a,b,c){var d=b&&c||0,e=b||[];a=a||{};var f=null!=a.clockseq?a.clockseq:v,g=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:x+1,j=g-w+(i-x)/1e4;if(j<0&&null==a.clockseq&&(f=f+1&16383),(j<0||g>w)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");w=g,x=i,v=f,g+=122192928e5;var k=(1e4*(268435455&g)+i)%4294967296;e[d++]=k>>>24&255,e[d++]=k>>>16&255,e[d++]=k>>>8&255,e[d++]=255&k;var l=g/4294967296*1e4&268435455;e[d++]=l>>>8&255,e[d++]=255&l,e[d++]=l>>>24&15|16,e[d++]=l>>>16&255,e[d++]=f>>>8|128,e[d++]=255&f;for(var m=a.node||u,n=0;n<6;n++)e[d+n]=m[n];return b?b:h(e)}function j(a,b,c){var d=b&&c||0;"string"==typeof a&&(b="binary"===a?new p(16):null,a=null),a=a||{};var e=a.random||(a.rng||k)();if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,b)for(var f=0;f<16;f++)b[d+f]=e[f];return b||h(e)}var k,l,m,n,o;d?e():f();for(var p="function"==typeof c?c:Array,q=[],r={},s=0;s<256;s++)q[s]=(s+256).toString(16).substr(1),r[q[s]]=s;var t=k(),u=[1|t[0],t[1],t[2],t[3],t[4],t[5]],v=16383&(t[6]<<8|t[7]),w=0,x=0,y=j;y.v1=i,y.v4=j,y.parse=g,y.unparse=h,y.BufferClass=p,y._rng=k,y._mathRNG=l,y._nodeRNG=m,y._whatwgRNG=n,"undefined"!=typeof b&&b.exports?b.exports=y:"function"==typeof define&&define.amd?define(function(){return y}):(o=d.uuid,y.noConflict=function(){return d.uuid=o,y},d.uuid=y)}("undefined"!=typeof window?window:null)}).call(this,a("buffer").Buffer)},{}],3:[function(a,b,c){(function(c){function d(){var a=this,b=Date.now(),c=-1;a.queueTTL>0&&(a.offlineQueue.forEach(function(d,e){d.ts0&&a.offlineQueue.length>a.queueMaxSize&&a.offlineQueue.splice(0,a.offlineQueue.length-a.queueMaxSize).forEach(function(b){a.emitEvent("offlineQueuePop",b.query)})}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){"logout"!==a.action&&c.error&&"Token expired"===c.error.message&&(d.jwtToken=void 0,d.emitEvent("jwtTokenExpired",a,b)),b&&b(c.error,c)}),d.socket.emit("kuzzle",a),d.requestHistory[a.requestId]=c,Object.keys(d.requestHistory).forEach(function(a){d.requestHistory[a]0?(e.call(b,b.offlineQueue[0].query,b.offlineQueue[0].cb),b.emitEvent("offlineQueuePop",b.offlineQueue.shift()),setTimeout(function(){d()},Math.max(0,b.replayInterval))):b.queuing=!1};if(b.offlineQueueLoader){if("function"!=typeof b.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof b.offlineQueueLoader);if(a=b.offlineQueueLoader(),!Array.isArray(a))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof a);b.offlineQueue=a.concat(b.offlineQueue).filter(function(a){if(!a.query||void 0===a.query.requestId||!a.query.action||!a.query.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return!c.hasOwnProperty(a.query.requestId)&&(c[a.query.requestId]=!0)})}d()}function g(){var a=this;Object.keys(a.subscriptions).forEach(function(b){Object.keys(a.subscriptions[b]).forEach(function(c){var d=a.subscriptions[b][c];d.renew(d.callback)})})}var h=a("node-uuid"),i=a("./kuzzleDataCollection"),j=a("./security/kuzzleSecurity"),k=a("./kuzzleMemoryStorage"),l=a("./security/kuzzleUser");b.exports=Kuzzle=function(b,d,e){var f=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,d,e);if(e||"function"!=typeof d||(e=d,d=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:e},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,listeners:[]},loginAttempt:{lastEmitted:null,listeners:[]},offlineQueuePush:{listeners:[]},offlineQueuePop:{listeners:[]}}},eventTimeout:{value:200},io:{value:null,writable:!0},queuing:{value:!1,writable:!0},requestHistory:{value:{},writable:!0},socket:{value:null,writable:!0},state:{value:"initializing",writable:!0},subscriptions:{value:{pending:{}},writable:!0},autoReconnect:{value:!d||"boolean"!=typeof d.autoReconnect||d.autoReconnect,enumerable:!0},defaultIndex:{value:d&&"string"==typeof d.defaultIndex?d.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:d&&"number"==typeof d.reconnectionDelay?d.reconnectionDelay:1e3,enumerable:!0},url:{value:b,enumerable:!0},autoQueue:{value:!1,enumerable:!0,writable:!0},autoReplay:{value:!1,enumerable:!0,writable:!0},autoResubscribe:{value:!0,enumerable:!0,writable:!0},headers:{value:{},enumerable:!0,writable:!0},metadata:{value:{},enumerable:!0,writable:!0},offlineQueue:{value:[],enumerable:!0,writable:!0},queueFilter:{value:null,enumerable:!0,writable:!0},queueMaxSize:{value:500,enumerable:!0,writable:!0},queueTTL:{value:12e4,enumerable:!0,writable:!0},replayInterval:{value:10,enumerable:!0,writable:!0},jwtToken:{value:void 0,enumerable:!0,writable:!0},offlineQueueLoader:{value:null,enumerable:!0,writable:!0}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),d&&(Object.keys(d).forEach(function(a){f.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(f,a).writable&&(f[a]=d[a])}),"auto"===d.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===f.state)throw new Error("This Kuzzle object has been invalidated. Did you try to access it after a disconnect call?")}}),Object.defineProperty(this,"addHeaders",{value:function(a,b){return Object.keys(b).forEach(function(c){a[c]||(a[c]=b[c])}),a}}),Object.defineProperty(this,"callbackRequired",{value:function(a,b){if(!b||"function"!=typeof b)throw new Error(a+": a callback argument is required for read queries")}}),Object.defineProperty(this,"security",{value:new j(this),enumerable:!0}),Object.defineProperty(this,"emitEvent",{value:function(a){var b=Date.now(),d=Array.prototype.slice.call(arguments,1),e=this.eventListeners[a];return!(e.lastEmitted&&e.lastEmitted>=b-this.eventTimeout)&&(e.listeners.forEach(function(a){c.nextTick(function(){a.fn.apply(void 0,d)})}),void(void 0!==e.lastEmitted&&(e.lastEmitted=b)))}}),Object.defineProperty(this,"memoryStorage",{value:new k(this),enumerable:!0}),d&&d.connect&&"auto"!==d.connect?this.state="ready":this.connect(),this.bluebird?this.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["getAllStatistics","getServerInfo","getStatistics","listCollections","listIndexes","login","logout","now","query","checkToken","whoAmI"];return d&&e.indexOf(a)!==-1}}):void 0},Kuzzle.prototype.connect=function(){var a=this;return["initializing","ready","disconnected","error","offline"].indexOf(this.state)===-1?(a.connectCB&&a.connectCB(null,a),a):(a.state="connecting",a.socket=a.io(a.url,{reconnection:a.autoReconnect,reconnectionDelay:a.reconnectionDelay,forceNew:!0}),a.socket.once("connect",function(){a.state="connected",g.call(a),f.call(a),a.emitEvent("connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){var c=new Error('Unable to connect to kuzzle server at "'+a.url+'"');c.internal=b,a.state="error",a.emitEvent("error",c),a.connectCB&&a.connectCB(c)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),a.emitEvent("disconnected")}),a.socket.on("reconnect",function(){var b=function(){a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")};a.state="connected",a.jwtToken?a.checkToken(a.jwtToken,function(c,d){!c&&d.valid||(a.jwtToken=void 0,a.emitEvent("jwtTokenExpired")),b()}):b()}),this)},Kuzzle.prototype.setJwtToken=function(a){if("string"==typeof a)this.jwtToken=a;else{if("object"!=typeof a)return this.emitEvent("loginAttempt",{success:!1,error:"Invalid token argument: "+a}),this;if(!a.result||!a.result.jwt||"string"!=typeof a.result.jwt)return this.emitEvent("loginAttempt",{success:!1,error:"Cannot find a valid JWT token in the following object: "+JSON.stringify(a)}),this;this.jwtToken=a.result.jwt}return g.call(this),this.emitEvent("loginAttempt",{success:!0}),this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a){var b,c,d=this,e={strategy:a};return arguments[1]&&("object"==typeof arguments[1]?b=arguments[1]:"number"==typeof arguments[1]||"string"==typeof arguments[1]?e.expiresIn=arguments[1]:"function"==typeof arguments[1]&&(c=arguments[1])),arguments[2]&&("number"==typeof arguments[2]||"string"==typeof arguments[2]?e.expiresIn=arguments[2]:"function"==typeof arguments[2]&&(c=arguments[2])),arguments[3]&&"function"==typeof arguments[3]&&(c=arguments[3]),"object"==typeof b&&Object.keys(b).forEach(function(a){e[a]=b[a]}),this.query({controller:"auth",action:"login"},{body:e},{queuable:!1},function(a,b){a?(c&&"function"==typeof c&&c(a),d.emitEvent("loginAttempt",{success:!1,error:a.message})):(b.result.jwt&&d.setJwtToken(b.result.jwt),c&&"function"==typeof c&&c(null,b.result))}),d},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:h.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{queuable:!1},function(c){null===c?(b.jwtToken=void 0,"function"==typeof a&&a(null,b)):"function"==typeof a&&a(c)}),b},Kuzzle.prototype.checkToken=function(a,b){var c=this,d={body:{token:a}};return this.callbackRequired("Kuzzle.checkToken",b),this.query({controller:"auth",action:"checkToken"},d,{queuable:!1},function(a,c){return a?b(a):void b(null,c.result)}),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return b.callbackRequired("Kuzzle.whoAmI",a),b.query({controller:"auth",action:"getCurrentUser"},{},{},function(c,d){return c?a(c):void a(null,new l(b.security,d.result._id,d.result._source))}),b},Kuzzle.prototype.getMyRights=function(a,b){var c=this;b||"function"!=typeof a||(b=a,a=null),c.callbackRequired("Kuzzle.getMyRights",b),c.query({controller:"auth",action:"getMyRights"},{},null,function(a,c){return a?b(a):void b(null,c.result.hits)})},Kuzzle.prototype.updateSelf=function(a,b,c){var d=this,e={},f={controller:"auth",action:"updateSelf"};c||"function"!=typeof b||(c=b,b=null),e.body=a,c?d.query(f,e,b,function(a,b){return a?c(a):void c(null,b.result)}):d.query(f,e,b)},Kuzzle.prototype.addListener=function(a,b){var c,d=Object.keys(this.eventListeners),e=typeof b;if(this.isValid(),d.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+d.toString());if("function"!==e)throw new Error("Invalid listener type: expected a function, got a "+e);return c=h.v1(),this.eventListeners[a].listeners.push({id:c,fn:b}),c},Kuzzle.prototype.getAllStatistics=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getAllStatistics",b),this.query({controller:"admin",action:"getAllStats"},{},a,function(a,c){return a?b(a):void b(null,c.result.hits)}),this},Kuzzle.prototype.getStatistics=function(a,b,c){var d;return c||(1===arguments.length?(c=arguments[0],b=null,a=null):(c=arguments[1],"object"==typeof arguments[0]?(b=arguments[0],a=null):(a=arguments[0],b=null))),d=function(b,d){return b?c(b):void(a?c(null,d.result.hits):c(null,[d.result]))},this.callbackRequired("Kuzzle.getStatistics",c),a?this.query({controller:"admin",action:"getStats"},{body:{startTime:a}},b,d):this.query({controller:"admin",action:"getLastStats"},{},b,d),this},Kuzzle.prototype.dataCollectionFactory=function(a,b){if(this.isValid(),!b){if(!this.defaultIndex)throw new Error("Unable to create a new data collection object: no index specified");b=this.defaultIndex}if("string"!=typeof b)throw new Error('Invalid "index" argument: string expected, got '+typeof b);if("string"!=typeof a)throw new Error('Invalid "collection" argument: string expected, got '+typeof a);return this.collections[b]||(this.collections[b]={}),this.collections[b][a]||(this.collections[b][a]=new i(this,b,a)),this.collections[b][a]},Kuzzle.prototype.flushQueue=function(){return this.offlineQueue=[],this},Kuzzle.prototype.listCollections=function(){var a,b,c,d="all",e=Array.prototype.slice.call(arguments);if(e.forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.listCollections: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.listCollections",c),b&&b.type&&(d=b.type),this.query({index:a,controller:"read",action:"listCollections"},{body:{type:d}},b,function(a,b){return a?c(a):c(null,b.result.collections)}),this},Kuzzle.prototype.listIndexes=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.listIndexes",b),this.query({controller:"read",action:"listIndexes"},{},a,function(a,c){return a?b(a):b(null,c.result.indexes)}),this},Kuzzle.prototype.disconnect=function(){var a;this.logout(),this.state="disconnected",this.socket.close(),this.socket=null;for(a in this.collections)this.collections.hasOwnProperty(a)&&delete this.collections[a]},Kuzzle.prototype.getServerInfo=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getServerInfo",b),this.query({controller:"read",action:"serverInfo"},{},a,function(a,c){return a?b(a):void b(null,c.result.serverInfo)}),this},Kuzzle.prototype.refreshIndex=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.refreshIndex: index required");a=this.defaultIndex}return this.query({index:a,controller:"admin",action:"refreshIndex"},{},b,c),this},Kuzzle.prototype.getAutoRefresh=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.getAutoRefresh: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.getAutoRefresh",c),this.query({index:a,controller:"admin",action:"getAutoRefresh"},{},b,c),this},Kuzzle.prototype.setAutoRefresh=function(){var a,b,c,d;if(Array.prototype.slice.call(arguments).forEach(function(e){switch(typeof e){case"string":a=e;break;case"boolean":b=e;break;case"object":c=e;break;case"function":d=e}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.setAutoRefresh: index required");a=this.defaultIndex}if(void 0===b)throw new Error("Kuzzle.setAutoRefresh: autoRefresh value is required");return this.query({index:a,controller:"admin",action:"setAutoRefresh"},{body:{autoRefresh:b}},c,d),this},Kuzzle.prototype.now=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.now",b),this.query({controller:"read",action:"now"},{},a,function(a,c){return a?b(a):void b(null,c.result.now)}),this},Kuzzle.prototype.query=function(a,b,c,f){var g,i={action:a.action,controller:a.controller,metadata:this.metadata},j=this;if(this.isValid(),f||"function"!=typeof c||(f=c,c=null),c&&(c.metadata&&Object.keys(c.metadata).forEach(function(a){i.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){i.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(i[g]=b[g]);return i=j.addHeaders(i,this.headers),void 0===j.jwtToken||"auth"===i.controller&&"checkToken"===i.action||(i.headers=i.headers||{},i.headers.authorization="Bearer "+j.jwtToken),a.collection&&(i.collection=a.collection),a.index&&(i.index=a.index),i.requestId||(i.requestId=h.v4()),"connected"===j.state||c&&c.queuable===!1?"connected"===j.state?e.call(this,i,f):f&&f(new Error("Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: "+JSON.stringify(i))):(j.queuing||["initializing","connecting"].indexOf(j.state)!==-1)&&(d.call(this,i,f),j.queueFilter&&!j.queueFilter(i)||(j.offlineQueue.push({ts:Date.now(),query:i,cb:f}),j.emitEvent("offlineQueuePush",{query:i,cb:f}))),j},Kuzzle.prototype.removeAllListeners=function(a){var b=Object.keys(this.eventListeners),c=this;if(a){if(b.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+b.toString());this.eventListeners[a].listeners=[]}else b.forEach(function(a){c.eventListeners[a].listeners=[]})},Kuzzle.prototype.removeListener=function(a,b){var c=Object.keys(this.eventListeners),d=this;if(c.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+c.toString());this.eventListeners[a].listeners.forEach(function(c,e){c.id===b&&d.eventListeners[a].listeners.splice(e,1)})},Kuzzle.prototype.replayQueue=function(){return"offline"===this.state||this.autoReplay||(d.call(this),f.call(this)),this},Kuzzle.prototype.setDefaultIndex=function(a){if("string"!=typeof a)throw new Error("Invalid default index: ["+a+"] (an index name is expected)");if(0===a.length)throw new Error("Cannot set an empty index as the default index");return this.defaultIndex=a,this},Kuzzle.prototype.setHeaders=function(a,b){var c=this;if("object"!=typeof a||Array.isArray(a))throw new Error("Expected a content object, received a "+typeof a);return b?c.headers=a:Object.keys(a).forEach(function(b){c.headers[b]=a[b]}),c},Kuzzle.prototype.startQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!0),this},Kuzzle.prototype.stopQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!1),this}}).call(this,a("_process"))},{"./kuzzleDataCollection":4,"./kuzzleMemoryStorage":7,"./security/kuzzleSecurity":11,"./security/kuzzleUser":13,_process:1,"node-uuid":2,"socket.io-client":void 0}],4:[function(a,b,c){function d(a,b,c){if(!b||!c)throw new Error("The KuzzleDataCollection object constructor needs an index and a collection arguments");return Object.defineProperties(this,{collection:{value:c,enumerable:!0},index:{value:b,enumerable:!0},kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),Object.defineProperty(this,"buildQueryArgs",{value:function(a,b){return{controller:a,action:b,collection:this.collection,index:this.index}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["publishMessage","setHeaders","subscribe"];return d&&e.indexOf(a)===-1}}):this}var e=a("./kuzzleDocument"),f=a("./kuzzleDataMapping"),g=a("./kuzzleRoom");d.prototype.advancedSearch=function(a,b,c){var d,f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.advancedSearch",c),d=f.kuzzle.addHeaders({body:a},this.headers),f.kuzzle.query(this.buildQueryArgs("read","search"),d,b,function(a,b){var d=[];return a?c(a):(b.result.hits.forEach(function(a){var b=new e(f,a._id,a._source);b.version=a._version,d.push(b)}),void c(null,{total:b.result.total,documents:d}))}),this},d.prototype.count=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.count",c),d=this.kuzzle.addHeaders({body:a},this.headers),this.kuzzle.query(this.buildQueryArgs("read","count"),d,b,function(a,b){return a?c(a):void c(null,b.result.count)}),this},d.prototype.create=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","createCollection"),c,a,b),this},d.prototype.createDocument=function(a,b,c,d){var f=this,g={},h="create";return a&&"string"!=typeof a&&(d=c,c=b,b=a,a=null),d||"function"!=typeof c||(d=c,c=null),b instanceof e?g=b.serialize():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g=f.kuzzle.addHeaders(g,f.headers),d?f.kuzzle.query(this.buildQueryArgs("write",h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write",h),g,c),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};"string"==typeof a?(e._id=a,d="delete"):(e.body=a,d="deleteByQuery"),c||"function"!=typeof b||(c=b,b=null),e=this.kuzzle.addHeaders(e,this.headers),c?this.kuzzle.query(this.buildQueryArgs("write",d),e,b,function(a,b){return a?c(a):void("delete"===d?c(null,[b.result._id]):c(null,b.result.ids))}):this.kuzzle.query(this.buildQueryArgs("write",d),e,b)},d.prototype.fetchDocument=function(a,b,c){var d={_id:a},f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.fetch",c),d=f.kuzzle.addHeaders(d,this.headers),f.kuzzle.query(this.buildQueryArgs("read","get"),d,b,function(a,b){var d;return a?c(a):(d=new e(f,b.result._id,b.result._source),d.version=b.result._version,void c(null,d))}),this},d.prototype.fetchAllDocuments=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),a&&(a.from&&(c.from=a.from),a.size&&(c.size=a.size)),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch(c,a,b),this},d.prototype.getMapping=function(a,b){var c;return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.getMapping",b),c=new f(this),c.refresh(a,b),this},d.prototype.publishMessage=function(a,b){var c={};return a instanceof e?c=a.serialize():c.body=a,c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","publish"),c,b),this},d.prototype.replaceDocument=function(a,b,c,d){var f=this,g={_id:a,body:b};return d||"function"!=typeof c||(d=c,c=null),g=f.kuzzle.addHeaders(g,this.headers),d?f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c),this},d.prototype.subscribe=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.subscribe",c),d=new g(this,b),d.renew(a,c)},d.prototype.truncate=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("admin","truncateCollection"),c,a,b),this},d.prototype.updateDocument=function(a,b,c,d){var f={_id:a,body:b},g=this;return d||"function"!=typeof c||(d=c,c=null),f=g.kuzzle.addHeaders(f,this.headers),d?g.kuzzle.query(this.buildQueryArgs("write","update"),f,c,function(a,b){var c;return a?d(a):(c=new e(g,b.result._id),void c.refresh(d))}):g.kuzzle.query(this.buildQueryArgs("write","update"),f,c),g},d.prototype.documentFactory=function(a,b){return new e(this,a,b)},d.prototype.roomFactory=function(a){return new g(this,a)},d.prototype.dataMappingFactory=function(a){return new f(this,a)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"./kuzzleDataMapping":5,"./kuzzleDocument":6,"./kuzzleRoom":8}],5:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},mapping:{value:b||{},enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["set","setHeaders"];return d&&e.indexOf(a)===-1}}):this}d.prototype.apply=function(a,b){var c=this,d=this.kuzzle.addHeaders({body:{properties:this.mapping}},this.headers);return b||"function"!=typeof a||(b=a,a=null),c.kuzzle.query(this.collection.buildQueryArgs("admin","updateMapping"),d,a,function(d){return d?!!b&&b(d):void c.refresh(a,b)}),this},d.prototype.refresh=function(a,b){var c=this,d=this.kuzzle.addHeaders({},this.headers);return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.query(this.collection.buildQueryArgs("admin","getMapping"),d,a,function(a,d){return a?!!b&&b(a):d.result[c.collection.index]?d.result[c.collection.index].mappings[c.collection.collection]?(c.mapping=d.result[c.collection.index].mappings[c.collection.collection].properties,void 0===c.mapping&&(c.mapping={}),void(b&&b(null,c))):!!b&&b(new Error("No mapping found for collection "+c.collection.collection)):!!b&&b(new Error("No mapping found for index "+c.collection.index))}),this},d.prototype.set=function(a,b){return this.mapping[a]=b,this},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],6:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{collection:{value:a.collection,enumerable:!0},dataCollection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},id:{value:void 0,enumerable:!0,writable:!0},content:{value:{},writable:!0,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},version:{value:void 0,enumerable:!0,writable:!0}}),!c&&b&&"object"==typeof b&&(c=b,b=null),c&&(c._version&&(this.version=c._version,delete c._version),this.setContent(c,!0)),b&&Object.defineProperty(this,"id",{value:b,enumerable:!0}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","refresh","save"];return d&&e.indexOf(a)!==-1}}):this}d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a._version=this.version,a=this.kuzzle.addHeaders(a,this.headers)},d.prototype.toString=function(){return JSON.stringify(this.serialize())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a,function(a){return a?b(a):void b(null,c.id)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a)},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");this.kuzzle.callbackRequired("KuzzleDocument.refresh",b),c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,e){var f;return a?b(a):(f=new d(c.dataCollection,c.id,e.result._source),f.version=e.result._version,void b(null,f))})},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.dataCollection.buildQueryArgs("write","createOrReplace"),c,a,function(a,c){return a?!!b&&b(a):(d.id=c.result._id,d.version=c.result._version,void(b&&b(null,d)))}),d},d.prototype.publish=function(a){var b=this.serialize();return this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this},d.prototype.setContent=function(a,b){var c=this;return b?this.content=a:Object.keys(a).forEach(function(b){c.content[b]=a[b]}),this},d.prototype.subscribe=function(a,b){var c;if(a&&!b&&"function"==typeof a&&(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDocument.subscribe",b),!this.id)throw new Error("KuzzleDocument.subscribe: cannot subscribe to a document if no ID has been provided");return c={ids:{values:[this.id]}},this.dataCollection.subscribe(c,a,b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],7:[function(a,b,c){function d(a){return Object.defineProperties(this,{kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),this.setHeaders=a.setHeaders.bind(this),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["setHeaders"];return d&&e.indexOf(a)===-1}}):this}!function(){var a=["id","value"],b=["id","keys"],c={append:a,bgrewriteaof:[],bgsave:[],bitcount:["id","start","end"],bitop:["operation","destkey",b],bitpos:["id","bit",{__opts__:["start","end"]}],blpop:[b,"timeout"],brpoplpush:["source","destination"],dbsize:[],decrby:a,del:[b],discard:[],exec:[],exists:[b],expire:["id","seconds"],expireat:["id","timestamp"],flushdb:[],getbit:["id","offset"],getrange:["id","start","end"],hdel:["id",["field","fields"]],hexists:["id","field"],hincrby:["id","field","value"],hmset:["id","values"],hset:["id","field","value"],info:["section"],keys:["pattern"],lastsave:[],lindex:["id","idx"],linsert:["id","position","pivot","value"],lpush:["id",["value","values"]],lrange:["id","start","stop"],lrem:["id","count","value"],lset:["id","idx","value"],ltrim:["id","start","stop"],mset:["values"],multi:[],object:["subcommand","args"],pexpire:["id","milliseconds"],pexpireat:["id","timestamp"],pfadd:["id",["element","elements"]],pfmerge:["destkey",["sourcekey","sourcekeys"]],ping:[],psetex:["id","milliseconds","value"],publish:["channel","message"],randomkey:[],rename:["id","newkey"],renamenx:["id","newkey"],restore:["id","ttl","content"],rpoplpush:["source","destination"],sadd:["id",["member","members"]],save:[],set:["id","value",{__opts__:["ex","px","nx","xx"]}],sdiffstore:["destination",b],setbit:["id","offset","value"],setex:["id","seconds","value"],setrange:["id","offset","value"],sinterstore:["destination",b], +sismember:["id","member"],smove:["id","destination","member"],sort:["id",{__opts__:["by","offset","count","get","direction","alpha","store"]}],spop:["id","count"],srem:["id",["member","members"]],sunionstore:["destination",b],unwatch:[],wait:["numslaves","timeout"],zadd:["id",{__opts__:["nx","xx","ch","incr","score","member","members"]}],zcount:["id","min","max"],zincrby:["id","value","member"],zinterstore:["destination",b,{__opts__:["weight","weights","aggregate"]}],zlexcount:["id","min","max"],zrange:["id","start","stop",{__opts__:["withscores"]}],zrangebylex:["id","min","max",{__opts__:["offset","count"]}],zrangebyscore:["id","min","max",{__opts__:["withscores","offset","count"]}],zrem:["id","member"],zremrangebylex:["id","min","max"],zremrangebyscore:["id","min","max"],zrevrangebylex:["id","max","min",{__opts__:["offset","count"]}],zrevrangebyscore:["id","max","min",{__opts__:["withscores","offset","count"]}],zrevrank:["id","member"]};c.decr=c.get=c.dump=c.hgetall=c.hkeys=c.hlen=c.hstrlen=c.hvals=c.incr=c.llen=c.lpop=c.persist=c.pttl=c.rpop=c.scard=c.smembers=c.strlen=c.ttl=c.type=c.zcard=["id"],c.getset=c.lpushx=a,c.del=c.exists=c.mget=c.pfcount=c.sdiff=c.sinter=c.sunion=c.watch=[b],c.incrby=c.incrbyfloat=c.decrby,c.brpop=c.blpop,c.hget=c.hexists,c.hmget=c.hdel,c.hsetnx=c.hset,c.msetnx=c.mset,c.rpush=c.lpush,c.hincrbyfloat=c.hincrby,c.srandmember=c.spop,c.zrevrange=c.zrange,c.zscore=c.zrevrank,Object.keys(c).forEach(function(a){d.prototype[a]=function(){var b,d=Array.prototype.slice.call(arguments),e=null,f={controller:"ms",action:a},g={};return"function"==typeof d[d.length-1]&&(b=d.pop()),d.length&&"object"==typeof d[d.length-1]&&1===Object.keys(d[d.length-1]).length&&void 0!==d[d.length-1].queuable&&(e=d.pop()),c[a].forEach(function(a,b){void 0!==d[b]&&(Array.isArray(a)&&(a=Array.isArray(d[b])?a[1]:a[0]),"id"===a?g._id=d[b]:(g.body||(g.body={}),"object"==typeof a&&void 0!==a.__opts__?a.__opts__.forEach(function(a){void 0!==d[b][a]&&(g.body[a]=d[b][a])}):g.body[a]=d[b]))}),this.kuzzle.query(f,g,e,b),this}})}(),b.exports=d},{}],8:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:h.v4()},lastRenewal:{value:null,writable:!0},notifier:{value:null,writable:!0},queue:{value:[],writable:!0},renewalDelay:{value:500},scope:{value:b&&b.scope?b.scope:"all"},state:{value:b&&b.state?b.state:"done"},subscribing:{value:!1,writable:!0},users:{value:b&&b.users?b.users:"none"},collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},filters:{value:null,enumerable:!0,writable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},metadata:{value:b&&b.metadata?b.metadata:{},enumerable:!0,writable:!0},roomId:{value:null,enumerable:!0,writable:!0},subscribeToSelf:{value:!b||"boolean"!=typeof b.subscribeToSelf||b.subscribeToSelf,enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["count"];return d&&e.indexOf(a)!==-1}}):this}function e(a){return a.error?this.callback(a.error):"jwtTokenExpired"===a.action?(this.kuzzle.jwtToken=void 0,this.kuzzle.emitEvent("jwtTokenExpired")):void(this.kuzzle.requestHistory[a.requestId]?(this.subscribeToSelf&&this.callback(null,a),delete this.kuzzle.requestHistory[a.requestId]):this.callback(null,a))}function f(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}function g(){return"connected"===this.kuzzle.state&&!this.subscribing}var h=a("node-uuid");d.prototype.count=function(a){var b;if(this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),!g.call(this))return this.queue.push({action:"count",args:[a]}),this;if(!this.roomId)throw new Error("KuzzleRoom.count: cannot count subscriptions on an inactive room");return this.kuzzle.query(this.collection.buildQueryArgs("subscribe","count"),b,function(b,c){return b?a(b):void a(null,c.result.count)}),this},d.prototype.renew=function(a,b){var c=Date.now(),d={scope:this.scope,state:this.state,users:this.users},g=this;return!b&&a&&"function"==typeof a&&(b=a,a=null),g.kuzzle.callbackRequired("KuzzleRoom.renew",b),g.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(a&&(g.filters=a),"connected"!==g.kuzzle.state?(g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,g):g.subscribing?(g.queue.push({action:"renew",args:[a,b]}),g):(g.unsubscribe(),g.roomId=null,g.subscribing=!0,g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,d.body=g.filters,d=g.kuzzle.addHeaders(d,this.headers),g.kuzzle.query(g.collection.buildQueryArgs("subscribe","on"),d,{metadata:g.metadata},function(a,b){if(delete g.kuzzle.subscriptions.pending[g.id],g.subscribing=!1,a)throw g.queue=[],new Error("Error during Kuzzle subscription: "+a.message);g.lastRenewal=c,g.roomId=b.result.roomId,g.channel=b.result.channel,g.kuzzle.subscriptions[g.roomId]||(g.kuzzle.subscriptions[g.roomId]={}),g.kuzzle.subscriptions[g.roomId][g.id]=g,g.notifier=e.bind(g),g.kuzzle.socket.on(g.channel,g.notifier),f.call(g)}),g))},d.prototype.unsubscribe=function(){var a,b=this,c=b.roomId;return g.call(this)?(c&&(b.kuzzle.socket.off(b.channel,this.notifier),1===Object.keys(b.kuzzle.subscriptions[c]).length?(delete b.kuzzle.subscriptions[c],0===Object.keys(b.kuzzle.subscriptions.pending).length?b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}):a=setInterval(function(){0===Object.keys(b.kuzzle.subscriptions.pending).length&&(b.kuzzle.subscriptions[c]||b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}),clearInterval(a))},100)):delete b.kuzzle.subscriptions[c][b.id],b.roomId=null),b):(b.queue.push({action:"unsubscribe",args:[]}),b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":2}],9:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteProfile"},updateActionName:{value:"updateProfile"}}),c&&c.roles&&(c.roles=c.roles.map(function(b){return b._id&&b._source?new f(a,b._id,b._source):b})),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleRole");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c,d=this;if(!this.content.roles)throw new Error('Argument "roles" is mandatory in a profile. This argument contains an array of KuzzleRole or an array of id string');return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c=this.serialize(),d.kuzzle.query(d.kuzzleSecurity.buildQueryArgs("createOrReplaceProfile"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))}),d},d.prototype.addRole=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be a KuzzleRole or a id string');return this.content.roles||(this.content.roles=[]),this.content.roles.push(a),this},d.prototype.setRoles=function(a){if(!Array.isArray(a))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string');return a.map(function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string')}),this.content.roles=a,this},d.prototype.hydrate=function(a,b){var c=this,e={ids:[]};e.ids=this.content.roles.map(function(a){return"string"==typeof a?a:a instanceof f?a.id:void 0}),a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleProfile.hydrate",b),c.kuzzle.query(c.kuzzleSecurity.buildQueryArgs("mGetRoles"),{body:e},a,function(a,e){return a?b(a):void b(null,new d(c,c.id,{roles:e.result.hits}))})},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.roles&&Array.isArray(a.body.roles)?(a.body.roles=a.body.roles.map(function(a){return a instanceof f?a.id:a}),a):a},d.prototype.getRoles=function(){return this.content.roles},b.exports=d},{"./kuzzleRole":10,"./kuzzleSecurityDocument":12}],10:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteRole"},updateActionName:{value:"updateRole"}}),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c=this.serialize(),d=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceRole"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))})},b.exports=d},{"./kuzzleSecurityDocument":12}],11:[function(a,b,c){function d(a){return Object.defineProperty(this,"kuzzle",{value:a}),Object.defineProperty(this,"buildQueryArgs",{value:function(a){return{controller:"security",action:a}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["roleFactory","profileFactory","userFactory","isActionAllowed"];return d&&e.indexOf(a)===-1}}):this}var e=a("./kuzzleRole"),f=a("./kuzzleProfile"),g=a("./kuzzleUser");d.prototype.getRole=function(a,b,c){var d,f=this;if(!a)throw new Error("Id parameter is mandatory for getRole function");c||"function"!=typeof b||(c=b,b=null),d={_id:a},f.kuzzle.callbackRequired("KuzzleSecurity.getRole",c),f.kuzzle.query(this.buildQueryArgs("getRole"),d,b,function(a,b){return a?c(a):void c(null,new e(f,b.result._id,b.result._source))})},d.prototype.searchRoles=function(a,b,c){var d=this;c||"function"!=typeof b||(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchRoles",c),d.kuzzle.query(this.buildQueryArgs("searchRoles"),{body:a},b,function(a,b){var f;return a?c(a):(f=b.result.hits.map(function(a){return new e(d,a._id,a._source)}),void c(null,{total:b.result.total,roles:f}))})},d.prototype.createRole=function(a,b,c,d){var f=this,g={},h="createRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createRole: cannot create a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceRole":"createRole"),d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),void d(null,c))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateRole=function(a,b,c,d){var f=this,g={},h="updateRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateRole: cannot update a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(c){return c?d(c):void d(null,new e(f,a,b))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteRole=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b)},d.prototype.roleFactory=function(a,b){return new e(this,a,b)},d.prototype.getProfile=function(a,b,c){var d,e=this,g=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getProfile function");c||"function"!=typeof b?void 0!==b.hydrate&&(g=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getProfile",c),e.kuzzle.query(this.buildQueryArgs("getProfile"),d,b,function(a,b){return a?c(a):(g||(b.result._source.roles=b.result._source.roles.map(function(a){var b={_id:a._id};return void 0!==a._source.restrictedTo&&(b.restrictedTo=a._source.restrictedTo),void 0!==a._source.allowInternalIndex&&(b.allowInternalIndex=a._source.allowInternalIndex),b})),void c(null,new f(e,b.result._id,b.result._source)))})},d.prototype.searchProfiles=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchProfiles",c),d.kuzzle.query(this.buildQueryArgs("searchProfiles"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new f(d,a._id,a._source)}),void c(null,{total:b.result.total,profiles:e}))})},d.prototype.createProfile=function(a,b,c,d){var e=this,g={},h="createProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createProfile: cannot create a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceProfile":"createProfile"),d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new f(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateProfile=function(a,b,c,d){var e=this,g={},h="updateProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateProfile: cannot update a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c={};return a?d(a):(Object.keys(b.result._source).forEach(function(a){"roles"!==a&&(c[a]=b.result._source[a])}),c.roles=b.result._source.roles.map(function(a){return a._id}),void d(null,new f(e,b.result._id,c)))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteProfile=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b)},d.prototype.profileFactory=function(a,b){return new f(this,a,b)},d.prototype.getUser=function(a,b,c){var d,e=this,f=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getUser function");c||"function"!=typeof b?void 0!==b.hydrate&&(f=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getUser",c),e.kuzzle.query(this.buildQueryArgs("getUser"),d,b,function(a,b){return a?c(a):(f||(b.result._source.profile=b.result._source.profile._id),void c(null,new g(e,b.result._id,b.result._source)))})},d.prototype.searchUsers=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchUsers",c),d.kuzzle.query(this.buildQueryArgs("searchUsers"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new g(d,a._id,a._source)}),void c(null,{total:b.result.total,users:e}))})},d.prototype.createUser=function(a,b,c,d){var e=this,f={},h="createUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createUser: cannot create a user without a user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,c&&(h=c.replaceIfExist?"createOrReplaceUser":"createUser"),d?e.kuzzle.query(this.buildQueryArgs(h),f,null,function(a,b){var c;return a?d(a):(c=new g(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),f)},d.prototype.updateUser=function(a,b,c,d){var e=this,f={},h="updateUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateUser: cannot update an user without an user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),f,c,function(a,b){return a?d(a):void d(null,new g(e,b.result._id,b.result._source))}):e.kuzzle.query(this.buildQueryArgs(h),f,c)},d.prototype.deleteUser=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b)},d.prototype.userFactory=function(a,b){return new g(this,a,b)},d.prototype.isActionAllowed=function(a,b,c,d,e){var f;if(!a||"object"!=typeof a)throw new Error("rights parameter is mandatory for isActionAllowed function");if(!b||"string"!=typeof b)throw new Error("controller parameter is mandatory for isActionAllowed function");if(!c||"string"!=typeof c)throw new Error("action parameter is mandatory for isActionAllowed function");return f=a.filter(function(a){return a.controller===b||"*"===a.controller}).filter(function(a){return a.action===c||"*"===a.action}).filter(function(a){return a.index===d||"*"===a.index}).filter(function(a){return a.collection===e||"*"===a.collection}),f.some(function(a){return"allowed"===a.value})?"allowed":f.some(function(a){return"conditional"===a.value})?"conditional":"denied"},d.prototype.getUserRights=function(a,b,c){var d={_id:a},e=this;if(!a||"string"!=typeof a)throw new Error("userId parameter is mandatory for isActionAllowed function");c||"function"!=typeof b||(c=b,b=null),e.kuzzle.callbackRequired("Kuzzle.getUserRights",c),this.kuzzle.query(this.buildQueryArgs("getUserRights"),d,b,function(a,b){return a?c(a):void c(null,b.result.hits)})},b.exports=d},{"./kuzzleProfile":9,"./kuzzleRole":10,"./kuzzleUser":13}],12:[function(a,b,c){function d(a,b,c){if(!b)throw new Error("A security document must have an id");if(Object.defineProperties(this,{kuzzle:{value:a.kuzzle},kuzzleSecurity:{value:a},id:{value:b,enumerable:!0},content:{value:{},writable:!0,enumerable:!0}}),c&&this.setContent(c,!0),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","update"];return d&&e.indexOf(a)!==-1}})}d.prototype.setContent=function(a){return this.content=a,this},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a},d.prototype["delete"]=function(a,b){var c=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.deleteActionName),{_id:this.id},a,function(a,c){return a?!!b&&b(a):void(b&&b(null,c.result._id))})},d.prototype.update=function(a,b,c){var d={},e=this;if("object"!=typeof a)throw new Error('Parameter "content" must be a object');b&&void 0===c&&"function"==typeof b&&(c=b,b=null),d._id=e.id,d.body=a,e.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.updateActionName),d,b,function(a,b){return a?!!c&&c(a):(e.setContent(b.result._source),void(c&&c(null,e)))})},b.exports=d},{}],13:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),c.profile&&c.profile._id&&c.profile._source&&(this.content.profile=new f(a,c.profile._id,c.profile._source)),Object.defineProperties(this,{deleteActionName:{value:"deleteUser"},updateActionName:{value:"updateUser"}}),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleProfile");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.hydrate=function(a,b){var c=this;if(a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleUser.hydrate",b),!this.content.profile||"string"!=typeof this.content.profile)throw new Error("The User must contains a profile as string in order to be hydrated");c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("getProfile"),{_id:this.content.profile},a,function(a,e){var g;return a?b(a):(g=new d(c.kuzzleSecurity,c.id,c.content),g.setProfile(new f(c.kuzzleSecurity,e.result._id,e.result._source)),void b(null,g))})},d.prototype.setProfile=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "profile" must be a KuzzleProfile or a string');return this.content.profile=a,this},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceUser"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))}),d},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.profile&&a.body.profile.id&&(a.body.profile=a.body.profile.id),a},d.prototype.getProfiles=function(){return this.content.profile},b.exports=d},{"./kuzzleProfile":9,"./kuzzleSecurityDocument":12}]},{},[3]); //# sourceMappingURL=kuzzle.min.map \ No newline at end of file diff --git a/dist/kuzzle.min.map b/dist/kuzzle.min.map index 99b898dbf..0633cb73e 100644 --- a/dist/kuzzle.min.map +++ b/dist/kuzzle.min.map @@ -1 +1 @@ -{"version":3,"sources":["kuzzle.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","cachedSetTimeout","len","run","cachedClearTimeout","Item","fun","array","this","noop","process","setTimeout","clearTimeout","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","_mathRNG","Math","random","console","warn","setupNode","_rb","randomBytes","_nodeRNG","parse","buf","offset","ii","toLowerCase","replace","oct","_hexToByte","unparse","bth","_byteToHex","v1","options","b","clockseq","_clockseq","msecs","Date","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","v4","BufferClass","rnds","rng","_previousRoot","Buffer","toString","substr","_seedBytes","uuid","define","amd","noConflict","window","3","cleanQueue","self","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","droppedRequest","emitEvent","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","requestId","response","action","error","message","requestHistory","Object","keys","key","dequeue","additionalQueue","uniqueQueue","dequeuingProcess","shift","max","replayInterval","queuing","offlineQueueLoader","isArray","filter","controller","hasOwnProperty","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","KuzzleSecurity","KuzzleMemoryStorage","KuzzleUser","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","loginAttempt","offlineQueuePush","offlineQueuePop","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","slice","eventProperties","listener","fn","connect","bluebird","promisifyAll","suffix","func","target","passes","whitelist","indexOf","reconnection","forceNew","connectionError","internal","disconnect","reconnect","checkToken","err","res","valid","setJwtToken","token","success","result","jwt","JSON","stringify","getJwtToken","login","strategy","credentials","expiresIn","body","queuable","logout","callbackRequired","whoAmI","security","_id","_source","getMyRights","hits","updateSelf","content","data","queryArgs","listenerId","knownEvents","listenerType","isValid","id","getAllStatistics","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","refreshIndex","getAutoRefresh","setAutoRefresh","autoRefresh","attr","object","meta","addHeaders","authorization","eventName","replayQueue","setDefaultIndex","setHeaders","startQueuing","stopQueuing","./kuzzleDataCollection","./kuzzleMemoryStorage","./security/kuzzleSecurity","./security/kuzzleUser","_process","node-uuid","socket.io-client","4","kuzzle","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_version","total","count","create","createDocument","document","serialize","updateIfExist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","from","size","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom","5","kuzzleDataCollection","properties","mappings","set","field","6","dataCollection","setContent","save","publish","values","7","bind","keyVal","idOrKeys","commands","append","bgrewriteaof","bgsave","bitcount","bitop","bitpos","__opts__","blpop","brpoplpush","dbsize","decrby","del","discard","exec","exists","expire","expireat","flushdb","getbit","getrange","hdel","hexists","hincrby","hmset","hset","info","lastsave","lindex","linsert","lpush","lrange","lrem","lset","ltrim","mset","multi","pexpire","pexpireat","pfadd","pfmerge","ping","psetex","randomkey","rename","renamenx","restore","rpoplpush","sadd","sdiffstore","setbit","setex","setrange","sinterstore","sismember","smove","sort","spop","srem","sunionstore","unwatch","wait","zadd","zcount","zincrby","zinterstore","zlexcount","zrange","zrangebylex","zrangebyscore","zrem","zremrangebylex","zremrangebyscore","zrevrangebylex","zrevrangebyscore","zrevrank","decr","get","dump","hgetall","hkeys","hlen","hstrlen","hvals","incr","llen","lpop","persist","pttl","rpop","scard","smembers","strlen","ttl","zcard","getset","lpushx","mget","pfcount","sdiff","sinter","sunion","watch","incrby","incrbyfloat","brpop","hget","hmget","hsetnx","msetnx","rpush","hincrbyfloat","srandmember","zrevrange","zscore","command","pop","v","8","channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","element","isReady","subscribeQuery","unsubscribe","interval","setInterval","clearInterval","9","KuzzleProfile","kuzzleSecurity","KuzzleSecurityDocument","deleteActionName","updateActionName","roles","map","role","KuzzleRole","constructor","addRole","setRoles","hydrate","getRoles","./kuzzleRole","./kuzzleSecurityDocument","10","11","getRole","searchRoles","createRole","replaceIfExist","updateRole","deleteRole","roleFactory","getProfile","formattedRole","restrictedTo","allowInternalIndex","searchProfiles","profiles","createProfile","updateProfile","updatedContent","property","deleteProfile","profileFactory","getUser","profile","searchUsers","createUser","updateUser","deleteUser","userFactory","isActionAllowed","rights","filteredRights","right","some","item","getUserRights","userId","./kuzzleProfile","./kuzzleUser","12","update","13","hydratedUser","setProfile","getProfiles"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file +{"version":3,"sources":["kuzzle.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","cachedSetTimeout","len","run","cachedClearTimeout","Item","fun","array","this","noop","process","setTimeout","clearTimeout","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","Buffer","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","_mathRNG","Math","random","console","warn","setupNode","_rb","randomBytes","_nodeRNG","parse","buf","offset","ii","toLowerCase","replace","oct","_hexToByte","unparse","bth","_byteToHex","v1","options","b","clockseq","_clockseq","msecs","Date","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","v4","BufferClass","rnds","rng","_previousRoot","toString","substr","_seedBytes","uuid","define","amd","noConflict","window","3","cleanQueue","self","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","droppedRequest","emitEvent","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","requestId","response","action","error","message","requestHistory","Object","keys","key","dequeue","additionalQueue","uniqueQueue","dequeuingProcess","shift","max","replayInterval","queuing","offlineQueueLoader","isArray","filter","controller","hasOwnProperty","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","KuzzleSecurity","KuzzleMemoryStorage","KuzzleUser","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","loginAttempt","offlineQueuePush","offlineQueuePop","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","slice","eventProperties","listener","fn","connect","bluebird","promisifyAll","suffix","func","target","passes","whitelist","indexOf","reconnection","forceNew","connectionError","internal","disconnect","reconnect","checkToken","err","res","valid","setJwtToken","token","success","result","jwt","JSON","stringify","getJwtToken","login","strategy","credentials","expiresIn","body","queuable","logout","callbackRequired","whoAmI","security","_id","_source","getMyRights","hits","updateSelf","content","data","queryArgs","listenerId","knownEvents","listenerType","isValid","id","getAllStatistics","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","refreshIndex","getAutoRefresh","setAutoRefresh","autoRefresh","attr","object","meta","addHeaders","authorization","eventName","replayQueue","setDefaultIndex","setHeaders","startQueuing","stopQueuing","./kuzzleDataCollection","./kuzzleMemoryStorage","./security/kuzzleSecurity","./security/kuzzleUser","_process","node-uuid","socket.io-client","4","kuzzle","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_version","total","count","create","createDocument","document","serialize","updateIfExist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","from","size","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom","5","kuzzleDataCollection","properties","mappings","set","field","6","dataCollection","setContent","save","publish","values","7","bind","keyVal","idOrKeys","commands","append","bgrewriteaof","bgsave","bitcount","bitop","bitpos","__opts__","blpop","brpoplpush","dbsize","decrby","del","discard","exec","exists","expire","expireat","flushdb","getbit","getrange","hdel","hexists","hincrby","hmset","hset","info","lastsave","lindex","linsert","lpush","lrange","lrem","lset","ltrim","mset","multi","pexpire","pexpireat","pfadd","pfmerge","ping","psetex","randomkey","rename","renamenx","restore","rpoplpush","sadd","sdiffstore","setbit","setex","setrange","sinterstore","sismember","smove","sort","spop","srem","sunionstore","unwatch","wait","zadd","zcount","zincrby","zinterstore","zlexcount","zrange","zrangebylex","zrangebyscore","zrem","zremrangebylex","zremrangebyscore","zrevrangebylex","zrevrangebyscore","zrevrank","decr","get","dump","hgetall","hkeys","hlen","hstrlen","hvals","incr","llen","lpop","persist","pttl","rpop","scard","smembers","strlen","ttl","zcard","getset","lpushx","mget","pfcount","sdiff","sinter","sunion","watch","incrby","incrbyfloat","brpop","hget","hmget","hsetnx","msetnx","rpush","hincrbyfloat","srandmember","zrevrange","zscore","command","pop","v","8","channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","element","isReady","subscribeQuery","unsubscribe","interval","setInterval","clearInterval","9","KuzzleProfile","kuzzleSecurity","KuzzleSecurityDocument","deleteActionName","updateActionName","roles","map","role","KuzzleRole","constructor","addRole","setRoles","hydrate","getRoles","./kuzzleRole","./kuzzleSecurityDocument","10","11","getRole","searchRoles","createRole","replaceIfExist","updateRole","deleteRole","roleFactory","getProfile","formattedRole","restrictedTo","allowInternalIndex","searchProfiles","profiles","createProfile","updateProfile","updatedContent","property","deleteProfile","profileFactory","getUser","profile","searchUsers","createUser","updateUser","deleteUser","userFactory","isActionAllowed","rights","filteredRights","right","some","item","getUserRights","userId","./kuzzleProfile","./kuzzleUser","12","update","13","hydratedUser","setProfile","getProfiles"],"mappings":";CAAA,QAAUA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,EAAEA,EAAEF,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAkD,IAAI,GAA1CL,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKa,GAAG,SAAST,EAAQU,EAAOJ,GAkCvd,QAASK,KACAC,GAAaC,IAGlBD,GAAW,EACPC,EAAaL,OACbM,EAAQD,EAAaE,OAAOD,GAE5BE,KAEAF,EAAMN,QACNS,KAIR,QAASA,KACL,IAAIL,EAAJ,CAGA,GAAIM,GAAUC,EAAiBR,EAC/BC,IAAW,CAGX,KADA,GAAIQ,GAAMN,EAAMN,OACVY,GAAK,CAGP,IAFAP,EAAeC,EACfA,OACSE,EAAaI,GACdP,GACAA,EAAaG,GAAYK,KAGjCL,MACAI,EAAMN,EAAMN,OAEhBK,EAAe,KACfD,GAAW,EACXU,EAAmBJ,IAiBvB,QAASK,GAAKC,EAAKC,GACfC,KAAKF,IAAMA,EACXE,KAAKD,MAAQA,EAYjB,QAASE,MAlGT,GAOIR,GACAG,EARAM,EAAUlB,EAAOJ,YAUpB,WACC,IACEa,EAAmBU,WACnB,MAAOrC,GACP2B,EAAmB,WACjB,KAAM,IAAIhB,OAAM,8BAGpB,IACEmB,EAAqBQ,aACrB,MAAOtC,GACP8B,EAAqB,WACnB,KAAM,IAAInB,OAAM,mCAItB,IAEIU,GAFAC,KACAF,GAAW,EAEXI,IAyCJY,GAAQG,SAAW,SAAUP,GACzB,GAAIQ,GAAO,GAAIC,OAAMC,UAAU1B,OAAS,EACxC,IAAI0B,UAAU1B,OAAS,EACnB,IAAK,GAAIP,GAAI,EAAGA,EAAIiC,UAAU1B,OAAQP,IAClC+B,EAAK/B,EAAI,GAAKiC,UAAUjC,EAGhCa,GAAMqB,KAAK,GAAIZ,GAAKC,EAAKQ,IACJ,IAAjBlB,EAAMN,QAAiBI,GACvBO,EAAiBF,EAAY,IASrCM,EAAKa,UAAUf,IAAM,WACjBK,KAAKF,IAAIa,MAAM,KAAMX,KAAKD,QAE9BG,EAAQU,MAAQ,UAChBV,EAAQW,SAAU,EAClBX,EAAQY,OACRZ,EAAQa,QACRb,EAAQc,QAAU,GAClBd,EAAQe,YAIRf,EAAQgB,GAAKjB,EACbC,EAAQiB,YAAclB,EACtBC,EAAQkB,KAAOnB,EACfC,EAAQmB,IAAMpB,EACdC,EAAQoB,eAAiBrB,EACzBC,EAAQqB,mBAAqBtB,EAC7BC,EAAQsB,KAAOvB,EAEfC,EAAQuB,QAAU,SAAUC,GACxB,KAAM,IAAIjD,OAAM,qCAGpByB,EAAQyB,IAAM,WAAc,MAAO,KACnCzB,EAAQ0B,MAAQ,SAAUC,GACtB,KAAM,IAAIpD,OAAM,mCAEpByB,EAAQ4B,MAAQ,WAAa,MAAO,SAE9BC,GAAG,SAASzD,EAAQU,EAAOJ,IACjC,SAAWoD,IAOX,SAAUC,GACR,YAOA,SAASC,KAEP,GAAIC,GAAUF,EAAQG,QAAUH,EAAQI,QAExC,KAAKC,GAAQH,GAAWA,EAAQI,gBAI9B,IACE,GAAIC,GAAS,GAAIC,YAAW,GAC5BC,GAAaJ,EAAO,WAElB,MADAH,GAAQI,gBAAgBC,GACjBA,GAETF,IACA,MAAMxE,IAGV,IAAKwE,EAAM,CAKT,GAAKK,GAAQ,GAAIpC,OAAM,GACvBqC,GAAWN,EAAO,WAChB,IAAK,GAAWrE,GAAPM,EAAI,EAAMA,EAAI,GAAIA,IACN,KAAV,EAAJA,KAAmBN,EAAoB,WAAhB4E,KAAKC,UACjCH,EAAMpE,GAAKN,MAAY,EAAJM,IAAa,GAAK,GAGvC,OAAOoE,IAEL,mBAAuBI,UAAWA,QAAQC,MAC5CD,QAAQC,KAAK,oFAKnB,QAASC,KAIP,GAAI,kBAAsB3E,GACxB,IACE,GAAI4E,GAAM5E,EAAQ,UAAU6E,WAC5BC,GAAWd,EAAOY,GAAO,WAAY,MAAOA,GAAI,KAChDZ,IACA,MAAMxE,KAsBZ,QAASuF,GAAMnF,EAAGoF,EAAKC,GACrB,GAAIhF,GAAK+E,GAAOC,GAAW,EAAGC,EAAK,CAUnC,KARAF,EAAMA,MACNpF,EAAEuF,cAAcC,QAAQ,eAAgB,SAASC,GAC3CH,EAAK,KACPF,EAAI/E,EAAIiF,KAAQI,EAAWD,MAKxBH,EAAK,IACVF,EAAI/E,EAAIiF,KAAQ,CAGlB,OAAOF,GAIT,QAASO,GAAQP,EAAKC,GACpB,GAAIhF,GAAIgF,GAAU,EAAGO,EAAMC,CAC3B,OAAQD,GAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MACxBuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MAAQ,IAChCuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MAAQ,IAChCuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MAAQ,IAChCuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MAAQ,IAChCuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MACxBuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MACxBuF,EAAIR,EAAI/E,MAAQuF,EAAIR,EAAI/E,MAwBlC,QAASyF,GAAGC,EAASX,EAAKC,GACxB,GAAIhF,GAAI+E,GAAOC,GAAU,EACrBW,EAAIZ,KAERW,GAAUA,KAEV,IAAIE,GAAgC,MAApBF,EAAQE,SAAoBF,EAAQE,SAAWC,EAM3DC,EAA0B,MAAjBJ,EAAQI,MAAiBJ,EAAQI,OAAQ,GAAIC,OAAOC,UAI7DC,EAA0B,MAAjBP,EAAQO,MAAiBP,EAAQO,MAAQC,EAAa,EAG/DC,EAAML,EAAQM,GAAeH,EAAQC,GAAY,GAcrD,IAXIC,EAAK,GAAyB,MAApBT,EAAQE,WACpBA,EAAWA,EAAW,EAAI,QAKvBO,EAAK,GAAKL,EAAQM,IAAgC,MAAjBV,EAAQO,QAC5CA,EAAQ,GAINA,GAAS,IACX,KAAM,IAAI/F,OAAM,kDAGlBkG,GAAaN,EACbI,EAAaD,EACbJ,EAAYD,EAGZE,GAAS,WAGT,IAAIO,IAA4B,KAAb,UAARP,GAA6BG,GAAS,UACjDN,GAAE3F,KAAOqG,IAAO,GAAK,IACrBV,EAAE3F,KAAOqG,IAAO,GAAK,IACrBV,EAAE3F,KAAOqG,IAAO,EAAI,IACpBV,EAAE3F,KAAY,IAALqG,CAGT,IAAIC,GAAOR,EAAQ,WAAc,IAAS,SAC1CH,GAAE3F,KAAOsG,IAAQ,EAAI,IACrBX,EAAE3F,KAAa,IAANsG,EAGTX,EAAE3F,KAAOsG,IAAQ,GAAK,GAAM,GAC5BX,EAAE3F,KAAOsG,IAAQ,GAAK,IAGtBX,EAAE3F,KAAO4F,IAAa,EAAI,IAG1BD,EAAE3F,KAAkB,IAAX4F,CAIT,KAAK,GADDW,GAAOb,EAAQa,MAAQC,EAClB/G,EAAI,EAAGA,EAAI,EAAGA,IACrBkG,EAAE3F,EAAIP,GAAK8G,EAAK9G,EAGlB,OAAOsF,GAAMA,EAAMO,EAAQK,GAM7B,QAASc,GAAGf,EAASX,EAAKC,GAExB,GAAIhF,GAAI+E,GAAOC,GAAU,CAED,iBAAd,KACRD,EAAmB,WAAZW,EAAwB,GAAIgB,GAAY,IAAM,KACrDhB,EAAU,MAEZA,EAAUA,KAEV,IAAIiB,GAAOjB,EAAQnB,SAAWmB,EAAQkB,KAAO7C,IAO7C,IAJA4C,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IAGzB5B,EACF,IAAK,GAAIE,GAAK,EAAGA,EAAK,GAAIA,IACxBF,EAAI/E,EAAIiF,GAAM0B,EAAK1B,EAIvB,OAAOF,IAAOO,EAAQqB,GAhOxB,GAAI5C,GAAMM,EAAUQ,EAAUV,EAAY0C,CAqDtCnD,GACFC,IAEAe,GASF,KAAK,GALDgC,GAAe,kBAAsBjD,GAAUA,EAASzB,MAGxDwD,KACAH,KACKrF,EAAI,EAAGA,EAAI,IAAKA,IACvBwF,EAAWxF,IAAMA,EAAI,KAAO8G,SAAS,IAAIC,OAAO,GAChD1B,EAAWG,EAAWxF,IAAMA,CAyC9B,IAAIgH,GAAajD,IAGbyC,GACc,EAAhBQ,EAAW,GACXA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,IAIrEnB,EAAmD,OAAtCmB,EAAW,IAAM,EAAIA,EAAW,IAG7CZ,EAAa,EAAGF,EAAa,EA4G7Be,EAAOR,CACXQ,GAAKxB,GAAKA,EACVwB,EAAKR,GAAKA,EACVQ,EAAKnC,MAAQA,EACbmC,EAAK3B,QAAUA,EACf2B,EAAKP,YAAcA,EACnBO,EAAKlD,KAAOA,EACZkD,EAAK5C,SAAWA,EAChB4C,EAAKpC,SAAWA,EAChBoC,EAAK9C,WAAaA,EAEb,mBAAuB1D,IAAWA,EAAOJ,QAE5CI,EAAOJ,QAAU4G,EACU,kBAAXC,SAAyBA,OAAOC,IAEhDD,OAAO,WAAY,MAAOD,MAK1BJ,EAAgBnD,EAAQuD,KAGxBA,EAAKG,WAAa,WAEhB,MADA1D,GAAQuD,KAAOJ,EACRI,GAGTvD,EAAQuD,KAAOA,IAEhB,mBAAuBI,QAASA,OAAS,QAEzC/G,KAAKmB,KAAK1B,EAAQ,UAAU0D,aACzB6D,GAAG,SAASvH,EAAQU,EAAOJ,IACjC,SAAWsB,GA+oBX,QAAS4F,KACP,GACEC,GAAO/F,KACPgG,EAAM1B,KAAK0B,MACXC,IAEEF,GAAKG,SAAW,IAClBH,EAAKI,aAAaC,QAAQ,SAAUC,EAAOC,GACrCD,EAAME,GAAKP,EAAMD,EAAKG,WACxBD,EAAoBK,KAIpBL,QACFF,EAAKI,aACFK,OAAO,EAAGP,EAAoB,GAC9BG,QAAQ,SAAUK,GACjBV,EAAKW,UAAU,kBAAmBD,EAAeJ,UAKrDN,EAAKY,aAAe,GAAKZ,EAAKI,aAAarH,OAASiH,EAAKY,cAC3DZ,EAAKI,aACFK,OAAO,EAAGT,EAAKI,aAAarH,OAASiH,EAAKY,cAC1CP,QAAQ,SAAUK,GACjBV,EAAKW,UAAU,kBAAmBD,EAAeJ,SAWzD,QAASO,GAAaC,EAASC,GAC7B,GACEd,GAAM1B,KAAK0B,MACXD,EAAO/F,MAEa+G,SAAlBhB,EAAKiB,UAA0BF,IACjCf,EAAKkB,OAAO7F,KAAKyF,EAAQK,UAAW,SAAUC,GACrB,WAAnBN,EAAQO,QAAuBD,EAASE,OAAoC,kBAA3BF,EAASE,MAAMC,UAClEvB,EAAKiB,SAAWD,OAChBhB,EAAKW,UAAU,kBAAmBG,EAASC,IAGzCA,GACFA,EAAGK,EAASE,MAAOF,KAKzBpB,EAAKkB,OAAOzF,KAAK,SAAUqF,GAG3Bd,EAAKwB,eAAeV,EAAQK,WAAalB,EAGzCwB,OAAOC,KAAK1B,EAAKwB,gBAAgBnB,QAAQ,SAAUsB,GAC7C3B,EAAKwB,eAAeG,GAAO1B,EAAM,WAC5BD,GAAKwB,eAAeG,KAQjC,QAASC,KACP,GAEEC,GADA7B,EAAO/F,KAEP6H,KACAC,EAAmB,WACb/B,EAAKI,aAAarH,OAAS,GAC7B8H,EAAY/H,KAAKkH,EAAMA,EAAKI,aAAa,GAAGE,MAAON,EAAKI,aAAa,GAAGW,IACxEf,EAAKW,UAAU,kBAAmBX,EAAKI,aAAa4B,SAEpD5H,WAAW,WACT2H,KACCjF,KAAKmF,IAAI,EAAGjC,EAAKkC,kBAEpBlC,EAAKmC,SAAU,EAIrB,IAAInC,EAAKoC,mBAAoB,CAC3B,GAAuC,kBAA5BpC,GAAKoC,mBACd,KAAM,IAAI1J,OAAM,iFAAoFsH,GAAKoC,mBAI3G,IADAP,EAAkB7B,EAAKoC,sBACnB5H,MAAM6H,QAAQR,GAYhB,KAAM,IAAInJ,OAAM,0FAA6FmJ,GAX7G7B,GAAKI,aAAeyB,EACjBvI,OAAO0G,EAAKI,cACZkC,OAAO,SAAUxB,GAEhB,IAAKA,EAAQR,OAAqCU,SAA5BF,EAAQR,MAAMa,YAA4BL,EAAQR,MAAMe,SAAWP,EAAQR,MAAMiC,WACrG,KAAM,IAAI7J,OAAM,gGAGlB,QAAOoJ,EAAYU,eAAe1B,EAAQR,MAAMa,aAAsBW,EAAYhB,EAAQR,MAAMa,YAAa,KAOrHY,IAOF,QAASU,KACP,GAAIzC,GAAO/F,IAEXwH,QAAOC,KAAK1B,EAAK0C,eAAerC,QAAQ,SAAUsC,GAChDlB,OAAOC,KAAK1B,EAAK0C,cAAcC,IAAStC,QAAQ,SAAUuC,GACxD,GAAIC,GAAe7C,EAAK0C,cAAcC,GAAQC,EAC9CC,GAAaC,MAAMD,EAAaE,cA1wBtC,GACEtD,GAAOlH,EAAQ,aACfyK,EAAuBzK,EAAQ,0BAC/B0K,EAAiB1K,EAAQ,6BACzB2K,EAAsB3K,EAAQ,yBAC9B4K,EAAa5K,EAAQ,wBAmBvBU,GAAOJ,QAAUuK,OAAS,SAAUC,EAAKnF,EAAS6C,GAChD,GAAIf,GAAO/F,IAEX,MAAMA,eAAgBmJ,SACpB,MAAO,IAAIA,QAAOC,EAAKnF,EAAS6C,EAQlC,IALKA,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,OAGPmF,GAAe,KAARA,EACV,KAAM,IAAI3K,OAAM,uBA+PlB,OA5PA+I,QAAO6B,iBAAiBrJ,MAEtBsJ,aACEC,SACAC,UAAU,GAEZC,WACEF,MAAOzC,GAET4C,gBACEH,OACEI,WAAYC,YAAa,KAAMC,cAC/BxC,OAAQuC,YAAa,KAAMC,cAC3BC,cAAeF,YAAa,KAAMC,cAClCE,aAAcH,YAAa,KAAMC,cACjCG,iBAAkBJ,YAAa,KAAMC,cACrCI,cAAeL,YAAa,KAAMC,cAClCK,kBAAmBL,cACnBM,iBAAkBN,gBAGtBO,cACEb,MAAO,KAETc,IACEd,MAAO,KACPC,UAAU,GAEZtB,SACEqB,OAAO,EACPC,UAAU,GAEZjC,gBACEgC,SACAC,UAAU,GAEZvC,QACEsC,MAAO,KACPC,UAAU,GAEZc,OACEf,MAAO,eACPC,UAAU,GAEZf,eAaEc,OACEgB,YAEFf,UAAU,GAGZgB,eACEjB,OAAQtF,GAA4C,iBAA1BA,GAAQuG,eAA+BvG,EAAQuG,cACzEC,YAAY,GAEdC,cACEnB,MAAQtF,GAA2C,gBAAzBA,GAAQyG,aAA6BzG,EAAQyG,aAAe3D,OACtFyC,UAAU,EACViB,YAAY,GAEdE,mBACEpB,MAAQtF,GAAgD,gBAA9BA,GAAQ0G,kBAAkC1G,EAAQ0G,kBAAoB,IAChGF,YAAY,GAEdrB,KACEG,MAAOH,EACPqB,YAAY,GAEdG,WACErB,OAAO,EACPkB,YAAY,EACZjB,UAAU,GAEZqB,YACEtB,OAAO,EACPkB,YAAY,EACZjB,UAAU,GAEZsB,iBACEvB,OAAO,EACPkB,YAAY,EACZjB,UAAU,GAEZuB,SACExB,SACAkB,YAAY,EACZjB,UAAU,GAEZwB,UACEzB,SACAkB,YAAY,EACZjB,UAAU,GAYZrD,cACEoD,SACAkB,YAAY,EACZjB,UAAU,GAEZyB,aACE1B,MAAO,KACPkB,YAAY,EACZjB,UAAU,GAEZ7C,cACE4C,MAAO,IACPkB,YAAY,EACZjB,UAAU,GAEZtD,UACEqD,MAAO,KACPkB,YAAY,EACZjB,UAAU,GAEZvB,gBACEsB,MAAO,GACPkB,YAAY,EACZjB,UAAU,GAEZxC,UACEuC,MAAOxC,OACP0D,YAAY,EACZjB,UAAU,GAEZrB,oBACEoB,MAAO,KACPkB,YAAY,EACZjB,UAAU,KAIQ,mBAAX5D,SAA0BA,OAAOyE,GAC1CrK,KAAKqK,GAAKzE,OAAOyE,GAEjBrK,KAAKqK,GAAK/L,EAAQ,oBAGhB2F,IACFuD,OAAOC,KAAKxD,GAASmC,QAAQ,SAAU8E,GACjCnF,EAAKwC,eAAe2C,IAAQ1D,OAAO2D,yBAAyBpF,EAAMmF,GAAK1B,WACzEzD,EAAKmF,GAAOjH,EAAQiH,MAII,SAAxBjH,EAAQmH,aAA0BpL,KAAKwK,gBACzCxK,KAAK4K,UAAY5K,KAAK6K,WAAa7K,KAAK8K,iBAAkB,IAK9DtD,OAAO6D,eAAerL,KAAM,WAC1BuJ,MAAO,WACL,GAAmB,iBAAfxD,EAAKuE,MACP,KAAM,IAAI7L,OAAM,iGAMtB+I,OAAO6D,eAAerL,KAAM,cAC1BuJ,MAAO,SAAUlD,EAAO0E,GAOtB,MANAvD,QAAOC,KAAKsD,GAAS3E,QAAQ,SAAUkF,GAChCjF,EAAMiF,KACTjF,EAAMiF,GAAUP,EAAQO,MAIrBjF,KAQXmB,OAAO6D,eAAerL,KAAM,oBAC1BuJ,MAAO,SAAUgC,EAAoBzC,GACnC,IAAKA,GAAgC,kBAAbA,GACtB,KAAM,IAAIrK,OAAM8M,EAAqB,yDAQ3C/D,OAAO6D,eAAerL,KAAM,YAC1BuJ,MAAO,GAAIP,GAAehJ,MAC1ByK,YAAY,IAOdjD,OAAO6D,eAAerL,KAAM,aAC1BuJ,MAAO,SAAmBiC,GACxB,GACExF,GAAM1B,KAAK0B,MACX1F,EAAOC,MAAMG,UAAU+K,MAAM5M,KAAK2B,UAAW,GAC7CkL,EAAkB1L,KAAK0J,eAAe8B,EAExC,SAAIE,EAAgB9B,aAAe8B,EAAgB9B,aAAe5D,EAAMhG,KAAKoK,gBAI7EsB,EAAgB7B,UAAUzD,QAAQ,SAAUuF,GAC1CzL,EAAQG,SAAS,WACfsL,EAASC,GAAGjL,MAAMoG,OAAWzG,YAKGyG,SAAhC2E,EAAgB9B,cAClB8B,EAAgB9B,YAAc5D,QAKpCwB,OAAO6D,eAAerL,KAAM,iBAC1BuJ,MAAO,GAAIN,GAAoBjJ,MAC/ByK,YAAY,IAITxG,GAAYA,EAAQ4H,SAA+B,SAApB5H,EAAQ4H,QAG1C7L,KAAKsK,MAAQ,QAFbtK,KAAK6L,UAKH7L,KAAK8L,SACA9L,KAAK8L,SAASC,aAAa/L,MAChCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,mBAAoB,gBAAiB,gBACpD,kBAAmB,cAAe,QAAS,SAAU,MAAO,QAC5D,aAAc,SAEhB,OAAOD,IAAUC,EAAUC,QAAQ3K,WARzC,QAoBFyH,OAAOzI,UAAUmL,QAAU,WACzB,GAAI9F,GAAO/F,IAEX,QAAK,eAAgB,QAAS,eAAgB,QAAS,WAAWqM,QAAQrM,KAAKsK,aACzEvE,EAAK0D,WACP1D,EAAK0D,UAAU,KAAM1D,GAEhBA,IAGTA,EAAKuE,MAAQ,aAEbvE,EAAKkB,OAASlB,EAAKsE,GAAGtE,EAAKqD,KACzBkD,aAAcvG,EAAKyE,cACnBG,kBAAmB5E,EAAK4E,kBACxB4B,UAAU,IAGZxG,EAAKkB,OAAO7F,KAAK,UAAW,WAC1B2E,EAAKuE,MAAQ,YACb9B,EAAsB3J,KAAKkH,GAC3B4B,EAAQ9I,KAAKkH,GACbA,EAAKW,UAAU,aAEXX,EAAK0D,WACP1D,EAAK0D,UAAU,KAAM1D,KAIzBA,EAAKkB,OAAO/F,GAAG,gBAAiB,SAAUmG,GACxC,GAAImF,GAAkB,GAAI/N,OAAM,0CAA4CsH,EAAKqD,IAAM,IAEvFoD,GAAgBC,SAAWpF,EAC3BtB,EAAKuE,MAAQ,QACbvE,EAAKW,UAAU,QAAS8F,GAEpBzG,EAAK0D,WACP1D,EAAK0D,UAAU+C,KAInBzG,EAAKkB,OAAO/F,GAAG,aAAc,WAC3B6E,EAAKuE,MAAQ,UAERvE,EAAKyE,eACRzE,EAAK2G,aAGH3G,EAAK6E,YACP7E,EAAKmC,SAAU,GAGjBnC,EAAKW,UAAU,kBAGjBX,EAAKkB,OAAO/F,GAAG,YAAa,WAC1B,GAAIyL,GAAY,WAEV5G,EAAK+E,iBACPtC,EAAsB3J,KAAKkH,GAIzBA,EAAK8E,aACP/E,EAAWjH,KAAKkH,GAChB4B,EAAQ9I,KAAKkH,IAIfA,EAAKW,UAAU,eAGjBX,GAAKuE,MAAQ,YAETvE,EAAKiB,SACPjB,EAAK6G,WAAW7G,EAAKiB,SAAU,SAAU6F,EAAKC,IAExCD,GAAQC,EAAIC,QACdhH,EAAKiB,SAAWD,OAChBhB,EAAKW,UAAU,oBAGjBiG,MAGFA,MAIG3M,OAQTmJ,OAAOzI,UAAUsM,YAAc,SAASC,GACtC,GAAqB,gBAAVA,GACTjN,KAAKgH,SAAWiG,MACX,CAAA,GAAqB,gBAAVA,GAahB,MADAjN,MAAK0G,UAAU,gBAAiBwG,SAAS,EAAO7F,MAAO,2BAA6B4F,IAC7EjN,IAZP,KAAIiN,EAAME,SAAUF,EAAME,OAAOC,KAAmC,gBAArBH,GAAME,OAAOC,IAQ1D,MALApN,MAAK0G,UAAU,gBACbwG,SAAS,EACT7F,MAAO,0DAA4DgG,KAAKC,UAAUL,KAG7EjN,IAPPA,MAAKgH,SAAWiG,EAAME,OAAOC,IAgBjC,MAFA5E,GAAsB3J,KAAKmB,MAC3BA,KAAK0G,UAAU,gBAAiBwG,SAAS,IAClClN,MAOTmJ,OAAOzI,UAAU6M,YAAc,WAC7B,MAAOvN,MAAKgH,UAadmC,OAAOzI,UAAU8M,MAAQ,SAAUC,GACjC,GAKEC,GACA5G,EALAf,EAAO/F,KACP6G,GACE4G,SAAUA,EAmDd,OA7CIjN,WAAU,KACgB,gBAAjBA,WAAU,GACnBkN,EAAclN,UAAU,GACS,gBAAjBA,WAAU,IAA2C,gBAAjBA,WAAU,GAC9DqG,EAAQ8G,UAAYnN,UAAU,GACG,kBAAjBA,WAAU,KAC1BsG,EAAKtG,UAAU,KAGfA,UAAU,KACgB,gBAAjBA,WAAU,IAA2C,gBAAjBA,WAAU,GACvDqG,EAAQ8G,UAAYnN,UAAU,GACG,kBAAjBA,WAAU,KAC1BsG,EAAKtG,UAAU,KAGfA,UAAU,IAA8B,kBAAjBA,WAAU,KACnCsG,EAAKtG,UAAU,IAGU,gBAAhBkN,IACTlG,OAAOC,KAAKiG,GAAatH,QAAQ,SAAUsB,GACzCb,EAAQa,GAAOgG,EAAYhG,KAI/B1H,KAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,UAAWwG,KAAM/G,IAAWgH,UAAU,GAAQ,SAASxG,EAAOF,GAC/FE,GAUCP,GAAoB,kBAAPA,IACfA,EAAGO,GAGLtB,EAAKW,UAAU,gBAAiBwG,SAAS,EAAO7F,MAAOA,EAAMC,YAbzDH,EAASgG,OAAOC,KAClBrH,EAAKiH,YAAY7F,EAASgG,OAAOC,KAG/BtG,GAAoB,kBAAPA,IACfA,EAAG,KAAMK,EAASgG,WAYjBpH,GASToD,OAAOzI,UAAUoN,OAAS,SAAUhH,GAClC,GACEf,GAAO/F,KACP6G,GACEO,OAAQ,SACRkB,WAAY,OACZpB,UAAW1B,EAAKR,KAChB4I,QAgBJ,OAbA5N,MAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,UAAWP,GAAUgH,UAAU,GAAQ,SAASxG,GACxE,OAAVA,GACFtB,EAAKiB,SAAWD,OAEE,kBAAPD,IACTA,EAAG,KAAMf,IAGU,kBAAPe,IACdA,EAAGO,KAIAtB,GAWToD,OAAOzI,UAAUkM,WAAa,SAAUK,EAAOnE,GAC7C,GACE/C,GAAO/F,KACP6G,GACE+G,MACEX,MAAOA,GAcb,OAVAjN,MAAK+N,iBAAiB,oBAAqBjF,GAE3C9I,KAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,cAAeP,GAAUgH,UAAU,GAAQ,SAAUhB,EAAK1F,GAChG,MAAI0F,GACK/D,EAAS+D,OAGlB/D,GAAS,KAAM3B,EAASgG,UAGnBpH,GAUToD,OAAOzI,UAAUsN,OAAS,SAAUlF,GAClC,GAAI/C,GAAO/F,IAYX,OAVA+F,GAAKgI,iBAAiB,gBAAiBjF,GAEvC/C,EAAKM,OAAOiC,WAAY,OAAQlB,OAAQ,wBAA2B,SAAUyF,EAAK1F,GAChF,MAAI0F,GACK/D,EAAS+D,OAGlB/D,GAAS,KAAM,GAAII,GAAWnD,EAAKkI,SAAU9G,EAASgG,OAAOe,IAAK/G,EAASgG,OAAOgB,YAG7EpI,GAQToD,OAAOzI,UAAU0N,YAAc,SAAUnK,EAAS6C,GAChD,GAAIf,GAAO/F,IAEN8G,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKgI,iBAAiB,qBAAsBjH,GAE5Cf,EAAKM,OAAOiC,WAAY,OAAQlB,OAAO,kBAAoB,KAAM,SAAUyF,EAAKC,GAC9E,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOkB,SAWxBlF,OAAOzI,UAAU4N,WAAa,SAAUC,EAAStK,EAAS6C,GACxD,GACEf,GAAO/F,KACPwO,KACAC,GAAanG,WAAY,OAAQlB,OAAQ,aAEtCN,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKZ,KAAOW,EAERzH,EACFf,EAAKM,MAAMoI,EAAWD,EAAMvK,EAAS,SAAU4I,EAAKC,GAClD,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,UAGfpH,EAAKM,MAAMoI,EAAWD,EAAMvK,IAkJhCkF,OAAOzI,UAAUS,YAAc,SAASqK,EAAOG,GAC7C,GAGE+C,GAFAC,EAAcnH,OAAOC,KAAKzH,KAAK0J,gBAC/BkF,QAAsBjD,EAKxB,IAFA3L,KAAK6O,UAEDF,EAAYtC,QAAQb,QACtB,KAAM,IAAI/M,OAAM,IAAM+M,EAAQ,yCAA2CmD,EAAYtJ,WAGvF,IAAqB,aAAjBuJ,EACF,KAAM,IAAInQ,OAAM,qDAAuDmQ,EAKzE,OAFAF,GAAalJ,EAAKxB,KAClBhE,KAAK0J,eAAe8B,GAAO3B,UAAUpJ,MAAMqO,GAAIJ,EAAY9C,GAAID,IACxD+C,GAYTvF,OAAOzI,UAAUqO,iBAAmB,SAAU9K,EAAS6C,GAgBrD,MAfKA,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAK+N,iBAAiB,0BAA2BjH,GAEjD9G,KAAKqG,OAAOiC,WAAW,QAASlB,OAAQ,kBAAoBnD,EAAS,SAAU4I,EAAKC,GAClF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOkB,QAGfrO,MAYTmJ,OAAOzI,UAAUsO,cAAgB,SAAUC,EAAWhL,EAAS6C,GAC7D,GAAIoI,EAuCJ,OArCKpI,KACsB,IAArBtG,UAAU1B,QACZgI,EAAKtG,UAAU,GACfyD,EAAU,KACVgL,EAAY,OAEZnI,EAAKtG,UAAU,GACa,gBAAjBA,WAAU,IACnByD,EAAUzD,UAAU,GACpByO,EAAY,OAEZA,EAAYzO,UAAU,GACtByD,EAAU,QAKhBiL,EAAU,SAAUrC,EAAKC,GACvB,MAAID,GACK/F,EAAG+F,QAGRoC,EACFnI,EAAG,KAAMgG,EAAIK,OAAOkB,MAEpBvH,EAAG,MAAOgG,EAAIK,WAIlBnN,KAAK+N,iBAAiB,uBAAwBjH,GAEzCmI,EAGHjP,KAAKqG,OAAOiC,WAAY,QAASlB,OAAQ,aAAewG,MAAQuB,UAAWF,IAAehL,EAASiL,GAFnGlP,KAAKqG,OAAOiC,WAAY,QAASlB,OAAQ,mBAAqBnD,EAASiL,GAKlElP,MAWTmJ,OAAOzI,UAAU0O,sBAAwB,SAASC,EAAY/I,GAG5D,GAFAtG,KAAK6O,WAEAvI,EAAO,CACV,IAAKtG,KAAK0K,aACR,KAAM,IAAIjM,OAAM,oEAGlB6H,GAAQtG,KAAK0K,aAGf,GAAqB,gBAAVpE,GACT,KAAM,IAAI7H,OAAM,wDAA2D6H,GAG7E,IAA0B,gBAAf+I,GACT,KAAM,IAAI5Q,OAAM,6DAAgE4Q,GAWlF,OARKrP,MAAKsJ,YAAYhD,KACpBtG,KAAKsJ,YAAYhD,OAGdtG,KAAKsJ,YAAYhD,GAAO+I,KAC3BrP,KAAKsJ,YAAYhD,GAAO+I,GAAc,GAAItG,GAAqB/I,KAAMsG,EAAO+I,IAGvErP,KAAKsJ,YAAYhD,GAAO+I,IAQjClG,OAAOzI,UAAU4O,WAAa,WAE5B,MADAtP,MAAKmG,gBACEnG,MAWTmJ,OAAOzI,UAAU6O,gBAAkB,WACjC,GAEEjJ,GACArC,EACA6C,EAHA0I,EAAiB,MAIjBlP,EAAOC,MAAMG,UAAU+K,MAAM5M,KAAK2B,UAgBpC,IAdAF,EAAK8F,QAAQ,SAASqJ,GACpB,aAAeA,IACb,IAAK,SACHnJ,EAAQmJ,CACR,MACF,KAAK,SACHxL,EAAUwL,CACV,MACF,KAAK,WACH3I,EAAK2I,MAKNnJ,EAAO,CACV,IAAKtG,KAAK0K,aACR,KAAM,IAAIjM,OAAM,yCAGlB6H,GAAQtG,KAAK0K,aAiBf,MAdA1K,MAAK+N,iBAAiB,yBAA0BjH,GAE5C7C,GAAWA,EAAQyL,OACrBF,EAAiBvL,EAAQyL,MAG3B1P,KAAKqG,OAAOC,MAAOA,EAAOgC,WAAY,OAAQlB,OAAQ,oBAAqBwG,MAAO8B,KAAMF,IAAkBvL,EAAS,SAAU4I,EAAKC,GAChI,MAAID,GACK/F,EAAG+F,GAGL/F,EAAG,KAAMgG,EAAIK,OAAO7D,eAGtBtJ,MAUTmJ,OAAOzI,UAAUiP,YAAc,SAAU1L,EAAS6C,GAgBhD,MAfKA,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAK+N,iBAAiB,qBAAsBjH,GAE5C9G,KAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,kBAAoBnD,EAAS,SAAU4I,EAAKC,GAClF,MAAID,GACK/F,EAAG+F,GAGL/F,EAAG,KAAMgG,EAAIK,OAAOyC,WAGtB5P,MAMTmJ,OAAOzI,UAAUgM,WAAa,WAC5B,GAAI2C,EAEJrP,MAAK8N,SAEL9N,KAAKsK,MAAQ,eACbtK,KAAKiH,OAAO4I,QACZ7P,KAAKiH,OAAS,IAEd,KAAKoI,IAAcrP,MAAKsJ,YAClBtJ,KAAKsJ,YAAYf,eAAe8G,UAC3BrP,MAAKsJ,YAAY+F,IAY9BlG,OAAOzI,UAAUoP,cAAgB,SAAU7L,EAAS6C,GAgBlD,MAfKA,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAK+N,iBAAiB,uBAAwBjH,GAE9C9G,KAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,iBAAmBnD,EAAS,SAAU4I,EAAKC,GACjF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAO4C,cAGf/P,MAWTmJ,OAAOzI,UAAUsP,aAAe,WAC9B,GACE1J,GACArC,EACA6C,CAgBF,IAdAvG,MAAMG,UAAU+K,MAAM5M,KAAK2B,WAAW4F,QAAQ,SAASqJ,GACrD,aAAeA,IACb,IAAK,SACHnJ,EAAQmJ,CACR,MACF,KAAK,SACHxL,EAAUwL,CACV,MACF,KAAK,WACH3I,EAAK2I,MAKNnJ,EAAO,CACV,IAAKtG,KAAK0K,aACR,KAAM,IAAIjM,OAAM,sCAElB6H,GAAQtG,KAAK0K,aAKf,MAFA1K,MAAKqG,OAAQC,MAAOA,EAAOgC,WAAY,QAASlB,OAAQ,mBAAqBnD,EAAS6C,GAE/E9G,MAWTmJ,OAAOzI,UAAUuP,eAAiB,WAChC,GACE3J,GACArC,EACA6C,CAgBF,IAdAvG,MAAMG,UAAU+K,MAAM5M,KAAK2B,WAAW4F,QAAQ,SAAUqJ,GACtD,aAAeA,IACb,IAAK,SACHnJ,EAAQmJ,CACR,MACF,KAAK,SACHxL,EAAUwL,CACV,MACF,KAAK,WACH3I,EAAK2I,MAKNnJ,EAAO,CACV,IAAKtG,KAAK0K,aACR,KAAM,IAAIjM,OAAM,wCAElB6H,GAAQtG,KAAK0K,aAMf,MAHA1K,MAAK+N,iBAAiB,wBAAyBjH,GAC/C9G,KAAKqG,OAAQC,MAAOA,EAAOgC,WAAY,QAASlB,OAAQ,qBAAuBnD,EAAS6C,GAEjF9G,MAYTmJ,OAAOzI,UAAUwP,eAAiB,WAChC,GACE5J,GACA6J,EACAlM,EACA6C,CAmBF,IAjBAvG,MAAMG,UAAU+K,MAAM5M,KAAK2B,WAAW4F,QAAQ,SAAUqJ,GACtD,aAAeA,IACb,IAAK,SACHnJ,EAAQmJ,CACR,MACF,KAAK,UACHU,EAAcV,CACd,MACF,KAAK,SACHxL,EAAUwL,CACV,MACF,KAAK,WACH3I,EAAK2I,MAKNnJ,EAAO,CACV,IAAKtG,KAAK0K,aACR,KAAM,IAAIjM,OAAM,wCAElB6H,GAAQtG,KAAK0K,aAGf,GAAoB3D,SAAhBoJ,EACF,KAAM,IAAI1R,OAAM,uDAKlB,OAFAuB,MAAKqG,OAAQC,MAAOA,EAAOgC,WAAY,QAASlB,OAAQ,mBAAqBwG,MAAQuC,YAAaA,IAAgBlM,EAAS6C,GAEpH9G,MASTmJ,OAAOzI,UAAUsF,IAAM,SAAU/B,EAAS6C,GAgBxC,MAfKA,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAK+N,iBAAiB,aAAcjH,GAEpC9G,KAAKqG,OAAOiC,WAAY,OAAQlB,OAAQ,UAAYnD,EAAS,SAAU4I,EAAKC,GAC1E,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOnH,OAGfhG,MAgBTmJ,OAAOzI,UAAU2F,MAAQ,SAAUoI,EAAWpI,EAAOpC,EAAS6C,GAC5D,GACEsJ,GACAC,GACEjJ,OAAQqH,EAAUrH,OAClBkB,WAAYmG,EAAUnG,WACtB0C,SAAUhL,KAAKgL,UAEjBjF,EAAO/F,IAST,IAPAA,KAAK6O,UAEA/H,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGRA,IACEA,EAAQ+G,UACVxD,OAAOC,KAAKxD,EAAQ+G,UAAU5E,QAAQ,SAAUkK,GAC9CD,EAAOrF,SAASsF,GAAQrM,EAAQ+G,SAASsF,KAIzCrM,EAAQ4J,YAAa,GAAwB,YAAf9H,EAAKuE,OACrC,MAAOvE,EAIPM,GAAM2E,UACRxD,OAAOC,KAAKpB,EAAM2E,UAAU5E,QAAQ,SAAUkK,GAC5CD,EAAOrF,SAASsF,GAAQjK,EAAM2E,SAASsF,IAI3C,KAAKF,IAAQ/J,GACE,aAAT+J,GAAuB/J,EAAMkC,eAAe6H,KAC9CC,EAAOD,GAAQ/J,EAAM+J,GA0CzB,OAtCAC,GAAStK,EAAKwK,WAAWF,EAAQrQ,KAAK+K,SAMhBhE,SAAlBhB,EAAKiB,UAAkD,SAAtBqJ,EAAO/H,YAA2C,eAAlB+H,EAAOjJ,SAC1EiJ,EAAOtF,QAAUsF,EAAOtF,YACxBsF,EAAOtF,QAAQyF,cAAgB,UAAYzK,EAAKiB,UAG9CyH,EAAUY,aACZgB,EAAOhB,WAAaZ,EAAUY,YAG5BZ,EAAUnI,QACZ+J,EAAO/J,MAAQmI,EAAUnI,OAGtB+J,EAAOnJ,YACVmJ,EAAOnJ,UAAY1B,EAAKR,MAGP,cAAfe,EAAKuE,OAA0BrG,GAAWA,EAAQ4J,YAAa,EAC9C,cAAf9H,EAAKuE,MACP1D,EAAY/H,KAAKmB,KAAMqQ,EAAQvJ,GACtBA,GACTA,EAAG,GAAIrI,OAAM,oFAAsF4O,KAAKC,UAAU+C,MAE3GtK,EAAKmC,UAAY,eAAgB,cAAcmE,QAAQtG,EAAKuE,eACrExE,EAAWjH,KAAKmB,KAAMqQ,EAAQvJ,GAEzBf,EAAKkF,cAAelF,EAAKkF,YAAYoF,KACxCtK,EAAKI,aAAa1F,MAAM8F,GAAIjC,KAAK0B,MAAOK,MAAOgK,EAAQvJ,GAAIA,IAC3Df,EAAKW,UAAU,oBAAqBL,MAAOgK,EAAQvJ,GAAIA,MAIpDf,GAQToD,OAAOzI,UAAUa,mBAAqB,SAAUiK,GAC9C,GACEmD,GAAcnH,OAAOC,KAAKzH,KAAK0J,gBAC/B3D,EAAO/F,IAET,IAAIwL,EAAO,CACT,GAAImD,EAAYtC,QAAQb,QACtB,KAAM,IAAI/M,OAAM,IAAM+M,EAAQ,yCAA2CmD,EAAYtJ,WAGvFrF,MAAK0J,eAAe8B,GAAO3B,iBAE3B8E,GAAYvI,QAAQ,SAAUqK,GAC5B1K,EAAK2D,eAAe+G,GAAW5G,gBAWrCV,OAAOzI,UAAUY,eAAiB,SAAUkK,EAAOkD,GACjD,GACEC,GAAcnH,OAAOC,KAAKzH,KAAK0J,gBAC/B3D,EAAO/F,IAET,IAAI2O,EAAYtC,QAAQb,QACtB,KAAM,IAAI/M,OAAM,IAAM+M,EAAQ,yCAA2CmD,EAAYtJ,WAGvFrF,MAAK0J,eAAe8B,GAAO3B,UAAUzD,QAAQ,SAAUuF,EAAUrF,GAC3DqF,EAASmD,KAAOJ,GAClB3I,EAAK2D,eAAe8B,GAAO3B,UAAUrD,OAAOF,EAAO,MASzD6C,OAAOzI,UAAUgQ,YAAc,WAM7B,MALmB,YAAf1Q,KAAKsK,OAAwBtK,KAAK6K,aACpC/E,EAAWjH,KAAKmB,MAChB2H,EAAQ9I,KAAKmB,OAGRA,MASTmJ,OAAOzI,UAAUiQ,gBAAkB,SAAUrK,GAC3C,GAAqB,gBAAVA,GACT,KAAM,IAAI7H,OAAM,2BAA6B6H,EAAQ,gCAGvD,IAAqB,IAAjBA,EAAMxH,OACR,KAAM,IAAIL,OAAM,iDAKlB,OAFAuB,MAAK0K,aAAepE,EAEbtG,MAYTmJ,OAAOzI,UAAUkQ,WAAa,SAAUrC,EAAS7K,GAC/C,GAAIqC,GAAO/F,IAEX,IAAuB,gBAAZuO,IAAwBhO,MAAM6H,QAAQmG,GAC/C,KAAM,IAAI9P,OAAM,+CAAkD8P,GAWpE,OARI7K,GACFqC,EAAKgF,QAAUwD,EAEf/G,OAAOC,KAAK8G,GAASnI,QAAQ,SAAUsB,GACrC3B,EAAKgF,QAAQrD,GAAO6G,EAAQ7G,KAIzB3B,GAMToD,OAAOzI,UAAUmQ,aAAe,WAI9B,MAHmB,YAAf7Q,KAAKsK,OAAwBtK,KAAK4K,YACpC5K,KAAKkI,SAAU,GAEVlI,MAMTmJ,OAAOzI,UAAUoQ,YAAc,WAK7B,MAJmB,YAAf9Q,KAAKsK,OAAwBtK,KAAK4K,YACpC5K,KAAKkI,SAAU,GAGVlI,QAGNnB,KAAKmB,KAAK1B,EAAQ,eAClByS,yBAAyB,EAAEC,wBAAwB,EAAEC,4BAA4B,GAAGC,wBAAwB,GAAGC,SAAW,EAAEC,YAAY,EAAEC,mBAAmBtK,SAAYuK,GAAG,SAAShT,EAAQU,EAAOJ,GAsBvM,QAASmK,GAAqBwI,EAAQjL,EAAO+I,GAC3C,IAAK/I,IAAU+I,EACb,KAAM,IAAI5Q,OAAM,wFAqClB,OAjCA+I,QAAO6B,iBAAiBrJ,MAEtBqP,YACE9F,MAAO8F,EACP5E,YAAY,GAEdnE,OACEiD,MAAOjD,EACPmE,YAAY,GAEd8G,QACEhI,MAAOgI,EACP9G,YAAY,GAGdM,SACExB,MAAO8D,KAAKhK,MAAMgK,KAAKC,UAAUiE,EAAOxG,UACxCN,YAAY,EACZjB,UAAU,KAIdhC,OAAO6D,eAAerL,KAAM,kBAC1BuJ,MAAO,SAAUjB,EAAYlB,GAC3B,OACEkB,WAAYA,EACZlB,OAAQA,EACRiI,WAAYrP,KAAKqP,WACjB/I,MAAOtG,KAAKsG,UAKdtG,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIqF,IAAa,iBAAkB,aAAc,YAEjD,OAAOrF,IAAUqF,EAAUnF,QAAQ3K,WAKlC1B,KAvET,GACEyR,GAAiBnT,EAAQ,oBACzBoT,EAAoBpT,EAAQ,uBAC5BqT,EAAarT,EAAQ,eAmFvByK,GAAqBrI,UAAUkR,eAAiB,SAAUC,EAAS5N,EAAS6C,GAC1E,GACET,GACAN,EAAO/F,IA6BT,OA3BK8G,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,sCAAuCjH,GAEpET,EAAQN,EAAKwL,OAAOhB,YAAY3C,KAAMiE,GAAU7R,KAAK+K,SAErDhF,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,OAAQ,UAAWzL,EAAOpC,EAAS,SAAUoD,EAAO8F,GACxF,GAAI4E,KAEJ,OAAI1K,GACKP,EAAGO,IAGZ8F,EAAOA,OAAOkB,KAAKjI,QAAQ,SAAU4L,GACnC,GAAIC,GAAc,GAAIR,GAAe1L,EAAMiM,EAAI9D,IAAK8D,EAAI7D,QAExD8D,GAAYjR,QAAUgR,EAAIE,SAE1BH,EAAUtR,KAAKwR,SAGjBnL,GAAG,MAAQqL,MAAOhF,EAAOA,OAAOgF,MAAOJ,UAAWA,OAG7C/R,MAeT+I,EAAqBrI,UAAU0R,MAAQ,SAAUP,EAAS5N,EAAS6C,GACjE,GACET,EAmBF,OAjBKS,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAKuR,OAAOxD,iBAAiB,6BAA8BjH,GAE3DT,EAAQrG,KAAKuR,OAAOhB,YAAY3C,KAAMiE,GAAU7R,KAAK+K,SAErD/K,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,OAAQ,SAAUzL,EAAOpC,EAAS,SAAUoD,EAAO8F,GACvF,MAAI9F,GACKP,EAAGO,OAGZP,GAAG,KAAMqG,EAAOA,OAAOiF,SAGlBpS,MAYT+I,EAAqBrI,UAAU2R,OAAS,SAAUpO,EAAS6C,GACzD,GAAI0H,KAUJ,OARK1H,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOxO,KAAKuR,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SACzC/K,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,oBAAqBtD,EAAMvK,EAAS6C,GAE5E9G,MAmBT+I,EAAqBrI,UAAU4R,eAAiB,SAAUxD,EAAIyD,EAAUtO,EAAS6C,GAC/E,GACEf,GAAO/F,KACPwO,KACApH,EAAS,QA8CX,OA5CI0H,IAAoB,gBAAPA,KACfhI,EAAK7C,EACLA,EAAUsO,EACVA,EAAWzD,EACXA,EAAK,MAGFhI,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGRsO,YAAoBd,GACtBjD,EAAO+D,EAASC,YAEhBhE,EAAKZ,KAAO2E,EAGVtO,IACFmD,EAASnD,EAAQwO,cAAgB,kBAAoB,UAGnD3D,IACFN,EAAKN,IAAMY,GAGbN,EAAOzI,EAAKwL,OAAOhB,WAAW/B,EAAMzI,EAAKgF,SAErCjE,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GACpF,GAAIkF,EAEJ,OAAInF,GACK/F,EAAG+F,IAGZmF,EAAM,GAAIP,GAAe1L,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,SAC1D6D,EAAIhR,QAAU8L,EAAIK,OAAO+E,aACzBpL,GAAG,KAAMkL,MAGXjM,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS1K,GAASoH,EAAMvK,GAGzDjE,MAmBT+I,EAAqBrI,UAAUgS,eAAiB,SAAUjD,EAAKxL,EAAS6C,GACtE,GACEM,GACAoH,IAEiB,iBAARiB,IACTjB,EAAKN,IAAMuB,EACXrI,EAAS,WAEToH,EAAKZ,KAAO6B,EACZrI,EAAS,iBAGNN,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOxO,KAAKuR,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SAErCjE,EACF9G,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GACpF,MAAID,GACK/F,EAAG+F,QAGG,WAAXzF,EACFN,EAAG,MAAOgG,EAAIK,OAAOe,MAErBpH,EAAG,KAAMgG,EAAIK,OAAOwF,QAIxB3S,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS1K,GAASoH,EAAMvK,IAYlE8E,EAAqBrI,UAAUkS,cAAgB,SAAUC,EAAY5O,EAAS6C,GAC5E,GACE0H,IAAQN,IAAK2E,GACb9M,EAAO/F,IAsBT,OApBK8G,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,6BAA8BjH,GAC3D0H,EAAOzI,EAAKwL,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SAEzChF,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,OAAQ,OAAQtD,EAAMvK,EAAS,SAAU4I,EAAKC,GAClF,GAAIyF,EAEJ,OAAI1F,GACK/F,EAAG+F,IAGZ0F,EAAW,GAAId,GAAe1L,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,SAC/DoE,EAASvR,QAAU8L,EAAIK,OAAO+E,aAC9BpL,GAAG,KAAMyL,MAGJvS,MAUT+I,EAAqBrI,UAAUoS,kBAAoB,SAAU7O,EAAS6C,GACpE,GAAI+K,KAsBJ,OApBK/K,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAIRA,IACEA,EAAQ8O,OACVlB,EAAQkB,KAAO9O,EAAQ8O,MAGrB9O,EAAQ+O,OACVnB,EAAQmB,KAAO/O,EAAQ+O,OAI3BhT,KAAKuR,OAAOxD,iBAAiB,gCAAiCjH,GAE9D9G,KAAK4R,eAAeC,EAAS5N,EAAS6C,GAE/B9G,MAWT+I,EAAqBrI,UAAUuS,WAAa,SAAUhP,EAAS6C,GAC7D,GAAIoM,EAYJ,OAVKpM,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAKuR,OAAOxD,iBAAiB,kCAAmCjH,GAEhEoM,EAAgB,GAAIxB,GAAkB1R,MACtCkT,EAAcC,QAAQlP,EAAS6C,GAExB9G,MAcT+I,EAAqBrI,UAAU0S,eAAiB,SAAUb,EAAUtO,GAClE,GAAIuK,KAWJ,OATI+D,aAAoBd,GACtBjD,EAAO+D,EAASC,YAEhBhE,EAAKZ,KAAO2E,EAGd/D,EAAOxO,KAAKuR,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SACzC/K,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,WAAYtD,EAAMvK,GAE1DjE,MAgBT+I,EAAqBrI,UAAU2S,gBAAkB,SAAUR,EAAYtE,EAAStK,EAAS6C,GACvF,GACEf,GAAO/F,KACPwO,GACEN,IAAK2E,EACLjF,KAAMW,EA0BV,OAvBKzH,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOzI,EAAKwL,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SAErCjE,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,mBAAoBtD,EAAMvK,EAAS,SAAU4I,EAAKC,GAC/F,GAAIyF,EAEJ,OAAI1F,GACK/F,EAAG+F,IAGZ0F,EAAW,GAAId,GAAe1L,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,SAC/DoE,EAASvR,QAAU8L,EAAIK,OAAO+E,aAC9BpL,GAAG,KAAMyL,MAGXxM,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,mBAAoBtD,EAAMvK,GAGpEjE,MAYT+I,EAAqBrI,UAAU4S,UAAY,SAAUzB,EAAS5N,EAAS6C,GACrE,GAAIyM,EAWJ,OATKzM,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAKuR,OAAOxD,iBAAiB,iCAAkCjH,GAE/DyM,EAAO,GAAI5B,GAAW3R,KAAMiE,GAErBsP,EAAK1K,MAAMgJ,EAAS/K,IAW7BiC,EAAqBrI,UAAU8S,SAAW,SAAUvP,EAAS6C,GAC3D,GAAI0H,KAUJ,OARK1H,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOxO,KAAKuR,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SACzC/K,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,sBAAuBtD,EAAMvK,EAAS6C,GAE9E9G,MAiBT+I,EAAqBrI,UAAU+S,eAAiB,SAAUZ,EAAYtE,EAAStK,EAAS6C,GACtF,GACE0H,IACEN,IAAK2E,EACLjF,KAAMW,GAERxI,EAAO/F,IAuBT,OArBK8G,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOzI,EAAKwL,OAAOhB,WAAW/B,EAAMxO,KAAK+K,SAErCjE,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,UAAWtD,EAAMvK,EAAS,SAAU4I,EAAKC,GACtF,GAAIkF,EACJ,OAAInF,GACK/F,EAAG+F,IAGZmF,EAAM,GAAIP,GAAe1L,EAAM+G,EAAIK,OAAOe,SAC1C8D,GAAImB,QAAQrM,MAGdf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,QAAS,UAAWtD,EAAMvK,GAG3D8B,GAYTgD,EAAqBrI,UAAUgT,gBAAkB,SAAU5E,EAAIP,GAC7D,MAAO,IAAIkD,GAAezR,KAAM8O,EAAIP,IAUtCxF,EAAqBrI,UAAUiT,YAAc,SAAU1P,GACrD,MAAO,IAAI0N,GAAW3R,KAAMiE,IAU9B8E,EAAqBrI,UAAUkT,mBAAqB,SAAUC,GAC5D,MAAO,IAAInC,GAAkB1R,KAAM6T,IAYrC9K,EAAqBrI,UAAUkQ,WAAa,SAAUrC,EAAS7K,GAE7D,MADA1D,MAAKuR,OAAOX,WAAW/R,KAAKmB,KAAMuO,EAAS7K,GACpC1D,MAGThB,EAAOJ,QAAUmK,IAEd+K,sBAAsB,EAAEC,mBAAmB,EAAEC,eAAe,IAAIC,GAAG,SAAS3V,EAAQU,EAAOJ,GAsB9F,QAAS8S,GAAkBwC,EAAsBL,GAwB/C,MAvBArM,QAAO6B,iBAAiBrJ,MAEtBqP,YACE9F,MAAO2K,EACPzJ,YAAY,GAEd8G,QACEhI,MAAO2K,EAAqB3C,OAC5B9G,YAAY,GAGdM,SACExB,MAAO8D,KAAKhK,MAAMgK,KAAKC,UAAU4G,EAAqBnJ,UACtDN,YAAY,EACZjB,UAAU,GAEZqK,SACEtK,MAAOsK,MACPpJ,YAAY,EACZjB,UAAU,KAIVxJ,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIqF,IAAa,MAAO,aAExB,OAAOrF,IAAUqF,EAAUnF,QAAQ3K,WAKlC1B,KAST0R,EAAkBhR,UAAUC,MAAQ,SAAUsD,EAAS6C,GACrD,GACEf,GAAO/F,KACPwO,EAAOxO,KAAKuR,OAAOhB,YAAY3C,MAAOuG,WAAYnU,KAAK6T,UAAW7T,KAAK+K,QAezE,OAbKjE,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOlL,MAAMrG,KAAKqP,WAAWyC,eAAe,QAAS,iBAAkBtD,EAAMvK,EAAS,SAAU4I,GACnG,MAAIA,KACK/F,GAAKA,EAAG+F,OAGjB9G,GAAKoN,QAAQlP,EAAS6C,KAGjB9G,MAYT0R,EAAkBhR,UAAUyS,QAAU,SAAUlP,EAAS6C,GACvD,GACEf,GAAO/F,KACPwO,EAAOxO,KAAKuR,OAAOhB,cAAevQ,KAAK+K,QAgCzC,OA9BKjE,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAKuR,OAAOlL,MAAMrG,KAAKqP,WAAWyC,eAAe,QAAS,cAAetD,EAAMvK,EAAS,SAAU4I,EAAKC,GACrG,MAAID,KACK/F,GAAKA,EAAG+F,GAGbC,EAAIK,OAAOpH,EAAKsJ,WAAW/I,OACzBwG,EAAIK,OAAOpH,EAAKsJ,WAAW/I,OAAO8N,SAASrO,EAAKsJ,WAAWA,aAC7DtJ,EAAK8N,QAAU/G,EAAIK,OAAOpH,EAAKsJ,WAAW/I,OAAO8N,SAASrO,EAAKsJ,WAAWA,YAAY8E,WAGjEpN,SAAjBhB,EAAK8N,UACP9N,EAAK8N,iBASP/M,GACFA,EAAG,KAAMf,OAPAe,GAAKA,EAAG,GAAIrI,OAAM,mCAAqCsH,EAAKsJ,WAAWA,eAGzEvI,GAAKA,EAAG,GAAIrI,OAAM,8BAAgCsH,EAAKsJ,WAAW/I,UAQtEtG,MAaT0R,EAAkBhR,UAAU2T,IAAM,SAAUC,EAAOT,GAGjD,MAFA7T,MAAK6T,QAAQS,GAAST,EAEf7T,MAYT0R,EAAkBhR,UAAUkQ,WAAa,SAAUrC,EAAS7K,GAE1D,MADA1D,MAAKuR,OAAOX,WAAW/R,KAAKmB,KAAMuO,EAAS7K,GACpC1D,MAGThB,EAAOJ,QAAU8S,OAEX6C,GAAG,SAASjW,EAAQU,EAAOJ,GAuBjC,QAAS6S,GAAeyC,EAAsBrB,EAAYtE,GA4DxD,MA3DA/G,QAAO6B,iBAAiBrJ,MAEtBqP,YACE9F,MAAO2K,EAAqB7E,WAC5B5E,YAAY,GAEd+J,gBACEjL,MAAO2K,EACPzJ,YAAY,GAEd8G,QACEhI,MAAO2K,EAAqB3C,OAC5B9G,YAAY,GAGdqE,IACEvF,MAAOxC,OACP0D,YAAY,EACZjB,UAAU,GAEZ+E,SACEhF,SACAC,UAAU,EACViB,YAAY,GAEdM,SACExB,MAAO8D,KAAKhK,MAAMgK,KAAKC,UAAU4G,EAAqBnJ,UACtDN,YAAY,EACZjB,UAAU,GAEZxI,SACEuI,MAAOxC,OACP0D,YAAY,EACZjB,UAAU,MAKT+E,GAAWsE,GAAoC,gBAAfA,KACnCtE,EAAUsE,EACVA,EAAa,MAGXtE,IACEA,EAAQ2D,WACVlS,KAAKgB,QAAUuN,EAAQ2D,eAChB3D,GAAQ2D,UAEjBlS,KAAKyU,WAAWlG,GAAS,IAGvBsE,GACFrL,OAAO6D,eAAerL,KAAM,MAC1BuJ,MAAOsJ,EACPpI,YAAY,IAKZzK,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,SAAU,UAAW,OAEtC,OAAOD,IAAUC,EAAUC,QAAQ3K,WAKlC1B,KAQTyR,EAAe/Q,UAAU8R,UAAY,WACnC,GACEhE,KAUF,OARIxO,MAAK8O,KACPN,EAAKN,IAAMlO,KAAK8O,IAGlBN,EAAKZ,KAAO5N,KAAKuO,QACjBC,EAAK0D,SAAWlS,KAAKgB,QACrBwN,EAAOxO,KAAKuR,OAAOhB,WAAW/B,EAAMxO,KAAK+K,UAU3C0G,EAAe/Q,UAAU2E,SAAW,WAClC,MAAOgI,MAAKC,UAAUtN,KAAKwS,cAc7Bf,EAAe/Q,UAAf+Q,UAAkC,SAAUxN,EAAS6C,GACnD,GAAIf,GAAO/F,IAOX,IALK8G,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,OAGP8B,EAAK+I,GACR,KAAM,IAAIrQ,OAAM,wEAGdqI,GACF9G,KAAKuR,OAAOlL,MAAMrG,KAAKwU,eAAe1C,eAAe,QAAS,UAAW9R,KAAKwS,YAAavO,EAAS,SAAU4I,GAC5G,MAAIA,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMf,EAAK+I,MAGhB9O,KAAKuR,OAAOlL,MAAMrG,KAAKwU,eAAe1C,eAAe,QAAS,UAAW9R,KAAKwS,YAAavO,IAW/FwN,EAAe/Q,UAAUyS,QAAU,SAAUlP,EAAS6C,GACpD,GAAIf,GAAO/F,IAOX,IALK8G,GAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,OAGP8B,EAAK+I,GACR,KAAM,IAAIrQ,OAAM,gFAGlBuB,MAAKuR,OAAOxD,iBAAiB,yBAA0BjH,GAEvDf,EAAKwL,OAAOlL,MAAMN,EAAKyO,eAAe1C,eAAe,OAAQ,QAAS5D,IAAKnI,EAAK+I,IAAK7K,EAAS,SAAUoD,EAAOyF,GAC7G,GAAImF,EAEJ,OAAI5K,GACKP,EAAGO,IAGZ4K,EAAc,GAAIR,GAAe1L,EAAKyO,eAAgBzO,EAAK+I,GAAIhC,EAAIK,OAAOgB,SAC1E8D,EAAYjR,QAAU8L,EAAIK,OAAO+E,aAEjCpL,GAAG,KAAMmL,OAmBbR,EAAe/Q,UAAUgU,KAAO,SAAUzQ,EAAS6C,GACjD,GACE0H,GAAOxO,KAAKwS,YACZzM,EAAO/F,IAoBT,OAlBIiE,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOlL,MAAMrG,KAAKwU,eAAe1C,eAAe,QAAS,mBAAoBtD,EAAMvK,EAAS,SAAUoD,EAAOyF,GAChH,MAAIzF,KACKP,GAAKA,EAAGO,IAGjBtB,EAAK+I,GAAKhC,EAAIK,OAAOe,IACrBnI,EAAK/E,QAAU8L,EAAIK,OAAO+E,cAEtBpL,GACFA,EAAG,KAAMf,OAINA,GAaT0L,EAAe/Q,UAAUiU,QAAU,SAAU1Q,GAC3C,GAAIuK,GAAOxO,KAAKwS,WAIhB,OAFAxS,MAAKuR,OAAOlL,MAAMrG,KAAKwU,eAAe1C,eAAe,QAAS,WAAYtD,EAAMvK,GAEzEjE,MAUTyR,EAAe/Q,UAAU+T,WAAa,SAAUjG,EAAM9K,GACpD,GAAIqC,GAAO/F,IAWX,OATI0D,GACF1D,KAAKuO,QAAUC,EAGfhH,OAAOC,KAAK+G,GAAMpI,QAAQ,SAAUsB,GAClC3B,EAAKwI,QAAQ7G,GAAO8G,EAAK9G,KAItB1H,MAUTyR,EAAe/Q,UAAU4S,UAAY,SAAUrP,EAAS6C,GACtD,GAAI+K,EASJ,IAPI5N,IAAY6C,GAAyB,kBAAZ7C,KAC3B6C,EAAK7C,EACLA,EAAU,MAGZjE,KAAKuR,OAAOxD,iBAAiB,2BAA4BjH,IAEpD9G,KAAK8O,GACR,KAAM,IAAIrQ,OAAM,sFAKlB,OAFAoT,IAAYc,KAAOiC,QAAS5U,KAAK8O,MAE1B9O,KAAKwU,eAAelB,UAAUzB,EAAS5N,EAAS6C,IAYzD2K,EAAe/Q,UAAUkQ,WAAa,SAAUrC,EAAS7K,GAEvD,MADA1D,MAAKuR,OAAOX,WAAW/R,KAAKmB,KAAMuO,EAAS7K,GACpC1D,MAIThB,EAAOJ,QAAU6S,OAEXoD,GAAG,SAASvW,EAAQU,EAAOJ,GA+BjC,QAASqK,GAAoBsI,GAiB3B,MAhBA/J,QAAO6B,iBAAiBrJ,MAEtBuR,QACEhI,MAAOgI,EACP9G,YAAY,GAGdM,SACExB,MAAO8D,KAAKhK,MAAMgK,KAAKC,UAAUiE,EAAOxG,UACxCN,YAAY,EACZjB,UAAU,KAIdxJ,KAAK4Q,WAAaW,EAAOX,WAAWkE,KAAK9U,MAErCA,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIqF,IAAa,aAEjB,OAAOrF,IAAUqF,EAAUnF,QAAQ3K,WAKlC1B,MAOT,WAEE,GACE+U,IAAU,KAAM,SAChBC,GAAY,KAAM,QAClBC,GACEC,OAAQH,EACRI,gBACAC,UACAC,UAAW,KAAM,QAAS,OAC1BC,OAAQ,YAAa,UAAWN,GAChCO,QAAS,KAAM,OAASC,UAAW,QAAS,SAC5CC,OAAQT,EAAU,WAClBU,YAAa,SAAU,eACvBC,UACAC,OAAQb,EACRc,KAAMb,GACNc,WACAC,QACAC,QAAShB,GACTiB,QAAS,KAAM,WACfC,UAAW,KAAM,aACjBC,WAEAC,QAAS,KAAM,UACfC,UAAW,KAAM,QAAS,OAC1BC,MAAO,MAAO,QAAS,WACvBC,SAAU,KAAM,SAChBC,SAAU,KAAM,QAAS,SACzBC,OAAQ,KAAM,UACdC,MAAO,KAAM,QAAS,SACtBC,MAAO,WACPlP,MAAQ,WACRmP,YACAC,QAAS,KAAM,OACfC,SAAU,KAAM,WAAY,QAAS,SACrCC,OAAQ,MAAO,QAAS,WACxBC,QAAS,KAAM,QAAS,QACxBC,MAAO,KAAM,QAAS,SACtBC,MAAO,KAAM,MAAO,SACpBC,OAAQ,KAAM,QAAS,QACvBC,MAAO,UACPC,SACAhH,QAAS,aAAc,QACvBiH,SAAU,KAAM,gBAChBC,WAAY,KAAM,aAClBC,OAAQ,MAAO,UAAW,aAC1BC,SAAU,WAAY,YAAa,eACnCC,QACAC,QAAS,KAAM,eAAgB,SAC/BhD,SAAU,UAAW,WACrBiD,aACAC,QAAS,KAAM,UACfC,UAAW,KAAM,UACjBC,SAAU,KAAM,MAAO,WACvBC,WAAY,SAAU,eACtBC,MAAO,MAAO,SAAU,YACxBvD,QACAL,KAAM,KAAM,SAAUmB,UAAU,KAAM,KAAM,KAAM,QAClD0C,YAAa,cAAelD,GAC5BmD,QAAS,KAAM,SAAU,SACzBC,OAAQ,KAAM,UAAW,SACzBC,UAAW,KAAM,SAAU,SAC3BC,aAAc,cAAetD;AAC7BuD,WAAY,KAAM,UAClBC,OAAQ,KAAM,cAAe,UAC7BC,MAAO,MAAOjD,UAAU,KAAM,SAAU,QAAS,MAAO,YAAa,QAAS,WAC9EkD,MAAO,KAAM,SACbC,MAAO,MAAO,SAAU,YACxBC,aAAc,cAAe5D,GAC7B6D,WACAC,MAAO,YAAa,WACpBC,MAAO,MAAOvD,UAAW,KAAM,KAAM,KAAM,OAAQ,QAAS,SAAU,aACtEwD,QAAS,KAAM,MAAO,OACtBC,SAAU,KAAM,QAAS,UACzBC,aAAc,cAAelE,GAAWQ,UAAW,SAAU,UAAW,eACxE2D,WAAY,KAAM,MAAO,OACzBC,QAAS,KAAM,QAAS,QAAS5D,UAAW,gBAC5C6D,aAAc,KAAM,MAAO,OAAQ7D,UAAW,SAAU,WACxD8D,eAAgB,KAAM,MAAO,OAAQ9D,UAAW,aAAc,SAAU,WACxE+D,MAAO,KAAM,UACbC,gBAAiB,KAAM,MAAO,OAC9BC,kBAAmB,KAAM,MAAO,OAChCC,gBAAiB,KAAM,MAAO,OAAQlE,UAAW,SAAU,WAC3DmE,kBAAmB,KAAM,MAAO,OAAQnE,UAAW,aAAc,SAAU,WAC3EoE,UAAW,KAAM,UAIrB3E,GAAS4E,KAAO5E,EAAS6E,IAAM7E,EAAS8E,KAAO9E,EAAS+E,QAAU/E,EAASgF,MAAQhF,EAASiF,KAAOjF,EAASkF,QAAUlF,EAASmF,MAAQnF,EAASoF,KAAOpF,EAASqF,KAAOrF,EAASsF,KAAOtF,EAASuF,QAAUvF,EAASwF,KAAOxF,EAASyF,KAAOzF,EAAS0F,MAAQ1F,EAAS2F,SAAW3F,EAAS4F,OAAS5F,EAAS6F,IAAM7F,EAASvF,KAAOuF,EAAS8F,OAAS,MAGlV9F,EAAS+F,OAAS/F,EAASgG,OAASlG,EAGpCE,EAASY,IAAMZ,EAASe,OAASf,EAASiG,KAAOjG,EAASkG,QAAUlG,EAASmG,MAAQnG,EAASoG,OAASpG,EAASqG,OAASrG,EAASsG,OAASvG,GAE3IC,EAASuG,OAASvG,EAASwG,YAAcxG,EAASW,OAClDX,EAASyG,MAAQzG,EAASQ,MAC1BR,EAAS0G,KAAO1G,EAASsB,QACzBtB,EAAS2G,MAAQ3G,EAASqB,KAC1BrB,EAAS4G,OAAS5G,EAASyB,KAC3BzB,EAAS6G,OAAS7G,EAASmC,KAC3BnC,EAAS8G,MAAQ9G,EAAS8B,MAC1B9B,EAAS+G,aAAe/G,EAASuB,QACjCvB,EAASgH,YAAchH,EAASyD,KAChCzD,EAASiH,UAAYjH,EAASmE,OAC9BnE,EAASkH,OAASlH,EAAS2E,SAE3BpS,OAAOC,KAAKwN,GAAU7O,QAAQ,SAAUgW,GACtCnT,EAAoBvI,UAAU0b,GAAW,WACvC,GAGEtV,GAFAxG,EAAOC,MAAMG,UAAU+K,MAAM5M,KAAK2B,WAClCyD,EAAU,KAEVoC,GACEiC,WAAY,KACZlB,OAAQgV,GAEV5N,IA0CF,OAxCqC,kBAA1BlO,GAAKA,EAAKxB,OAAS,KAC5BgI,EAAKxG,EAAK+b,OAGR/b,EAAKxB,QAA2C,gBAA1BwB,GAAKA,EAAKxB,OAAS,IAAiE,IAA9C0I,OAAOC,KAAKnH,EAAKA,EAAKxB,OAAS,IAAIA,QAAmDiI,SAAnCzG,EAAKA,EAAKxB,OAAS,GAAG+O,WACvI5J,EAAU3D,EAAK+b,OAGjBpH,EAASmH,GAAShW,QAAQ,SAAUkW,EAAG/d,GACrBwI,SAAZzG,EAAK/B,KAILgC,MAAM6H,QAAQkU,KAChBA,EAAI/b,MAAM6H,QAAQ9H,EAAK/B,IAAM+d,EAAE,GAAKA,EAAE,IAG9B,OAANA,EACF9N,EAAKN,IAAM5N,EAAK/B,IAGXiQ,EAAKZ,OACRY,EAAKZ,SAGU,gBAAN0O,IAAiCvV,SAAfuV,EAAE9G,SAC7B8G,EAAE9G,SAASpP,QAAQ,SAAUqJ,GACN1I,SAAjBzG,EAAK/B,GAAGkR,KACVjB,EAAKZ,KAAK6B,GAAOnP,EAAK/B,GAAGkR,MAK7BjB,EAAKZ,KAAK0O,GAAKhc,EAAK/B,OAK1ByB,KAAKuR,OAAOlL,MAAMA,EAAOmI,EAAMvK,EAAS6C,GAEjC9G,WAObhB,EAAOJ,QAAUqK,OAEXsT,GAAG,SAASje,EAAQU,EAAOJ,GAyBjC,QAAS+S,GAAWuC,EAAsBjQ,GAiFxC,MA/EAuD,QAAO6B,iBAAiBrJ,MAEtB8I,UACES,MAAO,KACPC,UAAU,GAEZgT,SACEjT,MAAO,KACPC,UAAU,GAEZsF,IACEvF,MAAO/D,EAAKR,MAEdyX,aACElT,MAAO,KACPC,UAAU,GAEZkT,UACEnT,MAAO,KACPC,UAAU,GAEZpK,OACEmK,SACAC,UAAU,GAGZmT,cACEpT,MAAO,KAETqT,OACErT,MAAOtF,GAAWA,EAAQ2Y,MAAQ3Y,EAAQ2Y,MAAQ,OAEpDtS,OACEf,MAAOtF,GAAWA,EAAQqG,MAAQrG,EAAQqG,MAAQ,QAEpDuS,aACEtT,OAAO,EACPC,UAAU,GAEZsT,OACEvT,MAAOtF,GAAWA,EAAQ6Y,MAAQ7Y,EAAQ6Y,MAAQ,QAGpDzN,YACE9F,MAAO2K,EACPzJ,YAAY,GAEd8G,QACEhI,MAAO2K,EAAqB3C,OAC5B9G,YAAY,GAGdoH,SACEtI,MAAO,KACPkB,YAAY,EACZjB,UAAU,GAEZuB,SACExB,MAAO8D,KAAKhK,MAAMgK,KAAKC,UAAU4G,EAAqBnJ,UACtDN,YAAY,EACZjB,UAAU,GAEZwB,UACEzB,MAAQtF,GAAWA,EAAQ+G,SAAY/G,EAAQ+G,YAC/CP,YAAY,EACZjB,UAAU,GAEZd,QACEa,MAAO,KACPkB,YAAY,EACZjB,UAAU,GAEZuT,iBACExT,OAAOtF,GAA8C,iBAA5BA,GAAQ8Y,iBAAgC9Y,EAAQ8Y,gBACzEtS,YAAY,EACZjB,UAAU,KAIVxJ,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,QAEjB,OAAOD,IAAUC,EAAUC,QAAQ3K,WAKlC1B,KA8LT,QAASgd,GAAsBxO,GAC7B,MAAIA,GAAKnH,MACArH,KAAK8I,SAAS0F,EAAKnH,OAGR,oBAAhBmH,EAAKpH,QACPpH,KAAKuR,OAAOvK,SAAWD,OAChB/G,KAAKuR,OAAO7K,UAAU,yBAG3B1G,KAAKuR,OAAOhK,eAAeiH,EAAKtH,YAC9BlH,KAAK+c,iBACP/c,KAAK8I,SAAS,KAAM0F,SAEfxO,MAAKuR,OAAOhK,eAAeiH,EAAKtH,YAEvClH,KAAK8I,SAAS,KAAM0F,IAQxB,QAAS7G,KAGP,IAFA,GAAIsV,GAEGjd,KAAKZ,MAAMN,OAAS,GACzBme,EAAUjd,KAAKZ,MAAM2I,QAErB/H,KAAKid,EAAQ7V,QAAQzG,MAAMX,KAAMid,EAAQ3c,MAI7C,QAAS4c,KACP,MAA0B,cAAtBld,KAAKuR,OAAOjH,QAAyBtK,KAAK6c,YArVhD,GACErX,GAAOlH,EAAQ,YA2HjBqT,GAAWjR,UAAU0R,MAAQ,SAAUtL,GACrC,GAAI0H,EAMJ,IAJAxO,KAAKuR,OAAOxD,iBAAiB,mBAAoBjH,GAEjD0H,EAAOxO,KAAKuR,OAAOhB,YAAY3C,MAAOlF,OAAQ1I,KAAK0I,SAAU1I,KAAK+K,UAE7DmS,EAAQre,KAAKmB,MAEhB,MADAA,MAAKZ,MAAMqB,MAAM2G,OAAQ,QAAS9G,MAAOwG,KAClC9G,IAGT,KAAKA,KAAK0I,OACR,KAAM,IAAIjK,OAAM,mEAWlB,OARAuB,MAAKuR,OAAOlL,MAAMrG,KAAKqP,WAAWyC,eAAe,YAAa,SAAUtD,EAAM,SAAU3B,EAAKC,GAC3F,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOiF,SAGfpS,MAST2R,EAAWjR,UAAUmI,MAAQ,SAAUgJ,EAAS/K,GAC9C,GACEd,GAAM1B,KAAK0B,MACXmX,GACEP,MAAO5c,KAAK4c,MACZtS,MAAOtK,KAAKsK,MACZwS,MAAO9c,KAAK8c,OAEd/W,EAAO/F,IAYT,QAVK8G,GAAM+K,GAA8B,kBAAZA,KAC3B/K,EAAK+K,EACLA,EAAU,MAGZ9L,EAAKwL,OAAOxD,iBAAiB,mBAAoBjH,GAK7Cf,EAAK0W,aAAgBzW,EAAMD,EAAK0W,aAAgB1W,EAAK4W,aAChD5W,GAGL8L,IACF9L,EAAK8L,QAAUA,GAOS,cAAtB9L,EAAKwL,OAAOjH,OACdvE,EAAK+C,SAAWhC,EAChBf,EAAKwL,OAAO9I,cAAc8B,QAAQxE,EAAK+I,IAAM/I,EACtCA,GAGLA,EAAK8W,aACP9W,EAAK3G,MAAMqB,MAAM2G,OAAQ,QAAS9G,MAAOuR,EAAS/K,KAC3Cf,IAGTA,EAAKqX,cACLrX,EAAK2C,OAAS,KACd3C,EAAK8W,aAAc,EACnB9W,EAAK+C,SAAWhC,EAChBf,EAAKwL,OAAO9I,cAAc8B,QAAQxE,EAAK+I,IAAM/I,EAE7CoX,EAAevP,KAAO7H,EAAK8L,QAC3BsL,EAAiBpX,EAAKwL,OAAOhB,WAAW4M,EAAgBnd,KAAK+K,SAE7DhF,EAAKwL,OAAOlL,MAAMN,EAAKsJ,WAAWyC,eAAe,YAAa,MAAOqL,GAAiBnS,SAAUjF,EAAKiF,UAAW,SAAU3D,EAAOF,GAI/H,SAHOpB,GAAKwL,OAAO9I,cAAc8B,QAAQxE,EAAK+I,IAC9C/I,EAAK8W,aAAc,EAEfxV,EAEF,KADAtB,GAAK3G,SACC,GAAIX,OAAM,qCAAuC4I,EAAMC,QAG/DvB,GAAK0W,YAAczW,EACnBD,EAAK2C,OAASvB,EAASgG,OAAOzE,OAC9B3C,EAAKyW,QAAUrV,EAASgG,OAAOqP,QAE1BzW,EAAKwL,OAAO9I,cAAc1C,EAAK2C,UAClC3C,EAAKwL,OAAO9I,cAAc1C,EAAK2C,YAGjC3C,EAAKwL,OAAO9I,cAAc1C,EAAK2C,QAAQ3C,EAAK+I,IAAM/I,EAElDA,EAAK2W,SAAWM,EAAqBlI,KAAK/O,GAC1CA,EAAKwL,OAAOtK,OAAO/F,GAAG6E,EAAKyW,QAASzW,EAAK2W,UAEzC/U,EAAQ9I,KAAKkH,KAGRA,KAYT4L,EAAWjR,UAAU0c,YAAc,WACjC,GAGEC,GAFAtX,EAAO/F,KACPuT,EAAOxN,EAAK2C,MAGd,OAAKwU,GAAQre,KAAKmB,OAKduT,IACFxN,EAAKwL,OAAOtK,OAAO5F,IAAI0E,EAAKyW,QAASxc,KAAK0c,UAEkB,IAAxDlV,OAAOC,KAAK1B,EAAKwL,OAAO9I,cAAc8K,IAAOzU,cACxCiH,GAAKwL,OAAO9I,cAAc8K,GAE6B,IAA1D/L,OAAOC,KAAK1B,EAAKwL,OAAO9I,cAAc8B,SAASzL,OACjDiH,EAAKwL,OAAOlL,MAAMN,EAAKsJ,WAAWyC,eAAe,YAAa,QAASlE,MAAOlF,OAAQ6K,KAEtF8J,EAAWC,YAAY,WACyC,IAA1D9V,OAAOC,KAAK1B,EAAKwL,OAAO9I,cAAc8B,SAASzL,SAC5CiH,EAAKwL,OAAO9I,cAAc8K,IAC7BxN,EAAKwL,OAAOlL,MAAMN,EAAKsJ,WAAWyC,eAAe,YAAa,QAASlE,MAAOlF,OAAQ6K,KAExFgK,cAAcF,KAEf,YAGEtX,GAAKwL,OAAO9I,cAAc8K,GAAMxN,EAAK+I,IAG9C/I,EAAK2C,OAAS,MAGT3C,IA7BLA,EAAK3G,MAAMqB,MAAM2G,OAAQ,cAAe9G,UACjCyF,IAwCX4L,EAAWjR,UAAUkQ,WAAa,SAAUrC,EAAS7K,GAEnD,MADA1D,MAAKuR,OAAOX,WAAW/R,KAAKmB,KAAMuO,EAAS7K,GACpC1D,MAmDThB,EAAOJ,QAAU+S,IAEdP,YAAY,IAAIoM,GAAG,SAASlf,EAAQU,EAAOJ,GAK9C,QAAS6e,GAAcC,EAAgB5O,EAAIP,GA2BzC,GAzBAoP,EAAuB9e,KAAKmB,KAAM0d,EAAgB5O,EAAIP,GAGtD/G,OAAO6B,iBAAiBrJ,MAEtB4d,kBACErU,MAAO,iBAETsU,kBACEtU,MAAO,mBAKPgF,GAAWA,EAAQuP,QACrBvP,EAAQuP,MAAQvP,EAAQuP,MAAMC,IAAI,SAAUC,GAC1C,MAAKA,GAAK9P,KAAQ8P,EAAK7P,QAIhB,GAAI8P,GAAWP,EAAgBM,EAAK9P,IAAK8P,EAAK7P,SAH5C6P,KAQTN,EAAenM,OAAOzF,SACxB,MAAO4R,GAAenM,OAAOzF,SAASC,aAAa/L,MACjDgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,UAAW,OAE5B,OAAOD,IAAUC,EAAUC,QAAQ3K,WArC3C,GACEic,GAAyBrf,EAAQ,4BACjC2f,EAAa3f,EAAQ,eA0CvBmf,GAAc/c,UAAY8G,OAAO6K,OAAOsL,EAAuBjd,WAC7Dwd,aACE3U,MAAOkU,KAWXA,EAAc/c,UAAUgU,KAAO,SAAUzQ,EAAS6C,GAChD,GACE0H,GACAzI,EAAO/F,IAET,KAAKA,KAAKuO,QAAQuP,MAChB,KAAM,IAAIrf,OAAM,qHAoBlB,OAjBIwF,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAOxO,KAAKwS,YAEZzM,EAAKwL,OAAOlL,MAAMN,EAAK2X,eAAe5L,eAAe,0BAA2BtD,EAAMvK,EAAS,SAAUoD,GACvG,MAAIA,KACKP,GAAKA,EAAGO,QAGbP,GACFA,EAAG,KAAMf,MAINA,GAUT0X,EAAc/c,UAAUyd,QAAU,SAAUH,GAE1C,GAAoB,gBAATA,MAAuBA,YAAgBC,IAChD,KAAM,IAAIxf,OAAM,wDASlB,OANKuB,MAAKuO,QAAQuP,QAChB9d,KAAKuO,QAAQuP,UAGf9d,KAAKuO,QAAQuP,MAAMrd,KAAKud,GAEjBhe,MASTyd,EAAc/c,UAAU0d,SAAW,SAAUN,GAE3C,IAAKvd,MAAM6H,QAAQ0V,GACjB,KAAM,IAAIrf,OAAM,yEAWlB,OARAqf,GAAMC,IAAI,SAAUC,GAClB,GAAoB,gBAATA,MAAuBA,YAAgBC,IAChD,KAAM,IAAIxf,OAAM,4EAIpBuB,KAAKuO,QAAQuP,MAAQA,EAEd9d,MAWTyd,EAAc/c,UAAU2d,QAAU,SAAUpa,EAAS6C,GAEnD,GACEf,GAAO/F,KACPwO,GAAQmE,OAEVnE,GAAKmE,IAAM3S,KAAKuO,QAAQuP,MAAMC,IAAI,SAAUC,GAC1C,MAAoB,gBAATA,GACFA,EAGLA,YAAgBC,GACXD,EAAKlP,GADd,SAKE7K,GAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,wBAAyBjH,GAEtDf,EAAKwL,OAAOlL,MAAMN,EAAK2X,eAAe5L,eAAe,cAAelE,KAAMY,GAAOvK,EAAS,SAAUoD,EAAOF,GACzG,MAAIE,GACKP,EAAGO,OAGZP,GAAG,KAAM,GAAI2W,GAAc1X,EAAMA,EAAK+I,IAAKgP,MAAO3W,EAASgG,OAAOkB,WAStEoP,EAAc/c,UAAU8R,UAAY,WAClC,GACEhE,KAOF,OALIxO,MAAK8O,KACPN,EAAKN,IAAMlO,KAAK8O,IAGlBN,EAAKZ,KAAO5N,KAAKuO,QACZC,EAAKZ,KAAKkQ,OAAUvd,MAAM6H,QAAQoG,EAAKZ,KAAKkQ,QAIjDtP,EAAKZ,KAAKkQ,MAAQtP,EAAKZ,KAAKkQ,MAAMC,IAAI,SAASC,GAC7C,MAAIA,aAAgBC,GACXD,EAAKlP,GAGPkP,IAGFxP,GAXEA,GAoBXiP,EAAc/c,UAAU4d,SAAW,WACjC,MAAOte,MAAKuO,QAAQuP,OAGtB9e,EAAOJ,QAAU6e,IAEdc,eAAe,GAAGC,2BAA2B,KAAKC,IAAI,SAASngB,EAAQU,EAAOJ,GAGjF,QAASqf,GAAWP,EAAgB5O,EAAIP,GAgBtC,GAdAoP,EAAuB9e,KAAKmB,KAAM0d,EAAgB5O,EAAIP,GAGtD/G,OAAO6B,iBAAiBrJ,MAEtB4d,kBACErU,MAAO,cAETsU,kBACEtU,MAAO,gBAKPmU,EAAenM,OAAOzF,SACxB,MAAO4R,GAAenM,OAAOzF,SAASC,aAAa/L,MACjDgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,OAEjB,OAAOD,IAAUC,EAAUC,QAAQ3K,WAxB3C,GAAIic,GAAyBrf,EAAQ,2BA+BrC2f,GAAWvd,UAAY8G,OAAO6K,OAAOsL,EAAuBjd,WAC1Dwd,aACE3U,MAAO0U,KAcXA,EAAWvd,UAAUgU,KAAO,SAAUzQ,EAAS6C,GAC7C,GACE0H,GAAOxO,KAAKwS,YACZzM,EAAO/F,IAELiE,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOlL,MAAMrG,KAAK0d,eAAe5L,eAAe,uBAAwBtD,EAAMvK,EAAS,SAAUoD,GACpG,MAAIA,KACKP,GAAKA,EAAGO,QAGbP,GACFA,EAAG,KAAMf,OAKf/G,EAAOJ,QAAUqf,IACdO,2BAA2B,KAAKE,IAAI,SAASpgB,EAAQU,EAAOJ,GAa/D,QAASoK,GAAeuI,GAetB,MAbA/J,QAAO6D,eAAerL,KAAM,UAC1BuJ,MAAOgI,IAGT/J,OAAO6D,eAAerL,KAAM,kBAC1BuJ,MAAO,SAAUnC,GACf,OACEkB,WAAY,WACZlB,OAAQA,MAKVpH,KAAKuR,OAAOzF,SACP9L,KAAKuR,OAAOzF,SAASC,aAAa/L,MACvCgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIqF,IAAa,cAAe,iBAAkB,cAAe,kBAEjE,OAAOrF,IAAUqF,EAAUnF,QAAQ3K,WAKlC1B,KAtCT,GACEie,GAAa3f,EAAQ,gBACrBmf,EAAgBnf,EAAQ,mBACxB4K,EAAa5K,EAAQ,eA8CvB0K,GAAetI,UAAUie,QAAU,SAAU7P,EAAI7K,EAAS6C,GACxD,GACE0H,GACAzI,EAAO/F,IAET,KAAK8O,EACH,KAAM,IAAIrQ,OAAM,iDAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,GAAQN,IAAKY,GAEb/I,EAAKwL,OAAOxD,iBAAiB,yBAA0BjH,GAEvDf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,WAAYtD,EAAMvK,EAAS,SAAU4I,EAAK1F,GAC9E,MAAI0F,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAM,GAAImX,GAAWlY,EAAMoB,EAASgG,OAAOe,IAAK/G,EAASgG,OAAOgB,aAgBvEnF,EAAetI,UAAUke,YAAc,SAAU/M,EAAS5N,EAAS6C,GACjE,GACEf,GAAO/F,IAEJ8G,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,6BAA8BjH,GAE3Df,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,gBAAiBlE,KAAMiE,GAAU5N,EAAS,SAAUoD,EAAO8F,GAC/F,GAAI4E,EAEJ,OAAI1K,GACKP,EAAGO,IAGZ0K,EAAY5E,EAAOA,OAAOkB,KAAK0P,IAAI,SAAU/L,GAC3C,MAAO,IAAIiM,GAAWlY,EAAMiM,EAAI9D,IAAK8D,EAAI7D,eAG3CrH,GAAG,MAAQqL,MAAOhF,EAAOA,OAAOgF,MAAO2L,MAAO/L,QAiBlD/I,EAAetI,UAAUme,WAAa,SAAU/P,EAAIP,EAAStK,EAAS6C,GACpE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,YAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,oEAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERtK,IACFmD,EAASnD,EAAQ6a,eAAiB,sBAAwB,cAGxDhY,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GAC3E,GAAIkF,EAEJ,OAAInF,GACK/F,EAAG+F,IAGZmF,EAAM,GAAIiM,GAAWlY,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,aACtDrH,GAAG,KAAMkL,MAGXjM,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,IAanDxF,EAAetI,UAAUqe,WAAa,SAAUjQ,EAAIP,EAAStK,EAAS6C,GACpE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,YAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,oEAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERzH,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,EAAS,SAAU4I,GACtE,MAAIA,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAM,GAAImX,GAAWlY,EAAM+I,EAAIP,MAGpCxI,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,IAgBnDxF,EAAetI,UAAUse,WAAa,SAAUlQ,EAAI7K,EAAS6C,GAC3D,GAAI0H,IAAQN,IAAKY,EAEZhI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGR6C,EACF9G,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,cAAetD,EAAMvK,EAAS,SAAU4I,EAAKC,GACjF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOe,OAGtBlO,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,cAAetD,EAAMvK,IAY/D+E,EAAetI,UAAUue,YAAc,SAASnQ,EAAIP,GAClD,MAAO,IAAI0P,GAAWje,KAAM8O,EAAIP,IAelCvF,EAAetI,UAAUwe,WAAa,SAAUpQ,EAAI7K,EAAS6C,GAC3D,GACE0H,GACAzI,EAAO/F,KACPqe,GAAU,CAEZ,KAAKvP,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,oDAGbqI,IAAyB,kBAAZ7C,GAIW8C,SAApB9C,EAAQoa,UACfA,EAAUpa,EAAQoa,UAJlBvX,EAAK7C,EACLA,EAAU,MAMZuK,GAAQN,IAAKY,GAEb/I,EAAKwL,OAAOxD,iBAAiB,4BAA6BjH,GAE1Df,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,cAAetD,EAAMvK,EAAS,SAAUoD,EAAOF,GACnF,MAAIE,GACKP,EAAGO,IAGPgX,IACHlX,EAASgG,OAAOgB,QAAQ2P,MAAQ3W,EAASgG,OAAOgB,QAAQ2P,MAAMC,IAAI,SAAUC,GAC1E,GAAImB,IAAiBjR,IAAK8P,EAAK9P,IAQ/B,OAPkCnH,UAA9BiX,EAAK7P,QAAQiR,eACfD,EAAcC,aAAepB,EAAK7P,QAAQiR,cAEJrY,SAApCiX,EAAK7P,QAAQkR,qBACfF,EAAcE,mBAAqBrB,EAAK7P,QAAQkR,oBAG3CF,SAIXrY,GAAG,KAAM,GAAI2W,GAAc1X,EAAMoB,EAASgG,OAAOe,IAAK/G,EAASgG,OAAOgB,cAoB1EnF,EAAetI,UAAU4e,eAAiB,SAAUzN,EAAS5N,EAAS6C,GACpE,GACEf,GAAO/F,IAET6R,GAAQwM,SAAU,EAEbvX,GAAyB,kBAAZ7C,GAIW8C,SAApB9C,EAAQoa,UACfxM,EAAQwM,QAAUpa,EAAQoa,UAJ1BvX,EAAK7C,EACLA,EAAU,MAMZ8B,EAAKwL,OAAOxD,iBAAiB,gCAAiCjH,GAE9Df,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,mBAAoBlE,KAAMiE,GAAU5N,EAAS,SAAUoD,EAAOF,GAClG,GAAI4K,EAEJ,OAAI1K,GACKP,EAAGO,IAGZ0K,EAAY5K,EAASgG,OAAOkB,KAAK0P,IAAI,SAAU/L,GAC7C,MAAO,IAAIyL,GAAc1X,EAAMiM,EAAI9D,IAAK8D,EAAI7D,eAG9CrH,GAAG,MAAQqL,MAAOhL,EAASgG,OAAOgF,MAAOoN,SAAUxN,QAiBvD/I,EAAetI,UAAU8e,cAAgB,SAAU1Q,EAAIP,EAAStK,EAAS6C,GACvE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,eAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,6EAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERtK,IACFmD,EAASnD,EAAQ6a,eAAiB,yBAA2B,iBAG3DhY,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GAC3E,GAAIkF,EAEJ,OAAInF,GACK/F,EAAG+F,IAGZmF,EAAM,GAAIyL,GAAc1X,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,aACzDrH,GAAG,KAAMkL,MAGXjM,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,IAanDxF,EAAetI,UAAU+e,cAAgB,SAAU3Q,EAAIP,EAAStK,EAAS6C,GACvE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,eAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,6EAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERzH,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GAC3E,GAAI4S,KAEJ,OAAI7S,GACK/F,EAAG+F,IAGZrF,OAAOC,KAAKqF,EAAIK,OAAOgB,SAAS/H,QAAQ,SAAUuZ,GAC/B,UAAbA,IACFD,EAAeC,GAAY7S,EAAIK,OAAOgB,QAAQwR,MAIlDD,EAAe5B,MAAQhR,EAAIK,OAAOgB,QAAQ2P,MAAMC,IAAI,SAAUC,GAC5D,MAAOA,GAAK9P,UAGdpH,GAAG,KAAM,GAAI2W,GAAc1X,EAAM+G,EAAIK,OAAOe,IAAKwR,OAGnD3Z,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,IAgBnDxF,EAAetI,UAAUkf,cAAgB,SAAU9Q,EAAI7K,EAAS6C,GAC9D,GAAI0H,IAAQN,IAAKY,EAEZhI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGR6C,EACF9G,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,iBAAkBtD,EAAMvK,EAAS,SAAU4I,EAAKC,GACpF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOe,OAGtBlO,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,iBAAkBtD,EAAMvK,IAYlE+E,EAAetI,UAAUmf,eAAiB,SAAS/Q,EAAIP,GACrD,MAAO,IAAIkP,GAAczd,KAAM8O,EAAIP,IAcrCvF,EAAetI,UAAUof,QAAU,SAAUhR,EAAI7K,EAAS6C,GACxD,GACE0H,GACAzI,EAAO/F,KACPqe,GAAU,CAEZ,KAAKvP,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,iDAGbqI,IAAyB,kBAAZ7C,GAIW8C,SAApB9C,EAAQoa,UACfA,EAAUpa,EAAQoa,UAJlBvX,EAAK7C,EACLA,EAAU,MAMZuK,GAAQN,IAAKY,GAEb/I,EAAKwL,OAAOxD,iBAAiB,yBAA0BjH,GAEvDf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,WAAYtD,EAAMvK,EAAS,SAAU4I,EAAK1F,GAC9E,MAAI0F,GACK/F,EAAG+F,IAGPwR,IACHlX,EAASgG,OAAOgB,QAAQ4R,QAAU5Y,EAASgG,OAAOgB,QAAQ4R,QAAQ7R,SAGpEpH,GAAG,KAAM,GAAIoC,GAAWnD,EAAMoB,EAASgG,OAAOe,IAAK/G,EAASgG,OAAOgB,cAoBvEnF,EAAetI,UAAUsf,YAAc,SAAUnO,EAAS5N,EAAS6C,GACjE,GACEf,GAAO/F,IAET6R,GAAQwM,SAAU,EAEbvX,GAAyB,kBAAZ7C,GAIW8C,SAApB9C,EAAQoa,UACfxM,EAAQwM,QAAUpa,EAAQoa,UAJ1BvX,EAAK7C,EACLA,EAAU,MAMZ8B,EAAKwL,OAAOxD,iBAAiB,6BAA8BjH,GAE3Df,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe,gBAAiBlE,KAAMiE,GAAU5N,EAAS,SAAUoD,EAAOF,GAC/F,GAAI4K,EAEJ,OAAI1K,GACKP,EAAGO,IAGZ0K,EAAY5K,EAASgG,OAAOkB,KAAK0P,IAAI,SAAU/L,GAC7C,MAAO,IAAI9I,GAAWnD,EAAMiM,EAAI9D,IAAK8D,EAAI7D,eAG3CrH,GAAG,MAAQqL,MAAOhL,EAASgG,OAAOgF,MAAO2K,MAAO/K,QAiBpD/I,EAAetI,UAAUuf,WAAa,SAAUnR,EAAIP,EAAStK,EAAS6C,GACpE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,YAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,oEAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERtK,IACFmD,EAASnD,EAAQ6a,eAAiB,sBAAwB,cAGxDhY,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAM,KAAM,SAAU3B,EAAKC,GACxE,GAAIkF,EAEJ,OAAInF,GACK/F,EAAG+F,IAGZmF,EAAM,GAAI9I,GAAWnD,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,aACtDrH,GAAG,KAAMkL,MAGXjM,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,IAanDxF,EAAetI,UAAUwf,WAAa,SAAUpR,EAAIP,EAAStK,EAAS6C,GACpE,GACEf,GAAO/F,KACPwO,KACApH,EAAS,YAEX,KAAK0H,GAAoB,gBAAPA,GAChB,KAAM,IAAIrQ,OAAM,sEAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMY,EACXN,EAAKZ,KAAOW,EAERzH,EACFf,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,EAAS,SAAU4I,EAAKC,GAC3E,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAM,GAAIoC,GAAWnD,EAAM+G,EAAIK,OAAOe,IAAKpB,EAAIK,OAAOgB,YAG3DpI,EAAKwL,OAAOlL,MAAMrG,KAAK8R,eAAe1K,GAASoH,EAAMvK,IAgBzD+E,EAAetI,UAAUyf,WAAa,SAAUrR,EAAI7K,EAAS6C,GAC3D,GAAI0H,IAAQN,IAAKY,EAEZhI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGR6C,EACF9G,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,cAAetD,EAAMvK,EAAS,SAAU4I,EAAKC,GACjF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOe,OAGtBlO,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,cAAetD,EAAMvK,IAY/D+E,EAAetI,UAAU0f,YAAc,SAAStR,EAAIP,GAClD,MAAO,IAAIrF,GAAWlJ,KAAM8O,EAAIP,IAmBlCvF,EAAetI,UAAU2f,gBAAkB,SAASC,EAAQhY,EAAYlB,EAAQd,EAAO+I,GACrF,GAAIkR,EAEJ,KAAKD,GAA4B,gBAAXA,GACpB,KAAM,IAAI7hB,OAAM,6DAElB,KAAK6J,GAAoC,gBAAfA,GACxB,KAAM,IAAI7J,OAAM,iEAElB,KAAK2I,GAA4B,gBAAXA,GACpB,KAAM,IAAI3I,OAAM,6DAkBlB,OAdA8hB,GAAiBD,EAAOjY,OAAO,SAAUmY,GACvC,MAAOA,GAAMlY,aAAeA,GAAmC,MAArBkY,EAAMlY,aAEjDD,OAAO,SAAUmY,GAChB,MAAOA,GAAMpZ,SAAWA,GAA2B,MAAjBoZ,EAAMpZ,SAEzCiB,OAAO,SAAUmY,GAChB,MAAOA,GAAMla,QAAUA,GAAyB,MAAhBka,EAAMla,QAEvC+B,OAAO,SAAUmY,GAChB,MAAOA,GAAMnR,aAAeA,GAAmC,MAArBmR,EAAMnR,aAI9CkR,EAAeE,KAAK,SAAUC,GAAQ,MAAsB,YAAfA,EAAKnX,QAC7C,UAGLgX,EAAeE,KAAK,SAAUC,GAAQ,MAAsB,gBAAfA,EAAKnX,QAC7C,cAGF,UAUTP,EAAetI,UAAUigB,cAAgB,SAAUC,EAAQ3c,EAAS6C,GAClE,GACE0H,IAAQN,IAAK0S,GACb7a,EAAO/F,IAET,KAAK4gB,GAA4B,gBAAXA,GACpB,KAAM,IAAIniB,OAAM,6DAGbqI,IAAyB,kBAAZ7C,KAChB6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,uBAAwBjH,GAErD9G,KAAKuR,OAAOlL,MAAMrG,KAAK8R,eAAe,iBAAkBtD,EAAMvK,EAAS,SAAU4I,EAAKC,GACpF,MAAID,GACK/F,EAAG+F,OAGZ/F,GAAG,KAAMgG,EAAIK,OAAOkB,SAIxBrP,EAAOJ,QAAUoK,IAEd6X,kBAAkB,EAAEtC,eAAe,GAAGuC,eAAe,KAAKC,IAAI,SAASziB,EAAQU,EAAOJ,GACzF,QAAS+e,GAAuBD,EAAgB5O,EAAIP,GAElD,IAAKO,EACH,KAAM,IAAIrQ,OAAM,sCA8BlB,IA1BA+I,OAAO6B,iBAAiBrJ,MAEtBuR,QACEhI,MAAOmU,EAAenM,QAExBmM,gBACEnU,MAAOmU,GAIT5O,IACEvF,MAAOuF,EACPrE,YAAY,GAEd8D,SACEhF,SACAC,UAAU,EACViB,YAAY,KAIZ8D,GACFvO,KAAKyU,WAAWlG,GAAS,GAIvBmP,EAAenM,OAAOzF,SACxB,MAAO4R,GAAenM,OAAOzF,SAASC,aAAa/L,MACjDgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,SAAU,SAE3B,OAAOD,IAAUC,EAAUC,QAAQ3K,WAa3Cic,EAAuBjd,UAAU+T,WAAa,SAAUjG,GAEtD,MADAxO,MAAKuO,QAAUC,EACRxO,MAQT2d,EAAuBjd,UAAU8R,UAAY,WAC3C,GACEhE,KAQF,OANIxO,MAAK8O,KACPN,EAAKN,IAAMlO,KAAK8O,IAGlBN,EAAKZ,KAAO5N,KAAKuO,QAEVC,GASTmP,EAAuBjd,UAAvBid,UAA0C,SAAU1Z,EAAS6C,GAC3D,GACEf,GAAO/F,IAELiE,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOlL,MAAMrG,KAAK0d,eAAe5L,eAAe9R,KAAK4d,mBAAoB1P,IAAKlO,KAAK8O,IAAK7K,EAAS,SAAUoD,EAAOyF,GACrH,MAAIzF,KACKP,GAAKA,EAAGO,QAGbP,GACFA,EAAG,KAAMgG,EAAIK,OAAOe,SAY1ByP,EAAuBjd,UAAUsgB,OAAS,SAAUzS,EAAStK,EAAS6C,GACpE,GACE0H,MACAzI,EAAO/F,IAET,IAAuB,gBAAZuO,GACT,KAAM,IAAI9P,OAAM,uCAGdwF,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZuK,EAAKN,IAAMnI,EAAK+I,GAChBN,EAAKZ,KAAOW,EAEZxI,EAAKwL,OAAOlL,MAAMrG,KAAK0d,eAAe5L,eAAe9R,KAAK6d,kBAAmBrP,EAAMvK,EAAS,SAAUoD,EAAOF,GAC3G,MAAIE,KACKP,GAAKA,EAAGO,IAGjBtB,EAAK0O,WAAWtN,EAASgG,OAAOgB,cAE5BrH,GACFA,EAAG,KAAMf,QAKf/G,EAAOJ,QAAU+e,OACXsD,IAAI,SAAS3iB,EAAQU,EAAOJ,GAKlC,QAASsK,GAAWwU,EAAgB5O,EAAIP,GAqBtC,GAnBAoP,EAAuB9e,KAAKmB,KAAM0d,EAAgB5O,EAAIP,GAGlDA,EAAQwR,SAAWxR,EAAQwR,QAAQ7R,KAAOK,EAAQwR,QAAQ5R,UAC5DnO,KAAKuO,QAAQwR,QAAU,GAAItC,GAAcC,EAAgBnP,EAAQwR,QAAQ7R,IAAKK,EAAQwR,QAAQ5R,UAIhG3G,OAAO6B,iBAAiBrJ,MAEtB4d,kBACErU,MAAO,cAETsU,kBACEtU,MAAO,gBAKPmU,EAAenM,OAAOzF,SACxB,MAAO4R,GAAenM,OAAOzF,SAASC,aAAa/L,MACjDgM,OAAQ,UACR3D,OAAQ,SAAU3G,EAAMuK,EAAMC,EAAQC,GACpC,GAAIC,IAAa,UAAW,OAE5B,OAAOD,IAAUC,EAAUC,QAAQ3K,WA/B3C,GACEic,GAAyBrf,EAAQ,4BACjCmf,EAAgBnf,EAAQ,kBAmC1B4K,GAAWxI,UAAY8G,OAAO6K,OAAOsL,EAAuBjd,WAC1Dwd,aACE3U,MAAOL,KAWXA,EAAWxI,UAAU2d,QAAU,SAAUpa,EAAS6C,GAChD,GACEf,GAAO/F,IAST,IAPIiE,GAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOxD,iBAAiB,qBAAsBjH,IAE9C9G,KAAKuO,QAAQwR,SAA2C,gBAAzB/f,MAAKuO,QAAQwR,QAC/C,KAAM,IAAIthB,OAAM,qEAGlBsH,GAAKwL,OAAOlL,MAAMrG,KAAK0d,eAAe5L,eAAe,eAAgB5D,IAAKlO,KAAKuO,QAAQwR,SAAU9b,EAAS,SAAUoD,EAAOF,GACzH,GAAI+Z,EAEJ,OAAI7Z,GACKP,EAAGO,IAGZ6Z,EAAe,GAAIhY,GAAWnD,EAAK2X,eAAgB3X,EAAK+I,GAAI/I,EAAKwI,SACjE2S,EAAaC,WAAW,GAAI1D,GAAc1X,EAAK2X,eAAgBvW,EAASgG,OAAOe,IAAK/G,EAASgG,OAAOgB,cAEpGrH,GAAG,KAAMoa,OAUbhY,EAAWxI,UAAUygB,WAAa,SAAUpB,GAE1C,GAAuB,gBAAZA,MAA0BA,YAAmBtC,IACtD,KAAM,IAAIhf,OAAM,0DAKlB,OAFAuB,MAAKuO,QAAQwR,QAAUA,EAEhB/f,MAcTkJ,EAAWxI,UAAUgU,KAAO,SAAUzQ,EAAS6C,GAC7C,GACE0H,GAAOxO,KAAKwS,YACZzM,EAAO/F,IAiBT,OAfIiE,IAAkB8C,SAAPD,GAAuC,kBAAZ7C,KACxC6C,EAAK7C,EACLA,EAAU,MAGZ8B,EAAKwL,OAAOlL,MAAMrG,KAAK0d,eAAe5L,eAAe,uBAAwBtD,EAAMvK,EAAS,SAAUoD,GACpG,MAAIA,KACKP,GAAKA,EAAGO,QAGbP,GACFA,EAAG,KAAMf,MAINA,GAQTmD,EAAWxI,UAAU8R,UAAY,WAC/B,GACEhE,KAYF,OAVIxO,MAAK8O,KACPN,EAAKN,IAAMlO,KAAK8O,IAGlBN,EAAKZ,KAAO5N,KAAKuO,QAEbC,EAAKZ,KAAKmS,SAAWvR,EAAKZ,KAAKmS,QAAQjR,KACzCN,EAAKZ,KAAKmS,QAAUvR,EAAKZ,KAAKmS,QAAQjR,IAGjCN,GAQTtF,EAAWxI,UAAU0gB,YAAc,WACjC,MAAOphB,MAAKuO,QAAQwR,SAGtB/gB,EAAOJ,QAAUsK,IAEd2X,kBAAkB,EAAErC,2BAA2B,UAAU","file":"kuzzle.min.js"} \ No newline at end of file From 028213ab5acbd5119089bac9c6c6924172463e25 Mon Sep 17 00:00:00 2001 From: scottinet Date: Mon, 11 Jul 2016 11:55:11 +0200 Subject: [PATCH 2/2] added callback to kuzzledatacollection.publishmessage --- dist/kuzzle.js | 41 ++++++------------------------------- dist/kuzzle.min.js | 6 +++--- dist/kuzzle.min.map | 2 +- package.json | 2 +- src/kuzzleDataCollection.js | 5 +++-- 5 files changed, 14 insertions(+), 42 deletions(-) diff --git a/dist/kuzzle.js b/dist/kuzzle.js index 4c8cb4b2a..c67341039 100644 --- a/dist/kuzzle.js +++ b/dist/kuzzle.js @@ -2,40 +2,12 @@ // shim for using process in browser var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -(function () { - try { - cachedSetTimeout = setTimeout; - } catch (e) { - cachedSetTimeout = function () { - throw new Error('setTimeout is not defined'); - } - } - try { - cachedClearTimeout = clearTimeout; - } catch (e) { - cachedClearTimeout = function () { - throw new Error('clearTimeout is not defined'); - } - } -} ()) var queue = []; var draining = false; var currentQueue; var queueIndex = -1; function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } draining = false; if (currentQueue.length) { queue = currentQueue.concat(queue); @@ -51,7 +23,7 @@ function drainQueue() { if (draining) { return; } - var timeout = cachedSetTimeout(cleanUpNextTick); + var timeout = setTimeout(cleanUpNextTick); draining = true; var len = queue.length; @@ -68,7 +40,7 @@ function drainQueue() { } currentQueue = null; draining = false; - cachedClearTimeout(timeout); + clearTimeout(timeout); } process.nextTick = function (fun) { @@ -80,7 +52,7 @@ process.nextTick = function (fun) { } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - cachedSetTimeout(drainQueue, 0); + setTimeout(drainQueue, 0); } }; @@ -120,7 +92,6 @@ process.chdir = function (dir) { process.umask = function() { return 0; }; },{}],2:[function(require,module,exports){ -(function (Buffer){ // uuid.js // // Copyright (c) 2010-2012 Robert Kieffer @@ -394,7 +365,6 @@ process.umask = function() { return 0; }; } })('undefined' !== typeof window ? window : null); -}).call(this,require("buffer").Buffer) },{}],3:[function(require,module,exports){ (function (process){ var @@ -2247,9 +2217,10 @@ KuzzleDataCollection.prototype.getMapping = function (options, cb) { * * @param {object} document - either a KuzzleDocument instance or a JSON object * @param {object} [options] - optional arguments + * @param {responseCallback} [cb] - Returns a raw Kuzzle response * @returns {*} this */ -KuzzleDataCollection.prototype.publishMessage = function (document, options) { +KuzzleDataCollection.prototype.publishMessage = function (document, options, cb) { var data = {}; if (document instanceof KuzzleDocument) { @@ -2259,7 +2230,7 @@ KuzzleDataCollection.prototype.publishMessage = function (document, options) { } data = this.kuzzle.addHeaders(data, this.headers); - this.kuzzle.query(this.buildQueryArgs('write', 'publish'), data, options); + this.kuzzle.query(this.buildQueryArgs('write', 'publish'), data, options, cb); return this; }; diff --git a/dist/kuzzle.min.js b/dist/kuzzle.min.js index fb342991d..5a390daa9 100644 --- a/dist/kuzzle.min.js +++ b/dist/kuzzle.min.js @@ -1,4 +1,4 @@ -// Official Javascript SDK for Kuzzle v1.9.2 - License: Apache-2.0 -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g1)for(var c=1;c>>((3&b)<<3)&255;return e},"undefined"!=typeof console&&console.warn&&console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()")}}function f(){if("function"==typeof a)try{var b=a("crypto").randomBytes;m=k=b&&function(){return b(16)},k()}catch(c){}}function g(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){e<16&&(b[d+e++]=r[a])});e<16;)b[d+e++]=0;return b}function h(a,b){var c=b||0,d=q;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function i(a,b,c){var d=b&&c||0,e=b||[];a=a||{};var f=null!=a.clockseq?a.clockseq:v,g=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:x+1,j=g-w+(i-x)/1e4;if(j<0&&null==a.clockseq&&(f=f+1&16383),(j<0||g>w)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");w=g,x=i,v=f,g+=122192928e5;var k=(1e4*(268435455&g)+i)%4294967296;e[d++]=k>>>24&255,e[d++]=k>>>16&255,e[d++]=k>>>8&255,e[d++]=255&k;var l=g/4294967296*1e4&268435455;e[d++]=l>>>8&255,e[d++]=255&l,e[d++]=l>>>24&15|16,e[d++]=l>>>16&255,e[d++]=f>>>8|128,e[d++]=255&f;for(var m=a.node||u,n=0;n<6;n++)e[d+n]=m[n];return b?b:h(e)}function j(a,b,c){var d=b&&c||0;"string"==typeof a&&(b="binary"===a?new p(16):null,a=null),a=a||{};var e=a.random||(a.rng||k)();if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,b)for(var f=0;f<16;f++)b[d+f]=e[f];return b||h(e)}var k,l,m,n,o;d?e():f();for(var p="function"==typeof c?c:Array,q=[],r={},s=0;s<256;s++)q[s]=(s+256).toString(16).substr(1),r[q[s]]=s;var t=k(),u=[1|t[0],t[1],t[2],t[3],t[4],t[5]],v=16383&(t[6]<<8|t[7]),w=0,x=0,y=j;y.v1=i,y.v4=j,y.parse=g,y.unparse=h,y.BufferClass=p,y._rng=k,y._mathRNG=l,y._nodeRNG=m,y._whatwgRNG=n,"undefined"!=typeof b&&b.exports?b.exports=y:"function"==typeof define&&define.amd?define(function(){return y}):(o=d.uuid,y.noConflict=function(){return d.uuid=o,y},d.uuid=y)}("undefined"!=typeof window?window:null)}).call(this,a("buffer").Buffer)},{}],3:[function(a,b,c){(function(c){function d(){var a=this,b=Date.now(),c=-1;a.queueTTL>0&&(a.offlineQueue.forEach(function(d,e){d.ts0&&a.offlineQueue.length>a.queueMaxSize&&a.offlineQueue.splice(0,a.offlineQueue.length-a.queueMaxSize).forEach(function(b){a.emitEvent("offlineQueuePop",b.query)})}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){"logout"!==a.action&&c.error&&"Token expired"===c.error.message&&(d.jwtToken=void 0,d.emitEvent("jwtTokenExpired",a,b)),b&&b(c.error,c)}),d.socket.emit("kuzzle",a),d.requestHistory[a.requestId]=c,Object.keys(d.requestHistory).forEach(function(a){d.requestHistory[a]0?(e.call(b,b.offlineQueue[0].query,b.offlineQueue[0].cb),b.emitEvent("offlineQueuePop",b.offlineQueue.shift()),setTimeout(function(){d()},Math.max(0,b.replayInterval))):b.queuing=!1};if(b.offlineQueueLoader){if("function"!=typeof b.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof b.offlineQueueLoader);if(a=b.offlineQueueLoader(),!Array.isArray(a))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof a);b.offlineQueue=a.concat(b.offlineQueue).filter(function(a){if(!a.query||void 0===a.query.requestId||!a.query.action||!a.query.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return!c.hasOwnProperty(a.query.requestId)&&(c[a.query.requestId]=!0)})}d()}function g(){var a=this;Object.keys(a.subscriptions).forEach(function(b){Object.keys(a.subscriptions[b]).forEach(function(c){var d=a.subscriptions[b][c];d.renew(d.callback)})})}var h=a("node-uuid"),i=a("./kuzzleDataCollection"),j=a("./security/kuzzleSecurity"),k=a("./kuzzleMemoryStorage"),l=a("./security/kuzzleUser");b.exports=Kuzzle=function(b,d,e){var f=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,d,e);if(e||"function"!=typeof d||(e=d,d=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:e},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,listeners:[]},loginAttempt:{lastEmitted:null,listeners:[]},offlineQueuePush:{listeners:[]},offlineQueuePop:{listeners:[]}}},eventTimeout:{value:200},io:{value:null,writable:!0},queuing:{value:!1,writable:!0},requestHistory:{value:{},writable:!0},socket:{value:null,writable:!0},state:{value:"initializing",writable:!0},subscriptions:{value:{pending:{}},writable:!0},autoReconnect:{value:!d||"boolean"!=typeof d.autoReconnect||d.autoReconnect,enumerable:!0},defaultIndex:{value:d&&"string"==typeof d.defaultIndex?d.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:d&&"number"==typeof d.reconnectionDelay?d.reconnectionDelay:1e3,enumerable:!0},url:{value:b,enumerable:!0},autoQueue:{value:!1,enumerable:!0,writable:!0},autoReplay:{value:!1,enumerable:!0,writable:!0},autoResubscribe:{value:!0,enumerable:!0,writable:!0},headers:{value:{},enumerable:!0,writable:!0},metadata:{value:{},enumerable:!0,writable:!0},offlineQueue:{value:[],enumerable:!0,writable:!0},queueFilter:{value:null,enumerable:!0,writable:!0},queueMaxSize:{value:500,enumerable:!0,writable:!0},queueTTL:{value:12e4,enumerable:!0,writable:!0},replayInterval:{value:10,enumerable:!0,writable:!0},jwtToken:{value:void 0,enumerable:!0,writable:!0},offlineQueueLoader:{value:null,enumerable:!0,writable:!0}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),d&&(Object.keys(d).forEach(function(a){f.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(f,a).writable&&(f[a]=d[a])}),"auto"===d.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===f.state)throw new Error("This Kuzzle object has been invalidated. Did you try to access it after a disconnect call?")}}),Object.defineProperty(this,"addHeaders",{value:function(a,b){return Object.keys(b).forEach(function(c){a[c]||(a[c]=b[c])}),a}}),Object.defineProperty(this,"callbackRequired",{value:function(a,b){if(!b||"function"!=typeof b)throw new Error(a+": a callback argument is required for read queries")}}),Object.defineProperty(this,"security",{value:new j(this),enumerable:!0}),Object.defineProperty(this,"emitEvent",{value:function(a){var b=Date.now(),d=Array.prototype.slice.call(arguments,1),e=this.eventListeners[a];return!(e.lastEmitted&&e.lastEmitted>=b-this.eventTimeout)&&(e.listeners.forEach(function(a){c.nextTick(function(){a.fn.apply(void 0,d)})}),void(void 0!==e.lastEmitted&&(e.lastEmitted=b)))}}),Object.defineProperty(this,"memoryStorage",{value:new k(this),enumerable:!0}),d&&d.connect&&"auto"!==d.connect?this.state="ready":this.connect(),this.bluebird?this.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["getAllStatistics","getServerInfo","getStatistics","listCollections","listIndexes","login","logout","now","query","checkToken","whoAmI"];return d&&e.indexOf(a)!==-1}}):void 0},Kuzzle.prototype.connect=function(){var a=this;return["initializing","ready","disconnected","error","offline"].indexOf(this.state)===-1?(a.connectCB&&a.connectCB(null,a),a):(a.state="connecting",a.socket=a.io(a.url,{reconnection:a.autoReconnect,reconnectionDelay:a.reconnectionDelay,forceNew:!0}),a.socket.once("connect",function(){a.state="connected",g.call(a),f.call(a),a.emitEvent("connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){var c=new Error('Unable to connect to kuzzle server at "'+a.url+'"');c.internal=b,a.state="error",a.emitEvent("error",c),a.connectCB&&a.connectCB(c)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),a.emitEvent("disconnected")}),a.socket.on("reconnect",function(){var b=function(){a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")};a.state="connected",a.jwtToken?a.checkToken(a.jwtToken,function(c,d){!c&&d.valid||(a.jwtToken=void 0,a.emitEvent("jwtTokenExpired")),b()}):b()}),this)},Kuzzle.prototype.setJwtToken=function(a){if("string"==typeof a)this.jwtToken=a;else{if("object"!=typeof a)return this.emitEvent("loginAttempt",{success:!1,error:"Invalid token argument: "+a}),this;if(!a.result||!a.result.jwt||"string"!=typeof a.result.jwt)return this.emitEvent("loginAttempt",{success:!1,error:"Cannot find a valid JWT token in the following object: "+JSON.stringify(a)}),this;this.jwtToken=a.result.jwt}return g.call(this),this.emitEvent("loginAttempt",{success:!0}),this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a){var b,c,d=this,e={strategy:a};return arguments[1]&&("object"==typeof arguments[1]?b=arguments[1]:"number"==typeof arguments[1]||"string"==typeof arguments[1]?e.expiresIn=arguments[1]:"function"==typeof arguments[1]&&(c=arguments[1])),arguments[2]&&("number"==typeof arguments[2]||"string"==typeof arguments[2]?e.expiresIn=arguments[2]:"function"==typeof arguments[2]&&(c=arguments[2])),arguments[3]&&"function"==typeof arguments[3]&&(c=arguments[3]),"object"==typeof b&&Object.keys(b).forEach(function(a){e[a]=b[a]}),this.query({controller:"auth",action:"login"},{body:e},{queuable:!1},function(a,b){a?(c&&"function"==typeof c&&c(a),d.emitEvent("loginAttempt",{success:!1,error:a.message})):(b.result.jwt&&d.setJwtToken(b.result.jwt),c&&"function"==typeof c&&c(null,b.result))}),d},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:h.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{queuable:!1},function(c){null===c?(b.jwtToken=void 0,"function"==typeof a&&a(null,b)):"function"==typeof a&&a(c)}),b},Kuzzle.prototype.checkToken=function(a,b){var c=this,d={body:{token:a}};return this.callbackRequired("Kuzzle.checkToken",b),this.query({controller:"auth",action:"checkToken"},d,{queuable:!1},function(a,c){return a?b(a):void b(null,c.result)}),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return b.callbackRequired("Kuzzle.whoAmI",a),b.query({controller:"auth",action:"getCurrentUser"},{},{},function(c,d){return c?a(c):void a(null,new l(b.security,d.result._id,d.result._source))}),b},Kuzzle.prototype.getMyRights=function(a,b){var c=this;b||"function"!=typeof a||(b=a,a=null),c.callbackRequired("Kuzzle.getMyRights",b),c.query({controller:"auth",action:"getMyRights"},{},null,function(a,c){return a?b(a):void b(null,c.result.hits)})},Kuzzle.prototype.updateSelf=function(a,b,c){var d=this,e={},f={controller:"auth",action:"updateSelf"};c||"function"!=typeof b||(c=b,b=null),e.body=a,c?d.query(f,e,b,function(a,b){return a?c(a):void c(null,b.result)}):d.query(f,e,b)},Kuzzle.prototype.addListener=function(a,b){var c,d=Object.keys(this.eventListeners),e=typeof b;if(this.isValid(),d.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+d.toString());if("function"!==e)throw new Error("Invalid listener type: expected a function, got a "+e);return c=h.v1(),this.eventListeners[a].listeners.push({id:c,fn:b}),c},Kuzzle.prototype.getAllStatistics=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getAllStatistics",b),this.query({controller:"admin",action:"getAllStats"},{},a,function(a,c){return a?b(a):void b(null,c.result.hits)}),this},Kuzzle.prototype.getStatistics=function(a,b,c){var d;return c||(1===arguments.length?(c=arguments[0],b=null,a=null):(c=arguments[1],"object"==typeof arguments[0]?(b=arguments[0],a=null):(a=arguments[0],b=null))),d=function(b,d){return b?c(b):void(a?c(null,d.result.hits):c(null,[d.result]))},this.callbackRequired("Kuzzle.getStatistics",c),a?this.query({controller:"admin",action:"getStats"},{body:{startTime:a}},b,d):this.query({controller:"admin",action:"getLastStats"},{},b,d),this},Kuzzle.prototype.dataCollectionFactory=function(a,b){if(this.isValid(),!b){if(!this.defaultIndex)throw new Error("Unable to create a new data collection object: no index specified");b=this.defaultIndex}if("string"!=typeof b)throw new Error('Invalid "index" argument: string expected, got '+typeof b);if("string"!=typeof a)throw new Error('Invalid "collection" argument: string expected, got '+typeof a);return this.collections[b]||(this.collections[b]={}),this.collections[b][a]||(this.collections[b][a]=new i(this,b,a)),this.collections[b][a]},Kuzzle.prototype.flushQueue=function(){return this.offlineQueue=[],this},Kuzzle.prototype.listCollections=function(){var a,b,c,d="all",e=Array.prototype.slice.call(arguments);if(e.forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.listCollections: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.listCollections",c),b&&b.type&&(d=b.type),this.query({index:a,controller:"read",action:"listCollections"},{body:{type:d}},b,function(a,b){return a?c(a):c(null,b.result.collections)}),this},Kuzzle.prototype.listIndexes=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.listIndexes",b),this.query({controller:"read",action:"listIndexes"},{},a,function(a,c){return a?b(a):b(null,c.result.indexes)}),this},Kuzzle.prototype.disconnect=function(){var a;this.logout(),this.state="disconnected",this.socket.close(),this.socket=null;for(a in this.collections)this.collections.hasOwnProperty(a)&&delete this.collections[a]},Kuzzle.prototype.getServerInfo=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getServerInfo",b),this.query({controller:"read",action:"serverInfo"},{},a,function(a,c){return a?b(a):void b(null,c.result.serverInfo)}),this},Kuzzle.prototype.refreshIndex=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.refreshIndex: index required");a=this.defaultIndex}return this.query({index:a,controller:"admin",action:"refreshIndex"},{},b,c),this},Kuzzle.prototype.getAutoRefresh=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.getAutoRefresh: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.getAutoRefresh",c),this.query({index:a,controller:"admin",action:"getAutoRefresh"},{},b,c),this},Kuzzle.prototype.setAutoRefresh=function(){var a,b,c,d;if(Array.prototype.slice.call(arguments).forEach(function(e){switch(typeof e){case"string":a=e;break;case"boolean":b=e;break;case"object":c=e;break;case"function":d=e}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.setAutoRefresh: index required");a=this.defaultIndex}if(void 0===b)throw new Error("Kuzzle.setAutoRefresh: autoRefresh value is required");return this.query({index:a,controller:"admin",action:"setAutoRefresh"},{body:{autoRefresh:b}},c,d),this},Kuzzle.prototype.now=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.now",b),this.query({controller:"read",action:"now"},{},a,function(a,c){return a?b(a):void b(null,c.result.now)}),this},Kuzzle.prototype.query=function(a,b,c,f){var g,i={action:a.action,controller:a.controller,metadata:this.metadata},j=this;if(this.isValid(),f||"function"!=typeof c||(f=c,c=null),c&&(c.metadata&&Object.keys(c.metadata).forEach(function(a){i.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){i.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(i[g]=b[g]);return i=j.addHeaders(i,this.headers),void 0===j.jwtToken||"auth"===i.controller&&"checkToken"===i.action||(i.headers=i.headers||{},i.headers.authorization="Bearer "+j.jwtToken),a.collection&&(i.collection=a.collection),a.index&&(i.index=a.index),i.requestId||(i.requestId=h.v4()),"connected"===j.state||c&&c.queuable===!1?"connected"===j.state?e.call(this,i,f):f&&f(new Error("Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: "+JSON.stringify(i))):(j.queuing||["initializing","connecting"].indexOf(j.state)!==-1)&&(d.call(this,i,f),j.queueFilter&&!j.queueFilter(i)||(j.offlineQueue.push({ts:Date.now(),query:i,cb:f}),j.emitEvent("offlineQueuePush",{query:i,cb:f}))),j},Kuzzle.prototype.removeAllListeners=function(a){var b=Object.keys(this.eventListeners),c=this;if(a){if(b.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+b.toString());this.eventListeners[a].listeners=[]}else b.forEach(function(a){c.eventListeners[a].listeners=[]})},Kuzzle.prototype.removeListener=function(a,b){var c=Object.keys(this.eventListeners),d=this;if(c.indexOf(a)===-1)throw new Error("["+a+"] is not a known event. Known events: "+c.toString());this.eventListeners[a].listeners.forEach(function(c,e){c.id===b&&d.eventListeners[a].listeners.splice(e,1)})},Kuzzle.prototype.replayQueue=function(){return"offline"===this.state||this.autoReplay||(d.call(this),f.call(this)),this},Kuzzle.prototype.setDefaultIndex=function(a){if("string"!=typeof a)throw new Error("Invalid default index: ["+a+"] (an index name is expected)");if(0===a.length)throw new Error("Cannot set an empty index as the default index");return this.defaultIndex=a,this},Kuzzle.prototype.setHeaders=function(a,b){var c=this;if("object"!=typeof a||Array.isArray(a))throw new Error("Expected a content object, received a "+typeof a);return b?c.headers=a:Object.keys(a).forEach(function(b){c.headers[b]=a[b]}),c},Kuzzle.prototype.startQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!0),this},Kuzzle.prototype.stopQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!1),this}}).call(this,a("_process"))},{"./kuzzleDataCollection":4,"./kuzzleMemoryStorage":7,"./security/kuzzleSecurity":11,"./security/kuzzleUser":13,_process:1,"node-uuid":2,"socket.io-client":void 0}],4:[function(a,b,c){function d(a,b,c){if(!b||!c)throw new Error("The KuzzleDataCollection object constructor needs an index and a collection arguments");return Object.defineProperties(this,{collection:{value:c,enumerable:!0},index:{value:b,enumerable:!0},kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),Object.defineProperty(this,"buildQueryArgs",{value:function(a,b){return{controller:a,action:b,collection:this.collection,index:this.index}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["publishMessage","setHeaders","subscribe"];return d&&e.indexOf(a)===-1}}):this}var e=a("./kuzzleDocument"),f=a("./kuzzleDataMapping"),g=a("./kuzzleRoom");d.prototype.advancedSearch=function(a,b,c){var d,f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.advancedSearch",c),d=f.kuzzle.addHeaders({body:a},this.headers),f.kuzzle.query(this.buildQueryArgs("read","search"),d,b,function(a,b){var d=[];return a?c(a):(b.result.hits.forEach(function(a){var b=new e(f,a._id,a._source);b.version=a._version,d.push(b)}),void c(null,{total:b.result.total,documents:d}))}),this},d.prototype.count=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.count",c),d=this.kuzzle.addHeaders({body:a},this.headers),this.kuzzle.query(this.buildQueryArgs("read","count"),d,b,function(a,b){return a?c(a):void c(null,b.result.count)}),this},d.prototype.create=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","createCollection"),c,a,b),this},d.prototype.createDocument=function(a,b,c,d){var f=this,g={},h="create";return a&&"string"!=typeof a&&(d=c,c=b,b=a,a=null),d||"function"!=typeof c||(d=c,c=null),b instanceof e?g=b.serialize():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g=f.kuzzle.addHeaders(g,f.headers),d?f.kuzzle.query(this.buildQueryArgs("write",h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write",h),g,c),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};"string"==typeof a?(e._id=a,d="delete"):(e.body=a,d="deleteByQuery"),c||"function"!=typeof b||(c=b,b=null),e=this.kuzzle.addHeaders(e,this.headers),c?this.kuzzle.query(this.buildQueryArgs("write",d),e,b,function(a,b){return a?c(a):void("delete"===d?c(null,[b.result._id]):c(null,b.result.ids))}):this.kuzzle.query(this.buildQueryArgs("write",d),e,b)},d.prototype.fetchDocument=function(a,b,c){var d={_id:a},f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.fetch",c),d=f.kuzzle.addHeaders(d,this.headers),f.kuzzle.query(this.buildQueryArgs("read","get"),d,b,function(a,b){var d;return a?c(a):(d=new e(f,b.result._id,b.result._source),d.version=b.result._version,void c(null,d))}),this},d.prototype.fetchAllDocuments=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),a&&(a.from&&(c.from=a.from),a.size&&(c.size=a.size)),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch(c,a,b),this},d.prototype.getMapping=function(a,b){var c;return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.getMapping",b),c=new f(this),c.refresh(a,b),this},d.prototype.publishMessage=function(a,b){var c={};return a instanceof e?c=a.serialize():c.body=a,c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","publish"),c,b),this},d.prototype.replaceDocument=function(a,b,c,d){var f=this,g={_id:a,body:b};return d||"function"!=typeof c||(d=c,c=null),g=f.kuzzle.addHeaders(g,this.headers),d?f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c),this},d.prototype.subscribe=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.subscribe",c),d=new g(this,b),d.renew(a,c)},d.prototype.truncate=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("admin","truncateCollection"),c,a,b),this},d.prototype.updateDocument=function(a,b,c,d){var f={_id:a,body:b},g=this;return d||"function"!=typeof c||(d=c,c=null),f=g.kuzzle.addHeaders(f,this.headers),d?g.kuzzle.query(this.buildQueryArgs("write","update"),f,c,function(a,b){var c;return a?d(a):(c=new e(g,b.result._id),void c.refresh(d))}):g.kuzzle.query(this.buildQueryArgs("write","update"),f,c),g},d.prototype.documentFactory=function(a,b){return new e(this,a,b)},d.prototype.roomFactory=function(a){return new g(this,a)},d.prototype.dataMappingFactory=function(a){return new f(this,a)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"./kuzzleDataMapping":5,"./kuzzleDocument":6,"./kuzzleRoom":8}],5:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},mapping:{value:b||{},enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["set","setHeaders"];return d&&e.indexOf(a)===-1}}):this}d.prototype.apply=function(a,b){var c=this,d=this.kuzzle.addHeaders({body:{properties:this.mapping}},this.headers);return b||"function"!=typeof a||(b=a,a=null),c.kuzzle.query(this.collection.buildQueryArgs("admin","updateMapping"),d,a,function(d){return d?!!b&&b(d):void c.refresh(a,b)}),this},d.prototype.refresh=function(a,b){var c=this,d=this.kuzzle.addHeaders({},this.headers);return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.query(this.collection.buildQueryArgs("admin","getMapping"),d,a,function(a,d){return a?!!b&&b(a):d.result[c.collection.index]?d.result[c.collection.index].mappings[c.collection.collection]?(c.mapping=d.result[c.collection.index].mappings[c.collection.collection].properties,void 0===c.mapping&&(c.mapping={}),void(b&&b(null,c))):!!b&&b(new Error("No mapping found for collection "+c.collection.collection)):!!b&&b(new Error("No mapping found for index "+c.collection.index))}),this},d.prototype.set=function(a,b){return this.mapping[a]=b,this},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],6:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{collection:{value:a.collection,enumerable:!0},dataCollection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},id:{value:void 0,enumerable:!0,writable:!0},content:{value:{},writable:!0,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},version:{value:void 0,enumerable:!0,writable:!0}}),!c&&b&&"object"==typeof b&&(c=b,b=null),c&&(c._version&&(this.version=c._version,delete c._version),this.setContent(c,!0)),b&&Object.defineProperty(this,"id",{value:b,enumerable:!0}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","refresh","save"];return d&&e.indexOf(a)!==-1}}):this}d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a._version=this.version,a=this.kuzzle.addHeaders(a,this.headers)},d.prototype.toString=function(){return JSON.stringify(this.serialize())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a,function(a){return a?b(a):void b(null,c.id)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a)},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");this.kuzzle.callbackRequired("KuzzleDocument.refresh",b),c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,e){var f;return a?b(a):(f=new d(c.dataCollection,c.id,e.result._source),f.version=e.result._version,void b(null,f))})},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.dataCollection.buildQueryArgs("write","createOrReplace"),c,a,function(a,c){return a?!!b&&b(a):(d.id=c.result._id,d.version=c.result._version,void(b&&b(null,d)))}),d},d.prototype.publish=function(a){var b=this.serialize();return this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this},d.prototype.setContent=function(a,b){var c=this;return b?this.content=a:Object.keys(a).forEach(function(b){c.content[b]=a[b]}),this},d.prototype.subscribe=function(a,b){var c;if(a&&!b&&"function"==typeof a&&(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDocument.subscribe",b),!this.id)throw new Error("KuzzleDocument.subscribe: cannot subscribe to a document if no ID has been provided");return c={ids:{values:[this.id]}},this.dataCollection.subscribe(c,a,b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],7:[function(a,b,c){function d(a){return Object.defineProperties(this,{kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),this.setHeaders=a.setHeaders.bind(this),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["setHeaders"];return d&&e.indexOf(a)===-1}}):this}!function(){var a=["id","value"],b=["id","keys"],c={append:a,bgrewriteaof:[],bgsave:[],bitcount:["id","start","end"],bitop:["operation","destkey",b],bitpos:["id","bit",{__opts__:["start","end"]}],blpop:[b,"timeout"],brpoplpush:["source","destination"],dbsize:[],decrby:a,del:[b],discard:[],exec:[],exists:[b],expire:["id","seconds"],expireat:["id","timestamp"],flushdb:[],getbit:["id","offset"],getrange:["id","start","end"],hdel:["id",["field","fields"]],hexists:["id","field"],hincrby:["id","field","value"],hmset:["id","values"],hset:["id","field","value"],info:["section"],keys:["pattern"],lastsave:[],lindex:["id","idx"],linsert:["id","position","pivot","value"],lpush:["id",["value","values"]],lrange:["id","start","stop"],lrem:["id","count","value"],lset:["id","idx","value"],ltrim:["id","start","stop"],mset:["values"],multi:[],object:["subcommand","args"],pexpire:["id","milliseconds"],pexpireat:["id","timestamp"],pfadd:["id",["element","elements"]],pfmerge:["destkey",["sourcekey","sourcekeys"]],ping:[],psetex:["id","milliseconds","value"],publish:["channel","message"],randomkey:[],rename:["id","newkey"],renamenx:["id","newkey"],restore:["id","ttl","content"],rpoplpush:["source","destination"],sadd:["id",["member","members"]],save:[],set:["id","value",{__opts__:["ex","px","nx","xx"]}],sdiffstore:["destination",b],setbit:["id","offset","value"],setex:["id","seconds","value"],setrange:["id","offset","value"],sinterstore:["destination",b], -sismember:["id","member"],smove:["id","destination","member"],sort:["id",{__opts__:["by","offset","count","get","direction","alpha","store"]}],spop:["id","count"],srem:["id",["member","members"]],sunionstore:["destination",b],unwatch:[],wait:["numslaves","timeout"],zadd:["id",{__opts__:["nx","xx","ch","incr","score","member","members"]}],zcount:["id","min","max"],zincrby:["id","value","member"],zinterstore:["destination",b,{__opts__:["weight","weights","aggregate"]}],zlexcount:["id","min","max"],zrange:["id","start","stop",{__opts__:["withscores"]}],zrangebylex:["id","min","max",{__opts__:["offset","count"]}],zrangebyscore:["id","min","max",{__opts__:["withscores","offset","count"]}],zrem:["id","member"],zremrangebylex:["id","min","max"],zremrangebyscore:["id","min","max"],zrevrangebylex:["id","max","min",{__opts__:["offset","count"]}],zrevrangebyscore:["id","max","min",{__opts__:["withscores","offset","count"]}],zrevrank:["id","member"]};c.decr=c.get=c.dump=c.hgetall=c.hkeys=c.hlen=c.hstrlen=c.hvals=c.incr=c.llen=c.lpop=c.persist=c.pttl=c.rpop=c.scard=c.smembers=c.strlen=c.ttl=c.type=c.zcard=["id"],c.getset=c.lpushx=a,c.del=c.exists=c.mget=c.pfcount=c.sdiff=c.sinter=c.sunion=c.watch=[b],c.incrby=c.incrbyfloat=c.decrby,c.brpop=c.blpop,c.hget=c.hexists,c.hmget=c.hdel,c.hsetnx=c.hset,c.msetnx=c.mset,c.rpush=c.lpush,c.hincrbyfloat=c.hincrby,c.srandmember=c.spop,c.zrevrange=c.zrange,c.zscore=c.zrevrank,Object.keys(c).forEach(function(a){d.prototype[a]=function(){var b,d=Array.prototype.slice.call(arguments),e=null,f={controller:"ms",action:a},g={};return"function"==typeof d[d.length-1]&&(b=d.pop()),d.length&&"object"==typeof d[d.length-1]&&1===Object.keys(d[d.length-1]).length&&void 0!==d[d.length-1].queuable&&(e=d.pop()),c[a].forEach(function(a,b){void 0!==d[b]&&(Array.isArray(a)&&(a=Array.isArray(d[b])?a[1]:a[0]),"id"===a?g._id=d[b]:(g.body||(g.body={}),"object"==typeof a&&void 0!==a.__opts__?a.__opts__.forEach(function(a){void 0!==d[b][a]&&(g.body[a]=d[b][a])}):g.body[a]=d[b]))}),this.kuzzle.query(f,g,e,b),this}})}(),b.exports=d},{}],8:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:h.v4()},lastRenewal:{value:null,writable:!0},notifier:{value:null,writable:!0},queue:{value:[],writable:!0},renewalDelay:{value:500},scope:{value:b&&b.scope?b.scope:"all"},state:{value:b&&b.state?b.state:"done"},subscribing:{value:!1,writable:!0},users:{value:b&&b.users?b.users:"none"},collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},filters:{value:null,enumerable:!0,writable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},metadata:{value:b&&b.metadata?b.metadata:{},enumerable:!0,writable:!0},roomId:{value:null,enumerable:!0,writable:!0},subscribeToSelf:{value:!b||"boolean"!=typeof b.subscribeToSelf||b.subscribeToSelf,enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["count"];return d&&e.indexOf(a)!==-1}}):this}function e(a){return a.error?this.callback(a.error):"jwtTokenExpired"===a.action?(this.kuzzle.jwtToken=void 0,this.kuzzle.emitEvent("jwtTokenExpired")):void(this.kuzzle.requestHistory[a.requestId]?(this.subscribeToSelf&&this.callback(null,a),delete this.kuzzle.requestHistory[a.requestId]):this.callback(null,a))}function f(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}function g(){return"connected"===this.kuzzle.state&&!this.subscribing}var h=a("node-uuid");d.prototype.count=function(a){var b;if(this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),!g.call(this))return this.queue.push({action:"count",args:[a]}),this;if(!this.roomId)throw new Error("KuzzleRoom.count: cannot count subscriptions on an inactive room");return this.kuzzle.query(this.collection.buildQueryArgs("subscribe","count"),b,function(b,c){return b?a(b):void a(null,c.result.count)}),this},d.prototype.renew=function(a,b){var c=Date.now(),d={scope:this.scope,state:this.state,users:this.users},g=this;return!b&&a&&"function"==typeof a&&(b=a,a=null),g.kuzzle.callbackRequired("KuzzleRoom.renew",b),g.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(a&&(g.filters=a),"connected"!==g.kuzzle.state?(g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,g):g.subscribing?(g.queue.push({action:"renew",args:[a,b]}),g):(g.unsubscribe(),g.roomId=null,g.subscribing=!0,g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,d.body=g.filters,d=g.kuzzle.addHeaders(d,this.headers),g.kuzzle.query(g.collection.buildQueryArgs("subscribe","on"),d,{metadata:g.metadata},function(a,b){if(delete g.kuzzle.subscriptions.pending[g.id],g.subscribing=!1,a)throw g.queue=[],new Error("Error during Kuzzle subscription: "+a.message);g.lastRenewal=c,g.roomId=b.result.roomId,g.channel=b.result.channel,g.kuzzle.subscriptions[g.roomId]||(g.kuzzle.subscriptions[g.roomId]={}),g.kuzzle.subscriptions[g.roomId][g.id]=g,g.notifier=e.bind(g),g.kuzzle.socket.on(g.channel,g.notifier),f.call(g)}),g))},d.prototype.unsubscribe=function(){var a,b=this,c=b.roomId;return g.call(this)?(c&&(b.kuzzle.socket.off(b.channel,this.notifier),1===Object.keys(b.kuzzle.subscriptions[c]).length?(delete b.kuzzle.subscriptions[c],0===Object.keys(b.kuzzle.subscriptions.pending).length?b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}):a=setInterval(function(){0===Object.keys(b.kuzzle.subscriptions.pending).length&&(b.kuzzle.subscriptions[c]||b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}),clearInterval(a))},100)):delete b.kuzzle.subscriptions[c][b.id],b.roomId=null),b):(b.queue.push({action:"unsubscribe",args:[]}),b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":2}],9:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteProfile"},updateActionName:{value:"updateProfile"}}),c&&c.roles&&(c.roles=c.roles.map(function(b){return b._id&&b._source?new f(a,b._id,b._source):b})),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleRole");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c,d=this;if(!this.content.roles)throw new Error('Argument "roles" is mandatory in a profile. This argument contains an array of KuzzleRole or an array of id string');return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c=this.serialize(),d.kuzzle.query(d.kuzzleSecurity.buildQueryArgs("createOrReplaceProfile"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))}),d},d.prototype.addRole=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be a KuzzleRole or a id string');return this.content.roles||(this.content.roles=[]),this.content.roles.push(a),this},d.prototype.setRoles=function(a){if(!Array.isArray(a))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string');return a.map(function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string')}),this.content.roles=a,this},d.prototype.hydrate=function(a,b){var c=this,e={ids:[]};e.ids=this.content.roles.map(function(a){return"string"==typeof a?a:a instanceof f?a.id:void 0}),a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleProfile.hydrate",b),c.kuzzle.query(c.kuzzleSecurity.buildQueryArgs("mGetRoles"),{body:e},a,function(a,e){return a?b(a):void b(null,new d(c,c.id,{roles:e.result.hits}))})},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.roles&&Array.isArray(a.body.roles)?(a.body.roles=a.body.roles.map(function(a){return a instanceof f?a.id:a}),a):a},d.prototype.getRoles=function(){return this.content.roles},b.exports=d},{"./kuzzleRole":10,"./kuzzleSecurityDocument":12}],10:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteRole"},updateActionName:{value:"updateRole"}}),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c=this.serialize(),d=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceRole"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))})},b.exports=d},{"./kuzzleSecurityDocument":12}],11:[function(a,b,c){function d(a){return Object.defineProperty(this,"kuzzle",{value:a}),Object.defineProperty(this,"buildQueryArgs",{value:function(a){return{controller:"security",action:a}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["roleFactory","profileFactory","userFactory","isActionAllowed"];return d&&e.indexOf(a)===-1}}):this}var e=a("./kuzzleRole"),f=a("./kuzzleProfile"),g=a("./kuzzleUser");d.prototype.getRole=function(a,b,c){var d,f=this;if(!a)throw new Error("Id parameter is mandatory for getRole function");c||"function"!=typeof b||(c=b,b=null),d={_id:a},f.kuzzle.callbackRequired("KuzzleSecurity.getRole",c),f.kuzzle.query(this.buildQueryArgs("getRole"),d,b,function(a,b){return a?c(a):void c(null,new e(f,b.result._id,b.result._source))})},d.prototype.searchRoles=function(a,b,c){var d=this;c||"function"!=typeof b||(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchRoles",c),d.kuzzle.query(this.buildQueryArgs("searchRoles"),{body:a},b,function(a,b){var f;return a?c(a):(f=b.result.hits.map(function(a){return new e(d,a._id,a._source)}),void c(null,{total:b.result.total,roles:f}))})},d.prototype.createRole=function(a,b,c,d){var f=this,g={},h="createRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createRole: cannot create a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceRole":"createRole"),d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),void d(null,c))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateRole=function(a,b,c,d){var f=this,g={},h="updateRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateRole: cannot update a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(c){return c?d(c):void d(null,new e(f,a,b))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteRole=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b)},d.prototype.roleFactory=function(a,b){return new e(this,a,b)},d.prototype.getProfile=function(a,b,c){var d,e=this,g=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getProfile function");c||"function"!=typeof b?void 0!==b.hydrate&&(g=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getProfile",c),e.kuzzle.query(this.buildQueryArgs("getProfile"),d,b,function(a,b){return a?c(a):(g||(b.result._source.roles=b.result._source.roles.map(function(a){var b={_id:a._id};return void 0!==a._source.restrictedTo&&(b.restrictedTo=a._source.restrictedTo),void 0!==a._source.allowInternalIndex&&(b.allowInternalIndex=a._source.allowInternalIndex),b})),void c(null,new f(e,b.result._id,b.result._source)))})},d.prototype.searchProfiles=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchProfiles",c),d.kuzzle.query(this.buildQueryArgs("searchProfiles"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new f(d,a._id,a._source)}),void c(null,{total:b.result.total,profiles:e}))})},d.prototype.createProfile=function(a,b,c,d){var e=this,g={},h="createProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createProfile: cannot create a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceProfile":"createProfile"),d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new f(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateProfile=function(a,b,c,d){var e=this,g={},h="updateProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateProfile: cannot update a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c={};return a?d(a):(Object.keys(b.result._source).forEach(function(a){"roles"!==a&&(c[a]=b.result._source[a])}),c.roles=b.result._source.roles.map(function(a){return a._id}),void d(null,new f(e,b.result._id,c)))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteProfile=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b)},d.prototype.profileFactory=function(a,b){return new f(this,a,b)},d.prototype.getUser=function(a,b,c){var d,e=this,f=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getUser function");c||"function"!=typeof b?void 0!==b.hydrate&&(f=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getUser",c),e.kuzzle.query(this.buildQueryArgs("getUser"),d,b,function(a,b){return a?c(a):(f||(b.result._source.profile=b.result._source.profile._id),void c(null,new g(e,b.result._id,b.result._source)))})},d.prototype.searchUsers=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchUsers",c),d.kuzzle.query(this.buildQueryArgs("searchUsers"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new g(d,a._id,a._source)}),void c(null,{total:b.result.total,users:e}))})},d.prototype.createUser=function(a,b,c,d){var e=this,f={},h="createUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createUser: cannot create a user without a user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,c&&(h=c.replaceIfExist?"createOrReplaceUser":"createUser"),d?e.kuzzle.query(this.buildQueryArgs(h),f,null,function(a,b){var c;return a?d(a):(c=new g(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),f)},d.prototype.updateUser=function(a,b,c,d){var e=this,f={},h="updateUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateUser: cannot update an user without an user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),f,c,function(a,b){return a?d(a):void d(null,new g(e,b.result._id,b.result._source))}):e.kuzzle.query(this.buildQueryArgs(h),f,c)},d.prototype.deleteUser=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b)},d.prototype.userFactory=function(a,b){return new g(this,a,b)},d.prototype.isActionAllowed=function(a,b,c,d,e){var f;if(!a||"object"!=typeof a)throw new Error("rights parameter is mandatory for isActionAllowed function");if(!b||"string"!=typeof b)throw new Error("controller parameter is mandatory for isActionAllowed function");if(!c||"string"!=typeof c)throw new Error("action parameter is mandatory for isActionAllowed function");return f=a.filter(function(a){return a.controller===b||"*"===a.controller}).filter(function(a){return a.action===c||"*"===a.action}).filter(function(a){return a.index===d||"*"===a.index}).filter(function(a){return a.collection===e||"*"===a.collection}),f.some(function(a){return"allowed"===a.value})?"allowed":f.some(function(a){return"conditional"===a.value})?"conditional":"denied"},d.prototype.getUserRights=function(a,b,c){var d={_id:a},e=this;if(!a||"string"!=typeof a)throw new Error("userId parameter is mandatory for isActionAllowed function");c||"function"!=typeof b||(c=b,b=null),e.kuzzle.callbackRequired("Kuzzle.getUserRights",c),this.kuzzle.query(this.buildQueryArgs("getUserRights"),d,b,function(a,b){return a?c(a):void c(null,b.result.hits)})},b.exports=d},{"./kuzzleProfile":9,"./kuzzleRole":10,"./kuzzleUser":13}],12:[function(a,b,c){function d(a,b,c){if(!b)throw new Error("A security document must have an id");if(Object.defineProperties(this,{kuzzle:{value:a.kuzzle},kuzzleSecurity:{value:a},id:{value:b,enumerable:!0},content:{value:{},writable:!0,enumerable:!0}}),c&&this.setContent(c,!0),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","update"];return d&&e.indexOf(a)!==-1}})}d.prototype.setContent=function(a){return this.content=a,this},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a},d.prototype["delete"]=function(a,b){var c=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.deleteActionName),{_id:this.id},a,function(a,c){return a?!!b&&b(a):void(b&&b(null,c.result._id))})},d.prototype.update=function(a,b,c){var d={},e=this;if("object"!=typeof a)throw new Error('Parameter "content" must be a object');b&&void 0===c&&"function"==typeof b&&(c=b,b=null),d._id=e.id,d.body=a,e.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.updateActionName),d,b,function(a,b){return a?!!c&&c(a):(e.setContent(b.result._source),void(c&&c(null,e)))})},b.exports=d},{}],13:[function(a,b,c){function d(a,b,c){if(e.call(this,a,b,c),c.profile&&c.profile._id&&c.profile._source&&(this.content.profile=new f(a,c.profile._id,c.profile._source)),Object.defineProperties(this,{deleteActionName:{value:"deleteUser"},updateActionName:{value:"updateUser"}}),a.kuzzle.bluebird)return a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&e.indexOf(a)!==-1}})}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleProfile");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.hydrate=function(a,b){var c=this;if(a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleUser.hydrate",b),!this.content.profile||"string"!=typeof this.content.profile)throw new Error("The User must contains a profile as string in order to be hydrated");c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("getProfile"),{_id:this.content.profile},a,function(a,e){var g;return a?b(a):(g=new d(c.kuzzleSecurity,c.id,c.content),g.setProfile(new f(c.kuzzleSecurity,e.result._id,e.result._source)),void b(null,g))})},d.prototype.setProfile=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "profile" must be a KuzzleProfile or a string');return this.content.profile=a,this},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceUser"),c,a,function(a){return a?!!b&&b(a):void(b&&b(null,d))}),d},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.profile&&a.body.profile.id&&(a.body.profile=a.body.profile.id),a},d.prototype.getProfiles=function(){return this.content.profile},b.exports=d},{"./kuzzleProfile":9,"./kuzzleSecurityDocument":12}]},{},[3]); +// Official Javascript SDK for Kuzzle v1.9.3 - License: Apache-2.0 +!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g1)for(var c=1;cb;b++)0===(3&b)&&(a=4294967296*Math.random()),e[b]=a>>>((3&b)<<3)&255;return e},"undefined"!=typeof console&&console.warn&&console.warn("[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()")}}function e(){if("function"==typeof a)try{var b=a("crypto").randomBytes;l=j=b&&function(){return b(16)},j()}catch(c){}}function f(a,b,c){var d=b&&c||0,e=0;for(b=b||[],a.toLowerCase().replace(/[0-9a-f]{2}/g,function(a){16>e&&(b[d+e++]=q[a])});16>e;)b[d+e++]=0;return b}function g(a,b){var c=b||0,d=p;return d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+"-"+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]+d[a[c++]]}function h(a,b,c){var d=b&&c||0,e=b||[];a=a||{};var f=null!=a.clockseq?a.clockseq:u,h=null!=a.msecs?a.msecs:(new Date).getTime(),i=null!=a.nsecs?a.nsecs:w+1,j=h-v+(i-w)/1e4;if(0>j&&null==a.clockseq&&(f=f+1&16383),(0>j||h>v)&&null==a.nsecs&&(i=0),i>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=h,w=i,u=f,h+=122192928e5;var k=(1e4*(268435455&h)+i)%4294967296;e[d++]=k>>>24&255,e[d++]=k>>>16&255,e[d++]=k>>>8&255,e[d++]=255&k;var l=h/4294967296*1e4&268435455;e[d++]=l>>>8&255,e[d++]=255&l,e[d++]=l>>>24&15|16,e[d++]=l>>>16&255,e[d++]=f>>>8|128,e[d++]=255&f;for(var m=a.node||t,n=0;6>n;n++)e[d+n]=m[n];return b?b:g(e)}function i(a,b,c){var d=b&&c||0;"string"==typeof a&&(b="binary"===a?new o(16):null,a=null),a=a||{};var e=a.random||(a.rng||j)();if(e[6]=15&e[6]|64,e[8]=63&e[8]|128,b)for(var f=0;16>f;f++)b[d+f]=e[f];return b||g(e)}var j,k,l,m,n;c?d():e();for(var o="function"==typeof Buffer?Buffer:Array,p=[],q={},r=0;256>r;r++)p[r]=(r+256).toString(16).substr(1),q[p[r]]=r;var s=j(),t=[1|s[0],s[1],s[2],s[3],s[4],s[5]],u=16383&(s[6]<<8|s[7]),v=0,w=0,x=i;x.v1=h,x.v4=i,x.parse=f,x.unparse=g,x.BufferClass=o,x._rng=j,x._mathRNG=k,x._nodeRNG=l,x._whatwgRNG=m,"undefined"!=typeof b&&b.exports?b.exports=x:"function"==typeof define&&define.amd?define(function(){return x}):(n=c.uuid,x.noConflict=function(){return c.uuid=n,x},c.uuid=x)}("undefined"!=typeof window?window:null)},{}],3:[function(a,b,c){(function(c){function d(){var a=this,b=Date.now(),c=-1;a.queueTTL>0&&(a.offlineQueue.forEach(function(d,e){d.ts0&&a.offlineQueue.length>a.queueMaxSize&&a.offlineQueue.splice(0,a.offlineQueue.length-a.queueMaxSize).forEach(function(b){a.emitEvent("offlineQueuePop",b.query)})}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){"logout"!==a.action&&c.error&&"Token expired"===c.error.message&&(d.jwtToken=void 0,d.emitEvent("jwtTokenExpired",a,b)),b&&b(c.error,c)}),d.socket.emit("kuzzle",a),d.requestHistory[a.requestId]=c,Object.keys(d.requestHistory).forEach(function(a){d.requestHistory[a]0?(e.call(b,b.offlineQueue[0].query,b.offlineQueue[0].cb),b.emitEvent("offlineQueuePop",b.offlineQueue.shift()),setTimeout(function(){d()},Math.max(0,b.replayInterval))):b.queuing=!1};if(b.offlineQueueLoader){if("function"!=typeof b.offlineQueueLoader)throw new Error("Invalid value for offlineQueueLoader property. Expected: function. Got: "+typeof b.offlineQueueLoader);if(a=b.offlineQueueLoader(),!Array.isArray(a))throw new Error("Invalid value returned by the offlineQueueLoader function. Expected: array. Got: "+typeof a);b.offlineQueue=a.concat(b.offlineQueue).filter(function(a){if(!a.query||void 0===a.query.requestId||!a.query.action||!a.query.controller)throw new Error("Invalid offline queue request. One or more missing properties: requestId, action, controller.");return c.hasOwnProperty(a.query.requestId)?!1:c[a.query.requestId]=!0})}d()}function g(){var a=this;Object.keys(a.subscriptions).forEach(function(b){Object.keys(a.subscriptions[b]).forEach(function(c){var d=a.subscriptions[b][c];d.renew(d.callback)})})}var h=a("node-uuid"),i=a("./kuzzleDataCollection"),j=a("./security/kuzzleSecurity"),k=a("./kuzzleMemoryStorage"),l=a("./security/kuzzleUser");b.exports=Kuzzle=function(b,d,e){var f=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,d,e);if(e||"function"!=typeof d||(e=d,d=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:e},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,listeners:[]},loginAttempt:{lastEmitted:null,listeners:[]},offlineQueuePush:{listeners:[]},offlineQueuePop:{listeners:[]}}},eventTimeout:{value:200},io:{value:null,writable:!0},queuing:{value:!1,writable:!0},requestHistory:{value:{},writable:!0},socket:{value:null,writable:!0},state:{value:"initializing",writable:!0},subscriptions:{value:{pending:{}},writable:!0},autoReconnect:{value:d&&"boolean"==typeof d.autoReconnect?d.autoReconnect:!0,enumerable:!0},defaultIndex:{value:d&&"string"==typeof d.defaultIndex?d.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:d&&"number"==typeof d.reconnectionDelay?d.reconnectionDelay:1e3,enumerable:!0},url:{value:b,enumerable:!0},autoQueue:{value:!1,enumerable:!0,writable:!0},autoReplay:{value:!1,enumerable:!0,writable:!0},autoResubscribe:{value:!0,enumerable:!0,writable:!0},headers:{value:{},enumerable:!0,writable:!0},metadata:{value:{},enumerable:!0,writable:!0},offlineQueue:{value:[],enumerable:!0,writable:!0},queueFilter:{value:null,enumerable:!0,writable:!0},queueMaxSize:{value:500,enumerable:!0,writable:!0},queueTTL:{value:12e4,enumerable:!0,writable:!0},replayInterval:{value:10,enumerable:!0,writable:!0},jwtToken:{value:void 0,enumerable:!0,writable:!0},offlineQueueLoader:{value:null,enumerable:!0,writable:!0}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),d&&(Object.keys(d).forEach(function(a){f.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(f,a).writable&&(f[a]=d[a])}),"auto"===d.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===f.state)throw new Error("This Kuzzle object has been invalidated. Did you try to access it after a disconnect call?")}}),Object.defineProperty(this,"addHeaders",{value:function(a,b){return Object.keys(b).forEach(function(c){a[c]||(a[c]=b[c])}),a}}),Object.defineProperty(this,"callbackRequired",{value:function(a,b){if(!b||"function"!=typeof b)throw new Error(a+": a callback argument is required for read queries")}}),Object.defineProperty(this,"security",{value:new j(this),enumerable:!0}),Object.defineProperty(this,"emitEvent",{value:function(a){var b=Date.now(),d=Array.prototype.slice.call(arguments,1),e=this.eventListeners[a];return e.lastEmitted&&e.lastEmitted>=b-this.eventTimeout?!1:(e.listeners.forEach(function(a){c.nextTick(function(){a.fn.apply(void 0,d)})}),void(void 0!==e.lastEmitted&&(e.lastEmitted=b)))}}),Object.defineProperty(this,"memoryStorage",{value:new k(this),enumerable:!0}),d&&d.connect&&"auto"!==d.connect?this.state="ready":this.connect(),this.bluebird?this.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["getAllStatistics","getServerInfo","getStatistics","listCollections","listIndexes","login","logout","now","query","checkToken","whoAmI"];return d&&-1!==e.indexOf(a)}}):void 0},Kuzzle.prototype.connect=function(){var a=this;return-1===["initializing","ready","disconnected","error","offline"].indexOf(this.state)?(a.connectCB&&a.connectCB(null,a),a):(a.state="connecting",a.socket=a.io(a.url,{reconnection:a.autoReconnect,reconnectionDelay:a.reconnectionDelay,forceNew:!0}),a.socket.once("connect",function(){a.state="connected",g.call(a),f.call(a),a.emitEvent("connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){var c=new Error('Unable to connect to kuzzle server at "'+a.url+'"');c.internal=b,a.state="error",a.emitEvent("error",c),a.connectCB&&a.connectCB(c)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),a.emitEvent("disconnected")}),a.socket.on("reconnect",function(){var b=function(){a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")};a.state="connected",a.jwtToken?a.checkToken(a.jwtToken,function(c,d){(c||!d.valid)&&(a.jwtToken=void 0,a.emitEvent("jwtTokenExpired")),b()}):b()}),this)},Kuzzle.prototype.setJwtToken=function(a){if("string"==typeof a)this.jwtToken=a;else{if("object"!=typeof a)return this.emitEvent("loginAttempt",{success:!1,error:"Invalid token argument: "+a}),this;if(!a.result||!a.result.jwt||"string"!=typeof a.result.jwt)return this.emitEvent("loginAttempt",{success:!1,error:"Cannot find a valid JWT token in the following object: "+JSON.stringify(a)}),this;this.jwtToken=a.result.jwt}return g.call(this),this.emitEvent("loginAttempt",{success:!0}),this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a){var b,c,d=this,e={strategy:a};return arguments[1]&&("object"==typeof arguments[1]?b=arguments[1]:"number"==typeof arguments[1]||"string"==typeof arguments[1]?e.expiresIn=arguments[1]:"function"==typeof arguments[1]&&(c=arguments[1])),arguments[2]&&("number"==typeof arguments[2]||"string"==typeof arguments[2]?e.expiresIn=arguments[2]:"function"==typeof arguments[2]&&(c=arguments[2])),arguments[3]&&"function"==typeof arguments[3]&&(c=arguments[3]),"object"==typeof b&&Object.keys(b).forEach(function(a){e[a]=b[a]}),this.query({controller:"auth",action:"login"},{body:e},{queuable:!1},function(a,b){a?(c&&"function"==typeof c&&c(a),d.emitEvent("loginAttempt",{success:!1,error:a.message})):(b.result.jwt&&d.setJwtToken(b.result.jwt),c&&"function"==typeof c&&c(null,b.result))}),d},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:h.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{queuable:!1},function(c){null===c?(b.jwtToken=void 0,"function"==typeof a&&a(null,b)):"function"==typeof a&&a(c)}),b},Kuzzle.prototype.checkToken=function(a,b){var c=this,d={body:{token:a}};return this.callbackRequired("Kuzzle.checkToken",b),this.query({controller:"auth",action:"checkToken"},d,{queuable:!1},function(a,c){return a?b(a):void b(null,c.result)}),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return b.callbackRequired("Kuzzle.whoAmI",a),b.query({controller:"auth",action:"getCurrentUser"},{},{},function(c,d){return c?a(c):void a(null,new l(b.security,d.result._id,d.result._source))}),b},Kuzzle.prototype.getMyRights=function(a,b){var c=this;b||"function"!=typeof a||(b=a,a=null),c.callbackRequired("Kuzzle.getMyRights",b),c.query({controller:"auth",action:"getMyRights"},{},null,function(a,c){return a?b(a):void b(null,c.result.hits)})},Kuzzle.prototype.updateSelf=function(a,b,c){var d=this,e={},f={controller:"auth",action:"updateSelf"};c||"function"!=typeof b||(c=b,b=null),e.body=a,c?d.query(f,e,b,function(a,b){return a?c(a):void c(null,b.result)}):d.query(f,e,b)},Kuzzle.prototype.addListener=function(a,b){var c,d=Object.keys(this.eventListeners),e=typeof b;if(this.isValid(),-1===d.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+d.toString());if("function"!==e)throw new Error("Invalid listener type: expected a function, got a "+e);return c=h.v1(),this.eventListeners[a].listeners.push({id:c,fn:b}),c},Kuzzle.prototype.getAllStatistics=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getAllStatistics",b),this.query({controller:"admin",action:"getAllStats"},{},a,function(a,c){return a?b(a):void b(null,c.result.hits)}),this},Kuzzle.prototype.getStatistics=function(a,b,c){var d;return c||(1===arguments.length?(c=arguments[0],b=null,a=null):(c=arguments[1],"object"==typeof arguments[0]?(b=arguments[0],a=null):(a=arguments[0],b=null))),d=function(b,d){return b?c(b):void(a?c(null,d.result.hits):c(null,[d.result]))},this.callbackRequired("Kuzzle.getStatistics",c),a?this.query({controller:"admin",action:"getStats"},{body:{startTime:a}},b,d):this.query({controller:"admin",action:"getLastStats"},{},b,d),this},Kuzzle.prototype.dataCollectionFactory=function(a,b){if(this.isValid(),!b){if(!this.defaultIndex)throw new Error("Unable to create a new data collection object: no index specified");b=this.defaultIndex}if("string"!=typeof b)throw new Error('Invalid "index" argument: string expected, got '+typeof b);if("string"!=typeof a)throw new Error('Invalid "collection" argument: string expected, got '+typeof a);return this.collections[b]||(this.collections[b]={}),this.collections[b][a]||(this.collections[b][a]=new i(this,b,a)),this.collections[b][a]},Kuzzle.prototype.flushQueue=function(){return this.offlineQueue=[],this},Kuzzle.prototype.listCollections=function(){var a,b,c,d="all",e=Array.prototype.slice.call(arguments);if(e.forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.listCollections: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.listCollections",c),b&&b.type&&(d=b.type),this.query({index:a,controller:"read",action:"listCollections"},{body:{type:d}},b,function(a,b){return a?c(a):c(null,b.result.collections)}),this},Kuzzle.prototype.listIndexes=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.listIndexes",b),this.query({controller:"read",action:"listIndexes"},{},a,function(a,c){return a?b(a):b(null,c.result.indexes)}),this},Kuzzle.prototype.disconnect=function(){var a;this.logout(),this.state="disconnected",this.socket.close(),this.socket=null;for(a in this.collections)this.collections.hasOwnProperty(a)&&delete this.collections[a]},Kuzzle.prototype.getServerInfo=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.getServerInfo",b),this.query({controller:"read",action:"serverInfo"},{},a,function(a,c){return a?b(a):void b(null,c.result.serverInfo)}),this},Kuzzle.prototype.refreshIndex=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.refreshIndex: index required");a=this.defaultIndex}return this.query({index:a,controller:"admin",action:"refreshIndex"},{},b,c),this},Kuzzle.prototype.getAutoRefresh=function(){var a,b,c;if(Array.prototype.slice.call(arguments).forEach(function(d){switch(typeof d){case"string":a=d;break;case"object":b=d;break;case"function":c=d}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.getAutoRefresh: index required");a=this.defaultIndex}return this.callbackRequired("Kuzzle.getAutoRefresh",c),this.query({index:a,controller:"admin",action:"getAutoRefresh"},{},b,c),this},Kuzzle.prototype.setAutoRefresh=function(){var a,b,c,d;if(Array.prototype.slice.call(arguments).forEach(function(e){switch(typeof e){case"string":a=e;break;case"boolean":b=e;break;case"object":c=e;break;case"function":d=e}}),!a){if(!this.defaultIndex)throw new Error("Kuzzle.setAutoRefresh: index required");a=this.defaultIndex}if(void 0===b)throw new Error("Kuzzle.setAutoRefresh: autoRefresh value is required");return this.query({index:a,controller:"admin",action:"setAutoRefresh"},{body:{autoRefresh:b}},c,d),this},Kuzzle.prototype.now=function(a,b){return b||"function"!=typeof a||(b=a,a=null),this.callbackRequired("Kuzzle.now",b),this.query({controller:"read",action:"now"},{},a,function(a,c){return a?b(a):void b(null,c.result.now)}),this},Kuzzle.prototype.query=function(a,b,c,f){var g,i={action:a.action,controller:a.controller,metadata:this.metadata},j=this;if(this.isValid(),f||"function"!=typeof c||(f=c,c=null),c&&(c.metadata&&Object.keys(c.metadata).forEach(function(a){i.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){i.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(i[g]=b[g]);return i=j.addHeaders(i,this.headers),void 0===j.jwtToken||"auth"===i.controller&&"checkToken"===i.action||(i.headers=i.headers||{},i.headers.authorization="Bearer "+j.jwtToken),a.collection&&(i.collection=a.collection),a.index&&(i.index=a.index),i.requestId||(i.requestId=h.v4()),"connected"===j.state||c&&c.queuable===!1?"connected"===j.state?e.call(this,i,f):f&&f(new Error("Unable to execute request: not connected to a Kuzzle server.\nDiscarded request: "+JSON.stringify(i))):(j.queuing||-1!==["initializing","connecting"].indexOf(j.state))&&(d.call(this,i,f),(!j.queueFilter||j.queueFilter(i))&&(j.offlineQueue.push({ts:Date.now(),query:i,cb:f}),j.emitEvent("offlineQueuePush",{query:i,cb:f}))),j},Kuzzle.prototype.removeAllListeners=function(a){var b=Object.keys(this.eventListeners),c=this;if(a){if(-1===b.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+b.toString());this.eventListeners[a].listeners=[]}else b.forEach(function(a){c.eventListeners[a].listeners=[]})},Kuzzle.prototype.removeListener=function(a,b){var c=Object.keys(this.eventListeners),d=this;if(-1===c.indexOf(a))throw new Error("["+a+"] is not a known event. Known events: "+c.toString());this.eventListeners[a].listeners.forEach(function(c,e){c.id===b&&d.eventListeners[a].listeners.splice(e,1)})},Kuzzle.prototype.replayQueue=function(){return"offline"===this.state||this.autoReplay||(d.call(this),f.call(this)),this},Kuzzle.prototype.setDefaultIndex=function(a){if("string"!=typeof a)throw new Error("Invalid default index: ["+a+"] (an index name is expected)");if(0===a.length)throw new Error("Cannot set an empty index as the default index");return this.defaultIndex=a,this},Kuzzle.prototype.setHeaders=function(a,b){var c=this;if("object"!=typeof a||Array.isArray(a))throw new Error("Expected a content object, received a "+typeof a);return b?c.headers=a:Object.keys(a).forEach(function(b){c.headers[b]=a[b]}),c},Kuzzle.prototype.startQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!0),this},Kuzzle.prototype.stopQueuing=function(){return"offline"!==this.state||this.autoQueue||(this.queuing=!1),this}}).call(this,a("_process"))},{"./kuzzleDataCollection":4,"./kuzzleMemoryStorage":7,"./security/kuzzleSecurity":11,"./security/kuzzleUser":13,_process:1,"node-uuid":2,"socket.io-client":void 0}],4:[function(a,b,c){function d(a,b,c){if(!b||!c)throw new Error("The KuzzleDataCollection object constructor needs an index and a collection arguments");return Object.defineProperties(this,{collection:{value:c,enumerable:!0},index:{value:b,enumerable:!0},kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),Object.defineProperty(this,"buildQueryArgs",{value:function(a,b){return{controller:a,action:b,collection:this.collection,index:this.index}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["publishMessage","setHeaders","subscribe"];return d&&-1===e.indexOf(a)}}):this}var e=a("./kuzzleDocument"),f=a("./kuzzleDataMapping"),g=a("./kuzzleRoom");d.prototype.advancedSearch=function(a,b,c){var d,f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.advancedSearch",c),d=f.kuzzle.addHeaders({body:a},this.headers),f.kuzzle.query(this.buildQueryArgs("read","search"),d,b,function(a,b){var d=[];return a?c(a):(b.result.hits.forEach(function(a){var b=new e(f,a._id,a._source);b.version=a._version,d.push(b)}),void c(null,{total:b.result.total,documents:d}))}),this},d.prototype.count=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.count",c),d=this.kuzzle.addHeaders({body:a},this.headers),this.kuzzle.query(this.buildQueryArgs("read","count"),d,b,function(a,b){return a?c(a):void c(null,b.result.count)}),this},d.prototype.create=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("write","createCollection"),c,a,b),this},d.prototype.createDocument=function(a,b,c,d){var f=this,g={},h="create";return a&&"string"!=typeof a&&(d=c,c=b,b=a,a=null),d||"function"!=typeof c||(d=c,c=null),b instanceof e?g=b.serialize():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g=f.kuzzle.addHeaders(g,f.headers),d?f.kuzzle.query(this.buildQueryArgs("write",h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write",h),g,c),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};"string"==typeof a?(e._id=a,d="delete"):(e.body=a,d="deleteByQuery"),c||"function"!=typeof b||(c=b,b=null),e=this.kuzzle.addHeaders(e,this.headers),c?this.kuzzle.query(this.buildQueryArgs("write",d),e,b,function(a,b){return a?c(a):void("delete"===d?c(null,[b.result._id]):c(null,b.result.ids))}):this.kuzzle.query(this.buildQueryArgs("write",d),e,b)},d.prototype.fetchDocument=function(a,b,c){var d={_id:a},f=this;return c||"function"!=typeof b||(c=b,b=null),f.kuzzle.callbackRequired("KuzzleDataCollection.fetch",c),d=f.kuzzle.addHeaders(d,this.headers),f.kuzzle.query(this.buildQueryArgs("read","get"),d,b,function(a,b){var d;return a?c(a):(d=new e(f,b.result._id,b.result._source),d.version=b.result._version,void c(null,d))}),this},d.prototype.fetchAllDocuments=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),a&&(a.from&&(c.from=a.from),a.size&&(c.size=a.size)),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch(c,a,b),this},d.prototype.getMapping=function(a,b){var c;return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.getMapping",b),c=new f(this),c.refresh(a,b),this},d.prototype.publishMessage=function(a,b,c){var d={};return a instanceof e?d=a.serialize():d.body=a,d=this.kuzzle.addHeaders(d,this.headers),this.kuzzle.query(this.buildQueryArgs("write","publish"),d,b,c),this},d.prototype.replaceDocument=function(a,b,c,d){var f=this,g={_id:a,body:b};return d||"function"!=typeof c||(d=c,c=null),g=f.kuzzle.addHeaders(g,this.headers),d?f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),c.version=b.result._version,void d(null,c))}):f.kuzzle.query(this.buildQueryArgs("write","createOrReplace"),g,c),this},d.prototype.subscribe=function(a,b,c){var d;return c||"function"!=typeof b||(c=b,b=null),this.kuzzle.callbackRequired("KuzzleDataCollection.subscribe",c),d=new g(this,b),d.renew(a,c)},d.prototype.truncate=function(a,b){var c={};return b||"function"!=typeof a||(b=a,a=null),c=this.kuzzle.addHeaders(c,this.headers),this.kuzzle.query(this.buildQueryArgs("admin","truncateCollection"),c,a,b),this},d.prototype.updateDocument=function(a,b,c,d){var f={_id:a,body:b},g=this;return d||"function"!=typeof c||(d=c,c=null),f=g.kuzzle.addHeaders(f,this.headers),d?g.kuzzle.query(this.buildQueryArgs("write","update"),f,c,function(a,b){var c;return a?d(a):(c=new e(g,b.result._id),void c.refresh(d))}):g.kuzzle.query(this.buildQueryArgs("write","update"),f,c),g},d.prototype.documentFactory=function(a,b){return new e(this,a,b)},d.prototype.roomFactory=function(a){return new g(this,a)},d.prototype.dataMappingFactory=function(a){return new f(this,a)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"./kuzzleDataMapping":5,"./kuzzleDocument":6,"./kuzzleRoom":8}],5:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},mapping:{value:b||{},enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["set","setHeaders"];return d&&-1===e.indexOf(a)}}):this}d.prototype.apply=function(a,b){var c=this,d=this.kuzzle.addHeaders({body:{properties:this.mapping}},this.headers);return b||"function"!=typeof a||(b=a,a=null),c.kuzzle.query(this.collection.buildQueryArgs("admin","updateMapping"),d,a,function(d){return d?b?b(d):!1:void c.refresh(a,b)}),this},d.prototype.refresh=function(a,b){var c=this,d=this.kuzzle.addHeaders({},this.headers);return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.query(this.collection.buildQueryArgs("admin","getMapping"),d,a,function(a,d){return a?b?b(a):!1:d.result[c.collection.index]?d.result[c.collection.index].mappings[c.collection.collection]?(c.mapping=d.result[c.collection.index].mappings[c.collection.collection].properties,void 0===c.mapping&&(c.mapping={}),void(b&&b(null,c))):b?b(new Error("No mapping found for collection "+c.collection.collection)):!1:b?b(new Error("No mapping found for index "+c.collection.index)):!1}),this},d.prototype.set=function(a,b){return this.mapping[a]=b,this},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],6:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{collection:{value:a.collection,enumerable:!0},dataCollection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},id:{value:void 0,enumerable:!0,writable:!0},content:{value:{},writable:!0,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},version:{value:void 0,enumerable:!0,writable:!0}}),!c&&b&&"object"==typeof b&&(c=b,b=null),c&&(c._version&&(this.version=c._version,delete c._version),this.setContent(c,!0)),b&&Object.defineProperty(this,"id",{value:b,enumerable:!0}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","refresh","save"];return d&&-1!==e.indexOf(a)}}):this}d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a._version=this.version,a=this.kuzzle.addHeaders(a,this.headers)},d.prototype.toString=function(){return JSON.stringify(this.serialize())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a,function(a){return a?b(a):void b(null,c.id)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.serialize(),a)},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");this.kuzzle.callbackRequired("KuzzleDocument.refresh",b),c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,e){var f;return a?b(a):(f=new d(c.dataCollection,c.id,e.result._source),f.version=e.result._version,void b(null,f))})},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.dataCollection.buildQueryArgs("write","createOrReplace"),c,a,function(a,c){return a?b?b(a):!1:(d.id=c.result._id,d.version=c.result._version,void(b&&b(null,d)))}),d},d.prototype.publish=function(a){var b=this.serialize();return this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this},d.prototype.setContent=function(a,b){var c=this;return b?this.content=a:Object.keys(a).forEach(function(b){c.content[b]=a[b]}),this},d.prototype.subscribe=function(a,b){var c;if(a&&!b&&"function"==typeof a&&(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDocument.subscribe",b),!this.id)throw new Error("KuzzleDocument.subscribe: cannot subscribe to a document if no ID has been provided");return c={ids:{values:[this.id]}},this.dataCollection.subscribe(c,a,b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{}],7:[function(a,b,c){function d(a){return Object.defineProperties(this,{kuzzle:{value:a,enumerable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0}}),this.setHeaders=a.setHeaders.bind(this),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["setHeaders"];return d&&-1===e.indexOf(a)}}):this}!function(){var a=["id","value"],b=["id","keys"],c={append:a,bgrewriteaof:[],bgsave:[],bitcount:["id","start","end"],bitop:["operation","destkey",b],bitpos:["id","bit",{__opts__:["start","end"]}],blpop:[b,"timeout"],brpoplpush:["source","destination"],dbsize:[],decrby:a,del:[b],discard:[],exec:[],exists:[b],expire:["id","seconds"],expireat:["id","timestamp"],flushdb:[],getbit:["id","offset"],getrange:["id","start","end"],hdel:["id",["field","fields"]],hexists:["id","field"],hincrby:["id","field","value"],hmset:["id","values"],hset:["id","field","value"],info:["section"],keys:["pattern"],lastsave:[],lindex:["id","idx"],linsert:["id","position","pivot","value"],lpush:["id",["value","values"]],lrange:["id","start","stop"],lrem:["id","count","value"],lset:["id","idx","value"],ltrim:["id","start","stop"],mset:["values"],multi:[],object:["subcommand","args"],pexpire:["id","milliseconds"],pexpireat:["id","timestamp"],pfadd:["id",["element","elements"]],pfmerge:["destkey",["sourcekey","sourcekeys"]],ping:[],psetex:["id","milliseconds","value"],publish:["channel","message"],randomkey:[],rename:["id","newkey"],renamenx:["id","newkey"],restore:["id","ttl","content"],rpoplpush:["source","destination"],sadd:["id",["member","members"]],save:[],set:["id","value",{__opts__:["ex","px","nx","xx"]}],sdiffstore:["destination",b],setbit:["id","offset","value"],setex:["id","seconds","value"],setrange:["id","offset","value"],sinterstore:["destination",b],sismember:["id","member"],smove:["id","destination","member"],sort:["id",{__opts__:["by","offset","count","get","direction","alpha","store"]}],spop:["id","count"],srem:["id",["member","members"]], +sunionstore:["destination",b],unwatch:[],wait:["numslaves","timeout"],zadd:["id",{__opts__:["nx","xx","ch","incr","score","member","members"]}],zcount:["id","min","max"],zincrby:["id","value","member"],zinterstore:["destination",b,{__opts__:["weight","weights","aggregate"]}],zlexcount:["id","min","max"],zrange:["id","start","stop",{__opts__:["withscores"]}],zrangebylex:["id","min","max",{__opts__:["offset","count"]}],zrangebyscore:["id","min","max",{__opts__:["withscores","offset","count"]}],zrem:["id","member"],zremrangebylex:["id","min","max"],zremrangebyscore:["id","min","max"],zrevrangebylex:["id","max","min",{__opts__:["offset","count"]}],zrevrangebyscore:["id","max","min",{__opts__:["withscores","offset","count"]}],zrevrank:["id","member"]};c.decr=c.get=c.dump=c.hgetall=c.hkeys=c.hlen=c.hstrlen=c.hvals=c.incr=c.llen=c.lpop=c.persist=c.pttl=c.rpop=c.scard=c.smembers=c.strlen=c.ttl=c.type=c.zcard=["id"],c.getset=c.lpushx=a,c.del=c.exists=c.mget=c.pfcount=c.sdiff=c.sinter=c.sunion=c.watch=[b],c.incrby=c.incrbyfloat=c.decrby,c.brpop=c.blpop,c.hget=c.hexists,c.hmget=c.hdel,c.hsetnx=c.hset,c.msetnx=c.mset,c.rpush=c.lpush,c.hincrbyfloat=c.hincrby,c.srandmember=c.spop,c.zrevrange=c.zrange,c.zscore=c.zrevrank,Object.keys(c).forEach(function(a){d.prototype[a]=function(){var b,d=Array.prototype.slice.call(arguments),e=null,f={controller:"ms",action:a},g={};return"function"==typeof d[d.length-1]&&(b=d.pop()),d.length&&"object"==typeof d[d.length-1]&&1===Object.keys(d[d.length-1]).length&&void 0!==d[d.length-1].queuable&&(e=d.pop()),c[a].forEach(function(a,b){void 0!==d[b]&&(Array.isArray(a)&&(a=Array.isArray(d[b])?a[1]:a[0]),"id"===a?g._id=d[b]:(g.body||(g.body={}),"object"==typeof a&&void 0!==a.__opts__?a.__opts__.forEach(function(a){void 0!==d[b][a]&&(g.body[a]=d[b][a])}):g.body[a]=d[b]))}),this.kuzzle.query(f,g,e,b),this}})}(),b.exports=d},{}],8:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:h.v4()},lastRenewal:{value:null,writable:!0},notifier:{value:null,writable:!0},queue:{value:[],writable:!0},renewalDelay:{value:500},scope:{value:b&&b.scope?b.scope:"all"},state:{value:b&&b.state?b.state:"done"},subscribing:{value:!1,writable:!0},users:{value:b&&b.users?b.users:"none"},collection:{value:a,enumerable:!0},kuzzle:{value:a.kuzzle,enumerable:!0},filters:{value:null,enumerable:!0,writable:!0},headers:{value:JSON.parse(JSON.stringify(a.headers)),enumerable:!0,writable:!0},metadata:{value:b&&b.metadata?b.metadata:{},enumerable:!0,writable:!0},roomId:{value:null,enumerable:!0,writable:!0},subscribeToSelf:{value:b&&"boolean"==typeof b.subscribeToSelf?b.subscribeToSelf:!0,enumerable:!0,writable:!0}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["count"];return d&&-1!==e.indexOf(a)}}):this}function e(a){return a.error?this.callback(a.error):"jwtTokenExpired"===a.action?(this.kuzzle.jwtToken=void 0,this.kuzzle.emitEvent("jwtTokenExpired")):void(this.kuzzle.requestHistory[a.requestId]?(this.subscribeToSelf&&this.callback(null,a),delete this.kuzzle.requestHistory[a.requestId]):this.callback(null,a))}function f(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}function g(){return"connected"!==this.kuzzle.state||this.subscribing?!1:!0}var h=a("node-uuid");d.prototype.count=function(a){var b;if(this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),!g.call(this))return this.queue.push({action:"count",args:[a]}),this;if(!this.roomId)throw new Error("KuzzleRoom.count: cannot count subscriptions on an inactive room");return this.kuzzle.query(this.collection.buildQueryArgs("subscribe","count"),b,function(b,c){return b?a(b):void a(null,c.result.count)}),this},d.prototype.renew=function(a,b){var c=Date.now(),d={scope:this.scope,state:this.state,users:this.users},g=this;return!b&&a&&"function"==typeof a&&(b=a,a=null),g.kuzzle.callbackRequired("KuzzleRoom.renew",b),g.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(a&&(g.filters=a),"connected"!==g.kuzzle.state?(g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,g):g.subscribing?(g.queue.push({action:"renew",args:[a,b]}),g):(g.unsubscribe(),g.roomId=null,g.subscribing=!0,g.callback=b,g.kuzzle.subscriptions.pending[g.id]=g,d.body=g.filters,d=g.kuzzle.addHeaders(d,this.headers),g.kuzzle.query(g.collection.buildQueryArgs("subscribe","on"),d,{metadata:g.metadata},function(a,b){if(delete g.kuzzle.subscriptions.pending[g.id],g.subscribing=!1,a)throw g.queue=[],new Error("Error during Kuzzle subscription: "+a.message);g.lastRenewal=c,g.roomId=b.result.roomId,g.channel=b.result.channel,g.kuzzle.subscriptions[g.roomId]||(g.kuzzle.subscriptions[g.roomId]={}),g.kuzzle.subscriptions[g.roomId][g.id]=g,g.notifier=e.bind(g),g.kuzzle.socket.on(g.channel,g.notifier),f.call(g)}),g))},d.prototype.unsubscribe=function(){var a,b=this,c=b.roomId;return g.call(this)?(c&&(b.kuzzle.socket.off(b.channel,this.notifier),1===Object.keys(b.kuzzle.subscriptions[c]).length?(delete b.kuzzle.subscriptions[c],0===Object.keys(b.kuzzle.subscriptions.pending).length?b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}):a=setInterval(function(){0===Object.keys(b.kuzzle.subscriptions.pending).length&&(b.kuzzle.subscriptions[c]||b.kuzzle.query(b.collection.buildQueryArgs("subscribe","off"),{body:{roomId:c}}),clearInterval(a))},100)):delete b.kuzzle.subscriptions[c][b.id],b.roomId=null),b):(b.queue.push({action:"unsubscribe",args:[]}),b)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":2}],9:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteProfile"},updateActionName:{value:"updateProfile"}}),c&&c.roles&&(c.roles=c.roles.map(function(b){return b._id&&b._source?new f(a,b._id,b._source):b})),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleRole");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c,d=this;if(!this.content.roles)throw new Error('Argument "roles" is mandatory in a profile. This argument contains an array of KuzzleRole or an array of id string');return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c=this.serialize(),d.kuzzle.query(d.kuzzleSecurity.buildQueryArgs("createOrReplaceProfile"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))}),d},d.prototype.addRole=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be a KuzzleRole or a id string');return this.content.roles||(this.content.roles=[]),this.content.roles.push(a),this},d.prototype.setRoles=function(a){if(!Array.isArray(a))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string');return a.map(function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "roles" must be an array of KuzzleRole or an array of string')}),this.content.roles=a,this},d.prototype.hydrate=function(a,b){var c=this,e={ids:[]};e.ids=this.content.roles.map(function(a){return"string"==typeof a?a:a instanceof f?a.id:void 0}),a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleProfile.hydrate",b),c.kuzzle.query(c.kuzzleSecurity.buildQueryArgs("mGetRoles"),{body:e},a,function(a,e){return a?b(a):void b(null,new d(c,c.id,{roles:e.result.hits}))})},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.roles&&Array.isArray(a.body.roles)?(a.body.roles=a.body.roles.map(function(a){return a instanceof f?a.id:a}),a):a},d.prototype.getRoles=function(){return this.content.roles},b.exports=d},{"./kuzzleRole":10,"./kuzzleSecurityDocument":12}],10:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),Object.defineProperties(this,{deleteActionName:{value:"deleteRole"},updateActionName:{value:"updateRole"}}),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.save=function(a,b){var c=this.serialize(),d=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceRole"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))})},b.exports=d},{"./kuzzleSecurityDocument":12}],11:[function(a,b,c){function d(a){return Object.defineProperty(this,"kuzzle",{value:a}),Object.defineProperty(this,"buildQueryArgs",{value:function(a){return{controller:"security",action:a}}}),this.kuzzle.bluebird?this.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["roleFactory","profileFactory","userFactory","isActionAllowed"];return d&&-1===e.indexOf(a)}}):this}var e=a("./kuzzleRole"),f=a("./kuzzleProfile"),g=a("./kuzzleUser");d.prototype.getRole=function(a,b,c){var d,f=this;if(!a)throw new Error("Id parameter is mandatory for getRole function");c||"function"!=typeof b||(c=b,b=null),d={_id:a},f.kuzzle.callbackRequired("KuzzleSecurity.getRole",c),f.kuzzle.query(this.buildQueryArgs("getRole"),d,b,function(a,b){return a?c(a):void c(null,new e(f,b.result._id,b.result._source))})},d.prototype.searchRoles=function(a,b,c){var d=this;c||"function"!=typeof b||(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchRoles",c),d.kuzzle.query(this.buildQueryArgs("searchRoles"),{body:a},b,function(a,b){var f;return a?c(a):(f=b.result.hits.map(function(a){return new e(d,a._id,a._source)}),void c(null,{total:b.result.total,roles:f}))})},d.prototype.createRole=function(a,b,c,d){var f=this,g={},h="createRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createRole: cannot create a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceRole":"createRole"),d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new e(f,b.result._id,b.result._source),void d(null,c))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateRole=function(a,b,c,d){var f=this,g={},h="updateRole";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateRole: cannot update a role without a role ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?f.kuzzle.query(this.buildQueryArgs(h),g,c,function(c){return c?d(c):void d(null,new e(f,a,b))}):f.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteRole=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteRole"),d,b)},d.prototype.roleFactory=function(a,b){return new e(this,a,b)},d.prototype.getProfile=function(a,b,c){var d,e=this,g=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getProfile function");c||"function"!=typeof b?void 0!==b.hydrate&&(g=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getProfile",c),e.kuzzle.query(this.buildQueryArgs("getProfile"),d,b,function(a,b){return a?c(a):(g||(b.result._source.roles=b.result._source.roles.map(function(a){var b={_id:a._id};return void 0!==a._source.restrictedTo&&(b.restrictedTo=a._source.restrictedTo),void 0!==a._source.allowInternalIndex&&(b.allowInternalIndex=a._source.allowInternalIndex),b})),void c(null,new f(e,b.result._id,b.result._source)))})},d.prototype.searchProfiles=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchProfiles",c),d.kuzzle.query(this.buildQueryArgs("searchProfiles"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new f(d,a._id,a._source)}),void c(null,{total:b.result.total,profiles:e}))})},d.prototype.createProfile=function(a,b,c,d){var e=this,g={},h="createProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createProfile: cannot create a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,c&&(h=c.replaceIfExist?"createOrReplaceProfile":"createProfile"),d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c;return a?d(a):(c=new f(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.updateProfile=function(a,b,c,d){var e=this,g={},h="updateProfile";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateProfile: cannot update a profile without a profile ID");d||"function"!=typeof c||(d=c,c=null),g._id=a,g.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),g,c,function(a,b){var c={};return a?d(a):(Object.keys(b.result._source).forEach(function(a){"roles"!==a&&(c[a]=b.result._source[a])}),c.roles=b.result._source.roles.map(function(a){return a._id}),void d(null,new f(e,b.result._id,c)))}):e.kuzzle.query(this.buildQueryArgs(h),g)},d.prototype.deleteProfile=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteProfile"),d,b)},d.prototype.profileFactory=function(a,b){return new f(this,a,b)},d.prototype.getUser=function(a,b,c){var d,e=this,f=!0;if(!a||"string"!=typeof a)throw new Error("Id parameter is mandatory for getUser function");c||"function"!=typeof b?void 0!==b.hydrate&&(f=b.hydrate):(c=b,b=null),d={_id:a},e.kuzzle.callbackRequired("KuzzleSecurity.getUser",c),e.kuzzle.query(this.buildQueryArgs("getUser"),d,b,function(a,b){return a?c(a):(f||(b.result._source.profile=b.result._source.profile._id),void c(null,new g(e,b.result._id,b.result._source)))})},d.prototype.searchUsers=function(a,b,c){var d=this;a.hydrate=!0,c||"function"!=typeof b?void 0!==b.hydrate&&(a.hydrate=b.hydrate):(c=b,b=null),d.kuzzle.callbackRequired("KuzzleSecurity.searchUsers",c),d.kuzzle.query(this.buildQueryArgs("searchUsers"),{body:a},b,function(a,b){var e;return a?c(a):(e=b.result.hits.map(function(a){return new g(d,a._id,a._source)}),void c(null,{total:b.result.total,users:e}))})},d.prototype.createUser=function(a,b,c,d){var e=this,f={},h="createUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.createUser: cannot create a user without a user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,c&&(h=c.replaceIfExist?"createOrReplaceUser":"createUser"),d?e.kuzzle.query(this.buildQueryArgs(h),f,null,function(a,b){var c;return a?d(a):(c=new g(e,b.result._id,b.result._source),void d(null,c))}):e.kuzzle.query(this.buildQueryArgs(h),f)},d.prototype.updateUser=function(a,b,c,d){var e=this,f={},h="updateUser";if(!a||"string"!=typeof a)throw new Error("KuzzleSecurity.updateUser: cannot update an user without an user ID");d||"function"!=typeof c||(d=c,c=null),f._id=a,f.body=b,d?e.kuzzle.query(this.buildQueryArgs(h),f,c,function(a,b){return a?d(a):void d(null,new g(e,b.result._id,b.result._source))}):e.kuzzle.query(this.buildQueryArgs(h),f,c)},d.prototype.deleteUser=function(a,b,c){var d={_id:a};c||"function"!=typeof b||(c=b,b=null),c?this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b,function(a,b){return a?c(a):void c(null,b.result._id)}):this.kuzzle.query(this.buildQueryArgs("deleteUser"),d,b)},d.prototype.userFactory=function(a,b){return new g(this,a,b)},d.prototype.isActionAllowed=function(a,b,c,d,e){var f;if(!a||"object"!=typeof a)throw new Error("rights parameter is mandatory for isActionAllowed function");if(!b||"string"!=typeof b)throw new Error("controller parameter is mandatory for isActionAllowed function");if(!c||"string"!=typeof c)throw new Error("action parameter is mandatory for isActionAllowed function");return f=a.filter(function(a){return a.controller===b||"*"===a.controller}).filter(function(a){return a.action===c||"*"===a.action}).filter(function(a){return a.index===d||"*"===a.index}).filter(function(a){return a.collection===e||"*"===a.collection}),f.some(function(a){return"allowed"===a.value})?"allowed":f.some(function(a){return"conditional"===a.value})?"conditional":"denied"},d.prototype.getUserRights=function(a,b,c){var d={_id:a},e=this;if(!a||"string"!=typeof a)throw new Error("userId parameter is mandatory for isActionAllowed function");c||"function"!=typeof b||(c=b,b=null),e.kuzzle.callbackRequired("Kuzzle.getUserRights",c),this.kuzzle.query(this.buildQueryArgs("getUserRights"),d,b,function(a,b){return a?c(a):void c(null,b.result.hits)})},b.exports=d},{"./kuzzleProfile":9,"./kuzzleRole":10,"./kuzzleUser":13}],12:[function(a,b,c){function d(a,b,c){if(!b)throw new Error("A security document must have an id");return Object.defineProperties(this,{kuzzle:{value:a.kuzzle},kuzzleSecurity:{value:a},id:{value:b,enumerable:!0},content:{value:{},writable:!0,enumerable:!0}}),c&&this.setContent(c,!0),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["delete","update"];return d&&-1!==e.indexOf(a)}}):void 0}d.prototype.setContent=function(a){return this.content=a,this},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a},d.prototype["delete"]=function(a,b){var c=this;a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.deleteActionName),{_id:this.id},a,function(a,c){return a?b?b(a):!1:void(b&&b(null,c.result._id))})},d.prototype.update=function(a,b,c){var d={},e=this;if("object"!=typeof a)throw new Error('Parameter "content" must be a object');b&&void 0===c&&"function"==typeof b&&(c=b,b=null),d._id=e.id,d.body=a,e.kuzzle.query(this.kuzzleSecurity.buildQueryArgs(this.updateActionName),d,b,function(a,b){return a?c?c(a):!1:(e.setContent(b.result._source),void(c&&c(null,e)))})},b.exports=d},{}],13:[function(a,b,c){function d(a,b,c){return e.call(this,a,b,c),c.profile&&c.profile._id&&c.profile._source&&(this.content.profile=new f(a,c.profile._id,c.profile._source)),Object.defineProperties(this,{deleteActionName:{value:"deleteUser"},updateActionName:{value:"updateUser"}}),a.kuzzle.bluebird?a.kuzzle.bluebird.promisifyAll(this,{suffix:"Promise",filter:function(a,b,c,d){var e=["hydrate","save"];return d&&-1!==e.indexOf(a)}}):void 0}var e=a("./kuzzleSecurityDocument"),f=a("./kuzzleProfile");d.prototype=Object.create(e.prototype,{constructor:{value:d}}),d.prototype.hydrate=function(a,b){var c=this;if(a&&void 0===b&&"function"==typeof a&&(b=a,a=null),c.kuzzle.callbackRequired("KuzzleUser.hydrate",b),!this.content.profile||"string"!=typeof this.content.profile)throw new Error("The User must contains a profile as string in order to be hydrated");c.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("getProfile"),{_id:this.content.profile},a,function(a,e){var g;return a?b(a):(g=new d(c.kuzzleSecurity,c.id,c.content),g.setProfile(new f(c.kuzzleSecurity,e.result._id,e.result._source)),void b(null,g))})},d.prototype.setProfile=function(a){if("string"!=typeof a&&!(a instanceof f))throw new Error('Parameter "profile" must be a KuzzleProfile or a string');return this.content.profile=a,this},d.prototype.save=function(a,b){var c=this.serialize(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.kuzzle.query(this.kuzzleSecurity.buildQueryArgs("createOrReplaceUser"),c,a,function(a){return a?b?b(a):!1:void(b&&b(null,d))}),d},d.prototype.serialize=function(){var a={};return this.id&&(a._id=this.id),a.body=this.content,a.body.profile&&a.body.profile.id&&(a.body.profile=a.body.profile.id),a},d.prototype.getProfiles=function(){return this.content.profile},b.exports=d},{"./kuzzleProfile":9,"./kuzzleSecurityDocument":12}]},{},[3]); //# sourceMappingURL=kuzzle.min.map \ No newline at end of file diff --git a/dist/kuzzle.min.map b/dist/kuzzle.min.map index 0633cb73e..6c3e570b0 100644 --- a/dist/kuzzle.min.map +++ b/dist/kuzzle.min.map @@ -1 +1 @@ -{"version":3,"sources":["kuzzle.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","cachedSetTimeout","len","run","cachedClearTimeout","Item","fun","array","this","noop","process","setTimeout","clearTimeout","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","2","Buffer","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","_mathRNG","Math","random","console","warn","setupNode","_rb","randomBytes","_nodeRNG","parse","buf","offset","ii","toLowerCase","replace","oct","_hexToByte","unparse","bth","_byteToHex","v1","options","b","clockseq","_clockseq","msecs","Date","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","v4","BufferClass","rnds","rng","_previousRoot","toString","substr","_seedBytes","uuid","define","amd","noConflict","window","3","cleanQueue","self","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","droppedRequest","emitEvent","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","requestId","response","action","error","message","requestHistory","Object","keys","key","dequeue","additionalQueue","uniqueQueue","dequeuingProcess","shift","max","replayInterval","queuing","offlineQueueLoader","isArray","filter","controller","hasOwnProperty","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","KuzzleSecurity","KuzzleMemoryStorage","KuzzleUser","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","loginAttempt","offlineQueuePush","offlineQueuePop","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","slice","eventProperties","listener","fn","connect","bluebird","promisifyAll","suffix","func","target","passes","whitelist","indexOf","reconnection","forceNew","connectionError","internal","disconnect","reconnect","checkToken","err","res","valid","setJwtToken","token","success","result","jwt","JSON","stringify","getJwtToken","login","strategy","credentials","expiresIn","body","queuable","logout","callbackRequired","whoAmI","security","_id","_source","getMyRights","hits","updateSelf","content","data","queryArgs","listenerId","knownEvents","listenerType","isValid","id","getAllStatistics","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","refreshIndex","getAutoRefresh","setAutoRefresh","autoRefresh","attr","object","meta","addHeaders","authorization","eventName","replayQueue","setDefaultIndex","setHeaders","startQueuing","stopQueuing","./kuzzleDataCollection","./kuzzleMemoryStorage","./security/kuzzleSecurity","./security/kuzzleUser","_process","node-uuid","socket.io-client","4","kuzzle","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_version","total","count","create","createDocument","document","serialize","updateIfExist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","from","size","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom","5","kuzzleDataCollection","properties","mappings","set","field","6","dataCollection","setContent","save","publish","values","7","bind","keyVal","idOrKeys","commands","append","bgrewriteaof","bgsave","bitcount","bitop","bitpos","__opts__","blpop","brpoplpush","dbsize","decrby","del","discard","exec","exists","expire","expireat","flushdb","getbit","getrange","hdel","hexists","hincrby","hmset","hset","info","lastsave","lindex","linsert","lpush","lrange","lrem","lset","ltrim","mset","multi","pexpire","pexpireat","pfadd","pfmerge","ping","psetex","randomkey","rename","renamenx","restore","rpoplpush","sadd","sdiffstore","setbit","setex","setrange","sinterstore","sismember","smove","sort","spop","srem","sunionstore","unwatch","wait","zadd","zcount","zincrby","zinterstore","zlexcount","zrange","zrangebylex","zrangebyscore","zrem","zremrangebylex","zremrangebyscore","zrevrangebylex","zrevrangebyscore","zrevrank","decr","get","dump","hgetall","hkeys","hlen","hstrlen","hvals","incr","llen","lpop","persist","pttl","rpop","scard","smembers","strlen","ttl","zcard","getset","lpushx","mget","pfcount","sdiff","sinter","sunion","watch","incrby","incrbyfloat","brpop","hget","hmget","hsetnx","msetnx","rpush","hincrbyfloat","srandmember","zrevrange","zscore","command","pop","v","8","channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","element","isReady","subscribeQuery","unsubscribe","interval","setInterval","clearInterval","9","KuzzleProfile","kuzzleSecurity","KuzzleSecurityDocument","deleteActionName","updateActionName","roles","map","role","KuzzleRole","constructor","addRole","setRoles","hydrate","getRoles","./kuzzleRole","./kuzzleSecurityDocument","10","11","getRole","searchRoles","createRole","replaceIfExist","updateRole","deleteRole","roleFactory","getProfile","formattedRole","restrictedTo","allowInternalIndex","searchProfiles","profiles","createProfile","updateProfile","updatedContent","property","deleteProfile","profileFactory","getUser","profile","searchUsers","createUser","updateUser","deleteUser","userFactory","isActionAllowed","rights","filteredRights","right","some","item","getUserRights","userId","./kuzzleProfile","./kuzzleUser","12","update","13","hydratedUser","setProfile","getProfiles"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file +{"version":3,"sources":["kuzzle.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","setTimeout","len","run","clearTimeout","Item","fun","array","this","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask",2,"_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","_mathRNG","Math","random","console","warn","setupNode","_rb","randomBytes","_nodeRNG","parse","buf","offset","ii","toLowerCase","replace","oct","_hexToByte","unparse","bth","_byteToHex","v1","options","b","clockseq","_clockseq","msecs","Date","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","v4","BufferClass","rnds","rng","_previousRoot","Buffer","toString","substr","_seedBytes","uuid","define","amd","noConflict","window",3,"cleanQueue","self","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","droppedRequest","emitEvent","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","requestId","response","action","error","message","requestHistory","Object","keys","key","dequeue","additionalQueue","uniqueQueue","dequeuingProcess","shift","max","replayInterval","queuing","offlineQueueLoader","isArray","filter","controller","hasOwnProperty","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","KuzzleSecurity","KuzzleMemoryStorage","KuzzleUser","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","loginAttempt","offlineQueuePush","offlineQueuePop","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","slice","eventProperties","listener","fn","connect","bluebird","promisifyAll","suffix","func","target","passes","whitelist","indexOf","reconnection","forceNew","connectionError","internal","disconnect","reconnect","checkToken","err","res","valid","setJwtToken","token","success","result","jwt","JSON","stringify","getJwtToken","login","strategy","credentials","expiresIn","body","queuable","logout","callbackRequired","whoAmI","security","_id","_source","getMyRights","hits","updateSelf","content","data","queryArgs","listenerId","knownEvents","listenerType","isValid","id","getAllStatistics","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","refreshIndex","getAutoRefresh","setAutoRefresh","autoRefresh","attr","object","meta","addHeaders","authorization","eventName","replayQueue","setDefaultIndex","setHeaders","startQueuing","stopQueuing","./kuzzleDataCollection","./kuzzleMemoryStorage","./security/kuzzleSecurity","./security/kuzzleUser","_process","node-uuid","socket.io-client",4,"kuzzle","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_version","total","count","create","createDocument","document","serialize","updateIfExist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","from","size","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",5,"kuzzleDataCollection","properties","mappings","set","field",6,"dataCollection","setContent","save","publish","values",7,"bind","keyVal","idOrKeys","commands","append","bgrewriteaof","bgsave","bitcount","bitop","bitpos","__opts__","blpop","brpoplpush","dbsize","decrby","del","discard","exec","exists","expire","expireat","flushdb","getbit","getrange","hdel","hexists","hincrby","hmset","hset","info","lastsave","lindex","linsert","lpush","lrange","lrem","lset","ltrim","mset","multi","pexpire","pexpireat","pfadd","pfmerge","ping","psetex","randomkey","rename","renamenx","restore","rpoplpush","sadd","sdiffstore","setbit","setex","setrange","sinterstore","sismember","smove","sort","spop","srem","sunionstore","unwatch","wait","zadd","zcount","zincrby","zinterstore","zlexcount","zrange","zrangebylex","zrangebyscore","zrem","zremrangebylex","zremrangebyscore","zrevrangebylex","zrevrangebyscore","zrevrank","decr","get","dump","hgetall","hkeys","hlen","hstrlen","hvals","incr","llen","lpop","persist","pttl","rpop","scard","smembers","strlen","ttl","zcard","getset","lpushx","mget","pfcount","sdiff","sinter","sunion","watch","incrby","incrbyfloat","brpop","hget","hmget","hsetnx","msetnx","rpush","hincrbyfloat","srandmember","zrevrange","zscore","command","pop","v",8,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","element","isReady","subscribeQuery","unsubscribe","interval","setInterval","clearInterval",9,"KuzzleProfile","kuzzleSecurity","KuzzleSecurityDocument","deleteActionName","updateActionName","roles","map","role","KuzzleRole","constructor","addRole","setRoles","hydrate","getRoles","./kuzzleRole","./kuzzleSecurityDocument",10,11,"getRole","searchRoles","createRole","replaceIfExist","updateRole","deleteRole","roleFactory","getProfile","formattedRole","restrictedTo","allowInternalIndex","searchProfiles","profiles","createProfile","updateProfile","updatedContent","property","deleteProfile","profileFactory","getUser","profile","searchUsers","createUser","updateUser","deleteUser","userFactory","isActionAllowed","rights","filteredRights","right","some","item","getUserRights","userId","./kuzzleProfile","./kuzzleUser",12,"update",13,"hydratedUser","setProfile","getProfiles"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file diff --git a/package.json b/package.json index 9b00978e7..3f1c9d900 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kuzzle-sdk", - "version": "1.9.2", + "version": "1.9.3", "description": "Official Javascript SDK for Kuzzle", "author": "The Kuzzle Team ", "repository": { diff --git a/src/kuzzleDataCollection.js b/src/kuzzleDataCollection.js index 29d7eec57..e617c9811 100644 --- a/src/kuzzleDataCollection.js +++ b/src/kuzzleDataCollection.js @@ -402,9 +402,10 @@ KuzzleDataCollection.prototype.getMapping = function (options, cb) { * * @param {object} document - either a KuzzleDocument instance or a JSON object * @param {object} [options] - optional arguments + * @param {responseCallback} [cb] - Returns a raw Kuzzle response * @returns {*} this */ -KuzzleDataCollection.prototype.publishMessage = function (document, options) { +KuzzleDataCollection.prototype.publishMessage = function (document, options, cb) { var data = {}; if (document instanceof KuzzleDocument) { @@ -414,7 +415,7 @@ KuzzleDataCollection.prototype.publishMessage = function (document, options) { } data = this.kuzzle.addHeaders(data, this.headers); - this.kuzzle.query(this.buildQueryArgs('write', 'publish'), data, options); + this.kuzzle.query(this.buildQueryArgs('write', 'publish'), data, options, cb); return this; };