From 6f93f8ba116c3d590964257bfae819b568824866 Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 10:55:11 +0100 Subject: [PATCH 1/7] Added the whoAmI method --- src/kuzzle.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/kuzzle.js b/src/kuzzle.js index 05b85aed4..288fdc647 100644 --- a/src/kuzzle.js +++ b/src/kuzzle.js @@ -453,6 +453,23 @@ Kuzzle.prototype.checkToken = function (token, callback) { return self; }; +/** + * Fetches the current user. + * + * @param {function} callback The callback to be called when the response is + * available. The signature is `function(error, response)`. + * @return {Kuzzle} The Kuzzle instance to enable chaining. + */ +Kuzzle.prototype.whoAmI = function (callback) { + var self = this; + + this.callbackRequired('Kuzzle.checkToken', callback); + + this.query({controller: 'auth', action: 'getCurrentUser'}, {}, {}, callback); + + return self; +}; + /** * Clean up the queue, ensuring the queryTTL and queryMaxSize properties are respected */ From ab48b00a5c483ba299d2ad2d838a9d36f2f6f325 Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 10:55:26 +0100 Subject: [PATCH 2/7] Added the whoAmI tests --- test/kuzzle/methods.test.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/kuzzle/methods.test.js b/test/kuzzle/methods.test.js index 079d9f630..67897d960 100644 --- a/test/kuzzle/methods.test.js +++ b/test/kuzzle/methods.test.js @@ -542,4 +542,24 @@ describe('Kuzzle methods', function () { } }); }); + + describe('#whoAmI', function () { + it('should send the getCurrentUser after call', function () { + var kuzzle; + + this.timeout(200); + + kuzzle = new Kuzzle('nowhere', { + connect: 'manual' + }); + + kuzzle.queuing = true; + + kuzzle.whoAmI(function (err, res) {}); + + should(kuzzle.offlineQueue.length).be.exactly(1); + should(kuzzle.offlineQueue[0].query.action).be.exactly('getCurrentUser'); + should(kuzzle.offlineQueue[0].query.controller).be.exactly('auth'); + }); + }); }); From cb015b1b784241ed561bf8c9389268cad8b615dd Mon Sep 17 00:00:00 2001 From: Travis CI Date: Thu, 4 Feb 2016 09:58:35 +0000 Subject: [PATCH 3/7] Travis CI - [ci skip] - automatic dist folder --- dist/kuzzle.js | 25 +++++++++++++++++++++---- dist/kuzzle.min.js | 2 +- dist/kuzzle.min.map | 2 +- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/dist/kuzzle.js b/dist/kuzzle.js index 1e51e7259..8ed335e6e 100644 --- a/dist/kuzzle.js +++ b/dist/kuzzle.js @@ -514,7 +514,9 @@ module.exports = Kuzzle = function (url, options, cb) { return this.bluebird.promisifyAll(this, { suffix: 'Promise', filter: function (name, func, target, passes) { - var whitelist = ['getAllStatistics', 'getServerInfo', 'getStatistics', 'listCollections', 'listIndexes', 'login', 'logout', 'now', 'query']; + var whitelist = ['getAllStatistics', 'getServerInfo', 'getStatistics', + 'listCollections', 'listIndexes', 'login', 'logout', 'now', 'query', + 'checkToken']; return passes && whitelist.indexOf(name) !== -1; } @@ -719,15 +721,30 @@ Kuzzle.prototype.checkToken = function (token, callback) { } }; - if (typeof callback !== 'function') { - throw new Error('The provided callback is not a function'); - } + this.callbackRequired('Kuzzle.checkToken', callback); this.query({controller: 'auth', action: 'checkToken'}, request, {}, callback); return self; }; +/** + * Fetches the current user. + * + * @param {function} callback The callback to be called when the response is + * available. The signature is `function(error, response)`. + * @return {Kuzzle} The Kuzzle instance to enable chaining. + */ +Kuzzle.prototype.whoAmI = function (callback) { + var self = this; + + this.callbackRequired('Kuzzle.checkToken', callback); + + this.query({controller: 'auth', action: 'getCurrentUser'}, {}, {}, callback); + + return self; +}; + /** * Clean up the queue, ensuring the queryTTL and queryMaxSize properties are respected */ diff --git a/dist/kuzzle.min.js b/dist/kuzzle.min.js index c2491a863..c4b204dc4 100644 --- a/dist/kuzzle.min.js +++ b/dist/kuzzle.min.js @@ -1,3 +1,3 @@ // Official Javascript SDK for Kuzzle v1.4.0 - 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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){c.error&&"Token expired"===c.error.message&&h.call(d,"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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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)})})}function h(a){var b=this,c=Array.prototype.slice.call(arguments,1);b.eventListeners[a].forEach(function(a){a.fn.apply(b,c)})}var i=a("node-uuid"),j=a("./kuzzleDataCollection");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:[],error:[],disconnected:[],reconnected:[],jwtTokenExpired:[]}},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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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")}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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),h.call(a,"connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){a.state="error",h.call(a,"error"),a.connectCB&&a.connectCB(b)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),h.call(a,"disconnected")}),a.socket.on("reconnect",function(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),h.call(a,"reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:i.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{},function(c){null===c?(b.setJwtToken(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}};if("function"!=typeof b)throw new Error("The provided callback is not a function");return this.query({controller:"auth",action:"checkToken"},d,{},b),c},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=i.v1(),this.eventListeners[a].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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new j(this,a,b,c)),this.collections[a][b]},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.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,h={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){h.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){h.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(h[g]=b[g]);return h=j.addHeaders(h,this.headers),void 0!==j.jwtToken&&(h.headers=h.headers||{},h.headers.authorization="Bearer "+j.jwtToken),a.collection&&(h.collection=a.collection),a.index&&(h.index=a.index),h.requestId||(h.requestId=i.v4()),"connected"===j.state||c&&c.queuable===!1?e.call(this,h,f):(j.queuing||-1!==["initializing","connecting"].indexOf(j.state))&&(d.call(this,h,f),j.queueFilter?j.queueFilter(h)&&j.offlineQueue.push({ts:Date.now(),query:h,cb:f}):j.offlineQueue.push({ts:Date.now(),query:h,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]=[]}else b.forEach(function(a){c.eventListeners[a]=[]})},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].forEach(function(c,e){c.id===b&&d.eventListeners[a].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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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):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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); +!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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){c.error&&"Token expired"===c.error.message&&h.call(d,"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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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)})})}function h(a){var b=this,c=Array.prototype.slice.call(arguments,1);b.eventListeners[a].forEach(function(a){a.fn.apply(b,c)})}var i=a("node-uuid"),j=a("./kuzzleDataCollection");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:[],error:[],disconnected:[],reconnected:[],jwtTokenExpired:[]}},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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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")}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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),h.call(a,"connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){a.state="error",h.call(a,"error"),a.connectCB&&a.connectCB(b)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),h.call(a,"disconnected")}),a.socket.on("reconnect",function(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),h.call(a,"reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:i.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{},function(c){null===c?(b.setJwtToken(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,{},b),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return this.callbackRequired("Kuzzle.checkToken",a),this.query({controller:"auth",action:"getCurrentUser"},{},{},a),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=i.v1(),this.eventListeners[a].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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new j(this,a,b,c)),this.collections[a][b]},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.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,h={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){h.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){h.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(h[g]=b[g]);return h=j.addHeaders(h,this.headers),void 0!==j.jwtToken&&(h.headers=h.headers||{},h.headers.authorization="Bearer "+j.jwtToken),a.collection&&(h.collection=a.collection),a.index&&(h.index=a.index),h.requestId||(h.requestId=i.v4()),"connected"===j.state||c&&c.queuable===!1?e.call(this,h,f):(j.queuing||-1!==["initializing","connecting"].indexOf(j.state))&&(d.call(this,h,f),j.queueFilter?j.queueFilter(h)&&j.offlineQueue.push({ts:Date.now(),query:h,cb:f}):j.offlineQueue.push({ts:Date.now(),query:h,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]=[]}else b.forEach(function(a){c.eventListeners[a]=[]})},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].forEach(function(c,e){c.id===b&&d.eventListeners[a].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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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):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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); //# sourceMappingURL=kuzzle.min.map \ No newline at end of file diff --git a/dist/kuzzle.min.map b/dist/kuzzle.min.map index d5fe7ea49..cf7dbfab5 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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","event","args","prototype","slice","arguments","eventListeners","listener","fn","apply","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","connected","disconnected","reconnected","jwtTokenExpired","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","callbackRequired","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","event","args","prototype","slice","arguments","eventListeners","listener","fn","apply","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","connected","disconnected","reconnected","jwtTokenExpired","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","whoAmI","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file From 46fa743774913be6c52b8fd6a314d080ce4a6b5e Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 11:08:23 +0100 Subject: [PATCH 4/7] Fixed the generated dist for bower to branch --- dist/kuzzle.min.js | 7 +------ dist/kuzzle.min.map | 6 +----- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/dist/kuzzle.min.js b/dist/kuzzle.min.js index 953619c25..8fb75275b 100644 --- a/dist/kuzzle.min.js +++ b/dist/kuzzle.min.js @@ -1,8 +1,3 @@ -<<<<<<< HEAD // Official Javascript SDK for Kuzzle v1.4.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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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,"emitEvent",{value:function(a){var b=Date.now(),c=Array.prototype.slice.call(arguments,1);return this.eventListeners[a].lastEmitted&&this.eventListeners[a].lastEmitted>=b-this.eventTimeout?!1:(this.eventListeners[a].listeners.forEach(function(a){a.fn.apply(this,c)}),void(this.eventListeners[a].lastEmitted=b))}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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){a.state="error",a.emitEvent("error"),a.connectCB&&a.connectCB(b)}),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(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},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,{},function(c){null===c?(b.setJwtToken(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,{},b),c},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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new i(this,a,b,c)),this.collections[a][b]},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.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&&(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?e.call(this,i,f):(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.offlineQueue.push({ts:Date.now(),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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); -======= -// Official Javascript SDK for Kuzzle v1.4.0 - 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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){c.error&&"Token expired"===c.error.message&&h.call(d,"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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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)})})}function h(a){var b=this,c=Array.prototype.slice.call(arguments,1);b.eventListeners[a].forEach(function(a){a.fn.apply(b,c)})}var i=a("node-uuid"),j=a("./kuzzleDataCollection");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:[],error:[],disconnected:[],reconnected:[],jwtTokenExpired:[]}},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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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")}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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),h.call(a,"connected"),a.connectCB&&a.connectCB(null,a)}),a.socket.on("connect_error",function(b){a.state="error",h.call(a,"error"),a.connectCB&&a.connectCB(b)}),a.socket.on("disconnect",function(){a.state="offline",a.autoReconnect||a.disconnect(),a.autoQueue&&(a.queuing=!0),h.call(a,"disconnected")}),a.socket.on("reconnect",function(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),h.call(a,"reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},Kuzzle.prototype.logout=function(a){var b=this,c={action:"logout",controller:"auth",requestId:i.v4(),body:{}};return this.query({controller:"auth",action:"logout"},c,{},function(c){null===c?(b.setJwtToken(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,{},b),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return this.callbackRequired("Kuzzle.checkToken",a),this.query({controller:"auth",action:"getCurrentUser"},{},{},a),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=i.v1(),this.eventListeners[a].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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new j(this,a,b,c)),this.collections[a][b]},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.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,h={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){h.metadata[a]=c.metadata[a]}),c.queuable===!1&&"offline"===j.state))return j;b.metadata&&Object.keys(b.metadata).forEach(function(a){h.metadata[a]=b.metadata[a]});for(g in b)"metadata"!==g&&b.hasOwnProperty(g)&&(h[g]=b[g]);return h=j.addHeaders(h,this.headers),void 0!==j.jwtToken&&(h.headers=h.headers||{},h.headers.authorization="Bearer "+j.jwtToken),a.collection&&(h.collection=a.collection),a.index&&(h.index=a.index),h.requestId||(h.requestId=i.v4()),"connected"===j.state||c&&c.queuable===!1?e.call(this,h,f):(j.queuing||-1!==["initializing","connecting"].indexOf(j.state))&&(d.call(this,h,f),j.queueFilter?j.queueFilter(h)&&j.offlineQueue.push({ts:Date.now(),query:h,cb:f}):j.offlineQueue.push({ts:Date.now(),query:h,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]=[]}else b.forEach(function(a){c.eventListeners[a]=[]})},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].forEach(function(c,e){c.id===b&&d.eventListeners[a].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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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):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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); ->>>>>>> cb015b1b784241ed561bf8c9389268cad8b615dd +!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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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,"emitEvent",{value:function(a){var b=Date.now(),c=Array.prototype.slice.call(arguments,1);return this.eventListeners[a].lastEmitted&&this.eventListeners[a].lastEmitted>=b-this.eventTimeout?!1:(this.eventListeners[a].listeners.forEach(function(a){a.fn.apply(this,c)}),void(this.eventListeners[a].lastEmitted=b))}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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){a.state="error",a.emitEvent("error"),a.connectCB&&a.connectCB(b)}),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(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},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,{},function(c){null===c?(b.setJwtToken(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,{},b),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return this.callbackRequired("Kuzzle.checkToken",a),this.query({controller:"auth",action:"getCurrentUser"},{},{},a),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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new i(this,a,b,c)),this.collections[a][b]},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.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&&(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?e.call(this,i,f):(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.offlineQueue.push({ts:Date.now(),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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); //# sourceMappingURL=kuzzle.min.map \ No newline at end of file diff --git a/dist/kuzzle.min.map b/dist/kuzzle.min.map index d97fb5a89..2f5ce5b96 100644 --- a/dist/kuzzle.min.map +++ b/dist/kuzzle.min.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","args","prototype","slice","arguments","listener","fn","apply","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"mappings":"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","file":"kuzzle.min.js"} -======= -{"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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","event","args","prototype","slice","arguments","eventListeners","listener","fn","apply","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","connected","disconnected","reconnected","jwtTokenExpired","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","whoAmI","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"mappings":"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","file":"kuzzle.min.js"} ->>>>>>> cb015b1b784241ed561bf8c9389268cad8b615dd +{"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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","args","prototype","slice","arguments","listener","fn","apply","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","whoAmI","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file From 439de11fd66b0dd37eb712506e641cdf66967904 Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 11:10:36 +0100 Subject: [PATCH 5/7] Fixed callbackRequired call --- src/kuzzle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/kuzzle.js b/src/kuzzle.js index 7a39608a6..3f5620a59 100644 --- a/src/kuzzle.js +++ b/src/kuzzle.js @@ -488,7 +488,7 @@ Kuzzle.prototype.checkToken = function (token, callback) { Kuzzle.prototype.whoAmI = function (callback) { var self = this; - this.callbackRequired('Kuzzle.checkToken', callback); + this.callbackRequired('Kuzzle.whoAmI', callback); this.query({controller: 'auth', action: 'getCurrentUser'}, {}, {}, callback); From dfdc7ad868514a5513ffaae5ac978968005ba98e Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 11:16:11 +0100 Subject: [PATCH 6/7] Promisification of the whoAmI method --- src/kuzzle.js | 2 +- test/kuzzle/constructor.test.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/kuzzle.js b/src/kuzzle.js index 3f5620a59..959506c91 100644 --- a/src/kuzzle.js +++ b/src/kuzzle.js @@ -266,7 +266,7 @@ module.exports = Kuzzle = function (url, options, cb) { filter: function (name, func, target, passes) { var whitelist = ['getAllStatistics', 'getServerInfo', 'getStatistics', 'listCollections', 'listIndexes', 'login', 'logout', 'now', 'query', - 'checkToken']; + 'checkToken', 'whoAmI']; return passes && whitelist.indexOf(name) !== -1; } diff --git a/test/kuzzle/constructor.test.js b/test/kuzzle/constructor.test.js index a12a888d6..c9b4df77f 100644 --- a/test/kuzzle/constructor.test.js +++ b/test/kuzzle/constructor.test.js @@ -186,6 +186,7 @@ describe('Kuzzle constructor', () => { should.exist(kuzzle.nowPromise); should.exist(kuzzle.queryPromise); should.exist(kuzzle.checkTokenPromise); + should.exist(kuzzle.whoAmIPromise); should.not.exist(kuzzle.removeAllListenersPromise); should.not.exist(kuzzle.removeListenerPromise); should.not.exist(kuzzle.replayQueuePromise); From 8e578b060a1168e6e9d1ad42b7a71ba7768045ce Mon Sep 17 00:00:00 2001 From: Luca Marchesini Date: Thu, 4 Feb 2016 11:22:03 +0100 Subject: [PATCH 7/7] Dist fixed --- dist/kuzzle.js | 4 ++-- dist/kuzzle.min.js | 2 +- dist/kuzzle.min.map | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/kuzzle.js b/dist/kuzzle.js index 567541d42..68bf476f2 100644 --- a/dist/kuzzle.js +++ b/dist/kuzzle.js @@ -541,7 +541,7 @@ module.exports = Kuzzle = function (url, options, cb) { filter: function (name, func, target, passes) { var whitelist = ['getAllStatistics', 'getServerInfo', 'getStatistics', 'listCollections', 'listIndexes', 'login', 'logout', 'now', 'query', - 'checkToken']; + 'checkToken', 'whoAmI']; return passes && whitelist.indexOf(name) !== -1; } @@ -763,7 +763,7 @@ Kuzzle.prototype.checkToken = function (token, callback) { Kuzzle.prototype.whoAmI = function (callback) { var self = this; - this.callbackRequired('Kuzzle.checkToken', callback); + this.callbackRequired('Kuzzle.whoAmI', callback); this.query({controller: 'auth', action: 'getCurrentUser'}, {}, {}, callback); diff --git a/dist/kuzzle.min.js b/dist/kuzzle.min.js index 8fb75275b..626f7e8fd 100644 --- a/dist/kuzzle.min.js +++ b/dist/kuzzle.min.js @@ -1,3 +1,3 @@ // Official Javascript SDK for Kuzzle v1.4.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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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,"emitEvent",{value:function(a){var b=Date.now(),c=Array.prototype.slice.call(arguments,1);return this.eventListeners[a].lastEmitted&&this.eventListeners[a].lastEmitted>=b-this.eventTimeout?!1:(this.eventListeners[a].listeners.forEach(function(a){a.fn.apply(this,c)}),void(this.eventListeners[a].lastEmitted=b))}}),c&&c.connect&&"auto"!==c.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"];return d&&-1!==e.indexOf(a)}}):this},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){a.state="error",a.emitEvent("error"),a.connectCB&&a.connectCB(b)}),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(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},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,{},function(c){null===c?(b.setJwtToken(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,{},b),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return this.callbackRequired("Kuzzle.checkToken",a),this.query({controller:"auth",action:"getCurrentUser"},{},{},a),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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new i(this,a,b,c)),this.collections[a][b]},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.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&&(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?e.call(this,i,f):(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.offlineQueue.push({ts:Date.now(),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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); +!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;gb;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)},{}],2:[function(a,b,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)}function e(a,b){var c=Date.now(),d=this;(void 0!==d.jwtToken||b)&&d.socket.once(a.requestId,function(c){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(a,a.offlineQueue[0].query,a.offlineQueue[0].cb),a.offlineQueue.shift(),setTimeout(function(){f.call(a)},Math.max(0,a.replayInterval))):a.queuing=!1}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");b.exports=Kuzzle=function(b,c,d){var e=this;if(!(this instanceof Kuzzle))return new Kuzzle(b,c,d);if(d||"function"!=typeof c||(d=c,c=null),!b||""===b)throw new Error("URL argument missing");return Object.defineProperties(this,{collections:{value:{},writable:!0},connectCB:{value:d},eventListeners:{value:{connected:{lastEmitted:null,listeners:[]},error:{lastEmitted:null,listeners:[]},disconnected:{lastEmitted:null,listeners:[]},reconnected:{lastEmitted:null,listeners:[]},jwtTokenExpired:{lastEmitted:null,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:c&&"boolean"==typeof c.autoReconnect?c.autoReconnect:!0,enumerable:!0},defaultIndex:{value:c&&"string"==typeof c.defaultIndex?c.defaultIndex:void 0,writable:!0,enumerable:!0},reconnectionDelay:{value:c&&"number"==typeof c.reconnectionDelay?c.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}}),"undefined"!=typeof window&&window.io?this.io=window.io:this.io=a("socket.io-client"),c&&(Object.keys(c).forEach(function(a){e.hasOwnProperty(a)&&Object.getOwnPropertyDescriptor(e,a).writable&&(e[a]=c[a])}),"auto"===c.offlineMode&&this.autoReconnect&&(this.autoQueue=this.autoReplay=this.autoResubscribe=!0)),Object.defineProperty(this,"isValid",{value:function(){if("disconnected"===e.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,"emitEvent",{value:function(a){var b=Date.now(),c=Array.prototype.slice.call(arguments,1);return this.eventListeners[a].lastEmitted&&this.eventListeners[a].lastEmitted>=b-this.eventTimeout?!1:(this.eventListeners[a].listeners.forEach(function(a){a.fn.apply(this,c)}),void(this.eventListeners[a].lastEmitted=b))}}),c&&c.connect&&"auto"!==c.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)}}):this},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){a.state="error",a.emitEvent("error"),a.connectCB&&a.connectCB(b)}),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(){a.state="connected",a.autoResubscribe&&g.call(a),a.autoReplay&&(d.call(a),f.call(a)),a.emitEvent("reconnected")}),this)},Kuzzle.prototype.setJwtToken=function(a){return this.jwtToken=a,this},Kuzzle.prototype.getJwtToken=function(){return this.jwtToken},Kuzzle.prototype.login=function(a,b,c,d){var e=this,f={strategy:a};return d||"function"!=typeof c||(d=c,c=null),Object.keys(b).forEach(function(a){f[a]=b[a]}),-1!==["number","string"].indexOf(typeof c)&&(f.expiresIn=c),this.query({controller:"auth",action:"login"},{body:f},{},function(a,b){if(null===a)e.setJwtToken(b.result.jwt),g.call(e),"function"==typeof d&&d(null,e);else{if("function"!=typeof d)throw new Error(a.message);d(a)}}),e},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,{},function(c){null===c?(b.setJwtToken(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,{},b),c},Kuzzle.prototype.whoAmI=function(a){var b=this;return this.callbackRequired("Kuzzle.whoAmI",a),this.query({controller:"auth",action:"getCurrentUser"},{},{},a),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,c){if(this.isValid(),1===arguments.length?(b=arguments[0],a=this.defaultIndex):2===arguments.length&&"object"==typeof b&&(c=b,b=a,a=this.defaultIndex),!a)throw new Error("Unable to create a new data collection object: no index specified");return this.collections[a]||(this.collections[a]={}),this.collections[a][b]||(this.collections[a][b]=new i(this,a,b,c)),this.collections[a][b]},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.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&&(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?e.call(this,i,f):(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.offlineQueue.push({ts:Date.now(),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}},{"./kuzzleDataCollection":3,"node-uuid":1,"socket.io-client":void 0}],3:[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.toJSON():g.body=b,c&&(h=c.updateIfExist?"createOrReplace":"create"),a&&(g._id=a),g.persist=!0,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["delete"]=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","deleteCollection"),c,a,b),this},d.prototype.deleteDocument=function(a,b,c){var d,e={};return"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),this},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){return b||"function"!=typeof a||(b=a,a=null),this.kuzzle.callbackRequired("KuzzleDataCollection.fetchAll",b),this.advancedSearch({},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.toJSON():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":4,"./kuzzleDocument":5,"./kuzzleRoom":6}],4:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{collection:{value:a,eunmerable:!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},{}],5:[function(a,b,c){function d(a,b,c){return Object.defineProperties(this,{queue:{value:[],writable:!0},refreshing:{value:!1,writable:!0},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}function e(){for(var a;this.queue.length>0;)a=this.queue.shift(),this[a.action].apply(this,a.args)}d.prototype.toJSON=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.toJSON())},d.prototype["delete"]=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"delete",args:[a,b]}),this;if(!this.id)throw new Error("KuzzleDocument.delete: cannot delete a document without a document ID");return b?this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a,function(a){return a?b(a):void b(null,c)}):this.kuzzle.query(this.dataCollection.buildQueryArgs("write","delete"),this.toJSON(),a),this},d.prototype.refresh=function(a,b){var c=this;if(b||"function"!=typeof a||(b=a,a=null),this.refreshing)return this.queue.push({action:"refresh",args:[a,b]}),this;if(!c.id)throw new Error("KuzzleDocument.refresh: cannot retrieve a document if no ID has been provided");return c.refreshing=!0,c.kuzzle.query(c.dataCollection.buildQueryArgs("read","get"),{_id:c.id},a,function(a,d){return a?(c.refreshing=!1,c.queue=[],b?b(a):!1):(c.version=d.result._version,c.content=d.result._source,b&&b(null,c),c.refreshing=!1,void e.call(c))}),this},d.prototype.save=function(a,b){var c=this.toJSON(),d=this;return a&&void 0===b&&"function"==typeof a&&(b=a,a=null),d.refreshing?(d.queue.push({action:"save",args:[a,b]}),d):(c.persist=!0,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.toJSON();return this.refreshing?(this.queue.push({action:"publish",args:[a]}),this):(this.kuzzle.query(this.dataCollection.buildQueryArgs("write","publish"),b,a),this)},d.prototype.setContent=function(a,b){var c=this;return this.refreshing?(this.queue.push({action:"setContent",args:[a,b]}),this):(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},{}],6:[function(a,b,c){function d(a,b){return Object.defineProperties(this,{callback:{value:null,writable:!0},channel:{value:null,writable:!0},id:{value:g.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)}var g=a("node-uuid");d.prototype.count=function(a){var b;return this.kuzzle.callbackRequired("KuzzleRoom.count",a),b=this.kuzzle.addHeaders({body:{roomId:this.roomId}},this.headers),this.subscribing?(this.queue.push({action:"count",args:[a]}),this):(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.lastRenewal&&c-g.lastRenewal<=g.renewalDelay?g:(g.lastRenewal=c,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.kuzzle.callbackRequired("KuzzleRoom.renew",b),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.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 b.subscribing?(b.queue.push({action:"unsubscribe",args:[]}),b):(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)},d.prototype.setHeaders=function(a,b){return this.kuzzle.setHeaders.call(this,a,b),this},b.exports=d},{"node-uuid":1}]},{},[2]); //# sourceMappingURL=kuzzle.min.map \ No newline at end of file diff --git a/dist/kuzzle.min.map b/dist/kuzzle.min.map index 2f5ce5b96..154f87351 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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","args","prototype","slice","arguments","listener","fn","apply","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","whoAmI","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"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","_window","setupBrowser","_crypto","crypto","msCrypto","_rng","getRandomValues","_rnds8","Uint8Array","_whatwgRNG","_rnds","Array","_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",2,"cleanQueue","self","this","now","lastDocumentIndex","queueTTL","offlineQueue","forEach","query","index","ts","splice","queueMaxSize","emitRequest","request","cb","undefined","jwtToken","socket","once","requestId","response","error","message","emitEvent","emit","requestHistory","Object","keys","key","dequeue","shift","setTimeout","max","replayInterval","queuing","renewAllSubscriptions","subscriptions","roomId","subscriptionId","subscription","renew","callback","KuzzleDataCollection","Kuzzle","url","defineProperties","collections","value","writable","connectCB","eventListeners","connected","lastEmitted","listeners","disconnected","reconnected","jwtTokenExpired","eventTimeout","io","state","pending","autoReconnect","enumerable","defaultIndex","reconnectionDelay","autoQueue","autoReplay","autoResubscribe","headers","metadata","queueFilter","opt","hasOwnProperty","getOwnPropertyDescriptor","offlineMode","defineProperty","header","errorMessagePrefix","event","args","prototype","slice","arguments","listener","fn","apply","connect","bluebird","promisifyAll","suffix","filter","name","func","target","passes","whitelist","indexOf","reconnection","forceNew","on","disconnect","setJwtToken","token","getJwtToken","login","strategy","credentials","expiresIn","controller","action","body","result","jwt","logout","checkToken","callbackRequired","whoAmI","addListener","listenerId","knownEvents","listenerType","isValid","push","id","getAllStatistics","err","res","hits","getStatistics","timestamp","queryCB","startTime","dataCollectionFactory","collection","flushQueue","listCollections","collectionType","arg","type","listIndexes","indexes","close","getServerInfo","serverInfo","queryArgs","attr","object","meta","queuable","addHeaders","authorization","removeAllListeners","eventName","removeListener","replayQueue","setDefaultIndex","setHeaders","content","isArray","startQueuing","stopQueuing","./kuzzleDataCollection","node-uuid","socket.io-client",3,"kuzzle","JSON","stringify","blacklist","KuzzleDocument","KuzzleDataMapping","KuzzleRoom","advancedSearch","filters","buildQueryArgs","documents","doc","newDocument","_id","_source","version","_version","total","count","create","data","createDocument","document","toJSON","updateIfExist","persist","deleteDocument","ids","fetchDocument","documentId","fetchAllDocuments","getMapping","kuzzleMapping","refresh","publishMessage","replaceDocument","subscribe","room","truncate","updateDocument","documentFactory","roomFactory","dataMappingFactory","mapping","./kuzzleDataMapping","./kuzzleDocument","./kuzzleRoom",4,"kuzzleDataCollection","eunmerable","properties","mappings","set","field",5,"queue","refreshing","dataCollection","setContent","element","save","publish","values",6,"channel","lastRenewal","notifier","renewalDelay","scope","subscribing","users","subscribeToSelf","notificationCallback","subscribeQuery","unsubscribe","bind","interval","off","setInterval","clearInterval"],"mappings":"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","file":"kuzzle.min.js"} \ No newline at end of file