@myrmidon/auth-jwt-admin 1.0.5 → 2.0.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/esm2022/lib/auth-jwt-admin.module.mjs +120 -0
- package/esm2022/lib/components/auth-jwt-registration/auth-jwt-registration.component.mjs +165 -0
- package/esm2022/lib/components/confirm-dialog/confirm-dialog.component.mjs +30 -0
- package/esm2022/lib/components/password-strength-bar/password-strength-bar.component.mjs +81 -0
- package/esm2022/lib/components/state/user-list.repository.mjs +145 -0
- package/esm2022/lib/components/user-editor/user-editor.component.mjs +113 -0
- package/esm2022/lib/components/user-filter/user-filter.component.mjs +56 -0
- package/esm2022/lib/components/user-list/user-list.component.mjs +71 -0
- package/esm2022/lib/services/auth-jwt-account.service.mjs +182 -0
- package/esm2022/lib/services/dialog.service.mjs +38 -0
- package/{esm2020 → esm2022}/lib/validators/password.validators.mjs +48 -48
- package/{esm2020 → esm2022}/myrmidon-auth-jwt-admin.mjs +4 -4
- package/{esm2020 → esm2022}/public-api.mjs +12 -12
- package/fesm2022/myrmidon-auth-jwt-admin.mjs +992 -0
- package/fesm2022/myrmidon-auth-jwt-admin.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/auth-jwt-admin.module.d.ts +30 -30
- package/lib/components/auth-jwt-registration/auth-jwt-registration.component.d.ts +37 -37
- package/lib/components/confirm-dialog/confirm-dialog.component.d.ts +15 -15
- package/lib/components/password-strength-bar/password-strength-bar.component.d.ts +17 -17
- package/lib/components/state/user-list.repository.d.ts +36 -36
- package/lib/components/user-editor/user-editor.component.d.ts +29 -29
- package/lib/components/user-filter/user-filter.component.d.ts +21 -21
- package/lib/components/user-list/user-list.component.d.ts +29 -28
- package/lib/services/auth-jwt-account.service.d.ts +114 -114
- package/lib/services/dialog.service.d.ts +19 -19
- package/lib/validators/password.validators.d.ts +6 -6
- package/package.json +24 -17
- package/public-api.d.ts +8 -8
- package/esm2020/lib/auth-jwt-admin.module.mjs +0 -119
- package/esm2020/lib/components/auth-jwt-registration/auth-jwt-registration.component.mjs +0 -164
- package/esm2020/lib/components/confirm-dialog/confirm-dialog.component.mjs +0 -29
- package/esm2020/lib/components/password-strength-bar/password-strength-bar.component.mjs +0 -80
- package/esm2020/lib/components/state/user-list.repository.mjs +0 -144
- package/esm2020/lib/components/user-editor/user-editor.component.mjs +0 -112
- package/esm2020/lib/components/user-filter/user-filter.component.mjs +0 -55
- package/esm2020/lib/components/user-list/user-list.component.mjs +0 -69
- package/esm2020/lib/services/auth-jwt-account.service.mjs +0 -181
- package/esm2020/lib/services/dialog.service.mjs +0 -37
- package/fesm2015/myrmidon-auth-jwt-admin.mjs +0 -997
- package/fesm2015/myrmidon-auth-jwt-admin.mjs.map +0 -1
- package/fesm2020/myrmidon-auth-jwt-admin.mjs +0 -991
- package/fesm2020/myrmidon-auth-jwt-admin.mjs.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { OnInit } from '@angular/core';
|
|
2
|
-
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { UserFilter } from '../../services/auth-jwt-account.service';
|
|
5
|
-
import { UserListRepository } from '../state/user-list.repository';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class UserFilterComponent implements OnInit {
|
|
8
|
-
private _repository;
|
|
9
|
-
disabled: boolean | undefined;
|
|
10
|
-
filter$: Observable<UserFilter>;
|
|
11
|
-
name: FormControl<string | null>;
|
|
12
|
-
form: FormGroup;
|
|
13
|
-
constructor(formBuilder: FormBuilder, _repository: UserListRepository);
|
|
14
|
-
ngOnInit(): void;
|
|
15
|
-
private updateForm;
|
|
16
|
-
reset(): void;
|
|
17
|
-
private getFilter;
|
|
18
|
-
apply(): void;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<UserFilterComponent, never>;
|
|
20
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<UserFilterComponent, "auth-jwt-user-filter", never, { "disabled": "disabled"; }, {}, never, never, false, never>;
|
|
21
|
-
}
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { UserFilter } from '../../services/auth-jwt-account.service';
|
|
5
|
+
import { UserListRepository } from '../state/user-list.repository';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class UserFilterComponent implements OnInit {
|
|
8
|
+
private _repository;
|
|
9
|
+
disabled: boolean | undefined;
|
|
10
|
+
filter$: Observable<UserFilter>;
|
|
11
|
+
name: FormControl<string | null>;
|
|
12
|
+
form: FormGroup;
|
|
13
|
+
constructor(formBuilder: FormBuilder, _repository: UserListRepository);
|
|
14
|
+
ngOnInit(): void;
|
|
15
|
+
private updateForm;
|
|
16
|
+
reset(): void;
|
|
17
|
+
private getFilter;
|
|
18
|
+
apply(): void;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserFilterComponent, never>;
|
|
20
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserFilterComponent, "auth-jwt-user-filter", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
|
|
21
|
+
}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { PageEvent } from '@angular/material/paginator';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
static
|
|
28
|
-
}
|
|
1
|
+
import { PageEvent } from '@angular/material/paginator';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import '@angular/localize/init';
|
|
4
|
+
import { PaginationData } from '@ngneat/elf-pagination';
|
|
5
|
+
import { GravatarService, User } from '@myrmidon/auth-jwt-login';
|
|
6
|
+
import { DialogService } from '../../services/dialog.service';
|
|
7
|
+
import { UserListRepository } from '../state/user-list.repository';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export declare class UserListComponent {
|
|
10
|
+
private _repository;
|
|
11
|
+
private _dialogService;
|
|
12
|
+
private _gravatarService;
|
|
13
|
+
pagination$: Observable<PaginationData & {
|
|
14
|
+
data: User[];
|
|
15
|
+
}>;
|
|
16
|
+
active$: Observable<User | undefined>;
|
|
17
|
+
loading$: Observable<boolean>;
|
|
18
|
+
constructor(_repository: UserListRepository, _dialogService: DialogService, _gravatarService: GravatarService);
|
|
19
|
+
pageChange(event: PageEvent): void;
|
|
20
|
+
deleteUser(user: User): void;
|
|
21
|
+
setActiveUser(user: User | null): void;
|
|
22
|
+
resetActiveUser(): void;
|
|
23
|
+
saveActiveUser(user: User): void;
|
|
24
|
+
onUserEditorClose(): void;
|
|
25
|
+
getGravatarUrl(email: string, size?: number): string | null;
|
|
26
|
+
clearCache(): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UserListComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UserListComponent, "auth-jwt-user-list", never, {}, {}, never, never, false, never>;
|
|
29
|
+
}
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { DataPage, EnvService, ErrorService } from '@myrmidon/ng-tools';
|
|
4
|
-
import { User } from '@myrmidon/auth-jwt-login';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* User registration model. You can expand this interface to add more data.
|
|
8
|
-
*/
|
|
9
|
-
export interface RegistrationModel {
|
|
10
|
-
email: string;
|
|
11
|
-
name: string;
|
|
12
|
-
firstName?: string;
|
|
13
|
-
lastName?: string;
|
|
14
|
-
password: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Result of an existing resource check.
|
|
18
|
-
*/
|
|
19
|
-
export interface ExistResult {
|
|
20
|
-
entry: string;
|
|
21
|
-
isExisting: boolean;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Password change data.
|
|
25
|
-
*/
|
|
26
|
-
export interface PasswordChange {
|
|
27
|
-
email: string;
|
|
28
|
-
oldPassword: string;
|
|
29
|
-
newPassword: string;
|
|
30
|
-
confirmPassword: string;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* User filter parameters.
|
|
34
|
-
*/
|
|
35
|
-
export interface UserFilter {
|
|
36
|
-
name?: string;
|
|
37
|
-
}
|
|
38
|
-
export declare class AuthJwtAccountService {
|
|
39
|
-
private _http;
|
|
40
|
-
private _error;
|
|
41
|
-
private _env;
|
|
42
|
-
constructor(_http: HttpClient, _error: ErrorService, _env: EnvService);
|
|
43
|
-
/**
|
|
44
|
-
* Checks if the specified email address is registered on the server.
|
|
45
|
-
* @param email email address to test.
|
|
46
|
-
* @returns result.
|
|
47
|
-
*/
|
|
48
|
-
isEmailRegistered(email: string): Observable<ExistResult>;
|
|
49
|
-
/**
|
|
50
|
-
* Checks if the specified user's given name is registered on the server.
|
|
51
|
-
* This name is a nickname chosen by users during registration, and is the key
|
|
52
|
-
* used for referencing users when talking to the server.
|
|
53
|
-
* @param name name to test.
|
|
54
|
-
* @returns result.
|
|
55
|
-
*/
|
|
56
|
-
isNameRegistered(name: string): Observable<ExistResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Register the user with the specified registration data.
|
|
59
|
-
* @param registration The registration data.
|
|
60
|
-
* @param confirmed True to automatically confirm the user's email address
|
|
61
|
-
* without sending the confirmation email message.
|
|
62
|
-
*/
|
|
63
|
-
register(registration: RegistrationModel, confirmed?: boolean): Observable<any>;
|
|
64
|
-
/**
|
|
65
|
-
* Resend the confirmation email to the specified address.
|
|
66
|
-
* @param email address.
|
|
67
|
-
*/
|
|
68
|
-
resendConfirmEmail(email: string): Observable<any>;
|
|
69
|
-
/**
|
|
70
|
-
* Request a password reset for the specified email address.
|
|
71
|
-
* @param email Email address.
|
|
72
|
-
*/
|
|
73
|
-
requestPasswordReset(email: string): Observable<any>;
|
|
74
|
-
getAllUsers(): Observable<DataPage<User>>;
|
|
75
|
-
getUsers(filter: UserFilter, pageNumber?: number, pageSize?: number): Observable<DataPage<User>>;
|
|
76
|
-
/**
|
|
77
|
-
* Get the top N users matching the specified name filter.
|
|
78
|
-
* @param nameFilter The user name filter.
|
|
79
|
-
* @param limit The maximum number of users to get.
|
|
80
|
-
*/
|
|
81
|
-
getTopUsers(nameFilter: string, limit?: number): Observable<User[]>;
|
|
82
|
-
/**
|
|
83
|
-
* Get information about all the users listed in the specified names.
|
|
84
|
-
* @param names User(s) names.
|
|
85
|
-
*/
|
|
86
|
-
getUsersFromNames(names: string[]): Observable<User[]>;
|
|
87
|
-
/**
|
|
88
|
-
* Get data about the specified user.
|
|
89
|
-
* @param name The user name.
|
|
90
|
-
*/
|
|
91
|
-
getUser(name: string): Observable<User>;
|
|
92
|
-
/**
|
|
93
|
-
* Update the editable data for the specified user.
|
|
94
|
-
* @param user The user to update.
|
|
95
|
-
*/
|
|
96
|
-
updateUser(user: User): Observable<any>;
|
|
97
|
-
/**
|
|
98
|
-
* Request a password reset email for the specified email address.
|
|
99
|
-
* @param email The email address to receive the reset message.
|
|
100
|
-
*/
|
|
101
|
-
resetPassword(email: string): Observable<any>;
|
|
102
|
-
/**
|
|
103
|
-
* Change the password.
|
|
104
|
-
* @param change The password change data.
|
|
105
|
-
*/
|
|
106
|
-
changePassword(change: PasswordChange): Observable<any>;
|
|
107
|
-
/**
|
|
108
|
-
* Delete the user with the specified username.
|
|
109
|
-
* @param name The user name.
|
|
110
|
-
*/
|
|
111
|
-
deleteUser(name: string): Observable<any>;
|
|
112
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AuthJwtAccountService, never>;
|
|
113
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<AuthJwtAccountService>;
|
|
114
|
-
}
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { DataPage, EnvService, ErrorService } from '@myrmidon/ng-tools';
|
|
4
|
+
import { User } from '@myrmidon/auth-jwt-login';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* User registration model. You can expand this interface to add more data.
|
|
8
|
+
*/
|
|
9
|
+
export interface RegistrationModel {
|
|
10
|
+
email: string;
|
|
11
|
+
name: string;
|
|
12
|
+
firstName?: string;
|
|
13
|
+
lastName?: string;
|
|
14
|
+
password: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Result of an existing resource check.
|
|
18
|
+
*/
|
|
19
|
+
export interface ExistResult {
|
|
20
|
+
entry: string;
|
|
21
|
+
isExisting: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Password change data.
|
|
25
|
+
*/
|
|
26
|
+
export interface PasswordChange {
|
|
27
|
+
email: string;
|
|
28
|
+
oldPassword: string;
|
|
29
|
+
newPassword: string;
|
|
30
|
+
confirmPassword: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* User filter parameters.
|
|
34
|
+
*/
|
|
35
|
+
export interface UserFilter {
|
|
36
|
+
name?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare class AuthJwtAccountService {
|
|
39
|
+
private _http;
|
|
40
|
+
private _error;
|
|
41
|
+
private _env;
|
|
42
|
+
constructor(_http: HttpClient, _error: ErrorService, _env: EnvService);
|
|
43
|
+
/**
|
|
44
|
+
* Checks if the specified email address is registered on the server.
|
|
45
|
+
* @param email email address to test.
|
|
46
|
+
* @returns result.
|
|
47
|
+
*/
|
|
48
|
+
isEmailRegistered(email: string): Observable<ExistResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Checks if the specified user's given name is registered on the server.
|
|
51
|
+
* This name is a nickname chosen by users during registration, and is the key
|
|
52
|
+
* used for referencing users when talking to the server.
|
|
53
|
+
* @param name name to test.
|
|
54
|
+
* @returns result.
|
|
55
|
+
*/
|
|
56
|
+
isNameRegistered(name: string): Observable<ExistResult>;
|
|
57
|
+
/**
|
|
58
|
+
* Register the user with the specified registration data.
|
|
59
|
+
* @param registration The registration data.
|
|
60
|
+
* @param confirmed True to automatically confirm the user's email address
|
|
61
|
+
* without sending the confirmation email message.
|
|
62
|
+
*/
|
|
63
|
+
register(registration: RegistrationModel, confirmed?: boolean): Observable<any>;
|
|
64
|
+
/**
|
|
65
|
+
* Resend the confirmation email to the specified address.
|
|
66
|
+
* @param email address.
|
|
67
|
+
*/
|
|
68
|
+
resendConfirmEmail(email: string): Observable<any>;
|
|
69
|
+
/**
|
|
70
|
+
* Request a password reset for the specified email address.
|
|
71
|
+
* @param email Email address.
|
|
72
|
+
*/
|
|
73
|
+
requestPasswordReset(email: string): Observable<any>;
|
|
74
|
+
getAllUsers(): Observable<DataPage<User>>;
|
|
75
|
+
getUsers(filter: UserFilter, pageNumber?: number, pageSize?: number): Observable<DataPage<User>>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the top N users matching the specified name filter.
|
|
78
|
+
* @param nameFilter The user name filter.
|
|
79
|
+
* @param limit The maximum number of users to get.
|
|
80
|
+
*/
|
|
81
|
+
getTopUsers(nameFilter: string, limit?: number): Observable<User[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Get information about all the users listed in the specified names.
|
|
84
|
+
* @param names User(s) names.
|
|
85
|
+
*/
|
|
86
|
+
getUsersFromNames(names: string[]): Observable<User[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Get data about the specified user.
|
|
89
|
+
* @param name The user name.
|
|
90
|
+
*/
|
|
91
|
+
getUser(name: string): Observable<User>;
|
|
92
|
+
/**
|
|
93
|
+
* Update the editable data for the specified user.
|
|
94
|
+
* @param user The user to update.
|
|
95
|
+
*/
|
|
96
|
+
updateUser(user: User): Observable<any>;
|
|
97
|
+
/**
|
|
98
|
+
* Request a password reset email for the specified email address.
|
|
99
|
+
* @param email The email address to receive the reset message.
|
|
100
|
+
*/
|
|
101
|
+
resetPassword(email: string): Observable<any>;
|
|
102
|
+
/**
|
|
103
|
+
* Change the password.
|
|
104
|
+
* @param change The password change data.
|
|
105
|
+
*/
|
|
106
|
+
changePassword(change: PasswordChange): Observable<any>;
|
|
107
|
+
/**
|
|
108
|
+
* Delete the user with the specified username.
|
|
109
|
+
* @param name The user name.
|
|
110
|
+
*/
|
|
111
|
+
deleteUser(name: string): Observable<any>;
|
|
112
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthJwtAccountService, never>;
|
|
113
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthJwtAccountService>;
|
|
114
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* This service acts as a wrapper for MatDialog to simplify the process of calling
|
|
6
|
-
* the dialog and subscribing to it. What it will do is create an Instance of
|
|
7
|
-
* MatDialog with our custom component (ConfirmDialogComponent). Then it will set
|
|
8
|
-
* any public properties it needs to by setting the properties on the
|
|
9
|
-
* componentInstance object. It will return the observable afterClosed()
|
|
10
|
-
* to the caller so they can subscribe to it. This will emit an event whenever
|
|
11
|
-
* the dialog is closed.
|
|
12
|
-
*/
|
|
13
|
-
export declare class DialogService {
|
|
14
|
-
private dialog;
|
|
15
|
-
constructor(dialog: MatDialog);
|
|
16
|
-
confirm(title: string, prompt: string, ok?: string, cancel?: string): Observable<boolean>;
|
|
17
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
|
|
18
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
|
19
|
-
}
|
|
1
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* This service acts as a wrapper for MatDialog to simplify the process of calling
|
|
6
|
+
* the dialog and subscribing to it. What it will do is create an Instance of
|
|
7
|
+
* MatDialog with our custom component (ConfirmDialogComponent). Then it will set
|
|
8
|
+
* any public properties it needs to by setting the properties on the
|
|
9
|
+
* componentInstance object. It will return the observable afterClosed()
|
|
10
|
+
* to the caller so they can subscribe to it. This will emit an event whenever
|
|
11
|
+
* the dialog is closed.
|
|
12
|
+
*/
|
|
13
|
+
export declare class DialogService {
|
|
14
|
+
private dialog;
|
|
15
|
+
constructor(dialog: MatDialog);
|
|
16
|
+
confirm(title: string, prompt: string, ok?: string, cancel?: string): Observable<boolean>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DialogService, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DialogService>;
|
|
19
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ValidatorFn } from '@angular/forms';
|
|
2
|
-
export declare class PasswordValidators {
|
|
3
|
-
/** "Standard" password validator for my API services. */
|
|
4
|
-
static standard(): ValidatorFn;
|
|
5
|
-
static areEqual(controlName: string, otherControlName: string): ValidatorFn;
|
|
6
|
-
}
|
|
1
|
+
import { ValidatorFn } from '@angular/forms';
|
|
2
|
+
export declare class PasswordValidators {
|
|
3
|
+
/** "Standard" password validator for my API services. */
|
|
4
|
+
static standard(): ValidatorFn;
|
|
5
|
+
static areEqual(controlName: string, otherControlName: string): ValidatorFn;
|
|
6
|
+
}
|
package/package.json
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myrmidon/auth-jwt-admin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "JWT-based auth services accounts admin component.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"JWT",
|
|
7
|
+
"authentication"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/Myrmex/auth-jwt",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/Myrmex/auth-jwt"
|
|
13
|
+
},
|
|
14
|
+
"author": {
|
|
15
|
+
"name": "Daniele Fusi"
|
|
16
|
+
},
|
|
4
17
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@angular/material": "^
|
|
8
|
-
"@myrmidon/auth-jwt-login": "^
|
|
9
|
-
"@myrmidon/ng-tools": "^
|
|
18
|
+
"@angular/common": "^16.0.0",
|
|
19
|
+
"@angular/core": "^16.0.0",
|
|
20
|
+
"@angular/material": "^16.0.0",
|
|
21
|
+
"@myrmidon/auth-jwt-login": "^2.0.0",
|
|
22
|
+
"@myrmidon/ng-tools": "^2.0.0"
|
|
10
23
|
},
|
|
11
24
|
"dependencies": {
|
|
12
|
-
"tslib": "^2.
|
|
25
|
+
"tslib": "^2.5.0"
|
|
13
26
|
},
|
|
14
|
-
"module": "
|
|
15
|
-
"es2020": "fesm2020/myrmidon-auth-jwt-admin.mjs",
|
|
16
|
-
"esm2020": "esm2020/myrmidon-auth-jwt-admin.mjs",
|
|
17
|
-
"fesm2020": "fesm2020/myrmidon-auth-jwt-admin.mjs",
|
|
18
|
-
"fesm2015": "fesm2015/myrmidon-auth-jwt-admin.mjs",
|
|
27
|
+
"module": "fesm2022/myrmidon-auth-jwt-admin.mjs",
|
|
19
28
|
"typings": "index.d.ts",
|
|
20
29
|
"exports": {
|
|
21
30
|
"./package.json": {
|
|
@@ -23,11 +32,9 @@
|
|
|
23
32
|
},
|
|
24
33
|
".": {
|
|
25
34
|
"types": "./index.d.ts",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"node": "./fesm2015/myrmidon-auth-jwt-admin.mjs",
|
|
30
|
-
"default": "./fesm2020/myrmidon-auth-jwt-admin.mjs"
|
|
35
|
+
"esm2022": "./esm2022/myrmidon-auth-jwt-admin.mjs",
|
|
36
|
+
"esm": "./esm2022/myrmidon-auth-jwt-admin.mjs",
|
|
37
|
+
"default": "./fesm2022/myrmidon-auth-jwt-admin.mjs"
|
|
31
38
|
}
|
|
32
39
|
},
|
|
33
40
|
"sideEffects": false
|
package/public-api.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './lib/components/auth-jwt-registration/auth-jwt-registration.component';
|
|
2
|
-
export * from './lib/components/password-strength-bar/password-strength-bar.component';
|
|
3
|
-
export * from './lib/components/user-filter/user-filter.component';
|
|
4
|
-
export * from './lib/components/user-list/user-list.component';
|
|
5
|
-
export * from './lib/components/state/user-list.repository';
|
|
6
|
-
export * from './lib/services/auth-jwt-account.service';
|
|
7
|
-
export * from './lib/validators/password.validators';
|
|
8
|
-
export * from './lib/auth-jwt-admin.module';
|
|
1
|
+
export * from './lib/components/auth-jwt-registration/auth-jwt-registration.component';
|
|
2
|
+
export * from './lib/components/password-strength-bar/password-strength-bar.component';
|
|
3
|
+
export * from './lib/components/user-filter/user-filter.component';
|
|
4
|
+
export * from './lib/components/user-list/user-list.component';
|
|
5
|
+
export * from './lib/components/state/user-list.repository';
|
|
6
|
+
export * from './lib/services/auth-jwt-account.service';
|
|
7
|
+
export * from './lib/validators/password.validators';
|
|
8
|
+
export * from './lib/auth-jwt-admin.module';
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
-
import { NgModule } from '@angular/core';
|
|
4
|
-
import { RouterModule } from '@angular/router';
|
|
5
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { MatCardModule } from '@angular/material/card';
|
|
7
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
-
import { MatInputModule } from '@angular/material/input';
|
|
9
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
10
|
-
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
11
|
-
import { MatExpansionModule } from '@angular/material/expansion';
|
|
12
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
13
|
-
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
14
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
15
|
-
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
16
|
-
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
17
|
-
import { MatDialogModule } from '@angular/material/dialog';
|
|
18
|
-
import { AuthJwtLoginModule } from '@myrmidon/auth-jwt-login';
|
|
19
|
-
import { NgToolsModule } from '@myrmidon/ng-tools';
|
|
20
|
-
import { AuthJwtRegistrationComponent } from './components/auth-jwt-registration/auth-jwt-registration.component';
|
|
21
|
-
import { PasswordStrengthBarComponent } from './components/password-strength-bar/password-strength-bar.component';
|
|
22
|
-
import { UserFilterComponent } from './components/user-filter/user-filter.component';
|
|
23
|
-
import { UserListComponent } from './components/user-list/user-list.component';
|
|
24
|
-
import { ConfirmDialogComponent } from './components/confirm-dialog/confirm-dialog.component';
|
|
25
|
-
import { UserEditorComponent } from './components/user-editor/user-editor.component';
|
|
26
|
-
import * as i0 from "@angular/core";
|
|
27
|
-
export class AuthJwtAdminModule {
|
|
28
|
-
}
|
|
29
|
-
AuthJwtAdminModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AuthJwtAdminModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
30
|
-
AuthJwtAdminModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: AuthJwtAdminModule, declarations: [AuthJwtRegistrationComponent,
|
|
31
|
-
PasswordStrengthBarComponent,
|
|
32
|
-
UserFilterComponent,
|
|
33
|
-
UserListComponent,
|
|
34
|
-
ConfirmDialogComponent,
|
|
35
|
-
UserEditorComponent], imports: [CommonModule,
|
|
36
|
-
HttpClientModule,
|
|
37
|
-
FormsModule,
|
|
38
|
-
RouterModule,
|
|
39
|
-
ReactiveFormsModule,
|
|
40
|
-
// material
|
|
41
|
-
MatButtonModule,
|
|
42
|
-
MatCardModule,
|
|
43
|
-
MatCheckboxModule,
|
|
44
|
-
MatDialogModule,
|
|
45
|
-
MatExpansionModule,
|
|
46
|
-
MatIconModule,
|
|
47
|
-
MatInputModule,
|
|
48
|
-
MatPaginatorModule,
|
|
49
|
-
MatProgressBarModule,
|
|
50
|
-
MatProgressSpinnerModule,
|
|
51
|
-
MatSnackBarModule,
|
|
52
|
-
MatTooltipModule,
|
|
53
|
-
AuthJwtLoginModule,
|
|
54
|
-
NgToolsModule], exports: [AuthJwtRegistrationComponent,
|
|
55
|
-
PasswordStrengthBarComponent,
|
|
56
|
-
UserFilterComponent,
|
|
57
|
-
UserListComponent] });
|
|
58
|
-
AuthJwtAdminModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AuthJwtAdminModule, imports: [CommonModule,
|
|
59
|
-
HttpClientModule,
|
|
60
|
-
FormsModule,
|
|
61
|
-
RouterModule,
|
|
62
|
-
ReactiveFormsModule,
|
|
63
|
-
// material
|
|
64
|
-
MatButtonModule,
|
|
65
|
-
MatCardModule,
|
|
66
|
-
MatCheckboxModule,
|
|
67
|
-
MatDialogModule,
|
|
68
|
-
MatExpansionModule,
|
|
69
|
-
MatIconModule,
|
|
70
|
-
MatInputModule,
|
|
71
|
-
MatPaginatorModule,
|
|
72
|
-
MatProgressBarModule,
|
|
73
|
-
MatProgressSpinnerModule,
|
|
74
|
-
MatSnackBarModule,
|
|
75
|
-
MatTooltipModule,
|
|
76
|
-
AuthJwtLoginModule,
|
|
77
|
-
NgToolsModule] });
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AuthJwtAdminModule, decorators: [{
|
|
79
|
-
type: NgModule,
|
|
80
|
-
args: [{
|
|
81
|
-
declarations: [
|
|
82
|
-
AuthJwtRegistrationComponent,
|
|
83
|
-
PasswordStrengthBarComponent,
|
|
84
|
-
UserFilterComponent,
|
|
85
|
-
UserListComponent,
|
|
86
|
-
ConfirmDialogComponent,
|
|
87
|
-
UserEditorComponent,
|
|
88
|
-
],
|
|
89
|
-
imports: [
|
|
90
|
-
CommonModule,
|
|
91
|
-
HttpClientModule,
|
|
92
|
-
FormsModule,
|
|
93
|
-
RouterModule,
|
|
94
|
-
ReactiveFormsModule,
|
|
95
|
-
// material
|
|
96
|
-
MatButtonModule,
|
|
97
|
-
MatCardModule,
|
|
98
|
-
MatCheckboxModule,
|
|
99
|
-
MatDialogModule,
|
|
100
|
-
MatExpansionModule,
|
|
101
|
-
MatIconModule,
|
|
102
|
-
MatInputModule,
|
|
103
|
-
MatPaginatorModule,
|
|
104
|
-
MatProgressBarModule,
|
|
105
|
-
MatProgressSpinnerModule,
|
|
106
|
-
MatSnackBarModule,
|
|
107
|
-
MatTooltipModule,
|
|
108
|
-
AuthJwtLoginModule,
|
|
109
|
-
NgToolsModule
|
|
110
|
-
],
|
|
111
|
-
exports: [
|
|
112
|
-
AuthJwtRegistrationComponent,
|
|
113
|
-
PasswordStrengthBarComponent,
|
|
114
|
-
UserFilterComponent,
|
|
115
|
-
UserListComponent
|
|
116
|
-
],
|
|
117
|
-
}]
|
|
118
|
-
}] });
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1qd3QtYWRtaW4ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlybWlkb24vYXV0aC1qd3QtYWRtaW4vc3JjL2xpYi9hdXRoLWp3dC1hZG1pbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7QUF3Q3JGLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFwQzNCLDRCQUE0QjtRQUM1Qiw0QkFBNEI7UUFDNUIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixzQkFBc0I7UUFDdEIsbUJBQW1CLGFBR25CLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLGVBQWU7UUFDZixhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixhQUFhLGFBR2IsNEJBQTRCO1FBQzVCLDRCQUE0QjtRQUM1QixtQkFBbUI7UUFDbkIsaUJBQWlCO2dIQUdSLGtCQUFrQixZQTVCM0IsWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsZUFBZTtRQUNmLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGFBQWE7MkZBU0osa0JBQWtCO2tCQXRDOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsYUFBYTtxQkFDZDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsNEJBQTRCO3dCQUM1Qiw0QkFBNEI7d0JBQzVCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3FCQUNsQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHtNYXRFeHBhbnNpb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgQXV0aEp3dExvZ2luTW9kdWxlIH0gZnJvbSAnQG15cm1pZG9uL2F1dGgtand0LWxvZ2luJztcclxuaW1wb3J0IHsgTmdUb29sc01vZHVsZSB9IGZyb20gJ0BteXJtaWRvbi9uZy10b29scyc7XHJcblxyXG5pbXBvcnQgeyBBdXRoSnd0UmVnaXN0cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1dGgtand0LXJlZ2lzdHJhdGlvbi9hdXRoLWp3dC1yZWdpc3RyYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFzc3dvcmRTdHJlbmd0aEJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC1iYXIvcGFzc3dvcmQtc3RyZW5ndGgtYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1maWx0ZXIvdXNlci1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1saXN0L3VzZXItbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1lZGl0b3IvdXNlci1lZGl0b3IuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBdXRoSnd0UmVnaXN0cmF0aW9uQ29tcG9uZW50LFxyXG4gICAgUGFzc3dvcmRTdHJlbmd0aEJhckNvbXBvbmVudCxcclxuICAgIFVzZXJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBVc2VyTGlzdENvbXBvbmVudCxcclxuICAgIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXHJcbiAgICBVc2VyRWRpdG9yQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIC8vIG1hdGVyaWFsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDYXJkTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIE1hdFNuYWNrQmFyTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIEF1dGhKd3RMb2dpbk1vZHVsZSxcclxuICAgIE5nVG9vbHNNb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEF1dGhKd3RSZWdpc3RyYXRpb25Db21wb25lbnQsXHJcbiAgICBQYXNzd29yZFN0cmVuZ3RoQmFyQ29tcG9uZW50LFxyXG4gICAgVXNlckZpbHRlckNvbXBvbmVudCxcclxuICAgIFVzZXJMaXN0Q29tcG9uZW50XHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhKd3RBZG1pbk1vZHVsZSB7fVxyXG4iXX0=
|