@prsm/auth 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +226 -0
  2. package/index.d.ts +19 -0
  3. package/package.json +76 -0
  4. package/src/__tests__/auth.test.js +1171 -0
  5. package/src/__tests__/impersonation-test-setup.js +208 -0
  6. package/src/__tests__/impersonation.test.js +473 -0
  7. package/src/__tests__/oauth-test-setup.js +136 -0
  8. package/src/__tests__/oauth.test.js +400 -0
  9. package/src/__tests__/prsm.test.js +215 -0
  10. package/src/__tests__/test-setup.js +385 -0
  11. package/src/__tests__/totp.test.js +158 -0
  12. package/src/__tests__/two-factor-test-setup.js +331 -0
  13. package/src/__tests__/two-factor.test.js +396 -0
  14. package/src/activity-logger.js +228 -0
  15. package/src/auth-context.js +120 -0
  16. package/src/auth-functions.js +520 -0
  17. package/src/auth-manager.js +1371 -0
  18. package/src/errors.js +173 -0
  19. package/src/hooks.js +41 -0
  20. package/src/index.js +23 -0
  21. package/src/invalidation.js +166 -0
  22. package/src/middleware.js +33 -0
  23. package/src/providers/azure-provider.js +114 -0
  24. package/src/providers/base-provider.js +152 -0
  25. package/src/providers/github-provider.js +86 -0
  26. package/src/providers/google-provider.js +76 -0
  27. package/src/providers/index.js +4 -0
  28. package/src/queries.js +543 -0
  29. package/src/schema.js +261 -0
  30. package/src/totp.js +221 -0
  31. package/src/two-factor/index.js +3 -0
  32. package/src/two-factor/otp-provider.js +128 -0
  33. package/src/two-factor/totp-provider.js +98 -0
  34. package/src/two-factor/two-factor-manager.js +676 -0
  35. package/src/types.js +399 -0
  36. package/src/user-roles.js +128 -0
  37. package/src/util.js +32 -0
  38. package/types/activity-logger.d.ts +73 -0
  39. package/types/auth-context.d.ts +88 -0
  40. package/types/auth-functions.d.ts +151 -0
  41. package/types/auth-manager.d.ts +365 -0
  42. package/types/errors.d.ts +108 -0
  43. package/types/hooks.d.ts +30 -0
  44. package/types/index.d.ts +13 -0
  45. package/types/invalidation.d.ts +40 -0
  46. package/types/middleware.d.ts +11 -0
  47. package/types/providers/azure-provider.d.ts +35 -0
  48. package/types/providers/base-provider.d.ts +52 -0
  49. package/types/providers/github-provider.d.ts +29 -0
  50. package/types/providers/google-provider.d.ts +29 -0
  51. package/types/providers/index.d.ts +4 -0
  52. package/types/queries.d.ts +287 -0
  53. package/types/schema.d.ts +37 -0
  54. package/types/totp.d.ts +72 -0
  55. package/types/two-factor/index.d.ts +3 -0
  56. package/types/two-factor/otp-provider.d.ts +57 -0
  57. package/types/two-factor/totp-provider.d.ts +58 -0
  58. package/types/two-factor/two-factor-manager.d.ts +191 -0
  59. package/types/types.d.ts +688 -0
  60. package/types/user-roles.d.ts +47 -0
  61. package/types/util.d.ts +3 -0
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Define a set of named roles as a frozen bitmask map. Each role gets the next
3
+ * power-of-two bit. Capped at 31 because postgres INTEGER is 32-bit signed.
4
+ *
5
+ * @param {...string} names
6
+ * @returns {Readonly<Record<string, number>>}
7
+ */
8
+ export function defineRoles(...names: string[]): Readonly<Record<string, number>>;
9
+ /**
10
+ * Add a role to a user's account using bitwise OR.
11
+ *
12
+ * @param {AuthConfig} config
13
+ * @param {UserIdentifier} identifier
14
+ * @param {number} role
15
+ * @throws {UserNotFoundError}
16
+ */
17
+ export function addRoleToUser(config: AuthConfig, identifier: UserIdentifier, role: number): Promise<void>;
18
+ /**
19
+ * Remove a role from a user's account using bitwise operations.
20
+ *
21
+ * @param {AuthConfig} config
22
+ * @param {UserIdentifier} identifier
23
+ * @param {number} role
24
+ * @throws {UserNotFoundError}
25
+ */
26
+ export function removeRoleFromUser(config: AuthConfig, identifier: UserIdentifier, role: number): Promise<void>;
27
+ /**
28
+ * Set a user's complete role mask, replacing any existing roles.
29
+ *
30
+ * @param {AuthConfig} config
31
+ * @param {UserIdentifier} identifier
32
+ * @param {number} rolemask
33
+ * @throws {UserNotFoundError}
34
+ */
35
+ export function setUserRoles(config: AuthConfig, identifier: UserIdentifier, rolemask: number): Promise<void>;
36
+ /**
37
+ * Get a user's current role mask.
38
+ *
39
+ * @param {AuthConfig} config
40
+ * @param {UserIdentifier} identifier
41
+ * @returns {Promise<number>}
42
+ * @throws {UserNotFoundError}
43
+ */
44
+ export function getUserRoles(config: AuthConfig, identifier: UserIdentifier): Promise<number>;
45
+ export type AuthConfig = import("./types.js").AuthConfig;
46
+ export type AuthAccount = import("./types.js").AuthAccount;
47
+ export type UserIdentifier = import("./types.js").UserIdentifier;
@@ -0,0 +1,3 @@
1
+ export function isValidEmail(email: string): boolean;
2
+ export function validateEmail(email: string): void;
3
+ export function createMapFromEnum(enumObj: Record<string, number>): Record<number, string>;