@dangl/angular-dangl-identity-client 6.2.0 → 6.2.1-beta0010
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.
- package/README.md +25 -0
- package/api-client.d.ts +178 -178
- package/dangl-identity.module.d.ts +6 -7
- package/{esm2020 → esm2022}/api-client.mjs +551 -551
- package/{esm2020 → esm2022}/dangl-angular-dangl-identity-client.mjs +4 -4
- package/esm2022/dangl-identity.module.mjs +30 -0
- package/{esm2020 → esm2022}/interceptors/dangl-identity-request-validator.mjs +1 -1
- package/{esm2020 → esm2022}/interceptors/jwt-interceptor.service.mjs +47 -47
- package/esm2022/messengers/authentication.messenger.mjs +170 -0
- package/{esm2020 → esm2022}/models/jwt-storage.mjs +1 -1
- package/{esm2020 → esm2022}/models/user-info.mjs +1 -1
- package/{esm2020 → esm2022}/public_api.mjs +11 -11
- package/{esm2020 → esm2022}/services/authentication.service.mjs +39 -39
- package/{esm2020 → esm2022}/services/jwt-token.service.mjs +101 -101
- package/{fesm2020 → fesm2022}/dangl-angular-dangl-identity-client.mjs +905 -873
- package/fesm2022/dangl-angular-dangl-identity-client.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/interceptors/dangl-identity-request-validator.d.ts +4 -4
- package/interceptors/jwt-interceptor.service.d.ts +16 -16
- package/messengers/authentication.messenger.d.ts +28 -26
- package/models/jwt-storage.d.ts +5 -5
- package/models/user-info.d.ts +11 -11
- package/package.json +7 -13
- package/public_api.d.ts +8 -8
- package/services/authentication.service.d.ts +14 -14
- package/services/jwt-token.service.d.ts +28 -28
- package/esm2020/dangl-identity.module.mjs +0 -29
- package/esm2020/messengers/authentication.messenger.mjs +0 -146
- package/fesm2015/dangl-angular-dangl-identity-client.mjs +0 -896
- package/fesm2015/dangl-angular-dangl-identity-client.mjs.map +0 -1
- package/fesm2020/dangl-angular-dangl-identity-client.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangl-angular-dangl-identity-client.mjs","sources":["../../../projects/angular-dangl-identity-client/src/api-client.ts","../../../projects/angular-dangl-identity-client/src/services/jwt-token.service.ts","../../../projects/angular-dangl-identity-client/src/interceptors/jwt-interceptor.service.ts","../../../projects/angular-dangl-identity-client/src/dangl-identity.module.ts","../../../projects/angular-dangl-identity-client/src/services/authentication.service.ts","../../../projects/angular-dangl-identity-client/src/messengers/authentication.messenger.ts","../../../projects/angular-dangl-identity-client/src/public_api.ts","../../../projects/angular-dangl-identity-client/src/dangl-angular-dangl-identity-client.ts"],"sourcesContent":["//----------------------\r\n// <auto-generated>\r\n// Generated using the NSwag toolchain v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)\r\n// </auto-generated>\r\n//----------------------\r\n\r\n/* tslint:disable */\r\n/* eslint-disable */\r\n// ReSharper disable InconsistentNaming\r\n\r\nimport { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';\r\nimport { Observable, throwError as _observableThrow, of as _observableOf } from 'rxjs';\r\nimport { Injectable, Inject, Optional, InjectionToken } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\n\r\nexport const DANGL_IDENTITY_CLIENT_API_BASE_URL = new InjectionToken<string>('DANGL_IDENTITY_CLIENT_API_BASE_URL');\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DanglIdentityClient {\r\n private http: HttpClient;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(DANGL_IDENTITY_CLIENT_API_BASE_URL) baseUrl?: string) {\r\n this.http = http;\r\n this.baseUrl = baseUrl ?? \"\";\r\n }\r\n\r\n loginWithCookie(model: LoginPost, redirectUrl: string | null | undefined): Observable<void> {\r\n let url_ = this.baseUrl + \"/identity/login?\";\r\n if (redirectUrl !== undefined && redirectUrl !== null)\r\n url_ += \"redirectUrl=\" + encodeURIComponent(\"\" + redirectUrl) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(model);\r\n\r\n let options_ : any = {\r\n body: content_,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n };\r\n\r\n return this.http.request(\"post\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processLoginWithCookie(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processLoginWithCookie(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<void>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<void>;\r\n }));\r\n }\r\n\r\n protected processLoginWithCookie(response: HttpResponseBase): Observable<void> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf<void>(null as any);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<void>(null as any);\r\n }\r\n\r\n signOutWithSignInManager(): Observable<void> {\r\n let url_ = this.baseUrl + \"/identity/login\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ : any = {\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n })\r\n };\r\n\r\n return this.http.request(\"delete\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processSignOutWithSignInManager(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processSignOutWithSignInManager(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<void>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<void>;\r\n }));\r\n }\r\n\r\n protected processSignOutWithSignInManager(response: HttpResponseBase): Observable<void> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf<void>(null as any);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<void>(null as any);\r\n }\r\n\r\n loginAndReturnToken(model: TokenLoginPost): Observable<TokenResponseGet> {\r\n let url_ = this.baseUrl + \"/identity/token-login\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(model);\r\n\r\n let options_ : any = {\r\n body: content_,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n })\r\n };\r\n\r\n return this.http.request(\"post\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processLoginAndReturnToken(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processLoginAndReturnToken(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<TokenResponseGet>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<TokenResponseGet>;\r\n }));\r\n }\r\n\r\n protected processLoginAndReturnToken(response: HttpResponseBase): Observable<TokenResponseGet> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as TokenResponseGet;\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as TokenResponseGet;\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<TokenResponseGet>(null as any);\r\n }\r\n\r\n refreshToken(model: TokenRefreshPost): Observable<TokenResponseGet> {\r\n let url_ = this.baseUrl + \"/identity/token-refresh\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(model);\r\n\r\n let options_ : any = {\r\n body: content_,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n })\r\n };\r\n\r\n return this.http.request(\"post\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processRefreshToken(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processRefreshToken(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<TokenResponseGet>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<TokenResponseGet>;\r\n }));\r\n }\r\n\r\n protected processRefreshToken(response: HttpResponseBase): Observable<TokenResponseGet> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as TokenResponseGet;\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as TokenResponseGet;\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n }));\r\n } else if (status === 401) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<TokenResponseGet>(null as any);\r\n }\r\n\r\n register(registerModel: RegisterPost): Observable<void> {\r\n let url_ = this.baseUrl + \"/identity/register\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(registerModel);\r\n\r\n let options_ : any = {\r\n body: content_,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n };\r\n\r\n return this.http.request(\"post\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processRegister(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processRegister(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<void>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<void>;\r\n }));\r\n }\r\n\r\n protected processRegister(response: HttpResponseBase): Observable<void> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf<void>(null as any);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApiError;\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<void>(null as any);\r\n }\r\n\r\n requestPasswordReset(forgotPasswordModel: ForgotPasswordPost): Observable<void> {\r\n let url_ = this.baseUrl + \"/identity/password-forgotten\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(forgotPasswordModel);\r\n\r\n let options_ : any = {\r\n body: content_,\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Content-Type\": \"application/json\",\r\n })\r\n };\r\n\r\n return this.http.request(\"post\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processRequestPasswordReset(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processRequestPasswordReset(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<void>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<void>;\r\n }));\r\n }\r\n\r\n protected processRequestPasswordReset(response: HttpResponseBase): Observable<void> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return _observableOf<void>(null as any);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApiError;\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<void>(null as any);\r\n }\r\n\r\n getUserInfo(): Observable<UserInfoGet> {\r\n let url_ = this.baseUrl + \"/identity/user-info\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ : any = {\r\n observe: \"response\",\r\n responseType: \"blob\",\r\n headers: new HttpHeaders({\r\n \"Accept\": \"application/json\"\r\n })\r\n };\r\n\r\n return this.http.request(\"get\", url_, options_).pipe(_observableMergeMap((response_ : any) => {\r\n return this.processGetUserInfo(response_);\r\n })).pipe(_observableCatch((response_: any) => {\r\n if (response_ instanceof HttpResponseBase) {\r\n try {\r\n return this.processGetUserInfo(response_ as any);\r\n } catch (e) {\r\n return _observableThrow(e) as any as Observable<UserInfoGet>;\r\n }\r\n } else\r\n return _observableThrow(response_) as any as Observable<UserInfoGet>;\r\n }));\r\n }\r\n\r\n protected processGetUserInfo(response: HttpResponseBase): Observable<UserInfoGet> {\r\n const status = response.status;\r\n const responseBlob =\r\n response instanceof HttpResponse ? response.body :\r\n (response as any).error instanceof Blob ? (response as any).error : undefined;\r\n\r\n let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }}\r\n if (status === 200) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result200: any = null;\r\n result200 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as UserInfoGet;\r\n return _observableOf(result200);\r\n }));\r\n } else if (status === 400) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n let result400: any = null;\r\n result400 = _responseText === \"\" ? null : JSON.parse(_responseText, this.jsonParseReviver) as ApiError;\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n }));\r\n } else if (status !== 200 && status !== 204) {\r\n return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }));\r\n }\r\n return _observableOf<UserInfoGet>(null as any);\r\n }\r\n}\r\n\r\nexport interface LoginPost {\r\n identifier: string;\r\n password: string;\r\n staySignedIn: boolean;\r\n}\r\n\r\nexport interface TokenResponseGet {\r\n accessToken?: string | null;\r\n error?: string | null;\r\n errorDescription?: string | null;\r\n expiresIn: number;\r\n httpErrorReason?: string | null;\r\n httpStatusCode: HttpStatusCode;\r\n identityToken?: string | null;\r\n isError: boolean;\r\n refreshToken?: string | null;\r\n tokenType?: string | null;\r\n errorType: ResponseErrorType;\r\n}\r\n\r\nexport enum HttpStatusCode {\r\n Continue = \"Continue\",\r\n SwitchingProtocols = \"SwitchingProtocols\",\r\n Processing = \"Processing\",\r\n EarlyHints = \"EarlyHints\",\r\n OK = \"OK\",\r\n Created = \"Created\",\r\n Accepted = \"Accepted\",\r\n NonAuthoritativeInformation = \"NonAuthoritativeInformation\",\r\n NoContent = \"NoContent\",\r\n ResetContent = \"ResetContent\",\r\n PartialContent = \"PartialContent\",\r\n MultiStatus = \"MultiStatus\",\r\n AlreadyReported = \"AlreadyReported\",\r\n IMUsed = \"IMUsed\",\r\n MultipleChoices = \"MultipleChoices\",\r\n Ambiguous = \"MultipleChoices\",\r\n MovedPermanently = \"MovedPermanently\",\r\n Moved = \"MovedPermanently\",\r\n Found = \"Found\",\r\n Redirect = \"Found\",\r\n SeeOther = \"SeeOther\",\r\n RedirectMethod = \"SeeOther\",\r\n NotModified = \"NotModified\",\r\n UseProxy = \"UseProxy\",\r\n Unused = \"Unused\",\r\n TemporaryRedirect = \"TemporaryRedirect\",\r\n RedirectKeepVerb = \"TemporaryRedirect\",\r\n PermanentRedirect = \"PermanentRedirect\",\r\n BadRequest = \"BadRequest\",\r\n Unauthorized = \"Unauthorized\",\r\n PaymentRequired = \"PaymentRequired\",\r\n Forbidden = \"Forbidden\",\r\n NotFound = \"NotFound\",\r\n MethodNotAllowed = \"MethodNotAllowed\",\r\n NotAcceptable = \"NotAcceptable\",\r\n ProxyAuthenticationRequired = \"ProxyAuthenticationRequired\",\r\n RequestTimeout = \"RequestTimeout\",\r\n Conflict = \"Conflict\",\r\n Gone = \"Gone\",\r\n LengthRequired = \"LengthRequired\",\r\n PreconditionFailed = \"PreconditionFailed\",\r\n RequestEntityTooLarge = \"RequestEntityTooLarge\",\r\n RequestUriTooLong = \"RequestUriTooLong\",\r\n UnsupportedMediaType = \"UnsupportedMediaType\",\r\n RequestedRangeNotSatisfiable = \"RequestedRangeNotSatisfiable\",\r\n ExpectationFailed = \"ExpectationFailed\",\r\n MisdirectedRequest = \"MisdirectedRequest\",\r\n UnprocessableEntity = \"UnprocessableEntity\",\r\n UnprocessableContent = \"UnprocessableEntity\",\r\n Locked = \"Locked\",\r\n FailedDependency = \"FailedDependency\",\r\n UpgradeRequired = \"UpgradeRequired\",\r\n PreconditionRequired = \"PreconditionRequired\",\r\n TooManyRequests = \"TooManyRequests\",\r\n RequestHeaderFieldsTooLarge = \"RequestHeaderFieldsTooLarge\",\r\n UnavailableForLegalReasons = \"UnavailableForLegalReasons\",\r\n InternalServerError = \"InternalServerError\",\r\n NotImplemented = \"NotImplemented\",\r\n BadGateway = \"BadGateway\",\r\n ServiceUnavailable = \"ServiceUnavailable\",\r\n GatewayTimeout = \"GatewayTimeout\",\r\n HttpVersionNotSupported = \"HttpVersionNotSupported\",\r\n VariantAlsoNegotiates = \"VariantAlsoNegotiates\",\r\n InsufficientStorage = \"InsufficientStorage\",\r\n LoopDetected = \"LoopDetected\",\r\n NotExtended = \"NotExtended\",\r\n NetworkAuthenticationRequired = \"NetworkAuthenticationRequired\",\r\n}\r\n\r\n/** Various reasons for a protocol endpoint error */\r\nexport enum ResponseErrorType {\r\n None = \"None\",\r\n Protocol = \"Protocol\",\r\n Http = \"Http\",\r\n Exception = \"Exception\",\r\n PolicyViolation = \"PolicyViolation\",\r\n}\r\n\r\nexport interface TokenLoginPost {\r\n identifier: string;\r\n password: string;\r\n}\r\n\r\nexport interface TokenRefreshPost {\r\n refreshToken: string;\r\n}\r\n\r\n/** Data transfer class to convey api errors */\r\nexport interface ApiError {\r\n /** This dictionary contains a set of all errors and their messages */\r\n errors?: { [key: string]: string[]; } | null;\r\n}\r\n\r\nexport interface RegisterPost {\r\n username: string;\r\n email: string;\r\n password: string;\r\n preferredLanguages?: string[] | null;\r\n serviceLoginRedirectUri?: string | null;\r\n}\r\n\r\nexport interface ForgotPasswordPost {\r\n identifier: string;\r\n preferredLanguages?: string[] | null;\r\n serviceLoginRedirectUri?: string | null;\r\n}\r\n\r\nexport interface UserInfoGet {\r\n userIsAuthenticated: boolean;\r\n clientIsAuthenticated: boolean;\r\n currentUserId?: string | null;\r\n currentUserIdenticonId?: string | null;\r\n currentUserName?: string | null;\r\n currentUserEmail?: string | null;\r\n currentClientId?: string | null;\r\n userClaims?: ClaimGet[] | null;\r\n clientClaims?: ClaimGet[] | null;\r\n}\r\n\r\nexport interface ClaimGet {\r\n issuer?: string | null;\r\n type?: string | null;\r\n value?: string | null;\r\n}\r\n\r\nexport class SwaggerException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isSwaggerException = true;\r\n\r\n static isSwaggerException(obj: any): obj is SwaggerException {\r\n return obj.isSwaggerException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable<any> {\r\n if (result !== null && result !== undefined)\r\n return _observableThrow(result);\r\n else\r\n return _observableThrow(new SwaggerException(message, status, response, headers, null));\r\n}\r\n\r\nfunction blobToText(blob: any): Observable<string> {\r\n return new Observable<string>((observer: any) => {\r\n if (!blob) {\r\n observer.next(\"\");\r\n observer.complete();\r\n } else {\r\n let reader = new FileReader();\r\n reader.onload = event => {\r\n observer.next((event.target as any).result);\r\n observer.complete();\r\n };\r\n reader.readAsText(blob);\r\n }\r\n });\r\n}","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { DanglIdentityClient, TokenResponseGet } from '../api-client';\r\nimport { JwtStorage } from '../models/jwt-storage';\r\nimport { Subject, Observable, of, ReplaySubject } from 'rxjs';\r\nimport { map, catchError, tap, first } from 'rxjs/operators';\r\nimport { AuthenticationMessenger } from '../messengers/authentication.messenger';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JwtTokenService implements OnDestroy {\r\n private readonly storage_identifier = 'dangl_identity_integration_jwt_token';\r\n private isRefreshing = false;\r\n private refreshTokenSource = new Subject<JwtStorage>();\r\n private tokenStoredSource = new ReplaySubject<JwtStorage>(1);\r\n tokenStored = this.tokenStoredSource.asObservable();\r\n private tokenRefreshStartedSource = new Subject();\r\n tokenRefreshStarted = this.tokenRefreshStartedSource.asObservable();\r\n private tokenRefreshFinishedSource = new Subject<boolean>();\r\n tokenRefreshFinished = this.tokenRefreshFinishedSource.asObservable();\r\n\r\n constructor(private danglIdentityClient: DanglIdentityClient) {}\r\n\r\n ngOnDestroy(): void {\r\n this.tokenRefreshStartedSource.complete();\r\n this.tokenRefreshFinishedSource.complete();\r\n this.tokenStoredSource.complete();\r\n this.refreshTokenSource.complete();\r\n }\r\n\r\n deleteToken() {\r\n localStorage.removeItem(this.storage_identifier);\r\n this.tokenStoredSource.next(null);\r\n }\r\n\r\n storeCustomToken(tokenToStore: JwtStorage) {\r\n localStorage.setItem(this.storage_identifier, JSON.stringify(tokenToStore));\r\n this.tokenStoredSource.next(tokenToStore);\r\n }\r\n\r\n storeToken(token: TokenResponseGet) {\r\n const tokenToStore = this.transformTokenResponse(token);\r\n localStorage.setItem(this.storage_identifier, JSON.stringify(tokenToStore));\r\n this.tokenStoredSource.next(tokenToStore);\r\n }\r\n\r\n getTokenFromStorage(): JwtStorage {\r\n const storedString = localStorage.getItem(this.storage_identifier);\r\n if (storedString) {\r\n const storedToken = <JwtStorage>JSON.parse(storedString);\r\n return storedToken;\r\n }\r\n return null;\r\n }\r\n\r\n refreshToken(): Observable<JwtStorage> {\r\n if (this.isRefreshing) {\r\n return this.refreshTokenSource.pipe(first());\r\n }\r\n this.isRefreshing = true;\r\n this.tokenRefreshStartedSource.next();\r\n const refreshToken = this.getTokenFromStorage().refreshToken;\r\n\r\n if (!refreshToken) {\r\n this.isRefreshing = false;\r\n return of<JwtStorage>(null);\r\n }\r\n\r\n this.danglIdentityClient\r\n .refreshToken({\r\n refreshToken: refreshToken,\r\n })\r\n .pipe(\r\n tap((r) => this.storeToken(r)),\r\n map((r) => this.transformTokenResponse(r))\r\n )\r\n .subscribe(\r\n (refreshTokenResponse) => {\r\n this.isRefreshing = false;\r\n this.tokenRefreshFinishedSource.next(true);\r\n this.refreshTokenSource.next(refreshTokenResponse);\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.tokenRefreshFinishedSource.next(false);\r\n this.refreshTokenSource.next(null);\r\n console.error(\r\n 'Internal error while refreshing Dangl.Identity token',\r\n error\r\n );\r\n }\r\n );\r\n\r\n return this.refreshTokenSource.pipe(first());\r\n }\r\n\r\n getToken(): Observable<JwtStorage> {\r\n const token = this.getTokenFromStorage();\r\n if (!token) {\r\n return of<JwtStorage>(null);\r\n }\r\n const isValidToken = token.expiresAt > new Date().getTime() / 1000;\r\n if (isValidToken) {\r\n return of(token);\r\n }\r\n return this.refreshToken();\r\n }\r\n\r\n private transformTokenResponse(token: TokenResponseGet): JwtStorage {\r\n return {\r\n accessToken: token.accessToken,\r\n refreshToken: token.refreshToken,\r\n expiresAt: new Date().getTime() / 1000 + token.expiresIn,\r\n };\r\n }\r\n}\r\n","import {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from '@angular/common/http';\r\n\r\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\r\nimport { JwtTokenService } from '../services/jwt-token.service';\r\nimport { Observable } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\nimport { IDanglIdentityRequestValidator } from './dangl-identity-request-validator';\r\n\r\nexport const DANGL_IDENTITY_REQUEST_VALIDATOR =\r\n new InjectionToken<IDanglIdentityRequestValidator>(\r\n 'Validator to decide whether to include JWT tokens in requests'\r\n );\r\n@Injectable()\r\nexport class JwtInterceptorService implements HttpInterceptor {\r\n constructor(\r\n public jwtTokenService: JwtTokenService,\r\n @Optional()\r\n @Inject(DANGL_IDENTITY_REQUEST_VALIDATOR)\r\n private requestValidator: IDanglIdentityRequestValidator\r\n ) {}\r\n intercept(\r\n request: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n if (request.url.startsWith('/identity')) {\r\n // Requests to the authentication endpoint should not be intercepted\r\n return next.handle(request.clone());\r\n }\r\n\r\n if (\r\n this.requestValidator &&\r\n !this.requestValidator.validateRequest(request)\r\n ) {\r\n // In case a request validator is provided but doesn't return true for the\r\n // current request, we're not appending a token\r\n return next.handle(request);\r\n }\r\n\r\n return this.jwtTokenService\r\n .getToken()\r\n .pipe(\r\n mergeMap((f) =>\r\n next.handle(this.getHttpRequestWithToken(request, f && f.accessToken))\r\n )\r\n );\r\n }\r\n\r\n private getHttpRequestWithToken(\r\n request: HttpRequest<any>,\r\n token?: string\r\n ): HttpRequest<any> {\r\n if (token) {\r\n return request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return request.clone();\r\n }\r\n}\r\n","import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\n\r\nimport { JwtInterceptorService } from './interceptors/jwt-interceptor.service';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n providers: [\r\n provideHttpClient(withInterceptorsFromDi()),\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: JwtInterceptorService,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DanglIdentityModule {}\r\n","import { DanglIdentityClient, TokenResponseGet } from '../api-client';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtTokenService } from './jwt-token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationService {\r\n constructor(\r\n private danglIdentityClient: DanglIdentityClient,\r\n private jwtTokenService: JwtTokenService\r\n ) {}\r\n\r\n loginWithToken(identifier: string, password: string): Observable<boolean> {\r\n return this.danglIdentityClient\r\n .loginAndReturnToken({\r\n identifier: identifier,\r\n password: password,\r\n })\r\n .pipe(\r\n map((r) => this.storeJwtTokenIfValid(r)),\r\n catchError((e) => of(false))\r\n );\r\n }\r\n\r\n private storeJwtTokenIfValid(token: TokenResponseGet): boolean {\r\n if (!token.accessToken || !token.refreshToken || !token.expiresIn) {\r\n return false;\r\n }\r\n this.jwtTokenService.storeToken(token);\r\n return true;\r\n }\r\n\r\n logout() {\r\n this.jwtTokenService.deleteToken();\r\n }\r\n}\r\n","import { inject, Injectable, OnDestroy, OnInit } from '@angular/core';\r\nimport { ReplaySubject, Subject, Subscription, timer } from 'rxjs';\r\n\r\nimport { DanglIdentityClient } from '../api-client';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { JwtStorage } from '../models/jwt-storage';\r\nimport { JwtTokenService } from '../services/jwt-token.service';\r\nimport { UserInfo } from '../models/user-info';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthenticationMessenger implements OnDestroy, OnInit {\r\n private jwtHelperService = new JwtHelperService();\r\n private lastBroadcastAccessToken: string;\r\n private $destroyed = new Subject();\r\n private expirationSubscription?: Subscription;\r\n\r\n readonly isAuthenticated = new ReplaySubject<boolean>(1);\r\n readonly username = new ReplaySubject<string>(1);\r\n readonly email = new ReplaySubject<string>(1);\r\n readonly identiconId = new ReplaySubject<string>(1);\r\n readonly userInfo = new ReplaySubject<UserInfo>(1);\r\n readonly tokenRefreshStarted = new Subject();\r\n readonly tokenRefreshFinished = new Subject<boolean>();\r\n private jwtTokenService: JwtTokenService | undefined;\r\n private danglIdentityClient: DanglIdentityClient | undefined;\r\n constructor() {\r\n this.jwtTokenService = inject(JwtTokenService);\r\n this.danglIdentityClient = inject(DanglIdentityClient);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.jwtTokenService.tokenRefreshStarted\r\n .pipe(takeUntil(this.$destroyed))\r\n .subscribe(() => this.tokenRefreshStarted.next());\r\n\r\n this.jwtTokenService.tokenRefreshFinished\r\n .pipe(takeUntil(this.$destroyed))\r\n .subscribe((successfulRefresh) =>\r\n this.tokenRefreshFinished.next(successfulRefresh)\r\n );\r\n\r\n this.jwtTokenService.tokenStored\r\n .pipe(takeUntil(this.$destroyed))\r\n .subscribe((jwtToken) => this.refreshAuthenticationStatus(jwtToken));\r\n\r\n this.jwtTokenService\r\n .getToken()\r\n .subscribe((token) => this.refreshAuthenticationStatus(token));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.isAuthenticated.complete();\r\n this.username.complete();\r\n this.email.complete();\r\n this.identiconId.complete();\r\n this.userInfo.complete();\r\n this.tokenRefreshStarted.complete();\r\n this.tokenRefreshFinished.complete();\r\n this.$destroyed.next();\r\n this.$destroyed.complete();\r\n this.clearLogoutTimer();\r\n }\r\n\r\n refreshUserInfoFromServer(): void {\r\n this.danglIdentityClient.getUserInfo().subscribe({\r\n next: (serverUserInfo) => {\r\n if (serverUserInfo.userIsAuthenticated) {\r\n const userInfo: UserInfo = {\r\n deserializedToken: null,\r\n email: serverUserInfo.currentUserEmail,\r\n id: serverUserInfo.currentUserId,\r\n identiconId: serverUserInfo.currentUserIdenticonId,\r\n roles: [],\r\n claims: {},\r\n username: serverUserInfo.currentUserName,\r\n };\r\n\r\n serverUserInfo.userClaims.forEach((claim) => {\r\n if (claim.type === 'role') {\r\n userInfo.roles.push(claim.value);\r\n } else if (userInfo.claims[claim.type] === undefined) {\r\n userInfo.claims[claim.type] = [claim.value];\r\n } else {\r\n userInfo.claims[claim.type].push(claim.value);\r\n }\r\n });\r\n this.isAuthenticated.next(true);\r\n this.username.next(serverUserInfo.currentUserName);\r\n this.email.next(serverUserInfo.currentUserEmail);\r\n this.identiconId.next(serverUserInfo.currentUserIdenticonId);\r\n this.userInfo.next(userInfo);\r\n } else {\r\n this.isAuthenticated.next(false);\r\n this.username.next(null);\r\n this.email.next(null);\r\n this.identiconId.next(null);\r\n this.userInfo.next(null);\r\n }\r\n },\r\n });\r\n }\r\n\r\n private refreshAuthenticationStatus(jwtToken?: JwtStorage) {\r\n if (jwtToken) {\r\n const isValidToken = jwtToken.expiresAt > new Date().getTime() / 1000;\r\n if (this.lastBroadcastAccessToken === jwtToken.accessToken) {\r\n return;\r\n }\r\n this.lastBroadcastAccessToken = jwtToken.accessToken;\r\n if (isValidToken) {\r\n this.isAuthenticated.next(true);\r\n this.startTokenExpirationWatcher(jwtToken);\r\n const decodedToken = this.jwtHelperService.decodeToken(\r\n jwtToken.accessToken\r\n );\r\n this.username.next(decodedToken['name']);\r\n this.email.next(decodedToken['email']);\r\n this.identiconId.next(decodedToken['identicon_id']);\r\n\r\n const tokenClaims: { [claim: string]: string[] } = {};\r\n for (const tokenProp in decodedToken) {\r\n if (decodedToken.hasOwnProperty(tokenProp)) {\r\n const property = decodedToken[tokenProp];\r\n if (typeof property === 'string') {\r\n if (tokenClaims[tokenProp] === undefined) {\r\n tokenClaims[tokenProp] = [];\r\n }\r\n\r\n tokenClaims[tokenProp].push(property);\r\n }\r\n }\r\n }\r\n\r\n this.userInfo.next({\r\n id: decodedToken['sub'],\r\n claims: tokenClaims,\r\n deserializedToken: decodedToken,\r\n email: decodedToken['email'],\r\n identiconId: decodedToken['identicon_id'],\r\n username: decodedToken['name'],\r\n roles: decodedToken['role'],\r\n });\r\n } else {\r\n this.isAuthenticated.next(false);\r\n this.jwtTokenService.refreshToken().subscribe(() => {});\r\n }\r\n } else {\r\n if (this.lastBroadcastAccessToken === null) {\r\n return;\r\n }\r\n this.lastBroadcastAccessToken = null;\r\n this.isAuthenticated.next(false);\r\n this.username.next(null);\r\n this.email.next(null);\r\n this.identiconId.next(null);\r\n this.userInfo.next(null);\r\n }\r\n }\r\n\r\n private startTokenExpirationWatcher(jwtToken?: JwtStorage): void {\r\n const expirationTime = jwtToken.expiresAt * 1000;\r\n const currentTime = Date.now();\r\n const timeUntilExpiration = expirationTime - currentTime;\r\n\r\n this.clearLogoutTimer();\r\n\r\n if (timeUntilExpiration > 0) {\r\n this.expirationSubscription = timer(timeUntilExpiration).subscribe(() => {\r\n this.isAuthenticated.next(false);\r\n });\r\n } else {\r\n this.isAuthenticated.next(false);\r\n }\r\n }\r\n\r\n private clearLogoutTimer(): void {\r\n if (this.expirationSubscription) {\r\n this.expirationSubscription.unsubscribe();\r\n this.expirationSubscription = undefined;\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of angular-dangl-identity-client\r\n */\r\n\r\nexport * from \"./dangl-identity.module\";\r\nexport * from \"./api-client\";\r\nexport * from \"./interceptors/jwt-interceptor.service\";\r\nexport * from \"./interceptors/dangl-identity-request-validator\";\r\nexport * from \"./models/jwt-storage\";\r\nexport * from \"./services/authentication.service\";\r\nexport * from \"./services/jwt-token.service\";\r\nexport * from \"./messengers/authentication.messenger\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_observableMergeMap","_observableCatch","_observableThrow","_observableOf","i1.DanglIdentityClient","i2.JwtTokenService"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
/// <amd-module name="@dangl/angular-dangl-identity-client" />
|
|
5
|
-
export * from './public_api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
/// <amd-module name="@dangl/angular-dangl-identity-client" />
|
|
5
|
+
export * from './public_api';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HttpRequest } from "@angular/common/http";
|
|
2
|
-
export interface IDanglIdentityRequestValidator {
|
|
3
|
-
validateRequest(httpRequest: HttpRequest<any>): boolean;
|
|
4
|
-
}
|
|
1
|
+
import { HttpRequest } from "@angular/common/http";
|
|
2
|
+
export interface IDanglIdentityRequestValidator {
|
|
3
|
+
validateRequest(httpRequest: HttpRequest<any>): boolean;
|
|
4
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { InjectionToken } from '@angular/core';
|
|
3
|
-
import { JwtTokenService } from '../services/jwt-token.service';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
|
-
import { IDanglIdentityRequestValidator } from './dangl-identity-request-validator';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare const DANGL_IDENTITY_REQUEST_VALIDATOR: InjectionToken<IDanglIdentityRequestValidator>;
|
|
8
|
-
export declare class JwtInterceptorService implements HttpInterceptor {
|
|
9
|
-
jwtTokenService: JwtTokenService;
|
|
10
|
-
private requestValidator;
|
|
11
|
-
constructor(jwtTokenService: JwtTokenService, requestValidator: IDanglIdentityRequestValidator);
|
|
12
|
-
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
13
|
-
private getHttpRequestWithToken;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<JwtInterceptorService, [null, { optional: true; }]>;
|
|
15
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<JwtInterceptorService>;
|
|
16
|
-
}
|
|
1
|
+
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
import { JwtTokenService } from '../services/jwt-token.service';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import { IDanglIdentityRequestValidator } from './dangl-identity-request-validator';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare const DANGL_IDENTITY_REQUEST_VALIDATOR: InjectionToken<IDanglIdentityRequestValidator>;
|
|
8
|
+
export declare class JwtInterceptorService implements HttpInterceptor {
|
|
9
|
+
jwtTokenService: JwtTokenService;
|
|
10
|
+
private requestValidator;
|
|
11
|
+
constructor(jwtTokenService: JwtTokenService, requestValidator: IDanglIdentityRequestValidator);
|
|
12
|
+
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>;
|
|
13
|
+
private getHttpRequestWithToken;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JwtInterceptorService, [null, { optional: true; }]>;
|
|
15
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<JwtInterceptorService>;
|
|
16
|
+
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { ReplaySubject, Subject } from 'rxjs';
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
private
|
|
9
|
-
private
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
16
|
-
readonly
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
ngOnDestroy(): void;
|
|
22
|
-
refreshUserInfoFromServer(): void;
|
|
23
|
-
private refreshAuthenticationStatus;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { ReplaySubject, Subject } from 'rxjs';
|
|
3
|
+
import { UserInfo } from '../models/user-info';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AuthenticationMessenger implements OnDestroy, OnInit {
|
|
6
|
+
private jwtHelperService;
|
|
7
|
+
private lastBroadcastAccessToken;
|
|
8
|
+
private $destroyed;
|
|
9
|
+
private expirationSubscription?;
|
|
10
|
+
readonly isAuthenticated: ReplaySubject<boolean>;
|
|
11
|
+
readonly username: ReplaySubject<string>;
|
|
12
|
+
readonly email: ReplaySubject<string>;
|
|
13
|
+
readonly identiconId: ReplaySubject<string>;
|
|
14
|
+
readonly userInfo: ReplaySubject<UserInfo>;
|
|
15
|
+
readonly tokenRefreshStarted: Subject<unknown>;
|
|
16
|
+
readonly tokenRefreshFinished: Subject<boolean>;
|
|
17
|
+
private jwtTokenService;
|
|
18
|
+
private danglIdentityClient;
|
|
19
|
+
constructor();
|
|
20
|
+
ngOnInit(): void;
|
|
21
|
+
ngOnDestroy(): void;
|
|
22
|
+
refreshUserInfoFromServer(): void;
|
|
23
|
+
private refreshAuthenticationStatus;
|
|
24
|
+
private startTokenExpirationWatcher;
|
|
25
|
+
private clearLogoutTimer;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationMessenger, never>;
|
|
27
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationMessenger>;
|
|
28
|
+
}
|
package/models/jwt-storage.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface JwtStorage {
|
|
2
|
-
accessToken: string;
|
|
3
|
-
refreshToken?: string;
|
|
4
|
-
expiresAt: number;
|
|
5
|
-
}
|
|
1
|
+
export interface JwtStorage {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
refreshToken?: string;
|
|
4
|
+
expiresAt: number;
|
|
5
|
+
}
|
package/models/user-info.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export interface UserInfo {
|
|
2
|
-
id: string;
|
|
3
|
-
username: string;
|
|
4
|
-
email: string;
|
|
5
|
-
identiconId: string;
|
|
6
|
-
roles: string[];
|
|
7
|
-
claims: {
|
|
8
|
-
[claim: string]: string[];
|
|
9
|
-
};
|
|
10
|
-
deserializedToken: any;
|
|
11
|
-
}
|
|
1
|
+
export interface UserInfo {
|
|
2
|
+
id: string;
|
|
3
|
+
username: string;
|
|
4
|
+
email: string;
|
|
5
|
+
identiconId: string;
|
|
6
|
+
roles: string[];
|
|
7
|
+
claims: {
|
|
8
|
+
[claim: string]: string[];
|
|
9
|
+
};
|
|
10
|
+
deserializedToken: any;
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangl/angular-dangl-identity-client",
|
|
3
|
-
"version": "6.2.
|
|
3
|
+
"version": "6.2.1-beta0010",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": ">=
|
|
6
|
-
"@angular/core": ">=
|
|
5
|
+
"@angular/common": ">=17.0.0",
|
|
6
|
+
"@angular/core": ">=17.0.0",
|
|
7
7
|
"@auth0/angular-jwt": "^5.0.2"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.0.0"
|
|
11
11
|
},
|
|
12
|
-
"module": "
|
|
13
|
-
"es2020": "fesm2020/dangl-angular-dangl-identity-client.mjs",
|
|
14
|
-
"esm2020": "esm2020/dangl-angular-dangl-identity-client.mjs",
|
|
15
|
-
"fesm2020": "fesm2020/dangl-angular-dangl-identity-client.mjs",
|
|
16
|
-
"fesm2015": "fesm2015/dangl-angular-dangl-identity-client.mjs",
|
|
12
|
+
"module": "fesm2022/dangl-angular-dangl-identity-client.mjs",
|
|
17
13
|
"typings": "index.d.ts",
|
|
18
14
|
"exports": {
|
|
19
15
|
"./package.json": {
|
|
@@ -21,11 +17,9 @@
|
|
|
21
17
|
},
|
|
22
18
|
".": {
|
|
23
19
|
"types": "./index.d.ts",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"node": "./fesm2015/dangl-angular-dangl-identity-client.mjs",
|
|
28
|
-
"default": "./fesm2020/dangl-angular-dangl-identity-client.mjs"
|
|
20
|
+
"esm2022": "./esm2022/dangl-angular-dangl-identity-client.mjs",
|
|
21
|
+
"esm": "./esm2022/dangl-angular-dangl-identity-client.mjs",
|
|
22
|
+
"default": "./fesm2022/dangl-angular-dangl-identity-client.mjs"
|
|
29
23
|
}
|
|
30
24
|
},
|
|
31
25
|
"sideEffects": false
|
package/public_api.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from "./dangl-identity.module";
|
|
2
|
-
export * from "./api-client";
|
|
3
|
-
export * from "./interceptors/jwt-interceptor.service";
|
|
4
|
-
export * from "./interceptors/dangl-identity-request-validator";
|
|
5
|
-
export * from "./models/jwt-storage";
|
|
6
|
-
export * from "./services/authentication.service";
|
|
7
|
-
export * from "./services/jwt-token.service";
|
|
8
|
-
export * from "./messengers/authentication.messenger";
|
|
1
|
+
export * from "./dangl-identity.module";
|
|
2
|
+
export * from "./api-client";
|
|
3
|
+
export * from "./interceptors/jwt-interceptor.service";
|
|
4
|
+
export * from "./interceptors/dangl-identity-request-validator";
|
|
5
|
+
export * from "./models/jwt-storage";
|
|
6
|
+
export * from "./services/authentication.service";
|
|
7
|
+
export * from "./services/jwt-token.service";
|
|
8
|
+
export * from "./messengers/authentication.messenger";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { DanglIdentityClient } from '../api-client';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { JwtTokenService } from './jwt-token.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class AuthenticationService {
|
|
6
|
-
private danglIdentityClient;
|
|
7
|
-
private jwtTokenService;
|
|
8
|
-
constructor(danglIdentityClient: DanglIdentityClient, jwtTokenService: JwtTokenService);
|
|
9
|
-
loginWithToken(identifier: string, password: string): Observable<boolean>;
|
|
10
|
-
private storeJwtTokenIfValid;
|
|
11
|
-
logout(): void;
|
|
12
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationService, never>;
|
|
13
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationService>;
|
|
14
|
-
}
|
|
1
|
+
import { DanglIdentityClient } from '../api-client';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { JwtTokenService } from './jwt-token.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AuthenticationService {
|
|
6
|
+
private danglIdentityClient;
|
|
7
|
+
private jwtTokenService;
|
|
8
|
+
constructor(danglIdentityClient: DanglIdentityClient, jwtTokenService: JwtTokenService);
|
|
9
|
+
loginWithToken(identifier: string, password: string): Observable<boolean>;
|
|
10
|
+
private storeJwtTokenIfValid;
|
|
11
|
+
logout(): void;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthenticationService, never>;
|
|
13
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthenticationService>;
|
|
14
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { DanglIdentityClient, TokenResponseGet } from '../api-client';
|
|
3
|
-
import { JwtStorage } from '../models/jwt-storage';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class JwtTokenService implements OnDestroy {
|
|
7
|
-
private danglIdentityClient;
|
|
8
|
-
private readonly storage_identifier;
|
|
9
|
-
private isRefreshing;
|
|
10
|
-
private refreshTokenSource;
|
|
11
|
-
private tokenStoredSource;
|
|
12
|
-
tokenStored: Observable<JwtStorage>;
|
|
13
|
-
private tokenRefreshStartedSource;
|
|
14
|
-
tokenRefreshStarted: Observable<unknown>;
|
|
15
|
-
private tokenRefreshFinishedSource;
|
|
16
|
-
tokenRefreshFinished: Observable<boolean>;
|
|
17
|
-
constructor(danglIdentityClient: DanglIdentityClient);
|
|
18
|
-
ngOnDestroy(): void;
|
|
19
|
-
deleteToken(): void;
|
|
20
|
-
storeCustomToken(tokenToStore: JwtStorage): void;
|
|
21
|
-
storeToken(token: TokenResponseGet): void;
|
|
22
|
-
getTokenFromStorage(): JwtStorage;
|
|
23
|
-
refreshToken(): Observable<JwtStorage>;
|
|
24
|
-
getToken(): Observable<JwtStorage>;
|
|
25
|
-
private transformTokenResponse;
|
|
26
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<JwtTokenService, never>;
|
|
27
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<JwtTokenService>;
|
|
28
|
-
}
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import { DanglIdentityClient, TokenResponseGet } from '../api-client';
|
|
3
|
+
import { JwtStorage } from '../models/jwt-storage';
|
|
4
|
+
import { Observable } from 'rxjs';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class JwtTokenService implements OnDestroy {
|
|
7
|
+
private danglIdentityClient;
|
|
8
|
+
private readonly storage_identifier;
|
|
9
|
+
private isRefreshing;
|
|
10
|
+
private refreshTokenSource;
|
|
11
|
+
private tokenStoredSource;
|
|
12
|
+
tokenStored: Observable<JwtStorage>;
|
|
13
|
+
private tokenRefreshStartedSource;
|
|
14
|
+
tokenRefreshStarted: Observable<unknown>;
|
|
15
|
+
private tokenRefreshFinishedSource;
|
|
16
|
+
tokenRefreshFinished: Observable<boolean>;
|
|
17
|
+
constructor(danglIdentityClient: DanglIdentityClient);
|
|
18
|
+
ngOnDestroy(): void;
|
|
19
|
+
deleteToken(): void;
|
|
20
|
+
storeCustomToken(tokenToStore: JwtStorage): void;
|
|
21
|
+
storeToken(token: TokenResponseGet): void;
|
|
22
|
+
getTokenFromStorage(): JwtStorage;
|
|
23
|
+
refreshToken(): Observable<JwtStorage>;
|
|
24
|
+
getToken(): Observable<JwtStorage>;
|
|
25
|
+
private transformTokenResponse;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<JwtTokenService, never>;
|
|
27
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<JwtTokenService>;
|
|
28
|
+
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
2
|
-
import { JwtInterceptorService } from './interceptors/jwt-interceptor.service';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class DanglIdentityModule {
|
|
6
|
-
}
|
|
7
|
-
DanglIdentityModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
-
DanglIdentityModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, imports: [HttpClientModule] });
|
|
9
|
-
DanglIdentityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, providers: [
|
|
10
|
-
{
|
|
11
|
-
provide: HTTP_INTERCEPTORS,
|
|
12
|
-
useClass: JwtInterceptorService,
|
|
13
|
-
multi: true,
|
|
14
|
-
},
|
|
15
|
-
], imports: [HttpClientModule] });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: DanglIdentityModule, decorators: [{
|
|
17
|
-
type: NgModule,
|
|
18
|
-
args: [{
|
|
19
|
-
imports: [HttpClientModule],
|
|
20
|
-
providers: [
|
|
21
|
-
{
|
|
22
|
-
provide: HTTP_INTERCEPTORS,
|
|
23
|
-
useClass: JwtInterceptorService,
|
|
24
|
-
multi: true,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFuZ2wtaWRlbnRpdHkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1kYW5nbC1pZGVudGl0eS1jbGllbnQvc3JjL2RhbmdsLWlkZW50aXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVl6QyxNQUFNLE9BQU8sbUJBQW1COztnSEFBbkIsbUJBQW1CO2lIQUFuQixtQkFBbUIsWUFUcEIsZ0JBQWdCO2lIQVNmLG1CQUFtQixhQVJuQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixRQUFRLEVBQUUscUJBQXFCO1lBQy9CLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQVBTLGdCQUFnQjsyRkFTZixtQkFBbUI7a0JBVi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLEVBQUUscUJBQXFCOzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgSnd0SW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvand0LWludGVyY2VwdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICB1c2VDbGFzczogSnd0SW50ZXJjZXB0b3JTZXJ2aWNlLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhbmdsSWRlbnRpdHlNb2R1bGUge31cclxuIl19
|