diff --git a/dist/feathers.js b/dist/feathers.js index 1b1f215..cf28773 100644 --- a/dist/feathers.js +++ b/dist/feathers.js @@ -753,7 +753,9 @@ exports.default = function () { return getOptions.then(function (options) { var endPoint = void 0; - if (options.type === 'local') { + if (options.endpoint) { + endPoint = options.endpoint; + } else if (options.type === 'local') { endPoint = config.localEndpoint; } else if (options.type === 'token') { endPoint = config.tokenEndpoint; @@ -1643,7 +1645,20 @@ var errors = { Unprocessable: Unprocessable, GeneralError: GeneralError, NotImplemented: NotImplemented, - Unavailable: Unavailable + Unavailable: Unavailable, + 400: BadRequest, + 401: NotAuthenticated, + 402: PaymentError, + 403: Forbidden, + 404: NotFound, + 405: MethodNotAllowed, + 406: NotAcceptable, + 408: Timeout, + 409: Conflict, + 422: Unprocessable, + 500: GeneralError, + 501: NotImplemented, + 503: Unavailable }; function convert(error) { @@ -1859,31 +1874,16 @@ function pluckQuery() { }; } -function containsField(obj, find) { - var args = find.split('.'); +function removeField(obj, field) { + var nestedFields = field.split('.'); + var lastField = nestedFields[nestedFields.length - 1]; - for (var i = 0; i < args.length; i++) { - if (!obj || !obj.hasOwnProperty(args[i])) { - return false; - } - obj = obj[args[i]]; + for (var i = 0; obj && i < nestedFields.length - 1; i++) { + obj = obj[nestedFields[i]]; } - return true; -} - -function removeField(obj, find) { - var args = find.split('.'); - - for (var i = 0; i < args.length; i++) { - if (!obj || !obj.hasOwnProperty(args[i])) { - return false; - } - if (i === args.length - 1) { - obj[args[i]] = undefined; - delete obj[args[i]]; - return true; - } - obj = obj[args[i]]; + if (obj) { + obj[lastField] = undefined; + delete obj[lastField]; } } @@ -1901,9 +1901,7 @@ function remove() { for (var _iterator4 = fields[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var field = _step4.value; - if (containsField(data, field)) { - removeField(data, field); - } + removeField(data, field); } } catch (err) { _didIteratorError4 = true; @@ -1927,6 +1925,24 @@ function remove() { return function (hook) { var result = hook.type === 'before' ? hook.data : hook.result; + + // Convert Mongoose or Sequelize object into plain JavaScript object + if (Array.isArray(result)) { + result.forEach(function (element, index, result) { + if (typeof element.toObject === 'function') { + result[index] = element.toObject(); + } else if (typeof element.toJSON === 'function') { + result[index] = element.toJSON(); + } + }); + } else { + if (typeof result.toObject === 'function') { + result = result.toObject(); + } else if (typeof result.toJSON === 'function') { + result = result.toJSON(); + } + } + var next = function next(condition) { if (result && condition) { if (Array.isArray(result)) { @@ -1943,6 +1959,13 @@ function remove() { } } } + + if (hook.type === 'before') { + hook.data = result; + } else { + hook.result = result; + } + return hook; }; @@ -3721,7 +3744,6 @@ function plural(ms, n, name) { },{}],40:[function(require,module,exports){ // shim for using process in browser - var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it @@ -3732,22 +3754,84 @@ var process = module.exports = {}; var cachedSetTimeout; var cachedClearTimeout; +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} (function () { - try { - cachedSetTimeout = setTimeout; - } catch (e) { - cachedSetTimeout = function () { - throw new Error('setTimeout is not defined'); + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; } - } - try { - cachedClearTimeout = clearTimeout; - } catch (e) { - cachedClearTimeout = function () { - throw new Error('clearTimeout is not defined'); + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; } - } } ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} var queue = []; var draining = false; var currentQueue; @@ -3772,7 +3856,7 @@ function drainQueue() { if (draining) { return; } - var timeout = cachedSetTimeout(cleanUpNextTick); + var timeout = runTimeout(cleanUpNextTick); draining = true; var len = queue.length; @@ -3789,7 +3873,7 @@ function drainQueue() { } currentQueue = null; draining = false; - cachedClearTimeout(timeout); + runClearTimeout(timeout); } process.nextTick = function (fun) { @@ -3801,7 +3885,7 @@ process.nextTick = function (fun) { } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - cachedSetTimeout(drainQueue, 0); + runTimeout(drainQueue); } }; diff --git a/dist/feathers.min.js b/dist/feathers.min.js index d8a7095..8b73d8a 100644 --- a/dist/feathers.min.js +++ b/dist/feathers.min.js @@ -1,6 +1,5 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.feathers=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=31}exports.formatters.j=function(v){return JSON.stringify(v)};function formatArgs(){var args=arguments;var useColors=this.useColors;args[0]=(useColors?"%c":"")+this.namespace+(useColors?" %c":" ")+args[0]+(useColors?"%c ":" ")+"+"+exports.humanize(this.diff);if(!useColors)return args;var c="color: "+this.color;args=[args[0],c,"color: inherit"].concat(Array.prototype.slice.call(args,1));var index=0;var lastC=0;args[0].replace(/%[a-z%]/g,function(match){if("%%"===match)return;index++;if("%c"===match){lastC=index}});args.splice(lastC,0,c);return args}function log(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(namespaces){try{if(null==namespaces){exports.storage.removeItem("debug")}else{exports.storage.debug=namespaces}}catch(e){}}function load(){var r;try{r=exports.storage.debug}catch(e){}return r}exports.enable(load());function localstorage(){try{return window.localStorage}catch(e){}}},{"./debug":2}],2:[function(require,module,exports){exports=module.exports=debug;exports.coerce=coerce;exports.disable=disable;exports.enable=enable;exports.enabled=enabled;exports.humanize=require("ms");exports.names=[];exports.skips=[];exports.formatters={};var prevColor=0;var prevTime;function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(namespace){function disabled(){}disabled.enabled=false;function enabled(){var self=enabled;var curr=+new Date;var ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;if(null==self.useColors)self.useColors=exports.useColors();if(null==self.color&&self.useColors)self.color=selectColor();var args=Array.prototype.slice.call(arguments);args[0]=exports.coerce(args[0]);if("string"!==typeof args[0]){args=["%o"].concat(args)}var index=0;args[0]=args[0].replace(/%([a-z%])/g,function(match,format){if(match==="%%")return match;index++;var formatter=exports.formatters[format];if("function"===typeof formatter){var val=args[index];match=formatter.call(self,val);args.splice(index,1);index--}return match});if("function"===typeof exports.formatArgs){args=exports.formatArgs.apply(self,args)}var logFn=enabled.log||exports.log||console.log.bind(console);logFn.apply(self,args)}enabled.enabled=true;var fn=exports.enabled(namespace)?enabled:disabled;fn.namespace=namespace;return fn}function enable(namespaces){exports.save(namespaces);var split=(namespaces||"").split(/[\s,]+/);var len=split.length;for(var i=0;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],4:[function(require,module,exports){module.exports=require("./lib/client/index")},{"./lib/client/index":6}],5:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.populateParams=populateParams;exports.populateHeader=populateHeader;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function populateParams(){return function(hook){var app=hook.app;Object.assign(hook.params,{user:app.get("user"),token:app.get("token")})}}function populateHeader(){var options=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];return function(hook){if(hook.params.token){hook.params.headers=Object.assign({},_defineProperty({},options.header||"authorization",hook.params.token),hook.params.headers)}}}},{}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(){var opts=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var config=Object.assign({},defaults,opts);return function(){var app=this;if(!app.get("storage")){app.set("storage",(0,_utils.getStorage)(config.storage))}app.authenticate=function(){var options=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var storage=this.get("storage");var getOptions=Promise.resolve(options);if(!options.type){getOptions=(0,_utils.getJWT)(config.tokenKey,config.cookie,this.get("storage")).then(function(token){if(!token){return Promise.reject(new _feathersErrors2.default.NotAuthenticated("Could not find stored JWT and no authentication type was given"))}return{type:"token",token:token}})}var handleResponse=function handleResponse(response){app.set("token",response.token);app.set("user",response.data);return Promise.resolve(storage.setItem(config.tokenKey,response.token)).then(function(){return response})};return getOptions.then(function(options){var endPoint=void 0;if(options.type==="local"){endPoint=config.localEndpoint}else if(options.type==="token"){endPoint=config.tokenEndpoint}else{throw new Error("Unsupported authentication 'type': "+options.type)}return(0,_utils.connected)(app).then(function(socket){if(app.rest){return app.service(endPoint).create(options).then(handleResponse)}var method=app.io?"emit":"send";return(0,_utils.authenticateSocket)(options,socket,method).then(handleResponse)})})};app.logout=function(){app.set("user",null);app.set("token",null);(0,_utils.clearCookie)(config.cookie);return Promise.resolve(app.get("storage").removeItem(config.tokenKey)).then(function(){if(app.io||app.primus){var method=app.io?"emit":"send";var socket=app.io?app.io:app.primus;return(0,_utils.logoutSocket)(socket,method)}})};app.mixins.push(function(service){if(typeof service.before!=="function"||typeof service.after!=="function"){throw new Error("It looks like feathers-hooks isn't configured. It is required before running feathers-authentication.")}service.before(hooks.populateParams(config))});if(app.rest){app.mixins.push(function(service){service.before(hooks.populateHeader(config))})}}};var _feathersErrors=require("feathers-errors");var _feathersErrors2=_interopRequireDefault(_feathersErrors);var _hooks=require("./hooks");var hooks=_interopRequireWildcard(_hooks);var _utils=require("./utils");function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var defaults={cookie:"feathers-jwt",tokenKey:"feathers-jwt",localEndpoint:"/auth/local",tokenEndpoint:"/auth/token"};module.exports=exports["default"]},{"./hooks":5,"./utils":7,"feathers-errors":12}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.connected=connected;exports.authenticateSocket=authenticateSocket;exports.logoutSocket=logoutSocket;exports.getCookie=getCookie;exports.clearCookie=clearCookie;exports.getJWT=getJWT;exports.getStorage=getStorage;function connected(app){return new Promise(function(resolve,reject){if(app.rest){return resolve()}var socket=app.io||app.primus;if(!socket){return reject(new Error("It looks like no client connection has been configured."))}socket.once("disconnect",reject);socket.once("close",reject);if(app.io&&!socket.connected||app.primus&&socket.readyState!==3){var connectEvent=app.primus?"open":"connect";socket.once(connectEvent,function(){return resolve(socket)})}else{resolve(socket)}})}function authenticateSocket(options,socket,method){return new Promise(function(resolve,reject){socket.once("unauthorized",reject);socket.once("authenticated",resolve);socket[method]("authenticate",options)})}function logoutSocket(socket,method){return new Promise(function(resolve,reject){socket[method]("logout",function(error){if(error){reject(error)}resolve()})})}function getCookie(name){if(typeof document!=="undefined"){var value="; "+document.cookie;var parts=value.split("; "+name+"=");if(parts.length===2){return parts.pop().split(";").shift()}}return null}function clearCookie(name){if(typeof document!=="undefined"){document.cookie=name+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}return null}function getJWT(tokenKey,cookieKey,storage){return Promise.resolve(storage.getItem(tokenKey)).then(function(jwt){var cookieToken=getCookie(cookieKey);if(cookieToken){return cookieToken}return jwt})}function getStorage(storage){if(storage){return storage}return{store:{},getItem:function getItem(key){return this.store[key]},setItem:function setItem(key,value){return this.store[key]=value},removeItem:function removeItem(key){delete this.store[key];return this}}}},{}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};exports.default=getArguments;var noop=exports.noop=function noop(){};var getCallback=function getCallback(args){var last=args[args.length-1];return typeof last==="function"?last:noop};var getParams=function getParams(args,position){return _typeof(args[position])==="object"?args[position]:{}};var updateOrPatch=function updateOrPatch(name){return function(args){var id=args[0];var data=args[1];var callback=getCallback(args);var params=getParams(args,2);if(typeof id==="function"){throw new Error("First parameter for '"+name+"' can not be a function")}if((typeof data==="undefined"?"undefined":_typeof(data))!=="object"){throw new Error("No data provided for '"+name+"'")}if(args.length>4){throw new Error("Too many arguments for '"+name+"' service method")}return[id,data,params,callback]}};var getOrRemove=function getOrRemove(name){return function(args){var id=args[0];var params=getParams(args,1);var callback=getCallback(args);if(args.length>3){throw new Error("Too many arguments for '"+name+"' service method")}if(typeof id==="function"){throw new Error("First parameter for '"+name+"' can not be a function")}return[id,params,callback]}};var converters=exports.converters={find:function find(args){var callback=getCallback(args);var params=getParams(args,0);if(args.length>2){throw new Error("Too many arguments for 'find' service method")}return[params,callback]},create:function create(args){var data=args[0];var params=getParams(args,1);var callback=getCallback(args);if((typeof data==="undefined"?"undefined":_typeof(data))!=="object"){throw new Error("First parameter for 'create' must be an object")}if(args.length>3){throw new Error("Too many arguments for 'create' service method")}return[data,params,callback]},update:updateOrPatch("update"),patch:updateOrPatch("patch"),get:getOrRemove("get"),remove:getOrRemove("remove")};function getArguments(method,args){return converters[method](args)}},{}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _arguments=require("./arguments");var _arguments2=_interopRequireDefault(_arguments);var _utils=require("./utils");var _hooks=require("./hooks");var _hooks2=_interopRequireDefault(_hooks);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}exports.default={getArguments:_arguments2.default,stripSlashes:_utils.stripSlashes,each:_utils.each,hooks:_hooks2.default,matcher:_utils.matcher,sorter:_utils.sorter};module.exports=exports["default"]},{"./arguments":8,"./hooks":10,"./utils":11}],10:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _utils=require("./utils");function getOrRemove(args){return{id:args[0],params:args[1],callback:args[2]}}function updateOrPatch(args){return{id:args[0],data:args[1],params:args[2],callback:args[3]}}exports.converters={find:function find(args){return{params:args[0],callback:args[1]}},create:function create(args){return{data:args[0],params:args[1],callback:args[2]}},get:getOrRemove,remove:getOrRemove,update:updateOrPatch,patch:updateOrPatch};exports.hookObject=exports.hook=function(method,type,args){var hook=exports.converters[method](args);hook.method=method;hook.type=type;return hook};var defaultMakeArguments=exports.defaultMakeArguments=function(hook){var result=[];if(typeof hook.id!=="undefined"){result.push(hook.id)}if(hook.data){result.push(hook.data)}result.push(hook.params||{});result.push(hook.callback);return result};exports.makeArguments=function(hook){if(hook.method==="find"){return[hook.params,hook.callback]}if(hook.method==="get"||hook.method==="remove"){return[hook.id,hook.params,hook.callback]}if(hook.method==="update"||hook.method==="patch"){return[hook.id,hook.data,hook.params,hook.callback]}if(hook.method==="create"){return[hook.data,hook.params,hook.callback]}return defaultMakeArguments(hook)};exports.convertHookData=function(obj){var hook={};if(Array.isArray(obj)){hook={all:obj}}else if((typeof obj==="undefined"?"undefined":_typeof(obj))!=="object"){hook={all:[obj]}}else{(0,_utils.each)(obj,function(value,key){hook[key]=!Array.isArray(value)?[value]:value})}return hook}},{"./utils":11}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i1?_len-1:0),_key=1;_key<_len;_key++){keys[_key-1]=arguments[_key]}keys.forEach(function(key){return delete result[key]});return result}};var specialFilters=exports.specialFilters={$in:function $in(key,ins){return function(current){return ins.indexOf(current[key])!==-1}},$nin:function $nin(key,nins){return function(current){return nins.indexOf(current[key])===-1}},$lt:function $lt(key,value){return function(current){return current[key]value}},$gte:function $gte(key,value){return function(current){return current[key]>=value}},$ne:function $ne(key,value){return function(current){return current[key]!==value}}};function matcher(originalQuery){var query=_.omit(originalQuery,"$limit","$skip","$sort");return function(item){if(query.$or&&_.some(query.$or,function(or){return _.isMatch(item,or)})){return true}return _.every(query,function(value,key){if((typeof value==="undefined"?"undefined":_typeof(value))==="object"){return _.every(value,function(target,filterType){if(specialFilters[filterType]){var filter=specialFilters[filterType](key,target);return filter(item)}return false})}else if(typeof item[key]!=="undefined"){return item[key]===query[key]}return false})}}function sorter($sort){return function(first,second){var comparator=0;each($sort,function(modifier,key){modifier=parseInt(modifier,10);if(first[key]second[key]){comparator+=1*modifier}});return comparator}}},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i=31}exports.formatters.j=function(v){return JSON.stringify(v)};function formatArgs(){var args=arguments;var useColors=this.useColors;args[0]=(useColors?"%c":"")+this.namespace+(useColors?" %c":" ")+args[0]+(useColors?"%c ":" ")+"+"+exports.humanize(this.diff);if(!useColors)return args;var c="color: "+this.color;args=[args[0],c,"color: inherit"].concat(Array.prototype.slice.call(args,1));var index=0;var lastC=0;args[0].replace(/%[a-z%]/g,function(match){if("%%"===match)return;index++;if("%c"===match){lastC=index}});args.splice(lastC,0,c);return args}function log(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(namespaces){try{if(null==namespaces){exports.storage.removeItem("debug")}else{exports.storage.debug=namespaces}}catch(e){}}function load(){var r;try{r=exports.storage.debug}catch(e){}return r}exports.enable(load());function localstorage(){try{return window.localStorage}catch(e){}}},{"./debug":2}],2:[function(require,module,exports){exports=module.exports=debug;exports.coerce=coerce;exports.disable=disable;exports.enable=enable;exports.enabled=enabled;exports.humanize=require("ms");exports.names=[];exports.skips=[];exports.formatters={};var prevColor=0;var prevTime;function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(namespace){function disabled(){}disabled.enabled=false;function enabled(){var self=enabled;var curr=+new Date;var ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;if(null==self.useColors)self.useColors=exports.useColors();if(null==self.color&&self.useColors)self.color=selectColor();var args=Array.prototype.slice.call(arguments);args[0]=exports.coerce(args[0]);if("string"!==typeof args[0]){args=["%o"].concat(args)}var index=0;args[0]=args[0].replace(/%([a-z%])/g,function(match,format){if(match==="%%")return match;index++;var formatter=exports.formatters[format];if("function"===typeof formatter){var val=args[index];match=formatter.call(self,val);args.splice(index,1);index--}return match});if("function"===typeof exports.formatArgs){args=exports.formatArgs.apply(self,args)}var logFn=enabled.log||exports.log||console.log.bind(console);logFn.apply(self,args)}enabled.enabled=true;var fn=exports.enabled(namespace)?enabled:disabled;fn.namespace=namespace;return fn}function enable(namespaces){exports.save(namespaces);var split=(namespaces||"").split(/[\s,]+/);var len=split.length;for(var i=0;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-->0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],4:[function(require,module,exports){module.exports=require("./lib/client/index")},{"./lib/client/index":6}],5:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.populateParams=populateParams;exports.populateHeader=populateHeader;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function populateParams(){return function(hook){var app=hook.app;Object.assign(hook.params,{user:app.get("user"),token:app.get("token")})}}function populateHeader(){var options=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];return function(hook){if(hook.params.token){hook.params.headers=Object.assign({},_defineProperty({},options.header||"authorization",hook.params.token),hook.params.headers)}}}},{}],6:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=function(){var opts=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var config=Object.assign({},defaults,opts);return function(){var app=this;if(!app.get("storage")){app.set("storage",(0,_utils.getStorage)(config.storage))}app.authenticate=function(){var options=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var storage=this.get("storage");var getOptions=Promise.resolve(options);if(!options.type){getOptions=(0,_utils.getJWT)(config.tokenKey,config.cookie,this.get("storage")).then(function(token){if(!token){return Promise.reject(new _feathersErrors2.default.NotAuthenticated("Could not find stored JWT and no authentication type was given"))}return{type:"token",token:token}})}var handleResponse=function handleResponse(response){app.set("token",response.token);app.set("user",response.data);return Promise.resolve(storage.setItem(config.tokenKey,response.token)).then(function(){return response})};return getOptions.then(function(options){var endPoint=void 0;if(options.endpoint){endPoint=options.endpoint}else if(options.type==="local"){endPoint=config.localEndpoint}else if(options.type==="token"){endPoint=config.tokenEndpoint}else{throw new Error("Unsupported authentication 'type': "+options.type)}return(0,_utils.connected)(app).then(function(socket){if(app.rest){return app.service(endPoint).create(options).then(handleResponse)}var method=app.io?"emit":"send";return(0,_utils.authenticateSocket)(options,socket,method).then(handleResponse)})})};app.logout=function(){app.set("user",null);app.set("token",null);(0,_utils.clearCookie)(config.cookie);return Promise.resolve(app.get("storage").removeItem(config.tokenKey)).then(function(){if(app.io||app.primus){var method=app.io?"emit":"send";var socket=app.io?app.io:app.primus;return(0,_utils.logoutSocket)(socket,method)}})};app.mixins.push(function(service){if(typeof service.before!=="function"||typeof service.after!=="function"){throw new Error("It looks like feathers-hooks isn't configured. It is required before running feathers-authentication.")}service.before(hooks.populateParams(config))});if(app.rest){app.mixins.push(function(service){service.before(hooks.populateHeader(config))})}}};var _feathersErrors=require("feathers-errors");var _feathersErrors2=_interopRequireDefault(_feathersErrors);var _hooks=require("./hooks");var hooks=_interopRequireWildcard(_hooks);var _utils=require("./utils");function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var defaults={cookie:"feathers-jwt",tokenKey:"feathers-jwt",localEndpoint:"/auth/local",tokenEndpoint:"/auth/token"};module.exports=exports["default"]},{"./hooks":5,"./utils":7,"feathers-errors":12}],7:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.connected=connected;exports.authenticateSocket=authenticateSocket;exports.logoutSocket=logoutSocket;exports.getCookie=getCookie;exports.clearCookie=clearCookie;exports.getJWT=getJWT;exports.getStorage=getStorage;function connected(app){return new Promise(function(resolve,reject){if(app.rest){return resolve()}var socket=app.io||app.primus;if(!socket){return reject(new Error("It looks like no client connection has been configured."))}socket.once("disconnect",reject);socket.once("close",reject);if(app.io&&!socket.connected||app.primus&&socket.readyState!==3){var connectEvent=app.primus?"open":"connect";socket.once(connectEvent,function(){return resolve(socket)})}else{resolve(socket)}})}function authenticateSocket(options,socket,method){return new Promise(function(resolve,reject){socket.once("unauthorized",reject);socket.once("authenticated",resolve);socket[method]("authenticate",options)})}function logoutSocket(socket,method){return new Promise(function(resolve,reject){socket[method]("logout",function(error){if(error){reject(error)}resolve()})})}function getCookie(name){if(typeof document!=="undefined"){var value="; "+document.cookie;var parts=value.split("; "+name+"=");if(parts.length===2){return parts.pop().split(";").shift()}}return null}function clearCookie(name){if(typeof document!=="undefined"){document.cookie=name+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}return null}function getJWT(tokenKey,cookieKey,storage){return Promise.resolve(storage.getItem(tokenKey)).then(function(jwt){var cookieToken=getCookie(cookieKey);if(cookieToken){return cookieToken}return jwt})}function getStorage(storage){if(storage){return storage}return{store:{},getItem:function getItem(key){return this.store[key]},setItem:function setItem(key,value){return this.store[key]=value},removeItem:function removeItem(key){delete this.store[key];return this}}}},{}],8:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};exports.default=getArguments;var noop=exports.noop=function noop(){};var getCallback=function getCallback(args){var last=args[args.length-1];return typeof last==="function"?last:noop};var getParams=function getParams(args,position){return _typeof(args[position])==="object"?args[position]:{}};var updateOrPatch=function updateOrPatch(name){return function(args){var id=args[0];var data=args[1];var callback=getCallback(args);var params=getParams(args,2);if(typeof id==="function"){throw new Error("First parameter for '"+name+"' can not be a function")}if((typeof data==="undefined"?"undefined":_typeof(data))!=="object"){throw new Error("No data provided for '"+name+"'")}if(args.length>4){throw new Error("Too many arguments for '"+name+"' service method")}return[id,data,params,callback]}};var getOrRemove=function getOrRemove(name){return function(args){var id=args[0];var params=getParams(args,1);var callback=getCallback(args);if(args.length>3){throw new Error("Too many arguments for '"+name+"' service method")}if(typeof id==="function"){throw new Error("First parameter for '"+name+"' can not be a function")}return[id,params,callback]}};var converters=exports.converters={find:function find(args){var callback=getCallback(args);var params=getParams(args,0);if(args.length>2){throw new Error("Too many arguments for 'find' service method")}return[params,callback]},create:function create(args){var data=args[0];var params=getParams(args,1);var callback=getCallback(args);if((typeof data==="undefined"?"undefined":_typeof(data))!=="object"){throw new Error("First parameter for 'create' must be an object")}if(args.length>3){throw new Error("Too many arguments for 'create' service method")}return[data,params,callback]},update:updateOrPatch("update"),patch:updateOrPatch("patch"),get:getOrRemove("get"),remove:getOrRemove("remove")};function getArguments(method,args){return converters[method](args)}},{}],9:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _arguments=require("./arguments");var _arguments2=_interopRequireDefault(_arguments);var _utils=require("./utils");var _hooks=require("./hooks");var _hooks2=_interopRequireDefault(_hooks);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}exports.default={getArguments:_arguments2.default,stripSlashes:_utils.stripSlashes,each:_utils.each,hooks:_hooks2.default,matcher:_utils.matcher,sorter:_utils.sorter};module.exports=exports["default"]},{"./arguments":8,"./hooks":10,"./utils":11}],10:[function(require,module,exports){"use strict";var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};var _utils=require("./utils");function getOrRemove(args){return{id:args[0],params:args[1],callback:args[2]}}function updateOrPatch(args){return{id:args[0],data:args[1],params:args[2],callback:args[3]}}exports.converters={find:function find(args){return{params:args[0],callback:args[1]}},create:function create(args){return{data:args[0],params:args[1],callback:args[2]}},get:getOrRemove,remove:getOrRemove,update:updateOrPatch,patch:updateOrPatch};exports.hookObject=exports.hook=function(method,type,args){var hook=exports.converters[method](args);hook.method=method;hook.type=type;return hook};var defaultMakeArguments=exports.defaultMakeArguments=function(hook){var result=[];if(typeof hook.id!=="undefined"){result.push(hook.id)}if(hook.data){result.push(hook.data)}result.push(hook.params||{});result.push(hook.callback);return result};exports.makeArguments=function(hook){if(hook.method==="find"){return[hook.params,hook.callback]}if(hook.method==="get"||hook.method==="remove"){return[hook.id,hook.params,hook.callback]}if(hook.method==="update"||hook.method==="patch"){return[hook.id,hook.data,hook.params,hook.callback]}if(hook.method==="create"){return[hook.data,hook.params,hook.callback]}return defaultMakeArguments(hook)};exports.convertHookData=function(obj){var hook={};if(Array.isArray(obj)){hook={all:obj}}else if((typeof obj==="undefined"?"undefined":_typeof(obj))!=="object"){hook={all:[obj]}}else{(0,_utils.each)(obj,function(value,key){hook[key]=!Array.isArray(value)?[value]:value})}return hook}},{"./utils":11}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i1?_len-1:0),_key=1;_key<_len;_key++){keys[_key-1]=arguments[_key]}keys.forEach(function(key){return delete result[key]});return result}};var specialFilters=exports.specialFilters={$in:function $in(key,ins){return function(current){return ins.indexOf(current[key])!==-1}},$nin:function $nin(key,nins){return function(current){return nins.indexOf(current[key])===-1}},$lt:function $lt(key,value){return function(current){return current[key]value}},$gte:function $gte(key,value){return function(current){return current[key]>=value}},$ne:function $ne(key,value){return function(current){return current[key]!==value}}};function matcher(originalQuery){var query=_.omit(originalQuery,"$limit","$skip","$sort");return function(item){if(query.$or&&_.some(query.$or,function(or){return _.isMatch(item,or)})){return true}return _.every(query,function(value,key){if((typeof value==="undefined"?"undefined":_typeof(value))==="object"){return _.every(value,function(target,filterType){if(specialFilters[filterType]){var filter=specialFilters[filterType](key,target);return filter(item)}return false})}else if(typeof item[key]!=="undefined"){return item[key]===query[key]}return false})}}function sorter($sort){return function(first,second){var comparator=0;each($sort,function(modifier,key){modifier=parseInt(modifier,10);if(first[key]second[key]){comparator+=1*modifier}});return comparator}}},{}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i1?_len6-1:0),_key6=1;_key6<_len6;_key6++){args[_key6-1]=_arguments[_key6]}var providers=[realm].concat(args);return{v:function v(hook){var provider=hook.params.provider;if(realm==="external"&&provider||providers.indexOf(provider)!==-1){throw new errors.MethodNotAllowed("Provider '"+hook.params.provider+"' can not call '"+hook.method+"'")}}}}();if((typeof _ret==="undefined"?"undefined":_typeof(_ret))==="object")return _ret.v}}function populate(target,options){options=Object.assign({},options);if(!options.service){throw new Error("You need to provide a service")}var field=options.field||target;return function(hook){function populate(item){if(!item[field]){return Promise.resolve(item)}var id=item[field];if(typeof item.toObject==="function"){item=item.toObject(options)}else if(typeof item.toJSON==="function"){item=item.toJSON(options)}var params=Object.assign({},params,{query:undefined});var promise=Array.isArray(id)?Promise.all(id.map(function(objectID){return hook.app.service(options.service).get(objectID,params)})):hook.app.service(options.service).get(id,params);return promise.then(function(relatedItem){if(relatedItem){item[target]=relatedItem}return item})}if(hook.type==="after"){var _ret2=function(){var isPaginated=hook.method==="find"&&hook.result.data;var data=isPaginated?hook.result.data:hook.result;if(Array.isArray(data)){return{v:Promise.all(data.map(populate)).then(function(results){if(isPaginated){hook.result.data=results}else{hook.result=results}return hook})}}return{v:populate(hook.result).then(function(item){hook.result=item;return hook})}}();if((typeof _ret2==="undefined"?"undefined":_typeof(_ret2))==="object")return _ret2.v}}}},{"feathers-errors":12}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};exports.isHookObject=isHookObject;exports.processHooks=processHooks;exports.addHookMethod=addHookMethod;var _feathersCommons=require("feathers-commons");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function isHookObject(hookObject){return(typeof hookObject==="undefined"?"undefined":_typeof(hookObject))==="object"&&typeof hookObject.method==="string"&&(hookObject.type==="before"||hookObject.type==="after")}function processHooks(hooks,initialHookObject){var _this=this;var hookObject=initialHookObject;var updateCurrentHook=function updateCurrentHook(current){if(current){if(!isHookObject(current)){throw new Error(hookObject.type+" hook for '"+hookObject.method+"' method returned invalid hook object")}hookObject=current}return hookObject};var promise=Promise.resolve(hookObject);hooks.forEach(function(fn){var hook=fn.bind(_this);if(hook.length===2){promise=promise.then(function(hookObject){return new Promise(function(resolve,reject){hook(hookObject,function(error,result){return error?reject(error):resolve(result)})})})}else{promise=promise.then(hook)}promise=promise.then(updateCurrentHook)});return promise.catch(function(error){error.hook=hookObject;throw error})}function addHookMethod(service,type,methods){var prop="__"+type+"Hooks";service[prop]={};methods.forEach(function(method){if(typeof service[method]==="function"){service[prop][method]=[]}});service.mixin(_defineProperty({},type,function(obj){var _this2=this;var hooks=_feathersCommons.hooks.convertHookData(obj);methods.forEach(function(method){if(typeof _this2[method]!=="function"){return}var myHooks=_this2[prop][method];if(hooks.all){myHooks.push.apply(myHooks,hooks.all)}if(hooks[method]){myHooks.push.apply(myHooks,hooks[method])}});return this}))}},{"feathers-commons":9}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _feathersCommons=require("feathers-commons");var _bundled=require("./bundled");var hooks=_interopRequireWildcard(_bundled);var _commons=require("./commons");function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i=400){if(typeof data==="string"){return reject(new Error(data))}data.response=res;return reject(_extends(new Error(data.message),data))}resolve(data)})})}}]);return Service}(_base2.default);exports.default=Service;module.exports=exports["default"]},{"./base":19}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var result=(_connection2=this.connection)[method].apply(_connection2,[eventName].concat(args));return result===this.connection?this:result}})};var Service=function(){function Service(options){_classCallCheck(this,Service);this.events=_utils.events;this.path=options.name;this.connection=options.connection;this.method=options.method;this.timeout=options.timeout||5e3;addEmitterMethods(this)}_createClass(Service,[{key:"send",value:function send(method){var _this=this;for(var _len2=arguments.length,args=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2]}var callback=null;if(typeof args[args.length-1]==="function"){callback=args.pop()}return new Promise(function(resolve,reject){var _connection3;var event=_this.path+"::"+method;var timeoutId=setTimeout(function(){return reject(new Error("Timeout of "+_this.timeout+"ms exceeded calling "+event))},_this.timeout);args.unshift(event);args.push(function(error,data){error=(0,_feathersErrors.convert)(error);clearTimeout(timeoutId);if(callback){callback(error,data)}return error?reject(error):resolve(data)});debug("Sending socket."+_this.method,args);(_connection3=_this.connection)[_this.method].apply(_connection3,args)})}},{key:"find",value:function find(){var params=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];return this.send("find",params.query||{})}},{key:"get",value:function get(id){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("get",id,params.query||{})}},{key:"create",value:function create(data){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("create",data,params.query||{})}},{key:"update",value:function update(id,data){var params=arguments.length<=2||arguments[2]===undefined?{}:arguments[2];return this.send("update",id,data,params.query||{})}},{key:"patch",value:function patch(id,data){var params=arguments.length<=2||arguments[2]===undefined?{}:arguments[2];return this.send("patch",id,data,params.query||{})}},{key:"remove",value:function remove(id){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("remove",id,params.query||{})}},{key:"off",value:function off(){if(typeof this.connection.off==="function"){var _connection4;return(_connection4=this.connection).off.apply(_connection4,arguments)}else if(arguments.length===1){return this.removeAllListeners.apply(this,arguments)}return this.removeEventListener.apply(this,arguments)}}]);return Service}();exports.default=Service;module.exports=exports["default"]},{"./utils":27,debug:1,"feathers-errors":12}],27:[function(require,module,exports){(function(process){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.events=exports.eventMappings=undefined;exports.convertFilterData=convertFilterData;exports.promisify=promisify;exports.normalizeError=normalizeError;var _feathersCommons=require("feathers-commons");var eventMappings=exports.eventMappings={create:"created",update:"updated",patch:"patched",remove:"removed"};var events=exports.events=Object.keys(eventMappings).map(function(method){return eventMappings[method]});function convertFilterData(obj){return _feathersCommons.hooks.convertHookData(obj)}function promisify(method,context){for(var _len=arguments.length,args=Array(_len>2?_len-2:0),_key=2;_key<_len;_key++){args[_key-2]=arguments[_key]}return new Promise(function(resolve,reject){method.apply(context,args.concat(function(error,result){if(error){return reject(error)}resolve(result)}))})}function normalizeError(e){var result={};Object.getOwnPropertyNames(e).forEach(function(key){return result[key]=e[key]});if(process.env.NODE_ENV==="production"){delete result.stack}delete result.hook;return result}}).call(this,require("_process"))},{_process:40,"feathers-commons":9}],28:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{"./lib/client":29,dup:16}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i1e4)return;var match=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]);var type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}function short(ms){if(ms>=d)return Math.round(ms/d)+"d";if(ms>=h)return Math.round(ms/h)+"h";if(ms>=m)return Math.round(ms/m)+"m";if(ms>=s)return Math.round(ms/s)+"s";return ms+"ms"}function long(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural(ms,m,"minute")||plural(ms,s,"second")||ms+" ms"}function plural(ms,n,name){if(ms1){for(var i=1;i=0&&(options.parseArrays&&index<=options.arrayLimit)){obj=[];obj[index]=parseObject(chain,val,options)}else{obj[cleanRoot]=parseObject(chain,val,options)}}return obj};var parseKeys=function parseKeys(givenKey,val,options){if(!givenKey){return}var key=options.allowDots?givenKey.replace(/\.([^\.\[]+)/g,"[$1]"):givenKey;var parent=/^([^\[\]]*)/;var child=/(\[[^\[\]]*\])/g;var segment=parent.exec(key);var keys=[];if(segment[1]){if(!options.plainObjects&&Object.prototype.hasOwnProperty(segment[1])){if(!options.allowPrototypes){return}}keys.push(segment[1])}var i=0;while((segment=child.exec(key))!==null&&i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122){out+=string.charAt(i);continue}if(c<128){out=out+hexTable[c];continue}if(c<2048){out=out+(hexTable[192|c>>6]+hexTable[128|c&63]);continue}if(c<55296||c>=57344){out=out+(hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|c&63]);continue}i+=1;c=65536+((c&1023)<<10|string.charCodeAt(i)&1023);out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|c&63]}return out};exports.compact=function(obj,references){if(typeof obj!=="object"||obj===null){return obj}var refs=references||[];var lookup=refs.indexOf(obj);if(lookup!==-1){return refs[lookup]}refs.push(obj);if(Array.isArray(obj)){var compacted=[];for(var i=0;i25){var remainder=num%26;outString=letters.charAt(remainder)+outString;num=Math.floor(num/26)-1}outString=letters.charAt(num)+outString;return outString};exports.makeFakeArgs=function(len){var argArr=[];for(var i=0;i1?_len6-1:0),_key6=1;_key6<_len6;_key6++){args[_key6-1]=_arguments[_key6]}var providers=[realm].concat(args);return{v:function v(hook){var provider=hook.params.provider;if(realm==="external"&&provider||providers.indexOf(provider)!==-1){throw new errors.MethodNotAllowed("Provider '"+hook.params.provider+"' can not call '"+hook.method+"'")}}}}();if((typeof _ret==="undefined"?"undefined":_typeof(_ret))==="object")return _ret.v}}function populate(target,options){options=Object.assign({},options);if(!options.service){throw new Error("You need to provide a service")}var field=options.field||target;return function(hook){function populate(item){if(!item[field]){return Promise.resolve(item)}var id=item[field];if(typeof item.toObject==="function"){item=item.toObject(options)}else if(typeof item.toJSON==="function"){item=item.toJSON(options)}var params=Object.assign({},params,{query:undefined});var promise=Array.isArray(id)?Promise.all(id.map(function(objectID){return hook.app.service(options.service).get(objectID,params)})):hook.app.service(options.service).get(id,params);return promise.then(function(relatedItem){if(relatedItem){item[target]=relatedItem}return item})}if(hook.type==="after"){var _ret2=function(){var isPaginated=hook.method==="find"&&hook.result.data;var data=isPaginated?hook.result.data:hook.result;if(Array.isArray(data)){return{v:Promise.all(data.map(populate)).then(function(results){if(isPaginated){hook.result.data=results}else{hook.result=results}return hook})}}return{v:populate(hook.result).then(function(item){hook.result=item;return hook})}}();if((typeof _ret2==="undefined"?"undefined":_typeof(_ret2))==="object")return _ret2.v}}}},{"feathers-errors":12}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};exports.isHookObject=isHookObject;exports.processHooks=processHooks;exports.addHookMethod=addHookMethod;var _feathersCommons=require("feathers-commons");function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function isHookObject(hookObject){return(typeof hookObject==="undefined"?"undefined":_typeof(hookObject))==="object"&&typeof hookObject.method==="string"&&(hookObject.type==="before"||hookObject.type==="after")}function processHooks(hooks,initialHookObject){var _this=this;var hookObject=initialHookObject;var updateCurrentHook=function updateCurrentHook(current){if(current){if(!isHookObject(current)){throw new Error(hookObject.type+" hook for '"+hookObject.method+"' method returned invalid hook object")}hookObject=current}return hookObject};var promise=Promise.resolve(hookObject);hooks.forEach(function(fn){var hook=fn.bind(_this);if(hook.length===2){promise=promise.then(function(hookObject){return new Promise(function(resolve,reject){hook(hookObject,function(error,result){return error?reject(error):resolve(result)})})})}else{promise=promise.then(hook)}promise=promise.then(updateCurrentHook)});return promise.catch(function(error){error.hook=hookObject;throw error})}function addHookMethod(service,type,methods){var prop="__"+type+"Hooks";service[prop]={};methods.forEach(function(method){if(typeof service[method]==="function"){service[prop][method]=[]}});service.mixin(_defineProperty({},type,function(obj){var _this2=this;var hooks=_feathersCommons.hooks.convertHookData(obj);methods.forEach(function(method){if(typeof _this2[method]!=="function"){return}var myHooks=_this2[prop][method];if(hooks.all){myHooks.push.apply(myHooks,hooks.all)}if(hooks[method]){myHooks.push.apply(myHooks,hooks[method])}});return this}))}},{"feathers-commons":9}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _feathersCommons=require("feathers-commons");var _bundled=require("./bundled");var hooks=_interopRequireWildcard(_bundled);var _commons=require("./commons");function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj}else{var newObj={};if(obj!=null){for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key))newObj[key]=obj[key]}}newObj.default=obj;return newObj}}function _toConsumableArray(arr){if(Array.isArray(arr)){for(var i=0,arr2=Array(arr.length);i=400){if(typeof data==="string"){return reject(new Error(data))}data.response=res;return reject(_extends(new Error(data.message),data))}resolve(data)})})}}]);return Service}(_base2.default);exports.default=Service;module.exports=exports["default"]},{"./base":19}],24:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}var result=(_connection2=this.connection)[method].apply(_connection2,[eventName].concat(args));return result===this.connection?this:result; - -}})};var Service=function(){function Service(options){_classCallCheck(this,Service);this.events=_utils.events;this.path=options.name;this.connection=options.connection;this.method=options.method;this.timeout=options.timeout||5e3;addEmitterMethods(this)}_createClass(Service,[{key:"send",value:function send(method){var _this=this;for(var _len2=arguments.length,args=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2]}var callback=null;if(typeof args[args.length-1]==="function"){callback=args.pop()}return new Promise(function(resolve,reject){var _connection3;var event=_this.path+"::"+method;var timeoutId=setTimeout(function(){return reject(new Error("Timeout of "+_this.timeout+"ms exceeded calling "+event))},_this.timeout);args.unshift(event);args.push(function(error,data){error=(0,_feathersErrors.convert)(error);clearTimeout(timeoutId);if(callback){callback(error,data)}return error?reject(error):resolve(data)});debug("Sending socket."+_this.method,args);(_connection3=_this.connection)[_this.method].apply(_connection3,args)})}},{key:"find",value:function find(){var params=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];return this.send("find",params.query||{})}},{key:"get",value:function get(id){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("get",id,params.query||{})}},{key:"create",value:function create(data){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("create",data,params.query||{})}},{key:"update",value:function update(id,data){var params=arguments.length<=2||arguments[2]===undefined?{}:arguments[2];return this.send("update",id,data,params.query||{})}},{key:"patch",value:function patch(id,data){var params=arguments.length<=2||arguments[2]===undefined?{}:arguments[2];return this.send("patch",id,data,params.query||{})}},{key:"remove",value:function remove(id){var params=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];return this.send("remove",id,params.query||{})}},{key:"off",value:function off(){if(typeof this.connection.off==="function"){var _connection4;return(_connection4=this.connection).off.apply(_connection4,arguments)}else if(arguments.length===1){return this.removeAllListeners.apply(this,arguments)}return this.removeEventListener.apply(this,arguments)}}]);return Service}();exports.default=Service;module.exports=exports["default"]},{"./utils":27,debug:1,"feathers-errors":12}],27:[function(require,module,exports){(function(process){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.events=exports.eventMappings=undefined;exports.convertFilterData=convertFilterData;exports.promisify=promisify;exports.normalizeError=normalizeError;var _feathersCommons=require("feathers-commons");var eventMappings=exports.eventMappings={create:"created",update:"updated",patch:"patched",remove:"removed"};var events=exports.events=Object.keys(eventMappings).map(function(method){return eventMappings[method]});function convertFilterData(obj){return _feathersCommons.hooks.convertHookData(obj)}function promisify(method,context){for(var _len=arguments.length,args=Array(_len>2?_len-2:0),_key=2;_key<_len;_key++){args[_key-2]=arguments[_key]}return new Promise(function(resolve,reject){method.apply(context,args.concat(function(error,result){if(error){return reject(error)}resolve(result)}))})}function normalizeError(e){var result={};Object.getOwnPropertyNames(e).forEach(function(key){return result[key]=e[key]});if(process.env.NODE_ENV==="production"){delete result.stack}delete result.hook;return result}}).call(this,require("_process"))},{_process:40,"feathers-commons":9}],28:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{"./lib/client":29,dup:16}],29:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i1e4)return;var match=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]);var type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"yrs":case"yr":case"y":return n*y;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"hrs":case"hr":case"h":return n*h;case"minutes":case"minute":case"mins":case"min":case"m":return n*m;case"seconds":case"second":case"secs":case"sec":case"s":return n*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}function short(ms){if(ms>=d)return Math.round(ms/d)+"d";if(ms>=h)return Math.round(ms/h)+"h";if(ms>=m)return Math.round(ms/m)+"m";if(ms>=s)return Math.round(ms/s)+"s";return ms+"ms"}function long(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural(ms,m,"minute")||plural(ms,s,"second")||ms+" ms"}function plural(ms,n,name){if(ms1){for(var i=1;i=0&&(options.parseArrays&&index<=options.arrayLimit)){obj=[];obj[index]=parseObject(chain,val,options)}else{obj[cleanRoot]=parseObject(chain,val,options)}}return obj};var parseKeys=function parseKeys(givenKey,val,options){if(!givenKey){return}var key=options.allowDots?givenKey.replace(/\.([^\.\[]+)/g,"[$1]"):givenKey;var parent=/^([^\[\]]*)/;var child=/(\[[^\[\]]*\])/g;var segment=parent.exec(key);var keys=[];if(segment[1]){if(!options.plainObjects&&Object.prototype.hasOwnProperty(segment[1])){if(!options.allowPrototypes){return}}keys.push(segment[1])}var i=0;while((segment=child.exec(key))!==null&&i=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122){out+=string.charAt(i);continue}if(c<128){out=out+hexTable[c];continue}if(c<2048){out=out+(hexTable[192|c>>6]+hexTable[128|c&63]);continue}if(c<55296||c>=57344){out=out+(hexTable[224|c>>12]+hexTable[128|c>>6&63]+hexTable[128|c&63]);continue}i+=1;c=65536+((c&1023)<<10|string.charCodeAt(i)&1023);out+=hexTable[240|c>>18]+hexTable[128|c>>12&63]+hexTable[128|c>>6&63]+hexTable[128|c&63]}return out};exports.compact=function(obj,references){if(typeof obj!=="object"||obj===null){return obj}var refs=references||[];var lookup=refs.indexOf(obj);if(lookup!==-1){return refs[lookup]}refs.push(obj);if(Array.isArray(obj)){var compacted=[];for(var i=0;i25){var remainder=num%26;outString=letters.charAt(remainder)+outString;num=Math.floor(num/26)-1}outString=letters.charAt(num)+outString;return outString};exports.makeFakeArgs=function(len){var argArr=[];for(var i=0;i