@edirect/oidc-client 3.2.3 → 3.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,11 @@
1
+ import { Client } from 'openid-client';
2
+ import { ErrorHandlerType } from './types/error-handler.type';
3
+ import { Connect } from './types/connect.type';
4
+ export default class OidcConnect {
5
+ client: Client;
6
+ baseUrl: string;
7
+ redirectUri?: string;
8
+ ErrorHandler: ErrorHandlerType;
9
+ constructor();
10
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, responseTypes, grantTypes, timeout, }: Connect): Promise<Client>;
11
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const openid_client_1 = require("openid-client");
16
+ const http_1 = __importDefault(require("http"));
17
+ const https_1 = __importDefault(require("https"));
18
+ const error_handler_1 = __importDefault(require("./utils/error-handler"));
19
+ class OidcConnect {
20
+ constructor() {
21
+ this.ErrorHandler = error_handler_1.default;
22
+ }
23
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, responseTypes, grantTypes, timeout, }) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ this.baseUrl = baseUrl;
26
+ this.redirectUri = redirectUri;
27
+ const oidcConfiguration = {
28
+ client_id: clientId,
29
+ client_secret: clientSecret,
30
+ redirect_uris: [redirectUri],
31
+ response_types: responseTypes,
32
+ grant_types: grantTypes,
33
+ };
34
+ const protocol = (baseUrl.includes('https') && 'https:') || 'http:';
35
+ if (openid_client_1.custom && openid_client_1.custom.setHttpOptionsDefaults) {
36
+ openid_client_1.custom.setHttpOptionsDefaults({
37
+ url: `${baseUrl}/${oidcPath}`,
38
+ timeout: timeout || 60000,
39
+ protocol,
40
+ agent: {
41
+ http: new http_1.default.Agent({ keepAlive: true }),
42
+ https: baseUrl.includes('https')
43
+ ? new https_1.default.Agent({ keepAlive: true })
44
+ : undefined,
45
+ },
46
+ });
47
+ }
48
+ const oidcIssuer = yield openid_client_1.Issuer.discover(`${baseUrl}/${oidcPath}`);
49
+ this.client = new oidcIssuer.Client(oidcConfiguration);
50
+ return this.client;
51
+ });
52
+ }
53
+ }
54
+ exports.default = OidcConnect;
55
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,iDAAuE;AACvE,gDAAwB;AACxB,kDAA0B;AAE1B,0EAAiD;AAIjD,MAAqB,WAAW;IAM9B;QACE,IAAI,CAAC,YAAY,GAAG,uBAAY,CAAC;IACnC,CAAC;IAEK,OAAO,CAAC,EACZ,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,OAAO,GACC;;YACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAE/B,MAAM,iBAAiB,GAAmB;gBACxC,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,YAAY;gBAC3B,aAAa,EAAE,CAAC,WAAqB,CAAC;gBACtC,cAAc,EAAE,aAAa;gBAC7B,WAAW,EAAE,UAAU;aACxB,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,OAAO,CAAC;YAEpE,IAAI,sBAAM,IAAI,sBAAM,CAAC,sBAAsB,EAAE;gBAC3C,sBAAM,CAAC,sBAAsB,CAAC;oBAC5B,GAAG,EAAE,GAAG,OAAO,IAAI,QAAQ,EAAE;oBAC7B,OAAO,EAAE,OAAO,IAAI,KAAK;oBACzB,QAAQ;oBACR,KAAK,EAAE;wBACL,IAAI,EAAE,IAAI,cAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;wBACzC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAC9B,CAAC,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;4BACtC,CAAC,CAAC,SAAS;qBACd;iBACF,CAAC,CAAC;aACJ;YAED,MAAM,UAAU,GAAG,MAAM,sBAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;KAAA;CACF;AAnDD,8BAmDC"}
@@ -0,0 +1,16 @@
1
+ import { Client } from 'openid-client';
2
+ import OidcConnect from '../connect';
3
+ import { Connect } from '../types/connect.type';
4
+ import { GrantTypeErrorHandlerType } from '../types/error-handler.type';
5
+ import { TokenSet } from '../types/token-set.type';
6
+ declare class OidcClient extends OidcConnect {
7
+ errorHandler: GrantTypeErrorHandlerType;
8
+ setToken: (token: TokenSet, revert?: boolean) => TokenSet;
9
+ getToken: (revert?: boolean) => TokenSet | null;
10
+ constructor();
11
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }: Connect): Promise<Client>;
12
+ getAccessToken(data: Record<string, unknown>): Promise<TokenSet | null | void>;
13
+ getRefreshToken(): Promise<void>;
14
+ }
15
+ export declare const oidc: OidcClient;
16
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.oidc = void 0;
16
+ const connect_1 = __importDefault(require("../connect"));
17
+ const token_1 = __importDefault(require("../token"));
18
+ const grantType = 'client_credentials';
19
+ class OidcClient extends connect_1.default {
20
+ constructor() {
21
+ super();
22
+ this.errorHandler = this.ErrorHandler(grantType);
23
+ const { getToken, setToken } = new token_1.default();
24
+ this.getToken = getToken;
25
+ this.setToken = setToken;
26
+ }
27
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }) {
28
+ return super.connect({
29
+ baseUrl,
30
+ oidcPath,
31
+ clientId,
32
+ clientSecret,
33
+ redirectUri,
34
+ responseTypes: ['none'],
35
+ grantTypes: [grantType],
36
+ });
37
+ }
38
+ getAccessToken(data) {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ if (!this.client)
41
+ throw new Error(`[${grantType}] Client not initialized.`);
42
+ if (this.getToken())
43
+ return this.getToken();
44
+ const params = Object.assign({ grant_type: grantType }, data);
45
+ return this.client
46
+ .grant(params)
47
+ .then((tokenSet) => this.setToken(tokenSet))
48
+ .catch(this.errorHandler);
49
+ });
50
+ }
51
+ getRefreshToken() {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ throw new Error(`[${grantType}] This method is not allowed to this grant type.`);
54
+ });
55
+ }
56
+ }
57
+ exports.oidc = new OidcClient();
58
+ //# sourceMappingURL=client_credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client_credentials.js","sourceRoot":"","sources":["../../src/grant-type/client_credentials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yDAAqC;AACrC,qDAA6B;AAK7B,MAAM,SAAS,GAAG,oBAAoB,CAAC;AAEvC,MAAM,UAAW,SAAQ,iBAAW;IAKlC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEjD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,eAAK,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,GACH;QACR,OAAO,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,YAAY;YACZ,WAAW;YACX,aAAa,EAAE,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,CAAC,SAAS,CAAC;SACxB,CAAC,CAAC;IACL,CAAC;IAEK,cAAc,CAClB,IAA6B;;YAE7B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,SAAS,2BAA2B,CAAC,CAAC;YAC5E,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE5C,MAAM,MAAM,mBACV,UAAU,EAAE,SAAS,IAClB,IAAI,CACR,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM;iBACf,KAAK,CAAC,MAAM,CAAC;iBACb,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAA+B,CAAC,CAAC;iBACvE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;KAAA;IAEK,eAAe;;YACnB,MAAM,IAAI,KAAK,CACb,IAAI,SAAS,kDAAkD,CAChE,CAAC;QACJ,CAAC;KAAA;CACF;AAEY,QAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Client } from 'openid-client';
2
+ import { Connect } from '../types/connect.type';
3
+ import { GrantTypeErrorHandlerType } from '../types/error-handler.type';
4
+ import { TokenSet } from '../types/token-set.type';
5
+ import OidcConnect from '../connect';
6
+ declare class OidcClient extends OidcConnect {
7
+ errorHandler: GrantTypeErrorHandlerType;
8
+ constructor();
9
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }: Connect): Promise<Client>;
10
+ getAccessToken(data: Record<string, unknown>): Promise<TokenSet | null | void>;
11
+ getRefreshToken(tokenSet: TokenSet): Promise<TokenSet | null | void>;
12
+ }
13
+ export declare const oidc: OidcClient;
14
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.oidc = void 0;
16
+ const connect_1 = __importDefault(require("../connect"));
17
+ const parse_token_1 = __importDefault(require("../utils/parse-token"));
18
+ const grantType = 'password';
19
+ class OidcClient extends connect_1.default {
20
+ constructor() {
21
+ super();
22
+ this.errorHandler = this.ErrorHandler(grantType);
23
+ }
24
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }) {
25
+ return super.connect({
26
+ baseUrl,
27
+ oidcPath,
28
+ clientId,
29
+ clientSecret,
30
+ redirectUri,
31
+ responseTypes: ['none'],
32
+ grantTypes: [grantType, 'refresh_token'],
33
+ });
34
+ }
35
+ getAccessToken(data) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ if (!this.client)
38
+ throw new Error(`[${grantType}] Client not initialized.`);
39
+ const params = Object.assign({ grant_type: grantType }, data);
40
+ return this.client
41
+ .grant(params)
42
+ .then((tokenSet) => (0, parse_token_1.default)(tokenSet))
43
+ .catch(this.errorHandler);
44
+ });
45
+ }
46
+ getRefreshToken(tokenSet) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ if (!this.client)
49
+ throw new Error(`[${grantType}] Client not initialized.`);
50
+ return this.client
51
+ .refresh(tokenSet.refreshToken)
52
+ .then((tokenSet) => (0, parse_token_1.default)(tokenSet))
53
+ .catch(this.errorHandler);
54
+ });
55
+ }
56
+ }
57
+ exports.oidc = new OidcClient();
58
+ //# sourceMappingURL=password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/grant-type/password.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,yDAAqC;AACrC,uEAA8C;AAE9C,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,MAAM,UAAW,SAAQ,iBAAW;IAGlC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,GACH;QACR,OAAO,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,YAAY;YACZ,WAAW;YACX,aAAa,EAAE,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IAEK,cAAc,CAClB,IAA6B;;YAE7B,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,SAAS,2BAA2B,CAAC,CAAC;YAE5E,MAAM,MAAM,mBACV,UAAU,EAAE,SAAS,IAClB,IAAI,CACR,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM;iBACf,KAAK,CAAC,MAAM,CAAC;iBACb,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,QAA+B,CAAC,CAAC;iBAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;KAAA;IAEK,eAAe,CAAC,QAAkB;;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,IAAI,SAAS,2BAA2B,CAAC,CAAC;YAE5E,OAAO,IAAI,CAAC,MAAM;iBACf,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAC9B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,QAA+B,CAAC,CAAC;iBAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;KAAA;CACF;AAEY,QAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { Client } from 'openid-client';
2
+ import OidcConnect from '../connect';
3
+ import { Connect } from '../types/connect.type';
4
+ import { TokenSet } from '../types/token-set.type';
5
+ import { GrantTypeErrorHandlerType } from '../types/error-handler.type';
6
+ declare class OidcClient extends OidcConnect {
7
+ errorHandler: GrantTypeErrorHandlerType;
8
+ constructor();
9
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }: Connect): Promise<Client>;
10
+ getAccessToken(data: Record<string, unknown>): Promise<TokenSet | null | void>;
11
+ getRefreshToken(tokenSet: TokenSet): Promise<TokenSet | null | void>;
12
+ }
13
+ export declare const oidc: OidcClient;
14
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.oidc = void 0;
16
+ const connect_1 = __importDefault(require("../connect"));
17
+ const parse_token_1 = __importDefault(require("../utils/parse-token"));
18
+ const grantType = 'sso';
19
+ class OidcClient extends connect_1.default {
20
+ constructor() {
21
+ super();
22
+ this.errorHandler = this.ErrorHandler(grantType);
23
+ }
24
+ connect({ baseUrl, oidcPath, clientId, clientSecret, redirectUri, }) {
25
+ return super.connect({
26
+ baseUrl,
27
+ oidcPath,
28
+ clientId,
29
+ clientSecret,
30
+ redirectUri,
31
+ responseTypes: ['none'],
32
+ grantTypes: ['sso', 'refresh_token'],
33
+ });
34
+ }
35
+ getAccessToken(data) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ try {
38
+ const params = Object.assign({ grant_type: 'sso' }, data);
39
+ return this.client
40
+ .grant(params)
41
+ .then((tokenSet) => (0, parse_token_1.default)(tokenSet))
42
+ .catch(this.errorHandler);
43
+ }
44
+ catch (error) {
45
+ return null;
46
+ }
47
+ });
48
+ }
49
+ getRefreshToken(tokenSet) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ try {
52
+ const refreshTokenSet = yield this.client
53
+ .refresh(tokenSet.refreshToken)
54
+ .then((tokenSet) => (0, parse_token_1.default)(tokenSet))
55
+ .catch(this.errorHandler);
56
+ return refreshTokenSet;
57
+ }
58
+ catch (error) {
59
+ return null;
60
+ }
61
+ });
62
+ }
63
+ }
64
+ exports.oidc = new OidcClient();
65
+ //# sourceMappingURL=sso.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.js","sourceRoot":"","sources":["../../src/grant-type/sso.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,yDAAqC;AAIrC,uEAA8C;AAE9C,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB,MAAM,UAAW,SAAQ,iBAAW;IAGlC;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW,GACH;QACR,OAAO,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,YAAY;YACZ,WAAW;YACX,aAAa,EAAE,CAAC,MAAM,CAAC;YACvB,UAAU,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAEK,cAAc,CAClB,IAA6B;;YAE7B,IAAI;gBACF,MAAM,MAAM,mBACV,UAAU,EAAE,KAAK,IACd,IAAI,CACR,CAAC;gBAEF,OAAO,IAAI,CAAC,MAAM;qBACf,KAAK,CAAC,MAAM,CAAC;qBACb,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,QAA+B,CAAC,CAAC;qBAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC;aACb;QACH,CAAC;KAAA;IAEK,eAAe,CAAC,QAAkB;;YACtC,IAAI;gBACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,MAAM;qBACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;qBAC9B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,QAA+B,CAAC,CAAC;qBAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE5B,OAAO,eAAe,CAAC;aACxB;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,IAAI,CAAC;aACb;QACH,CAAC;KAAA;CACF;AAEY,QAAA,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Connect } from './types/connect.type';
2
+ declare const _default: (params: Connect) => Promise<unknown>;
3
+ export default _default;
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const client_credentials_1 = require("./grant-type/client_credentials");
13
+ const password_1 = require("./grant-type/password");
14
+ const sso_1 = require("./grant-type/sso");
15
+ const clients = {
16
+ client_credentials: client_credentials_1.oidc,
17
+ password: password_1.oidc,
18
+ sso: sso_1.oidc,
19
+ };
20
+ exports.default = (params) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const oidc = clients[params.grantType];
22
+ yield oidc.connect({
23
+ baseUrl: params.baseUrl,
24
+ oidcPath: params.oidcPath,
25
+ clientId: params.clientId,
26
+ clientSecret: params.clientSecret,
27
+ });
28
+ return oidc;
29
+ });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,wEAA6E;AAC7E,oDAAyD;AACzD,0CAA+C;AAE/C,MAAM,OAAO,GAAgC;IAC3C,kBAAkB,EAAlB,yBAAkB;IAClB,QAAQ,EAAR,eAAQ;IACR,GAAG,EAAH,UAAG;CACJ,CAAC;AAEF,kBAAe,CAAO,MAAe,EAAoB,EAAE;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAC;IAEjD,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAA,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { TokenSet } from './types/token-set.type';
2
+ export default class Token {
3
+ token: TokenSet;
4
+ setToken(token: TokenSet, revert?: boolean): TokenSet;
5
+ getToken(revert?: boolean): TokenSet | null;
6
+ }
package/dist/token.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const parse_token_1 = __importDefault(require("./utils/parse-token"));
7
+ class Token {
8
+ setToken(token, revert = false) {
9
+ this.token = (0, parse_token_1.default)(token, revert);
10
+ return this.token;
11
+ }
12
+ getToken(revert = false) {
13
+ if (!this.token)
14
+ return null;
15
+ const expiresAt = this.token.expiresAt || this.token.expires_at;
16
+ const now = Math.floor(new Date().getTime() / 1000);
17
+ if (expiresAt - 60 <= now)
18
+ return null;
19
+ return (revert && (0, parse_token_1.default)(this.token, revert)) || this.token;
20
+ }
21
+ }
22
+ exports.default = Token;
23
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../src/token.ts"],"names":[],"mappings":";;;;;AACA,sEAA6C;AAE7C,MAAqB,KAAK;IAGxB,QAAQ,CAAC,KAAe,EAAE,MAAM,GAAG,KAAK;QACtC,IAAI,CAAC,KAAK,GAAG,IAAA,qBAAU,EAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEvC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,KAAK;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;QAChE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAEpD,IAAI,SAAS,GAAG,EAAE,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC;QAEvC,OAAO,CAAC,MAAM,IAAI,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;IAClE,CAAC;CACF;AAnBD,wBAmBC"}
@@ -0,0 +1,12 @@
1
+ import { ResponseType } from 'openid-client';
2
+ export declare type Connect = {
3
+ grantType?: string;
4
+ baseUrl: string;
5
+ oidcPath: string;
6
+ clientId: string;
7
+ clientSecret: string;
8
+ responseTypes?: ResponseType[];
9
+ grantTypes?: string[];
10
+ timeout?: number;
11
+ redirectUri?: string;
12
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=connect.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.type.js","sourceRoot":"","sources":["../../src/types/connect.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare type GrantTypeErrorHandlerType = (error: Error & {
2
+ code?: number;
3
+ url?: string;
4
+ }) => void;
5
+ export declare type ErrorHandlerType = (grantType: string) => GrantTypeErrorHandlerType;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=error-handler.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.type.js","sourceRoot":"","sources":["../../src/types/error-handler.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export declare type TokenSetParsed = {
2
+ accessToken: string;
3
+ expiresAt: number;
4
+ expiresIn: number;
5
+ idToken: string;
6
+ refreshToken: string;
7
+ scope: string;
8
+ sessionState: string;
9
+ tokenType: string;
10
+ };
11
+ export declare type TokenSetSource = {
12
+ access_token: string;
13
+ expires_at: number;
14
+ expires_in: number;
15
+ id_token: string;
16
+ refresh_token: string;
17
+ scope: string;
18
+ session_state: string;
19
+ token_type: string;
20
+ };
21
+ export declare type TokenSet = TokenSetSource & TokenSetParsed;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=token-set.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-set.type.js","sourceRoot":"","sources":["../../src/types/token-set.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ declare const _default: (grantType: string) => (error: Error & {
2
+ code?: number;
3
+ url?: string;
4
+ }) => never;
5
+ export default _default;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = (grantType) => (error) => {
4
+ const { name, code, url, message } = error;
5
+ if (name && code && url) {
6
+ throw new Error(`[${grantType}] Error: ${JSON.stringify({ name, code, url })}`);
7
+ }
8
+ if (message) {
9
+ throw new Error(`[${grantType}] Error: ${message}`);
10
+ }
11
+ throw error;
12
+ };
13
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":";;AAAA,kBAAe,CAAC,SAAiB,EAAE,EAAE,CACnC,CAAC,KAA8C,EAAE,EAAE;IACjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAE3C,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE;QACvB,MAAM,IAAI,KAAK,CACb,IAAI,SAAS,YAAY,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAC/D,CAAC;KACH;IAED,IAAI,OAAO,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,IAAI,SAAS,YAAY,OAAO,EAAE,CAAC,CAAC;KACrD;IAED,MAAM,KAAK,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TokenSet } from '../types/token-set.type';
2
+ declare const _default: (tokenSet: TokenSet, revert?: boolean) => TokenSet;
3
+ export default _default;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tokenMapper = {
4
+ accessToken: 'access_token',
5
+ expiresAt: 'expires_at',
6
+ expiresIn: 'expires_in',
7
+ idToken: 'id_token',
8
+ refreshToken: 'refresh_token',
9
+ scope: 'scope',
10
+ sessionState: 'session_state',
11
+ tokenType: 'token_type',
12
+ };
13
+ exports.default = (tokenSet, revert = false) => {
14
+ const tokenSetParsed = {};
15
+ Object.keys(tokenMapper).forEach((mapperKey) => {
16
+ const key = ((revert && tokenMapper[mapperKey]) ||
17
+ mapperKey);
18
+ const value = (revert && tokenSet[mapperKey]) ||
19
+ tokenSet[tokenMapper[mapperKey]];
20
+ if (typeof value !== 'undefined') {
21
+ tokenSetParsed[key] = value;
22
+ }
23
+ });
24
+ return tokenSetParsed;
25
+ };
26
+ //# sourceMappingURL=parse-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-token.js","sourceRoot":"","sources":["../../src/utils/parse-token.ts"],"names":[],"mappings":";;AAMA,MAAM,WAAW,GAAuD;IACtE,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,eAAe;IAC7B,SAAS,EAAE,YAAY;CACxB,CAAC;AAEF,kBAAe,CAAC,QAAkB,EAAE,MAAM,GAAG,KAAK,EAAY,EAAE;IAC9D,MAAM,cAAc,GAAG,EAAqC,CAAC;IAE7D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,SAAiC,CAAC,CAAC;YACrE,SAAS,CAAyB,CAAC;QACrC,MAAM,KAAK,GACT,CAAC,MAAM,IAAI,QAAQ,CAAC,SAAiC,CAAC,CAAC;YACvD,QAAQ,CAAC,WAAW,CAAC,SAAiC,CAAC,CAAC,CAAC;QAE3D,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SAC7B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,cAA0B,CAAC;AACpC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edirect/oidc-client",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
4
4
  "description": "OpenId Connect Client",
5
5
  "author": "Bolttech <devs@bolttech.io>",
6
6
  "license": "UNLICENSED",