angular-base-lib 17.0.1 → 17.0.3

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 (62) hide show
  1. package/README.md +258 -14
  2. package/esm2022/lib/auth/base-auth.service.mjs +47 -0
  3. package/esm2022/lib/auth/guards/index.mjs +3 -0
  4. package/esm2022/lib/auth/guards/logged-in.guard.mjs +14 -0
  5. package/esm2022/lib/auth/guards/logged-out.guard.mjs +14 -0
  6. package/esm2022/lib/auth/index.mjs +4 -0
  7. package/esm2022/lib/auth/models/base-auth-state.mjs +2 -0
  8. package/esm2022/lib/auth/models/index.mjs +4 -0
  9. package/esm2022/lib/auth/models/logged-in-auth-state.mjs +7 -0
  10. package/esm2022/lib/auth/models/login-state.type.mjs +2 -0
  11. package/esm2022/lib/auth/models/not-logged-in-auth-state.mjs +7 -0
  12. package/esm2022/lib/auth/models/pending-auth-state.mjs +7 -0
  13. package/esm2022/lib/dao/converted-http-base-dao.mjs +37 -0
  14. package/esm2022/lib/dao/converted-promise-http-base-dao.mjs +37 -0
  15. package/esm2022/lib/dao/converter.mjs +3 -0
  16. package/esm2022/lib/dao/dao-id.mjs +2 -0
  17. package/esm2022/lib/dao/http-base-dao-options.mjs +4 -0
  18. package/esm2022/lib/dao/http-base-dao.mjs +22 -0
  19. package/esm2022/lib/dao/index.mjs +8 -0
  20. package/esm2022/lib/dao/interfaces/identifiable.mjs +2 -0
  21. package/esm2022/lib/dao/interfaces/index.mjs +2 -0
  22. package/esm2022/lib/dao/internal/internal-http-base-dao.mjs +44 -0
  23. package/esm2022/lib/dao/promise-http-base-dao.mjs +23 -0
  24. package/esm2022/lib/forms/form-util.mjs +48 -4
  25. package/esm2022/lib/index.mjs +4 -1
  26. package/esm2022/lib/navigation/back-button.directive.mjs +3 -3
  27. package/esm2022/lib/util/index.mjs +3 -0
  28. package/esm2022/lib/util/is-nil.mjs +2 -0
  29. package/esm2022/lib/util/prepare-optional-string.mjs +8 -0
  30. package/esm2022/lib/util/remove-nil-values-recursively.mjs +33 -0
  31. package/fesm2022/angular-base-lib.mjs +339 -6
  32. package/fesm2022/angular-base-lib.mjs.map +1 -1
  33. package/lib/auth/base-auth.service.d.ts +24 -0
  34. package/lib/auth/guards/index.d.ts +2 -0
  35. package/lib/auth/guards/logged-in.guard.d.ts +2 -0
  36. package/lib/auth/guards/logged-out.guard.d.ts +2 -0
  37. package/lib/auth/index.d.ts +3 -0
  38. package/lib/auth/models/base-auth-state.d.ts +5 -0
  39. package/lib/auth/models/index.d.ts +5 -0
  40. package/lib/auth/models/logged-in-auth-state.d.ts +7 -0
  41. package/lib/auth/models/login-state.type.d.ts +1 -0
  42. package/lib/auth/models/not-logged-in-auth-state.d.ts +6 -0
  43. package/lib/auth/models/pending-auth-state.d.ts +6 -0
  44. package/lib/dao/converted-http-base-dao.d.ts +16 -0
  45. package/lib/dao/converted-promise-http-base-dao.d.ts +15 -0
  46. package/lib/dao/converter.d.ts +4 -0
  47. package/lib/dao/dao-id.d.ts +1 -0
  48. package/lib/dao/http-base-dao-options.d.ts +6 -0
  49. package/lib/dao/http-base-dao.d.ts +12 -0
  50. package/lib/dao/index.d.ts +8 -0
  51. package/lib/dao/interfaces/identifiable.d.ts +4 -0
  52. package/lib/dao/interfaces/index.d.ts +1 -0
  53. package/lib/dao/internal/internal-http-base-dao.d.ts +16 -0
  54. package/lib/dao/promise-http-base-dao.d.ts +11 -0
  55. package/lib/forms/form-util.d.ts +3 -1
  56. package/lib/index.d.ts +3 -0
  57. package/lib/navigation/back-button.directive.d.ts +1 -1
  58. package/lib/util/index.d.ts +2 -0
  59. package/lib/util/is-nil.d.ts +1 -0
  60. package/lib/util/prepare-optional-string.d.ts +1 -0
  61. package/lib/util/remove-nil-values-recursively.d.ts +1 -0
  62. package/package.json +19 -2
package/README.md CHANGED
@@ -1,29 +1,273 @@
1
- # angular-base
1
+ # AngularBaseDao
2
2
 
3
- Library with different abstract components and utilities that come in handy for simple angular-applications.
3
+ This library helps you to create dao-services that include all **CURDL** methods out of the box without needing to implement them by your own.
4
+ Complex models that are received from the REST requests can simply be **converted/mapped** using the provided **HttpBaseDao** and **IConverter**.
5
+
6
+ > **CURLD** => **C**reate **R**ead **U**pdate **D**elete **L**ist
7
+
8
+ ## Basic Usage
9
+
10
+ To create a service that provides all CRUDL functions out of the box follow these steps:
11
+
12
+ **Step 1: Create an entity-class which implements the **IIdentifiable** interface**
13
+
14
+ ```ts
15
+ export interface UserModel implements IIdentifiable {
16
+ id: string;
17
+ name: string;
18
+ }
19
+ ```
20
+
21
+ **Step 2: Create an entity-dao-service, which extends from the NoConversionHttpBaseDao-class**
22
+
23
+ By default, the service will set **withCredentials** to true, to make use of http-only cookie authentication.
24
+ If this is not wanted, you can specify it in the super-constructor call.
25
+
26
+ If you prefer a different kind of authentication method, you can pass custom http-headers to the affected **CRUDL** method. (`this.dao.list(false, { ...httpOptions })`)
27
+
28
+ ```ts
29
+ @Injectable({ providedIn: 'root' })
30
+ export class UserDaoService extends NoConversionHttpBaseDao<UserModel> {
31
+ constructor() {
32
+ super('https://api.net/user');
33
+ }
34
+ }
35
+ ```
36
+
37
+ **Step 3: Use the service**
38
+
39
+ ```ts
40
+ @Component(...)
41
+ export class AppComponent {
42
+ private readonly userDao = inject(UserDaoService);
43
+
44
+ constructor() {
45
+ this.userDao.create({ name: 'Max' }); // returns Promise<UserModel>
46
+ this.userDao.read('my-id'); // returns Promise<UserModel>
47
+ this.userDao.update({ id: 'max-id', name: 'Max' }); // returns Promise<UserModel>
48
+ this.userDao.delete({ id: 'max-id', name: 'Max' }); // returns Promise<void>
49
+ this.userDao.list(); // returns Promise<UserModel[]>
50
+ }
51
+ }
52
+ ```
53
+
54
+ ### Using converters to convert http body to models (optional)
55
+
56
+ **Step 1: Create the request interface that the server sends back to the client**
57
+
58
+ ```ts
59
+ export interface UserResponse implements IIdentifiable {
60
+ id: string;
61
+ creationDateString: string; // ISO string
62
+ }
63
+ ```
64
+
65
+ **Step 2: Create the interface that the dao-service should return**
66
+
67
+ ```ts
68
+ export interface UserModel implements IIdentifiable {
69
+ id: string;
70
+ creationDate: Date; // Real date object
71
+ }
72
+ ```
73
+
74
+ **Step 3: Create a mapper-service that maps between those two models**
75
+
76
+ ```ts
77
+ @Injectable({ providedIn: 'root' })
78
+ export class PersonConverterService implements IConverter<UserResponse, UserModel> {
79
+ // Converts the model that was returned by the server to the model that should be used in the applciation
80
+ fromJson(response: UserResponse): UserModel {
81
+ return {
82
+ id: response.id,
83
+ creationDate: new Date(response.creationDateString), // Converts the date-string to a date
84
+ };
85
+ }
86
+
87
+ // Prepares the object that will be sent to the server for CREATE or UPDATE
88
+ toJson(model: UserModel): unknown {
89
+ return {
90
+ id: model.id,
91
+ creationDate: model.creationDate.toISOString(),
92
+ };
93
+ }
94
+ }
95
+ ```
96
+
97
+ **Step 4: Create the entity-dao-service and provide the created converter-service**
98
+
99
+ ```ts
100
+ @Injectable({ providedIn: 'root' })
101
+ export class UserDaoService extends HttpBaseDao<UserResponse, PersonModel> {
102
+ constructor() {
103
+ super('https://api.net/user', inject(HttpClient), inject(PersonConverterService));
104
+ }
105
+ }
106
+ ```
107
+
108
+ ## Server Requirements
109
+
110
+ - REST server
111
+ - HTTP methods are used to differentiate between the different CRUDL request
112
+
113
+ - **POST** (CREATE)
4
114
 
5
- # base-auth-service
115
+ - url: https://api.net/entity
116
+ - request body: **json object**
117
+ - response body: **json object**
6
118
 
7
- Includes logic to receive the current login-state/user/etc. as observables.
8
- This abstract auth-service is used for the two included auth-guard-functions that can be used for protecting routes.
119
+ - **GET** (READ)
9
120
 
10
- The reason behind the 'pending' auth-state is to ensure the correct state inside the auth-guard. For example if the frontend used cookies for keeping the auth state, you can check the token and then decide if the user is logged-in or logged-out after the token was validated.
121
+ - url: https://api.net/entity/:id
122
+ - request body: -
123
+ - response body: **json object**
11
124
 
12
- ## login-in-guard
125
+ - **PUT** (UPDATE)
13
126
 
14
- Waits until the auth state is not pending
127
+ - url: https://api.net/entity/:id
128
+ - request body: **json object**
129
+ - response body: **json object**
15
130
 
16
- - If the user is not logged-in, the user is redirected to the route '/auth/login' (will be customizable in the future)
131
+ - **DELETE** (DELETE)
17
132
 
18
- ## login-out-guard
133
+ - url: https://api.net/entity/:id
134
+ - request body: -
135
+ - response body: -
19
136
 
20
- Waits until the auth state is not pending
137
+ - **GET** (LIST)
21
138
 
22
- - If the user is not logged-out, the user is redirected to the route '/' (will be customizable in the future)
139
+ - url: https://api.net/entity
140
+ - request body: -
141
+ - response body: **json array**
23
142
 
24
- # form-util
143
+ # Angular Base Authentication
144
+ This library contains an abstract auth-service and guards that can be used out of the box, by just extending the `BaseAuthService<TUSER>`.
25
145
 
26
- Contains static helper functions
146
+ ## Usage
147
+
148
+ **Step 1: Create a user model**
149
+
150
+ ```js
151
+ interface UserModel {
152
+ id: string;
153
+ email: string;
154
+ isAdmin: boolean;
155
+ }
156
+ ```
157
+
158
+ **Step 2: Extend the base-auth-service using the user-model**
159
+
160
+ ```js
161
+ @Injectable({ providedIn: 'root' })
162
+ export class MyOwnAuthService extends BaseAuthService<UserModel>...
163
+ ```
164
+
165
+ **Step 3: Set the initial login state inside the constructor**
166
+
167
+ With local auth-cookie:
168
+ ```js
169
+ constructor() {
170
+ const user = loginUsingAuthCookie(); // Validate and check your local auth-cookie
171
+ if (user) {
172
+ this.userLoggedIn(user); // Sets the login state to logged-in
173
+ } else {
174
+ this.userLoggedOut(); // Sets the login state to logged-out
175
+ }
176
+ }
177
+ ```
178
+
179
+ Without local tokens:
180
+ ```js
181
+ constructor() {
182
+ this.userLoggedOut(); // Sets the initial login state to logged-out
183
+ }
184
+ ```
185
+
186
+ > Important: Make sure the initial login state is set right after the application is started by calling `userLoggedIn`or `userLoggedOut`. If you do NOT do this the login-state will be `pending` and the provided auth-guards be waiting for the 'readyLoginState$' forever.
187
+
188
+ ****
189
+
190
+ ```js
191
+ constructor() {
192
+ this.userLoggedOut(); // If you do not do this, the login-state will be pending
193
+ }
194
+ ```
195
+
196
+ **Step 4: Implement the login-logout functions and call the provided functions of the base-class**
197
+
198
+ ```js
199
+ async login(loginData): Promise<void> {
200
+ try {
201
+ const result$ = this.http.post<UserModel>(login, loginData);
202
+ const user = await firstValueFrom(result$);
203
+ this.userLoggedIn(user); // Sets the login state to logged-in
204
+ } catch (ex) {
205
+ this.userLoggedOut(); // Sets the login state to logged-out
206
+ return ex;
207
+ }
208
+ }
209
+ ```
210
+
211
+ **Step 5: Provide your service implementation as `BaseAuthService`**
212
+ app.config.ts
213
+ ```js
214
+ export const appConfig: ApplicationConfig = {
215
+ providers: [
216
+ provideHttpClient(),
217
+ {
218
+ provide: BaseAuthService,
219
+ useExisting: MyOwnAuthService
220
+ },
221
+ ...
222
+ ]
223
+ };
224
+ ```
225
+
226
+ **Step 6: Use it**
227
+
228
+ Now you can use the provided route-guards without any configuration.
229
+ ```js
230
+ {
231
+ ...
232
+ path: 'login',
233
+ canActivate: [loggedOutGuardFn], //Only allow when logged-out
234
+ ...
235
+ },
236
+ {
237
+ ...
238
+ path: 'account',
239
+ canActivate: [loggedInGuardFn], // Only allow when logged-in
240
+ ...
241
+ },
242
+ ```
243
+
244
+ The `BaseAuthService` also provides a list of handy observables that represent the current auth-state like:
245
+ ```js
246
+ loginState$(): Observable<LoginState>
247
+ readyLoginState$(): Observable<LoginState>
248
+ readyAuthState$(): Observable<BaseAuthState<T>>
249
+ user$(): Observable<T | null>
250
+ isLoggedIn$(): Observable<boolean>
251
+ loginRoute(): string
252
+ ```
253
+
254
+ ### loginState$ vs readyLoginState$
255
+
256
+ #### loginState$
257
+
258
+ Emits all login states. Initial value will be `{ loginState: 'pending', user: null }`
259
+
260
+ #### readyLoginState$
261
+
262
+ Only emits non `pending` auth-states. Therefor handy for auth-guards.
263
+
264
+ #### Explanation
265
+
266
+ When a page is initially loaded, and the user is logged in using the stored auth-cookie. The auth state will be `pending` until the cookie is verified, until this the auth guard should not check if the route can be activated. Only if `this.userLoggedOut()` or `this.userLoggedIn(user)` was called, the auth guard will check the access. This prevents the application from blocking a page from the user because login-state is not settled jet.
267
+
268
+ # angular-base
269
+
270
+ Library with different abstract components and utilities that come in handy for simple angular-applications.
27
271
 
28
272
  # model-component
29
273
 
@@ -0,0 +1,47 @@
1
+ import { BehaviorSubject, filter } from 'rxjs';
2
+ import { LoggedInAuthState, NotLoggedInAuthState, PendingAuthState } from './models';
3
+ import { map } from 'rxjs/operators';
4
+ export class BaseAuthService {
5
+ get authState$() {
6
+ return this._authState$;
7
+ }
8
+ get loginState$() {
9
+ return this._loginState$;
10
+ }
11
+ get readyLoginState$() {
12
+ return this._readyLoginState$;
13
+ }
14
+ get readyAuthState$() {
15
+ return this._readyAuthState$;
16
+ }
17
+ get user$() {
18
+ return this._user$;
19
+ }
20
+ get readyUser$() {
21
+ return this._readyUser$;
22
+ }
23
+ get isLoggedIn$() {
24
+ return this._isLoggedIn$;
25
+ }
26
+ get loginRoute() {
27
+ return this.defaultLoginRoute;
28
+ }
29
+ constructor() {
30
+ this.authStateSubject = new BehaviorSubject(new PendingAuthState());
31
+ this.defaultLoginRoute = '/auth/login';
32
+ this._authState$ = this.authStateSubject.asObservable();
33
+ this._user$ = this._authState$.pipe(map((elem) => elem.user));
34
+ this._loginState$ = this._authState$.pipe(map((elem) => elem.loginState));
35
+ this._isLoggedIn$ = this._loginState$.pipe(map((state) => state === 'logged-in'));
36
+ this._readyAuthState$ = this._authState$.pipe(filter((elem) => elem.loginState !== 'pending'));
37
+ this._readyLoginState$ = this._readyAuthState$.pipe(map((elem) => elem.loginState));
38
+ this._readyUser$ = this._readyAuthState$.pipe(map((elem) => elem.user));
39
+ }
40
+ userLoggedIn(user) {
41
+ this.authStateSubject.next(new LoggedInAuthState(user));
42
+ }
43
+ userLoggedOut() {
44
+ this.authStateSubject.next(new NotLoggedInAuthState());
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hdXRoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvYmFzZS1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0QsT0FBTyxFQUFpQixpQkFBaUIsRUFBYyxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxPQUFnQixlQUFlO0lBV25DLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7UUExQ2lCLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQVFqRixzQkFBaUIsR0FBRyxhQUFhLENBQUM7UUFtQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxZQUFZLENBQUMsSUFBTztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksaUJBQWlCLENBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRVMsYUFBYTtRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlQXV0aFN0YXRlLCBMb2dnZWRJbkF1dGhTdGF0ZSwgTG9naW5TdGF0ZSwgTm90TG9nZ2VkSW5BdXRoU3RhdGUsIFBlbmRpbmdBdXRoU3RhdGUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQXV0aFNlcnZpY2U8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJhc2VBdXRoU3RhdGU8VD4+KG5ldyBQZW5kaW5nQXV0aFN0YXRlKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hdXRoU3RhdGUkOiBPYnNlcnZhYmxlPEJhc2VBdXRoU3RhdGU8VD4+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dpblN0YXRlJDogT2JzZXJ2YWJsZTxMb2dpblN0YXRlPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVhZHlMb2dpblN0YXRlJDogT2JzZXJ2YWJsZTxMb2dpblN0YXRlPjtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVhZHlBdXRoU3RhdGUkOiBPYnNlcnZhYmxlPEJhc2VBdXRoU3RhdGU8VD4+O1xuICBwcml2YXRlIHJlYWRvbmx5IF91c2VyJDogT2JzZXJ2YWJsZTxUIHwgbnVsbD47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlYWR5VXNlciQ6IE9ic2VydmFibGU8VCB8IG51bGw+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0TG9naW5Sb3V0ZSA9ICcvYXV0aC9sb2dpbic7XG5cbiAgZ2V0IGF1dGhTdGF0ZSQoKTogT2JzZXJ2YWJsZTxCYXNlQXV0aFN0YXRlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhTdGF0ZSQ7XG4gIH1cblxuICBnZXQgbG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxMb2dpblN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvZ2luU3RhdGUkO1xuICB9XG5cbiAgZ2V0IHJlYWR5TG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxMb2dpblN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWR5TG9naW5TdGF0ZSQ7XG4gIH1cblxuICBnZXQgcmVhZHlBdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8QmFzZUF1dGhTdGF0ZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkeUF1dGhTdGF0ZSQ7XG4gIH1cblxuICBnZXQgdXNlciQoKTogT2JzZXJ2YWJsZTxUIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl91c2VyJDtcbiAgfVxuXG4gIGdldCByZWFkeVVzZXIkKCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZHlVc2VyJDtcbiAgfVxuXG4gIGdldCBpc0xvZ2dlZEluJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5faXNMb2dnZWRJbiQ7XG4gIH1cblxuICBnZXQgbG9naW5Sb3V0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRlZmF1bHRMb2dpblJvdXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2F1dGhTdGF0ZSQgPSB0aGlzLmF1dGhTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5fdXNlciQgPSB0aGlzLl9hdXRoU3RhdGUkLnBpcGUobWFwKChlbGVtKSA9PiBlbGVtLnVzZXIpKTtcbiAgICB0aGlzLl9sb2dpblN0YXRlJCA9IHRoaXMuX2F1dGhTdGF0ZSQucGlwZShtYXAoKGVsZW0pID0+IGVsZW0ubG9naW5TdGF0ZSkpO1xuICAgIHRoaXMuX2lzTG9nZ2VkSW4kID0gdGhpcy5fbG9naW5TdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZSA9PT0gJ2xvZ2dlZC1pbicpKTtcblxuICAgIHRoaXMuX3JlYWR5QXV0aFN0YXRlJCA9IHRoaXMuX2F1dGhTdGF0ZSQucGlwZShmaWx0ZXIoKGVsZW0pID0+IGVsZW0ubG9naW5TdGF0ZSAhPT0gJ3BlbmRpbmcnKSk7XG4gICAgdGhpcy5fcmVhZHlMb2dpblN0YXRlJCA9IHRoaXMuX3JlYWR5QXV0aFN0YXRlJC5waXBlKG1hcCgoZWxlbSkgPT4gZWxlbS5sb2dpblN0YXRlKSk7XG4gICAgdGhpcy5fcmVhZHlVc2VyJCA9IHRoaXMuX3JlYWR5QXV0aFN0YXRlJC5waXBlKG1hcCgoZWxlbSkgPT4gZWxlbS51c2VyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXNlckxvZ2dlZEluKHVzZXI6IFQpOiB2b2lkIHtcbiAgICB0aGlzLmF1dGhTdGF0ZVN1YmplY3QubmV4dChuZXcgTG9nZ2VkSW5BdXRoU3RhdGU8VD4odXNlcikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVzZXJMb2dnZWRPdXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdXRoU3RhdGVTdWJqZWN0Lm5leHQobmV3IE5vdExvZ2dlZEluQXV0aFN0YXRlKCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export { loggedInGuardFn } from './logged-in.guard';
2
+ export { loggedOutGuardFn } from './logged-out.guard';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGxvZ2dlZEluR3VhcmRGbiB9IGZyb20gJy4vbG9nZ2VkLWluLmd1YXJkJztcbmV4cG9ydCB7IGxvZ2dlZE91dEd1YXJkRm4gfSBmcm9tICcuL2xvZ2dlZC1vdXQuZ3VhcmQnO1xuIl19
@@ -0,0 +1,14 @@
1
+ import { inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { map } from 'rxjs/operators';
4
+ import { BaseAuthService } from '../base-auth.service';
5
+ export const loggedInGuardFn = () => {
6
+ const router = inject(Router);
7
+ return inject(BaseAuthService).readyAuthState$.pipe(map((state) => {
8
+ if (state.loginState === 'logged-in') {
9
+ return true;
10
+ }
11
+ return router.createUrlTree(['/auth/login']);
12
+ }));
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLWluLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL2d1YXJkcy9sb2dnZWQtaW4uZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQWlCLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQixHQUFrQyxFQUFFO0lBQ2hGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixPQUFPLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFDcEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJhc2VBdXRoU2VydmljZSB9IGZyb20gJy4uL2Jhc2UtYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCBjb25zdCBsb2dnZWRJbkd1YXJkRm46IENhbkFjdGl2YXRlRm4gPSAoKTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gPT4ge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcmV0dXJuIGluamVjdChCYXNlQXV0aFNlcnZpY2UpLnJlYWR5QXV0aFN0YXRlJC5waXBlKFxuICAgIG1hcCgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZS5sb2dpblN0YXRlID09PSAnbG9nZ2VkLWluJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2F1dGgvbG9naW4nXSk7XG4gICAgfSksXG4gICk7XG59O1xuIl19
@@ -0,0 +1,14 @@
1
+ import { inject } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { map } from 'rxjs/operators';
4
+ import { BaseAuthService } from '../base-auth.service';
5
+ export const loggedOutGuardFn = () => {
6
+ const router = inject(Router);
7
+ return inject(BaseAuthService).readyLoginState$.pipe(map((state) => {
8
+ if (state !== 'logged-in') {
9
+ return true;
10
+ }
11
+ return router.createUrlTree(['/']);
12
+ }));
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLW91dC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYXV0aC9ndWFyZHMvbG9nZ2VkLW91dC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFFakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBa0IsR0FBa0MsRUFBRTtJQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLElBQUksS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1hdXRoLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgbG9nZ2VkT3V0R3VhcmRGbjogQ2FuQWN0aXZhdGVGbiA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBVcmxUcmVlPiA9PiB7XG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICByZXR1cm4gaW5qZWN0KEJhc2VBdXRoU2VydmljZSkucmVhZHlMb2dpblN0YXRlJC5waXBlKFxuICAgIG1hcCgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZSAhPT0gJ2xvZ2dlZC1pbicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy8nXSk7XG4gICAgfSksXG4gICk7XG59O1xuIl19
@@ -0,0 +1,4 @@
1
+ export { BaseAuthService } from './base-auth.service';
2
+ export * from './models';
3
+ export * from './guards';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLWF1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcyc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1hdXRoLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL21vZGVscy9iYXNlLWF1dGgtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2luU3RhdGUgfSBmcm9tICcuL2xvZ2luLXN0YXRlLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VBdXRoU3RhdGU8VD4ge1xuICBsb2dpblN0YXRlOiBMb2dpblN0YXRlO1xuICB1c2VyOiBUIHwgbnVsbDtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export { PendingAuthState } from './pending-auth-state';
2
+ export { LoggedInAuthState } from './logged-in-auth-state';
3
+ export { NotLoggedInAuthState } from './not-logged-in-auth-state';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZUF1dGhTdGF0ZSB9IGZyb20gJy4vYmFzZS1hdXRoLXN0YXRlJztcbmV4cG9ydCB7IExvZ2luU3RhdGUgfSBmcm9tICcuL2xvZ2luLXN0YXRlLnR5cGUnO1xuZXhwb3J0IHsgUGVuZGluZ0F1dGhTdGF0ZSB9IGZyb20gJy4vcGVuZGluZy1hdXRoLXN0YXRlJztcbmV4cG9ydCB7IExvZ2dlZEluQXV0aFN0YXRlIH0gZnJvbSAnLi9sb2dnZWQtaW4tYXV0aC1zdGF0ZSc7XG5leHBvcnQgeyBOb3RMb2dnZWRJbkF1dGhTdGF0ZSB9IGZyb20gJy4vbm90LWxvZ2dlZC1pbi1hdXRoLXN0YXRlJztcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export class LoggedInAuthState {
2
+ constructor(user) {
3
+ this.loginState = 'logged-in';
4
+ this.user = user;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLWluLWF1dGgtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2F1dGgvbW9kZWxzL2xvZ2dlZC1pbi1hdXRoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBWSxJQUFPO1FBSFYsZUFBVSxHQUFlLFdBQVcsQ0FBQztRQUk1QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xuaW1wb3J0IHsgTG9naW5TdGF0ZSB9IGZyb20gJy4vbG9naW4tc3RhdGUudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBMb2dnZWRJbkF1dGhTdGF0ZTxUPiBpbXBsZW1lbnRzIEJhc2VBdXRoU3RhdGU8VD4ge1xuICByZWFkb25seSBsb2dpblN0YXRlOiBMb2dpblN0YXRlID0gJ2xvZ2dlZC1pbic7XG4gIHJlYWRvbmx5IHVzZXI6IFQ7XG5cbiAgY29uc3RydWN0b3IodXNlcjogVCkge1xuICAgIHRoaXMudXNlciA9IHVzZXI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tc3RhdGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvYXV0aC9tb2RlbHMvbG9naW4tc3RhdGUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTG9naW5TdGF0ZSA9ICdwZW5kaW5nJyB8ICdsb2dnZWQtaW4nIHwgJ2xvZ2dlZC1vdXQnO1xuIl19
@@ -0,0 +1,7 @@
1
+ export class NotLoggedInAuthState {
2
+ constructor() {
3
+ this.loginState = 'logged-out';
4
+ this.user = null;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LWxvZ2dlZC1pbi1hdXRoLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL21vZGVscy9ub3QtbG9nZ2VkLWluLWF1dGgtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUNXLGVBQVUsR0FBZSxZQUFZLENBQUM7UUFDdEMsU0FBSSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xuaW1wb3J0IHsgTG9naW5TdGF0ZSB9IGZyb20gJy4vbG9naW4tc3RhdGUudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBOb3RMb2dnZWRJbkF1dGhTdGF0ZSBpbXBsZW1lbnRzIEJhc2VBdXRoU3RhdGU8dW5rbm93bj4ge1xuICByZWFkb25seSBsb2dpblN0YXRlOiBMb2dpblN0YXRlID0gJ2xvZ2dlZC1vdXQnO1xuICByZWFkb25seSB1c2VyID0gbnVsbDtcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export class PendingAuthState {
2
+ constructor() {
3
+ this.loginState = 'pending';
4
+ this.user = null;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1hdXRoLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9hdXRoL21vZGVscy9wZW5kaW5nLWF1dGgtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNXLGVBQVUsR0FBZSxTQUFTLENBQUM7UUFDbkMsU0FBSSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXV0aFN0YXRlIH0gZnJvbSAnLi9iYXNlLWF1dGgtc3RhdGUnO1xuaW1wb3J0IHsgTG9naW5TdGF0ZSB9IGZyb20gJy4vbG9naW4tc3RhdGUudHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBQZW5kaW5nQXV0aFN0YXRlIGltcGxlbWVudHMgQmFzZUF1dGhTdGF0ZTx1bmtub3duPiB7XG4gIHJlYWRvbmx5IGxvZ2luU3RhdGU6IExvZ2luU3RhdGUgPSAncGVuZGluZyc7XG4gIHJlYWRvbmx5IHVzZXIgPSBudWxsO1xufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { map } from 'rxjs';
2
+ import { InternalHttpBaseDao } from './internal/internal-http-base-dao';
3
+ export class ConvertedHttpBaseDao extends InternalHttpBaseDao {
4
+ constructor(routeUrl, converter, options = {}) {
5
+ super(routeUrl, options);
6
+ this.converter = converter;
7
+ }
8
+ list(customOptions = {}) {
9
+ return this.listInternal(customOptions).pipe(this.mapServerInterfaceListToModelList);
10
+ }
11
+ create(entry, customOptions = {}) {
12
+ const createData = this.converter.toJson(entry);
13
+ return this.createInternal(createData, customOptions).pipe(this.mapServerInterfaceToModel);
14
+ }
15
+ update(id, entry, customOptions = {}) {
16
+ const updateData = this.converter.toJson(entry);
17
+ return this.updateInternal(id, updateData, customOptions).pipe(this.mapServerInterfaceToModel);
18
+ }
19
+ delete(id, customOptions = {}) {
20
+ return this.deleteInternal(id, customOptions).pipe(this.mapServerInterfaceToModel);
21
+ }
22
+ read(id, customOptions = {}) {
23
+ return this.readInternal(id, customOptions).pipe(this.mapServerInterfaceToModel);
24
+ }
25
+ mapServerInterfaceListToModelList(source$) {
26
+ return source$.pipe(map((list) => {
27
+ if (!list?.length) {
28
+ return [];
29
+ }
30
+ return list.map((elem) => this.converter.fromJson(elem));
31
+ }));
32
+ }
33
+ mapServerInterfaceToModel(source$) {
34
+ return source$.pipe(map((element) => this.converter.fromJson(element)));
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVkLWh0dHAtYmFzZS1kYW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2Rhby9jb252ZXJ0ZWQtaHR0cC1iYXNlLWRhby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR3hFLE1BQU0sT0FBZ0Isb0JBQTZCLFNBQVEsbUJBQXVCO0lBRWhGLFlBQXNCLFFBQWdCLEVBQUUsU0FBNEIsRUFBRSxVQUE4QixFQUFFO1FBQ3BHLEtBQUssQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBb0MsRUFBRTtRQUN6QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUyxFQUFFLEtBQWtCLEVBQUUsZ0JBQW9DLEVBQUU7UUFDMUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3BELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxPQUF5QjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxPQUF1QjtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQmFzZURhb09wdGlvbnMgfSBmcm9tICcuL2h0dHAtYmFzZS1kYW8tb3B0aW9ucyc7XG5pbXBvcnQgeyBEYW9JZCB9IGZyb20gJy4vZGFvLWlkJztcbmltcG9ydCB7IEludGVybmFsSHR0cEJhc2VEYW8gfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8nO1xuaW1wb3J0IHsgQ29udmVydGVyIH0gZnJvbSAnLi9jb252ZXJ0ZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udmVydGVkSHR0cEJhc2VEYW88VEksIFRNPiBleHRlbmRzIEludGVybmFsSHR0cEJhc2VEYW88VEk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnZlcnRlcjogQ29udmVydGVyPFRJLCBUTT47XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihyb3V0ZVVybDogc3RyaW5nLCBjb252ZXJ0ZXI6IENvbnZlcnRlcjxUSSwgVE0+LCBvcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHJvdXRlVXJsLCBvcHRpb25zKTtcbiAgICB0aGlzLmNvbnZlcnRlciA9IGNvbnZlcnRlcjtcbiAgfVxuXG4gIGxpc3QoY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFRNW10+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0SW50ZXJuYWwoY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZUxpc3RUb01vZGVsTGlzdCk7XG4gIH1cblxuICBjcmVhdGUoZW50cnk6IFRNLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE0+IHtcbiAgICBjb25zdCBjcmVhdGVEYXRhID0gdGhpcy5jb252ZXJ0ZXIudG9Kc29uKGVudHJ5KTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVJbnRlcm5hbChjcmVhdGVEYXRhLCBjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbCk7XG4gIH1cblxuICB1cGRhdGUoaWQ6IERhb0lkLCBlbnRyeTogUGFydGlhbDxUTT4sIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUTT4ge1xuICAgIGNvbnN0IHVwZGF0ZURhdGEgPSB0aGlzLmNvbnZlcnRlci50b0pzb24oZW50cnkpO1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZUludGVybmFsKGlkLCB1cGRhdGVEYXRhLCBjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbCk7XG4gIH1cblxuICBkZWxldGUoaWQ6IERhb0lkLCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VE0+IHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwpO1xuICB9XG5cbiAgcmVhZChpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUTT4ge1xuICAgIHJldHVybiB0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTZXJ2ZXJJbnRlcmZhY2VMaXN0VG9Nb2RlbExpc3Qoc291cmNlJDogT2JzZXJ2YWJsZTxUSVtdPik6IE9ic2VydmFibGU8VE1bXT4ge1xuICAgIHJldHVybiBzb3VyY2UkLnBpcGUoXG4gICAgICBtYXAoKGxpc3QpID0+IHtcbiAgICAgICAgaWYgKCFsaXN0Py5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdC5tYXAoKGVsZW0pID0+IHRoaXMuY29udmVydGVyLmZyb21Kc29uKGVsZW0pKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwoc291cmNlJDogT2JzZXJ2YWJsZTxUST4pOiBPYnNlcnZhYmxlPFRNPiB7XG4gICAgcmV0dXJuIHNvdXJjZSQucGlwZShtYXAoKGVsZW1lbnQpID0+IHRoaXMuY29udmVydGVyLmZyb21Kc29uKGVsZW1lbnQpKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,37 @@
1
+ import { firstValueFrom, map } from 'rxjs';
2
+ import { InternalHttpBaseDao } from './internal/internal-http-base-dao';
3
+ export class ConvertedPromiseHttpBaseDao extends InternalHttpBaseDao {
4
+ constructor(routeUrl, converter, options = {}) {
5
+ super(routeUrl, options);
6
+ this.converter = converter;
7
+ }
8
+ list(customOptions = {}) {
9
+ return firstValueFrom(this.listInternal(customOptions).pipe(this.mapServerInterfaceListToModelList.bind(this)));
10
+ }
11
+ create(entry, customOptions = {}) {
12
+ const createData = this.converter.toJson(entry);
13
+ return firstValueFrom(this.createInternal(createData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));
14
+ }
15
+ update(id, entry, customOptions = {}) {
16
+ const updateData = this.converter.toJson(entry);
17
+ return firstValueFrom(this.updateInternal(id, updateData, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));
18
+ }
19
+ delete(id, customOptions = {}) {
20
+ return firstValueFrom(this.deleteInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));
21
+ }
22
+ read(id, customOptions = {}) {
23
+ return firstValueFrom(this.readInternal(id, customOptions).pipe(this.mapServerInterfaceToModel.bind(this)));
24
+ }
25
+ mapServerInterfaceListToModelList(source$) {
26
+ return source$.pipe(map((list) => {
27
+ if (!list?.length) {
28
+ return [];
29
+ }
30
+ return list.map((elem) => this.converter.fromJson(elem));
31
+ }));
32
+ }
33
+ mapServerInterfaceToModel(source$) {
34
+ return source$.pipe(map((element) => this.converter.fromJson(element)));
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVkLXByb21pc2UtaHR0cC1iYXNlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvZGFvL2NvbnZlcnRlZC1wcm9taXNlLWh0dHAtYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFHdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHeEUsTUFBTSxPQUFnQiwyQkFBb0MsU0FBUSxtQkFBdUI7SUFFdkYsWUFBc0IsUUFBZ0IsRUFBRSxTQUE0QixFQUFFLFVBQThCLEVBQUU7UUFDcEcsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFvQyxFQUFFO1FBQ3pDLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sY0FBYyxDQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMvRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxFQUFTLEVBQUUsS0FBa0IsRUFBRSxnQkFBb0MsRUFBRTtRQUMxRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25HLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVMsRUFBRSxnQkFBb0MsRUFBRTtRQUN0RCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEgsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDcEQsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFTyxpQ0FBaUMsQ0FBQyxPQUF5QjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxDQUFDO2FBQ1g7WUFFRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxPQUF1QjtRQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cEJhc2VEYW9PcHRpb25zIH0gZnJvbSAnLi9odHRwLWJhc2UtZGFvLW9wdGlvbnMnO1xuaW1wb3J0IHsgRGFvSWQgfSBmcm9tICcuL2Rhby1pZCc7XG5pbXBvcnQgeyBJbnRlcm5hbEh0dHBCYXNlRGFvIH0gZnJvbSAnLi9pbnRlcm5hbC9pbnRlcm5hbC1odHRwLWJhc2UtZGFvJztcbmltcG9ydCB7IENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVyJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnZlcnRlZFByb21pc2VIdHRwQmFzZURhbzxUSSwgVE0+IGV4dGVuZHMgSW50ZXJuYWxIdHRwQmFzZURhbzxUST4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29udmVydGVyOiBDb252ZXJ0ZXI8VEksIFRNPjtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHJvdXRlVXJsOiBzdHJpbmcsIGNvbnZlcnRlcjogQ29udmVydGVyPFRJLCBUTT4sIG9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocm91dGVVcmwsIG9wdGlvbnMpO1xuICAgIHRoaXMuY29udmVydGVyID0gY29udmVydGVyO1xuICB9XG5cbiAgbGlzdChjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IFByb21pc2U8VE1bXT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmxpc3RJbnRlcm5hbChjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlTGlzdFRvTW9kZWxMaXN0LmJpbmQodGhpcykpKTtcbiAgfVxuXG4gIGNyZWF0ZShlbnRyeTogVE0sIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUTT4ge1xuICAgIGNvbnN0IGNyZWF0ZURhdGEgPSB0aGlzLmNvbnZlcnRlci50b0pzb24oZW50cnkpO1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuY3JlYXRlSW50ZXJuYWwoY3JlYXRlRGF0YSwgY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwuYmluZCh0aGlzKSksXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZShpZDogRGFvSWQsIGVudHJ5OiBQYXJ0aWFsPFRNPiwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBQcm9taXNlPFRNPiB7XG4gICAgY29uc3QgdXBkYXRlRGF0YSA9IHRoaXMuY29udmVydGVyLnRvSnNvbihlbnRyeSk7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy51cGRhdGVJbnRlcm5hbChpZCwgdXBkYXRlRGF0YSwgY3VzdG9tT3B0aW9ucykucGlwZSh0aGlzLm1hcFNlcnZlckludGVyZmFjZVRvTW9kZWwuYmluZCh0aGlzKSksXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxUTT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmRlbGV0ZUludGVybmFsKGlkLCBjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbC5iaW5kKHRoaXMpKSk7XG4gIH1cblxuICByZWFkKGlkOiBEYW9JZCwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBQcm9taXNlPFRNPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMucmVhZEludGVybmFsKGlkLCBjdXN0b21PcHRpb25zKS5waXBlKHRoaXMubWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbC5iaW5kKHRoaXMpKSk7XG4gIH1cblxuICBwcml2YXRlIG1hcFNlcnZlckludGVyZmFjZUxpc3RUb01vZGVsTGlzdChzb3VyY2UkOiBPYnNlcnZhYmxlPFRJW10+KTogT2JzZXJ2YWJsZTxUTVtdPiB7XG4gICAgcmV0dXJuIHNvdXJjZSQucGlwZShcbiAgICAgIG1hcCgobGlzdCkgPT4ge1xuICAgICAgICBpZiAoIWxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaXN0Lm1hcCgoZWxlbSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUpzb24oZWxlbSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2VydmVySW50ZXJmYWNlVG9Nb2RlbChzb3VyY2UkOiBPYnNlcnZhYmxlPFRJPik6IE9ic2VydmFibGU8VE0+IHtcbiAgICByZXR1cm4gc291cmNlJC5waXBlKG1hcCgoZWxlbWVudCkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUpzb24oZWxlbWVudCkpKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export class Converter {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsU0FBUztDQUc5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb252ZXJ0ZXI8VEksIFRNPiB7XG4gIGFic3RyYWN0IGZyb21Kc29uKHJlc3BvbnNlOiBUSSk6IFRNO1xuICBhYnN0cmFjdCB0b0pzb24obW9kZWw6IFBhcnRpYWw8VE0+KTogUGFydGlhbDxUST47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFvLWlkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vZGFvLWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBEYW9JZCA9IHN0cmluZyB8IG51bWJlcjtcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export const DEFAULT_OPTIONS = {
2
+ withCredentials: true,
3
+ };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLWRhby1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vaHR0cC1iYXNlLWRhby1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBdUI7SUFDakQsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBCYXNlRGFvT3B0aW9ucyB7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIGhlYWRlcnM/OiBIdHRwSGVhZGVycztcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1BUSU9OUzogSHR0cEJhc2VEYW9PcHRpb25zID0ge1xuICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG59O1xuIl19
@@ -0,0 +1,22 @@
1
+ import { InternalHttpBaseDao } from './internal/internal-http-base-dao';
2
+ export class HttpBaseDao extends InternalHttpBaseDao {
3
+ constructor(routeUrl, options = {}) {
4
+ super(routeUrl, options);
5
+ }
6
+ list(customOptions = {}) {
7
+ return this.listInternal(customOptions);
8
+ }
9
+ create(entry, customOptions = {}) {
10
+ return this.createInternal(entry, customOptions);
11
+ }
12
+ update(id, entry, customOptions = {}) {
13
+ return this.updateInternal(id, entry, customOptions);
14
+ }
15
+ delete(id, customOptions = {}) {
16
+ return this.deleteInternal(id, customOptions);
17
+ }
18
+ read(id, customOptions = {}) {
19
+ return this.readInternal(id, customOptions);
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1iYXNlLWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1iYXNlL3NyYy9saWIvZGFvL2h0dHAtYmFzZS1kYW8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsTUFBTSxPQUFnQixXQUFnQixTQUFRLG1CQUF1QjtJQUNuRSxZQUFzQixRQUFnQixFQUFFLFVBQThCLEVBQUU7UUFDdEUsS0FBSyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFvQyxFQUFFO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWtCLEVBQUUsZ0JBQW9DLEVBQUU7UUFDL0QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVMsRUFBRSxLQUFrQixFQUFFLGdCQUFvQyxFQUFFO1FBQzFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUyxFQUFFLGdCQUFvQyxFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFTLEVBQUUsZ0JBQW9DLEVBQUU7UUFDcEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQmFzZURhb09wdGlvbnMgfSBmcm9tICcuL2h0dHAtYmFzZS1kYW8tb3B0aW9ucyc7XG5pbXBvcnQgeyBEYW9JZCB9IGZyb20gJy4vZGFvLWlkJztcbmltcG9ydCB7IEludGVybmFsSHR0cEJhc2VEYW8gfSBmcm9tICcuL2ludGVybmFsL2ludGVybmFsLWh0dHAtYmFzZS1kYW8nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSHR0cEJhc2VEYW88VEk+IGV4dGVuZHMgSW50ZXJuYWxIdHRwQmFzZURhbzxUST4ge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Iocm91dGVVcmw6IHN0cmluZywgb3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihyb3V0ZVVybCwgb3B0aW9ucyk7XG4gIH1cblxuICBsaXN0KGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUSVtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdEludGVybmFsKGN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgY3JlYXRlKGVudHJ5OiBQYXJ0aWFsPFRJPiwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFRJPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlSW50ZXJuYWwoZW50cnksIGN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgdXBkYXRlKGlkOiBEYW9JZCwgZW50cnk6IFBhcnRpYWw8VEk+LCBjdXN0b21PcHRpb25zOiBIdHRwQmFzZURhb09wdGlvbnMgPSB7fSk6IE9ic2VydmFibGU8VEk+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVJbnRlcm5hbChpZCwgZW50cnksIGN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBEYW9JZCwgY3VzdG9tT3B0aW9uczogSHR0cEJhc2VEYW9PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPFRJPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVsZXRlSW50ZXJuYWwoaWQsIGN1c3RvbU9wdGlvbnMpO1xuICB9XG5cbiAgcmVhZChpZDogRGFvSWQsIGN1c3RvbU9wdGlvbnM6IEh0dHBCYXNlRGFvT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxUST4ge1xuICAgIHJldHVybiB0aGlzLnJlYWRJbnRlcm5hbChpZCwgY3VzdG9tT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export { DEFAULT_OPTIONS } from './http-base-dao-options';
2
+ export { HttpBaseDao } from './http-base-dao';
3
+ export { PromiseHttpBaseDao } from './promise-http-base-dao';
4
+ export { ConvertedHttpBaseDao } from './converted-http-base-dao';
5
+ export { ConvertedPromiseHttpBaseDao } from './converted-promise-http-base-dao';
6
+ export { Converter } from './converter';
7
+ export * from './interfaces';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2Rhby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgREVGQVVMVF9PUFRJT05TLCBIdHRwQmFzZURhb09wdGlvbnMgfSBmcm9tICcuL2h0dHAtYmFzZS1kYW8tb3B0aW9ucyc7XG5leHBvcnQgeyBIdHRwQmFzZURhbyB9IGZyb20gJy4vaHR0cC1iYXNlLWRhbyc7XG5leHBvcnQgeyBQcm9taXNlSHR0cEJhc2VEYW8gfSBmcm9tICcuL3Byb21pc2UtaHR0cC1iYXNlLWRhbyc7XG5leHBvcnQgeyBDb252ZXJ0ZWRIdHRwQmFzZURhbyB9IGZyb20gJy4vY29udmVydGVkLWh0dHAtYmFzZS1kYW8nO1xuZXhwb3J0IHsgQ29udmVydGVkUHJvbWlzZUh0dHBCYXNlRGFvIH0gZnJvbSAnLi9jb252ZXJ0ZWQtcHJvbWlzZS1odHRwLWJhc2UtZGFvJztcbmV4cG9ydCB7IENvbnZlcnRlciB9IGZyb20gJy4vY29udmVydGVyJztcbmV4cG9ydCB7IERhb0lkIH0gZnJvbSAnLi9kYW8taWQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmlhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWJhc2Uvc3JjL2xpYi9kYW8vaW50ZXJmYWNlcy9pZGVudGlmaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhb0lkIH0gZnJvbSAnLi4vZGFvLWlkJztcblxuZXhwb3J0IGludGVyZmFjZSBJZGVudGlmaWFibGUge1xuICBpZDogRGFvSWQ7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYmFzZS9zcmMvbGliL2Rhby9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJZGVudGlmaWFibGUgfSBmcm9tICcuL2lkZW50aWZpYWJsZSc7XG4iXX0=