@dontdrinkandroot/ngx-extensions 0.3.1 → 0.4.0
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/{esm2020 → esm2022}/src/cookie/cookie.service.mjs +4 -4
- package/esm2022/src/ddr-extensions.module.mjs +67 -0
- package/{esm2020 → esm2022}/src/http/redirect-to-login-interceptor.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/http/with-credentials-interceptor.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/image/lazy-image.directive.mjs +4 -4
- package/{esm2020 → esm2022}/src/jwt/jwt-interceptor.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/jwt/jwt-refresh-token-interceptor.service.mjs +4 -4
- package/esm2022/src/jwt/jwt.service.mjs +81 -0
- package/esm2022/src/logger/console-logger.service.mjs +43 -0
- package/esm2022/src/logger/logger.service.mjs +9 -0
- package/{esm2020 → esm2022}/src/oauth/oauth2-access-token-interceptor.service.mjs +4 -4
- package/esm2022/src/oauth/oauth2-error.mjs +8 -0
- package/{esm2020 → esm2022}/src/oauth/oauth2-refresh-token-interceptor.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/oauth/oauth2.module.mjs +5 -5
- package/esm2022/src/oauth/oauth2.service.mjs +125 -0
- package/{esm2020 → esm2022}/src/oauth/redirect-to-oauth2-login-interceptor.service.mjs +4 -4
- package/{esm2020 → esm2022}/src/scroll/bottom-hit.directive.mjs +4 -4
- package/{esm2020 → esm2022}/src/scroll/scroll.service.mjs +4 -4
- package/esm2022/src/storage/local-storage.service.mjs +53 -0
- package/{esm2020 → esm2022}/src/visibility/visibility.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/dontdrinkandroot-ngx-extensions.mjs +109 -101
- package/fesm2022/dontdrinkandroot-ngx-extensions.mjs.map +1 -0
- package/package.json +9 -15
- package/src/image/lazy-image.directive.d.ts +1 -1
- package/src/jwt/jwt.service.d.ts +3 -1
- package/src/logger/console-logger.service.d.ts +8 -8
- package/src/logger/logger.service.d.ts +5 -5
- package/src/oauth/oauth2.service.d.ts +3 -1
- package/src/storage/local-storage.service.d.ts +4 -4
- package/src/visibility/visibility.service.d.ts +1 -1
- package/esm2020/src/ddr-extensions.module.mjs +0 -67
- package/esm2020/src/jwt/jwt.service.mjs +0 -79
- package/esm2020/src/logger/console-logger.service.mjs +0 -43
- package/esm2020/src/logger/logger.service.mjs +0 -9
- package/esm2020/src/oauth/oauth2-error.mjs +0 -8
- package/esm2020/src/oauth/oauth2.service.mjs +0 -119
- package/esm2020/src/storage/local-storage.service.mjs +0 -53
- package/fesm2015/dontdrinkandroot-ngx-extensions.mjs +0 -1126
- package/fesm2015/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
- package/fesm2020/dontdrinkandroot-ngx-extensions.mjs.map +0 -1
- /package/{esm2020 → esm2022}/dontdrinkandroot-ngx-extensions.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/src/http/url-info.mjs +0 -0
- /package/{esm2020 → esm2022}/src/jwt/jwt-token-response.mjs +0 -0
- /package/{esm2020 → esm2022}/src/methoddecorator/debounce.mjs +0 -0
- /package/{esm2020 → esm2022}/src/methoddecorator/limit.mjs +0 -0
- /package/{esm2020 → esm2022}/src/oauth/json-web-token.mjs +0 -0
- /package/{esm2020 → esm2022}/src/oauth/oauth2-config.mjs +0 -0
- /package/{esm2020 → esm2022}/src/oauth/token-response.mjs +0 -0
- /package/{esm2020 → esm2022}/src/storage/storage.service.mjs +0 -0
- /package/{esm2020 → esm2022}/src/typeguard/is-non-null.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/collection-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/number-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/object-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/string-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/src/util/type-utils.mjs +0 -0
|
@@ -170,16 +170,16 @@ class LazyImageDirective {
|
|
|
170
170
|
isHidden(element) {
|
|
171
171
|
return window.getComputedStyle(element).display === 'none';
|
|
172
172
|
}
|
|
173
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LazyImageDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
174
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: LazyImageDirective, selector: "[ddrLazyImage]", inputs: { src: ["ddrLazyImage", "src"], objectFit: "objectFit", offset: "offset" }, host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" }, properties: { "src": "this.hostSrc", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.object-fit": "this.hostStyleObjectFit" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
173
175
|
}
|
|
174
|
-
LazyImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: LazyImageDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
175
|
-
LazyImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: LazyImageDirective, selector: "[ddrLazyImage]", inputs: { src: ["ddrLazyImage", "src"], objectFit: "objectFit", offset: "offset" }, host: { listeners: { "window:resize": "windowResized($event)", "window:scroll": "windowScroll($event)" }, properties: { "src": "this.hostSrc", "style.width.px": "this.hostStyleWidthPx", "style.height.px": "this.hostStyleHeightPx", "style.object-fit": "this.hostStyleObjectFit" } }, usesOnChanges: true, ngImport: i0 });
|
|
176
176
|
__decorate([
|
|
177
177
|
Debounce()
|
|
178
178
|
], LazyImageDirective.prototype, "windowResized", null);
|
|
179
179
|
__decorate([
|
|
180
180
|
Limit()
|
|
181
181
|
], LazyImageDirective.prototype, "windowScroll", null);
|
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LazyImageDirective, decorators: [{
|
|
183
183
|
type: Directive,
|
|
184
184
|
args: [{ selector: '[ddrLazyImage]' }]
|
|
185
185
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { src: [{
|
|
@@ -239,16 +239,16 @@ class BottomHitDirective {
|
|
|
239
239
|
this.onElementBottomHit.emit();
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
243
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 }); }
|
|
242
244
|
}
|
|
243
|
-
BottomHitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: BottomHitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
244
|
-
BottomHitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: BottomHitDirective, selector: "[ddrBottomHit]", outputs: { onWindowBottomHit: "onWindowBottomHit", onElementBottomHit: "onElementBottomHit" }, host: { listeners: { "scroll": "scrolled($event)", "window:scroll": "windowScrolled($event)" } }, ngImport: i0 });
|
|
245
245
|
__decorate([
|
|
246
246
|
Limit()
|
|
247
247
|
], BottomHitDirective.prototype, "scrolled", null);
|
|
248
248
|
__decorate([
|
|
249
249
|
Limit()
|
|
250
250
|
], BottomHitDirective.prototype, "windowScrolled", null);
|
|
251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: BottomHitDirective, decorators: [{
|
|
252
252
|
type: Directive,
|
|
253
253
|
args: [{
|
|
254
254
|
selector: '[ddrBottomHit]'
|
|
@@ -265,7 +265,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
265
265
|
args: ['window:scroll', ['$event']]
|
|
266
266
|
}] } });
|
|
267
267
|
|
|
268
|
-
class
|
|
268
|
+
class Logger {
|
|
269
269
|
constructor() {
|
|
270
270
|
this.debugEnabled = false;
|
|
271
271
|
this.infoEnabled = true;
|
|
@@ -274,43 +274,43 @@ class LoggerService {
|
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
-
class
|
|
277
|
+
class ConsoleLogger extends Logger {
|
|
278
278
|
/**
|
|
279
279
|
* @override
|
|
280
280
|
*/
|
|
281
|
-
debug(
|
|
281
|
+
debug(...data) {
|
|
282
282
|
if (this.debugEnabled) {
|
|
283
|
-
console.debug(
|
|
283
|
+
console.debug(...data);
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
/**
|
|
287
287
|
* @override
|
|
288
288
|
*/
|
|
289
|
-
info(
|
|
289
|
+
info(...data) {
|
|
290
290
|
if (this.infoEnabled) {
|
|
291
|
-
console.info(
|
|
291
|
+
console.info(...data);
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
/**
|
|
295
295
|
* @override
|
|
296
296
|
*/
|
|
297
|
-
warn(
|
|
297
|
+
warn(...data) {
|
|
298
298
|
if (this.warnEnabled) {
|
|
299
|
-
console.warn(
|
|
299
|
+
console.warn(...data);
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
/**
|
|
303
303
|
* @override
|
|
304
304
|
*/
|
|
305
|
-
error(
|
|
305
|
+
error(...data) {
|
|
306
306
|
if (this.errorEnabled) {
|
|
307
|
-
console.error(
|
|
307
|
+
console.error(...data);
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ConsoleLogger, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
311
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ConsoleLogger }); }
|
|
310
312
|
}
|
|
311
|
-
|
|
312
|
-
ConsoleLoggerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ConsoleLoggerService });
|
|
313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ConsoleLoggerService, decorators: [{
|
|
313
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ConsoleLogger, decorators: [{
|
|
314
314
|
type: Injectable
|
|
315
315
|
}] });
|
|
316
316
|
|
|
@@ -357,43 +357,43 @@ class LocalStorageService extends StorageService {
|
|
|
357
357
|
getFullKey(key) {
|
|
358
358
|
return this.storagePrefix + '.' + key;
|
|
359
359
|
}
|
|
360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService, deps: [{ token: DDR_STORAGE_PREFIX }, { token: Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
361
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService }); }
|
|
360
362
|
}
|
|
361
|
-
|
|
362
|
-
LocalStorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: LocalStorageService });
|
|
363
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
364
364
|
type: Injectable
|
|
365
365
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
366
366
|
type: Inject,
|
|
367
367
|
args: [DDR_STORAGE_PREFIX]
|
|
368
|
-
}] }, { type:
|
|
368
|
+
}] }, { type: Logger }]; } });
|
|
369
369
|
|
|
370
370
|
const DDR_JWT_REFRESH_TOKEN_URL = new InjectionToken('DDR_JWT_REFRESH_TOKEN_URL');
|
|
371
371
|
const DDR_LOGIN_PATH = new InjectionToken('DDR_LOGIN_PATH');
|
|
372
372
|
class DdrExtensionsModule {
|
|
373
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DdrExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
374
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: DdrExtensionsModule, declarations: [LazyImageDirective,
|
|
375
|
+
BottomHitDirective], exports: [LazyImageDirective,
|
|
376
|
+
BottomHitDirective] }); }
|
|
377
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DdrExtensionsModule, providers: [
|
|
378
|
+
{
|
|
379
|
+
provide: DDR_LOGIN_PATH,
|
|
380
|
+
useValue: '/login'
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
provide: Logger,
|
|
384
|
+
useClass: ConsoleLogger
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
provide: DDR_STORAGE_PREFIX,
|
|
388
|
+
useValue: 'ddr'
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
provide: StorageService,
|
|
392
|
+
useClass: LocalStorageService
|
|
393
|
+
},
|
|
394
|
+
] }); }
|
|
373
395
|
}
|
|
374
|
-
|
|
375
|
-
DdrExtensionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: DdrExtensionsModule, declarations: [LazyImageDirective,
|
|
376
|
-
BottomHitDirective], exports: [LazyImageDirective,
|
|
377
|
-
BottomHitDirective] });
|
|
378
|
-
DdrExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DdrExtensionsModule, providers: [
|
|
379
|
-
{
|
|
380
|
-
provide: DDR_LOGIN_PATH,
|
|
381
|
-
useValue: '/login'
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
provide: LoggerService,
|
|
385
|
-
useClass: ConsoleLoggerService
|
|
386
|
-
},
|
|
387
|
-
{
|
|
388
|
-
provide: DDR_STORAGE_PREFIX,
|
|
389
|
-
useValue: 'ddr'
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
provide: StorageService,
|
|
393
|
-
useClass: LocalStorageService
|
|
394
|
-
},
|
|
395
|
-
] });
|
|
396
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: DdrExtensionsModule, decorators: [{
|
|
396
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DdrExtensionsModule, decorators: [{
|
|
397
397
|
type: NgModule,
|
|
398
398
|
args: [{
|
|
399
399
|
declarations: [
|
|
@@ -407,8 +407,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
407
407
|
useValue: '/login'
|
|
408
408
|
},
|
|
409
409
|
{
|
|
410
|
-
provide:
|
|
411
|
-
useClass:
|
|
410
|
+
provide: Logger,
|
|
411
|
+
useClass: ConsoleLogger
|
|
412
412
|
},
|
|
413
413
|
{
|
|
414
414
|
provide: DDR_STORAGE_PREFIX,
|
|
@@ -427,6 +427,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
427
427
|
}] });
|
|
428
428
|
|
|
429
429
|
// This service is based on the `ng2-cookies` package which sadly is not a service and does
|
|
430
|
+
// not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.
|
|
431
|
+
// Package: https://github.com/BCJTI/ng2-cookies
|
|
430
432
|
class CookieService {
|
|
431
433
|
constructor(document) {
|
|
432
434
|
this.document = document;
|
|
@@ -543,10 +545,10 @@ class CookieService {
|
|
|
543
545
|
const escapedName = name.replace(/([\[\]{}()|=;+?,.*^$])/ig, '\\$1');
|
|
544
546
|
return new RegExp('(?:^' + escapedName + '|;\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');
|
|
545
547
|
}
|
|
548
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CookieService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
549
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CookieService, providedIn: 'root' }); }
|
|
546
550
|
}
|
|
547
|
-
|
|
548
|
-
CookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CookieService, providedIn: 'root' });
|
|
549
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: CookieService, decorators: [{
|
|
551
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: CookieService, decorators: [{
|
|
550
552
|
type: Injectable,
|
|
551
553
|
args: [{
|
|
552
554
|
providedIn: 'root'
|
|
@@ -623,10 +625,10 @@ class ScrollService {
|
|
|
623
625
|
}, 1);
|
|
624
626
|
}
|
|
625
627
|
}
|
|
628
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, deps: [{ token: i1.Router }, { token: i2.ViewportScroller }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
629
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, providedIn: 'root' }); }
|
|
626
630
|
}
|
|
627
|
-
|
|
628
|
-
ScrollService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ScrollService, providedIn: 'root' });
|
|
629
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: ScrollService, decorators: [{
|
|
631
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: ScrollService, decorators: [{
|
|
630
632
|
type: Injectable,
|
|
631
633
|
args: [{
|
|
632
634
|
providedIn: 'root'
|
|
@@ -640,10 +642,10 @@ class VisibilityService {
|
|
|
640
642
|
getVisibilityObservable() {
|
|
641
643
|
return this.visibility$;
|
|
642
644
|
}
|
|
645
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
646
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, providedIn: 'root' }); }
|
|
643
647
|
}
|
|
644
|
-
|
|
645
|
-
VisibilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: VisibilityService, providedIn: 'root' });
|
|
646
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: VisibilityService, decorators: [{
|
|
648
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: VisibilityService, decorators: [{
|
|
647
649
|
type: Injectable,
|
|
648
650
|
args: [{ providedIn: 'root' }]
|
|
649
651
|
}], ctorParameters: function () { return []; } });
|
|
@@ -658,10 +660,10 @@ class WithCredentialsInterceptor {
|
|
|
658
660
|
});
|
|
659
661
|
return next.handle(cloned);
|
|
660
662
|
}
|
|
663
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: WithCredentialsInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
664
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: WithCredentialsInterceptor }); }
|
|
661
665
|
}
|
|
662
|
-
|
|
663
|
-
WithCredentialsInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: WithCredentialsInterceptor });
|
|
664
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
|
|
666
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
|
|
665
667
|
type: Injectable
|
|
666
668
|
}] });
|
|
667
669
|
|
|
@@ -709,10 +711,10 @@ class RedirectToLoginInterceptor {
|
|
|
709
711
|
return throwError(err);
|
|
710
712
|
}));
|
|
711
713
|
}
|
|
714
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToLoginInterceptor, deps: [{ token: i1.Router }, { token: DDR_LOGIN_PATH }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
715
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToLoginInterceptor }); }
|
|
712
716
|
}
|
|
713
|
-
|
|
714
|
-
RedirectToLoginInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToLoginInterceptor });
|
|
715
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToLoginInterceptor, decorators: [{
|
|
717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToLoginInterceptor, decorators: [{
|
|
716
718
|
type: Injectable
|
|
717
719
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
|
|
718
720
|
type: Inject,
|
|
@@ -730,17 +732,21 @@ class OAuth2Config {
|
|
|
730
732
|
}
|
|
731
733
|
|
|
732
734
|
class OAuth2Error extends Error {
|
|
735
|
+
static { this.CODE_NOT_FOUND = 'code_not_found'; }
|
|
736
|
+
static { this.ACCESS_DENIED = 'access_denied'; }
|
|
733
737
|
constructor(error) {
|
|
734
738
|
super(error);
|
|
735
739
|
}
|
|
736
740
|
}
|
|
737
|
-
OAuth2Error.CODE_NOT_FOUND = 'code_not_found';
|
|
738
|
-
OAuth2Error.ACCESS_DENIED = 'access_denied';
|
|
739
741
|
|
|
740
742
|
class OAuth2Service {
|
|
741
|
-
|
|
743
|
+
static { this.STORAGE_KEY_CHALLENGE = 'ddr_oauth2_challenge'; }
|
|
744
|
+
static { this.STORAGE_KEY_REFRESH_TOKEN = 'ddr_oauth2_refresh_token'; }
|
|
745
|
+
static { this.STORAGE_KEY_RETURN_URL = 'ddr_oauth2_return_url'; }
|
|
746
|
+
constructor(route, httpClient, loggerService, config) {
|
|
742
747
|
this.route = route;
|
|
743
748
|
this.httpClient = httpClient;
|
|
749
|
+
this.loggerService = loggerService;
|
|
744
750
|
this.config = config;
|
|
745
751
|
this.accessTokenString = null;
|
|
746
752
|
this.accessToken = null;
|
|
@@ -796,12 +802,16 @@ class OAuth2Service {
|
|
|
796
802
|
}
|
|
797
803
|
performRefresh() {
|
|
798
804
|
if (null == this.refreshTokenRequest$) {
|
|
799
|
-
|
|
805
|
+
this.loggerService.info('Performing token refesh');
|
|
800
806
|
const params = new HttpParams()
|
|
801
807
|
.set('grant_type', 'refresh_token')
|
|
802
808
|
.set('refresh_token', TypeUtils.notNull(this.getRefreshToken()))
|
|
803
809
|
.set('client_id', this.config.clientId);
|
|
804
|
-
this.refreshTokenRequest$ = this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse =>
|
|
810
|
+
this.refreshTokenRequest$ = this.httpClient.post(this.config.tokenUri, params).pipe(map(tokenResponse => {
|
|
811
|
+
const token = this.processTokenResponse(tokenResponse);
|
|
812
|
+
this.refreshTokenRequest$ = null;
|
|
813
|
+
return token;
|
|
814
|
+
}), catchError(error => {
|
|
805
815
|
this.accessTokenString = null;
|
|
806
816
|
this.accessToken = null;
|
|
807
817
|
localStorage.removeItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN);
|
|
@@ -815,7 +825,7 @@ class OAuth2Service {
|
|
|
815
825
|
localStorage.removeItem(OAuth2Service.STORAGE_KEY_CHALLENGE);
|
|
816
826
|
this.accessTokenString = tokenResponse.access_token;
|
|
817
827
|
this.accessToken = JSON.parse(atob(tokenResponse.access_token.split('.')[1]));
|
|
818
|
-
|
|
828
|
+
this.loggerService.info('Access Token Expiry', new Date(this.accessToken.exp * 1000));
|
|
819
829
|
localStorage.setItem(OAuth2Service.STORAGE_KEY_REFRESH_TOKEN, tokenResponse.refresh_token);
|
|
820
830
|
return this.accessToken;
|
|
821
831
|
}
|
|
@@ -831,15 +841,12 @@ class OAuth2Service {
|
|
|
831
841
|
getReturnUrl() {
|
|
832
842
|
return localStorage.getItem(OAuth2Service.STORAGE_KEY_RETURN_URL);
|
|
833
843
|
}
|
|
844
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service, deps: [{ token: i1.ActivatedRoute }, { token: i2$1.HttpClient }, { token: Logger }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
845
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service }); }
|
|
834
846
|
}
|
|
835
|
-
|
|
836
|
-
OAuth2Service.STORAGE_KEY_REFRESH_TOKEN = 'ddr_oauth2_refresh_token';
|
|
837
|
-
OAuth2Service.STORAGE_KEY_RETURN_URL = 'ddr_oauth2_return_url';
|
|
838
|
-
OAuth2Service.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Service, deps: [{ token: i1.ActivatedRoute }, { token: i2$1.HttpClient }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
839
|
-
OAuth2Service.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Service });
|
|
840
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Service, decorators: [{
|
|
847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Service, decorators: [{
|
|
841
848
|
type: Injectable
|
|
842
|
-
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2$1.HttpClient }, { type: OAuth2Config, decorators: [{
|
|
849
|
+
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2$1.HttpClient }, { type: Logger }, { type: OAuth2Config, decorators: [{
|
|
843
850
|
type: Inject,
|
|
844
851
|
args: [DDR_OAUTH2_CONFIG]
|
|
845
852
|
}] }]; } });
|
|
@@ -857,10 +864,10 @@ class OAuth2RefreshTokenInterceptor {
|
|
|
857
864
|
}
|
|
858
865
|
return next.handle(req);
|
|
859
866
|
}
|
|
867
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2RefreshTokenInterceptor, deps: [{ token: OAuth2Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
868
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2RefreshTokenInterceptor }); }
|
|
860
869
|
}
|
|
861
|
-
|
|
862
|
-
OAuth2RefreshTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2RefreshTokenInterceptor });
|
|
863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2RefreshTokenInterceptor, decorators: [{
|
|
870
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2RefreshTokenInterceptor, decorators: [{
|
|
864
871
|
type: Injectable
|
|
865
872
|
}], ctorParameters: function () { return [{ type: OAuth2Service }]; } });
|
|
866
873
|
|
|
@@ -886,10 +893,10 @@ class RedirectToOAuth2LoginInterceptor {
|
|
|
886
893
|
return throwError(err);
|
|
887
894
|
}));
|
|
888
895
|
}
|
|
896
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, deps: [{ token: OAuth2Service }, { token: i1.Router }, { token: DDR_OAUTH2_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
897
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor }); }
|
|
889
898
|
}
|
|
890
|
-
|
|
891
|
-
RedirectToOAuth2LoginInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor });
|
|
892
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
|
|
899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: RedirectToOAuth2LoginInterceptor, decorators: [{
|
|
893
900
|
type: Injectable
|
|
894
901
|
}], ctorParameters: function () { return [{ type: OAuth2Service }, { type: i1.Router }, { type: OAuth2Config, decorators: [{
|
|
895
902
|
type: Inject,
|
|
@@ -912,10 +919,10 @@ class OAuth2AccessTokenInterceptor {
|
|
|
912
919
|
}
|
|
913
920
|
return next.handle(req);
|
|
914
921
|
}
|
|
922
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2AccessTokenInterceptor, deps: [{ token: OAuth2Service }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
923
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2AccessTokenInterceptor }); }
|
|
915
924
|
}
|
|
916
|
-
|
|
917
|
-
OAuth2AccessTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2AccessTokenInterceptor });
|
|
918
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2AccessTokenInterceptor, decorators: [{
|
|
925
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2AccessTokenInterceptor, decorators: [{
|
|
919
926
|
type: Injectable
|
|
920
927
|
}], ctorParameters: function () { return [{ type: OAuth2Service }]; } });
|
|
921
928
|
|
|
@@ -947,11 +954,11 @@ class OAuth2Module {
|
|
|
947
954
|
],
|
|
948
955
|
};
|
|
949
956
|
}
|
|
957
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
958
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Module }); }
|
|
959
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Module }); }
|
|
950
960
|
}
|
|
951
|
-
|
|
952
|
-
OAuth2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Module });
|
|
953
|
-
OAuth2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Module });
|
|
954
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: OAuth2Module, decorators: [{
|
|
961
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: OAuth2Module, decorators: [{
|
|
955
962
|
type: NgModule
|
|
956
963
|
}] });
|
|
957
964
|
|
|
@@ -960,8 +967,9 @@ function isNonNull(value) {
|
|
|
960
967
|
}
|
|
961
968
|
|
|
962
969
|
class JwtService {
|
|
963
|
-
constructor(storageService) {
|
|
970
|
+
constructor(storageService, loggerService) {
|
|
964
971
|
this.storageService = storageService;
|
|
972
|
+
this.loggerService = loggerService;
|
|
965
973
|
/**
|
|
966
974
|
* The current token.
|
|
967
975
|
*/
|
|
@@ -985,7 +993,7 @@ class JwtService {
|
|
|
985
993
|
this.token = token;
|
|
986
994
|
const decodedToken = JSON.parse(atob(token.split('.')[1]));
|
|
987
995
|
this.tokenExpiry = decodedToken.exp * 1000;
|
|
988
|
-
|
|
996
|
+
this.loggerService.info('New refresh token, expiry', new Date(this.tokenExpiry));
|
|
989
997
|
}
|
|
990
998
|
/**
|
|
991
999
|
* Gets the current token.
|
|
@@ -1025,15 +1033,15 @@ class JwtService {
|
|
|
1025
1033
|
getRefreshTokenStorageKey() {
|
|
1026
1034
|
return 'jwt.refresh_token';
|
|
1027
1035
|
}
|
|
1036
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtService, deps: [{ token: StorageService }, { token: Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1037
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtService, providedIn: 'root' }); }
|
|
1028
1038
|
}
|
|
1029
|
-
|
|
1030
|
-
JwtService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtService, providedIn: 'root' });
|
|
1031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtService, decorators: [{
|
|
1039
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtService, decorators: [{
|
|
1032
1040
|
type: Injectable,
|
|
1033
1041
|
args: [{
|
|
1034
1042
|
providedIn: 'root'
|
|
1035
1043
|
}]
|
|
1036
|
-
}], ctorParameters: function () { return [{ type: StorageService }]; } });
|
|
1044
|
+
}], ctorParameters: function () { return [{ type: StorageService }, { type: Logger }]; } });
|
|
1037
1045
|
|
|
1038
1046
|
class JwtInterceptor {
|
|
1039
1047
|
constructor(jwtService) {
|
|
@@ -1051,10 +1059,10 @@ class JwtInterceptor {
|
|
|
1051
1059
|
}
|
|
1052
1060
|
return next.handle(req);
|
|
1053
1061
|
}
|
|
1062
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtInterceptor, deps: [{ token: JwtService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1063
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtInterceptor }); }
|
|
1054
1064
|
}
|
|
1055
|
-
|
|
1056
|
-
JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtInterceptor });
|
|
1057
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtInterceptor, decorators: [{
|
|
1065
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtInterceptor, decorators: [{
|
|
1058
1066
|
type: Injectable
|
|
1059
1067
|
}], ctorParameters: function () { return [{ type: JwtService }]; } });
|
|
1060
1068
|
|
|
@@ -1091,10 +1099,10 @@ class JwtRefreshTokenInterceptor {
|
|
|
1091
1099
|
}
|
|
1092
1100
|
return this.refreshTokenRequest$;
|
|
1093
1101
|
}
|
|
1102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtRefreshTokenInterceptor, deps: [{ token: JwtService }, { token: i2$1.HttpClient }, { token: DDR_JWT_REFRESH_TOKEN_URL }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1103
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtRefreshTokenInterceptor }); }
|
|
1094
1104
|
}
|
|
1095
|
-
|
|
1096
|
-
JwtRefreshTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtRefreshTokenInterceptor });
|
|
1097
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: JwtRefreshTokenInterceptor, decorators: [{
|
|
1105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: JwtRefreshTokenInterceptor, decorators: [{
|
|
1098
1106
|
type: Injectable
|
|
1099
1107
|
}], ctorParameters: function () { return [{ type: JwtService }, { type: i2$1.HttpClient }, { type: undefined, decorators: [{
|
|
1100
1108
|
type: Inject,
|