@netology-group/account
Advanced tools
Comparing version 2.4.0 to 2.5.0
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Account=t():e.Account=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=1)}([function(e,t,n){"use strict";function r(e){return c(e)||i(e)||o()}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function i(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function c(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return y});var h=n(2),l=3,p=1e3,d=3e3,y=function(){function e(t,n,r){if(u(this,e),f(this,"fetchFn",void 0),f(this,"fetchOpts",void 0),f(this,"id",void 0),f(this,"label",void 0),f(this,"leeway",void 0),f(this,"requestMode",void 0),f(this,"provider",void 0),f(this,"retries",void 0),f(this,"retryDelay",void 0),f(this,"storage",void 0),!t)throw new TypeError("Missing `config`");if(!n)throw new TypeError("Provider is not defined");if(!r)throw new TypeError("Storage is not defined");this.storage=r,this.provider=n,this.fetchFn=h.a,this.fetchOpts={delay:t.retryDelay||p,retries:t.retries||l},this.leeway=t.leeway||d,this.requestMode=t.requestMode||"id";var o=this._createId(t.audience,t.label),i=o.id,c=o.label;if(this.label=c,this.id=i,!this.id)throw new TypeError("Failed to configure account. Id is not present")}return s(e,[{key:"_createId",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)throw new TypeError("`audience` is absent");if(!t)throw new TypeError("`label` is absent");return{id:"".concat(t).concat(n).concat(e),label:t}}},{key:"_requestLabel",value:function(){return"label"===this.requestMode?this.label:this.id}},{key:"load",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id;return n?Promise.resolve(function(){return e.storage.getItem(n)}).then(function(e){var t=e();if(!t)throw new TypeError("Could not load data");return Object(h.d)(t)}):Promise.reject(new TypeError("`label` is absent"))}},{key:"remove",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id;return n?this.load(n).then(function(t){return e.storage.removeItem(n),t}):Promise.reject(new TypeError("`label` is absent"))}},{key:"store",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!e)throw new TypeError("`token` is absent");var n=Object.prototype.hasOwnProperty.call(e,"access_token"),r=Object.prototype.hasOwnProperty.call(e,"refresh_token");if(!n)throw new TypeError("`access_token` is absent");if(r&&!e.refresh_token)throw new TypeError("`refresh_token` is absent");if(!r&&!e.access_token)throw new TypeError("`access_token` is absent");return this._store(e,t)}},{key:"_store",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=n||this.id;if(!r)return Promise.reject(new TypeError("`label` is absent"));var o={access_token:e.access_token,refresh_token:e.refresh_token,expires_time:e.expires_time||0};return Promise.resolve(o).then(function(e){return t.storage.setItem(r,JSON.stringify(e)),e})}},{key:"account",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.account;return this.tokenData(n).then(function(t){var n=t.access_token;return[e._requestLabel(),n]}).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(h.f).then(h.e)}},{key:"tokenData",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.refreshAccessToken;return this.load(n).then(function(t){if(!Object(h.c)(t,Date.now(),e.leeway))return t;var i=t.refresh_token;return Promise.resolve([e._requestLabel(),i]).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(h.f).then(h.e).then(function(t){return e.load(n).then(function(n){return e.store({access_token:t.access_token,refresh_token:n.refresh_token,expires_time:Object(h.b)(t.expires_in,Date.now())})})})})}},{key:"revokeRefreshToken",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.revokeRefreshToken;return this.load(n).then(function(t){var n=t.refresh_token;return[e._requestLabel(),n]}).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(h.f).then(h.e).then(function(t){return e.load(n).then(function(n){return e.store({access_token:n.access_token,refresh_token:t.refresh_token,expires_time:n.expires_time})})})}}],[{key:"fetchLabel",value:function(e,t,n){var r=e.refresh_token;if(!r)throw new TypeError("`refresh_token` is absent");if(!t)throw new TypeError("Provider is not defined");var o={delay:p,retries:l};return Object(h.a)(function(){return t.refreshAccessToken(n||"me",r)},o).then(h.f).then(h.e).then(function(e){return Object(h.a)(function(){return t.account(n||"me",e.access_token)},o).then(h.f).then(h.e)})}}]),e}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n.d(t,"Account",function(){return r.a});var o=n(3);n.d(t,"MemoizingAccount",function(){return o.a});var i=n(4);n.d(t,"IdP",function(){return i.a})},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"c",function(){return o}),n.d(t,"b",function(){return i}),n.d(t,"f",function(){return c}),n.d(t,"e",function(){return u}),n.d(t,"d",function(){return a});var r=function(e,t){if(!e)throw new TypeError("Missing 'requestFn': ".concat(e));return new Promise(function(n,r){var o=[];!function i(c){c<1?r(o):fetch(e()).then(function(e){return n(e)}).catch(function(e){o.push(e),setTimeout(function(){i(c-1)},t.delay||1e3)})}(t.retries||3)})},o=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e3;if(!t||isNaN(t))throw new TypeError("`now` is absent");return function(e){return!e||!e.expires_time||t>Number(e.expires_time)-n}(e)},i=function(e,t){if(void 0===e||isNaN(e))throw new TypeError("`expires_in` is absent");if(void 0===t||isNaN(t))throw new TypeError("`expires_time` is absent");if(e<0)throw new TypeError("Wrong `expires_in` value");return t+1e3*e},c=function(e){if(e.status&&e.status>=200&&e.status<300)return e;throw new Error(e.statusText||"Invalid request. Status: ".concat(e.status))},u=function(e){if(!e)throw new TypeError("`response` is absent");try{return e.json()}catch(e){throw new Error("Response is not a JSON")}},a=function(e){var t="function"==typeof e?e():e;if("string"!=typeof t)throw new TypeError("Could not parse");return new Promise(function(e,n){try{e(JSON.parse(t))}catch(e){n(e)}})}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function u(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e,t,n){return(s="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=f(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function f(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=h(e)););return e}function h(e){return(h=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,"a",function(){return y});var d=n(0),y=function(e){function t(){var e,n;o(this,t);for(var r=arguments.length,i=new Array(r),c=0;c<r;c++)i[c]=arguments[c];return n=u(this,(e=h(t)).call.apply(e,[this].concat(i))),n.pendingRequests=new Map([]),n}return l(t,e),c(t,[{key:"memoizedPromise",value:function(e,t){var n,r=this.pendingRequests,o=r.get(e);return o||(n=t().then(function(t){return r.delete(e),t}),r.set(e,n),n)}},{key:"account",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=n||this.id;return this.memoizedPromise("account_".concat(r),function(){return s(h(t.prototype),"account",e).call(e,n)})}},{key:"tokenData",value:function(e){var n=this,r=e||this.id;return this.memoizedPromise("tokendata_".concat(r),function(){return s(h(t.prototype),"tokenData",n).call(n,e)})}},{key:"revokeRefreshToken",value:function(e){var n=this,r=e||this.id;return this.memoizedPromise("revoketoken_".concat(r),function(){return s(h(t.prototype),"revokeRefreshToken",n).call(n,e)})}}]),t}(d.a)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return u});var u=function(){function e(t){var n=this;if(r(this,e),c(this,"endpoint",void 0),c(this,"accountEndpoint",void 0),c(this,"authnEndpoint",void 0),!t)throw new TypeError("Missing provider configuration");this.endpoint=t.endpoint,this.accountEndpoint=function(e){if(!n.endpoint&&!e.accountEndpoint)throw new TypeError("Could not resolve account endpoint");return e.accountEndpoint&&"function"==typeof e.accountEndpoint?e.accountEndpoint():e.accountEndpoint||"".concat(n.endpoint,"/accounts")}(t),this.authnEndpoint=function(e){if(!n.endpoint&&!e.authnEndpoint)throw new TypeError("Could not resolve authentication endpoint");return e.authnEndpoint&&"function"==typeof e.authnEndpoint?e.authnEndpoint():e.authnEndpoint||"".concat(n.endpoint,"/authn")}(t)}return i(e,[{key:"refreshAccessToken",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'refreshToken': ".concat(t));var n="".concat(this.accountEndpoint,"/").concat(e,"/refresh");return new Request(n,{method:"POST",headers:{Authorization:"Bearer ".concat(t)}})}},{key:"revokeRefreshToken",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'refreshToken': ".concat(t));var n="".concat(this.accountEndpoint,"/").concat(e,"/revoke");return new Request(n,{method:"POST",headers:{Authorization:"Bearer ".concat(t)}})}},{key:"account",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'accessToken': ".concat(t));var n="".concat(this.authnEndpoint,"/").concat(e);return new Request(n,{method:"GET",headers:{Authorization:"Bearer ".concat(t)}})}}]),e}()}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Account=t():e.Account=t()}("undefined"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=2)}([function(e,t,n){"use strict";function r(e){return c(e)||i(e)||o()}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function i(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function c(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e,t,n){return t&&s(e.prototype,t),n&&s(e,n),e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return y});var l=n(1),h=3,p=1e3,d=3e3,y=function(){function e(t,n,r){if(a(this,e),f(this,"fetchFn",void 0),f(this,"fetchOpts",void 0),f(this,"id",void 0),f(this,"label",void 0),f(this,"leeway",void 0),f(this,"requestMode",void 0),f(this,"provider",void 0),f(this,"retries",void 0),f(this,"retryDelay",void 0),f(this,"storage",void 0),!t)throw new TypeError("Missing `config`");if(!n)throw new TypeError("Provider is not defined");if(!r)throw new TypeError("Storage is not defined");this.storage=r,this.provider=n,this.fetchFn=l.b,this.fetchOpts={delay:t.retryDelay||p,retries:t.retries||h},this.leeway=t.leeway||d,this.requestMode=t.requestMode||"id";var o=this._createId(t.audience,t.label),i=o.id,c=o.label;if(this.label=c,this.id=i,!this.id)throw new TypeError("Failed to configure account. Id is not present")}return u(e,[{key:"_createId",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:".";if(!e)throw new TypeError("`audience` is absent");if(!t)throw new TypeError("`label` is absent");return{id:"".concat(t).concat(n).concat(e),label:t}}},{key:"_requestLabel",value:function(){return"label"===this.requestMode?this.label:this.id}},{key:"load",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id;return n?Promise.resolve(function(){return e.storage.getItem(n)}).then(function(e){var t=e();if(!t)throw new TypeError("Could not load data");return Object(l.e)(t)}):Promise.reject(new TypeError("`label` is absent"))}},{key:"remove",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id;return n?this.load(n).then(function(t){return e.storage.removeItem(n),t}):Promise.reject(new TypeError("`label` is absent"))}},{key:"store",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!e)throw new TypeError("`token` is absent");var n=Object.prototype.hasOwnProperty.call(e,"access_token"),r=Object.prototype.hasOwnProperty.call(e,"refresh_token");if(!n)throw new TypeError("`access_token` is absent");if(r&&!e.refresh_token)throw new TypeError("`refresh_token` is absent");if(!r&&!e.access_token)throw new TypeError("`access_token` is absent");return this._store(e,t)}},{key:"_store",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=n||this.id;if(!r)return Promise.reject(new TypeError("`label` is absent"));var o={access_token:e.access_token,refresh_token:e.refresh_token,expires_time:e.expires_time||0};return Promise.resolve(o).then(function(e){return t.storage.setItem(r,JSON.stringify(e)),e})}},{key:"account",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.account;return this.tokenData(n).then(function(t){var n=t.access_token;return[e._requestLabel(),n]}).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(l.g).then(l.f)}},{key:"tokenData",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.refreshAccessToken;return this.load(n).then(function(t){if(!Object(l.d)(t,Date.now(),e.leeway))return t;var i=t.refresh_token;return Promise.resolve([e._requestLabel(),i]).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(l.g).then(l.f).then(function(t){return e.load(n).then(function(n){return e.store({access_token:t.access_token,refresh_token:n.refresh_token,expires_time:Object(l.c)(t.expires_in,Date.now())})})})})}},{key:"revokeRefreshToken",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=t||this.id,o=this.provider.revokeRefreshToken;return this.load(n).then(function(t){var n=t.refresh_token;return[e._requestLabel(),n]}).then(function(t){return e.fetchFn(function(){return o.call.apply(o,[e.provider].concat(r(t)))},e.fetchOpts)}).then(l.g).then(l.f).then(function(t){return e.load(n).then(function(n){return e.store({access_token:n.access_token,refresh_token:t.refresh_token,expires_time:n.expires_time})})})}}],[{key:"fetchLabel",value:function(e,t,n){var r=e.refresh_token;if(!r)throw new TypeError("`refresh_token` is absent");if(!t)throw new TypeError("Provider is not defined");var o={delay:p,retries:h};return Object(l.b)(function(){return t.refreshAccessToken(n||"me",r)},o).then(l.g).then(l.f).then(function(e){return Object(l.b)(function(){return t.account(n||"me",e.access_token)},o).then(l.g).then(l.f)})}}]),e}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return i}),n.d(t,"d",function(){return c}),n.d(t,"c",function(){return a}),n.d(t,"g",function(){return s}),n.d(t,"f",function(){return u}),n.d(t,"e",function(){return f});var r=n(3),o=function(e){return Object(r.a)(e,!0)},i=function(e,t){if(!e)throw new TypeError("Missing 'requestFn': ".concat(e));return new Promise(function(n,r){var o=[];!function i(c){c<1?r(o):fetch(e()).then(function(e){return n(e)}).catch(function(e){o.push(e),setTimeout(function(){i(c-1)},t.delay||1e3)})}(t.retries||3)})},c=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3e3;if(!t||isNaN(t))throw new TypeError("`now` is absent");return function(e){return!e||!e.expires_time||t>Number(e.expires_time)-n}(e)},a=function(e,t){if(void 0===e||isNaN(e))throw new TypeError("`expires_in` is absent");if(void 0===t||isNaN(t))throw new TypeError("`expires_time` is absent");if(e<0)throw new TypeError("Wrong `expires_in` value");return t+1e3*e},s=function(e){if(e.status&&e.status>=200&&e.status<300)return e;throw new Error(e.statusText||"Invalid request. Status: ".concat(e.status))},u=function(e){if(!e)throw new TypeError("`response` is absent");try{return e.json()}catch(e){throw new Error("Response is not a JSON")}},f=function(e){var t="function"==typeof e?e():e;if("string"!=typeof t)throw new TypeError("Could not parse");return new Promise(function(e,n){try{e(JSON.parse(t))}catch(e){n(e)}})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);n.d(t,"Account",function(){return r.a});var o=n(8);n.d(t,"MemoizingAccount",function(){return o.a});var i=n(9);n.d(t,"TokenProvider",function(){return i.a});var c=n(10);n.d(t,"IdP",function(){return c.a})},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(4),o=n.n(r),i=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof e)throw new TypeError("Namespace should be a string");return t?function(){}:o()(e)}},function(e,t,n){(function(r){function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function c(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),this.useColors){var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(r++,"%c"===e&&(o=r))}),t.splice(o,0,n)}}function a(){var e;return"object"===("undefined"==typeof console?"undefined":o(console))&&console.log&&(e=console).log.apply(e,arguments)}function s(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}}function u(){var e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&void 0!==r&&"env"in r&&(e=r.env.DEBUG),e}t.log=a,t.formatArgs=c,t.save=s,t.load=u,t.useColors=i,t.storage=function(){try{return localStorage}catch(e){}}(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.exports=n(6)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(t,n(5))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(f===setTimeout)return setTimeout(e,0);if((f===n||!f)&&setTimeout)return f=setTimeout,setTimeout(e,0);try{return f(e,0)}catch(t){try{return f.call(null,e,0)}catch(t){return f.call(this,e,0)}}}function i(e){if(l===clearTimeout)return clearTimeout(e);if((l===r||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function c(){y&&p&&(y=!1,p.length?d=p.concat(d):v=-1,d.length&&a())}function a(){if(!y){var e=o(c);y=!0;for(var t=d.length;t;){for(p=d,d=[];++v<t;)p&&p[v].run();v=-1,t=d.length}p=null,y=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function u(){}var f,l,h=e.exports={};!function(){try{f="function"==typeof setTimeout?setTimeout:n}catch(e){f=n}try{l="function"==typeof clearTimeout?clearTimeout:r}catch(e){l=r}}();var p,d=[],y=!1,v=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];d.push(new s(e,t)),1!==d.length||y||o(a)},s.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=u,h.addListener=u,h.once=u,h.off=u,h.removeListener=u,h.removeAllListeners=u,h.emit=u,h.prependListener=u,h.prependOnceListener=u,h.listeners=function(e){return[]},h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},function(e,t,n){function r(e){return c(e)||i(e)||o()}function o(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function i(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}function c(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function a(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return o.colors[Math.abs(t)%o.colors.length]}function o(e){function n(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if(n.enabled){var c=n,a=Number(new Date),s=a-(r||a);c.diff=s,c.prev=r,c.curr=a,r=a,t[0]=o.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var u=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,function(e,n){if("%%"===e)return e;u++;var r=o.formatters[n];if("function"==typeof r){var i=t[u];e=r.call(c,i),t.splice(u,1),u--}return e}),o.formatArgs.call(c,t);(c.log||o.log).apply(c,t)}}var r;return n.namespace=e,n.enabled=o.enabled(e),n.useColors=o.useColors(),n.color=t(e),n.destroy=i,n.extend=c,"function"==typeof o.init&&o.init(n),o.instances.push(n),n}function i(){var e=o.instances.indexOf(this);return-1!==e&&(o.instances.splice(e,1),!0)}function c(e,t){var n=o(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function a(e){o.save(e),o.names=[],o.skips=[];var t,n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length;for(t=0;t<r;t++)n[t]&&(e=n[t].replace(/\*/g,".*?"),"-"===e[0]?o.skips.push(new RegExp("^"+e.substr(1)+"$")):o.names.push(new RegExp("^"+e+"$")));for(t=0;t<o.instances.length;t++){var i=o.instances[t];i.enabled=o.enabled(i.namespace)}}function s(){var e=[].concat(r(o.names.map(f)),r(o.skips.map(f).map(function(e){return"-"+e}))).join(",");return o.enable(""),e}function u(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=o.skips.length;t<n;t++)if(o.skips[t].test(e))return!1;for(t=0,n=o.names.length;t<n;t++)if(o.names[t].test(e))return!0;return!1}function f(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}function l(e){return e instanceof Error?e.stack||e.message:e}return o.debug=o,o.default=o,o.coerce=l,o.disable=s,o.enable=a,o.enabled=u,o.humanize=n(7),Object.keys(e).forEach(function(t){o[t]=e[t]}),o.instances=[],o.names=[],o.skips=[],o.formatters={},o.selectColor=t,o.enable(o.load()),o}e.exports=a},function(e,t){function n(e){if(e=String(e),!(e.length>100)){var t=/^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"weeks":case"week":case"w":return n*f;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*s;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*c;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function r(e){var t=Math.abs(e);return t>=u?Math.round(e/u)+"d":t>=s?Math.round(e/s)+"h":t>=a?Math.round(e/a)+"m":t>=c?Math.round(e/c)+"s":e+"ms"}function o(e){var t=Math.abs(e);return t>=u?i(e,t,u,"day"):t>=s?i(e,t,s,"hour"):t>=a?i(e,t,a,"minute"):t>=c?i(e,t,c,"second"):e+" ms"}function i(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}var c=1e3,a=60*c,s=60*a,u=24*s,f=7*u,l=365.25*u;e.exports=function(e,t){t=t||{};var i=typeof e;if("string"===i&&e.length>0)return n(e);if("number"===i&&!1===isNaN(e))return t.long?o(e):r(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}function a(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?s(e):t}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function u(e,t,n){return(u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var r=f(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}})(e,t,n||e)}function f(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}function p(e,t){return(p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,"a",function(){return y});var d=n(0),y=function(e){function t(){var e,n;o(this,t);for(var r=arguments.length,i=new Array(r),c=0;c<r;c++)i[c]=arguments[c];return n=a(this,(e=l(t)).call.apply(e,[this].concat(i))),n.pendingRequests=new Map([]),n}return h(t,e),c(t,[{key:"memoizedPromise",value:function(e,t){var n,r=this.pendingRequests,o=r.get(e);return o||(n=t().then(function(t){return r.delete(e),t}),r.set(e,n),n)}},{key:"account",value:function(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=n||this.id;return this.memoizedPromise("account_".concat(r),function(){return u(l(t.prototype),"account",e).call(e,n)})}},{key:"tokenData",value:function(e){var n=this,r=e||this.id;return this.memoizedPromise("tokendata_".concat(r),function(){return u(l(t.prototype),"tokenData",n).call(n,e)})}},{key:"revokeRefreshToken",value:function(e){var n=this,r=e||this.id;return this.memoizedPromise("revoketoken_".concat(r),function(){return u(l(t.prototype),"revokeRefreshToken",n).call(n,e)})}}]),t}(d.a)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return u});var a=n(1),s=Object(a.a)("@netology-group/account/token-provider"),u=function(){function e(t,n){r(this,e),c(this,"__token",void 0),c(this,"__engine",void 0);var o=t.access_token,i=t.refresh_token,a=t.expires_time,s=void 0===a?0:a;this.__token={access_token:o,refresh_token:i,expires_time:s},n&&this.iEngine(n).initialize()}return i(e,[{key:"iEngine",value:function(e){return this.__engine=e,this}},{key:"initialize",value:function(){if(!this.__engine)throw new TypeError("`engine` is absent");return this.__engine.store(this.__token),this}},{key:"token",value:function(){var e=this.__engine;if(!e)throw new TypeError("`engine` is absent");return e.tokenData().then(function(e){return e.access_token})}},{key:"getToken",value:function(){return s("`getToken` is deprecated. Use `.token()` instead."),this.token()}}]),e}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return a});var a=function(){function e(t){var n=this;if(r(this,e),c(this,"endpoint",void 0),c(this,"accountEndpoint",void 0),c(this,"authnEndpoint",void 0),!t)throw new TypeError("Missing provider configuration");this.endpoint=t.endpoint,this.accountEndpoint=function(e){if(!n.endpoint&&!e.accountEndpoint)throw new TypeError("Could not resolve account endpoint");return e.accountEndpoint&&"function"==typeof e.accountEndpoint?e.accountEndpoint():e.accountEndpoint||"".concat(n.endpoint,"/accounts")}(t),this.authnEndpoint=function(e){if(!n.endpoint&&!e.authnEndpoint)throw new TypeError("Could not resolve authentication endpoint");return e.authnEndpoint&&"function"==typeof e.authnEndpoint?e.authnEndpoint():e.authnEndpoint||"".concat(n.endpoint,"/authn")}(t)}return i(e,[{key:"refreshAccessToken",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'refreshToken': ".concat(t));var n="".concat(this.accountEndpoint,"/").concat(e,"/refresh");return new Request(n,{method:"POST",headers:{Authorization:"Bearer ".concat(t)}})}},{key:"revokeRefreshToken",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'refreshToken': ".concat(t));var n="".concat(this.accountEndpoint,"/").concat(e,"/revoke");return new Request(n,{method:"POST",headers:{Authorization:"Bearer ".concat(t)}})}},{key:"account",value:function(e,t){if(!e)throw new TypeError("Incorrect parameter `label`");if(!t)throw new TypeError("Incorrect parameter 'accessToken': ".concat(t));var n="".concat(this.authnEndpoint,"/").concat(e);return new Request(n,{method:"GET",headers:{Authorization:"Bearer ".concat(t)}})}}]),e}()}])}); |
@@ -21,4 +21,3 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
var LEEWAY = 3000; | ||
var Account = | ||
export var Account = | ||
/*#__PURE__*/ | ||
@@ -244,5 +243,2 @@ function () { | ||
return Account; | ||
}(); | ||
export { Account as default }; | ||
export { Account }; | ||
}(); |
export { Account } from './account'; | ||
export { MemoizingAccount } from './memoizing-account'; | ||
export { TokenProvider } from './token-provider'; | ||
export { IdP } from './idp'; |
import debug from 'debug'; | ||
export var Debug = function Debug(ns) { | ||
var invariant = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
if (typeof ns !== 'string') throw new TypeError('Namespace should be a string'); | ||
if (process.env.NODE_ENV === 'production') return function () { | ||
if (invariant) return function () { | ||
return undefined; | ||
@@ -6,0 +7,0 @@ }; |
@@ -0,1 +1,5 @@ | ||
import { Debug as debug } from './debug'; | ||
export var Debug = function Debug(ns) { | ||
return debug(ns, process.env.NODE_ENV === 'production'); | ||
}; | ||
export var fetchRetry = function fetchRetry(requestFn, opts) { | ||
@@ -2,0 +6,0 @@ if (!requestFn) throw new TypeError("Missing 'requestFn': ".concat(requestFn)); |
{ | ||
"name": "@netology-group/account", | ||
"version": "2.4.0", | ||
"version": "2.5.0", | ||
"description": "account client", | ||
@@ -35,3 +35,3 @@ "keywords": [ | ||
"build/es": "cross-env BABEL_ENV=es babel src --config-file ./.babelrc.json --copy-files -d es", | ||
"build/umd": "cross-env NODE_ENV=production webpack -p", | ||
"build/umd": "cross-env BABEL_ENV=umd NODE_ENV=production webpack -p", | ||
"precoverage": "rm -rf .nyc_output coverage && mkdir -p coverage .nyc_output", | ||
@@ -54,2 +54,3 @@ "coverage": "tap \"test/**/*.test.js\" --nyc-arg=--require=./test/babel-register.js --cov", | ||
"@babel/plugin-proposal-class-properties": "^7.3.0", | ||
"@babel/plugin-transform-block-scoping": "^7.5.5", | ||
"@babel/preset-env": "^7.3.1", | ||
@@ -60,2 +61,5 @@ "@babel/preset-flow": "^7.0.0", | ||
"babel-loader": "^8.0.5", | ||
"babel-plugin-annotate-pure-calls": "^0.4.0", | ||
"browserlist": "^1.0.1", | ||
"caniuse-lite": "^1.0.30000989", | ||
"eslint": "^5.6.1", | ||
@@ -62,0 +66,0 @@ "eslint-config-adequate": "^1.1.4", |
@@ -94,1 +94,21 @@ Account client | ||
``` | ||
## Utilities | ||
### TokenProvider | ||
`TokenProvider` is used to provide an interface to access the valid token on each request. Valid `refresh_token` is needed to initialize `TokenProvider` properly. | ||
```javascript | ||
const { Account, TokenProvider } = Account | ||
const account = new Account(/* proper configuration */) | ||
let provider = new TokenProvider({ refresh_token: '<refresh_token>' }, account) | ||
// or | ||
provider = new TokenProvider({ refresh_token: '<refresh_token>' }) | ||
provider | ||
.iEngine(account) | ||
.initialize() | ||
provider.token().then(access_token => {/* do smth */}) | ||
``` |
Sorry, the diff of this file is not supported yet
55567
16
517
114
24