@genesislcap/foundation-user 14.137.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. package/README.md +43 -0
  2. package/dist/dts/config.d.ts +53 -0
  3. package/dist/dts/config.d.ts.map +1 -0
  4. package/dist/dts/index.d.ts +5 -0
  5. package/dist/dts/index.d.ts.map +1 -0
  6. package/dist/dts/index.federated.d.ts +1 -0
  7. package/dist/dts/index.federated.d.ts.map +1 -0
  8. package/dist/dts/logger.d.ts +5 -0
  9. package/dist/dts/logger.d.ts.map +1 -0
  10. package/dist/dts/tsdoc-metadata.json +11 -0
  11. package/dist/dts/types.d.ts +134 -0
  12. package/dist/dts/types.d.ts.map +1 -0
  13. package/dist/dts/user.d.ts +167 -0
  14. package/dist/dts/user.d.ts.map +1 -0
  15. package/dist/esm/config.js +57 -0
  16. package/dist/esm/index.federated.js +1 -0
  17. package/dist/esm/index.js +4 -0
  18. package/dist/esm/logger.js +5 -0
  19. package/dist/esm/types.js +5 -0
  20. package/dist/esm/user.js +182 -0
  21. package/dist/foundation-user.api.json +3350 -0
  22. package/dist/foundation-user.d.ts +374 -0
  23. package/docs/.gitattributes +2 -0
  24. package/docs/api/foundation-user.defaultuser.actionhistory.md +13 -0
  25. package/docs/api/foundation-user.defaultuser.addauthenticationchangelistener.md +22 -0
  26. package/docs/api/foundation-user.defaultuser.clearactions.md +17 -0
  27. package/docs/api/foundation-user.defaultuser.clearpaths.md +17 -0
  28. package/docs/api/foundation-user.defaultuser.cleartrackinghistory.md +16 -0
  29. package/docs/api/foundation-user.defaultuser.details.md +12 -0
  30. package/docs/api/foundation-user.defaultuser.haspermission.md +22 -0
  31. package/docs/api/foundation-user.defaultuser.hasprofile.md +22 -0
  32. package/docs/api/foundation-user.defaultuser.isadmin.md +16 -0
  33. package/docs/api/foundation-user.defaultuser.isanonymous.md +12 -0
  34. package/docs/api/foundation-user.defaultuser.isauthenticated.md +12 -0
  35. package/docs/api/foundation-user.defaultuser.isbanned.md +16 -0
  36. package/docs/api/foundation-user.defaultuser.lastaction.md +17 -0
  37. package/docs/api/foundation-user.defaultuser.lastpath.md +19 -0
  38. package/docs/api/foundation-user.defaultuser.md +51 -0
  39. package/docs/api/foundation-user.defaultuser.pathhistory.md +13 -0
  40. package/docs/api/foundation-user.defaultuser.permission.md +12 -0
  41. package/docs/api/foundation-user.defaultuser.profile.md +12 -0
  42. package/docs/api/foundation-user.defaultuser.rawproperties.md +18 -0
  43. package/docs/api/foundation-user.defaultuser.set.md +22 -0
  44. package/docs/api/foundation-user.defaultuser.sourceref.md +12 -0
  45. package/docs/api/foundation-user.defaultuser.trackaction.md +24 -0
  46. package/docs/api/foundation-user.defaultuser.trackpath.md +17 -0
  47. package/docs/api/foundation-user.defaultuser.unset.md +16 -0
  48. package/docs/api/foundation-user.defaultuser.userkvs.md +14 -0
  49. package/docs/api/foundation-user.defaultuser.username.md +12 -0
  50. package/docs/api/foundation-user.defaultuserconfig.md +13 -0
  51. package/docs/api/foundation-user.getuser.md +30 -0
  52. package/docs/api/foundation-user.logger.md +12 -0
  53. package/docs/api/foundation-user.md +47 -0
  54. package/docs/api/foundation-user.setuserproperties.details.md +11 -0
  55. package/docs/api/foundation-user.setuserproperties.md +26 -0
  56. package/docs/api/foundation-user.setuserproperties.permission.md +11 -0
  57. package/docs/api/foundation-user.setuserproperties.profile.md +11 -0
  58. package/docs/api/foundation-user.setuserproperties.sourceref.md +11 -0
  59. package/docs/api/foundation-user.setuserproperties.userkvs.md +11 -0
  60. package/docs/api/foundation-user.setuserproperties.username.md +11 -0
  61. package/docs/api/foundation-user.user.addauthenticationchangelistener.md +33 -0
  62. package/docs/api/foundation-user.user.cleartrackinghistory.md +15 -0
  63. package/docs/api/foundation-user.user.details.md +11 -0
  64. package/docs/api/foundation-user.user.haspermission.md +22 -0
  65. package/docs/api/foundation-user.user.hasprofile.md +22 -0
  66. package/docs/api/foundation-user.user.isadmin.md +15 -0
  67. package/docs/api/foundation-user.user.isanonymous.md +11 -0
  68. package/docs/api/foundation-user.user.isauthenticated.md +11 -0
  69. package/docs/api/foundation-user.user.isbanned.md +15 -0
  70. package/docs/api/foundation-user.user.md +56 -0
  71. package/docs/api/foundation-user.user.permission.md +11 -0
  72. package/docs/api/foundation-user.user.profile.md +11 -0
  73. package/docs/api/foundation-user.user.rawproperties.md +18 -0
  74. package/docs/api/foundation-user.user.set.md +22 -0
  75. package/docs/api/foundation-user.user.sourceref.md +11 -0
  76. package/docs/api/foundation-user.user.unset.md +15 -0
  77. package/docs/api/foundation-user.user.userkvs.md +13 -0
  78. package/docs/api/foundation-user.user.username.md +11 -0
  79. package/docs/api/foundation-user.useractionhistory.actionhistory.md +13 -0
  80. package/docs/api/foundation-user.useractionhistory.clearactions.md +17 -0
  81. package/docs/api/foundation-user.useractionhistory.lastaction.md +17 -0
  82. package/docs/api/foundation-user.useractionhistory.md +32 -0
  83. package/docs/api/foundation-user.useractionhistory.trackaction.md +24 -0
  84. package/docs/api/foundation-user.userauthenticationchangeevent.md +18 -0
  85. package/docs/api/foundation-user.userauthenticationchangetype.md +13 -0
  86. package/docs/api/foundation-user.userconfig.md +28 -0
  87. package/docs/api/foundation-user.userconfig.setuser.md +29 -0
  88. package/docs/api/foundation-user.userconfig.trackactionexclusions.md +15 -0
  89. package/docs/api/foundation-user.userconfig.trackpathexclusions.md +15 -0
  90. package/docs/api/foundation-user.userconfig.unsetuser.md +24 -0
  91. package/docs/api/foundation-user.userdetailsproductproperty.md +20 -0
  92. package/docs/api/foundation-user.userdetailsproductproperty.name.md +11 -0
  93. package/docs/api/foundation-user.userdetailsproductproperty.version.md +11 -0
  94. package/docs/api/foundation-user.userdetailsproperty.daystopasswordexpiry.md +11 -0
  95. package/docs/api/foundation-user.userdetailsproperty.failedloginattempts.md +11 -0
  96. package/docs/api/foundation-user.userdetailsproperty.heartbeatintervalsecs.md +11 -0
  97. package/docs/api/foundation-user.userdetailsproperty.lastlogindatetime.md +11 -0
  98. package/docs/api/foundation-user.userdetailsproperty.md +25 -0
  99. package/docs/api/foundation-user.userdetailsproperty.product.md +11 -0
  100. package/docs/api/foundation-user.userdetailsproperty.rejectedloginattempts.md +11 -0
  101. package/docs/api/foundation-user.userdetailsproperty.system.md +11 -0
  102. package/docs/api/foundation-user.userdetailssystemproperty.date.md +11 -0
  103. package/docs/api/foundation-user.userdetailssystemproperty.md +19 -0
  104. package/docs/api/foundation-user.userkvsproperty.md +12 -0
  105. package/docs/api/foundation-user.userpathhistory.clearpaths.md +17 -0
  106. package/docs/api/foundation-user.userpathhistory.lastpath.md +19 -0
  107. package/docs/api/foundation-user.userpathhistory.md +32 -0
  108. package/docs/api/foundation-user.userpathhistory.pathhistory.md +13 -0
  109. package/docs/api/foundation-user.userpathhistory.trackpath.md +17 -0
  110. package/docs/api/foundation-user.userqueueproperties.md +22 -0
  111. package/docs/api/foundation-user.userqueueproperties.updatequeue.md +11 -0
  112. package/docs/api/foundation-user.userqueueproperties.zeromqproxyinboundport.md +11 -0
  113. package/docs/api/foundation-user.userqueueproperties.zeromqproxymodeenabled.md +11 -0
  114. package/docs/api/foundation-user.userqueueproperties.zeromqproxyoutboundport.md +11 -0
  115. package/docs/api/index.md +12 -0
  116. package/docs/api-report.md +277 -0
  117. package/license.txt +46 -0
  118. package/package.json +48 -0
@@ -0,0 +1,374 @@
1
+ import { InterfaceSymbol } from '@microsoft/fast-foundation';
2
+ import { Listener } from '@genesislcap/foundation-utils';
3
+ import { Logger } from '@genesislcap/foundation-logger';
4
+ import { Observer } from '@genesislcap/foundation-utils';
5
+
6
+ /**
7
+ * Default User implementation.
8
+ * @public
9
+ */
10
+ export declare class DefaultUser implements User {
11
+ /** @internal */
12
+ protected config: UserConfig;
13
+ /** {@inheritDoc UserPathHistory.pathHistory} */
14
+ pathHistory: string[];
15
+ /** {@inheritDoc UserActionHistory.actionHistory} */
16
+ actionHistory: unknown[];
17
+ /** {@inheritDoc User.isAuthenticated} */
18
+ isAuthenticated: boolean;
19
+ /** {@inheritDoc User.userKVs} */
20
+ userKVs: {
21
+ [key: string]: any;
22
+ };
23
+ /** {@inheritDoc User.details} */
24
+ details: SetUserProperties['details'];
25
+ /** {@inheritDoc User.permission} */
26
+ permission: string[];
27
+ /** {@inheritDoc User.profile} */
28
+ profile: string[];
29
+ /** {@inheritDoc User.sourceRef} */
30
+ sourceRef: string;
31
+ /** {@inheritDoc User.userName} */
32
+ userName: string;
33
+ /** {@inheritDoc User.rawProperties} */
34
+ rawProperties: Partial<SetUserProperties>;
35
+ /** {@inheritDoc User.set} */
36
+ set(properties: Partial<SetUserProperties>): User;
37
+ /** {@inheritDoc User.unset} */
38
+ unset(): User;
39
+ /** @internal */
40
+ protected userNameChanged(): void;
41
+ /** {@inheritDoc User.username} */
42
+ get username(): string;
43
+ /** {@inheritDoc User.isAnonymous} */
44
+ get isAnonymous(): boolean;
45
+ /** {@inheritDoc User.isAdmin} */
46
+ isAdmin(): boolean;
47
+ /** {@inheritDoc User.isBanned} */
48
+ isBanned(): boolean;
49
+ /** {@inheritDoc User.hasPermission} */
50
+ hasPermission(permission: string | string[]): boolean;
51
+ /** {@inheritDoc User.hasProfile} */
52
+ hasProfile(profile: string | string[]): boolean;
53
+ /** {@inheritDoc UserPathHistory.trackPath} */
54
+ trackPath(): string;
55
+ /** {@inheritDoc UserPathHistory.clearPaths} */
56
+ clearPaths(): void;
57
+ /** {@inheritDoc UserPathHistory.lastPath} */
58
+ lastPath(): string;
59
+ /** {@inheritDoc UserActionHistory.trackAction} */
60
+ trackAction<TDetails = unknown>(details: TDetails): void;
61
+ /** {@inheritDoc UserActionHistory.clearActions} */
62
+ clearActions(): void;
63
+ /** {@inheritDoc UserActionHistory.lastAction} */
64
+ lastAction(): unknown;
65
+ /** {@inheritDoc User.clearTrackingHistory} */
66
+ clearTrackingHistory(): void;
67
+ /** @internal */
68
+ protected hasKey(keys: string[], key: string | string[]): boolean;
69
+ /** @internal */
70
+ protected authenticationChangeListeners: Observer<UserAuthenticationChangeEvent>;
71
+ /** {@inheritDoc User.addAuthenticationChangeListener} */
72
+ addAuthenticationChangeListener(listener: Listener<UserAuthenticationChangeEvent>): () => void;
73
+ /** @internal */
74
+ protected isAuthenticatedChanged(): void;
75
+ }
76
+
77
+ /**
78
+ * Default UserConfig DI implementation.
79
+ * @public
80
+ */
81
+ export declare const defaultUserConfig: UserConfig;
82
+
83
+ /**
84
+ * Gets User from the DI container.
85
+ *
86
+ * @remarks
87
+ * A utility method for host applications that are not using decorators or the DI container.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * import { getUser, User } from '@genesislcap/foundation-user';
92
+ * ...
93
+ * private user: User = getUser();
94
+ * ```
95
+ *
96
+ * @public
97
+ */
98
+ export declare function getUser(): User;
99
+
100
+ /**
101
+ * @public
102
+ */
103
+ export declare const logger: Logger;
104
+
105
+ /**
106
+ * SetUserProperties is a partial match of `LoginAck` from `@genesislcap/foundation-auth`.
107
+ *
108
+ * @public
109
+ */
110
+ export declare interface SetUserProperties extends Partial<UserQueueProperties> {
111
+ readonly sourceRef: string;
112
+ readonly userName: string;
113
+ readonly userKVs: UserKVsProperty;
114
+ readonly details: UserDetailsProperty;
115
+ readonly permission: string[];
116
+ readonly profile: string[];
117
+ readonly [key: string]: any;
118
+ }
119
+
120
+ /**
121
+ * User interface.
122
+ *
123
+ * @remarks
124
+ * The user singleton, which always exists in either an anonymous or authenticated mode.
125
+ *
126
+ * @privateRemarks
127
+ * Provides `username` and `userName` for backwards compatability.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * import { User } from '@genesislcap/foundation-user';
132
+ * ...
133
+ * @User private user: User
134
+ * ```
135
+ *
136
+ * @public
137
+ */
138
+ export declare interface User extends UserPathHistory, UserActionHistory {
139
+ readonly isAuthenticated: boolean;
140
+ readonly isAnonymous: boolean;
141
+ readonly userKVs: {
142
+ [key: string]: any;
143
+ };
144
+ readonly details: SetUserProperties['details'];
145
+ readonly permission: string[];
146
+ readonly profile: string[];
147
+ readonly sourceRef: string;
148
+ readonly userName: string;
149
+ readonly username: string;
150
+ /**
151
+ * A structuredClone of the raw unmanaged properties used to set the user.
152
+ *
153
+ * @remarks
154
+ * This offers developers an escape hatch to the raw properties. If you feel there's a gap in the User interface based
155
+ * on your application requirements, please raise a request for such properties to be moved onto the interface.
156
+ */
157
+ readonly rawProperties: Partial<SetUserProperties>;
158
+ /**
159
+ * @param properties - The UserProperties used to populate the User.
160
+ */
161
+ set(properties: Partial<SetUserProperties>): User;
162
+ unset(): User;
163
+ isAdmin(): boolean;
164
+ isBanned(): boolean;
165
+ /**
166
+ * @param permission - A permission string or an array of permission strings to check.
167
+ */
168
+ hasPermission(permission: string | string[]): boolean;
169
+ /**
170
+ * @param profile - A profile string or an array of profile strings to check.
171
+ */
172
+ hasProfile(profile: string | string[]): boolean;
173
+ /**
174
+ * @example
175
+ * ```ts
176
+ * import type { UserAuthenticationChangeEvent } from '@genesislcap/foundation-user';
177
+ * ...
178
+ * const unsubscribe = this.user.addAuthenticationChangeListener((event: UserAuthenticationChangeEvent) => {
179
+ * console.log('User authenticated?', event.detail);
180
+ * });
181
+ * ```
182
+ *
183
+ * @param listener - A listener function.
184
+ */
185
+ addAuthenticationChangeListener(listener: Listener<UserAuthenticationChangeEvent>): () => void;
186
+ clearTrackingHistory(): void;
187
+ }
188
+
189
+ /**
190
+ * User DI key.
191
+ *
192
+ * @privateRemarks
193
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
194
+ *
195
+ * @internal
196
+ */
197
+ export declare const User: InterfaceSymbol<User>;
198
+
199
+ /**
200
+ * UserActionHistory.
201
+ *
202
+ * @remarks
203
+ * APIs to track a user's action history.
204
+ *
205
+ * @privateRemarks
206
+ * Integrate with foundation analytics? Users could then simply call `user.trackAction` and we could engage analytics.
207
+ * We should move analytics out of comms first.
208
+ *
209
+ * @public
210
+ */
211
+ export declare interface UserActionHistory {
212
+ /**
213
+ * Array of actions that have been tracked.
214
+ */
215
+ readonly actionHistory: unknown[];
216
+ /**
217
+ * Track an action.
218
+ */
219
+ trackAction<TDetails = unknown>(details: TDetails): void;
220
+ /**
221
+ * Clears action history.
222
+ */
223
+ clearActions(): void;
224
+ /**
225
+ * @returns The last stored action.
226
+ */
227
+ lastAction(): unknown;
228
+ }
229
+
230
+ /**
231
+ * UserAuthenticationChangeEvent.
232
+ *
233
+ * @remarks
234
+ * Detail will either be `true` or `false` to indicate authentication status.
235
+ *
236
+ * @public
237
+ */
238
+ export declare type UserAuthenticationChangeEvent = CustomEvent<boolean>;
239
+
240
+ /**
241
+ * UserAuthenticationChangeType.
242
+ * @public
243
+ */
244
+ export declare const UserAuthenticationChangeType = "user-authentication-change";
245
+
246
+ /**
247
+ * UserConfig DI interface.
248
+ *
249
+ * @public
250
+ */
251
+ export declare interface UserConfig {
252
+ /**
253
+ * Exclude certain actions from tracking.
254
+ *
255
+ * See {@link UserPathHistory}
256
+ */
257
+ trackActionExclusions: unknown[];
258
+ /**
259
+ * Exclude certain paths from tracking.
260
+ *
261
+ * See {@link UserActionHistory}
262
+ */
263
+ trackPathExclusions: string[];
264
+ /**
265
+ * User property setter.
266
+ *
267
+ * @remarks
268
+ * The user is typically set from the result of a LoginAck.
269
+ */
270
+ setUser(user: WriteableUser, properties: Partial<SetUserProperties>): User;
271
+ /**
272
+ * User property un-setter.
273
+ */
274
+ unsetUser(user: WriteableUser): User;
275
+ }
276
+
277
+ /**
278
+ * UserConfig DI key.
279
+ *
280
+ * @internal
281
+ * @privateRemarks
282
+ * Marked as internal to stop api-extractor becoming confused cross-linking tokens with the same name.
283
+ */
284
+ export declare const UserConfig: InterfaceSymbol<UserConfig>;
285
+
286
+ /**
287
+ * @public
288
+ */
289
+ export declare interface UserDetailsProductProperty {
290
+ readonly name: string;
291
+ readonly version: string;
292
+ readonly [key: string]: any;
293
+ }
294
+
295
+ /**
296
+ * @public
297
+ */
298
+ export declare interface UserDetailsProperty {
299
+ readonly system: UserDetailsSystemProperty;
300
+ readonly product: UserDetailsProductProperty[];
301
+ readonly heartbeatIntervalSecs: number;
302
+ readonly failedLoginAttempts: number;
303
+ readonly rejectedLoginAttempts: number;
304
+ readonly lastLoginDatetime: number;
305
+ readonly daysToPasswordExpiry: number;
306
+ readonly [key: string]: any;
307
+ }
308
+
309
+ /**
310
+ * @public
311
+ */
312
+ export declare interface UserDetailsSystemProperty {
313
+ readonly date: string;
314
+ readonly [key: string]: any;
315
+ }
316
+
317
+ /**
318
+ * @public
319
+ */
320
+ export declare interface UserKVsProperty {
321
+ readonly [key: string]: any;
322
+ }
323
+
324
+ /**
325
+ * UserPathHistory.
326
+ *
327
+ * @remarks
328
+ * APIs to track a user's path history. Includes the pathname, search and hash only.
329
+ * This is not intended proxy or replace the History API.
330
+ *
331
+ * @privateRemarks
332
+ * Integrate with foundation analytics? Users could then simply call `user.trackPath` and we could engage analytics.
333
+ * We should move analytics out of comms first.
334
+ *
335
+ * @public
336
+ */
337
+ export declare interface UserPathHistory {
338
+ /**
339
+ * Array of paths that have been tracked.
340
+ */
341
+ readonly pathHistory: string[];
342
+ /**
343
+ * Track current path.
344
+ */
345
+ trackPath(): string;
346
+ /**
347
+ * Clears path history.
348
+ */
349
+ clearPaths(): void;
350
+ /**
351
+ * May be used to return to a target path after authentication.
352
+ * @returns The last stored path.
353
+ */
354
+ lastPath(): string | undefined;
355
+ }
356
+
357
+ /**
358
+ * @public
359
+ */
360
+ export declare interface UserQueueProperties {
361
+ readonly updateQueue: string;
362
+ readonly zeroMqProxyModeEnabled: boolean;
363
+ readonly zeroMqProxyInboundPort: number;
364
+ readonly zeroMqProxyOutboundPort: number;
365
+ }
366
+
367
+ /**
368
+ * @internal
369
+ */
370
+ declare type WriteableUser = {
371
+ -readonly [P in keyof User]: User[P];
372
+ };
373
+
374
+ export { }
@@ -0,0 +1,2 @@
1
+ *.md -diff
2
+ *.md linguist-generated
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [actionHistory](./foundation-user.defaultuser.actionhistory.md)
4
+
5
+ ## DefaultUser.actionHistory property
6
+
7
+ Array of actions that have been tracked.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ actionHistory: unknown[];
13
+ ```
@@ -0,0 +1,22 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [addAuthenticationChangeListener](./foundation-user.defaultuser.addauthenticationchangelistener.md)
4
+
5
+ ## DefaultUser.addAuthenticationChangeListener() method
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ addAuthenticationChangeListener(listener: Listener<UserAuthenticationChangeEvent>): () => void;
11
+ ```
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | --- | --- | --- |
17
+ | listener | Listener&lt;[UserAuthenticationChangeEvent](./foundation-user.userauthenticationchangeevent.md)<!-- -->&gt; | A listener function. |
18
+
19
+ **Returns:**
20
+
21
+ () =&gt; void
22
+
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [clearActions](./foundation-user.defaultuser.clearactions.md)
4
+
5
+ ## DefaultUser.clearActions() method
6
+
7
+ Clears action history.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ clearActions(): void;
13
+ ```
14
+ **Returns:**
15
+
16
+ void
17
+
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [clearPaths](./foundation-user.defaultuser.clearpaths.md)
4
+
5
+ ## DefaultUser.clearPaths() method
6
+
7
+ Clears path history.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ clearPaths(): void;
13
+ ```
14
+ **Returns:**
15
+
16
+ void
17
+
@@ -0,0 +1,16 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [clearTrackingHistory](./foundation-user.defaultuser.cleartrackinghistory.md)
4
+
5
+ ## DefaultUser.clearTrackingHistory() method
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ clearTrackingHistory(): void;
12
+ ```
13
+ **Returns:**
14
+
15
+ void
16
+
@@ -0,0 +1,12 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [details](./foundation-user.defaultuser.details.md)
4
+
5
+ ## DefaultUser.details property
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ details: SetUserProperties['details'];
12
+ ```
@@ -0,0 +1,22 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [hasPermission](./foundation-user.defaultuser.haspermission.md)
4
+
5
+ ## DefaultUser.hasPermission() method
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ hasPermission(permission: string | string[]): boolean;
11
+ ```
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | --- | --- | --- |
17
+ | permission | string \| string\[\] | A permission string or an array of permission strings to check. |
18
+
19
+ **Returns:**
20
+
21
+ boolean
22
+
@@ -0,0 +1,22 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [hasProfile](./foundation-user.defaultuser.hasprofile.md)
4
+
5
+ ## DefaultUser.hasProfile() method
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ hasProfile(profile: string | string[]): boolean;
11
+ ```
12
+
13
+ ## Parameters
14
+
15
+ | Parameter | Type | Description |
16
+ | --- | --- | --- |
17
+ | profile | string \| string\[\] | A profile string or an array of profile strings to check. |
18
+
19
+ **Returns:**
20
+
21
+ boolean
22
+
@@ -0,0 +1,16 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [isAdmin](./foundation-user.defaultuser.isadmin.md)
4
+
5
+ ## DefaultUser.isAdmin() method
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ isAdmin(): boolean;
12
+ ```
13
+ **Returns:**
14
+
15
+ boolean
16
+
@@ -0,0 +1,12 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [isAnonymous](./foundation-user.defaultuser.isanonymous.md)
4
+
5
+ ## DefaultUser.isAnonymous property
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ get isAnonymous(): boolean;
12
+ ```
@@ -0,0 +1,12 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [isAuthenticated](./foundation-user.defaultuser.isauthenticated.md)
4
+
5
+ ## DefaultUser.isAuthenticated property
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ isAuthenticated: boolean;
12
+ ```
@@ -0,0 +1,16 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [isBanned](./foundation-user.defaultuser.isbanned.md)
4
+
5
+ ## DefaultUser.isBanned() method
6
+
7
+
8
+ **Signature:**
9
+
10
+ ```typescript
11
+ isBanned(): boolean;
12
+ ```
13
+ **Returns:**
14
+
15
+ boolean
16
+
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [lastAction](./foundation-user.defaultuser.lastaction.md)
4
+
5
+ ## DefaultUser.lastAction() method
6
+
7
+ **Signature:**
8
+
9
+ ```typescript
10
+ lastAction(): unknown;
11
+ ```
12
+ **Returns:**
13
+
14
+ unknown
15
+
16
+ The last stored action.
17
+
@@ -0,0 +1,19 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md) &gt; [lastPath](./foundation-user.defaultuser.lastpath.md)
4
+
5
+ ## DefaultUser.lastPath() method
6
+
7
+ May be used to return to a target path after authentication.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ lastPath(): string;
13
+ ```
14
+ **Returns:**
15
+
16
+ string
17
+
18
+ The last stored path.
19
+
@@ -0,0 +1,51 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-user](./foundation-user.md) &gt; [DefaultUser](./foundation-user.defaultuser.md)
4
+
5
+ ## DefaultUser class
6
+
7
+ Default User implementation.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export declare class DefaultUser implements User
13
+ ```
14
+ **Implements:** [User](./foundation-user.user.md)
15
+
16
+ ## Properties
17
+
18
+ | Property | Modifiers | Type | Description |
19
+ | --- | --- | --- | --- |
20
+ | [actionHistory](./foundation-user.defaultuser.actionhistory.md) | | unknown\[\] | Array of actions that have been tracked. |
21
+ | [details](./foundation-user.defaultuser.details.md) | | [SetUserProperties](./foundation-user.setuserproperties.md)<!-- -->\['details'\] | |
22
+ | [isAnonymous](./foundation-user.defaultuser.isanonymous.md) | <code>readonly</code> | boolean | |
23
+ | [isAuthenticated](./foundation-user.defaultuser.isauthenticated.md) | | boolean | |
24
+ | [pathHistory](./foundation-user.defaultuser.pathhistory.md) | | string\[\] | Array of paths that have been tracked. |
25
+ | [permission](./foundation-user.defaultuser.permission.md) | | string\[\] | |
26
+ | [profile](./foundation-user.defaultuser.profile.md) | | string\[\] | |
27
+ | [rawProperties](./foundation-user.defaultuser.rawproperties.md) | | Partial&lt;[SetUserProperties](./foundation-user.setuserproperties.md)<!-- -->&gt; | A structuredClone of the raw unmanaged properties used to set the user. |
28
+ | [sourceRef](./foundation-user.defaultuser.sourceref.md) | | string | |
29
+ | [userKVs](./foundation-user.defaultuser.userkvs.md) | | { \[key: string\]: any; } | |
30
+ | [username](./foundation-user.defaultuser.username.md) | <code>readonly</code> | string | |
31
+ | [userName](./foundation-user.defaultuser.username.md) | | string | |
32
+
33
+ ## Methods
34
+
35
+ | Method | Modifiers | Description |
36
+ | --- | --- | --- |
37
+ | [addAuthenticationChangeListener(listener)](./foundation-user.defaultuser.addauthenticationchangelistener.md) | | |
38
+ | [clearActions()](./foundation-user.defaultuser.clearactions.md) | | Clears action history. |
39
+ | [clearPaths()](./foundation-user.defaultuser.clearpaths.md) | | Clears path history. |
40
+ | [clearTrackingHistory()](./foundation-user.defaultuser.cleartrackinghistory.md) | | |
41
+ | [hasPermission(permission)](./foundation-user.defaultuser.haspermission.md) | | |
42
+ | [hasProfile(profile)](./foundation-user.defaultuser.hasprofile.md) | | |
43
+ | [isAdmin()](./foundation-user.defaultuser.isadmin.md) | | |
44
+ | [isBanned()](./foundation-user.defaultuser.isbanned.md) | | |
45
+ | [lastAction()](./foundation-user.defaultuser.lastaction.md) | | |
46
+ | [lastPath()](./foundation-user.defaultuser.lastpath.md) | | May be used to return to a target path after authentication. |
47
+ | [set(properties)](./foundation-user.defaultuser.set.md) | | |
48
+ | [trackAction(details)](./foundation-user.defaultuser.trackaction.md) | | Track an action. |
49
+ | [trackPath()](./foundation-user.defaultuser.trackpath.md) | | Track current path. |
50
+ | [unset()](./foundation-user.defaultuser.unset.md) | | |
51
+