From 0a4457ec7bf1974181b9e49dc21560ec36cd635a Mon Sep 17 00:00:00 2001 From: guylabs Date: Wed, 23 Dec 2015 10:34:21 +0100 Subject: [PATCH] #18(fix): update module to use Angular version 1.4.8 --- RELEASENOTES.md | 9 +++++ bower.json | 8 ++--- dist/angular-spring-data-rest.js | 6 ++-- dist/angular-spring-data-rest.min.js | 4 +-- package.json | 33 +++++++++---------- ...ing-data-rest-interceptor-provider.spec.js | 6 ++-- test/angular-spring-data-rest.helper.spec.js | 3 +- 7 files changed, 36 insertions(+), 33 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index c223072..ecf7862 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,14 @@ # Release notes of angular-spring-data-rest +## Version 0.4.4 + +* Tag: [0.4.4](https://github.com/guylabs/angular-spring-data-rest/tree/0.4.4) +* Release: [angular-spring-data-rest-0.4.4.zip](https://github.com/guylabs/angular-spring-data-rest/releases/download/0.4.4/angular-spring-data-rest-0.4.4.zip) + +### Changes + +* Upgraded to the latest Angular 1.4.x version. See [#18](https://github.com/guylabs/angular-spring-data-rest/issues/18) for details. + ## Version 0.4.3 * Tag: [0.4.3](https://github.com/guylabs/angular-spring-data-rest/tree/0.4.3) diff --git a/bower.json b/bower.json index 217809f..fc2ce02 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angular-spring-data-rest", - "version": "0.4.3", + "version": "0.4.4", "description": "An AngularJS module to ease the work with a Spring Data REST backend.", "main": "./dist/angular-spring-data-rest.js", "license": "MIT", @@ -33,10 +33,10 @@ "url": "https://github.com/guylabs/angular-spring-data-rest.git" }, "dependencies": { - "angular": "~1.3.15", - "angular-resource": "~1.3.15" + "angular": "~1.4.8", + "angular-resource": "~1.4.8" }, "devDependencies": { - "angular-mocks": "~1.3.15" + "angular-mocks": "~1.4.8" } } diff --git a/dist/angular-spring-data-rest.js b/dist/angular-spring-data-rest.js index 4d3e291..586d213 100644 --- a/dist/angular-spring-data-rest.js +++ b/dist/angular-spring-data-rest.js @@ -4,7 +4,7 @@ /** * @module spring-data-rest - * @version 0.4.3 + * @version 0.4.4 * * An AngularJS module to ease the work with a Spring Data REST backend. */ @@ -12,7 +12,7 @@ angular.module("spring-data-rest", ["ngResource"]); /** * @module spring-data-rest - * @version 0.4.3 + * @version 0.4.4 * * Provider for the SpringDataRestAdapter which is the core of this module. */ @@ -389,7 +389,7 @@ angular.module("spring-data-rest").provider("SpringDataRestAdapter", function () }); /** * @module spring-data-rest - * @version 0.4.3 + * @version 0.4.4 * * Provider for the interceptor which wraps the SpringDataRestAdapter around the response object. */ diff --git a/dist/angular-spring-data-rest.min.js b/dist/angular-spring-data-rest.min.js index 413dbed..ed7028d 100644 --- a/dist/angular-spring-data-rest.min.js +++ b/dist/angular-spring-data-rest.min.js @@ -1,6 +1,6 @@ /*! - * angular-spring-data-rest 0.4.3 + * angular-spring-data-rest 0.4.4 * Copyright 2015 Guy Brand (@guy_labs) * https://github.com/guylabs/angular-spring-data-rest */ -!function(){"use strict";function a(b){return angular.forEach(arguments,function(c){c!==b&&angular.forEach(c,function(c,d){b[d]&&b[d].constructor&&b[d].constructor===Object?a(b[d],c):b[d]=c})}),angular.copy(b)}function b(a,b,c,d){var e=a[b];if(e){var f={};if(f[c]={},d===!0)angular.forEach(Object.keys(e),function(a){f[c][a]=e[a]});else{var g=Object.keys(e)[0];f[c]=e[g]}a=angular.extend(a,f),delete a[b]}return a}function c(a,b){return b&&(a=e(a)),a}function d(a,b,c){if(void 0==a||!a)throw new Error("The provided resource name '"+b+"' has no valid URL in the '"+c+"' property.");return a}function e(a){return a.replace(/{.*}/g,"")}function f(a){var b={},c=/{\?(.*)}/g,d=c.exec(a)[1].split(",");return angular.forEach(d,function(a){b[a]=""}),b}angular.module("spring-data-rest",["ngResource"]),angular.module("spring-data-rest").provider("SpringDataRestAdapter",function(){var e={linksKey:"_links",linksHrefKey:"href",linksSelfLinkName:"self",embeddedKey:"_embedded",embeddedNewKey:"_embeddedItems",embeddedNamedResources:!1,resourcesKey:"_resources",resourcesFunction:void 0,fetchFunction:void 0,fetchAllKey:"_allLinks"};return{config:function(b){if("undefined"!=typeof b){if(!angular.isObject(b))throw new Error("The given configuration '"+b+"' is not an object.");if(void 0!=b.resourcesFunction&&"function"!=typeof b.resourcesFunction)throw new Error("The given resource function '"+b.resourcesFunction+"' is not of type function.");if(void 0!=b.fetchFunction&&"function"!=typeof b.fetchFunction)throw new Error("The given fetch function '"+b.fetchFunction+"' is not of type function.");e=a(e,b)}return e},$get:["$injector",function(a){function g(b,c,d,f){return void 0==e.resourcesFunction?a.get("$resource")(b,c,d,f):e.resourcesFunction(b,c,d,f)}function h(b,c,d,f,g){if(void 0==e.fetchFunction){var h=[];return h.push(a.get("$http").get(b).then(function(a){return g?j(a.data,f,!0).then(function(a){d[c]=a}):j(a.data).then(function(a){d[c]=a})},function(b){return 404!=b.status?a.get("$q").reject(b):void 0})),a.get("$q").all(h)}return e.fetchFunction(b,c,d,f,g)}var i={},j=function k(j,l,m){function n(a,b){var f=d(a[e.linksKey][b][e.linksHrefKey],b,e.linksHrefKey);return c(f,a[e.linksKey][b].templated)}function o(a){return"string"==typeof a&&a.indexOf("/")>0}function p(a){if(o(a)){var b=a.indexOf("/");return[a.substr(0,b),a.substr(b,a.length)]}}return a.get("$q").when(j).then(function(c){var d=function(a,b,d,h){var i=this[e.linksKey],j=b,k="";if(o(a)){var l=p(a);a=l[0],k=l[1]}if(angular.isObject(a)){if(!a.name)throw new Error("The provided resource object must contain a name property.");var m=a.parameters;return b&&angular.isObject(b)?j=m&&angular.isObject(m)?angular.extend(angular.copy(b),angular.copy(m)):angular.copy(b):m&&angular.isObject(m)&&(j=angular.copy(m)),angular.forEach(j,function(a,b){""===a&&delete j[b]}),g(n(c,a.name),j,d,h)}if(a in i)return g(n(c,a)+k,j,d,h);var q=[];return angular.forEach(i,function(a,b){if(a.templated){var c=f(a[e.linksHrefKey]);q.push({name:b,parameters:c})}else q.push({name:b})}),q};if(c&&c.data&&(c=c.data),!angular.isObject(c)||c instanceof Array)return a.get("$q").reject("Given data '"+c+"' is not of type object.");if(l&&!(l instanceof Array||"string"==typeof l))return a.get("$q").reject("Given fetch links '"+l+"' is not of type array or string.");var j=void 0,q=[];if(e.linksKey in c){var r={};if(r[e.resourcesKey]=d,j=angular.extend(angular.copy(c),r),void 0!=l){var s=c[e.linksKey][e.linksSelfLinkName][e.linksHrefKey];i[s]||(i[s]=[]),angular.forEach(c[e.linksKey],function(a,b){b!=e.linksSelfLinkName&&i[s].indexOf(b)<0&&(l==e.fetchAllKey||"string"==typeof l&&b==l||l instanceof Array&&l.indexOf(b)>=0)&&(q.push(h(n(c,b),b,j,l,m)),i[s].push(b))})}}return e.embeddedKey in c&&(j||(j=angular.copy(c)),j=b(j,e.embeddedKey,e.embeddedNewKey,e.embeddedNamedResources),angular.forEach(j[e.embeddedNewKey],function(a,b){if(a instanceof Array&&a.length>0){var c,d=[];angular.forEach(a,function(a,b){angular.isObject(a)?(c=k({data:a},l,m).then(function(a){d[b]=a}),q.push(c)):d[b]=a}),c&&c.then(function(){j[e.embeddedNewKey][b]=d})}else angular.isObject(a)&&q.push(k({data:a},l,m).then(function(a){j[e.embeddedNewKey][b]=a}))})),a.get("$q").all(q).then(function(){return j?j:c})})};return{process:function(a,b,c){return i={},j(a,b,c)}}}]}}),angular.module("spring-data-rest").provider("SpringDataRestInterceptor",["$httpProvider","SpringDataRestAdapterProvider",function(a){return{apply:function(){a.interceptors.push("SpringDataRestInterceptor")},$get:["SpringDataRestAdapter","$q",function(a){return{response:function(b){return angular.isObject(b.data)?a.process(b.data).then(function(a){return b.data=a,b}):b}}}]}}])}(); \ No newline at end of file +!function(){"use strict";function a(b){return angular.forEach(arguments,function(c){c!==b&&angular.forEach(c,function(c,d){b[d]&&b[d].constructor&&b[d].constructor===Object?a(b[d],c):b[d]=c})}),angular.copy(b)}function b(a,b,c,d){var e=a[b];if(e){var f={};if(f[c]={},d===!0)angular.forEach(Object.keys(e),function(a){f[c][a]=e[a]});else{var g=Object.keys(e)[0];f[c]=e[g]}a=angular.extend(a,f),delete a[b]}return a}function c(a,b){return b&&(a=e(a)),a}function d(a,b,c){if(void 0==a||!a)throw new Error("The provided resource name '"+b+"' has no valid URL in the '"+c+"' property.");return a}function e(a){return a.replace(/{.*}/g,"")}function f(a){var b={},c=/{\?(.*)}/g,d=c.exec(a)[1].split(",");return angular.forEach(d,function(a){b[a]=""}),b}angular.module("spring-data-rest",["ngResource"]),angular.module("spring-data-rest").provider("SpringDataRestAdapter",function(){var e={linksKey:"_links",linksHrefKey:"href",linksSelfLinkName:"self",embeddedKey:"_embedded",embeddedNewKey:"_embeddedItems",embeddedNamedResources:!1,resourcesKey:"_resources",resourcesFunction:void 0,fetchFunction:void 0,fetchAllKey:"_allLinks"};return{config:function(b){if("undefined"!=typeof b){if(!angular.isObject(b))throw new Error("The given configuration '"+b+"' is not an object.");if(void 0!=b.resourcesFunction&&"function"!=typeof b.resourcesFunction)throw new Error("The given resource function '"+b.resourcesFunction+"' is not of type function.");if(void 0!=b.fetchFunction&&"function"!=typeof b.fetchFunction)throw new Error("The given fetch function '"+b.fetchFunction+"' is not of type function.");e=a(e,b)}return e},$get:["$injector",function(a){function g(b,c,d,f){return void 0==e.resourcesFunction?a.get("$resource")(b,c,d,f):e.resourcesFunction(b,c,d,f)}function h(b,c,d,f,g){if(void 0==e.fetchFunction){var h=[];return h.push(a.get("$http").get(b).then(function(a){return g?j(a.data,f,!0).then(function(a){d[c]=a}):j(a.data).then(function(a){d[c]=a})},function(b){return 404!=b.status?a.get("$q").reject(b):void 0})),a.get("$q").all(h)}return e.fetchFunction(b,c,d,f,g)}var i={},j=function k(j,l,m){function n(a,b){var f=d(a[e.linksKey][b][e.linksHrefKey],b,e.linksHrefKey);return c(f,a[e.linksKey][b].templated)}function o(a){return"string"==typeof a&&a.indexOf("/")>0}function p(a){if(o(a)){var b=a.indexOf("/");return[a.substr(0,b),a.substr(b,a.length)]}}return a.get("$q").when(j).then(function(c){var d=function(a,b,d,h){var i=this[e.linksKey],j=b,k="";if(o(a)){var l=p(a);a=l[0],k=l[1]}if(angular.isObject(a)){if(!a.name)throw new Error("The provided resource object must contain a name property.");var m=a.parameters;return b&&angular.isObject(b)?j=m&&angular.isObject(m)?angular.extend(angular.copy(b),angular.copy(m)):angular.copy(b):m&&angular.isObject(m)&&(j=angular.copy(m)),angular.forEach(j,function(a,b){""===a&&delete j[b]}),g(n(c,a.name),j,d,h)}if(a in i)return g(n(c,a)+k,j,d,h);var q=[];return angular.forEach(i,function(a,b){if(a.templated){var c=f(a[e.linksHrefKey]);q.push({name:b,parameters:c})}else q.push({name:b})}),q};if(c&&c.data&&(c=c.data),!angular.isObject(c)||c instanceof Array)return a.get("$q").reject("Given data '"+c+"' is not of type object.");if(l&&!(l instanceof Array||"string"==typeof l))return a.get("$q").reject("Given fetch links '"+l+"' is not of type array or string.");var j=void 0,q=[];if(e.linksKey in c){var r={};if(r[e.resourcesKey]=d,j=angular.extend(angular.copy(c),r),void 0!=l){var s=c[e.linksKey][e.linksSelfLinkName][e.linksHrefKey];i[s]||(i[s]=[]),angular.forEach(c[e.linksKey],function(a,b){b!=e.linksSelfLinkName&&i[s].indexOf(b)<0&&(l==e.fetchAllKey||"string"==typeof l&&b==l||l instanceof Array&&l.indexOf(b)>=0)&&(q.push(h(n(c,b),b,j,l,m)),i[s].push(b))})}}return e.embeddedKey in c&&(j||(j=angular.copy(c)),j=b(j,e.embeddedKey,e.embeddedNewKey,e.embeddedNamedResources),angular.forEach(j[e.embeddedNewKey],function(a,b){if(a instanceof Array&&a.length>0){var c,d=[];angular.forEach(a,function(a,b){angular.isObject(a)?(c=k({data:a},l,m).then(function(a){d[b]=a}),q.push(c)):d[b]=a}),c&&c.then(function(){j[e.embeddedNewKey][b]=d})}else angular.isObject(a)&&q.push(k({data:a},l,m).then(function(a){j[e.embeddedNewKey][b]=a}))})),a.get("$q").all(q).then(function(){return j?j:c})})};return{process:function(a,b,c){return i={},j(a,b,c)}}}]}}),angular.module("spring-data-rest").provider("SpringDataRestInterceptor",["$httpProvider","SpringDataRestAdapterProvider",function(a){return{apply:function(){a.interceptors.push("SpringDataRestInterceptor")},$get:["SpringDataRestAdapter","$q",function(a,b){return{response:function(b){return angular.isObject(b.data)?a.process(b.data).then(function(a){return b.data=a,b}):b}}}]}}])}(); \ No newline at end of file diff --git a/package.json b/package.json index 410c09c..0e717c7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "angular-spring-data-rest", - "version": "0.4.3", + "version": "0.4.4", "description": "An AngularJS module to ease the work with a Spring Data REST backend.", "keywords": [ "AngularJS", @@ -23,27 +23,24 @@ }, "main": "dist/angular-spring-data-rest.min.js", "devDependencies": { - "bower": "~1.3.12", - "coveralls": "^2.11.2", + "bower": "~1.7.1", + "coveralls": "~2.11.6", "grunt": "~0.4.5", - "grunt-bower-install-simple": "~1.1.0", + "grunt-bower-install-simple": "~1.2.0", "grunt-contrib-concat": "~0.5.1", - "grunt-contrib-uglify": "~0.8.0", - "grunt-karma": "~0.10.1", - "karma": "~0.12.31", - "karma-chrome-launcher": "~0.1.7", - "karma-coverage": "^0.2.7", - "karma-firefox-launcher": "~0.1.4", - "karma-jasmine": "~0.3.5", - "karma-phantomjs-launcher": "~0.1.4", - "load-grunt-tasks": "~3.1.0", - "time-grunt": "~1.1.0" + "grunt-contrib-uglify": "~0.11.0", + "grunt-karma": "~0.12.1", + "karma": "~0.13.15", + "karma-chrome-launcher": "~0.2.2", + "karma-coverage": "~0.5.3", + "karma-firefox-launcher": "~0.1.7", + "karma-jasmine": "~0.3.6", + "karma-phantomjs-launcher": "~0.2.1", + "load-grunt-tasks": "~3.4.0", + "time-grunt": "~1.2.2" }, "dependencies": {}, - "license": { - "type": "MIT", - "url": "https://github.com/guylabs/angular-spring-data-rest/blob/master/LICENSE" - }, + "license": "MIT", "scripts": { "test": "grunt test" } diff --git a/test/angular-spring-data-rest-interceptor-provider.spec.js b/test/angular-spring-data-rest-interceptor-provider.spec.js index f40e44d..f9b178a 100644 --- a/test/angular-spring-data-rest-interceptor-provider.spec.js +++ b/test/angular-spring-data-rest-interceptor-provider.spec.js @@ -11,8 +11,7 @@ describe("if the spring data rest interceptor is not added", function () { // initialize the provider by injecting it to a config block of a test module // and assign it to the this scope such that it is available in each test // (see https://jasmine.github.io/2.0/introduction.html#section-The_this_keyword) - angular.module('testModule', function () { - }).config(function (SpringDataRestAdapterProvider, SpringDataRestInterceptorProvider) { + angular.module('testModule', []).config(function (SpringDataRestAdapterProvider, SpringDataRestInterceptorProvider) { springDataRestAdapterProvider = SpringDataRestAdapterProvider; }); @@ -77,8 +76,7 @@ describe("if the spring data rest interceptor is added", function () { // initialize the provider by injecting it to a config block of a test module // and assign it to the this scope such that it is available in each test // (see https://jasmine.github.io/2.0/introduction.html#section-The_this_keyword) - angular.module('testModule', function () { - }).config(function (SpringDataRestAdapterProvider, SpringDataRestInterceptorProvider) { + angular.module('testModule', []).config(function (SpringDataRestAdapterProvider, SpringDataRestInterceptorProvider) { springDataRestAdapterProvider = SpringDataRestAdapterProvider; SpringDataRestInterceptorProvider.apply(); }); diff --git a/test/angular-spring-data-rest.helper.spec.js b/test/angular-spring-data-rest.helper.spec.js index ca1b674..ab5ff8c 100644 --- a/test/angular-spring-data-rest.helper.spec.js +++ b/test/angular-spring-data-rest.helper.spec.js @@ -9,8 +9,7 @@ var beforeEachFunction = function () { // initialize the provider by injecting it to a config block of a test module // and assign it to the this scope such that it is available in each test // (see https://jasmine.github.io/2.0/introduction.html#section-The_this_keyword) - angular.module('testModule', function () { - }).config(function (SpringDataRestAdapterProvider) { + angular.module('testModule', []).config(function (SpringDataRestAdapterProvider) { springDataRestAdapterProvider = SpringDataRestAdapterProvider; });