<NME> ng-rest-api.min.js
<BEF> !function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),i=r(a);t["default"]=angular.module("ng-rest-api",[]).provider("api",i["default"])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(2),u=r(o),s=n(3),l=r(s),c=function(){function e(){a(this,e),this.baseRoute="",this.httpParamSerializerJQLikeMode=!1,this.endpoints={}}return i(e,[{key:"setBaseRoute",value:function(e){this.baseRoute=e}},{key:"enableHttpParamSerializerJQLikeMode",value:function(){this.httpParamSerializerJQLikeMode=!0}},{key:"endpoint",value:function(e){var t=new u["default"];return this.endpoints[e]=t,t}},{key:"$get",value:["$injector",function(e){"ngInject";var t=this,n={};return angular.forEach(this.endpoints,function(r,a){n[a]=e.instantiate(l["default"],{baseRoute:t.baseRoute,httpParamSerializerJQLikeMode:t.httpParamSerializerJQLikeMode,endpointConfig:r})}),n}]}]),e}();t["default"]=c},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(){var t=this;n(this,e),this.actions={},this.modelClass=!1;var r={GET:"get",PUT:"update",POST:"save",PATCH:"patch",DELETE:"remove"};angular.forEach(r,function(e,n){t.addHttpAction(n,e)})}return r(e,[{key:"route",value:function(e){return this.route=e,this}},{key:"model",value:function(e){return this.modelClass=e,this}},{key:"addHttpAction",value:function(e,t,n){return this.actions[t]=angular.merge({method:e.toUpperCase()},n),this}}]),e}();t["default"]=a},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t,r,a,i,o,u,s){"ngInject";var l=this;n(this,e),this.config=a,this.$injector=o,this.$q=s,this.resource=u(t+a.route,{},a.actions),this.httpParamSerializerJQLikeMode=r,this.$httpParamSerializerJQLike=i,angular.isString(this.config.model)&&(this.config.model=o.get(this.config.model)),angular.forEach(a.actions,function(e,t){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e.method=e.method.toUpperCase();var r=l.request,i=n[t]?n[t]:{},o={name:t,instantiateModel:i.instantiateModel!==!1,headersForReading:i.headersForReading||!1,isSaveRequest:"PUT"===e.method||"POST"===e.method||"PATCH"===e.method};a.model&&(r=o.isSaveRequest?l.saveRequestWithModel:l.getRequestWithModel),l[t]=angular.bind(l,r,o)})}return e.$inject=["baseRoute","httpParamSerializerJQLikeMode","endpointConfig","$httpParamSerializerJQLike","$injector","$resource","$q"],r(e,[{key:"instantiateModel",value:function(e){var t=this.config.modelClass?new this.config.modelClass(e):e;return t&&angular.isFunction(t.afterLoad)&&t.afterLoad(),t}},{key:"request",value:function(e){var t=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],a=!1;return(this.httpParamSerializerJQLikeMode&&e.httpParamSerializerJQLikeMode!==!1||e.httpParamSerializerJQLikeMode)&&(r=this.$httpParamSerializerJQLike(r)),this.config.actions[e.name].transformResponse=function(t,n){return e.headersForReading&&Array.isArray(e.headersForReading)&&!function(){var t=n();a={},e.headersForReading.map(function(e){t[e]&&(a[e]=t[e])})}(),e.instantiateModel&&t?angular.fromJson(t):t},this.resource[e.name](n,r).$promise.then(function(n){var r=n,i=null;return i=e.instantiateModel?angular.isArray(r)?r.map(function(e){return t.instantiateModel(e)}):function(){return t.instantiateModel(r)}():n.data,a?[i,a]:i})}},{key:"getRequestWithModel",value:function(e,t){return this.request(e,t)}},{key:"saveRequestWithModel",value:function(e,t,n){n||(n=t,t={});var r=angular.copy(n);return r&&angular.isFunction(r.beforeSave)&&r.beforeSave(),this.request(e,t,r)}}]),e}();t["default"]=a}]);

<MSG> Add enableHttpParamSerializerJQLikeMode feature, and small refactoring.

<DFF> @@ -1,1 +1,1 @@
-!function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),i=r(a);t["default"]=angular.module("ng-rest-api",[]).provider("api",i["default"])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(2),u=r(o),s=n(3),l=r(s),c=function(){function e(){a(this,e),this.baseRoute="",this.httpParamSerializerJQLikeMode=!1,this.endpoints={}}return i(e,[{key:"setBaseRoute",value:function(e){this.baseRoute=e}},{key:"enableHttpParamSerializerJQLikeMode",value:function(){this.httpParamSerializerJQLikeMode=!0}},{key:"endpoint",value:function(e){var t=new u["default"];return this.endpoints[e]=t,t}},{key:"$get",value:["$injector",function(e){"ngInject";var t=this,n={};return angular.forEach(this.endpoints,function(r,a){n[a]=e.instantiate(l["default"],{baseRoute:t.baseRoute,httpParamSerializerJQLikeMode:t.httpParamSerializerJQLikeMode,endpointConfig:r})}),n}]}]),e}();t["default"]=c},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(){var t=this;n(this,e),this.actions={},this.modelClass=!1;var r={GET:"get",PUT:"update",POST:"save",PATCH:"patch",DELETE:"remove"};angular.forEach(r,function(e,n){t.addHttpAction(n,e)})}return r(e,[{key:"route",value:function(e){return this.route=e,this}},{key:"model",value:function(e){return this.modelClass=e,this}},{key:"addHttpAction",value:function(e,t,n){return this.actions[t]=angular.merge({method:e.toUpperCase()},n),this}}]),e}();t["default"]=a},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t,r,a,i,o,u,s){"ngInject";var l=this;n(this,e),this.config=a,this.$injector=o,this.$q=s,this.resource=u(t+a.route,{},a.actions),this.httpParamSerializerJQLikeMode=r,this.$httpParamSerializerJQLike=i,angular.isString(this.config.model)&&(this.config.model=o.get(this.config.model)),angular.forEach(a.actions,function(e,t){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e.method=e.method.toUpperCase();var r=l.request,i=n[t]?n[t]:{},o={name:t,instantiateModel:i.instantiateModel!==!1,headersForReading:i.headersForReading||!1,isSaveRequest:"PUT"===e.method||"POST"===e.method||"PATCH"===e.method};a.model&&(r=o.isSaveRequest?l.saveRequestWithModel:l.getRequestWithModel),l[t]=angular.bind(l,r,o)})}return e.$inject=["baseRoute","httpParamSerializerJQLikeMode","endpointConfig","$httpParamSerializerJQLike","$injector","$resource","$q"],r(e,[{key:"instantiateModel",value:function(e){var t=this.config.modelClass?new this.config.modelClass(e):e;return t&&angular.isFunction(t.afterLoad)&&t.afterLoad(),t}},{key:"request",value:function(e){var t=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],a=!1;return(this.httpParamSerializerJQLikeMode&&e.httpParamSerializerJQLikeMode!==!1||e.httpParamSerializerJQLikeMode)&&(r=this.$httpParamSerializerJQLike(r)),this.config.actions[e.name].transformResponse=function(t,n){return e.headersForReading&&Array.isArray(e.headersForReading)&&!function(){var t=n();a={},e.headersForReading.map(function(e){t[e]&&(a[e]=t[e])})}(),e.instantiateModel&&t?angular.fromJson(t):t},this.resource[e.name](n,r).$promise.then(function(n){var r=n,i=null;return i=e.instantiateModel?angular.isArray(r)?r.map(function(e){return t.instantiateModel(e)}):function(){return t.instantiateModel(r)}():n.data,a?[i,a]:i})}},{key:"getRequestWithModel",value:function(e,t){return this.request(e,t)}},{key:"saveRequestWithModel",value:function(e,t,n){n||(n=t,t={});var r=angular.copy(n);return r&&angular.isFunction(r.beforeSave)&&r.beforeSave(),this.request(e,t,r)}}]),e}();t["default"]=a}]);
\ No newline at end of file
+!function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(1),i=r(a);t["default"]=angular.module("ng-rest-api",["ngResource"]).provider("api",i["default"])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(2),u=r(o),s=n(3),l=r(s),c=function(){function e(){a(this,e),this.baseRoute="",this.httpParamSerializerJQLikeMode=!1,this.endpoints={}}return i(e,[{key:"setBaseRoute",value:function(e){this.baseRoute=e}},{key:"enableHttpParamSerializerJQLikeMode",value:function(){this.httpParamSerializerJQLikeMode=!0}},{key:"endpoint",value:function(e){var t=new u["default"];return this.endpoints[e]=t,t}},{key:"$get",value:["$injector",function(e){"ngInject";var t=this,n={};return angular.forEach(this.endpoints,function(r,a){n[a]=e.instantiate(l["default"],{baseRoute:t.baseRoute,httpParamSerializerJQLikeMode:t.httpParamSerializerJQLikeMode,endpointConfig:r})}),n}]}]),e}();t["default"]=c},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(){var t=this;n(this,e),this.actions={},this.modelClass=!1;var r={GET:"get",PUT:"update",POST:"save",PATCH:"patch",DELETE:"remove"};angular.forEach(r,function(e,n){t.addHttpAction(n,e)})}return r(e,[{key:"route",value:function(e){return this.route=e,this}},{key:"model",value:function(e){return this.modelClass=e,this}},{key:"addHttpAction",value:function(e,t,n){return this.actions[t]=angular.merge({method:e.toUpperCase()},n),this}}]),e}();t["default"]=a},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t,r,a,i,o,u,s){"ngInject";var l=this;n(this,e),this.config=a,this.$injector=o,this.$q=s,this.resource=u(t+a.route,{},a.actions),this.httpParamSerializerJQLikeMode=r,this.$httpParamSerializerJQLike=i,angular.isString(this.config.model)&&(this.config.model=o.get(this.config.model)),angular.forEach(a.actions,function(e,t){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];e.method=e.method.toUpperCase();var r=l.request,i=n[t]?n[t]:{},o={name:t,instantiateModel:i.instantiateModel!==!1,headersForReading:i.headersForReading||!1,isSaveRequest:"PUT"===e.method||"POST"===e.method||"PATCH"===e.method};a.model&&(r=o.isSaveRequest?l.saveRequestWithModel:l.getRequestWithModel),l[t]=angular.bind(l,r,o)})}return e.$inject=["baseRoute","httpParamSerializerJQLikeMode","endpointConfig","$httpParamSerializerJQLike","$injector","$resource","$q"],r(e,[{key:"instantiateModel",value:function(e){var t=this.config.modelClass?new this.config.modelClass(e):e;return t&&angular.isFunction(t.afterLoad)&&t.afterLoad(),t}},{key:"request",value:function(e){var t=this,n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],a=!1;return(this.httpParamSerializerJQLikeMode&&e.httpParamSerializerJQLikeMode!==!1||e.httpParamSerializerJQLikeMode)&&(r=this.$httpParamSerializerJQLike(r)),this.config.actions[e.name].transformResponse=function(t,n){return e.headersForReading&&Array.isArray(e.headersForReading)&&!function(){var t=n();a={},e.headersForReading.map(function(e){t[e]&&(a[e]=t[e])})}(),e.instantiateModel&&t?angular.fromJson(t):{data:t}},this.resource[e.name](n,r).$promise.then(function(n){var r=n,i=null;return i=e.instantiateModel?angular.isArray(r)?r.map(function(e){return t.instantiateModel(e)}):function(){return t.instantiateModel(r)}():n.data,a?[i,a]:i})}},{key:"getRequestWithModel",value:function(e,t){return this.request(e,t)}},{key:"saveRequestWithModel",value:function(e,t,n){n||(n=t,t={});var r=angular.copy(n);return r&&angular.isFunction(r.beforeSave)&&r.beforeSave(),this.request(e,t,r)}}]),e}();t["default"]=a}]);
\ No newline at end of file

Add enableHttpParamSerializerJQLikeMode feature, and small refactoring.