diff --git a/README.md b/README.md index 60475c6e..eb10fb70 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ in the app *config* block. ``` ```html - + ``` #### NPM diff --git a/dist/satellizer.js b/dist/satellizer.js index b29e28f2..49ff9849 100644 --- a/dist/satellizer.js +++ b/dist/satellizer.js @@ -1,5 +1,5 @@ /** - * Satellizer 0.15.3 + * Satellizer 0.15.4 * (c) 2016 Sahat Yalkabov * License: MIT */ diff --git a/dist/satellizer.js.map b/dist/satellizer.js.map index eac75887..06b10bc8 100644 --- a/dist/satellizer.js.map +++ b/dist/satellizer.js.map @@ -1 +1 @@ -{"version":3,"file":null,"sources":["../src/config.ts","../src/authProvider.ts","../src/utils.ts","../src/shared.ts","../src/local.ts","../src/popup.ts","../src/oauth1.ts","../src/oauth2.ts","../src/oauth.ts","../src/storage.ts","../src/interceptor.ts","../src/httpProviderConfig.ts","../src/ng1.ts"],"sourcesContent":["export default class Config {\n static get getConstant() {\n return new Config();\n }\n\n baseUrl = '/';\n loginUrl = '/auth/login';\n signupUrl = '/auth/signup';\n unlinkUrl = '/auth/unlink/';\n tokenName = 'token';\n tokenPrefix = 'satellizer';\n tokenHeader = 'Authorization';\n tokenType = 'Bearer';\n storageType = 'localStorage';\n tokenRoot = null;\n withCredentials = false;\n providers = {\n facebook: {\n name: 'facebook',\n url: '/auth/facebook',\n authorizationEndpoint: 'https://www.facebook.com/v2.5/dialog/oauth',\n redirectUri: window.location.origin + '/',\n requiredUrlParams: ['display', 'scope'],\n scope: ['email'],\n scopeDelimiter: ',',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 580, height: 400 }\n },\n google: {\n name: 'google',\n url: '/auth/google',\n authorizationEndpoint: 'https://accounts.google.com/o/oauth2/auth',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n optionalUrlParams: ['display', 'state'],\n scope: ['profile', 'email'],\n scopePrefix: 'openid',\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 452, height: 633 },\n state: () => encodeURIComponent(Math.random().toString(36).substr(2))\n },\n github: {\n name: 'github',\n url: '/auth/github',\n authorizationEndpoint: 'https://github.com/login/oauth/authorize',\n redirectUri: window.location.origin,\n optionalUrlParams: ['scope'],\n scope: ['user:email'],\n scopeDelimiter: ' ',\n oauthType: '2.0',\n popupOptions: { width: 1020, height: 618 }\n },\n instagram: {\n name: 'instagram',\n url: '/auth/instagram',\n authorizationEndpoint: 'https://api.instagram.com/oauth/authorize',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n scope: ['basic'],\n scopeDelimiter: '+',\n oauthType: '2.0'\n },\n linkedin: {\n name: 'linkedin',\n url: '/auth/linkedin',\n authorizationEndpoint: 'https://www.linkedin.com/uas/oauth2/authorization',\n redirectUri: window.location.origin,\n requiredUrlParams: ['state'],\n scope: ['r_emailaddress'],\n scopeDelimiter: ' ',\n state: 'STATE',\n oauthType: '2.0',\n popupOptions: { width: 527, height: 582 }\n },\n twitter: {\n name: 'twitter',\n url: '/auth/twitter',\n authorizationEndpoint: 'https://api.twitter.com/oauth/authenticate',\n redirectUri: window.location.origin,\n oauthType: '1.0',\n popupOptions: { width: 495, height: 645 }\n },\n twitch: {\n name: 'twitch',\n url: '/auth/twitch',\n authorizationEndpoint: 'https://api.twitch.tv/kraken/oauth2/authorize',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n scope: ['user_read'],\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 500, height: 560 }\n },\n live: {\n name: 'live',\n url: '/auth/live',\n authorizationEndpoint: 'https://login.live.com/oauth20_authorize.srf',\n redirectUri: window.location.origin,\n requiredUrlParams: ['display', 'scope'],\n scope: ['wl.emails'],\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 500, height: 560 }\n },\n yahoo: {\n name: 'yahoo',\n url: '/auth/yahoo',\n authorizationEndpoint: 'https://api.login.yahoo.com/oauth2/request_auth',\n redirectUri: window.location.origin,\n scope: [],\n scopeDelimiter: ',',\n oauthType: '2.0',\n popupOptions: { width: 559, height: 519 }\n },\n bitbucket: {\n name: 'bitbucket',\n url: '/auth/bitbucket',\n authorizationEndpoint: 'https://bitbucket.org/site/oauth2/authorize',\n redirectUri: window.location.origin + '/',\n requiredUrlParams: ['scope'],\n scope: ['email'],\n scopeDelimiter: ' ',\n oauthType: '2.0',\n popupOptions: { width: 1028, height: 529 }\n }\n };\n httpInterceptor: any = (): boolean => true;\n};\n","import Config from './config';\nimport { IOAuth1Options } from './oauth1';\nimport { IOAuth2Options } from './oauth2';\n\nexport default class AuthProvider {\n static $inject = ['SatellizerConfig'];\n\n constructor(private SatellizerConfig: Config) {}\n\n get baseUrl(): string { return this.SatellizerConfig.baseUrl; }\n set baseUrl(value) { this.SatellizerConfig.baseUrl = value; }\n\n get loginUrl(): string { return this.SatellizerConfig.loginUrl; }\n set loginUrl(value) { this.SatellizerConfig.loginUrl = value; }\n\n get signupUrl(): string { return this.SatellizerConfig.signupUrl; }\n set signupUrl(value) { this.SatellizerConfig.signupUrl = value; }\n\n get unlinkUrl(): string { return this.SatellizerConfig.unlinkUrl; }\n set unlinkUrl(value) { this.SatellizerConfig.unlinkUrl = value; }\n\n get tokenRoot(): string { return this.SatellizerConfig.tokenRoot; }\n set tokenRoot(value) { this.SatellizerConfig.tokenRoot = value; }\n\n get tokenName(): string { return this.SatellizerConfig.tokenName; }\n set tokenName(value) { this.SatellizerConfig.tokenName = value; }\n\n get tokenPrefix(): string { return this.SatellizerConfig.tokenPrefix; }\n set tokenPrefix(value) { this.SatellizerConfig.tokenPrefix = value; }\n\n get tokenHeader(): string { return this.SatellizerConfig.tokenHeader; }\n set tokenHeader(value) { this.SatellizerConfig.tokenHeader = value; }\n\n get tokenType(): string { return this.SatellizerConfig.tokenType; }\n set tokenType(value) { this.SatellizerConfig.tokenType = value; }\n\n get withCredentials(): boolean { return this.SatellizerConfig.withCredentials; }\n set withCredentials(value) { this.SatellizerConfig.withCredentials = value; }\n\n get storageType(): string { return this.SatellizerConfig.storageType; }\n set storageType(value) { this.SatellizerConfig.storageType = value; }\n\n get httpInterceptor(): boolean { return this.SatellizerConfig.httpInterceptor; }\n set httpInterceptor(value) {\n if (typeof value === 'function') {\n this.SatellizerConfig.httpInterceptor = value;\n } else {\n this.SatellizerConfig.httpInterceptor = () => value;\n }\n }\n\n facebook(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.facebook, options);\n }\n\n google(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.google, options);\n }\n\n github(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.github, options);\n }\n\n instagram(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.instagram, options);\n }\n\n linkedin(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.linkedin, options);\n }\n\n twitter(options: IOAuth1Options): void {\n angular.extend(this.SatellizerConfig.providers.twitter, options);\n }\n\n twitch(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.twitch, options);\n }\n\n live(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.live, options);\n }\n\n yahoo(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.yahoo, options);\n }\n\n bitbucket(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.bitbucket, options);\n }\n\n oauth1(options: IOAuth1Options): void {\n this.SatellizerConfig.providers[options.name] = angular.extend(options, {\n oauthType: '1.0'\n });\n }\n\n oauth2(options: IOAuth2Options): void {\n this.SatellizerConfig.providers[options.name] = angular.extend(options, {\n oauthType: '2.0'\n });\n }\n\n $get(SatellizerShared, SatellizerLocal, SatellizerOAuth): any {\n return {\n login: (user, options) => SatellizerLocal.login(user, options),\n signup: (user, options) => SatellizerLocal.signup(user, options),\n logout: () => SatellizerShared.logout(),\n authenticate: (name, data) => SatellizerOAuth.authenticate(name, data),\n link: (name, data) => SatellizerOAuth.authenticate(name, data),\n unlink: (name, options) => SatellizerOAuth.unlink(name, options),\n isAuthenticated: () => SatellizerShared.isAuthenticated(),\n getPayload: () => SatellizerShared.getPayload(),\n getToken: () => SatellizerShared.getToken(),\n setToken: (token) => SatellizerShared.setToken({ access_token: token }),\n removeToken: () => SatellizerShared.removeToken(),\n setStorageType: (type) => SatellizerShared.setStorageType(type)\n };\n }\n}\n\nAuthProvider.prototype.$get.$inject = ['SatellizerShared', 'SatellizerLocal', 'SatellizerOAuth'];","export function joinUrl (baseUrl, url) {\n if (/^(?:[a-z]+:)?\\/\\//i.test(url)) {\n return url;\n }\n let joined = [baseUrl, url].join('/');\n let normalize = function (str) {\n return str\n .replace(/[\\/]+/g, '/')\n .replace(/\\/\\?/g, '?')\n .replace(/\\/\\#/g, '#')\n .replace(/\\:\\//g, '://');\n };\n return normalize(joined);\n}\n\nexport function getFullUrlPath (location) {\n const isHttps = location.protocol === 'https:';\n return location.protocol + '//' + location.hostname +\n ':' + (location.port || (isHttps ? '443' : '80')) +\n (/^\\//.test(location.pathname) ? location.pathname : '/' + location.pathname);\n}\n\nexport function parseQueryString (str) {\n let obj = {};\n let key;\n let value;\n angular.forEach((str || '').split('&'), (keyValue) => {\n if (keyValue) {\n value = keyValue.split('=');\n key = decodeURIComponent(value[0]);\n obj[key] = angular.isDefined(value[1]) ? decodeURIComponent(value[1]) : true;\n }\n });\n return obj;\n}\n\nexport function decodeBase64 (str) {\n let buffer;\n if (typeof module !== 'undefined' && module.exports) {\n try {\n buffer = require('buffer').Buffer;\n } catch (err) {\n // noop\n }\n }\n\n let fromCharCode = String.fromCharCode;\n\n let re_btou = new RegExp([\n '[\\xC0-\\xDF][\\x80-\\xBF]',\n '[\\xE0-\\xEF][\\x80-\\xBF]{2}',\n '[\\xF0-\\xF7][\\x80-\\xBF]{3}'\n ].join('|'), 'g');\n\n let cb_btou = function (cccc) {\n switch (cccc.length) {\n case 4:\n let cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3));\n let offset = cp - 0x10000;\n return (fromCharCode((offset >>> 10) + 0xD800)\n + fromCharCode((offset & 0x3FF) + 0xDC00));\n case 3:\n return fromCharCode(\n ((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2))\n );\n default:\n return fromCharCode(\n ((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1))\n );\n }\n };\n\n let btou = function (b) {\n return b.replace(re_btou, cb_btou);\n };\n\n let _decode = buffer ? function (a) {\n return (a.constructor === buffer.constructor\n ? a : new buffer(a, 'base64')).toString();\n }\n : function (a) {\n return btou(atob(a));\n };\n\n return _decode(\n String(str).replace(/[-_]/g, function (m0) {\n return m0 === '-' ? '+' : '/';\n })\n .replace(/[^A-Za-z0-9\\+\\/]/g, '')\n );\n}\n","import Config from './config';\nimport Storage from './storage';\nimport { decodeBase64 } from './utils';\n\nclass Shared {\n static $inject = ['$q', '$window', '$log', 'SatellizerConfig', 'SatellizerStorage'];\n \n private prefixedTokenName: string;\n\n constructor(private $q: angular.IQService,\n private $window: angular.IWindowService,\n private $log: angular.ILogService,\n private SatellizerConfig: Config,\n private SatellizerStorage: Storage) {\n const { tokenName, tokenPrefix } = this.SatellizerConfig;\n this.prefixedTokenName = tokenPrefix ? [tokenPrefix, tokenName].join('_') : tokenName;\n }\n\n getToken(): string {\n return this.SatellizerStorage.get(this.prefixedTokenName);\n }\n\n getPayload(): any {\n const token = this.SatellizerStorage.get(this.prefixedTokenName);\n\n if (token && token.split('.').length === 3) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace('-', '+').replace('_', '/');\n return JSON.parse(decodeBase64(base64));\n } catch (e) {\n // no-op\n }\n }\n }\n\n setToken(response): void {\n if (!response) {\n return this.$log.warn('Can\\'t set token without passing a value');\n }\n\n let token;\n const accessToken = response && response.access_token;\n\n if (accessToken) {\n if (angular.isObject(accessToken) && angular.isObject(accessToken.data)) {\n response = accessToken;\n } else if (angular.isString(accessToken)) {\n token = accessToken;\n }\n }\n\n if (!token && response) {\n const tokenRootData = this.SatellizerConfig.tokenRoot && this.SatellizerConfig.tokenRoot.split('.').reduce(function(o, x) { return o[x]; }, response.data);\n token = tokenRootData ? tokenRootData[this.SatellizerConfig.tokenName] : response.data && response.data[this.SatellizerConfig.tokenName];\n }\n\n if (!token) {\n const tokenPath = this.SatellizerConfig.tokenRoot ? this.SatellizerConfig.tokenRoot + '.' + this.SatellizerConfig.tokenName : this.SatellizerConfig.tokenName;\n return this.$log.warn('Expecting a token named \"' + tokenPath);\n }\n\n this.SatellizerStorage.set(this.prefixedTokenName, token);\n }\n\n removeToken(): void {\n this.SatellizerStorage.remove(this.prefixedTokenName);\n }\n\n isAuthenticated(): boolean {\n const token = this.SatellizerStorage.get(this.prefixedTokenName);\n\n if (token) { // Token is present\n if (token.split('.').length === 3) { // Token with a valid JWT format XXX.YYY.ZZZ\n try { // Could be a valid JWT or an access token with the same format\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace('-', '+').replace('_', '/');\n const exp = JSON.parse(this.$window.atob(base64)).exp;\n if (exp) { // JWT with an optonal expiration claims\n return (Math.round(new Date().getTime() / 1000) >= exp) ? false : true;\n }\n } catch (e) {\n return true; // Pass: Non-JWT token that looks like JWT\n }\n }\n return true; // Pass: All other tokens\n }\n return false; // Fail: No token at all\n }\n\n logout(): angular.IPromise {\n this.SatellizerStorage.remove(this.prefixedTokenName);\n return this.$q.when();\n }\n\n setStorageType(type): void {\n this.SatellizerConfig.storageType = type;\n }\n}\n\nexport default Shared;\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Shared from './shared';\n\nclass Local {\n static $inject = ['$http', 'SatellizerConfig', 'SatellizerShared'];\n\n\n constructor(private $http: angular.IHttpService,\n private SatellizerConfig: Config,\n private SatellizerShared: Shared) {}\n\n login(user: string|Object, options: any = {}): angular.IHttpPromise {\n options.url = options.url ? options.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.loginUrl);\n options.data = user || options.data;\n options.method = options.method || 'POST';\n options.withCredentials = options.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(options).then((response) => {\n this.SatellizerShared.setToken(response);\n return response;\n });\n }\n\n signup(user: string|Object, options: any = {}): angular.IHttpPromise {\n options.url = options.url ? options.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.signupUrl);\n options.data = user || options.data;\n options.method = options.method || 'POST';\n options.withCredentials = options.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(options);\n }\n}\n\nexport default Local;\n","import { parseQueryString, getFullUrlPath } from './utils';\n\nexport interface IPopup {\n open(url: string, name: string, popupOptions: { width: number, height: number }): void;\n stringifyOptions (options: any): string;\n polling(redirectUri: string): angular.IPromise;\n eventListener(redirectUri: string): angular.IPromise;\n}\n\nexport default class Popup implements IPopup {\n static $inject = ['$interval', '$window', '$q'];\n\n public popup: any;\n private url: string;\n private defaults: { redirectUri: string };\n\n constructor(private $interval: angular.IIntervalService,\n private $window: angular.IWindowService,\n private $q: angular.IQService) {\n this.popup = null;\n this.url = 'about:blank'; // TODO remove\n this.defaults = {\n redirectUri: null\n };\n }\n\n stringifyOptions (options: any): string {\n const parts = [];\n angular.forEach(options, function (value, key) {\n parts.push(key + '=' + value);\n });\n return parts.join(',');\n }\n\n open(url: string, name: string, popupOptions: { width: number, height: number }): void {\n this.url = url; // TODO remove\n\n const width = popupOptions.width || 500;\n const height = popupOptions.height || 500;\n\n const options = this.stringifyOptions({\n width: width,\n height: height,\n top: this.$window.screenY + ((this.$window.outerHeight - height) / 2.5),\n left: this.$window.screenX + ((this.$window.outerWidth - width) / 2)\n });\n\n const popupName = this.$window['cordova'] || this.$window.navigator.userAgent.indexOf('CriOS') > -1 ? '_blank' : name;\n\n this.popup = window.open(this.url, popupName, options);\n\n if (this.popup && this.popup.focus) {\n this.popup.focus();\n }\n //\n // if (this.$window['cordova']) {\n // return this.eventListener(this.defaults.redirectUri); // TODO pass redirect uri\n // } else {\n // return this.polling(redirectUri);\n // }\n }\n\n polling(redirectUri: string): angular.IPromise {\n return this.$q((resolve, reject) => {\n const redirectUriParser = document.createElement('a');\n redirectUriParser.href = redirectUri;\n const redirectUriPath = getFullUrlPath(redirectUriParser);\n\n const polling = this.$interval(() => {\n if (!this.popup || this.popup.closed || this.popup.closed === undefined) {\n this.$interval.cancel(polling);\n reject(new Error('The popup window was closed'));\n }\n\n try {\n const popupWindowPath = getFullUrlPath(this.popup.location);\n\n if (popupWindowPath === redirectUriPath) {\n if (this.popup.location.search || this.popup.location.hash) {\n const query = parseQueryString(this.popup.location.search.substring(1).replace(/\\/$/, ''));\n const hash = parseQueryString(this.popup.location.hash.substring(1).replace(/[\\/$]/, ''));\n const params = angular.extend({}, query, hash);\n\n if (params.error) {\n reject(new Error(params.error));\n } else {\n resolve(params);\n }\n } else {\n reject(new Error(\n 'OAuth redirect has occurred but no query or hash parameters were found. ' +\n 'They were either not set during the redirect, or were removed—typically by a ' +\n 'routing library—before Satellizer could read it.'\n ));\n }\n\n this.$interval.cancel(polling);\n this.popup.close();\n }\n } catch (error) {\n // Ignore DOMException: Blocked a frame with origin from accessing a cross-origin frame.\n // A hack to get around same-origin security policy errors in IE.\n }\n }, 500);\n });\n }\n\n eventListener(redirectUri): angular.IPromise {\n return this.$q((resolve, reject) => {\n this.popup.addEventListener('loadstart', (event) => {\n if (!event.url.includes(redirectUri)) {\n return;\n }\n\n const parser = document.createElement('a');\n parser.href = event.url;\n\n if (parser.search || parser.hash) {\n const query = parseQueryString(parser.search.substring(1).replace(/\\/$/, ''));\n const hash = parseQueryString(parser.hash.substring(1).replace(/[\\/$]/, ''));\n const params = angular.extend({}, query, hash);\n\n if (params.error) {\n reject(new Error(params.error));\n } else {\n resolve(params);\n }\n\n this.popup.close();\n }\n });\n\n this.popup.addEventListener('loaderror', () => {\n reject(new Error('Authorization failed'));\n });\n\n this.popup.addEventListener('exit', () => {\n reject(new Error('The popup window was closed'));\n });\n });\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport { IOAuth1Options } from './oauth1';\n\nexport interface IOAuth1 {\n init(options: any, data: any): angular.IPromise;\n getRequestToken(): angular.IHttpPromise;\n openPopup(options: IOAuth1Options, response: angular.IHttpPromiseCallbackArg): angular.IPromise;\n exchangeForToken(oauthData: any, userData: any): angular.IHttpPromise;\n buildQueryString(obj: any): string;\n}\n\nexport interface IOAuth1Options {\n name: string;\n url: string;\n authorizationEndpoint: string;\n redirectUri: string;\n scope: string[];\n scopePrefix: string;\n scopeDelimiter: string;\n requiredUrlParams: string[];\n defaultUrlParams: string[];\n oauthType: string;\n popupOptions: { width: number, height: number };\n}\n\nexport default class OAuth1 implements IOAuth1 {\n static $inject = ['$http', '$window', 'SatellizerConfig', 'SatellizerPopup'];\n\n private defaults: IOAuth1Options;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup) {\n \n this.defaults = {\n name: null,\n url: null,\n authorizationEndpoint: null,\n scope: null,\n scopePrefix: null,\n scopeDelimiter: null,\n redirectUri: null,\n requiredUrlParams: null,\n defaultUrlParams: null,\n oauthType: '1.0',\n popupOptions: { width: null, height: null }\n };\n };\n\n init(options: IOAuth1Options, userData: any): angular.IHttpPromise {\n angular.extend(this.defaults, options);\n\n if (!this.$window['cordova']) {\n this.SatellizerPopup.open('about:blank', options.name, options.popupOptions);\n }\n\n return this.getRequestToken().then((response) => {\n return this.openPopup(options, response).then((popupResponse) => {\n return this.exchangeForToken(popupResponse, userData);\n });\n });\n }\n\n openPopup(options: IOAuth1Options, response: angular.IHttpPromiseCallbackArg): angular.IPromise {\n const popupUrl = [options.authorizationEndpoint, this.buildQueryString(response.data)].join('?');\n\n if (this.$window['cordova']) {\n this.SatellizerPopup.open(popupUrl, options.name, options.popupOptions);\n return this.SatellizerPopup.eventListener(this.defaults.redirectUri);\n } else {\n this.SatellizerPopup.popup.location = popupUrl;\n return this.SatellizerPopup.polling(this.defaults.redirectUri);\n }\n }\n\n getRequestToken(): angular.IHttpPromise {\n const url = this.SatellizerConfig.baseUrl ? joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) : this.defaults.url;\n return this.$http.post(url, this.defaults);\n }\n\n exchangeForToken(oauthData, userData): angular.IHttpPromise {\n const payload = angular.extend({}, userData, oauthData);\n const exchangeForTokenUrl = this.SatellizerConfig.baseUrl ? joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) : this.defaults.url;\n return this.$http.post(exchangeForTokenUrl, payload, { withCredentials: this.SatellizerConfig.withCredentials });\n }\n\n buildQueryString(obj): string {\n const str = [];\n angular.forEach(obj, function (value, key) {\n str.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return str.join('&');\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport Storage from './storage';\n\nexport interface IOAuth2Options {\n name: string;\n url: string;\n clientId: string;\n authorizationEndpoint: string;\n redirectUri: string;\n scope: string[];\n scopePrefix: string;\n scopeDelimiter: string;\n state?: string|(() => string);\n requiredUrlParams: string[];\n defaultUrlParams: string[];\n responseType: string;\n responseParams: {\n code: string,\n clientId: string,\n redirectUri: string\n };\n oauthType: string;\n popupOptions: { width: number, height: number };\n}\n\nexport default class OAuth2 {\n static $inject = ['$http', '$window', '$timeout', '$q', 'SatellizerConfig', 'SatellizerPopup', 'SatellizerStorage'];\n\n static camelCase(name): string {\n return name.replace(/([\\:\\-\\_]+(.))/g, (_, separator, letter, offset) => {\n return offset ? letter.toUpperCase() : letter;\n });\n }\n\n public defaults: IOAuth2Options;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private $timeout: ng.ITimeoutService,\n private $q: angular.IQService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup,\n private SatellizerStorage: Storage) {\n\n this.defaults = {\n name: null,\n url: null,\n clientId: null,\n authorizationEndpoint: null,\n redirectUri: null,\n scope: null,\n scopePrefix: null,\n scopeDelimiter: null,\n state: null,\n requiredUrlParams: null,\n defaultUrlParams: ['response_type', 'client_id', 'redirect_uri'],\n responseType: 'code',\n responseParams: {\n code: 'code',\n clientId: 'clientId',\n redirectUri: 'redirectUri'\n },\n oauthType: '2.0',\n popupOptions: { width: null, height: null }\n };\n }\n\n init(options: IOAuth2Options, userData: any): angular.IPromise {\n return this.$q((resolve, reject) => {\n angular.extend(this.defaults, options);\n this.$timeout(() => {\n const stateName = this.defaults.name + '_state';\n const { name, state, popupOptions, redirectUri, responseType } = this.defaults;\n\n if (typeof state === 'function') {\n this.SatellizerStorage.set(stateName, state());\n } else if (typeof state === 'string') {\n this.SatellizerStorage.set(stateName, state);\n }\n const url = [this.defaults.authorizationEndpoint, this.buildQueryString()].join('?');\n\n this.SatellizerPopup.open(url, name, popupOptions);\n\n this.SatellizerPopup.polling(redirectUri).then((oauth: any): void|angular.IPromise|angular.IHttpPromise => {\n\n if (responseType === 'token' || !url) {\n return resolve(oauth);\n }\n\n if (oauth.state && oauth.state !== this.SatellizerStorage.get(stateName)) {\n return reject(new Error(\n 'The value returned in the state parameter does not match the state value from your original ' +\n 'authorization code request.'\n ));\n }\n\n resolve(this.exchangeForToken(oauth, userData));\n })\n .catch(error => reject(error));\n });\n });\n }\n\n exchangeForToken(oauthData: { code?, state? }, userData: any): angular.IHttpPromise {\n const payload = angular.extend({}, userData);\n\n angular.forEach(this.defaults.responseParams, (value, key) => {\n switch (key) {\n case 'code':\n payload[value] = oauthData.code;\n break;\n case 'clientId':\n payload[value] = this.defaults.clientId;\n break;\n case 'redirectUri':\n payload[value] = this.defaults.redirectUri;\n break;\n default:\n payload[value] = oauthData[key];\n }\n });\n\n if (oauthData.state) {\n payload.state = oauthData.state;\n }\n\n let exchangeForTokenUrl = this.SatellizerConfig.baseUrl ?\n joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) :\n this.defaults.url;\n\n return this.$http.post(exchangeForTokenUrl, payload, { withCredentials: this.SatellizerConfig.withCredentials });\n }\n\n buildQueryString(): string {\n const keyValuePairs = [];\n const urlParamsCategories = ['defaultUrlParams', 'requiredUrlParams', 'optionalUrlParams'];\n\n angular.forEach(urlParamsCategories, (paramsCategory) => {\n angular.forEach(this.defaults[paramsCategory], (paramName) => {\n const camelizedName = OAuth2.camelCase(paramName);\n let paramValue = angular.isFunction(this.defaults[paramName]) ? this.defaults[paramName]() : this.defaults[camelizedName];\n\n if (paramName === 'redirect_uri' && !paramValue) {\n return;\n }\n if (paramName === 'state') {\n const stateName = this.defaults.name + '_state';\n paramValue = encodeURIComponent(this.SatellizerStorage.get(stateName));\n }\n if (paramName === 'scope' && Array.isArray(paramValue)) {\n paramValue = paramValue.join(this.defaults.scopeDelimiter);\n if (this.defaults.scopePrefix) {\n paramValue = [this.defaults.scopePrefix, paramValue].join(this.defaults.scopeDelimiter);\n }\n }\n\n keyValuePairs.push([paramName, paramValue]);\n });\n });\n\n return keyValuePairs.map(pair => pair.join('=')).join('&');\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport Storage from './storage';\nimport Shared from './shared';\nimport OAuth1 from './oauth1';\nimport OAuth2 from './oauth2';\n\nexport default class OAuth {\n static $inject = [\n '$http',\n '$window',\n '$timeout',\n '$q',\n 'SatellizerConfig',\n 'SatellizerPopup',\n 'SatellizerStorage',\n 'SatellizerShared',\n 'SatellizerOAuth1',\n 'SatellizerOAuth2'\n ];\n\n private oauth1: OAuth1;\n private oauth2: OAuth2;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private $timeout: ng.ITimeoutService,\n private $q: ng.IQService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup,\n private SatellizerStorage: Storage,\n private SatellizerShared: Shared,\n private SatellizerOAuth1: OAuth1,\n private SatellizerOAuth2: OAuth2) {}\n\n authenticate(name: string, userData: any): angular.IPromise {\n return this.$q((resolve, reject) => {\n const provider = this.SatellizerConfig.providers[name];\n\n let oauth = null;\n\n switch (provider.oauthType) {\n case '1.0':\n oauth = new OAuth1(this.$http, this.$window, this.SatellizerConfig, this.SatellizerPopup);\n break;\n case '2.0':\n oauth = new OAuth2(this.$http, this.$window, this.$timeout, this.$q, this.SatellizerConfig, this.SatellizerPopup, this.SatellizerStorage);\n break;\n default:\n return reject(new Error('Unknown OAuth Type'));\n }\n\n return oauth.init(provider, userData).then((response) => {\n if (provider.url) {\n this.SatellizerShared.setToken(response);\n }\n resolve(response);\n }).catch((error) => {\n reject(error);\n });\n });\n }\n\n unlink(provider: string, httpOptions: any = {}): angular.IHttpPromise {\n httpOptions.url = httpOptions.url ? httpOptions.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.unlinkUrl);\n httpOptions.data = { provider: provider } || httpOptions.data;\n httpOptions.method = httpOptions.method || 'POST';\n httpOptions.withCredentials = httpOptions.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(httpOptions);\n }\n}\n","import Config from './config';\n\nexport default class Storage {\n static $inject = ['$window', 'SatellizerConfig'];\n\n private memoryStore: any;\n private storageType: string;\n\n constructor(private $window: angular.IHttpService,\n private SatellizerConfig: Config) {\n this.memoryStore = {};\n }\n\n get(key: string): string {\n try {\n return this.$window[this.SatellizerConfig.storageType].getItem(key);\n } catch (e) {\n return this.memoryStore[key];\n }\n }\n\n set(key: string, value: string): void {\n try {\n this.$window[this.SatellizerConfig.storageType].setItem(key, value);\n } catch (e) {\n this.memoryStore[key] = value;\n }\n }\n\n remove(key: string): void {\n try {\n this.$window[this.SatellizerConfig.storageType].removeItem(key);\n } catch (e) {\n delete this.memoryStore[key];\n }\n }\n}\n","import Config from './config';\nimport Shared from './shared';\nimport Storage from './storage';\n\nexport default class Interceptor implements angular.IHttpInterceptor {\n\n static $inject = ['SatellizerConfig', 'SatellizerShared', 'SatellizerStorage'];\n\n static Factory(SatellizerConfig: Config, SatellizerShared: Shared, SatellizerStorage: Storage): Interceptor {\n return new Interceptor(SatellizerConfig, SatellizerShared, SatellizerStorage);\n }\n\n constructor(private SatellizerConfig: Config,\n private SatellizerShared: Shared,\n private SatellizerStorage: Storage) {\n }\n\n request = (config: angular.IRequestConfig): angular.IRequestConfig => {\n if (config['skipAuthorization']) {\n return config;\n }\n\n if (this.SatellizerShared.isAuthenticated() && this.SatellizerConfig.httpInterceptor()) {\n const tokenName = this.SatellizerConfig.tokenPrefix ?\n [this.SatellizerConfig.tokenPrefix, this.SatellizerConfig.tokenName].join('_') : this.SatellizerConfig.tokenName;\n let token = this.SatellizerStorage.get(tokenName);\n\n if (this.SatellizerConfig.tokenHeader && this.SatellizerConfig.tokenType) {\n token = this.SatellizerConfig.tokenType + ' ' + token;\n }\n\n config.headers[this.SatellizerConfig.tokenHeader] = token;\n }\n\n return config;\n };\n}\n\nInterceptor.Factory.$inject = ['SatellizerConfig', 'SatellizerShared', 'SatellizerStorage'];","import Interceptor from './interceptor';\n\nexport default class HttpProviderConfig {\n static $inject = ['$httpProvider'];\n\n constructor(private $httpProvider: angular.IHttpProvider) {\n $httpProvider.interceptors.push(Interceptor.Factory);\n }\n}\n","import Config from './config';\nimport AuthProvider from './authProvider';\nimport Shared from './shared';\nimport Local from './local';\nimport Popup from './popup';\nimport OAuth from './oauth';\nimport OAuth2 from './oauth2';\nimport OAuth1 from './oauth1';\nimport Storage from './storage';\nimport Interceptor from './interceptor';\nimport HttpProviderConfig from './httpProviderConfig';\n\nangular.module('satellizer', [])\n .provider('$auth', ['SatellizerConfig', (SatellizerConfig) => new AuthProvider(SatellizerConfig)])\n .constant('SatellizerConfig', Config.getConstant)\n .service('SatellizerShared', Shared)\n .service('SatellizerLocal', Local)\n .service('SatellizerPopup', Popup)\n .service('SatellizerOAuth', OAuth)\n .service('SatellizerOAuth2', OAuth2)\n .service('SatellizerOAuth1', OAuth1)\n .service('SatellizerStorage', Storage)\n .service('SatellizerInterceptor', Interceptor)\n .config(['$httpProvider', ($httpProvider) => new HttpProviderConfig($httpProvider)]);\n\nexport default 'satellizer';\n\n"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":null,"sources":["../src/config.ts","../src/authProvider.ts","../src/utils.ts","../src/shared.ts","../src/local.ts","../src/popup.ts","../src/oauth1.ts","../src/oauth2.ts","../src/oauth.ts","../src/storage.ts","../src/interceptor.ts","../src/httpProviderConfig.ts","../src/ng1.ts"],"sourcesContent":["export default class Config {\n static get getConstant() {\n return new Config();\n }\n\n baseUrl = '/';\n loginUrl = '/auth/login';\n signupUrl = '/auth/signup';\n unlinkUrl = '/auth/unlink/';\n tokenName = 'token';\n tokenPrefix = 'satellizer';\n tokenHeader = 'Authorization';\n tokenType = 'Bearer';\n storageType = 'localStorage';\n tokenRoot = null;\n withCredentials = false;\n providers = {\n facebook: {\n name: 'facebook',\n url: '/auth/facebook',\n authorizationEndpoint: 'https://www.facebook.com/v2.5/dialog/oauth',\n redirectUri: window.location.origin + '/',\n requiredUrlParams: ['display', 'scope'],\n scope: ['email'],\n scopeDelimiter: ',',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 580, height: 400 }\n },\n google: {\n name: 'google',\n url: '/auth/google',\n authorizationEndpoint: 'https://accounts.google.com/o/oauth2/auth',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n optionalUrlParams: ['display', 'state'],\n scope: ['profile', 'email'],\n scopePrefix: 'openid',\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 452, height: 633 },\n state: () => encodeURIComponent(Math.random().toString(36).substr(2))\n },\n github: {\n name: 'github',\n url: '/auth/github',\n authorizationEndpoint: 'https://github.com/login/oauth/authorize',\n redirectUri: window.location.origin,\n optionalUrlParams: ['scope'],\n scope: ['user:email'],\n scopeDelimiter: ' ',\n oauthType: '2.0',\n popupOptions: { width: 1020, height: 618 }\n },\n instagram: {\n name: 'instagram',\n url: '/auth/instagram',\n authorizationEndpoint: 'https://api.instagram.com/oauth/authorize',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n scope: ['basic'],\n scopeDelimiter: '+',\n oauthType: '2.0'\n },\n linkedin: {\n name: 'linkedin',\n url: '/auth/linkedin',\n authorizationEndpoint: 'https://www.linkedin.com/uas/oauth2/authorization',\n redirectUri: window.location.origin,\n requiredUrlParams: ['state'],\n scope: ['r_emailaddress'],\n scopeDelimiter: ' ',\n state: 'STATE',\n oauthType: '2.0',\n popupOptions: { width: 527, height: 582 }\n },\n twitter: {\n name: 'twitter',\n url: '/auth/twitter',\n authorizationEndpoint: 'https://api.twitter.com/oauth/authenticate',\n redirectUri: window.location.origin,\n oauthType: '1.0',\n popupOptions: { width: 495, height: 645 }\n },\n twitch: {\n name: 'twitch',\n url: '/auth/twitch',\n authorizationEndpoint: 'https://api.twitch.tv/kraken/oauth2/authorize',\n redirectUri: window.location.origin,\n requiredUrlParams: ['scope'],\n scope: ['user_read'],\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 500, height: 560 }\n },\n live: {\n name: 'live',\n url: '/auth/live',\n authorizationEndpoint: 'https://login.live.com/oauth20_authorize.srf',\n redirectUri: window.location.origin,\n requiredUrlParams: ['display', 'scope'],\n scope: ['wl.emails'],\n scopeDelimiter: ' ',\n display: 'popup',\n oauthType: '2.0',\n popupOptions: { width: 500, height: 560 }\n },\n yahoo: {\n name: 'yahoo',\n url: '/auth/yahoo',\n authorizationEndpoint: 'https://api.login.yahoo.com/oauth2/request_auth',\n redirectUri: window.location.origin,\n scope: [],\n scopeDelimiter: ',',\n oauthType: '2.0',\n popupOptions: { width: 559, height: 519 }\n },\n bitbucket: {\n name: 'bitbucket',\n url: '/auth/bitbucket',\n authorizationEndpoint: 'https://bitbucket.org/site/oauth2/authorize',\n redirectUri: window.location.origin + '/',\n requiredUrlParams: ['scope'],\n scope: ['email'],\n scopeDelimiter: ' ',\n oauthType: '2.0',\n popupOptions: { width: 1028, height: 529 }\n }\n };\n httpInterceptor: any = (): boolean => true;\n};\n","import Config from './config';\nimport { IOAuth1Options } from './oauth1';\nimport { IOAuth2Options } from './oauth2';\n\nexport default class AuthProvider {\n static $inject = ['SatellizerConfig'];\n\n constructor(private SatellizerConfig: Config) {}\n\n get baseUrl(): string { return this.SatellizerConfig.baseUrl; }\n set baseUrl(value) { this.SatellizerConfig.baseUrl = value; }\n\n get loginUrl(): string { return this.SatellizerConfig.loginUrl; }\n set loginUrl(value) { this.SatellizerConfig.loginUrl = value; }\n\n get signupUrl(): string { return this.SatellizerConfig.signupUrl; }\n set signupUrl(value) { this.SatellizerConfig.signupUrl = value; }\n\n get unlinkUrl(): string { return this.SatellizerConfig.unlinkUrl; }\n set unlinkUrl(value) { this.SatellizerConfig.unlinkUrl = value; }\n\n get tokenRoot(): string { return this.SatellizerConfig.tokenRoot; }\n set tokenRoot(value) { this.SatellizerConfig.tokenRoot = value; }\n\n get tokenName(): string { return this.SatellizerConfig.tokenName; }\n set tokenName(value) { this.SatellizerConfig.tokenName = value; }\n\n get tokenPrefix(): string { return this.SatellizerConfig.tokenPrefix; }\n set tokenPrefix(value) { this.SatellizerConfig.tokenPrefix = value; }\n\n get tokenHeader(): string { return this.SatellizerConfig.tokenHeader; }\n set tokenHeader(value) { this.SatellizerConfig.tokenHeader = value; }\n\n get tokenType(): string { return this.SatellizerConfig.tokenType; }\n set tokenType(value) { this.SatellizerConfig.tokenType = value; }\n\n get withCredentials(): boolean { return this.SatellizerConfig.withCredentials; }\n set withCredentials(value) { this.SatellizerConfig.withCredentials = value; }\n\n get storageType(): string { return this.SatellizerConfig.storageType; }\n set storageType(value) { this.SatellizerConfig.storageType = value; }\n\n get httpInterceptor(): boolean { return this.SatellizerConfig.httpInterceptor; }\n set httpInterceptor(value) {\n if (typeof value === 'function') {\n this.SatellizerConfig.httpInterceptor = value;\n } else {\n this.SatellizerConfig.httpInterceptor = () => value;\n }\n }\n\n facebook(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.facebook, options);\n }\n\n google(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.google, options);\n }\n\n github(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.github, options);\n }\n\n instagram(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.instagram, options);\n }\n\n linkedin(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.linkedin, options);\n }\n\n twitter(options: IOAuth1Options): void {\n angular.extend(this.SatellizerConfig.providers.twitter, options);\n }\n\n twitch(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.twitch, options);\n }\n\n live(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.live, options);\n }\n\n yahoo(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.yahoo, options);\n }\n\n bitbucket(options: IOAuth2Options): void {\n angular.extend(this.SatellizerConfig.providers.bitbucket, options);\n }\n\n oauth1(options: IOAuth1Options): void {\n this.SatellizerConfig.providers[options.name] = angular.extend(options, {\n oauthType: '1.0'\n });\n }\n\n oauth2(options: IOAuth2Options): void {\n this.SatellizerConfig.providers[options.name] = angular.extend(options, {\n oauthType: '2.0'\n });\n }\n\n $get(SatellizerShared, SatellizerLocal, SatellizerOAuth): any {\n return {\n login: (user, options) => SatellizerLocal.login(user, options),\n signup: (user, options) => SatellizerLocal.signup(user, options),\n logout: () => SatellizerShared.logout(),\n authenticate: (name, data) => SatellizerOAuth.authenticate(name, data),\n link: (name, data) => SatellizerOAuth.authenticate(name, data),\n unlink: (name, options) => SatellizerOAuth.unlink(name, options),\n isAuthenticated: () => SatellizerShared.isAuthenticated(),\n getPayload: () => SatellizerShared.getPayload(),\n getToken: () => SatellizerShared.getToken(),\n setToken: (token) => SatellizerShared.setToken({ access_token: token }),\n removeToken: () => SatellizerShared.removeToken(),\n setStorageType: (type) => SatellizerShared.setStorageType(type)\n };\n }\n}\n\nAuthProvider.prototype.$get.$inject = ['SatellizerShared', 'SatellizerLocal', 'SatellizerOAuth'];","export function joinUrl (baseUrl, url) {\n if (/^(?:[a-z]+:)?\\/\\//i.test(url)) {\n return url;\n }\n let joined = [baseUrl, url].join('/');\n let normalize = function (str) {\n return str\n .replace(/[\\/]+/g, '/')\n .replace(/\\/\\?/g, '?')\n .replace(/\\/\\#/g, '#')\n .replace(/\\:\\//g, '://');\n };\n return normalize(joined);\n}\n\nexport function getFullUrlPath (location) {\n const isHttps = location.protocol === 'https:';\n return location.protocol + '//' + location.hostname +\n ':' + (location.port || (isHttps ? '443' : '80')) +\n (/^\\//.test(location.pathname) ? location.pathname : '/' + location.pathname);\n}\n\nexport function parseQueryString (str) {\n let obj = {};\n let key;\n let value;\n angular.forEach((str || '').split('&'), (keyValue) => {\n if (keyValue) {\n value = keyValue.split('=');\n key = decodeURIComponent(value[0]);\n obj[key] = angular.isDefined(value[1]) ? decodeURIComponent(value[1]) : true;\n }\n });\n return obj;\n}\n\nexport function decodeBase64 (str) {\n let buffer;\n if (typeof module !== 'undefined' && module.exports) {\n try {\n buffer = require('buffer').Buffer;\n } catch (err) {\n // noop\n }\n }\n\n let fromCharCode = String.fromCharCode;\n\n let re_btou = new RegExp([\n '[\\xC0-\\xDF][\\x80-\\xBF]',\n '[\\xE0-\\xEF][\\x80-\\xBF]{2}',\n '[\\xF0-\\xF7][\\x80-\\xBF]{3}'\n ].join('|'), 'g');\n\n let cb_btou = function (cccc) {\n switch (cccc.length) {\n case 4:\n let cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3));\n let offset = cp - 0x10000;\n return (fromCharCode((offset >>> 10) + 0xD800)\n + fromCharCode((offset & 0x3FF) + 0xDC00));\n case 3:\n return fromCharCode(\n ((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2))\n );\n default:\n return fromCharCode(\n ((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1))\n );\n }\n };\n\n let btou = function (b) {\n return b.replace(re_btou, cb_btou);\n };\n\n let _decode = buffer ? function (a) {\n return (a.constructor === buffer.constructor\n ? a : new buffer(a, 'base64')).toString();\n }\n : function (a) {\n return btou(atob(a));\n };\n\n return _decode(\n String(str).replace(/[-_]/g, function (m0) {\n return m0 === '-' ? '+' : '/';\n })\n .replace(/[^A-Za-z0-9\\+\\/]/g, '')\n );\n}\n","import Config from './config';\nimport Storage from './storage';\nimport { decodeBase64 } from './utils';\n\nclass Shared {\n static $inject = ['$q', '$window', '$log', 'SatellizerConfig', 'SatellizerStorage'];\n \n private prefixedTokenName: string;\n\n constructor(private $q: angular.IQService,\n private $window: angular.IWindowService,\n private $log: angular.ILogService,\n private SatellizerConfig: Config,\n private SatellizerStorage: Storage) {\n const { tokenName, tokenPrefix } = this.SatellizerConfig;\n this.prefixedTokenName = tokenPrefix ? [tokenPrefix, tokenName].join('_') : tokenName;\n }\n\n getToken(): string {\n return this.SatellizerStorage.get(this.prefixedTokenName);\n }\n\n getPayload(): any {\n const token = this.SatellizerStorage.get(this.prefixedTokenName);\n\n if (token && token.split('.').length === 3) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace('-', '+').replace('_', '/');\n return JSON.parse(decodeBase64(base64));\n } catch (e) {\n // no-op\n }\n }\n }\n\n setToken(response): void {\n if (!response) {\n return this.$log.warn('Can\\'t set token without passing a value');\n }\n\n let token;\n const accessToken = response && response.access_token;\n\n if (accessToken) {\n if (angular.isObject(accessToken) && angular.isObject(accessToken.data)) {\n response = accessToken;\n } else if (angular.isString(accessToken)) {\n token = accessToken;\n }\n }\n\n if (!token && response) {\n const tokenRootData = this.SatellizerConfig.tokenRoot && this.SatellizerConfig.tokenRoot.split('.').reduce(function(o, x) { return o[x]; }, response.data);\n token = tokenRootData ? tokenRootData[this.SatellizerConfig.tokenName] : response.data && response.data[this.SatellizerConfig.tokenName];\n }\n\n if (!token) {\n const tokenPath = this.SatellizerConfig.tokenRoot ? this.SatellizerConfig.tokenRoot + '.' + this.SatellizerConfig.tokenName : this.SatellizerConfig.tokenName;\n return this.$log.warn('Expecting a token named \"' + tokenPath);\n }\n\n this.SatellizerStorage.set(this.prefixedTokenName, token);\n }\n\n removeToken(): void {\n this.SatellizerStorage.remove(this.prefixedTokenName);\n }\n\n isAuthenticated(): boolean {\n const token = this.SatellizerStorage.get(this.prefixedTokenName);\n\n if (token) { // Token is present\n if (token.split('.').length === 3) { // Token with a valid JWT format XXX.YYY.ZZZ\n try { // Could be a valid JWT or an access token with the same format\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace('-', '+').replace('_', '/');\n const exp = JSON.parse(this.$window.atob(base64)).exp;\n if (exp) { // JWT with an optonal expiration claims\n return (Math.round(new Date().getTime() / 1000) >= exp) ? false : true;\n }\n } catch (e) {\n return true; // Pass: Non-JWT token that looks like JWT\n }\n }\n return true; // Pass: All other tokens\n }\n return false; // Fail: No token at all\n }\n\n logout(): angular.IPromise {\n this.SatellizerStorage.remove(this.prefixedTokenName);\n return this.$q.when();\n }\n\n setStorageType(type): void {\n this.SatellizerConfig.storageType = type;\n }\n}\n\nexport default Shared;\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Shared from './shared';\n\nclass Local {\n static $inject = ['$http', 'SatellizerConfig', 'SatellizerShared'];\n\n\n constructor(private $http: angular.IHttpService,\n private SatellizerConfig: Config,\n private SatellizerShared: Shared) {}\n\n login(user: string|Object, options: any = {}): angular.IHttpPromise {\n options.url = options.url ? options.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.loginUrl);\n options.data = user || options.data;\n options.method = options.method || 'POST';\n options.withCredentials = options.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(options).then((response) => {\n this.SatellizerShared.setToken(response);\n return response;\n });\n }\n\n signup(user: string|Object, options: any = {}): angular.IHttpPromise {\n options.url = options.url ? options.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.signupUrl);\n options.data = user || options.data;\n options.method = options.method || 'POST';\n options.withCredentials = options.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(options);\n }\n}\n\nexport default Local;\n","import { parseQueryString, getFullUrlPath } from './utils';\n\nexport interface IPopup {\n open(url: string, name: string, popupOptions: { width: number, height: number }): void;\n stringifyOptions (options: any): string;\n polling(redirectUri: string): angular.IPromise;\n eventListener(redirectUri: string): angular.IPromise;\n}\n\nexport default class Popup implements IPopup {\n static $inject = ['$interval', '$window', '$q'];\n\n public popup: any;\n private url: string;\n private defaults: { redirectUri: string };\n\n constructor(private $interval: angular.IIntervalService,\n private $window: angular.IWindowService,\n private $q: angular.IQService) {\n this.popup = null;\n this.url = 'about:blank'; // TODO remove\n this.defaults = {\n redirectUri: null\n };\n }\n\n stringifyOptions (options: any): string {\n const parts = [];\n angular.forEach(options, function (value, key) {\n parts.push(key + '=' + value);\n });\n return parts.join(',');\n }\n\n open(url: string, name: string, popupOptions: { width: number, height: number }): void {\n this.url = url; // TODO remove\n\n const width = popupOptions.width || 500;\n const height = popupOptions.height || 500;\n\n const options = this.stringifyOptions({\n width: width,\n height: height,\n top: this.$window.screenY + ((this.$window.outerHeight - height) / 2.5),\n left: this.$window.screenX + ((this.$window.outerWidth - width) / 2)\n });\n\n const popupName = this.$window['cordova'] || this.$window.navigator.userAgent.indexOf('CriOS') > -1 ? '_blank' : name;\n\n this.popup = window.open(this.url, popupName, options);\n\n if (this.popup && this.popup.focus) {\n this.popup.focus();\n }\n //\n // if (this.$window['cordova']) {\n // return this.eventListener(this.defaults.redirectUri); // TODO pass redirect uri\n // } else {\n // return this.polling(redirectUri);\n // }\n }\n\n polling(redirectUri: string): angular.IPromise {\n return this.$q((resolve, reject) => {\n const redirectUriParser = document.createElement('a');\n redirectUriParser.href = redirectUri;\n const redirectUriPath = getFullUrlPath(redirectUriParser);\n\n const polling = this.$interval(() => {\n if (!this.popup || this.popup.closed || this.popup.closed === undefined) {\n this.$interval.cancel(polling);\n reject(new Error('The popup window was closed'));\n }\n\n try {\n const popupWindowPath = getFullUrlPath(this.popup.location);\n\n if (popupWindowPath === redirectUriPath) {\n if (this.popup.location.search || this.popup.location.hash) {\n const query = parseQueryString(this.popup.location.search.substring(1).replace(/\\/$/, ''));\n const hash = parseQueryString(this.popup.location.hash.substring(1).replace(/[\\/$]/, ''));\n const params = angular.extend({}, query, hash);\n\n if (params.error) {\n reject(new Error(params.error));\n } else {\n resolve(params);\n }\n } else {\n reject(new Error(\n 'OAuth redirect has occurred but no query or hash parameters were found. ' +\n 'They were either not set during the redirect, or were removed—typically by a ' +\n 'routing library—before Satellizer could read it.'\n ));\n }\n\n this.$interval.cancel(polling);\n this.popup.close();\n }\n } catch (error) {\n // Ignore DOMException: Blocked a frame with origin from accessing a cross-origin frame.\n // A hack to get around same-origin security policy errors in IE.\n }\n }, 500);\n });\n }\n\n eventListener(redirectUri): angular.IPromise {\n return this.$q((resolve, reject) => {\n this.popup.addEventListener('loadstart', (event) => {\n if (!event.url.includes(redirectUri)) {\n return;\n }\n\n const parser = document.createElement('a');\n parser.href = event.url;\n\n if (parser.search || parser.hash) {\n const query = parseQueryString(parser.search.substring(1).replace(/\\/$/, ''));\n const hash = parseQueryString(parser.hash.substring(1).replace(/[\\/$]/, ''));\n const params = angular.extend({}, query, hash);\n\n if (params.error) {\n reject(new Error(params.error));\n } else {\n resolve(params);\n }\n\n this.popup.close();\n }\n });\n\n this.popup.addEventListener('loaderror', () => {\n reject(new Error('Authorization failed'));\n });\n\n this.popup.addEventListener('exit', () => {\n reject(new Error('The popup window was closed'));\n });\n });\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport { IOAuth1Options } from './oauth1';\n\nexport interface IOAuth1 {\n init(options: any, data: any): angular.IPromise;\n getRequestToken(): angular.IHttpPromise;\n openPopup(options: IOAuth1Options, response: angular.IHttpPromiseCallbackArg): angular.IPromise;\n exchangeForToken(oauthData: any, userData: any): angular.IHttpPromise;\n buildQueryString(obj: any): string;\n}\n\nexport interface IOAuth1Options {\n name: string;\n url: string;\n authorizationEndpoint: string;\n redirectUri: string;\n scope: string[];\n scopePrefix: string;\n scopeDelimiter: string;\n requiredUrlParams: string[];\n defaultUrlParams: string[];\n oauthType: string;\n popupOptions: { width: number, height: number };\n}\n\nexport default class OAuth1 implements IOAuth1 {\n static $inject = ['$http', '$window', 'SatellizerConfig', 'SatellizerPopup'];\n\n private defaults: IOAuth1Options;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup) {\n\n this.defaults = {\n name: null,\n url: null,\n authorizationEndpoint: null,\n scope: null,\n scopePrefix: null,\n scopeDelimiter: null,\n redirectUri: null,\n requiredUrlParams: null,\n defaultUrlParams: null,\n oauthType: '1.0',\n popupOptions: { width: null, height: null }\n };\n };\n\n init(options: IOAuth1Options, userData: any): angular.IHttpPromise {\n angular.extend(this.defaults, options);\n\n if (!this.$window['cordova']) {\n this.SatellizerPopup.open('about:blank', options.name, options.popupOptions);\n }\n\n return this.getRequestToken().then((response) => {\n return this.openPopup(options, response).then((popupResponse) => {\n return this.exchangeForToken(popupResponse, userData);\n });\n });\n }\n\n openPopup(options: IOAuth1Options, response: angular.IHttpPromiseCallbackArg): angular.IPromise {\n const popupUrl = [options.authorizationEndpoint, this.buildQueryString(response.data)].join('?');\n\n if (this.$window['cordova']) {\n this.SatellizerPopup.open(popupUrl, options.name, options.popupOptions);\n return this.SatellizerPopup.eventListener(this.defaults.redirectUri);\n } else {\n this.SatellizerPopup.popup.location = popupUrl;\n return this.SatellizerPopup.polling(this.defaults.redirectUri);\n }\n }\n\n getRequestToken(): angular.IHttpPromise {\n const url = this.SatellizerConfig.baseUrl ? joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) : this.defaults.url;\n return this.$http.post(url, this.defaults);\n }\n\n exchangeForToken(oauthData, userData): angular.IHttpPromise {\n const payload = angular.extend({}, userData, oauthData);\n const exchangeForTokenUrl = this.SatellizerConfig.baseUrl ? joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) : this.defaults.url;\n return this.$http.post(exchangeForTokenUrl, payload, { withCredentials: this.SatellizerConfig.withCredentials });\n }\n\n buildQueryString(obj): string {\n const str = [];\n angular.forEach(obj, function (value, key) {\n str.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return str.join('&');\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport Storage from './storage';\n\nexport interface IOAuth2Options {\n name: string;\n url: string;\n clientId: string;\n authorizationEndpoint: string;\n redirectUri: string;\n scope: string[];\n scopePrefix: string;\n scopeDelimiter: string;\n state?: string|(() => string);\n requiredUrlParams: string[];\n defaultUrlParams: string[];\n responseType: string;\n responseParams: {\n code: string,\n clientId: string,\n redirectUri: string\n };\n oauthType: string;\n popupOptions: { width: number, height: number };\n}\n\nexport default class OAuth2 {\n static $inject = ['$http', '$window', '$timeout', '$q', 'SatellizerConfig', 'SatellizerPopup', 'SatellizerStorage'];\n\n static camelCase(name): string {\n return name.replace(/([\\:\\-\\_]+(.))/g, (_, separator, letter, offset) => {\n return offset ? letter.toUpperCase() : letter;\n });\n }\n\n public defaults: IOAuth2Options;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private $timeout: ng.ITimeoutService,\n private $q: angular.IQService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup,\n private SatellizerStorage: Storage) {\n\n this.defaults = {\n name: null,\n url: null,\n clientId: null,\n authorizationEndpoint: null,\n redirectUri: null,\n scope: null,\n scopePrefix: null,\n scopeDelimiter: null,\n state: null,\n requiredUrlParams: null,\n defaultUrlParams: ['response_type', 'client_id', 'redirect_uri'],\n responseType: 'code',\n responseParams: {\n code: 'code',\n clientId: 'clientId',\n redirectUri: 'redirectUri'\n },\n oauthType: '2.0',\n popupOptions: { width: null, height: null }\n };\n }\n\n init(options: IOAuth2Options, userData: any): angular.IPromise {\n return this.$q((resolve, reject) => {\n angular.extend(this.defaults, options);\n this.$timeout(() => {\n const stateName = this.defaults.name + '_state';\n const { name, state, popupOptions, redirectUri, responseType } = this.defaults;\n\n if (typeof state === 'function') {\n this.SatellizerStorage.set(stateName, state());\n } else if (typeof state === 'string') {\n this.SatellizerStorage.set(stateName, state);\n }\n const url = [this.defaults.authorizationEndpoint, this.buildQueryString()].join('?');\n\n this.SatellizerPopup.open(url, name, popupOptions);\n\n this.SatellizerPopup.polling(redirectUri).then((oauth: any): void|angular.IPromise|angular.IHttpPromise => {\n\n if (responseType === 'token' || !url) {\n return resolve(oauth);\n }\n\n if (oauth.state && oauth.state !== this.SatellizerStorage.get(stateName)) {\n return reject(new Error(\n 'The value returned in the state parameter does not match the state value from your original ' +\n 'authorization code request.'\n ));\n }\n\n resolve(this.exchangeForToken(oauth, userData));\n })\n .catch(error => reject(error));\n });\n });\n }\n\n exchangeForToken(oauthData: { code?, state? }, userData: any): angular.IHttpPromise {\n const payload = angular.extend({}, userData);\n\n angular.forEach(this.defaults.responseParams, (value, key) => {\n switch (key) {\n case 'code':\n payload[value] = oauthData.code;\n break;\n case 'clientId':\n payload[value] = this.defaults.clientId;\n break;\n case 'redirectUri':\n payload[value] = this.defaults.redirectUri;\n break;\n default:\n payload[value] = oauthData[key];\n }\n });\n\n if (oauthData.state) {\n payload.state = oauthData.state;\n }\n\n let exchangeForTokenUrl = this.SatellizerConfig.baseUrl ?\n joinUrl(this.SatellizerConfig.baseUrl, this.defaults.url) :\n this.defaults.url;\n\n return this.$http.post(exchangeForTokenUrl, payload, { withCredentials: this.SatellizerConfig.withCredentials });\n }\n\n buildQueryString(): string {\n const keyValuePairs = [];\n const urlParamsCategories = ['defaultUrlParams', 'requiredUrlParams', 'optionalUrlParams'];\n\n angular.forEach(urlParamsCategories, (paramsCategory) => {\n angular.forEach(this.defaults[paramsCategory], (paramName) => {\n const camelizedName = OAuth2.camelCase(paramName);\n let paramValue = angular.isFunction(this.defaults[paramName]) ? this.defaults[paramName]() : this.defaults[camelizedName];\n\n if (paramName === 'redirect_uri' && !paramValue) {\n return;\n }\n if (paramName === 'state') {\n const stateName = this.defaults.name + '_state';\n paramValue = encodeURIComponent(this.SatellizerStorage.get(stateName));\n }\n if (paramName === 'scope' && Array.isArray(paramValue)) {\n paramValue = paramValue.join(this.defaults.scopeDelimiter);\n if (this.defaults.scopePrefix) {\n paramValue = [this.defaults.scopePrefix, paramValue].join(this.defaults.scopeDelimiter);\n }\n }\n\n keyValuePairs.push([paramName, paramValue]);\n });\n });\n\n return keyValuePairs.map(pair => pair.join('=')).join('&');\n }\n}\n","import { joinUrl } from './utils';\nimport Config from './config';\nimport Popup from './popup';\nimport Storage from './storage';\nimport Shared from './shared';\nimport OAuth1 from './oauth1';\nimport OAuth2 from './oauth2';\n\nexport default class OAuth {\n static $inject = [\n '$http',\n '$window',\n '$timeout',\n '$q',\n 'SatellizerConfig',\n 'SatellizerPopup',\n 'SatellizerStorage',\n 'SatellizerShared',\n 'SatellizerOAuth1',\n 'SatellizerOAuth2'\n ];\n\n private oauth1: OAuth1;\n private oauth2: OAuth2;\n\n constructor(private $http: ng.IHttpService,\n private $window: ng.IWindowService,\n private $timeout: ng.ITimeoutService,\n private $q: ng.IQService,\n private SatellizerConfig: Config,\n private SatellizerPopup: Popup,\n private SatellizerStorage: Storage,\n private SatellizerShared: Shared,\n private SatellizerOAuth1: OAuth1,\n private SatellizerOAuth2: OAuth2) {}\n\n authenticate(name: string, userData: any): angular.IPromise {\n return this.$q((resolve, reject) => {\n const provider = this.SatellizerConfig.providers[name];\n\n let oauth = null;\n\n switch (provider.oauthType) {\n case '1.0':\n oauth = new OAuth1(this.$http, this.$window, this.SatellizerConfig, this.SatellizerPopup);\n break;\n case '2.0':\n oauth = new OAuth2(this.$http, this.$window, this.$timeout, this.$q, this.SatellizerConfig, this.SatellizerPopup, this.SatellizerStorage);\n break;\n default:\n return reject(new Error('Unknown OAuth Type'));\n }\n\n return oauth.init(provider, userData).then((response) => {\n if (provider.url) {\n this.SatellizerShared.setToken(response);\n }\n resolve(response);\n }).catch((error) => {\n reject(error);\n });\n });\n }\n\n unlink(provider: string, httpOptions: any = {}): angular.IHttpPromise {\n httpOptions.url = httpOptions.url ? httpOptions.url : joinUrl(this.SatellizerConfig.baseUrl, this.SatellizerConfig.unlinkUrl);\n httpOptions.data = { provider: provider } || httpOptions.data;\n httpOptions.method = httpOptions.method || 'POST';\n httpOptions.withCredentials = httpOptions.withCredentials || this.SatellizerConfig.withCredentials;\n\n return this.$http(httpOptions);\n }\n}\n","import Config from './config';\n\nexport default class Storage {\n static $inject = ['$window', 'SatellizerConfig'];\n\n private memoryStore: any;\n private storageType: string;\n\n constructor(private $window: angular.IHttpService,\n private SatellizerConfig: Config) {\n this.memoryStore = {};\n }\n\n get(key: string): string {\n try {\n return this.$window[this.SatellizerConfig.storageType].getItem(key);\n } catch (e) {\n return this.memoryStore[key];\n }\n }\n\n set(key: string, value: string): void {\n try {\n this.$window[this.SatellizerConfig.storageType].setItem(key, value);\n } catch (e) {\n this.memoryStore[key] = value;\n }\n }\n\n remove(key: string): void {\n try {\n this.$window[this.SatellizerConfig.storageType].removeItem(key);\n } catch (e) {\n delete this.memoryStore[key];\n }\n }\n}\n","import Config from './config';\nimport Shared from './shared';\nimport Storage from './storage';\n\nexport default class Interceptor implements angular.IHttpInterceptor {\n\n static $inject = ['SatellizerConfig', 'SatellizerShared', 'SatellizerStorage'];\n\n static Factory(SatellizerConfig: Config, SatellizerShared: Shared, SatellizerStorage: Storage): Interceptor {\n return new Interceptor(SatellizerConfig, SatellizerShared, SatellizerStorage);\n }\n\n constructor(private SatellizerConfig: Config,\n private SatellizerShared: Shared,\n private SatellizerStorage: Storage) {\n }\n\n request = (config: angular.IRequestConfig): angular.IRequestConfig => {\n if (config['skipAuthorization']) {\n return config;\n }\n\n if (this.SatellizerShared.isAuthenticated() && this.SatellizerConfig.httpInterceptor()) {\n const tokenName = this.SatellizerConfig.tokenPrefix ?\n [this.SatellizerConfig.tokenPrefix, this.SatellizerConfig.tokenName].join('_') : this.SatellizerConfig.tokenName;\n let token = this.SatellizerStorage.get(tokenName);\n\n if (this.SatellizerConfig.tokenHeader && this.SatellizerConfig.tokenType) {\n token = this.SatellizerConfig.tokenType + ' ' + token;\n }\n\n config.headers[this.SatellizerConfig.tokenHeader] = token;\n }\n\n return config;\n };\n}\n\nInterceptor.Factory.$inject = ['SatellizerConfig', 'SatellizerShared', 'SatellizerStorage'];","import Interceptor from './interceptor';\n\nexport default class HttpProviderConfig {\n static $inject = ['$httpProvider'];\n\n constructor(private $httpProvider: angular.IHttpProvider) {\n $httpProvider.interceptors.push(Interceptor.Factory);\n }\n}\n","import Config from './config';\nimport AuthProvider from './authProvider';\nimport Shared from './shared';\nimport Local from './local';\nimport Popup from './popup';\nimport OAuth from './oauth';\nimport OAuth2 from './oauth2';\nimport OAuth1 from './oauth1';\nimport Storage from './storage';\nimport Interceptor from './interceptor';\nimport HttpProviderConfig from './httpProviderConfig';\n\nangular.module('satellizer', [])\n .provider('$auth', ['SatellizerConfig', (SatellizerConfig) => new AuthProvider(SatellizerConfig)])\n .constant('SatellizerConfig', Config.getConstant)\n .service('SatellizerShared', Shared)\n .service('SatellizerLocal', Local)\n .service('SatellizerPopup', Popup)\n .service('SatellizerOAuth', OAuth)\n .service('SatellizerOAuth2', OAuth2)\n .service('SatellizerOAuth1', OAuth1)\n .service('SatellizerStorage', Storage)\n .service('SatellizerInterceptor', Interceptor)\n .config(['$httpProvider', ($httpProvider) => new HttpProviderConfig($httpProvider)]);\n\nexport default 'satellizer';\n\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/examples/client/vendor/satellizer.js b/examples/client/vendor/satellizer.js index b29e28f2..49ff9849 100644 --- a/examples/client/vendor/satellizer.js +++ b/examples/client/vendor/satellizer.js @@ -1,5 +1,5 @@ /** - * Satellizer 0.15.3 + * Satellizer 0.15.4 * (c) 2016 Sahat Yalkabov * License: MIT */ diff --git a/examples/server/php/public/vendor/satellizer.js b/examples/server/php/public/vendor/satellizer.js index b29e28f2..49ff9849 100644 --- a/examples/server/php/public/vendor/satellizer.js +++ b/examples/server/php/public/vendor/satellizer.js @@ -1,5 +1,5 @@ /** - * Satellizer 0.15.3 + * Satellizer 0.15.4 * (c) 2016 Sahat Yalkabov * License: MIT */ diff --git a/package.json b/package.json index 6202c26b..fa3464b8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "satellizer", "description": "Token-based AngularJS Authentication", - "version": "0.15.3", + "version": "0.15.4", "main": "dist/satellizer.js", "scripts": { "start": "supervisor ./examples/server/node/server.js",