@cedarjs/auth 8.0.0-canary.3538 → 8.0.0-canary.3539
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AuthContext.d.ts +42 -8
- package/dist/AuthContext.d.ts.map +1 -1
- package/dist/AuthContext.js +5 -1
- package/dist/AuthProvider/AuthProvider.d.ts.map +1 -1
- package/dist/AuthProvider/AuthProvider.js +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/useAuth.d.ts.map +1 -1
- package/dist/useAuth.js +2 -1
- package/package.json +2 -2
package/dist/AuthContext.d.ts
CHANGED
|
@@ -17,7 +17,47 @@ export interface LoggedInUser {
|
|
|
17
17
|
* logged in
|
|
18
18
|
*/
|
|
19
19
|
export type CurrentUser = (LoggedInUser & object) | null;
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Whether the app has tenancy (`cedar setup tenancy`). This is a
|
|
22
|
+
* declaration-merging target: `cedar generate types` writes
|
|
23
|
+
* `.cedar/types/includes/web-tenancy.d.ts`, which augments it with
|
|
24
|
+
* `{ enabled: true }` in an app with tenancy. Empty otherwise.
|
|
25
|
+
*/
|
|
26
|
+
export interface AuthTenancy {
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* `useAuth()`'s role check: `hasUserRole` in an app with tenancy (see
|
|
30
|
+
* `AuthTenancy`), where every role check says which kind it is, and `hasRole`
|
|
31
|
+
* otherwise
|
|
32
|
+
*/
|
|
33
|
+
type RoleCheck = AuthTenancy extends {
|
|
34
|
+
enabled: true;
|
|
35
|
+
} ? {
|
|
36
|
+
/**
|
|
37
|
+
* Whether the "currentUser" from the api side has one of `rolesToCheck`
|
|
38
|
+
* (a role, or a list of roles) in `currentUser.roles`, as opposed to a
|
|
39
|
+
* role in the organization they're in
|
|
40
|
+
*/
|
|
41
|
+
hasUserRole(rolesToCheck: string | string[]): boolean;
|
|
42
|
+
} : {
|
|
43
|
+
/**
|
|
44
|
+
* Checks if the "currentUser" from the api side is assigned a role or one
|
|
45
|
+
* of a list of roles. If the user is assigned any of the provided list of
|
|
46
|
+
* roles, then hasRole is considered to be true.
|
|
47
|
+
*/
|
|
48
|
+
hasRole(rolesToCheck: string | string[]): boolean;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Both of `useAuth()`'s role checks, for an auth provider to spread into the
|
|
52
|
+
* value it provides. It can't know whether the app has tenancy, so it
|
|
53
|
+
* provides both, and the app's types show the one that fits (see
|
|
54
|
+
* `RoleCheck`).
|
|
55
|
+
*/
|
|
56
|
+
export declare function roleChecks(check: (rolesToCheck: string | string[]) => boolean): {
|
|
57
|
+
hasRole: (rolesToCheck: string | string[]) => boolean;
|
|
58
|
+
hasUserRole: (rolesToCheck: string | string[]) => boolean;
|
|
59
|
+
};
|
|
60
|
+
export interface AuthContextInterface<TUser, TLogInOptions, TLogIn, TLogOutOptions, TLogOut, TSignUpOptions, TSignUp, TForgotPassword, TResetPasswordOptions, TResetPassword, TValidateResetToken, TClient, TChangePasswordOptions = unknown, TChangePassword = unknown> extends RoleCheck {
|
|
21
61
|
/** Determining your current authentication state */
|
|
22
62
|
loading: boolean;
|
|
23
63
|
isAuthenticated: boolean;
|
|
@@ -57,13 +97,6 @@ export interface AuthContextInterface<TUser, TLogInOptions, TLogIn, TLogOutOptio
|
|
|
57
97
|
* but does not update the current user state.
|
|
58
98
|
*/
|
|
59
99
|
getCurrentUser(): Promise<CurrentUser>;
|
|
60
|
-
/**
|
|
61
|
-
* Checks if the "currentUser" from the api side
|
|
62
|
-
* is assigned a role or one of a list of roles.
|
|
63
|
-
* If the user is assigned any of the provided list of roles,
|
|
64
|
-
* the hasRole is considered to be true.
|
|
65
|
-
**/
|
|
66
|
-
hasRole(rolesToCheck: string | string[]): boolean;
|
|
67
100
|
/**
|
|
68
101
|
* Redetermine authentication state and update the state.
|
|
69
102
|
*/
|
|
@@ -87,4 +120,5 @@ export interface AuthContextInterface<TUser, TLogInOptions, TLogIn, TLogOutOptio
|
|
|
87
120
|
error?: Error;
|
|
88
121
|
}
|
|
89
122
|
export declare function createAuthContext<TUser, TLogInOptions, TLogIn, TLogOutOptions, TLogOut, TSignUpOptions, TSignUp, TForgotPassword, TResetPasswordOptions, TResetPassword, TValidateResetToken, TClient, TChangePasswordOptions = unknown, TChangePassword = unknown>(): React.Context<AuthContextInterface<TUser, TLogInOptions, TLogIn, TLogOutOptions, TLogOut, TSignUpOptions, TSignUp, TForgotPassword, TResetPasswordOptions, TResetPassword, TValidateResetToken, TClient, TChangePasswordOptions, TChangePassword> | undefined>;
|
|
123
|
+
export {};
|
|
90
124
|
//# sourceMappingURL=AuthContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../src/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;AAExD,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../src/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;AAExD;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;CAAG;AAE/B;;;;GAIG;AACH,KAAK,SAAS,GAAG,WAAW,SAAS;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAClD;IACE;;;;OAIG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CACtD,GACD;IACE;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CAClD,CAAA;AAEL;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;4BAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;gCAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;EAGpD;AAED,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,CACzB,SAAQ,SAAS;IACjB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,iFAAiF;IACjF,WAAW,EAAE,WAAW,CAAA;IACxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,EAAE,IAAI,GAAG,KAAK,CAAA;IAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;IAClC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACtC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACvE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC3E;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,oQAqB1B"}
|
package/dist/AuthContext.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
function roleChecks(check) {
|
|
3
|
+
return { hasRole: check, hasUserRole: check };
|
|
4
|
+
}
|
|
2
5
|
function createAuthContext() {
|
|
3
6
|
return React.createContext(void 0);
|
|
4
7
|
}
|
|
5
8
|
export {
|
|
6
|
-
createAuthContext
|
|
9
|
+
createAuthContext,
|
|
10
|
+
roleChecks
|
|
7
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/AuthProvider/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA0C,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/AuthProvider/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAiBlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,EAEzB,WAAW,EAAE,KAAK,CAAC,OAAO,CACtB,oBAAoB,CAClB,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,GACD,SAAS,CACZ,EACD,kBAAkB,EAAE,kBAAkB,CACpC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,EACD,mBAAmB,CAAC,EAAE;IACpB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,CACX,WAAW,EAAE,WAAW,KACrB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAA;CAClD,kBAEmC,iBAAiB,uBA8FtD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { useContext, useEffect, useState } from "react";
|
|
2
|
+
import { roleChecks } from "../AuthContext.js";
|
|
2
3
|
import { spaDefaultAuthProviderState } from "./AuthProviderState.js";
|
|
3
4
|
import { ServerAuthContext } from "./ServerAuthProvider.js";
|
|
4
5
|
import { useChangePassword } from "./useChangePassword.js";
|
|
@@ -66,7 +67,7 @@ function createAuthProvider(AuthContext, authImplementation, customProviderHooks
|
|
|
66
67
|
logOut,
|
|
67
68
|
getToken,
|
|
68
69
|
getCurrentUser,
|
|
69
|
-
hasRole,
|
|
70
|
+
...roleChecks(hasRole),
|
|
70
71
|
reauthenticate,
|
|
71
72
|
forgotPassword,
|
|
72
73
|
resetPassword,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { AuthContextInterface, CurrentUser, LoggedInUser, } from './AuthContext.js';
|
|
1
|
+
export type { AuthContextInterface, AuthTenancy, CurrentUser, LoggedInUser, } from './AuthContext.js';
|
|
2
2
|
export type { AuthProviderProps } from './AuthProvider/AuthProvider.js';
|
|
3
3
|
export { useNoAuth } from './useAuth.js';
|
|
4
4
|
export type { UseAuth } from './useAuth.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA"}
|
package/dist/useAuth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../src/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../src/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,wBAAgB,aAAa,CAC3B,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,EAEzB,WAAW,EAAE,KAAK,CAAC,OAAO,CACtB,oBAAoB,CAClB,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,GACD,SAAS,CACZ,SAEmB,oBAAoB,CACtC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,CAWF;AAED,wBAAgB,SAAS,IAAI,oBAAoB,CAC/C,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,CACL,CAqBA;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAC9C,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR,CAAA"}
|
package/dist/useAuth.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { roleChecks } from "./AuthContext.js";
|
|
2
3
|
function createUseAuth(AuthContext) {
|
|
3
4
|
const useAuth = () => {
|
|
4
5
|
const context = React.useContext(AuthContext);
|
|
@@ -23,7 +24,7 @@ function useNoAuth() {
|
|
|
23
24
|
userMetadata: null,
|
|
24
25
|
getToken: async () => null,
|
|
25
26
|
getCurrentUser: async () => null,
|
|
26
|
-
|
|
27
|
+
...roleChecks(() => false),
|
|
27
28
|
reauthenticate: async () => {
|
|
28
29
|
},
|
|
29
30
|
forgotPassword: async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/auth",
|
|
3
|
-
"version": "8.0.0-canary.
|
|
3
|
+
"version": "8.0.0-canary.3539",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@arethetypeswrong/cli": "0.18.5",
|
|
58
|
-
"@cedarjs/framework-tools": "8.0.0-canary.
|
|
58
|
+
"@cedarjs/framework-tools": "8.0.0-canary.3539",
|
|
59
59
|
"@testing-library/dom": "10.4.2",
|
|
60
60
|
"@testing-library/jest-dom": "6.9.1",
|
|
61
61
|
"@testing-library/react": "16.3.3",
|