piral-oauth2
Advanced tools
Comparing version 1.8.0-beta.7653 to 1.8.0-beta.7655
{ | ||
"name": "piral-oauth2", | ||
"version": "1.8.0-beta.7653", | ||
"version": "1.8.0-beta.7655", | ||
"description": "Plugin to integrate OAuth 2.0 authentication in Piral.", | ||
@@ -55,5 +55,5 @@ "keywords": [ | ||
"devDependencies": { | ||
"piral-core": "1.8.0-beta.7653" | ||
"piral-core": "1.8.0-beta.7655" | ||
}, | ||
"gitHead": "bcb81e936bf3e74c0a503382076ef1b8617e263f" | ||
"gitHead": "68e1232fe36c56cf7edaa546389bc635693907bf" | ||
} |
@@ -1,1 +0,1 @@ | ||
var piralOAuth2=(()=>{var I=Object.defineProperty;var Q=t=>I(t,"__esModule",{value:!0});var G=(t,e)=>{Q(t);for(var r in e)I(t,r,{get:e[r],enumerable:!0})};var te={};G(te,{createOAuth2Api:()=>V,createOAuth2BrowserPersistence:()=>K,createOAuth2MemoryPersistence:()=>x,createOAuth2SessionPersistence:()=>Z,setupOAuth2Client:()=>ee});function V(t){return e=>(e.on("before-fetch",t.extendHeaders),{getAccessToken(){return t.token()}})}var k=location.origin;function W(t,e,r,i){return fetch(e,{body:r,method:t,headers:i}).then(n=>n.text().then(s=>({status:n.status,body:s})))}var g={Accept:"application/json, application/x-www-form-urlencoded","Content-Type":"application/x-www-form-urlencoded"},X={invalid_request:["The request is missing a required parameter, includes an","invalid parameter value, includes a parameter more than","once, or is otherwise malformed."].join(" "),invalid_client:["Client authentication failed (e.g., unknown client, no","client authentication included, or unsupported","authentication method)."].join(" "),invalid_grant:["The provided authorization grant (e.g., authorization","code, resource owner credentials) or refresh token is","invalid, expired, revoked, does not match the redirection","URI used in the authorization request, or was issued to","another client."].join(" "),unauthorized_client:["The client is not authorized to request an authorization","code using this method."].join(" "),unsupported_grant_type:["The authorization grant type is not supported by the","authorization server."].join(" "),access_denied:["The resource owner or authorization server denied the request."].join(" "),unsupported_response_type:["The authorization server does not support obtaining","an authorization code using this method."].join(" "),invalid_scope:["The requested scope is invalid, unknown, or malformed."].join(" "),server_error:["The authorization server encountered an unexpected","condition that prevented it from fulfilling the request.","(This error code is needed because a 500 Internal Server","Error HTTP status code cannot be returned to the client","via an HTTP redirect.)"].join(" "),temporarily_unavailable:["The authorization server is currently unable to handle","the request due to a temporary overloading or maintenance","of the server."].join(" ")};function w(t,...e){for(let i=0;i<e.length;i++){var r=e[i];if(t[r]==null)throw new TypeError('Expected "'+r+'" to exist')}}function P(t){var e=X[t.error]||t.error_description||t.error;if(e){let r=new Error(e);return r.body=t,r.code="EAUTH",r}}function O(t){let e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function j(t){return new URLSearchParams(t).toString()}function Y(t){try{return JSON.parse(t)}catch{return O(t)}}function v(t){return Array.isArray(t)?t.join(" "):U(t)}function L(t,e){w(t,"clientId","authorizationUri");let r={client_id:t.clientId,redirect_uri:t.redirectUri,response_type:e,state:t.state};t.scopes!==void 0&&(r.scope=v(t.scopes));let i=t.authorizationUri.includes("?")?"&":"?";return t.authorizationUri+i+j(Object.assign(r,t.query))}function p(t,e){return"Basic "+btoa(U(t)+":"+U(e))}function U(t){return t==null?"":String(t)}function f(t,e){return{url:t.url,method:t.method,body:Object.assign({},t.body,e.body),query:Object.assign({},t.query,e.query),headers:Object.assign({},t.headers,e.headers)}}var S=class{constructor(e,r=W){this.options=e;this.request=r;this.code=new B(this),this.token=new F(this),this.owner=new D(this),this.credentials=new H(this),this.jwt=new J(this)}createToken(e,r,i,n){var s=Object.assign({},n,typeof e=="string"?{access_token:e}:e,typeof r=="string"?{refresh_token:r}:r,typeof i=="string"?{token_type:i}:i);return new N(this,s)}_request(e){let r=e.url,i=j(e.body),n=j(e.query);return n&&(r+=(r.indexOf("?")===-1?"?":"&")+n),this.request(e.method,r,i,e.headers).then(s=>{let o=Y(s.body),a=P(o);if(a)return Promise.reject(a);if(s.status<200||s.status>=399){let d=new Error("HTTP status "+s.status);return d.status=s.status,d.body=s.body,d.code="ESTATUS",Promise.reject(d)}return o})}},N=class{constructor(e,r){this.client=e,this.data=r,this.tokenType=r.token_type&&r.token_type.toLowerCase(),this.accessToken=r.access_token,this.refreshToken=r.refresh_token,this.expiresIn(Number(r.expires_in))}expiresIn(e){if(typeof e=="number")this.expires=new Date,this.expires.setSeconds(this.expires.getSeconds()+e);else if(e instanceof Date)this.expires=new Date(e.getTime());else throw new TypeError("Unknown duration: "+e);return this.expires}sign(e){if(!this.accessToken)throw new Error("Unable to sign without access token");if(e.headers=e.headers||{},this.tokenType==="bearer")e.headers.Authorization="Bearer "+this.accessToken;else{var r=e.url.split("#"),i="access_token="+this.accessToken,n=r[0].replace(/[?&]access_token=[^&#]/,""),s=r[1]?"#"+r[1]:"";e.url=n+(n.indexOf("?")>-1?"&":"?")+i+s,e.headers.Pragma="no-store",e.headers["Cache-Control"]="no-store"}return e}refresh(e){var r=this,i=Object.assign({},this.client.options,e);return this.refreshToken?this.client._request(f({url:i.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:p(i.clientId,i.clientSecret)}),body:{refresh_token:this.refreshToken,grant_type:"refresh_token"}},i)).then(n=>r.client.createToken(void 0,void 0,void 0,Object.assign({},r.data,n))):Promise.reject(new Error("No refresh token"))}expired(){return Date.now()>this.expires.getTime()}},D=class{constructor(e){this.client=e}getToken(e,r,i){var n=this,s=Object.assign({},this.client.options,i);let o={username:e,password:r,grant_type:"password"};return s.scopes!==void 0&&(o.scope=v(s.scopes)),this.client._request(f({url:s.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:p(s.clientId,s.clientSecret)}),body:o},s)).then(a=>n.client.createToken(void 0,void 0,void 0,a))}},F=class{constructor(e){this.client=e}getUri(e){var r=Object.assign({},this.client.options,e);return L(r,"token")}getToken(e,r){var i=Object.assign({},this.client.options,r),n=typeof e=="object"?e:new URL(e,k),s=new URL(i.redirectUri,k);if(typeof n.pathname=="string"&&n.pathname!==s.pathname)return Promise.reject(new TypeError("Redirected path should match configured path, but got: "+n.pathname));if(!n.hash&&!n.search)return Promise.reject(new TypeError("Unable to process uri: "+e));var o=Object.assign({},typeof n.search=="string"?O(n.search.substr(1)):n.search||{},typeof n.hash=="string"?O(n.hash.substr(1)):n.hash||{}),a=P(o);return a?Promise.reject(a):i.state!=null&&o.state!==i.state?Promise.reject(new TypeError("Invalid state: "+o.state)):Promise.resolve(this.client.createToken(void 0,void 0,void 0,o))}},H=class{constructor(e){this.client=e}getToken(e){var r=this,i=Object.assign({},this.client.options,e);w(i,"clientId","clientSecret","accessTokenUri");let n={grant_type:"client_credentials"};return i.scopes!==void 0&&(n.scope=v(i.scopes)),this.client._request(f({url:i.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:p(i.clientId,i.clientSecret)}),body:n},i)).then(s=>r.client.createToken(void 0,void 0,void 0,s))}},B=class{constructor(e){this.client=e}getUri(e){var r=Object.assign({},this.client.options,e);return L(r,"code")}getToken(e,r){var i=this,n=Object.assign({},this.client.options,r);w(n,"clientId","accessTokenUri");var s=typeof e=="object"?e:new URL(e,k);if(typeof n.redirectUri=="string"&&typeof s.pathname=="string"&&s.pathname!==new URL(n.redirectUri,k).pathname)return Promise.reject(new TypeError("Redirected path should match configured path, but got: "+s.pathname));if(!s.search||!s.search.substr(1))return Promise.reject(new TypeError("Unable to process uri: "+e));var o=typeof s.search=="string"?O(s.search.substr(1)):s.search||{},a=P(o);if(a)return Promise.reject(a);if(n.state!=null&&o.state!==n.state)return Promise.reject(new TypeError("Invalid state: "+o.state));if(!o.code)return Promise.reject(new TypeError("Missing code, unable to request token"));let d=Object.assign({},g),y={code:o.code,grant_type:"authorization_code",redirect_uri:n.redirectUri};return n.clientSecret?d.Authorization=p(n.clientId,n.clientSecret):y.client_id=n.clientId,this.client._request(f({url:n.accessTokenUri,method:"POST",headers:d,body:y},n)).then(b=>i.client.createToken(void 0,void 0,void 0,b))}},J=class{constructor(e){this.client=e}getToken(e,r){let i=this,n=Object.assign({},this.client.options,r),s=Object.assign({},g);w(n,"accessTokenUri"),n.clientId&&(s.Authorization=p(n.clientId,n.clientSecret));let o={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:e};return n.scopes!==void 0&&(o.scope=v(n.scopes)),this.client._request(f({url:n.accessTokenUri,method:"POST",headers:s,body:o},n)).then(a=>i.client.createToken(void 0,void 0,void 0,a))}};function x(){return{load(){},save(){}}}function Z(t="$piral_oauth2_info"){return{load(){let e=sessionStorage.getItem(t);if(typeof e=="string")try{return JSON.parse(e)}catch{console.error("Found invalid data in the OAuth 2 session storage key. Skipped.")}},save(e){sessionStorage.setItem(t,JSON.stringify(e))}}}function K(t="$piral_oauth2_info"){return{load(){let e=localStorage.getItem(t);if(typeof e=="string")try{return JSON.parse(e)}catch{console.error("Found invalid data in the OAuth 2 local storage key. Skipped.")}},save(e){localStorage.setItem(t,JSON.stringify(e))}}}var C="oauth2Cb";function ee(t){let{clientId:e,clientSecret:r,authorizationUri:i,accessTokenUri:n,redirectUri:s=`${location.origin}/auth`,scopes:o=[],flow:a,headers:d,query:y,state:b,restrict:$=!1,returnPath:M="/",persist:R=x()}=t,l=new S({clientId:e,clientSecret:r,redirectUri:s,authorizationUri:i,accessTokenUri:n,scopes:o,headers:d,query:y,state:b}),h,m,A,E=c=>{R.save({accessToken:c.accessToken,data:c.data,refreshToken:c.refreshToken}),h=c},z=(c,u)=>c.then(()=>h?h.expired()?u().then(T=>(E(T),h.accessToken)):h.accessToken:Promise.reject("Not logged in. Please call `login()` to retrieve a token.")),q=c=>{let u=R.load();return u?(h=l.createToken(u.accessToken,u.refreshToken,void 0,u.data),Promise.resolve()):c().then(T=>{let _=window.opener;E(T),_&&typeof _[C]=="function"&&(_[C](T),window.close())},()=>{})};if(a==="code"){let c=q(()=>{let u=location.href;return history.replaceState(void 0,void 0,M),l.code.getToken(u)});m=()=>z(c,()=>h.refresh()),A=()=>l.code.getUri()}else{let c=q(()=>l.token.getToken(location.href));m=()=>z(c,()=>new Promise(u=>{window[C]=u,window.open(l.token.getUri())})),A=()=>l.token.getUri()}return{_:l,login(){window.location.href=A()},logout(){h=void 0},extendHeaders(c){$||c.setHeaders(m().then(u=>u&&{Authorization:`Bearer ${u}`},()=>{}))},account(){return!!h},token:m}}return te;})(); | ||
var piralOAuth2=(()=>{var j=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var W=(t,e)=>{for(var n in e)j(t,n,{get:e[n],enumerable:!0})},X=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of G(e))!V.call(t,r)&&r!==n&&j(t,r,{get:()=>e[r],enumerable:!(i=Q(e,r))||i.enumerable});return t};var Y=t=>X(j({},"__esModule",{value:!0}),t);var se={};W(se,{createOAuth2Api:()=>Z,createOAuth2BrowserPersistence:()=>ne,createOAuth2MemoryPersistence:()=>L,createOAuth2SessionPersistence:()=>re,setupOAuth2Client:()=>ie});function Z(t){return e=>(e.on("before-fetch",t.extendHeaders),{getAccessToken(){return t.token()}})}var k=location.origin;function K(t,e,n,i){return fetch(e,{body:n,method:t,headers:i}).then(r=>r.text().then(s=>({status:r.status,body:s})))}var g={Accept:"application/json, application/x-www-form-urlencoded","Content-Type":"application/x-www-form-urlencoded"},ee={invalid_request:["The request is missing a required parameter, includes an","invalid parameter value, includes a parameter more than","once, or is otherwise malformed."].join(" "),invalid_client:["Client authentication failed (e.g., unknown client, no","client authentication included, or unsupported","authentication method)."].join(" "),invalid_grant:["The provided authorization grant (e.g., authorization","code, resource owner credentials) or refresh token is","invalid, expired, revoked, does not match the redirection","URI used in the authorization request, or was issued to","another client."].join(" "),unauthorized_client:["The client is not authorized to request an authorization","code using this method."].join(" "),unsupported_grant_type:["The authorization grant type is not supported by the","authorization server."].join(" "),access_denied:["The resource owner or authorization server denied the request."].join(" "),unsupported_response_type:["The authorization server does not support obtaining","an authorization code using this method."].join(" "),invalid_scope:["The requested scope is invalid, unknown, or malformed."].join(" "),server_error:["The authorization server encountered an unexpected","condition that prevented it from fulfilling the request.","(This error code is needed because a 500 Internal Server","Error HTTP status code cannot be returned to the client","via an HTTP redirect.)"].join(" "),temporarily_unavailable:["The authorization server is currently unable to handle","the request due to a temporary overloading or maintenance","of the server."].join(" ")};function b(t,...e){for(let i=0;i<e.length;i++){var n=e[i];if(t[n]==null)throw new TypeError('Expected "'+n+'" to exist')}}function I(t){var e=ee[t.error]||t.error_description||t.error;if(e){let n=new Error(e);return n.body=t,n.code="EAUTH",n}}function w(t){let e=new URLSearchParams(t);return Object.fromEntries(e.entries())}function U(t){return new URLSearchParams(t).toString()}function te(t){try{return JSON.parse(t)}catch{return w(t)}}function O(t){return Array.isArray(t)?t.join(" "):S(t)}function F(t,e){b(t,"clientId","authorizationUri");let n={client_id:t.clientId,redirect_uri:t.redirectUri,response_type:e,state:t.state};t.scopes!==void 0&&(n.scope=O(t.scopes));let i=t.authorizationUri.includes("?")?"&":"?";return t.authorizationUri+i+U(Object.assign(n,t.query))}function f(t,e){return"Basic "+btoa(S(t)+":"+S(e))}function S(t){return t==null?"":String(t)}function p(t,e){return{url:t.url,method:t.method,body:Object.assign({},t.body,e.body),query:Object.assign({},t.query,e.query),headers:Object.assign({},t.headers,e.headers)}}var v=class{constructor(e,n=K){this.options=e;this.request=n;this.code=new z(this),this.token=new C(this),this.owner=new R(this),this.credentials=new E(this),this.jwt=new q(this)}createToken(e,n,i,r){var s=Object.assign({},r,typeof e=="string"?{access_token:e}:e,typeof n=="string"?{refresh_token:n}:n,typeof i=="string"?{token_type:i}:i);return new x(this,s)}_request(e){let n=e.url,i=U(e.body),r=U(e.query);return r&&(n+=(n.indexOf("?")===-1?"?":"&")+r),this.request(e.method,n,i,e.headers).then(s=>{let o=te(s.body),a=I(o);if(a)return Promise.reject(a);if(s.status<200||s.status>=399){let d=new Error("HTTP status "+s.status);return d.status=s.status,d.body=s.body,d.code="ESTATUS",Promise.reject(d)}return o})}},x=class{constructor(e,n){this.client=e,this.data=n,this.tokenType=n.token_type&&n.token_type.toLowerCase(),this.accessToken=n.access_token,this.refreshToken=n.refresh_token,this.expiresIn(Number(n.expires_in))}expiresIn(e){if(typeof e=="number")this.expires=new Date,this.expires.setSeconds(this.expires.getSeconds()+e);else if(e instanceof Date)this.expires=new Date(e.getTime());else throw new TypeError("Unknown duration: "+e);return this.expires}sign(e){if(!this.accessToken)throw new Error("Unable to sign without access token");if(e.headers=e.headers||{},this.tokenType==="bearer")e.headers.Authorization="Bearer "+this.accessToken;else{var n=e.url.split("#"),i="access_token="+this.accessToken,r=n[0].replace(/[?&]access_token=[^&#]/,""),s=n[1]?"#"+n[1]:"";e.url=r+(r.indexOf("?")>-1?"&":"?")+i+s,e.headers.Pragma="no-store",e.headers["Cache-Control"]="no-store"}return e}refresh(e){var n=this,i=Object.assign({},this.client.options,e);return this.refreshToken?this.client._request(p({url:i.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:f(i.clientId,i.clientSecret)}),body:{refresh_token:this.refreshToken,grant_type:"refresh_token"}},i)).then(r=>n.client.createToken(void 0,void 0,void 0,Object.assign({},n.data,r))):Promise.reject(new Error("No refresh token"))}expired(){return Date.now()>this.expires.getTime()}},R=class{constructor(e){this.client=e}getToken(e,n,i){var r=this,s=Object.assign({},this.client.options,i);let o={username:e,password:n,grant_type:"password"};return s.scopes!==void 0&&(o.scope=O(s.scopes)),this.client._request(p({url:s.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:f(s.clientId,s.clientSecret)}),body:o},s)).then(a=>r.client.createToken(void 0,void 0,void 0,a))}},C=class{constructor(e){this.client=e}getUri(e){var n=Object.assign({},this.client.options,e);return F(n,"token")}getToken(e,n){var i=Object.assign({},this.client.options,n),r=typeof e=="object"?e:new URL(e,k),s=new URL(i.redirectUri,k);if(typeof r.pathname=="string"&&r.pathname!==s.pathname)return Promise.reject(new TypeError("Redirected path should match configured path, but got: "+r.pathname));if(!r.hash&&!r.search)return Promise.reject(new TypeError("Unable to process uri: "+e));var o=Object.assign({},typeof r.search=="string"?w(r.search.substr(1)):r.search||{},typeof r.hash=="string"?w(r.hash.substr(1)):r.hash||{}),a=I(o);return a?Promise.reject(a):i.state!=null&&o.state!==i.state?Promise.reject(new TypeError("Invalid state: "+o.state)):Promise.resolve(this.client.createToken(void 0,void 0,void 0,o))}},E=class{constructor(e){this.client=e}getToken(e){var n=this,i=Object.assign({},this.client.options,e);b(i,"clientId","clientSecret","accessTokenUri");let r={grant_type:"client_credentials"};return i.scopes!==void 0&&(r.scope=O(i.scopes)),this.client._request(p({url:i.accessTokenUri,method:"POST",headers:Object.assign({},g,{Authorization:f(i.clientId,i.clientSecret)}),body:r},i)).then(s=>n.client.createToken(void 0,void 0,void 0,s))}},z=class{constructor(e){this.client=e}getUri(e){var n=Object.assign({},this.client.options,e);return F(n,"code")}getToken(e,n){var i=this,r=Object.assign({},this.client.options,n);b(r,"clientId","accessTokenUri");var s=typeof e=="object"?e:new URL(e,k);if(typeof r.redirectUri=="string"&&typeof s.pathname=="string"&&s.pathname!==new URL(r.redirectUri,k).pathname)return Promise.reject(new TypeError("Redirected path should match configured path, but got: "+s.pathname));if(!s.search||!s.search.substr(1))return Promise.reject(new TypeError("Unable to process uri: "+e));var o=typeof s.search=="string"?w(s.search.substr(1)):s.search||{},a=I(o);if(a)return Promise.reject(a);if(r.state!=null&&o.state!==r.state)return Promise.reject(new TypeError("Invalid state: "+o.state));if(!o.code)return Promise.reject(new TypeError("Missing code, unable to request token"));let d=Object.assign({},g),y={code:o.code,grant_type:"authorization_code",redirect_uri:r.redirectUri};return r.clientSecret?d.Authorization=f(r.clientId,r.clientSecret):y.client_id=r.clientId,this.client._request(p({url:r.accessTokenUri,method:"POST",headers:d,body:y},r)).then(A=>i.client.createToken(void 0,void 0,void 0,A))}},q=class{constructor(e){this.client=e}getToken(e,n){let i=this,r=Object.assign({},this.client.options,n),s=Object.assign({},g);b(r,"accessTokenUri"),r.clientId&&(s.Authorization=f(r.clientId,r.clientSecret));let o={grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:e};return r.scopes!==void 0&&(o.scope=O(r.scopes)),this.client._request(p({url:r.accessTokenUri,method:"POST",headers:s,body:o},r)).then(a=>i.client.createToken(void 0,void 0,void 0,a))}};function L(){return{load(){},save(){}}}function re(t="$piral_oauth2_info"){return{load(){let e=sessionStorage.getItem(t);if(typeof e=="string")try{return JSON.parse(e)}catch{console.error("Found invalid data in the OAuth 2 session storage key. Skipped.")}},save(e){sessionStorage.setItem(t,JSON.stringify(e))}}}function ne(t="$piral_oauth2_info"){return{load(){let e=localStorage.getItem(t);if(typeof e=="string")try{return JSON.parse(e)}catch{console.error("Found invalid data in the OAuth 2 local storage key. Skipped.")}},save(e){localStorage.setItem(t,JSON.stringify(e))}}}var N="oauth2Cb";function ie(t){let{clientId:e,clientSecret:n,authorizationUri:i,accessTokenUri:r,redirectUri:s=`${location.origin}/auth`,scopes:o=[],flow:a,headers:d,query:y,state:A,restrict:$=!1,returnPath:M="/",persist:D=L()}=t,l=new v({clientId:e,clientSecret:n,redirectUri:s,authorizationUri:i,accessTokenUri:r,scopes:o,headers:d,query:y,state:A}),h,m,_,H=c=>{D.save({accessToken:c.accessToken,data:c.data,refreshToken:c.refreshToken}),h=c},B=(c,u)=>c.then(()=>h?h.expired()?u().then(T=>(H(T),h.accessToken)):h.accessToken:Promise.reject("Not logged in. Please call `login()` to retrieve a token.")),J=c=>{let u=D.load();return u?(h=l.createToken(u.accessToken,u.refreshToken,void 0,u.data),Promise.resolve()):c().then(T=>{let P=window.opener;H(T),P&&typeof P[N]=="function"&&(P[N](T),window.close())},()=>{})};if(a==="code"){let c=J(()=>{let u=location.href;return history.replaceState(void 0,void 0,M),l.code.getToken(u)});m=()=>B(c,()=>h.refresh()),_=()=>l.code.getUri()}else{let c=J(()=>l.token.getToken(location.href));m=()=>B(c,()=>new Promise(u=>{window[N]=u,window.open(l.token.getUri())})),_=()=>l.token.getUri()}return{_:l,login(){window.location.href=_()},logout(){h=void 0},extendHeaders(c){$||c.setHeaders(m().then(u=>u&&{Authorization:`Bearer ${u}`},()=>{}))},account(){return!!h},token:m}}return Y(se);})(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
99764
1955