Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@mybiogen/auth-openid

Package Overview
Dependencies
Maintainers
9
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mybiogen/auth-openid - npm Package Compare versions

Comparing version 1.0.2 to 1.1.0

lib/OAuthClient.d.ts

4

lib/index.d.ts

@@ -1,3 +0,5 @@

export { default } from './JanrainJS';
export { default as JanrainJS } from './JanrainJS';
export { default as OktaJS } from './OktaJS';
export { default } from './OAuthClient';
export * from './types';
//# sourceMappingURL=index.d.ts.map

@@ -14,4 +14,8 @@ "use strict";

var JanrainJS_1 = require("./JanrainJS");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return JanrainJS_1.default; } });
Object.defineProperty(exports, "JanrainJS", { enumerable: true, get: function () { return JanrainJS_1.default; } });
var OktaJS_1 = require("./OktaJS");
Object.defineProperty(exports, "OktaJS", { enumerable: true, get: function () { return OktaJS_1.default; } });
var OAuthClient_1 = require("./OAuthClient");
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return OAuthClient_1.default; } });
__exportStar(require("./types"), exports);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXNDO0FBQTdCLG9HQUFBLE9BQU8sT0FBQTtBQUNoQiwwQ0FBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSAnLi9KYW5yYWluSlMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQW1EO0FBQTFDLHNHQUFBLE9BQU8sT0FBYTtBQUM3QixtQ0FBNkM7QUFBcEMsZ0dBQUEsT0FBTyxPQUFVO0FBQzFCLDZDQUF3QztBQUEvQixzR0FBQSxPQUFPLE9BQUE7QUFDaEIsMENBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCBhcyBKYW5yYWluSlMgfSBmcm9tICcuL0phbnJhaW5KUyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9rdGFKUyB9IGZyb20gJy4vT2t0YUpTJztcbmV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL09BdXRoQ2xpZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnOyJdfQ==

@@ -1,31 +0,8 @@

import { JanrainUserInfo, Token, WatchAuthCallback, Init } from './types';
declare class JanrainJS {
clientId: string;
configUrl: string;
redirectURI: string;
authorizationEndpoint?: string;
tokenEndpoint?: string;
userInfoEndpoint?: string;
revocationEndpoint?: string;
token?: Token;
user?: JanrainUserInfo;
storageKey: string;
listeners: Array<WatchAuthCallback>;
refreshTokenInterval?: number;
comesFromLogin: boolean;
import OpenIDClient from './OAuthClient';
import { OAuthUserInfo } from './types';
export declare type JanrainUserInfo = OAuthUserInfo;
export default class JanrainJS extends OpenIDClient<JanrainUserInfo> {
constructor(clientId: string, configUrl: string, redirectURI: string);
init(): Promise<Init | undefined>;
private callListeners;
private keepRefreshingToken;
watchAuth: (cb: WatchAuthCallback) => Promise<void>;
private fetchConfig;
private setConfig;
private getToken;
refreshToken: () => Promise<Init | undefined>;
login: () => void;
getUserInfo: () => Promise<JanrainUserInfo | undefined>;
private revokeToken;
logout: () => Promise<void>;
protected loadUserInfo(userJSON: any): JanrainUserInfo;
}
export default JanrainJS;
//# sourceMappingURL=JanrainJS.d.ts.map

@@ -6,284 +6,18 @@ "use strict";

Object.defineProperty(exports, "__esModule", { value: true });
const query_string_1 = __importDefault(require("query-string"));
const uuid_1 = require("uuid");
const utils_1 = require("./utils");
class JanrainJS {
const OAuthClient_1 = __importDefault(require("./OAuthClient"));
class JanrainJS extends OAuthClient_1.default {
constructor(clientId, configUrl, redirectURI) {
this.storageKey = 'janrain_token';
this.listeners = [];
this.keepRefreshingToken = () => {
if (this.user && this.token && !this.refreshTokenInterval) {
const SAFETY_GAP_REFRESH_TOKEN = 60000;
this.refreshTokenInterval = window.setInterval(async () => {
try {
await this.refreshToken();
}
catch (error) {
clearInterval(this.refreshTokenInterval);
this.logout();
}
}, (this.token.expiresIn * 1000) - SAFETY_GAP_REFRESH_TOKEN);
}
super(clientId, configUrl, redirectURI, 'janrain_token');
}
loadUserInfo(userJSON) {
return {
id: userJSON.sub,
email: userJSON.email,
name: userJSON.given_name,
lastName: userJSON.family_name,
picture: userJSON.picture,
};
this.watchAuth = async (cb) => {
this.listeners.push(cb);
const token = await this.init();
if (token) {
await this.getUserInfo();
}
this.callListeners();
};
this.fetchConfig = async () => {
try {
const response = await fetch(this.configUrl);
return response.json();
}
catch (error) {
return undefined;
}
};
this.setConfig = async () => {
const config = await this.fetchConfig();
if (config) {
this.authorizationEndpoint = config.authorization_endpoint;
this.tokenEndpoint = config.token_endpoint;
this.userInfoEndpoint = config.userinfo_endpoint;
this.revocationEndpoint = config.revocation_endpoint;
}
};
this.getToken = async (code, originalCodeVerifier, currentState) => {
const body = {
grant_type: 'authorization_code',
code,
client_id: encodeURIComponent(this.clientId),
redirect_uri: this.redirectURI,
code_verifier: originalCodeVerifier,
};
const config = {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
}),
body: utils_1.encodeBody(body),
};
if (this.tokenEndpoint) {
try {
const response = await fetch(this.tokenEndpoint, config);
if (response.ok) {
const janrainToken = await response.json();
this.token = {
accessToken: janrainToken.access_token,
refreshToken: janrainToken.refresh_token,
expiresIn: janrainToken.expires_in,
tokenType: janrainToken.token_type,
scope: janrainToken.scope,
idToken: janrainToken.id_token,
};
utils_1.Storage.set(this.storageKey, this.token);
utils_1.Storage.remove(currentState);
window.history.replaceState({}, document.title, window.location.pathname);
return this.token;
}
return undefined;
}
catch (error) {
throw new Error('Error getting token');
}
}
else {
throw new Error('Not initialized. Token endpoint not present');
}
};
this.refreshToken = async () => {
try {
if (this.token && this.tokenEndpoint) {
const body = {
grant_type: 'refresh_token',
refresh_token: this.token.refreshToken,
redirect_uri: this.redirectURI,
client_id: encodeURIComponent(this.clientId),
};
const config = {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
}),
body: utils_1.encodeBody(body),
};
const response = await fetch(this.tokenEndpoint, config);
if (response.ok) {
const janrainToken = await response.json();
this.token = {
accessToken: janrainToken.access_token,
refreshToken: janrainToken.refresh_token,
expiresIn: janrainToken.expires_in,
tokenType: janrainToken.token_type,
scope: janrainToken.scope,
idToken: janrainToken.id_token,
};
utils_1.Storage.set(this.storageKey, this.token);
return this.token
? { accessToken: this.token.accessToken, expiresIn: this.token.expiresIn }
: undefined;
}
throw new Error('Token not refreshed');
}
throw new Error('Cannot refresh token without token or endpoint');
}
catch (error) {
throw error;
}
};
this.login = () => {
const originalCodeVerifier = utils_1.generateCodeVerifier(96);
const codeVerifier = utils_1.generatePkceChallenge(originalCodeVerifier);
const state = uuid_1.v4();
const params = {
client_id: encodeURIComponent(this.clientId),
redirect_uri: this.redirectURI,
scope: 'openid email profile',
response_type: 'code',
response_mode: 'query',
state: encodeURIComponent(state),
code_challenge: encodeURI(codeVerifier),
code_challenge_method: 'S256',
};
utils_1.Storage.set(state, {
codeVerifier,
originalCodeVerifier,
});
const loginQuery = query_string_1.default.stringify(params);
const url = `${this.authorizationEndpoint}?${loginQuery}`;
window.location.replace(url);
};
this.getUserInfo = async () => {
if (this.userInfoEndpoint && this.token) {
const response = await fetch(this.userInfoEndpoint, {
headers: new Headers({
Authorization: `Bearer ${this.token.accessToken}`,
}),
});
const userInfo = await response.json();
this.user = {
id: userInfo.sub,
email: userInfo.email,
name: userInfo.given_name,
lastName: userInfo.family_name,
picture: userInfo.picture,
};
return this.user;
}
return undefined;
};
this.revokeToken = async (tokenKey) => {
try {
if (this.token && this.revocationEndpoint) {
const body = {
token: tokenKey,
client_id: encodeURIComponent(this.clientId),
};
const config = {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: `Bearer ${tokenKey}`,
}),
body: utils_1.encodeBody(body),
};
const response = await fetch(this.revocationEndpoint, config);
if (response.ok) {
return response.ok;
}
throw new Error('Token not revoked');
}
throw new Error('Cannot revoke token without token or endpoint');
}
catch (error) {
throw error;
}
};
this.logout = async () => {
try {
if (this.token) {
const [revokedAccessToken, revokedRefreshToken] = await Promise.all([
this.revokeToken(this.token.accessToken),
this.revokeToken(this.token.refreshToken),
]);
this.comesFromLogin = false;
this.token = undefined;
this.user = undefined;
if (revokedAccessToken && revokedRefreshToken) {
this.callListeners();
return utils_1.Storage.remove(this.storageKey);
}
throw new Error('Token not removed from storage');
}
throw new Error('Cannot logout without token');
}
catch (error) {
throw error;
}
};
if (!clientId) {
throw new Error('clientId is not provided.');
}
this.clientId = clientId;
if (!configUrl) {
throw new Error('configUrl is not provided.');
}
this.configUrl = configUrl;
if (!redirectURI) {
throw new Error('redirectUri is not provided.');
}
this.redirectURI = redirectURI;
this.comesFromLogin = false;
}
async init() {
const [callbackState, storageOauth] = await Promise.all([
utils_1.checkCallback(window.location.href),
utils_1.Storage.get(this.storageKey),
]);
if (!callbackState && !storageOauth) {
this.setConfig();
return undefined;
}
await this.setConfig();
if (callbackState) {
const { code, pkceCodeVerifier, currentState, newUrl, } = callbackState;
this.token = await this.getToken(code, pkceCodeVerifier, currentState);
this.keepRefreshingToken();
window.history.replaceState(window.history.state, document.title, newUrl);
this.comesFromLogin = true;
return this.token
? { accessToken: this.token.accessToken, expiresIn: this.token.expiresIn }
: undefined;
}
if (storageOauth) {
this.token = storageOauth;
try {
await this.refreshToken();
this.keepRefreshingToken();
}
catch (err) {
this.token = undefined;
utils_1.Storage.remove(this.storageKey);
}
return this.token
? { accessToken: this.token.accessToken, expiresIn: this.token.expiresIn }
: undefined;
}
return undefined;
}
callListeners() {
this.listeners.forEach((cb) => {
if (this.token && this.user) {
cb({ ...this.user }, this.comesFromLogin);
}
else {
cb(undefined, this.comesFromLogin);
}
});
}
}
exports.default = JanrainJS;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFucmFpbkpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0phbnJhaW5KUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF1QztBQUN2QywrQkFBb0M7QUFDcEMsbUNBQTBHO0FBUzFHLE1BQU0sU0FBUztJQTJCYixZQUFZLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQjtRQVJwRSxlQUFVLEdBQUcsZUFBZSxDQUFDO1FBRTdCLGNBQVMsR0FBNkIsRUFBRSxDQUFDO1FBMkVqQyx3QkFBbUIsR0FBRyxHQUFTLEVBQUU7WUFDdkMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ3pELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDeEQsSUFBSTt3QkFDRixNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDM0I7b0JBQUMsT0FBTyxLQUFLLEVBQUU7d0JBQ2QsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO3dCQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7cUJBQ2Y7Z0JBQ0gsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsd0JBQXdCLENBQUMsQ0FBQzthQUM5RDtRQUNILENBQUMsQ0FBQztRQUVGLGNBQVMsR0FBRyxLQUFLLEVBQUUsRUFBcUIsRUFBaUIsRUFBRTtZQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFN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TyxJQUFJLENBQUMsS0FBSztnQkFDZixDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUMxRSxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ2Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUMzQixFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsRUFBRSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0EyTkY7QUFFRCxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXVlcnktc3RyaW5nJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgZW5jb2RlQm9keSwgZ2VuZXJhdGVDb2RlVmVyaWZpZXIsIGdlbmVyYXRlUGtjZUNoYWxsZW5nZSwgU3RvcmFnZSwgY2hlY2tDYWxsYmFjayB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgSmFucmFpblVzZXJJbmZvLFxuICBUb2tlbixcbiAgV2F0Y2hBdXRoQ2FsbGJhY2ssXG4gIEluaXQsXG4gIENvbmZpZ0VuZHBvaW50XG59IGZyb20gJy4vdHlwZXMnO1xuXG5jbGFzcyBKYW5yYWluSlMge1xuICBjbGllbnRJZDogc3RyaW5nO1xuXG4gIGNvbmZpZ1VybDogc3RyaW5nO1xuXG4gIHJlZGlyZWN0VVJJOiBzdHJpbmc7XG5cbiAgYXV0aG9yaXphdGlvbkVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIHRva2VuRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdXNlckluZm9FbmRwb2ludD86IHN0cmluZztcblxuICByZXZvY2F0aW9uRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgdG9rZW4/OiBUb2tlbjtcblxuICB1c2VyPzogSmFucmFpblVzZXJJbmZvO1xuXG4gIHN0b3JhZ2VLZXkgPSAnamFucmFpbl90b2tlbic7XG5cbiAgbGlzdGVuZXJzOiBBcnJheTxXYXRjaEF1dGhDYWxsYmFjaz4gPSBbXTtcblxuICByZWZyZXNoVG9rZW5JbnRlcnZhbD86IG51bWJlcjtcblxuICBjb21lc0Zyb21Mb2dpbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihjbGllbnRJZDogc3RyaW5nLCBjb25maWdVcmw6IHN0cmluZywgcmVkaXJlY3RVUkk6IHN0cmluZykge1xuICAgIGlmICghY2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2xpZW50SWQgaXMgbm90IHByb3ZpZGVkLicpXG4gICAgfVxuICAgIHRoaXMuY2xpZW50SWQgPSBjbGllbnRJZDtcblxuICAgIGlmICghY29uZmlnVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvbmZpZ1VybCBpcyBub3QgcHJvdmlkZWQuJylcbiAgICB9XG4gICAgdGhpcy5jb25maWdVcmwgPSBjb25maWdVcmw7XG5cbiAgICBpZiAoIXJlZGlyZWN0VVJJKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlZGlyZWN0VXJpIGlzIG5vdCBwcm92aWRlZC4nKVxuICAgIH1cbiAgICB0aGlzLnJlZGlyZWN0VVJJID0gcmVkaXJlY3RVUkk7XG5cbiAgICB0aGlzLmNvbWVzRnJvbUxvZ2luID0gZmFsc2U7XG4gIH1cblxuICBhc3luYyBpbml0KCk6IFByb21pc2U8SW5pdCB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IFtjYWxsYmFja1N0YXRlLCBzdG9yYWdlT2F1dGhdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgY2hlY2tDYWxsYmFjayh3aW5kb3cubG9jYXRpb24uaHJlZiksXG4gICAgICBTdG9yYWdlLmdldCh0aGlzLnN0b3JhZ2VLZXkpLFxuICAgIF0pO1xuICAgIC8vIFJldHVybiBlYXJseVxuICAgIGlmICghY2FsbGJhY2tTdGF0ZSAmJiAhc3RvcmFnZU9hdXRoKSB7XG4gICAgICB0aGlzLnNldENvbmZpZygpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gV2FpdCB1bnRpbCBjb25maWd1cmF0aW9uIGhhcyBmaW5pc2hlZC5cbiAgICBhd2FpdCB0aGlzLnNldENvbmZpZygpO1xuICAgIGlmIChjYWxsYmFja1N0YXRlKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGNvZGUsIHBrY2VDb2RlVmVyaWZpZXIsIGN1cnJlbnRTdGF0ZSwgbmV3VXJsLFxuICAgICAgfSA9IGNhbGxiYWNrU3RhdGU7XG4gICAgICB0aGlzLnRva2VuID0gYXdhaXQgdGhpcy5nZXRUb2tlbihjb2RlLCBwa2NlQ29kZVZlcmlmaWVyLCBjdXJyZW50U3RhdGUpO1xuICAgICAgdGhpcy5rZWVwUmVmcmVzaGluZ1Rva2VuKCk7XG4gICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIGRvY3VtZW50LnRpdGxlLCBuZXdVcmwpO1xuICAgICAgdGhpcy5jb21lc0Zyb21Mb2dpbiA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy50b2tlblxuICAgICAgICA/IHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHN0b3JhZ2VPYXV0aCkge1xuICAgICAgdGhpcy50b2tlbiA9IHN0b3JhZ2VPYXV0aDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgIHRoaXMua2VlcFJlZnJlc2hpbmdUb2tlbigpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMudG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIFN0b3JhZ2UucmVtb3ZlKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy50b2tlblxuICAgICAgICA/IHsgYWNjZXNzVG9rZW46IHRoaXMudG9rZW4uYWNjZXNzVG9rZW4sIGV4cGlyZXNJbjogdGhpcy50b2tlbi5leHBpcmVzSW4gfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsbExpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChjYikgPT4ge1xuICAgICAgaWYgKHRoaXMudG9rZW4gJiYgdGhpcy51c2VyKSB7XG4gICAgICAgIGNiKHsgLi4udGhpcy51c2VyIH0sIHRoaXMuY29tZXNGcm9tTG9naW4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2IodW5kZWZpbmVkLCB0aGlzLmNvbWVzRnJvbUxvZ2luKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUga2VlcFJlZnJlc2hpbmdUb2tlbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy51c2VyICYmIHRoaXMudG9rZW4gJiYgIXRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IFNBRkVUWV9HQVBfUkVGUkVTSF9UT0tFTiA9IDYwMDAwOyAvLyAxIG1pblxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5JbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucmVmcmVzaFRva2VuSW50ZXJ2YWwpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0sICh0aGlzLnRva2VuLmV4cGlyZXNJbiAqIDEwMDApIC0gU0FGRVRZX0dBUF9SRUZSRVNIX1RPS0VOKTtcbiAgICB9XG4gIH07XG5cbiAgd2F0Y2hBdXRoID0gYXN5bmMgKGNiOiBXYXRjaEF1dGhDYWxsYmFjayk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIHRoaXMubGlzdGVuZXJzLnB1c2goY2IpO1xuICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgaWYgKHRva2VuKSB7XG4gICAgICBhd2FpdCB0aGlzLmdldFVzZXJJbmZvKCk7XG4gICAgfVxuICAgIHRoaXMuY2FsbExpc3RlbmVycygpO1xuICB9O1xuXG4gIHByaXZhdGUgZmV0Y2hDb25maWcgPSBhc3luYyAoKTogUHJvbWlzZTxDb25maWdFbmRwb2ludCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRoaXMuY29uZmlnVXJsKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc2V0Q29uZmlnID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZmV0Y2hDb25maWcoKTtcbiAgICBpZiAoY29uZmlnKSB7XG4gICAgICB0aGlzLmF1dGhvcml6YXRpb25FbmRwb2ludCA9IGNvbmZpZy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgdGhpcy50b2tlbkVuZHBvaW50ID0gY29uZmlnLnRva2VuX2VuZHBvaW50O1xuICAgICAgdGhpcy51c2VySW5mb0VuZHBvaW50ID0gY29uZmlnLnVzZXJpbmZvX2VuZHBvaW50O1xuICAgICAgdGhpcy5yZXZvY2F0aW9uRW5kcG9pbnQgPSBjb25maWcucmV2b2NhdGlvbl9lbmRwb2ludDtcbiAgICB9XG4gIH07XG5cbiAgcHJpdmF0ZSBnZXRUb2tlbiA9IGFzeW5jIChjb2RlOiBzdHJpbmcsIG9yaWdpbmFsQ29kZVZlcmlmaWVyOiBzdHJpbmcsIGN1cnJlbnRTdGF0ZTogc3RyaW5nKTogUHJvbWlzZTxUb2tlbiB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcbiAgICAgIGNvZGUsXG4gICAgICBjbGllbnRfaWQ6IGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLmNsaWVudElkKSxcbiAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5yZWRpcmVjdFVSSSxcbiAgICAgIGNvZGVfdmVyaWZpZXI6IG9yaWdpbmFsQ29kZVZlcmlmaWVyLFxuICAgIH07XG4gICAgY29uc3QgY29uZmlnID0ge1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyh7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyxcbiAgICAgIH0pLFxuICAgICAgYm9keTogZW5jb2RlQm9keShib2R5KSxcbiAgICB9O1xuICAgIGlmICh0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgICBjb25zdCBqYW5yYWluVG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiBqYW5yYWluVG9rZW4uYWNjZXNzX3Rva2VuLFxuICAgICAgICAgICAgcmVmcmVzaFRva2VuOiBqYW5yYWluVG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgICAgICAgIGV4cGlyZXNJbjogamFucmFpblRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgICAgICB0b2tlblR5cGU6IGphbnJhaW5Ub2tlbi50b2tlbl90eXBlLFxuICAgICAgICAgICAgc2NvcGU6IGphbnJhaW5Ub2tlbi5zY29wZSxcbiAgICAgICAgICAgIGlkVG9rZW46IGphbnJhaW5Ub2tlbi5pZF90b2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIFN0b3JhZ2Uuc2V0KHRoaXMuc3RvcmFnZUtleSwgdGhpcy50b2tlbik7XG4gICAgICAgICAgLy8gY2xlYW4gdXAgbG9jYWwgc3RvcmFnZSBmcm9tIFBLQ0UgZGV0YWlsc1xuICAgICAgICAgIFN0b3JhZ2UucmVtb3ZlKGN1cnJlbnRTdGF0ZSk7XG4gICAgICAgICAgLy8gY2xlYW4gdXAgcXVlcnkgcGFyYW1zIGZyb20gSmFucmFpbiByZWRpcmVjdGlvblxuICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgZG9jdW1lbnQudGl0bGUsIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9rZW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZ2V0dGluZyB0b2tlbicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbml0aWFsaXplZC4gVG9rZW4gZW5kcG9pbnQgbm90IHByZXNlbnQnKTtcbiAgICB9XG4gIH07XG5cbiAgcmVmcmVzaFRva2VuID0gYXN5bmMgKCk6IFByb21pc2U8SW5pdCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy50b2tlbiAmJiB0aGlzLnRva2VuRW5kcG9pbnQpIHtcbiAgICAgICAgY29uc3QgYm9keSA9IHtcbiAgICAgICAgICBncmFudF90eXBlOiAncmVmcmVzaF90b2tlbicsXG4gICAgICAgICAgcmVmcmVzaF90b2tlbjogdGhpcy50b2tlbi5yZWZyZXNoVG9rZW4sXG4gICAgICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgICAgIGNsaWVudF9pZDogZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuY2xpZW50SWQpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGJvZHk6IGVuY29kZUJvZHkoYm9keSksXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy50b2tlbkVuZHBvaW50LCBjb25maWcpO1xuICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgICBjb25zdCBqYW5yYWluVG9rZW4gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICAgICAgdGhpcy50b2tlbiA9IHtcbiAgICAgICAgICAgIGFjY2Vzc1Rva2VuOiBqYW5yYWluVG9rZW4uYWNjZXNzX3Rva2VuLFxuICAgICAgICAgICAgcmVmcmVzaFRva2VuOiBqYW5yYWluVG9rZW4ucmVmcmVzaF90b2tlbixcbiAgICAgICAgICAgIGV4cGlyZXNJbjogamFucmFpblRva2VuLmV4cGlyZXNfaW4sXG4gICAgICAgICAgICB0b2tlblR5cGU6IGphbnJhaW5Ub2tlbi50b2tlbl90eXBlLFxuICAgICAgICAgICAgc2NvcGU6IGphbnJhaW5Ub2tlbi5zY29wZSxcbiAgICAgICAgICAgIGlkVG9rZW46IGphbnJhaW5Ub2tlbi5pZF90b2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIFN0b3JhZ2Uuc2V0KHRoaXMuc3RvcmFnZUtleSwgdGhpcy50b2tlbik7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5cbiAgICAgICAgICAgID8geyBhY2Nlc3NUb2tlbjogdGhpcy50b2tlbi5hY2Nlc3NUb2tlbiwgZXhwaXJlc0luOiB0aGlzLnRva2VuLmV4cGlyZXNJbiB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rva2VuIG5vdCByZWZyZXNoZWQnKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJlZnJlc2ggdG9rZW4gd2l0aG91dCB0b2tlbiBvciBlbmRwb2ludCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG5cbiAgbG9naW4gPSAoKTogdm9pZCA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxDb2RlVmVyaWZpZXIgPSBnZW5lcmF0ZUNvZGVWZXJpZmllcig5Nik7XG4gICAgY29uc3QgY29kZVZlcmlmaWVyID0gZ2VuZXJhdGVQa2NlQ2hhbGxlbmdlKG9yaWdpbmFsQ29kZVZlcmlmaWVyKTtcbiAgICBjb25zdCBzdGF0ZSA9IHV1aWR2NCgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGNsaWVudF9pZDogZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuY2xpZW50SWQpLFxuICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLnJlZGlyZWN0VVJJLFxuICAgICAgc2NvcGU6ICdvcGVuaWQgZW1haWwgcHJvZmlsZScsXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXG4gICAgICByZXNwb25zZV9tb2RlOiAncXVlcnknLFxuICAgICAgc3RhdGU6IGVuY29kZVVSSUNvbXBvbmVudChzdGF0ZSksXG4gICAgICBjb2RlX2NoYWxsZW5nZTogZW5jb2RlVVJJKGNvZGVWZXJpZmllciksXG4gICAgICBjb2RlX2NoYWxsZW5nZV9tZXRob2Q6ICdTMjU2JyxcbiAgICB9O1xuICAgIFN0b3JhZ2Uuc2V0KHN0YXRlLCB7XG4gICAgICBjb2RlVmVyaWZpZXIsXG4gICAgICBvcmlnaW5hbENvZGVWZXJpZmllcixcbiAgICB9KTtcbiAgICBjb25zdCBsb2dpblF1ZXJ5ID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5hdXRob3JpemF0aW9uRW5kcG9pbnR9PyR7bG9naW5RdWVyeX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gIH07XG5cbiAgZ2V0VXNlckluZm8gPSBhc3luYyAoKTogUHJvbWlzZTxKYW5yYWluVXNlckluZm8gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICBpZiAodGhpcy51c2VySW5mb0VuZHBvaW50ICYmIHRoaXMudG9rZW4pIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy51c2VySW5mb0VuZHBvaW50LCB7XG4gICAgICAgIGhlYWRlcnM6IG5ldyBIZWFkZXJzKHtcbiAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dGhpcy50b2tlbi5hY2Nlc3NUb2tlbn1gLFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgdXNlckluZm8gPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgICB0aGlzLnVzZXIgPSB7XG4gICAgICAgIGlkOiB1c2VySW5mby5zdWIsXG4gICAgICAgIGVtYWlsOiB1c2VySW5mby5lbWFpbCxcbiAgICAgICAgbmFtZTogdXNlckluZm8uZ2l2ZW5fbmFtZSxcbiAgICAgICAgbGFzdE5hbWU6IHVzZXJJbmZvLmZhbWlseV9uYW1lLFxuICAgICAgICBwaWN0dXJlOiB1c2VySW5mby5waWN0dXJlLFxuICAgICAgfTtcbiAgICAgIHJldHVybiB0aGlzLnVzZXI7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgcHJpdmF0ZSByZXZva2VUb2tlbiA9IGFzeW5jICh0b2tlbktleTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnRva2VuICYmIHRoaXMucmV2b2NhdGlvbkVuZHBvaW50KSB7XG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICAgICAgdG9rZW46IHRva2VuS2V5LFxuICAgICAgICAgIGNsaWVudF9pZDogZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuY2xpZW50SWQpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczogbmV3IEhlYWRlcnMoe1xuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnLFxuICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VuS2V5fWAsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYm9keTogZW5jb2RlQm9keShib2R5KSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh0aGlzLnJldm9jYXRpb25FbmRwb2ludCwgY29uZmlnKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm9rO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVG9rZW4gbm90IHJldm9rZWQnKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHJldm9rZSB0b2tlbiB3aXRob3V0IHRva2VuIG9yIGVuZHBvaW50Jyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBsb2dvdXQgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnRva2VuKSB7XG4gICAgICAgIGNvbnN0IFtyZXZva2VkQWNjZXNzVG9rZW4sIHJldm9rZWRSZWZyZXNoVG9rZW5dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgICAgIHRoaXMucmV2b2tlVG9rZW4odGhpcy50b2tlbi5hY2Nlc3NUb2tlbiksXG4gICAgICAgICAgdGhpcy5yZXZva2VUb2tlbih0aGlzLnRva2VuLnJlZnJlc2hUb2tlbiksXG4gICAgICAgIF0pO1xuICAgICAgICB0aGlzLmNvbWVzRnJvbUxvZ2luID0gZmFsc2U7XG4gICAgICAgIHRoaXMudG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudXNlciA9IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHJldm9rZWRBY2Nlc3NUb2tlbiAmJiByZXZva2VkUmVmcmVzaFRva2VuKSB7XG4gICAgICAgICAgdGhpcy5jYWxsTGlzdGVuZXJzKCk7XG4gICAgICAgICAgcmV0dXJuIFN0b3JhZ2UucmVtb3ZlKHRoaXMuc3RvcmFnZUtleSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUb2tlbiBub3QgcmVtb3ZlZCBmcm9tIHN0b3JhZ2UnKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGxvZ291dCB3aXRob3V0IHRva2VuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSmFucmFpbkpTO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSmFucmFpbkpTLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0phbnJhaW5KUy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF5QztBQUt6QyxNQUFxQixTQUFVLFNBQVEscUJBQTZCO0lBQ2xFLFlBQVksUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFdBQW1CO1FBQ2xFLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR1MsWUFBWSxDQUFDLFFBQWE7UUFDbEMsT0FBTztZQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRztZQUNoQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7WUFDckIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQ3pCLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVztZQUM5QixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87U0FDMUIsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWZELDRCQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE9wZW5JRENsaWVudCBmcm9tICcuL09BdXRoQ2xpZW50JztcbmltcG9ydCB7IE9BdXRoVXNlckluZm8gfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgSmFucmFpblVzZXJJbmZvID0gT0F1dGhVc2VySW5mb1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBKYW5yYWluSlMgZXh0ZW5kcyBPcGVuSURDbGllbnQ8SmFucmFpblVzZXJJbmZvPiB7XG4gIGNvbnN0cnVjdG9yKGNsaWVudElkOiBzdHJpbmcsIGNvbmZpZ1VybDogc3RyaW5nLCByZWRpcmVjdFVSSTogc3RyaW5nKSB7XG4gICAgc3VwZXIoY2xpZW50SWQsIGNvbmZpZ1VybCwgcmVkaXJlY3RVUkksICdqYW5yYWluX3Rva2VuJyk7XG4gIH1cblxuICAvLyBodHRwczovL2lkZW50aXR5ZG9jcy5ha2FtYWkuY29tL2hvbWUvamFucmFpbi1lbnRpdHktYXBpXG4gIHByb3RlY3RlZCBsb2FkVXNlckluZm8odXNlckpTT046IGFueSk6IEphbnJhaW5Vc2VySW5mbyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB1c2VySlNPTi5zdWIsXG4gICAgICBlbWFpbDogdXNlckpTT04uZW1haWwsXG4gICAgICBuYW1lOiB1c2VySlNPTi5naXZlbl9uYW1lLFxuICAgICAgbGFzdE5hbWU6IHVzZXJKU09OLmZhbWlseV9uYW1lLFxuICAgICAgcGljdHVyZTogdXNlckpTT04ucGljdHVyZSxcbiAgICB9O1xuICB9XG59XG4iXX0=

@@ -9,3 +9,3 @@ export declare type Token = {

};
export declare type JanrainUserInfo = {
export declare type OAuthUserInfo = {
readonly email: string;

@@ -17,3 +17,3 @@ readonly name: string;

};
export declare type WatchAuthCallback = (user: JanrainUserInfo | undefined, comesFromLogin: boolean) => void;
export declare type WatchAuthCallback = (user: OAuthUserInfo | undefined, comesFromLogin: boolean) => void;
export declare type Init = {

@@ -20,0 +20,0 @@ accessToken: string;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9pZGVudGl0eWRvY3MuYWthbWFpLmNvbS9ob21lL2F1dGhvcml6YXRpb24tY29kZS1wa2NlLWZvci1tb2JpbGUtYXBwc1xuZXhwb3J0IHR5cGUgVG9rZW4gPSB7XG4gIC8vIFRva2VuIHVzZWQgZm9yIGNhbGxzLCBzaG9ydCBleHBpcmF0aW9uXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIC8vIFRva2VuIHVzZWQgdG8gcmV0cmlldmUgYSBuZXcgYWNjZXNzVG9rZW4sIGxvbmcgZXhwaXJhdGlvblxuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICAvLyBPSURDIHNjb3BlcyB0aGF0IHRoZSB0b2tlbiBoYXMgYWNjZXNzIHRvIHJldHJpZXZlXG4gIHNjb3BlOiBzdHJpbmc7XG4gIC8vIElkZW50aXR5IHRva2VuXG4gIGlkVG9rZW46IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgSmFucmFpblVzZXJJbmZvID0ge1xuICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhc3ROYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBpY3R1cmU6IHN0cmluZztcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFdhdGNoQXV0aENhbGxiYWNrID0gKHVzZXI6IEphbnJhaW5Vc2VySW5mbyB8IHVuZGVmaW5lZCwgY29tZXNGcm9tTG9naW46IGJvb2xlYW4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIEluaXQgPSB7XG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIGV4cGlyZXNJbjogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQ29uZmlnRW5kcG9pbnQgPSB7XG4gIGF1dGhvcml6YXRpb25fZW5kcG9pbnQ6IHN0cmluZztcbiAgdG9rZW5fZW5kcG9pbnQ6IHN0cmluZztcbiAgdXNlcmluZm9fZW5kcG9pbnQ6IHN0cmluZztcbiAgcmV2b2NhdGlvbl9lbmRwb2ludDogc3RyaW5nO1xufTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9pZGVudGl0eWRvY3MuYWthbWFpLmNvbS9ob21lL2F1dGhvcml6YXRpb24tY29kZS1wa2NlLWZvci1tb2JpbGUtYXBwc1xuZXhwb3J0IHR5cGUgVG9rZW4gPSB7XG4gIC8vIFRva2VuIHVzZWQgZm9yIGNhbGxzLCBzaG9ydCBleHBpcmF0aW9uXG4gIGFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIC8vIFRva2VuIHVzZWQgdG8gcmV0cmlldmUgYSBuZXcgYWNjZXNzVG9rZW4sIGxvbmcgZXhwaXJhdGlvblxuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG4gIHRva2VuVHlwZTogc3RyaW5nO1xuICAvLyBPSURDIHNjb3BlcyB0aGF0IHRoZSB0b2tlbiBoYXMgYWNjZXNzIHRvIHJldHJpZXZlXG4gIHNjb3BlOiBzdHJpbmc7XG4gIC8vIElkZW50aXR5IHRva2VuXG4gIGlkVG9rZW46IHN0cmluZ1xufTtcblxuZXhwb3J0IHR5cGUgT0F1dGhVc2VySW5mbyA9IHtcbiAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBsYXN0TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwaWN0dXJlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBXYXRjaEF1dGhDYWxsYmFjayA9ICh1c2VyOiBPQXV0aFVzZXJJbmZvIHwgdW5kZWZpbmVkLCBjb21lc0Zyb21Mb2dpbjogYm9vbGVhbikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgSW5pdCA9IHtcbiAgYWNjZXNzVG9rZW46IHN0cmluZztcbiAgZXhwaXJlc0luOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBDb25maWdFbmRwb2ludCA9IHtcbiAgYXV0aG9yaXphdGlvbl9lbmRwb2ludDogc3RyaW5nO1xuICB0b2tlbl9lbmRwb2ludDogc3RyaW5nO1xuICB1c2VyaW5mb19lbmRwb2ludDogc3RyaW5nO1xuICByZXZvY2F0aW9uX2VuZHBvaW50OiBzdHJpbmc7XG59OyJdfQ==
{
"name": "@mybiogen/auth-openid",
"version": "1.0.2",
"version": "1.1.0",
"description": "Authorization for OpenID",

@@ -35,3 +35,3 @@ "license": "MIT",

},
"gitHead": "0134124240b8735dda29196b6d57a4c4db921f6c"
"gitHead": "399982b3b95d12078b00f64ebe45f4419108aa8c"
}

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc