@nakedcreativity/membrs-angular-helper 0.0.21 → 0.0.22

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.
Files changed (33) hide show
  1. package/esm2020/lib/auth.interceptor.mjs +25 -0
  2. package/esm2020/lib/config.interface.mjs +2 -0
  3. package/esm2020/lib/config.service.mjs +7 -0
  4. package/esm2020/lib/membrs.module.mjs +146 -0
  5. package/esm2020/lib/membrs.service.mjs +101 -0
  6. package/esm2020/lib/router.config.mjs +19 -0
  7. package/esm2020/lib/token.mjs +5 -0
  8. package/esm2020/nakedcreativity-membrs-angular-helper.mjs +5 -0
  9. package/esm2020/public-api.mjs +5 -0
  10. package/fesm2015/nakedcreativity-membrs-angular-helper.mjs +297 -0
  11. package/fesm2015/nakedcreativity-membrs-angular-helper.mjs.map +1 -0
  12. package/{fesm2015/nakedcreativity-membrs-angular-helper.js → fesm2020/nakedcreativity-membrs-angular-helper.mjs} +78 -42
  13. package/fesm2020/nakedcreativity-membrs-angular-helper.mjs.map +1 -0
  14. package/lib/auth.interceptor.d.ts +3 -0
  15. package/lib/membrs.module.d.ts +7 -0
  16. package/lib/membrs.service.d.ts +3 -0
  17. package/nakedcreativity-membrs-angular-helper.d.ts +1 -2
  18. package/package.json +20 -8
  19. package/bundles/nakedcreativity-membrs-angular-helper.umd.js +0 -296
  20. package/bundles/nakedcreativity-membrs-angular-helper.umd.js.map +0 -1
  21. package/bundles/nakedcreativity-membrs-angular-helper.umd.min.js +0 -2
  22. package/bundles/nakedcreativity-membrs-angular-helper.umd.min.js.map +0 -1
  23. package/esm2015/lib/auth.interceptor.js +0 -22
  24. package/esm2015/lib/config.interface.js +0 -1
  25. package/esm2015/lib/config.service.js +0 -7
  26. package/esm2015/lib/membrs.module.js +0 -114
  27. package/esm2015/lib/membrs.service.js +0 -102
  28. package/esm2015/lib/router.config.js +0 -19
  29. package/esm2015/lib/token.js +0 -5
  30. package/esm2015/nakedcreativity-membrs-angular-helper.js +0 -6
  31. package/esm2015/public-api.js +0 -5
  32. package/fesm2015/nakedcreativity-membrs-angular-helper.js.map +0 -1
  33. package/nakedcreativity-membrs-angular-helper.metadata.json +0 -1
@@ -1,296 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@auth0/angular-jwt'), require('@angular/common/http'), require('rxjs'), require('@angular/common'), require('@uirouter/angular'), require('rxjs/operators')) :
3
- typeof define === 'function' && define.amd ? define('@nakedcreativity/membrs-angular-helper', ['exports', '@angular/core', '@auth0/angular-jwt', '@angular/common/http', 'rxjs', '@angular/common', '@uirouter/angular', 'rxjs/operators'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.nakedcreativity = global.nakedcreativity || {}, global.nakedcreativity['membrs-angular-helper'] = {}), global.ng.core, global.angularJwt, global.ng.common.http, global.rxjs, global.ng.common, global.angular, global.rxjs.operators));
5
- }(this, (function (exports, i0, angularJwt, i1, rxjs, common, angular, operators) { 'use strict';
6
-
7
- /**
8
- * This is not a real service, but it looks like it from the outside.
9
- * It's just an InjectionTToken used to import the config object, provided from the outside
10
- */
11
- var MembrsConfigService = new i0.InjectionToken("MembrsConfig");
12
-
13
- var jwtService = new angularJwt.JwtHelperService();
14
- var MembrsService = /** @class */ (function () {
15
- function MembrsService(http, config) {
16
- this.http = http;
17
- this.config = config;
18
- this._lsKey = 'membrs';
19
- this._loggedInObservable = new rxjs.BehaviorSubject(false);
20
- console.log('membrs constructor');
21
- // if the token exists in local storage, retrieve it back to the service
22
- if (localStorage.getItem(this._lsKey)) {
23
- this.token = localStorage.getItem(this._lsKey);
24
- }
25
- }
26
- MembrsService.prototype.reissue = function (token) {
27
- var _this = this;
28
- return new Promise(function (resolve, reject) {
29
- if (!token && !_this._token) {
30
- reject('NOT_LOGGED_IN');
31
- }
32
- if (token)
33
- _this.token = token;
34
- // check stored token has not expired, or needs to be reissued soon
35
- var reissueIn = _this._decoded.exp - Math.floor(Date.now() / 1000);
36
- // token has expired
37
- if (reissueIn < 0) {
38
- reject('NOT_LOGGED_IN');
39
- }
40
- // token expiring soon
41
- if (reissueIn < 300) {
42
- _this.http.post(_this.config.apiProtocol + _this.config.api + '/token/' + _this._token, {}).subscribe(function (response) {
43
- if (response.token) {
44
- _this.token = response.token;
45
- _this._loggedInObservable.next(true);
46
- resolve(_this._token);
47
- }
48
- else {
49
- reject('NOT_LOGGED_IN');
50
- }
51
- }, function (error) {
52
- reject('NOT_LOGGED_IN');
53
- });
54
- }
55
- else {
56
- _this._loggedInObservable.next(true);
57
- resolve(_this._token);
58
- }
59
- });
60
- };
61
- Object.defineProperty(MembrsService.prototype, "token", {
62
- get: function () {
63
- return this._token;
64
- },
65
- set: function (token) {
66
- this._token = token;
67
- localStorage.setItem(this._lsKey, token);
68
- this._decoded = jwtService.decodeToken(this._token);
69
- },
70
- enumerable: false,
71
- configurable: true
72
- });
73
- MembrsService.prototype.deleteToken = function () {
74
- localStorage.removeItem(this._lsKey);
75
- };
76
- MembrsService.prototype.isLoggedIn = function () {
77
- return this.token ? true : false;
78
- };
79
- Object.defineProperty(MembrsService.prototype, "profile", {
80
- get: function () {
81
- return this._decoded;
82
- },
83
- enumerable: false,
84
- configurable: true
85
- });
86
- Object.defineProperty(MembrsService.prototype, "admin", {
87
- get: function () {
88
- return this.profile.permission == 1;
89
- },
90
- enumerable: false,
91
- configurable: true
92
- });
93
- Object.defineProperty(MembrsService.prototype, "isLoggedInObservable", {
94
- get: function () {
95
- return this._loggedInObservable;
96
- },
97
- enumerable: false,
98
- configurable: true
99
- });
100
- MembrsService.prototype.logout = function () {
101
- var _this = this;
102
- return new Promise(function (resolve, reject) {
103
- _this.http.delete(_this.config.apiProtocol + _this.config.api + '/token/' + _this._token).subscribe(function (response) {
104
- _this._token = null;
105
- localStorage.removeItem(_this._lsKey);
106
- resolve(_this.config.login);
107
- //this.router.stateService.go('dashboard')
108
- }, function (error) {
109
- reject(error);
110
- });
111
- });
112
- };
113
- return MembrsService;
114
- }());
115
- MembrsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MembrsService_Factory() { return new MembrsService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(MembrsConfigService)); }, token: MembrsService, providedIn: "root" });
116
- MembrsService.decorators = [
117
- { type: i0.Injectable, args: [{
118
- providedIn: 'root'
119
- },] }
120
- ];
121
- MembrsService.ctorParameters = function () { return [
122
- { type: i1.HttpClient },
123
- { type: undefined, decorators: [{ type: i0.Inject, args: [MembrsConfigService,] }] }
124
- ]; };
125
-
126
- function routerConfigFn(router, injector) {
127
- var transitionService = router.transitionService;
128
- var stateService = router.stateService;
129
- var config = injector.get(MembrsConfigService);
130
- var membrsService = injector.get(MembrsService);
131
- stateService.defaultErrorHandler(function (error) {
132
- console.log('Default error handler - Membrs Angular Helper');
133
- console.log(error);
134
- if (error.detail == 'NOT_LOGGED_IN') {
135
- membrsService.deleteToken();
136
- window.location.href = config.login;
137
- }
138
- if (error.detail == 'INSUFFICIENT_PERMISSIONS')
139
- stateService.go(config.defaultState);
140
- });
141
- }
142
-
143
- function retrieveToken() {
144
- console.log('retrieve from ls');
145
- return localStorage.getItem('membrs');
146
- }
147
-
148
- var validateResolve = {
149
- token: 'reissue',
150
- deps: [angular.Transition, angular.UIRouter, MembrsService, MembrsConfigService],
151
- resolveFn: validateResolveFn
152
- };
153
- var reissueResolve = {
154
- token: 'reissue',
155
- deps: [angular.Transition, angular.UIRouter, MembrsService, MembrsConfigService],
156
- resolveFn: reissueResolveFn
157
- };
158
- var reissueState = {
159
- name: 'reissue',
160
- url: '/reissue?token',
161
- views: {},
162
- resolve: [
163
- reissueResolve
164
- ]
165
- };
166
- function reissueResolveFn(transition, router, membrsService, membrsConfig) {
167
- //console.log(membrsService)
168
- return new Promise(function (resolve, reject) {
169
- console.log('reissue promise resolve');
170
- console.log(transition.params().token);
171
- membrsService.reissue(transition.params().token).then(function (response) {
172
- console.log('redirect to default state');
173
- router.stateService.go(membrsConfig.defaultState, {}, { inherit: false });
174
- reject();
175
- }).catch(function (error) {
176
- console.log('error in reissue resolve');
177
- console.log(error);
178
- //window.location.href = environment.login
179
- reject(error);
180
- });
181
- });
182
- }
183
- function validateResolveFn(transition, router, membrsService, membrsConfig) {
184
- //console.log(membrsService)
185
- return new Promise(function (resolve, reject) {
186
- console.log('validate promise resolve');
187
- membrsService.reissue().then(function (response) {
188
- resolve(null);
189
- }).catch(function (error) {
190
- console.log('error in validateResolveFn');
191
- console.log(error);
192
- window.location.href = membrsConfig.login;
193
- reject(error);
194
- });
195
- });
196
- }
197
- function jwtOptionsFactory(config) {
198
- console.log('jwt options factory');
199
- console.log(config);
200
- return {
201
- tokenGetter: function () {
202
- console.log('token getter', localStorage.getItem('membrs'));
203
- return localStorage.getItem('membrs');
204
- },
205
- allowedDomains: [config.api]
206
- };
207
- }
208
- /** The top level state(s) */
209
- var STATES = [
210
- reissueState
211
- ];
212
- var MembrsModule = /** @class */ (function () {
213
- function MembrsModule() {
214
- }
215
- MembrsModule.forRoot = function (config) {
216
- var moduleProviders = angular.UIRouterModule.forChild({
217
- states: STATES,
218
- config: routerConfigFn
219
- }).providers;
220
- moduleProviders.push(angularJwt.JwtModule.forRoot({
221
- config: {
222
- tokenGetter: retrieveToken,
223
- allowedDomains: []
224
- }
225
- }).providers);
226
- moduleProviders.push(MembrsService);
227
- moduleProviders.push({ provide: MembrsConfigService, useValue: config });
228
- return {
229
- ngModule: MembrsModule,
230
- providers: moduleProviders //[{provide: MembrsConfigService,useValue: config}]
231
- };
232
- };
233
- return MembrsModule;
234
- }());
235
- MembrsModule.decorators = [
236
- { type: i0.NgModule, args: [{
237
- imports: [
238
- common.CommonModule,
239
- i1.HttpClientModule,
240
- angularJwt.JwtModule
241
- // JwtModule.forRoot({
242
- // config: {
243
- // tokenGetter: retrieveToken
244
- // }
245
- // })
246
- // UIRouterModule.forChild({
247
- // states: STATES,
248
- // config: routerConfigFn,
249
- // }),
250
- // JwtModule.forRoot({})
251
- ]
252
- },] }
253
- ];
254
-
255
- var TokenInterceptor = /** @class */ (function () {
256
- function TokenInterceptor() {
257
- }
258
- TokenInterceptor.prototype.intercept = function (request, next) {
259
- //this.busyService.busy()
260
- request = request.clone({
261
- setHeaders: {
262
- Authorization: localStorage.getItem('membrs')
263
- }
264
- });
265
- return next.handle(request).pipe(operators.finalize(function () {
266
- //this.busyService.finished()
267
- }));
268
- };
269
- return TokenInterceptor;
270
- }());
271
- TokenInterceptor.decorators = [
272
- { type: i0.Injectable }
273
- ];
274
- TokenInterceptor.ctorParameters = function () { return []; };
275
-
276
- /**
277
- * Generated bundle index. Do not edit.
278
- */
279
-
280
- exports.MembrsModule = MembrsModule;
281
- exports.MembrsService = MembrsService;
282
- exports.STATES = STATES;
283
- exports.TokenInterceptor = TokenInterceptor;
284
- exports.jwtOptionsFactory = jwtOptionsFactory;
285
- exports.reissueResolve = reissueResolve;
286
- exports.reissueResolveFn = reissueResolveFn;
287
- exports.reissueState = reissueState;
288
- exports.retrieveToken = retrieveToken;
289
- exports.validateResolve = validateResolve;
290
- exports.validateResolveFn = validateResolveFn;
291
- exports.ɵa = MembrsConfigService;
292
-
293
- Object.defineProperty(exports, '__esModule', { value: true });
294
-
295
- })));
296
- //# sourceMappingURL=nakedcreativity-membrs-angular-helper.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nakedcreativity-membrs-angular-helper.umd.js","sources":["../../../projects/membrs/src/lib/config.service.ts","../../../projects/membrs/src/lib/membrs.service.ts","../../../projects/membrs/src/lib/router.config.ts","../../../projects/membrs/src/lib/token.ts","../../../projects/membrs/src/lib/membrs.module.ts","../../../projects/membrs/src/lib/auth.interceptor.ts","../../../projects/membrs/src/nakedcreativity-membrs-angular-helper.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MembrsConfig } from './config.interface';\n\n/**\n * This is not a real service, but it looks like it from the outside.\n * It's just an InjectionTToken used to import the config object, provided from the outside\n */\nexport const MembrsConfigService = new InjectionToken<MembrsConfig>(\"MembrsConfig\");\n","import { Injectable, Inject } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { HttpClient } from '@angular/common/http'\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\nimport { BehaviorSubject } from 'rxjs';\nconst jwtService = new JwtHelperService()\n\n@Injectable({\n providedIn: 'root'\n})\n\n\nexport class MembrsService {\n\n _token: string;\n _decoded: any;\n _lsKey: string = 'membrs';\n _loggedInObservable: BehaviorSubject<Boolean> = new BehaviorSubject(false)\n\n constructor(private http: HttpClient, @Inject(MembrsConfigService) private config: MembrsConfig) {\n\n console.log('membrs constructor')\n // if the token exists in local storage, retrieve it back to the service\n if(localStorage.getItem(this._lsKey)){\n this.token = localStorage.getItem(this._lsKey)\n }\n \n }\n\n reissue(token?:string){\n\n return new Promise((resolve, reject)=>{\n\n if(!token && !this._token){\n reject('NOT_LOGGED_IN')\n }\n\n if(token)\n this.token = token\n\n // check stored token has not expired, or needs to be reissued soon\n var reissueIn = this._decoded.exp - Math.floor(Date.now()/1000)\n \n // token has expired\n if(reissueIn < 0){\n reject('NOT_LOGGED_IN')\n }\n \n // token expiring soon\n if(reissueIn < 300){\n\n this.http.post(this.config.apiProtocol + this.config.api+'/token/'+this._token, {}).subscribe((response:any)=>{\n\n if(response.token){\n this.token = response.token\n this._loggedInObservable.next(true)\n resolve(this._token)\n }else {\n reject('NOT_LOGGED_IN')\n }\n \n }, error=>{\n reject('NOT_LOGGED_IN')\n })\n\n }else {\n this._loggedInObservable.next(true)\n resolve(this._token)\n }\n \n })\n \n }\n\n set token(token){\n this._token = token\n localStorage.setItem(this._lsKey, token)\n this._decoded = jwtService.decodeToken(this._token)\n }\n\n deleteToken(){\n localStorage.removeItem(this._lsKey)\n }\n\n isLoggedIn(){\n return this.token ? true : false\n }\n\n get profile(){\n return this._decoded\n }\n\n get token(){\n return this._token\n }\n\n get admin (){\n return this.profile.permission == 1\n }\n\n get isLoggedInObservable(){\n return this._loggedInObservable\n }\n \n logout(){\n return new Promise((resolve, reject)=>{\n this.http.delete(this.config.apiProtocol+this.config.api+'/token/'+this._token).subscribe((response:any)=>{\n this._token = null;\n localStorage.removeItem(this._lsKey)\n resolve(this.config.login)\n //this.router.stateService.go('dashboard')\n }, error=>{\n reject(error)\n })\n })\n \n }\n\n\n}\n","import { UIRouter } from '@uirouter/core';\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\nimport { Injector } from '@angular/core';\nimport { MembrsService } from './membrs.service';\n\nexport function routerConfigFn(router: UIRouter, injector: Injector) {\n\n const transitionService = router.transitionService;\n const stateService = router.stateService\n const config:MembrsConfig = injector.get(MembrsConfigService)\n const membrsService = injector.get(MembrsService)\n\n \tstateService.defaultErrorHandler(function(error) {\n\t\t \n\t\tconsole.log('Default error handler - Membrs Angular Helper')\n\t\tconsole.log(error)\n\t\t\t\n\t\tif(error.detail == 'NOT_LOGGED_IN'){\n\t\t\tmembrsService.deleteToken()\n\t\t\twindow.location.href = config.login;\n\t\t}\n\n\t\tif(error.detail == 'INSUFFICIENT_PERMISSIONS')\n\t\t\tstateService.go(config.defaultState)\n\n\t});\n\t\n}","export function retrieveToken() {\n console.log('retrieve from ls')\n return localStorage.getItem('membrs');\n}","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MembrsService } from './membrs.service';\nimport { JwtModule, JWT_OPTIONS } from \"@auth0/angular-jwt\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { UIRouterModule } from '@uirouter/angular'\n\nimport { Ng2StateDeclaration } from '@uirouter/angular';\nimport { Transition, UIRouter } from '@uirouter/angular'\n\nimport { routerConfigFn } from './router.config';\nimport { MembrsConfig } from './config.interface';\nimport { MembrsConfigService } from './config.service';\nimport { retrieveToken } from './token';\n\nexport const validateResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService, MembrsConfigService ],\n resolveFn: validateResolveFn\n}\n\nexport const reissueResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService, MembrsConfigService ],\n resolveFn: reissueResolveFn\n}\n\nexport const reissueState:Ng2StateDeclaration = {\n\tname: 'reissue', \n\turl: '/reissue?token',\n\tviews: { },\n\tresolve: [\n reissueResolve\n\t]\n}\n\nexport function reissueResolveFn(transition, router, membrsService, membrsConfig:MembrsConfig) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('reissue promise resolve')\n console.log(transition.params().token)\n membrsService.reissue(transition.params().token).then((response)=>{\n console.log('redirect to default state')\n router.stateService.go(membrsConfig.defaultState, {}, {inherit:false})\n reject()\n }).catch(error=>{\n console.log('error in reissue resolve')\n console.log(error)\n //window.location.href = environment.login\n reject(error)\n })\n\n\t})\n}\n\nexport function validateResolveFn(transition, router, membrsService, membrsConfig:MembrsConfig) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('validate promise resolve')\n \n membrsService.reissue().then((response)=>{\n resolve(null)\n }).catch(error=>{\n console.log('error in validateResolveFn')\n console.log(error)\n window.location.href = membrsConfig.login\n reject(error)\n })\n\n})\n}\n\nexport function jwtOptionsFactory(config) {\n console.log('jwt options factory')\n console.log(config)\n return {\n tokenGetter: () => {\n console.log('token getter', localStorage.getItem('membrs'))\n return localStorage.getItem('membrs');\n },\n allowedDomains: [config.api]\n }\n}\n\n\n/** The top level state(s) */\nexport const STATES = [\n reissueState\n]\n\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n JwtModule\n // JwtModule.forRoot({\n // config: {\n // tokenGetter: retrieveToken\n // }\n // })\n // UIRouterModule.forChild({\n // states: STATES,\n // config: routerConfigFn,\n // }),\n // JwtModule.forRoot({})\n ]\n})\n\n\n\nexport class MembrsModule { \n static forRoot(config: MembrsConfig): ModuleWithProviders<MembrsModule> {\n\n\n const moduleProviders = UIRouterModule.forChild({\n states: STATES,\n config: routerConfigFn\n }).providers\n\n moduleProviders.push(JwtModule.forRoot({\n config: {\n tokenGetter: retrieveToken,\n allowedDomains: []\n }\n }).providers)\n \n moduleProviders.push(MembrsService)\n moduleProviders.push({provide: MembrsConfigService,useValue: config});\n \n \n return {\n ngModule: MembrsModule, \n providers: moduleProviders //[{provide: MembrsConfigService,useValue: config}]\n };\n \n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n//import { NgBusyService } from '@nakedcreativity/ng-busy';\nimport { finalize } from 'rxjs/operators';\n\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n constructor() {}\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n \n //this.busyService.busy()\n request = request.clone({\n setHeaders: {\n Authorization: localStorage.getItem('membrs')\n }\n });\n return next.handle(request).pipe(finalize(()=>{\n //this.busyService.finished()\n }));\n }\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {MembrsConfig as ɵb} from './lib/config.interface';\nexport {MembrsConfigService as ɵa} from './lib/config.service';"],"names":["InjectionToken","JwtHelperService","BehaviorSubject","Injectable","HttpClient","Inject","Transition","UIRouter","UIRouterModule","JwtModule","NgModule","CommonModule","HttpClientModule","finalize"],"mappings":";;;;;;IAGA;;;;QAIa,mBAAmB,GAAG,IAAIA,iBAAc,CAAe,cAAc;;ICDlF,IAAM,UAAU,GAAG,IAAIC,2BAAgB,EAAE,CAAA;;QAcvC,uBAAoB,IAAgB,EAAuC,MAAoB;YAA3E,SAAI,GAAJ,IAAI,CAAY;YAAuC,WAAM,GAAN,MAAM,CAAc;YAH/F,WAAM,GAAW,QAAQ,CAAC;YAC1B,wBAAmB,GAA6B,IAAIC,oBAAe,CAAC,KAAK,CAAC,CAAA;YAIxE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;;YAEjC,IAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC;gBACnC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAC/C;SAEF;QAED,+BAAO,GAAP,UAAQ,KAAa;YAArB,iBA2CC;YAzCC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAEjC,IAAG,CAAC,KAAK,IAAI,CAAC,KAAI,CAAC,MAAM,EAAC;oBACxB,MAAM,CAAC,eAAe,CAAC,CAAA;iBACxB;gBAED,IAAG,KAAK;oBACN,KAAI,CAAC,KAAK,GAAG,KAAK,CAAA;;gBAGpB,IAAI,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,IAAI,CAAC,CAAA;;gBAG/D,IAAG,SAAS,GAAG,CAAC,EAAC;oBACf,MAAM,CAAC,eAAe,CAAC,CAAA;iBACxB;;gBAGD,IAAG,SAAS,GAAG,GAAG,EAAC;oBAEjB,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAI,CAAC,MAAM,CAAC,GAAG,GAAC,SAAS,GAAC,KAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,QAAY;wBAEzG,IAAG,QAAQ,CAAC,KAAK,EAAC;4BAChB,KAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;4BAC3B,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;4BACnC,OAAO,CAAC,KAAI,CAAC,MAAM,CAAC,CAAA;yBACrB;6BAAK;4BACJ,MAAM,CAAC,eAAe,CAAC,CAAA;yBACxB;qBAEF,EAAE,UAAA,KAAK;wBACN,MAAM,CAAC,eAAe,CAAC,CAAA;qBACxB,CAAC,CAAA;iBAEH;qBAAK;oBACJ,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACnC,OAAO,CAAC,KAAI,CAAC,MAAM,CAAC,CAAA;iBACrB;aAEF,CAAC,CAAA;SAEH;QAED,sBAAI,gCAAK;iBAkBT;gBACE,OAAO,IAAI,CAAC,MAAM,CAAA;aACnB;iBApBD,UAAU,KAAK;gBACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;gBACnB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBACxC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACpD;;;WAAA;QAED,mCAAW,GAAX;YACE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACrC;QAED,kCAAU,GAAV;YACE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAA;SACjC;QAED,sBAAI,kCAAO;iBAAX;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAA;aACrB;;;WAAA;QAMD,sBAAI,gCAAK;iBAAT;gBACE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,CAAA;aACpC;;;WAAA;QAED,sBAAI,+CAAoB;iBAAxB;gBACE,OAAO,IAAI,CAAC,mBAAmB,CAAA;aAChC;;;WAAA;QAED,8BAAM,GAAN;YAAA,iBAYC;YAXC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,KAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,MAAM,CAAC,WAAW,GAAC,KAAI,CAAC,MAAM,CAAC,GAAG,GAAC,SAAS,GAAC,KAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAC,QAAY;oBACrG,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,YAAY,CAAC,UAAU,CAAC,KAAI,CAAC,MAAM,CAAC,CAAA;oBACpC,OAAO,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;;iBAE3B,EAAE,UAAA,KAAK;oBACN,MAAM,CAAC,KAAK,CAAC,CAAA;iBACd,CAAC,CAAA;aACH,CAAC,CAAA;SAEH;;;;;gBA7GFC,aAAU,SAAC;oBACV,UAAU,EAAE,MAAM;iBACnB;;;gBARQC,aAAU;gDAkBsBC,SAAM,SAAC,mBAAmB;;;aCdnD,cAAc,CAAC,MAAgB,EAAE,QAAkB;QAEjE,IAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnD,IAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;QACxC,IAAM,MAAM,GAAgB,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAC7D,IAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAEjD,YAAY,CAAC,mBAAmB,CAAC,UAAS,KAAK;YAE/C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;YAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAElB,IAAG,KAAK,CAAC,MAAM,IAAI,eAAe,EAAC;gBAClC,aAAa,CAAC,WAAW,EAAE,CAAA;gBAC3B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;aACpC;YAED,IAAG,KAAK,CAAC,MAAM,IAAI,0BAA0B;gBAC5C,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;SAErC,CAAC,CAAC;IAEJ;;aC5BgB,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1C;;QCYa,eAAe,GAAG;QAC3B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,CAAEC,kBAAU,EAAEC,gBAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAE;QAClE,SAAS,EAAE,iBAAiB;MAC/B;QAEY,cAAc,GAAG;QAC5B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,CAAED,kBAAU,EAAEC,gBAAQ,EAAE,aAAa,EAAE,mBAAmB,CAAE;QAClE,SAAS,EAAE,gBAAgB;MAC5B;QAEY,YAAY,GAAuB;QAC/C,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,gBAAgB;QACrB,KAAK,EAAE,EAAG;QACV,OAAO,EAAE;YACN,cAAc;SAChB;MACD;aAEe,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,YAAyB;;QAGzF,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;YACtC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAA;YACtC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;gBAC3D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAA;gBACxC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,EAAE,EAAE,EAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAA;gBACtE,MAAM,EAAE,CAAA;aACX,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK;gBACV,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;;gBAElB,MAAM,CAAC,KAAK,CAAC,CAAA;aAChB,CAAC,CAAA;SAEN,CAAC,CAAA;IACH,CAAC;aAEe,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,YAAyB;;QAG5F,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAA;YAEvC,aAAa,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,UAAC,QAAQ;gBAClC,OAAO,CAAC,IAAI,CAAC,CAAA;aAChB,CAAC,CAAC,KAAK,CAAC,UAAA,KAAK;gBACZ,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;gBACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAChB,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAA;gBACzC,MAAM,CAAC,KAAK,CAAC,CAAA;aAChB,CAAC,CAAA;SAEL,CAAC,CAAA;IACF,CAAC;aAEe,iBAAiB,CAAC,MAAM;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACnB,OAAO;YACL,WAAW,EAAE;gBACX,OAAO,CAAC,GAAG,CAAC,cAAc,EAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC5D,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aACvC;YACD,cAAc,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;SAC7B,CAAA;IACH,CAAC;IAGD;QACa,MAAM,GAAG;QAClB,YAAY;MACf;;QAuBD;;QACS,oBAAO,GAAd,UAAe,MAAoB;YAGjC,IAAM,eAAe,GAAGC,sBAAc,CAAC,QAAQ,CAAC;gBAC9C,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC,SAAS,CAAA;YAEZ,eAAe,CAAC,IAAI,CAACC,oBAAS,CAAC,OAAO,CAAC;gBACrC,MAAM,EAAE;oBACN,WAAW,EAAE,aAAa;oBAC1B,cAAc,EAAE,EAAE;iBACnB;aACF,CAAC,CAAC,SAAS,CAAC,CAAA;YAEb,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YACnC,eAAe,CAAC,IAAI,CAAC,EAAC,OAAO,EAAE,mBAAmB,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;YAGtE,OAAO;gBACL,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,eAAe;aAC3B,CAAC;SAEH;;;;gBA7CFC,WAAQ,SAAC;oBACR,OAAO,EAAE;wBACPC,mBAAY;wBACZC,mBAAgB;wBAChBH,oBAAS;;;;;;;;;;;qBAWV;iBACF;;;;QC/FC;SAAgB;QAChB,oCAAS,GAAT,UAAU,OAAyB,EAAE,IAAiB;;YAGpD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;gBACtB,UAAU,EAAE;oBACV,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC9C;aACF,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAACI,kBAAQ,CAAC;;aAEzC,CAAC,CAAC,CAAC;SACL;;;;gBAdFV,aAAU;;;;ICZX;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +0,0 @@
1
- !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("@angular/core"),require("@auth0/angular-jwt"),require("@angular/common/http"),require("rxjs"),require("@angular/common"),require("@uirouter/angular"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@nakedcreativity/membrs-angular-helper",["exports","@angular/core","@auth0/angular-jwt","@angular/common/http","rxjs","@angular/common","@uirouter/angular","rxjs/operators"],o):o(((e="undefined"!=typeof globalThis?globalThis:e||self).nakedcreativity=e.nakedcreativity||{},e.nakedcreativity["membrs-angular-helper"]={}),e.ng.core,e.angularJwt,e.ng.common.http,e.rxjs,e.ng.common,e.angular,e.rxjs.operators)}(this,(function(e,o,t,n,r,i,s,l){"use strict";var a=new o.InjectionToken("MembrsConfig"),u=new t.JwtHelperService,c=function(){function e(e,o){this.http=e,this.config=o,this._lsKey="membrs",this._loggedInObservable=new r.BehaviorSubject(!1),console.log("membrs constructor"),localStorage.getItem(this._lsKey)&&(this.token=localStorage.getItem(this._lsKey))}return e.prototype.reissue=function(e){var o=this;return new Promise((function(t,n){e||o._token||n("NOT_LOGGED_IN"),e&&(o.token=e);var r=o._decoded.exp-Math.floor(Date.now()/1e3);r<0&&n("NOT_LOGGED_IN"),r<300?o.http.post(o.config.apiProtocol+o.config.api+"/token/"+o._token,{}).subscribe((function(e){e.token?(o.token=e.token,o._loggedInObservable.next(!0),t(o._token)):n("NOT_LOGGED_IN")}),(function(e){n("NOT_LOGGED_IN")})):(o._loggedInObservable.next(!0),t(o._token))}))},Object.defineProperty(e.prototype,"token",{get:function(){return this._token},set:function(e){this._token=e,localStorage.setItem(this._lsKey,e),this._decoded=u.decodeToken(this._token)},enumerable:!1,configurable:!0}),e.prototype.deleteToken=function(){localStorage.removeItem(this._lsKey)},e.prototype.isLoggedIn=function(){return!!this.token},Object.defineProperty(e.prototype,"profile",{get:function(){return this._decoded},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"admin",{get:function(){return 1==this.profile.permission},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"isLoggedInObservable",{get:function(){return this._loggedInObservable},enumerable:!1,configurable:!0}),e.prototype.logout=function(){var e=this;return new Promise((function(o,t){e.http.delete(e.config.apiProtocol+e.config.api+"/token/"+e._token).subscribe((function(t){e._token=null,localStorage.removeItem(e._lsKey),o(e.config.login)}),(function(e){t(e)}))}))},e}();function g(e,o){e.transitionService;var t=e.stateService,n=o.get(a),r=o.get(c);t.defaultErrorHandler((function(e){console.log("Default error handler - Membrs Angular Helper"),console.log(e),"NOT_LOGGED_IN"==e.detail&&(r.deleteToken(),window.location.href=n.login),"INSUFFICIENT_PERMISSIONS"==e.detail&&t.go(n.defaultState)}))}function f(){return console.log("retrieve from ls"),localStorage.getItem("membrs")}c.ɵprov=o.ɵɵdefineInjectable({factory:function(){return new c(o.ɵɵinject(n.HttpClient),o.ɵɵinject(a))},token:c,providedIn:"root"}),c.decorators=[{type:o.Injectable,args:[{providedIn:"root"}]}],c.ctorParameters=function(){return[{type:n.HttpClient},{type:void 0,decorators:[{type:o.Inject,args:[a]}]}]};var p={token:"reissue",deps:[s.Transition,s.UIRouter,c,a],resolveFn:h},d={token:"reissue",deps:[s.Transition,s.UIRouter,c,a],resolveFn:v},m={name:"reissue",url:"/reissue?token",views:{},resolve:[d]};function v(e,o,t,n){return new Promise((function(r,i){console.log("reissue promise resolve"),console.log(e.params().token),t.reissue(e.params().token).then((function(e){console.log("redirect to default state"),o.stateService.go(n.defaultState,{},{inherit:!1}),i()})).catch((function(e){console.log("error in reissue resolve"),console.log(e),i(e)}))}))}function h(e,o,t,n){return new Promise((function(e,o){console.log("validate promise resolve"),t.reissue().then((function(o){e(null)})).catch((function(e){console.log("error in validateResolveFn"),console.log(e),window.location.href=n.login,o(e)}))}))}var b=[m],k=function(){function e(){}return e.forRoot=function(o){var n=s.UIRouterModule.forChild({states:b,config:g}).providers;return n.push(t.JwtModule.forRoot({config:{tokenGetter:f,allowedDomains:[]}}).providers),n.push(c),n.push({provide:a,useValue:o}),{ngModule:e,providers:n}},e}();k.decorators=[{type:o.NgModule,args:[{imports:[i.CommonModule,n.HttpClientModule,t.JwtModule]}]}];var y=function(){function e(){}return e.prototype.intercept=function(e,o){return e=e.clone({setHeaders:{Authorization:localStorage.getItem("membrs")}}),o.handle(e).pipe(l.finalize((function(){})))},e}();y.decorators=[{type:o.Injectable}],y.ctorParameters=function(){return[]},e.MembrsModule=k,e.MembrsService=c,e.STATES=b,e.TokenInterceptor=y,e.jwtOptionsFactory=function(e){return console.log("jwt options factory"),console.log(e),{tokenGetter:function(){return console.log("token getter",localStorage.getItem("membrs")),localStorage.getItem("membrs")},allowedDomains:[e.api]}},e.reissueResolve=d,e.reissueResolveFn=v,e.reissueState=m,e.retrieveToken=f,e.validateResolve=p,e.validateResolveFn=h,e.ɵa=a,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=nakedcreativity-membrs-angular-helper.umd.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../projects/membrs/src/lib/config.service.ts","../../../projects/membrs/src/lib/membrs.service.ts","../../../projects/membrs/src/lib/router.config.ts","../../../projects/membrs/src/lib/token.ts","../../../projects/membrs/src/lib/membrs.module.ts","../../../projects/membrs/src/lib/auth.interceptor.ts"],"names":["MembrsConfigService","InjectionToken","jwtService","JwtHelperService","MembrsService","http","config","this","_lsKey","_loggedInObservable","BehaviorSubject","console","log","localStorage","getItem","token","prototype","reissue","_this","Promise","resolve","reject","_token","reissueIn","_decoded","exp","Math","floor","Date","now","post","apiProtocol","api","subscribe","response","next","error","Object","defineProperty","setItem","decodeToken","deleteToken","removeItem","isLoggedIn","profile","permission","logout","delete","login","routerConfigFn","router","injector","transitionService","stateService","get","membrsService","defaultErrorHandler","detail","window","location","href","go","defaultState","retrieveToken","Injectable","args","providedIn","HttpClient","Inject","validateResolve","deps","Transition","UIRouter","resolveFn","validateResolveFn","reissueResolve","reissueResolveFn","reissueState","name","url","views","transition","membrsConfig","params","then","inherit","catch","STATES","MembrsModule","forRoot","moduleProviders","UIRouterModule","forChild","states","providers","push","JwtModule","tokenGetter","allowedDomains","provide","useValue","ngModule","NgModule","imports","CommonModule","HttpClientModule","TokenInterceptor","intercept","request","clone","setHeaders","Authorization","handle","pipe","finalize"],"mappings":"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","sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { MembrsConfig } from './config.interface';\n\n/**\n * This is not a real service, but it looks like it from the outside.\n * It's just an InjectionTToken used to import the config object, provided from the outside\n */\nexport const MembrsConfigService = new InjectionToken<MembrsConfig>(\"MembrsConfig\");\n","import { Injectable, Inject } from '@angular/core';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { HttpClient } from '@angular/common/http'\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\nimport { BehaviorSubject } from 'rxjs';\nconst jwtService = new JwtHelperService()\n\n@Injectable({\n providedIn: 'root'\n})\n\n\nexport class MembrsService {\n\n _token: string;\n _decoded: any;\n _lsKey: string = 'membrs';\n _loggedInObservable: BehaviorSubject<Boolean> = new BehaviorSubject(false)\n\n constructor(private http: HttpClient, @Inject(MembrsConfigService) private config: MembrsConfig) {\n\n console.log('membrs constructor')\n // if the token exists in local storage, retrieve it back to the service\n if(localStorage.getItem(this._lsKey)){\n this.token = localStorage.getItem(this._lsKey)\n }\n \n }\n\n reissue(token?:string){\n\n return new Promise((resolve, reject)=>{\n\n if(!token && !this._token){\n reject('NOT_LOGGED_IN')\n }\n\n if(token)\n this.token = token\n\n // check stored token has not expired, or needs to be reissued soon\n var reissueIn = this._decoded.exp - Math.floor(Date.now()/1000)\n \n // token has expired\n if(reissueIn < 0){\n reject('NOT_LOGGED_IN')\n }\n \n // token expiring soon\n if(reissueIn < 300){\n\n this.http.post(this.config.apiProtocol + this.config.api+'/token/'+this._token, {}).subscribe((response:any)=>{\n\n if(response.token){\n this.token = response.token\n this._loggedInObservable.next(true)\n resolve(this._token)\n }else {\n reject('NOT_LOGGED_IN')\n }\n \n }, error=>{\n reject('NOT_LOGGED_IN')\n })\n\n }else {\n this._loggedInObservable.next(true)\n resolve(this._token)\n }\n \n })\n \n }\n\n set token(token){\n this._token = token\n localStorage.setItem(this._lsKey, token)\n this._decoded = jwtService.decodeToken(this._token)\n }\n\n deleteToken(){\n localStorage.removeItem(this._lsKey)\n }\n\n isLoggedIn(){\n return this.token ? true : false\n }\n\n get profile(){\n return this._decoded\n }\n\n get token(){\n return this._token\n }\n\n get admin (){\n return this.profile.permission == 1\n }\n\n get isLoggedInObservable(){\n return this._loggedInObservable\n }\n \n logout(){\n return new Promise((resolve, reject)=>{\n this.http.delete(this.config.apiProtocol+this.config.api+'/token/'+this._token).subscribe((response:any)=>{\n this._token = null;\n localStorage.removeItem(this._lsKey)\n resolve(this.config.login)\n //this.router.stateService.go('dashboard')\n }, error=>{\n reject(error)\n })\n })\n \n }\n\n\n}\n","import { UIRouter } from '@uirouter/core';\nimport { MembrsConfigService } from './config.service'\nimport { MembrsConfig } from './config.interface';\nimport { Injector } from '@angular/core';\nimport { MembrsService } from './membrs.service';\n\nexport function routerConfigFn(router: UIRouter, injector: Injector) {\n\n const transitionService = router.transitionService;\n const stateService = router.stateService\n const config:MembrsConfig = injector.get(MembrsConfigService)\n const membrsService = injector.get(MembrsService)\n\n \tstateService.defaultErrorHandler(function(error) {\n\t\t \n\t\tconsole.log('Default error handler - Membrs Angular Helper')\n\t\tconsole.log(error)\n\t\t\t\n\t\tif(error.detail == 'NOT_LOGGED_IN'){\n\t\t\tmembrsService.deleteToken()\n\t\t\twindow.location.href = config.login;\n\t\t}\n\n\t\tif(error.detail == 'INSUFFICIENT_PERMISSIONS')\n\t\t\tstateService.go(config.defaultState)\n\n\t});\n\t\n}","export function retrieveToken() {\n console.log('retrieve from ls')\n return localStorage.getItem('membrs');\n}","import { NgModule, ModuleWithProviders, Injector } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MembrsService } from './membrs.service';\nimport { JwtModule, JWT_OPTIONS } from \"@auth0/angular-jwt\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport { UIRouterModule } from '@uirouter/angular'\n\nimport { Ng2StateDeclaration } from '@uirouter/angular';\nimport { Transition, UIRouter } from '@uirouter/angular'\n\nimport { routerConfigFn } from './router.config';\nimport { MembrsConfig } from './config.interface';\nimport { MembrsConfigService } from './config.service';\nimport { retrieveToken } from './token';\n\nexport const validateResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService, MembrsConfigService ],\n resolveFn: validateResolveFn\n}\n\nexport const reissueResolve = {\n token: 'reissue',\n deps: [ Transition, UIRouter, MembrsService, MembrsConfigService ],\n resolveFn: reissueResolveFn\n}\n\nexport const reissueState:Ng2StateDeclaration = {\n\tname: 'reissue', \n\turl: '/reissue?token',\n\tviews: { },\n\tresolve: [\n reissueResolve\n\t]\n}\n\nexport function reissueResolveFn(transition, router, membrsService, membrsConfig:MembrsConfig) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('reissue promise resolve')\n console.log(transition.params().token)\n membrsService.reissue(transition.params().token).then((response)=>{\n console.log('redirect to default state')\n router.stateService.go(membrsConfig.defaultState, {}, {inherit:false})\n reject()\n }).catch(error=>{\n console.log('error in reissue resolve')\n console.log(error)\n //window.location.href = environment.login\n reject(error)\n })\n\n\t})\n}\n\nexport function validateResolveFn(transition, router, membrsService, membrsConfig:MembrsConfig) {\n \n //console.log(membrsService)\n return new Promise((resolve, reject) => {\n console.log('validate promise resolve')\n \n membrsService.reissue().then((response)=>{\n resolve(null)\n }).catch(error=>{\n console.log('error in validateResolveFn')\n console.log(error)\n window.location.href = membrsConfig.login\n reject(error)\n })\n\n})\n}\n\nexport function jwtOptionsFactory(config) {\n console.log('jwt options factory')\n console.log(config)\n return {\n tokenGetter: () => {\n console.log('token getter', localStorage.getItem('membrs'))\n return localStorage.getItem('membrs');\n },\n allowedDomains: [config.api]\n }\n}\n\n\n/** The top level state(s) */\nexport const STATES = [\n reissueState\n]\n\n\n@NgModule({\n imports: [\n CommonModule,\n HttpClientModule,\n JwtModule\n // JwtModule.forRoot({\n // config: {\n // tokenGetter: retrieveToken\n // }\n // })\n // UIRouterModule.forChild({\n // states: STATES,\n // config: routerConfigFn,\n // }),\n // JwtModule.forRoot({})\n ]\n})\n\n\n\nexport class MembrsModule { \n static forRoot(config: MembrsConfig): ModuleWithProviders<MembrsModule> {\n\n\n const moduleProviders = UIRouterModule.forChild({\n states: STATES,\n config: routerConfigFn\n }).providers\n\n moduleProviders.push(JwtModule.forRoot({\n config: {\n tokenGetter: retrieveToken,\n allowedDomains: []\n }\n }).providers)\n \n moduleProviders.push(MembrsService)\n moduleProviders.push({provide: MembrsConfigService,useValue: config});\n \n \n return {\n ngModule: MembrsModule, \n providers: moduleProviders //[{provide: MembrsConfigService,useValue: config}]\n };\n \n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpInterceptor\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n//import { NgBusyService } from '@nakedcreativity/ng-busy';\nimport { finalize } from 'rxjs/operators';\n\n\n@Injectable()\nexport class TokenInterceptor implements HttpInterceptor {\n constructor() {}\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n \n //this.busyService.busy()\n request = request.clone({\n setHeaders: {\n Authorization: localStorage.getItem('membrs')\n }\n });\n return next.handle(request).pipe(finalize(()=>{\n //this.busyService.finished()\n }));\n }\n}"]}
@@ -1,22 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- //import { NgBusyService } from '@nakedcreativity/ng-busy';
3
- import { finalize } from 'rxjs/operators';
4
- export class TokenInterceptor {
5
- constructor() { }
6
- intercept(request, next) {
7
- //this.busyService.busy()
8
- request = request.clone({
9
- setHeaders: {
10
- Authorization: localStorage.getItem('membrs')
11
- }
12
- });
13
- return next.handle(request).pipe(finalize(() => {
14
- //this.busyService.finished()
15
- }));
16
- }
17
- }
18
- TokenInterceptor.decorators = [
19
- { type: Injectable }
20
- ];
21
- TokenInterceptor.ctorParameters = () => [];
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvam9yZGFuY2hpdHR5L0dpdC9tZW1icnMtYXdzL215LW1lbWJycy9wcm9qZWN0cy9tZW1icnMvc3JjLyIsInNvdXJjZXMiOlsibGliL2F1dGguaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQywyREFBMkQ7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsZ0JBQWUsQ0FBQztJQUNoQixTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUVwRCx5QkFBeUI7UUFDekIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEIsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUM5QztTQUNGLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUUsRUFBRTtZQUM1Qyw2QkFBNkI7UUFDL0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7OztZQWRGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwUmVxdWVzdCxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBFdmVudCxcbiAgSHR0cEludGVyY2VwdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbi8vaW1wb3J0IHsgTmdCdXN5U2VydmljZSB9IGZyb20gJ0BuYWtlZGNyZWF0aXZpdHkvbmctYnVzeSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIGNvbnN0cnVjdG9yKCkge31cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIFxuICAgIC8vdGhpcy5idXN5U2VydmljZS5idXN5KClcbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZW1icnMnKVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKGZpbmFsaXplKCgpPT57XG4gICAgICAvL3RoaXMuYnVzeVNlcnZpY2UuZmluaXNoZWQoKVxuICAgIH0pKTtcbiAgfVxufSJdfQ==
@@ -1 +0,0 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvam9yZGFuY2hpdHR5L0dpdC9tZW1icnMtYXdzL215LW1lbWJycy9wcm9qZWN0cy9tZW1icnMvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWVtYnJzQ29uZmlnIHtcbiAgICBncmFwaFFMOiBzdHJpbmcsXG4gICAgYXBpOiBzdHJpbmcsXG4gICAgYXBpUHJvdG9jb2w6IHN0cmluZyxcbiAgICBsb2dpbjogc3RyaW5nLFxuICAgIGRlZmF1bHRTdGF0ZTogc3RyaW5nXG59Il19
@@ -1,7 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- /**
3
- * This is not a real service, but it looks like it from the outside.
4
- * It's just an InjectionTToken used to import the config object, provided from the outside
5
- */
6
- export const MembrsConfigService = new InjectionToken("MembrsConfig");
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiL1VzZXJzL2pvcmRhbmNoaXR0eS9HaXQvbWVtYnJzLWF3cy9teS1tZW1icnMvcHJvamVjdHMvbWVtYnJzL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFlLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhpcyBpcyBub3QgYSByZWFsIHNlcnZpY2UsIGJ1dCBpdCBsb29rcyBsaWtlIGl0IGZyb20gdGhlIG91dHNpZGUuXG4gKiBJdCdzIGp1c3QgYW4gSW5qZWN0aW9uVFRva2VuIHVzZWQgdG8gaW1wb3J0IHRoZSBjb25maWcgb2JqZWN0LCBwcm92aWRlZCBmcm9tIHRoZSBvdXRzaWRlXG4gKi9cbmV4cG9ydCBjb25zdCBNZW1icnNDb25maWdTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPE1lbWJyc0NvbmZpZz4oXCJNZW1icnNDb25maWdcIik7XG4iXX0=
@@ -1,114 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { MembrsService } from './membrs.service';
4
- import { JwtModule } from "@auth0/angular-jwt";
5
- import { HttpClientModule } from "@angular/common/http";
6
- import { UIRouterModule } from '@uirouter/angular';
7
- import { Transition, UIRouter } from '@uirouter/angular';
8
- import { routerConfigFn } from './router.config';
9
- import { MembrsConfigService } from './config.service';
10
- import { retrieveToken } from './token';
11
- export const validateResolve = {
12
- token: 'reissue',
13
- deps: [Transition, UIRouter, MembrsService, MembrsConfigService],
14
- resolveFn: validateResolveFn
15
- };
16
- export const reissueResolve = {
17
- token: 'reissue',
18
- deps: [Transition, UIRouter, MembrsService, MembrsConfigService],
19
- resolveFn: reissueResolveFn
20
- };
21
- export const reissueState = {
22
- name: 'reissue',
23
- url: '/reissue?token',
24
- views: {},
25
- resolve: [
26
- reissueResolve
27
- ]
28
- };
29
- export function reissueResolveFn(transition, router, membrsService, membrsConfig) {
30
- //console.log(membrsService)
31
- return new Promise((resolve, reject) => {
32
- console.log('reissue promise resolve');
33
- console.log(transition.params().token);
34
- membrsService.reissue(transition.params().token).then((response) => {
35
- console.log('redirect to default state');
36
- router.stateService.go(membrsConfig.defaultState, {}, { inherit: false });
37
- reject();
38
- }).catch(error => {
39
- console.log('error in reissue resolve');
40
- console.log(error);
41
- //window.location.href = environment.login
42
- reject(error);
43
- });
44
- });
45
- }
46
- export function validateResolveFn(transition, router, membrsService, membrsConfig) {
47
- //console.log(membrsService)
48
- return new Promise((resolve, reject) => {
49
- console.log('validate promise resolve');
50
- membrsService.reissue().then((response) => {
51
- resolve(null);
52
- }).catch(error => {
53
- console.log('error in validateResolveFn');
54
- console.log(error);
55
- window.location.href = membrsConfig.login;
56
- reject(error);
57
- });
58
- });
59
- }
60
- export function jwtOptionsFactory(config) {
61
- console.log('jwt options factory');
62
- console.log(config);
63
- return {
64
- tokenGetter: () => {
65
- console.log('token getter', localStorage.getItem('membrs'));
66
- return localStorage.getItem('membrs');
67
- },
68
- allowedDomains: [config.api]
69
- };
70
- }
71
- /** The top level state(s) */
72
- export const STATES = [
73
- reissueState
74
- ];
75
- export class MembrsModule {
76
- static forRoot(config) {
77
- const moduleProviders = UIRouterModule.forChild({
78
- states: STATES,
79
- config: routerConfigFn
80
- }).providers;
81
- moduleProviders.push(JwtModule.forRoot({
82
- config: {
83
- tokenGetter: retrieveToken,
84
- allowedDomains: []
85
- }
86
- }).providers);
87
- moduleProviders.push(MembrsService);
88
- moduleProviders.push({ provide: MembrsConfigService, useValue: config });
89
- return {
90
- ngModule: MembrsModule,
91
- providers: moduleProviders //[{provide: MembrsConfigService,useValue: config}]
92
- };
93
- }
94
- }
95
- MembrsModule.decorators = [
96
- { type: NgModule, args: [{
97
- imports: [
98
- CommonModule,
99
- HttpClientModule,
100
- JwtModule
101
- // JwtModule.forRoot({
102
- // config: {
103
- // tokenGetter: retrieveToken
104
- // }
105
- // })
106
- // UIRouterModule.forChild({
107
- // states: STATES,
108
- // config: routerConfigFn,
109
- // }),
110
- // JwtModule.forRoot({})
111
- ]
112
- },] }
113
- ];
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYnJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvVXNlcnMvam9yZGFuY2hpdHR5L0dpdC9tZW1icnMtYXdzL215LW1lbWJycy9wcm9qZWN0cy9tZW1icnMvc3JjLyIsInNvdXJjZXMiOlsibGliL21lbWJycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBR2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLElBQUksRUFBRSxDQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFFO0lBQ2xFLFNBQVMsRUFBRSxpQkFBaUI7Q0FDL0IsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixLQUFLLEVBQUUsU0FBUztJQUNoQixJQUFJLEVBQUUsQ0FBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBRTtJQUNsRSxTQUFTLEVBQUUsZ0JB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QUNsQixZQUFZO0NBQ2YsQ0FBQTtBQXVCRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQW9CO1FBR2pDLE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDOUMsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsY0FBYztTQUN2QixDQUFDLENBQUMsU0FBUyxDQUFBO1FBRVosZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ3JDLE1BQU0sRUFBRTtnQkFDTixXQUFXLEVBQUUsYUFBYTtnQkFDMUIsY0FBYyxFQUFFLEVBQUU7YUFDbkI7U0FDRixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFYixlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ25DLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFHdEUsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRSxlQUFlLENBQUMsbURBQW1EO1NBQy9FLENBQUM7SUFFSixDQUFDOzs7WUE3Q0YsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsU0FBUztvQkFDVCxzQkFBc0I7b0JBQ3RCLGNBQWM7b0JBQ2QsaUNBQWlDO29CQUNqQyxNQUFNO29CQUNOLEtBQUs7b0JBQ0wsNEJBQTRCO29CQUM1QixvQkFBb0I7b0JBQ3BCLDRCQUE0QjtvQkFDNUIsTUFBTTtvQkFDTix3QkFBd0I7aUJBQ3pCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycywgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNZW1icnNTZXJ2aWNlIH0gZnJvbSAnLi9tZW1icnMuc2VydmljZSc7XG5pbXBvcnQgeyBKd3RNb2R1bGUsIEpXVF9PUFRJT05TIH0gZnJvbSBcIkBhdXRoMC9hbmd1bGFyLWp3dFwiO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgVUlSb3V0ZXJNb2R1bGUgfSBmcm9tICdAdWlyb3V0ZXIvYW5ndWxhcidcblxuaW1wb3J0IHsgTmcyU3RhdGVEZWNsYXJhdGlvbiB9IGZyb20gJ0B1aXJvdXRlci9hbmd1bGFyJztcbmltcG9ydCB7IFRyYW5zaXRpb24sIFVJUm91dGVyIH0gZnJvbSAnQHVpcm91dGVyL2FuZ3VsYXInXG5cbmltcG9ydCB7IHJvdXRlckNvbmZpZ0ZuIH0gZnJvbSAnLi9yb3V0ZXIuY29uZmlnJztcbmltcG9ydCB7IE1lbWJyc0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNZW1icnNDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyByZXRyaWV2ZVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVJlc29sdmUgPSB7XG4gICAgdG9rZW46ICdyZWlzc3VlJyxcbiAgICBkZXBzOiBbIFRyYW5zaXRpb24sIFVJUm91dGVyLCBNZW1icnNTZXJ2aWNlLCBNZW1icnNDb25maWdTZXJ2aWNlIF0sXG4gICAgcmVzb2x2ZUZuOiB2YWxpZGF0ZVJlc29sdmVGblxufVxuXG5leHBvcnQgY29uc3QgcmVpc3N1ZVJlc29sdmUgPSB7XG4gIHRva2VuOiAncmVpc3N1ZScsXG4gIGRlcHM6IFsgVHJhbnNpdGlvbiwgVUlSb3V0ZXIsIE1lbWJyc1NlcnZpY2UsIE1lbWJyc0NvbmZpZ1NlcnZpY2UgXSxcbiAgcmVzb2x2ZUZuOiByZWlzc3VlUmVzb2x2ZUZuXG59XG5cbmV4cG9ydCBjb25zdCByZWlzc3VlU3RhdGU6TmcyU3RhdGVEZWNsYXJhdGlvbiA9IHtcblx0bmFtZTogJ3JlaXNzdWUnLCBcblx0dXJsOiAnL3JlaXNzdWU/dG9rZW4nLFxuXHR2aWV3czogeyB9LFxuXHRyZXNvbHZlOiBbXG4gICAgcmVpc3N1ZVJlc29sdmVcblx0XVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVpc3N1ZVJlc29sdmVGbih0cmFuc2l0aW9uLCByb3V0ZXIsIG1lbWJyc1NlcnZpY2UsIG1lbWJyc0NvbmZpZzpNZW1icnNDb25maWcpIHtcbiAgICBcbiAgICAvL2NvbnNvbGUubG9nKG1lbWJyc1NlcnZpY2UpXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdyZWlzc3VlIHByb21pc2UgcmVzb2x2ZScpXG4gICAgICBjb25zb2xlLmxvZyh0cmFuc2l0aW9uLnBhcmFtcygpLnRva2VuKVxuICAgICAgbWVtYnJzU2VydmljZS5yZWlzc3VlKHRyYW5zaXRpb24ucGFyYW1zKCkudG9rZW4pLnRoZW4oKHJlc3BvbnNlKT0+e1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdyZWRpcmVjdCB0byBkZWZhdWx0IHN0YXRlJylcbiAgICAgICAgICByb3V0ZXIuc3RhdGVTZXJ2aWNlLmdvKG1lbWJyc0NvbmZpZy5kZWZhdWx0U3RhdGUsIHt9LCB7aW5oZXJpdDpmYWxzZX0pXG4gICAgICAgICAgcmVqZWN0KClcbiAgICAgIH0pLmNhdGNoKGVycm9yPT57XG4gICAgICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGluIHJlaXNzdWUgcmVzb2x2ZScpXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgICAgICAgLy93aW5kb3cubG9jYXRpb24uaHJlZiA9IGVudmlyb25tZW50LmxvZ2luXG4gICAgICAgICAgcmVqZWN0KGVycm9yKVxuICAgICAgfSlcblxuXHR9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSZXNvbHZlRm4odHJhbnNpdGlvbiwgcm91dGVyLCBtZW1icnNTZXJ2aWNlLCBtZW1icnNDb25maWc6TWVtYnJzQ29uZmlnKSB7XG4gIFxuICAvL2NvbnNvbGUubG9nKG1lbWJyc1NlcnZpY2UpXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc29sZS5sb2coJ3ZhbGlkYXRlIHByb21pc2UgcmVzb2x2ZScpXG4gICAgXG4gICAgbWVtYnJzU2VydmljZS5yZWlzc3VlKCkudGhlbigocmVzcG9uc2UpPT57XG4gICAgICAgIHJlc29sdmUobnVsbClcbiAgICB9KS5jYXRjaChlcnJvcj0+e1xuICAgICAgY29uc29sZS5sb2coJ2Vycm9yIGluIHZhbGlkYXRlUmVzb2x2ZUZuJylcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IG1lbWJyc0NvbmZpZy5sb2dpblxuICAgICAgICByZWplY3QoZXJyb3IpXG4gICAgfSlcblxufSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGp3dE9wdGlvbnNGYWN0b3J5KGNvbmZpZykge1xuICBjb25zb2xlLmxvZygnand0IG9wdGlvbnMgZmFjdG9yeScpXG4gIGNvbnNvbGUubG9nKGNvbmZpZylcbiAgcmV0dXJuIHtcbiAgICB0b2tlbkdldHRlcjogKCkgPT4ge1xuICAgICAgY29uc29sZS5sb2coJ3Rva2VuIGdldHRlcicsICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVtYnJzJykpXG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21lbWJycycpO1xuICAgIH0sXG4gICAgYWxsb3dlZERvbWFpbnM6IFtjb25maWcuYXBpXVxuICB9XG59XG5cblxuLyoqIFRoZSB0b3AgbGV2ZWwgc3RhdGUocykgKi9cbmV4cG9ydCBjb25zdCBTVEFURVMgPSBbXG4gICAgcmVpc3N1ZVN0YXRlXG5dXG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEp3dE1vZHVsZVxuICAgIC8vIEp3dE1vZHVsZS5mb3JSb290KHtcbiAgICAvLyAgIGNvbmZpZzoge1xuICAgIC8vICAgICB0b2tlbkdldHRlcjogcmV0cmlldmVUb2tlblxuICAgIC8vICAgfVxuICAgIC8vIH0pXG4gICAgLy8gVUlSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgIC8vICAgc3RhdGVzOiBTVEFURVMsXG4gICAgLy8gICBjb25maWc6IHJvdXRlckNvbmZpZ0ZuLFxuICAgIC8vIH0pLFxuICAgIC8vIEp3dE1vZHVsZS5mb3JSb290KHt9KVxuICBdXG59KVxuXG5cblxuZXhwb3J0IGNsYXNzIE1lbWJyc01vZHVsZSB7IFxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IE1lbWJyc0NvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TWVtYnJzTW9kdWxlPiB7XG5cblxuICAgIGNvbnN0IG1vZHVsZVByb3ZpZGVycyA9IFVJUm91dGVyTW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIHN0YXRlczogU1RBVEVTLFxuICAgICAgY29uZmlnOiByb3V0ZXJDb25maWdGblxuICAgIH0pLnByb3ZpZGVyc1xuXG4gICAgbW9kdWxlUHJvdmlkZXJzLnB1c2goSnd0TW9kdWxlLmZvclJvb3Qoe1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHRva2VuR2V0dGVyOiByZXRyaWV2ZVRva2VuLFxuICAgICAgICBhbGxvd2VkRG9tYWluczogW11cbiAgICAgIH1cbiAgICB9KS5wcm92aWRlcnMpXG4gICAgICBcbiAgICBtb2R1bGVQcm92aWRlcnMucHVzaChNZW1icnNTZXJ2aWNlKVxuICAgIG1vZHVsZVByb3ZpZGVycy5wdXNoKHtwcm92aWRlOiBNZW1icnNDb25maWdTZXJ2aWNlLHVzZVZhbHVlOiBjb25maWd9KTtcbiAgICBcbiAgIFxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTWVtYnJzTW9kdWxlLCBcbiAgICAgIHByb3ZpZGVyczogbW9kdWxlUHJvdmlkZXJzIC8vW3twcm92aWRlOiBNZW1icnNDb25maWdTZXJ2aWNlLHVzZVZhbHVlOiBjb25maWd9XVxuICAgIH07XG4gICAgXG4gIH1cblxufVxuIl19