@bitblit/ratchet-warden-common 6.1.160 → 6.1.168-alpha

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 (60) hide show
  1. package/lib/client/provider/warden-client-abstract-recent-login-provider.js +3 -0
  2. package/lib/client/provider/warden-client-abstract-recent-login-provider.js.map +1 -1
  3. package/lib/client/provider/warden-client-storage-based-logged-in-user-provider.d.ts +3 -3
  4. package/lib/client/provider/warden-client-storage-based-logged-in-user-provider.js.map +1 -1
  5. package/lib/client/provider/warden-client-transient-memory-logged-in-user-provider.d.ts +3 -3
  6. package/lib/client/provider/warden-client-transient-memory-logged-in-user-provider.js.map +1 -1
  7. package/lib/client/provider/warden-logged-in-user-provider.d.ts +3 -3
  8. package/lib/client/provider/warden-logged-in-user-wrapper.d.ts +4 -3
  9. package/lib/client/provider/warden-user-service-event-processing-provider.d.ts +3 -3
  10. package/lib/client/provider/warden-user-service-options.d.ts +3 -3
  11. package/lib/client/warden-client.d.ts +1 -1
  12. package/lib/client/warden-client.js +2 -3
  13. package/lib/client/warden-client.js.map +1 -1
  14. package/lib/client/warden-delegating-current-user-providing-user-service-event-processing-provider.d.ts +5 -5
  15. package/lib/client/warden-delegating-current-user-providing-user-service-event-processing-provider.js.map +1 -1
  16. package/lib/client/warden-user-service.d.ts +13 -13
  17. package/lib/client/warden-user-service.js +9 -9
  18. package/lib/client/warden-user-service.js.map +1 -1
  19. package/lib/common/command/create-account.d.ts +0 -1
  20. package/lib/common/model/warden-entry-common-data.d.ts +11 -0
  21. package/lib/common/model/warden-entry-common-data.js +2 -0
  22. package/lib/common/model/warden-entry-common-data.js.map +1 -0
  23. package/lib/common/model/warden-entry-metadata-type.d.ts +4 -0
  24. package/lib/common/model/warden-entry-metadata-type.js +6 -0
  25. package/lib/common/model/warden-entry-metadata-type.js.map +1 -0
  26. package/lib/common/model/warden-entry-metadata.d.ts +6 -0
  27. package/lib/common/model/warden-entry-metadata.js +2 -0
  28. package/lib/common/model/warden-entry-metadata.js.map +1 -0
  29. package/lib/common/model/warden-entry-summary.d.ts +3 -6
  30. package/lib/common/model/warden-entry.d.ts +4 -7
  31. package/lib/common/util/warden-utils.d.ts +15 -16
  32. package/lib/common/util/warden-utils.js +6 -15
  33. package/lib/common/util/warden-utils.js.map +1 -1
  34. package/package.json +3 -3
  35. package/src/client/provider/warden-client-abstract-recent-login-provider.ts +3 -0
  36. package/src/client/provider/warden-client-storage-based-logged-in-user-provider.ts +4 -4
  37. package/src/client/provider/warden-client-transient-memory-logged-in-user-provider.ts +4 -4
  38. package/src/client/provider/warden-logged-in-user-provider.ts +3 -3
  39. package/src/client/provider/warden-logged-in-user-wrapper.ts +4 -3
  40. package/src/client/provider/warden-user-service-event-processing-provider.ts +3 -3
  41. package/src/client/provider/warden-user-service-options.ts +3 -3
  42. package/src/client/warden-client.ts +2 -3
  43. package/src/client/warden-delegating-current-user-providing-user-service-event-processing-provider.ts +8 -8
  44. package/src/client/warden-user-service.spec.ts +4 -4
  45. package/src/client/warden-user-service.ts +48 -52
  46. package/src/common/command/create-account.ts +0 -1
  47. package/src/common/model/warden-entry-common-data.ts +13 -0
  48. package/src/common/model/warden-entry-metadata-type.ts +4 -0
  49. package/src/common/model/warden-entry-metadata.ts +7 -0
  50. package/src/common/model/warden-entry-summary.ts +3 -6
  51. package/src/common/model/warden-entry.ts +6 -7
  52. package/src/common/util/warden-utils.ts +19 -30
  53. package/lib/common/model/warden-jwt-token.d.ts +0 -8
  54. package/lib/common/model/warden-jwt-token.js +0 -2
  55. package/lib/common/model/warden-jwt-token.js.map +0 -1
  56. package/lib/common/model/warden-user-decoration.d.ts +0 -8
  57. package/lib/common/model/warden-user-decoration.js +0 -2
  58. package/lib/common/model/warden-user-decoration.js.map +0 -1
  59. package/src/common/model/warden-jwt-token.ts +0 -15
  60. package/src/common/model/warden-user-decoration.ts +0 -10
@@ -11,9 +11,9 @@ import { WardenWebAuthnEntry } from "../model/warden-web-authn-entry.js";
11
11
  import { WardenWebAuthnEntrySummary } from "../model/warden-web-authn-entry-summary.js";
12
12
  import { WardenLoggedInUserWrapper } from "../../client/provider/warden-logged-in-user-wrapper.js";
13
13
  import { WardenLoginRequestType } from "../model/warden-login-request-type.ts";
14
- import { WardenUserDecoration } from "../model/warden-user-decoration.ts";
15
14
  import { BooleanRatchet } from "@bitblit/ratchet-common/lang/boolean-ratchet";
16
- import { WardenJwtToken } from "../model/warden-jwt-token.ts";
15
+ import { WardenEntryMetadataType } from "../model/warden-entry-metadata-type.ts";
16
+ import { WardenEntryCommonData } from "../model/warden-entry-common-data.ts";
17
17
 
18
18
  export class WardenUtils {
19
19
  // Prevent instantiation
@@ -164,13 +164,16 @@ export class WardenUtils {
164
164
  return !!value.match(/^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im);
165
165
  }
166
166
 
167
- public static stripWardenEntryToSummary(we: WardenEntry): WardenEntrySummary {
167
+ public static stripWardenEntryToSummary(we: WardenEntry, metaTypes: WardenEntryMetadataType[] = [WardenEntryMetadataType.Shared]): WardenEntrySummary {
168
168
  const rval: WardenEntrySummary = we
169
169
  ? {
170
170
  userId: we.userId,
171
171
  userLabel: we.userLabel,
172
172
  contactMethods: we.contactMethods,
173
173
  webAuthnAuthenticatorSummaries: (we?.webAuthnAuthenticators || []).map((s) => WardenUtils.stripWardenWebAuthnEntryToSummary(s)),
174
+ meta: (we?.meta ||[]).filter(w=>metaTypes.includes(w.type)),
175
+ globalRoleIds: we.globalRoleIds,
176
+ teamRoleMappings: we.teamRoleMappings
174
177
  }
175
178
  : null;
176
179
  return rval;
@@ -188,38 +191,38 @@ export class WardenUtils {
188
191
  return rval;
189
192
  }
190
193
 
191
- public static wrapperIsExpired(value: WardenLoggedInUserWrapper<any>): boolean {
192
- const rval: boolean = value?.userObject?.exp && value.expirationEpochSeconds < Date.now() / 1000;
194
+ public static wrapperIsExpired(value: WardenLoggedInUserWrapper): boolean {
195
+ const rval: boolean = value && value.expirationEpochSeconds < Date.now() / 1000;
193
196
  return rval;
194
197
  }
195
198
 
196
- public static userHasGlobalRole(user: WardenUserDecoration<any>, roleId: string): boolean {
199
+ public static userHasGlobalRole(user: WardenEntryCommonData, roleId: string): boolean {
197
200
  return WardenUtils.userHasGlobalRoles(user, [roleId], true);
198
201
  }
199
202
 
200
- public static userHasRoleOnTeam(user: WardenUserDecoration<any>,teamId: string, roleId: string): boolean {
203
+ public static userHasRoleOnTeam(user: WardenEntryCommonData,teamId: string, roleId: string): boolean {
201
204
  return WardenUtils.userHasRolesOnTeam(user, teamId, [roleId], true);
202
205
  }
203
206
 
204
- public static userHasAtLeastOneGlobalRole(user: WardenUserDecoration<any>, roleIds: string[]): boolean {
207
+ public static userHasAtLeastOneGlobalRole(user: WardenEntryCommonData, roleIds: string[]): boolean {
205
208
  return WardenUtils.userHasGlobalRoles(user, roleIds, false);
206
209
  }
207
210
 
208
- public static userHasAtLeastOneRoleOnTeam(user: WardenUserDecoration<any>, teamId: string, roleIds: string[]): boolean {
211
+ public static userHasAtLeastOneRoleOnTeam(user: WardenEntryCommonData, teamId: string, roleIds: string[]): boolean {
209
212
  return WardenUtils.userHasRolesOnTeam(user, teamId, roleIds, false);
210
213
  }
211
214
 
212
215
 
213
- public static userHasAllGlobalRoles(user: WardenUserDecoration<any>, roleIds: string[]): boolean {
216
+ public static userHasAllGlobalRoles(user: WardenEntryCommonData, roleIds: string[]): boolean {
214
217
  return WardenUtils.userHasGlobalRoles(user, roleIds, true);
215
218
  }
216
219
 
217
- public static userHasAllRolesOnTeam(user: WardenUserDecoration<any>, teamId: string, roleIds: string[]): boolean {
220
+ public static userHasAllRolesOnTeam(user: WardenEntryCommonData, teamId: string, roleIds: string[]): boolean {
218
221
  return WardenUtils.userHasRolesOnTeam(user, teamId, roleIds, true);
219
222
  }
220
223
 
221
224
 
222
- public static userHasGlobalRoles(user: WardenUserDecoration<any>, inRoleIds: string[], combineWithAnd: boolean): boolean {
225
+ public static userHasGlobalRoles(user: WardenEntryCommonData, inRoleIds: string[], combineWithAnd: boolean): boolean {
223
226
  let rval: boolean = false;
224
227
  const roleIds: string[] = inRoleIds ? inRoleIds.map(r=>StringRatchet.trimToNull(r)?.toLowerCase()) : null
225
228
  if (user && roleIds && roleIds.length > 0) {
@@ -229,7 +232,7 @@ export class WardenUtils {
229
232
  return rval;
230
233
  }
231
234
 
232
- public static userHasRolesOnTeam(user: WardenUserDecoration<any>, inTeamId: string, inRoleIds: string[], combineWithAnd: boolean): boolean {
235
+ public static userHasRolesOnTeam(user: WardenEntryCommonData, inTeamId: string, inRoleIds: string[], combineWithAnd: boolean): boolean {
233
236
  let rval: boolean = false;
234
237
  const teamId: string = StringRatchet.trimToNull(inTeamId)?.toLowerCase();
235
238
  const roleIds: string[] = inRoleIds ? inRoleIds.map(r=>StringRatchet.trimToNull(r)?.toLowerCase()) : null
@@ -242,11 +245,11 @@ export class WardenUtils {
242
245
  }
243
246
 
244
247
  // Just a synonym since that is how some people think
245
- public static userIsTeamMember(user: WardenUserDecoration<any>, inTeamId: string): boolean {
248
+ public static userIsTeamMember(user: WardenEntryCommonData, inTeamId: string): boolean {
246
249
  return WardenUtils.userHasAnyRoleOnTeam(user, inTeamId);
247
250
  }
248
251
 
249
- public static userHasAnyRoleOnTeam(user: WardenUserDecoration<any>, inTeamId: string): boolean {
252
+ public static userHasAnyRoleOnTeam(user: WardenEntryCommonData, inTeamId: string): boolean {
250
253
  let rval: boolean = false;
251
254
  const teamId: string = StringRatchet.trimToNull(inTeamId)?.toLowerCase();
252
255
  if (user && teamId) {
@@ -256,7 +259,7 @@ export class WardenUtils {
256
259
  return rval;
257
260
  }
258
261
 
259
- public static usersTeamMemberships(user: WardenUserDecoration<any>): string[] {
262
+ public static usersTeamMemberships(user: WardenEntryCommonData): string[] {
260
263
  let rval: string[] = [];
261
264
  if (user) {
262
265
  const s = new Set<string>(user.teamRoleMappings.map(s=>StringRatchet.trimToNull(s.teamId).toLowerCase()));
@@ -265,20 +268,6 @@ export class WardenUtils {
265
268
  return rval;
266
269
  }
267
270
 
268
- public static wardenUserDecorationFromToken<T>(jwt: WardenJwtToken<T>): WardenUserDecoration<T> {
269
- let rval: WardenUserDecoration<any> = null;
270
- if (jwt) {
271
- rval = {
272
- userTokenData: jwt.user,
273
- proxyUserTokenData: jwt.proxy,
274
- userTokenExpirationSeconds: null,
275
-
276
- globalRoleIds: jwt.globalRoleIds,
277
- teamRoleMappings: jwt.teamRoleMappings
278
- }
279
- }
280
- return rval;
281
- }
282
271
 
283
272
 
284
273
  }
@@ -1,8 +0,0 @@
1
- import { CommonJwtToken } from '@bitblit/ratchet-common/jwt/common-jwt-token';
2
- import { WardenEntrySummary } from './warden-entry-summary.js';
3
- import { WardenTeamRoleMapping } from "./warden-team-role-mapping.ts";
4
- export interface WardenJwtToken<T> extends CommonJwtToken<T> {
5
- wardenData: WardenEntrySummary;
6
- globalRoleIds: string[];
7
- teamRoleMappings: WardenTeamRoleMapping[];
8
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=warden-jwt-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"warden-jwt-token.js","sourceRoot":"","sources":["../../../src/common/model/warden-jwt-token.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { WardenTeamRoleMapping } from './warden-team-role-mapping.ts';
2
- export interface WardenUserDecoration<T> {
3
- userTokenData: T;
4
- proxyUserTokenData: T;
5
- userTokenExpirationSeconds: number;
6
- globalRoleIds: string[];
7
- teamRoleMappings: WardenTeamRoleMapping[];
8
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=warden-user-decoration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"warden-user-decoration.js","sourceRoot":"","sources":["../../../src/common/model/warden-user-decoration.ts"],"names":[],"mappings":""}
@@ -1,15 +0,0 @@
1
- import { CommonJwtToken } from '@bitblit/ratchet-common/jwt/common-jwt-token';
2
- import { WardenEntrySummary } from './warden-entry-summary.js';
3
- import { WardenTeamRoleMapping } from "./warden-team-role-mapping.ts";
4
-
5
- export interface WardenJwtToken<T> extends CommonJwtToken<T> {
6
- wardenData: WardenEntrySummary;
7
-
8
- // This is built using a combo of the user data that warden tracks, and that the decorator tracks
9
- // Decorator output goes into the user and proxy fields from commonJwtToken, plus the
10
- // fields below
11
-
12
- globalRoleIds: string[];
13
- teamRoleMappings: WardenTeamRoleMapping[];
14
-
15
- }
@@ -1,10 +0,0 @@
1
- import { WardenTeamRoleMapping } from './warden-team-role-mapping.ts';
2
-
3
- export interface WardenUserDecoration<T> {
4
- userTokenData: T;
5
- proxyUserTokenData: T;
6
- userTokenExpirationSeconds: number;
7
-
8
- globalRoleIds: string[];
9
- teamRoleMappings: WardenTeamRoleMapping[];
10
- }