diff --git a/README.md b/README.md
index 9312da1..987587d 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@ JavaScript library for using OAuth 2.0 Implicit Grant flow (Client-Side Flow) or
This creates an OAuth 2.0 Ember object class for handling authentication with OAuth 2.0 providers.
-Current Version: **[0.7.0](https://github.com/amkirwan/ember-oauth2/releases/tag/v0.7.0)**
+Current Version: **[1.0.0](https://github.com/amkirwan/ember-oauth2/releases/tag/v1.0.0)**
The EmberCli addon [EmberTokenAuth](https://github.com/amkirwan/ember-token-auth) demonstrates how to use Ember-OAuth2 library for authentication.
@@ -150,7 +150,7 @@ Old API for handling the redirect in version <= 0.2.3 that does not use Ember.Ev
Authorize
@@ -183,13 +183,6 @@ App.oauth.on('success', function(stateObj) { return 'hello, success' } });
App.oauth.on('error', function(err) { return 'hello, error' } });
```
-Old API for the callbacks version <= 0.2.3 that does not use Ember.Evented for binding events.
-
-```javascript
-Ember.OAuth2.reopen({ onSuccess: function() { return 'hello, onSuccess' } });
-Ember.OAuth2.reopen({ onError: function() { return 'hello, onError' } });
-```
-
## Authorization Grant flow
If using the Authorization Grant flow with your provider your backend server will need to handle the final steps of authorizing your application. Your success handler will need to send the `AUTHORIZATON_CODE` returned from OAuth2 provider to your backend server which can then retrieve an access token using the client_id, client_secret, and authorization_code.
diff --git a/bower.json b/bower.json
index e033af3..02d770f 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
{
"name": "ember-oauth2",
- "version": "0.7.0",
+ "version": "1.0.0",
"homepage": "https://github.com/amkirwan/ember-oauth2",
"authors": [
"Anthony Kirwan "
diff --git a/dist/ember-oauth2.amd.js b/dist/ember-oauth2.amd.js
index 3b0b1ae..5d56188 100644
--- a/dist/ember-oauth2.amd.js
+++ b/dist/ember-oauth2.amd.js
@@ -8,7 +8,7 @@ define("ember-oauth2",
* @overview OAuth2 library for Emberjs that stores tokens in the browsers localStorage
* @license Licensed under MIT license
* See https://raw.github.com/amkirwan/ember-oauth2/master/LICENSE
- * @version 0.7.0
+ * @version 1.0.0
*
* @module ember-oauth2
* @class ember-oauth2
@@ -95,24 +95,11 @@ define("ember-oauth2",
// sets the properties from the providerConfig and overrides any default settings.
this.setProperties(this.providerConfig);
- // Bind deprecated event handlers
/**
* @event redirect
* @param {function} The function that handles the redirect.
*/
this.on('redirect', this.handleRedirect);
-
- /**
- * @event success
- * @param {function} The function that handles the success callback.
- */
- this.on('success', this._onSuccess);
-
- /**
- * @event error
- * @param {function} The function that handles the error callback.
- */
- this.on('error', this._onError);
},
/**
@@ -238,29 +225,22 @@ define("ember-oauth2",
},
/**
- @method expiresIn
- @return {Number} When the token expires in seconds.
+ * @method expiresIn
+ * @param {String} expires Expires time string from params
+ * @return {Number} When the token expires in seconds.
*/
expiresIn: function(expires) {
return this.now() + parseInt(expires, 10);
},
/**
- * call on redirect from OAuth2 provider response
- @method onRedirect
- @deprecated Use `.trigger('redirect')` instead.
- */
- onRedirect: function(hash, callback) {
- Ember.Logger.warn("Ember.OAuth2.onRedirect is deprecated and will be removed in future versions. Please use .trigger('redirect') instead.");
- this.trigger('redirect', hash, callback);
- },
-
- /*
* proxy functions for old event handlers
*
* Check if the token returned is valid and if so trigger `success` event else trigger `error`
*
* @method handleRedirect
+ * @param {Object} hash The window location hash callback url
+ * @param {Function} callback Optional callback
*/
handleRedirect: function(hash, callback) {
var params = this.parseCallback(hash);
@@ -285,40 +265,6 @@ define("ember-oauth2",
}
},
- /**
- * This method will call the old onSuccess callback when using the old API: Ember.OAuth2.reopen({ onSuccess: function() { return 'hello, onSuccess' } });
- *
- * The old onSuccess method will only be called when onSuccess is defined as a function on the Ember.OAuth2 instance
- *
- * @method _onSuccess
- * @param {Object} stateObj
- * @private
- */
- _onSuccess: function(stateObj) {
- if (typeof(this.onSuccess) !== 'function')
- return;
-
- Ember.Logger.warn("Ember.OAuth2.onSuccess is deprecated and will be removed in future versions. Bind your callbacks using .on('success', fn) instead.");
- this.onSuccess(stateObj);
- },
-
- /**
- * This method will call the old onError callback when using the old API: Ember.OAuth2.reopen({ onError: function() { return 'hello, onError' } });
- *
- * The old onSuccess method will only be called when onError is defined as a function on the Ember.OAuth2 instance
- *
- * @method _onError
- * @param {Object} err object
- * @private
- */
- _onError: function(err) {
- if (typeof(this.onError) !== 'function')
- return;
-
- Ember.Logger.warn("Ember.OAuth2.onError is deprecated and will be removed in furture versions. Bind your callbacks using .on('error', fn) instead.");
- this.onError(err);
- },
-
/**
* Checks if the State returned from the server matches the state that was generated in the original request and saved in the browsers localStorage.
*
@@ -406,6 +352,7 @@ define("ember-oauth2",
* The key name to use for saving state to localstorage
*
* @method stateKeyName
+ * @return {String} The state key name used for localstorage
*/
stateKeyName: function() {
return this.get('statePrefix') + '-' + this.get('state');
@@ -416,6 +363,7 @@ define("ember-oauth2",
* The key name to use for saving the token to localstorage
*
* @method tokenKeyName
+ * @return {String} The token key name used for localstorage
*/
tokenKeyName: function() {
return this.get('tokenPrefix') + '-' + this.get('providerId');
@@ -437,6 +385,10 @@ define("ember-oauth2",
/**
* remove the state from localstorage
+ *
+ * @method removeState
+ * @param {String} stateName The keyname of the state object in localstorage
+ * @return {Object} The deleted state object from localstorage
*/
removeState: function(stateName) {
if (stateName) {
@@ -448,6 +400,9 @@ define("ember-oauth2",
/**
* remove the token from localstorage
+ *
+ * @method removeToken
+ * @return {Object} The token object in localstorage
*/
removeToken: function() {
return window.localStorage.removeItem(this.tokenKeyName());
@@ -504,7 +459,7 @@ define("ember-oauth2",
* @property {String} VERSION
* @final
*/
- var VERSION = "0.7.0";
+ var VERSION = "1.0.0";
/**
* @method version
diff --git a/dist/ember-oauth2.amd.min.js b/dist/ember-oauth2.amd.min.js
index 3a9dfc8..3ed61c0 100644
--- a/dist/ember-oauth2.amd.min.js
+++ b/dist/ember-oauth2.amd.min.js
@@ -1,2 +1,2 @@
-/** ember-oauth2 | @version 0.7.0 | 04-08-2015 */
-define("ember-oauth2",["ember","exports"],function(a,b){"use strict";var c=a["default"];b["default"]=c.Object.extend(c.Evented,{init:function(){if(this._super(),c.OAuth2&&c.OAuth2.config&&Object.keys(c.OAuth2.config).length)c.Logger.warn("Ember.OAuth2.config is deprecated and will be removed in future versions. Set the config using window.ENV['ember-oauth2']"),this.set("config",c.OAuth2.config);else if(window.EmberENV&&window.EmberENV["ember-oauth2"])this.set("config",window.EmberENV["ember-oauth2"]);else{if(!window.ENV||!window.ENV["ember-oauth2"])throw new Error("Cannot find the ember-oauth2 config.");this.set("config",window.ENV["ember-oauth2"])}if(!this.get("config")[this.get("providerId")])throw new Error("Cannot find the providerId: '"+this.get("providerId")+"' in the config.");this.set("providerConfig",this.get("config")[this.get("providerId")]),this.set("statePrefix","state"),this.set("tokenPrefix","token"),this.set("responseType","token"),this.setProperties(this.providerConfig),this.on("redirect",this.handleRedirect),this.on("success",this._onSuccess),this.on("error",this._onError)},version:function(){return d},uuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16)})},now:function(){return Math.round((new Date).getTime()/1e3)},requestObj:function(){var a={};return a.response_type=this.get("responseType"),a.providerId=this.get("providerId"),a.state=this.get("state"),a.client_id=this.get("clientId"),a.state=this.get("state"),this.get("scope")&&(a.scope=this.get("scope")),a},authUri:function(){this.get("state")||this.set("state",this.uuid());var a=this.get("authBaseUri");return a+="?response_type="+encodeURIComponent(this.get("responseType"))+"&redirect_uri="+encodeURIComponent(this.get("redirectUri"))+"&client_id="+encodeURIComponent(this.get("clientId"))+"&state="+encodeURIComponent(this.get("state")),this.get("scope")&&(a+="&scope="+encodeURIComponent(this.get(".scope")).replace("%20","+")),a},authorize:function(){if(!this.get("providerId"))throw new Error("No provider id given.");if(!this.get("clientId"))throw new Error("No client id given.");if(!this.get("authBaseUri"))throw new Error("No auth base uri given.");if(!this.get("redirectUri"))throw new Error("No redirect uri given.");var a=this.authUri();return this.clearStates(),this.saveState(this.get("state"),this.requestObj()),this.openWindow(a)},openWindow:function(a){var b=window.open(a,"Authorize","height=600, width=450");return window.focus&&b&&b.focus(),new c.RSVP.Promise(function(a,c){b?a(b):c(new Error("Opening dialog login window failed."))})},authSuccess:function(a){return"token"===this.get("responseType")&&a.access_token||"code"===this.get("responseType")&&a.code},generateToken:function(a){var b={};return b.provider_id=this.get("providerId"),b.expires_in=this.expiresIn(a.expires_in),b.scope=this.get("scope"),b.access_token=a.access_token,b},expiresIn:function(a){return this.now()+parseInt(a,10)},onRedirect:function(a,b){c.Logger.warn("Ember.OAuth2.onRedirect is deprecated and will be removed in future versions. Please use .trigger('redirect') instead."),this.trigger("redirect",a,b)},handleRedirect:function(a,b){var c=this.parseCallback(a);if(this.authSuccess(c)){var d=this.getState(c.state);this.checkState(d),"token"===this.get("responseType")?(this.saveToken(this.generateToken(c)),this.trigger("success",d)):this.trigger("success",c.code)}else this.trigger("error",c);b&&"function"==typeof b&&b()},_onSuccess:function(a){"function"==typeof this.onSuccess&&(c.Logger.warn("Ember.OAuth2.onSuccess is deprecated and will be removed in future versions. Bind your callbacks using .on('success', fn) instead."),this.onSuccess(a))},_onError:function(a){"function"==typeof this.onError&&(c.Logger.warn("Ember.OAuth2.onError is deprecated and will be removed in furture versions. Bind your callbacks using .on('error', fn) instead."),this.onError(a))},checkState:function(a){if(!a)throw new Error("Could not find state.");if(a.state!==this.get("state"))throw new Error("State returned from the server did not match the local saved state.")},parseCallback:function(a){for(var b,c={},d=a.substring(a.indexOf("?")),e=/([^#?&=]+)=([^&]*)/g;null!==(b=e.exec(d));)c[decodeURIComponent(b[1])]=decodeURIComponent(b[2]);return c},saveState:function(a,b){window.localStorage.setItem(this.stateKeyName(),JSON.stringify(b))},getState:function(a){var b=a||this.stateKeyName(),c=JSON.parse(window.localStorage.getItem(b));return this.removeState(),c},clearStates:function(){for(var a,b=new RegExp("^"+this.get("statePrefix")+"-.*","g"),c=[],d=0,e=window.localStorage.length;e>d;d++)a=window.localStorage.key(d),a.match(b)&&c.push(a);for(var f=0,g=c.length;g>f;f++)a=c[f],this.removeState(a);return c},stateKeyName:function(){return this.get("statePrefix")+"-"+this.get("state")},tokenKeyName:function(){return this.get("tokenPrefix")+"-"+this.get("providerId")},saveToken:function(a){window.localStorage.setItem(this.tokenKeyName(),JSON.stringify(a))},removeState:function(a){return a?window.localStorage.removeItem(a):window.localStorage.removeItem(this.stateKeyName())},removeToken:function(){return window.localStorage.removeItem(this.tokenKeyName())},getToken:function(){var a=JSON.parse(window.localStorage.getItem(this.tokenKeyName()));return a&&a.access_token?a:null},getAccessToken:function(){var a=this.getToken();return a?a.access_token:null},accessTokenIsExpired:function(){var a=this.getToken();return a?this.now()>=a.expires_in?!0:!1:!0},expireAccessToken:function(){var a=this.getToken();return a?(a.expires_in=0,void this.saveToken(a)):null}});var d="0.7.0";c.OAuth2&&(c.OAuth2.version=d)});
\ No newline at end of file
+/** ember-oauth2 | @version 1.0.0 | 07-08-2015 */
+define("ember-oauth2",["ember","exports"],function(a,b){"use strict";var c=a["default"];b["default"]=c.Object.extend(c.Evented,{init:function(){if(this._super(),c.OAuth2&&c.OAuth2.config&&Object.keys(c.OAuth2.config).length)c.Logger.warn("Ember.OAuth2.config is deprecated and will be removed in future versions. Set the config using window.ENV['ember-oauth2']"),this.set("config",c.OAuth2.config);else if(window.EmberENV&&window.EmberENV["ember-oauth2"])this.set("config",window.EmberENV["ember-oauth2"]);else{if(!window.ENV||!window.ENV["ember-oauth2"])throw new Error("Cannot find the ember-oauth2 config.");this.set("config",window.ENV["ember-oauth2"])}if(!this.get("config")[this.get("providerId")])throw new Error("Cannot find the providerId: '"+this.get("providerId")+"' in the config.");this.set("providerConfig",this.get("config")[this.get("providerId")]),this.set("statePrefix","state"),this.set("tokenPrefix","token"),this.set("responseType","token"),this.setProperties(this.providerConfig),this.on("redirect",this.handleRedirect)},version:function(){return d},uuid:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"===a?b:3&b|8;return c.toString(16)})},now:function(){return Math.round((new Date).getTime()/1e3)},requestObj:function(){var a={};return a.response_type=this.get("responseType"),a.providerId=this.get("providerId"),a.state=this.get("state"),a.client_id=this.get("clientId"),a.state=this.get("state"),this.get("scope")&&(a.scope=this.get("scope")),a},authUri:function(){this.get("state")||this.set("state",this.uuid());var a=this.get("authBaseUri");return a+="?response_type="+encodeURIComponent(this.get("responseType"))+"&redirect_uri="+encodeURIComponent(this.get("redirectUri"))+"&client_id="+encodeURIComponent(this.get("clientId"))+"&state="+encodeURIComponent(this.get("state")),this.get("scope")&&(a+="&scope="+encodeURIComponent(this.get(".scope")).replace("%20","+")),a},authorize:function(){if(!this.get("providerId"))throw new Error("No provider id given.");if(!this.get("clientId"))throw new Error("No client id given.");if(!this.get("authBaseUri"))throw new Error("No auth base uri given.");if(!this.get("redirectUri"))throw new Error("No redirect uri given.");var a=this.authUri();return this.clearStates(),this.saveState(this.get("state"),this.requestObj()),this.openWindow(a)},openWindow:function(a){var b=window.open(a,"Authorize","height=600, width=450");return window.focus&&b&&b.focus(),new c.RSVP.Promise(function(a,c){b?a(b):c(new Error("Opening dialog login window failed."))})},authSuccess:function(a){return"token"===this.get("responseType")&&a.access_token||"code"===this.get("responseType")&&a.code},generateToken:function(a){var b={};return b.provider_id=this.get("providerId"),b.expires_in=this.expiresIn(a.expires_in),b.scope=this.get("scope"),b.access_token=a.access_token,b},expiresIn:function(a){return this.now()+parseInt(a,10)},handleRedirect:function(a,b){var c=this.parseCallback(a);if(this.authSuccess(c)){var d=this.getState(c.state);this.checkState(d),"token"===this.get("responseType")?(this.saveToken(this.generateToken(c)),this.trigger("success",d)):this.trigger("success",c.code)}else this.trigger("error",c);b&&"function"==typeof b&&b()},checkState:function(a){if(!a)throw new Error("Could not find state.");if(a.state!==this.get("state"))throw new Error("State returned from the server did not match the local saved state.")},parseCallback:function(a){for(var b,c={},d=a.substring(a.indexOf("?")),e=/([^#?&=]+)=([^&]*)/g;null!==(b=e.exec(d));)c[decodeURIComponent(b[1])]=decodeURIComponent(b[2]);return c},saveState:function(a,b){window.localStorage.setItem(this.stateKeyName(),JSON.stringify(b))},getState:function(a){var b=a||this.stateKeyName(),c=JSON.parse(window.localStorage.getItem(b));return this.removeState(),c},clearStates:function(){for(var a,b=new RegExp("^"+this.get("statePrefix")+"-.*","g"),c=[],d=0,e=window.localStorage.length;e>d;d++)a=window.localStorage.key(d),a.match(b)&&c.push(a);for(var f=0,g=c.length;g>f;f++)a=c[f],this.removeState(a);return c},stateKeyName:function(){return this.get("statePrefix")+"-"+this.get("state")},tokenKeyName:function(){return this.get("tokenPrefix")+"-"+this.get("providerId")},saveToken:function(a){window.localStorage.setItem(this.tokenKeyName(),JSON.stringify(a))},removeState:function(a){return a?window.localStorage.removeItem(a):window.localStorage.removeItem(this.stateKeyName())},removeToken:function(){return window.localStorage.removeItem(this.tokenKeyName())},getToken:function(){var a=JSON.parse(window.localStorage.getItem(this.tokenKeyName()));return a&&a.access_token?a:null},getAccessToken:function(){var a=this.getToken();return a?a.access_token:null},accessTokenIsExpired:function(){var a=this.getToken();return a?this.now()>=a.expires_in?!0:!1:!0},expireAccessToken:function(){var a=this.getToken();return a?(a.expires_in=0,void this.saveToken(a)):null}});var d="1.0.0";c.OAuth2&&(c.OAuth2.version=d)});
\ No newline at end of file
diff --git a/dist/ember-oauth2.js b/dist/ember-oauth2.js
index 4ae377f..44e5918 100644
--- a/dist/ember-oauth2.js
+++ b/dist/ember-oauth2.js
@@ -4,7 +4,7 @@ import Ember from 'ember';
* @overview OAuth2 library for Emberjs that stores tokens in the browsers localStorage
* @license Licensed under MIT license
* See https://raw.github.com/amkirwan/ember-oauth2/master/LICENSE
- * @version 0.7.0
+ * @version 1.0.0
*
* @module ember-oauth2
* @class ember-oauth2
@@ -91,24 +91,11 @@ export default Ember.Object.extend(Ember.Evented, {
// sets the properties from the providerConfig and overrides any default settings.
this.setProperties(this.providerConfig);
- // Bind deprecated event handlers
/**
* @event redirect
* @param {function} The function that handles the redirect.
*/
this.on('redirect', this.handleRedirect);
-
- /**
- * @event success
- * @param {function} The function that handles the success callback.
- */
- this.on('success', this._onSuccess);
-
- /**
- * @event error
- * @param {function} The function that handles the error callback.
- */
- this.on('error', this._onError);
},
/**
@@ -234,29 +221,22 @@ export default Ember.Object.extend(Ember.Evented, {
},
/**
- @method expiresIn
- @return {Number} When the token expires in seconds.
+ * @method expiresIn
+ * @param {String} expires Expires time string from params
+ * @return {Number} When the token expires in seconds.
*/
expiresIn: function(expires) {
return this.now() + parseInt(expires, 10);
},
/**
- * call on redirect from OAuth2 provider response
- @method onRedirect
- @deprecated Use `.trigger('redirect')` instead.
- */
- onRedirect: function(hash, callback) {
- Ember.Logger.warn("Ember.OAuth2.onRedirect is deprecated and will be removed in future versions. Please use .trigger('redirect') instead.");
- this.trigger('redirect', hash, callback);
- },
-
- /*
* proxy functions for old event handlers
*
* Check if the token returned is valid and if so trigger `success` event else trigger `error`
*
* @method handleRedirect
+ * @param {Object} hash The window location hash callback url
+ * @param {Function} callback Optional callback
*/
handleRedirect: function(hash, callback) {
var params = this.parseCallback(hash);
@@ -281,40 +261,6 @@ export default Ember.Object.extend(Ember.Evented, {
}
},
- /**
- * This method will call the old onSuccess callback when using the old API: Ember.OAuth2.reopen({ onSuccess: function() { return 'hello, onSuccess' } });
- *
- * The old onSuccess method will only be called when onSuccess is defined as a function on the Ember.OAuth2 instance
- *
- * @method _onSuccess
- * @param {Object} stateObj
- * @private
- */
- _onSuccess: function(stateObj) {
- if (typeof(this.onSuccess) !== 'function')
- return;
-
- Ember.Logger.warn("Ember.OAuth2.onSuccess is deprecated and will be removed in future versions. Bind your callbacks using .on('success', fn) instead.");
- this.onSuccess(stateObj);
- },
-
- /**
- * This method will call the old onError callback when using the old API: Ember.OAuth2.reopen({ onError: function() { return 'hello, onError' } });
- *
- * The old onSuccess method will only be called when onError is defined as a function on the Ember.OAuth2 instance
- *
- * @method _onError
- * @param {Object} err object
- * @private
- */
- _onError: function(err) {
- if (typeof(this.onError) !== 'function')
- return;
-
- Ember.Logger.warn("Ember.OAuth2.onError is deprecated and will be removed in furture versions. Bind your callbacks using .on('error', fn) instead.");
- this.onError(err);
- },
-
/**
* Checks if the State returned from the server matches the state that was generated in the original request and saved in the browsers localStorage.
*
@@ -402,6 +348,7 @@ export default Ember.Object.extend(Ember.Evented, {
* The key name to use for saving state to localstorage
*
* @method stateKeyName
+ * @return {String} The state key name used for localstorage
*/
stateKeyName: function() {
return this.get('statePrefix') + '-' + this.get('state');
@@ -412,6 +359,7 @@ export default Ember.Object.extend(Ember.Evented, {
* The key name to use for saving the token to localstorage
*
* @method tokenKeyName
+ * @return {String} The token key name used for localstorage
*/
tokenKeyName: function() {
return this.get('tokenPrefix') + '-' + this.get('providerId');
@@ -433,6 +381,10 @@ export default Ember.Object.extend(Ember.Evented, {
/**
* remove the state from localstorage
+ *
+ * @method removeState
+ * @param {String} stateName The keyname of the state object in localstorage
+ * @return {Object} The deleted state object from localstorage
*/
removeState: function(stateName) {
if (stateName) {
@@ -444,6 +396,9 @@ export default Ember.Object.extend(Ember.Evented, {
/**
* remove the token from localstorage
+ *
+ * @method removeToken
+ * @return {Object} The token object in localstorage
*/
removeToken: function() {
return window.localStorage.removeItem(this.tokenKeyName());
@@ -500,7 +455,7 @@ export default Ember.Object.extend(Ember.Evented, {
* @property {String} VERSION
* @final
*/
-var VERSION = "0.7.0";
+var VERSION = "1.0.0";
/**
* @method version
diff --git a/lib/ember-oauth2.js b/lib/ember-oauth2.js
index 83065e6..44e5918 100644
--- a/lib/ember-oauth2.js
+++ b/lib/ember-oauth2.js
@@ -4,7 +4,7 @@ import Ember from 'ember';
* @overview OAuth2 library for Emberjs that stores tokens in the browsers localStorage
* @license Licensed under MIT license
* See https://raw.github.com/amkirwan/ember-oauth2/master/LICENSE
- * @version 0.7.0
+ * @version 1.0.0
*
* @module ember-oauth2
* @class ember-oauth2
@@ -455,7 +455,7 @@ export default Ember.Object.extend(Ember.Evented, {
* @property {String} VERSION
* @final
*/
-var VERSION = "0.7.0";
+var VERSION = "1.0.0";
/**
* @method version
diff --git a/package.json b/package.json
index 805f0a6..a25d2a4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ember-oauth2",
- "version": "0.7.0",
+ "version": "1.0.0",
"description": "OAuth2 library for Emberjs that stores tokens in the browsers localStorage",
"homepage": "https://github.com/amkirwan/ember-ouath2",
"main": "dist/ember.oauth2.js",
diff --git a/yuidoc.json b/yuidoc.json
index 48737b6..af0ec39 100644
--- a/yuidoc.json
+++ b/yuidoc.json
@@ -1,7 +1,7 @@
{
"name": "Ember.OAuth2",
"description": "OAuth2 library for Emberjs that stores tokens in the browsers localStorage",
- "version": "0.7.0",
+ "version": "1.0.0",
"url": "https://github.com/amkirwan/ember-oauth2",
"options": {
"exclude": "node_modules,bower_components,scripts",