@auth0/auth0-react 2.15.1 → 2.16.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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { default as Auth0Provider, Auth0ProviderOptions, AppState, ConnectedAccount } from './auth0-provider';
1
+ export { default as Auth0Provider, Auth0ProviderOptions, Auth0ProviderWithConfigOptions, Auth0ProviderWithClientOptions, AppState, ConnectedAccount } from './auth0-provider';
2
2
  export { default as useAuth0 } from './use-auth0';
3
3
  export { default as withAuth0, WithAuth0Props } from './with-auth0';
4
4
  export { default as withAuthenticationRequired, WithAuthenticationRequiredOptions, } from './with-authentication-required';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,oBAAoB,EACpB,QAAQ,EACR,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,0BAA0B,EACrC,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,OAAO,IAAI,YAAY,EACvB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,OAAO,EACP,IAAI,EACJ,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,YAAY,EACZ,YAAY,EACZ,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAEnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,IAAI,aAAa,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC9B,QAAQ,EACR,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,OAAO,IAAI,0BAA0B,EACrC,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,OAAO,IAAI,YAAY,EACvB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,OAAO,EACP,IAAI,EACJ,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,KAAK,aAAa,EAClB,6BAA6B,EAC7B,4BAA4B,EAC5B,YAAY,EACZ,YAAY,EACZ,KAAK,uBAAuB,EAC5B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAEnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,QAAQ,EACR,0BAA0B,EAC1B,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "Auth0",
3
3
  "name": "@auth0/auth0-react",
4
- "version": "2.15.1",
4
+ "version": "2.16.0",
5
5
  "description": "Auth0 SDK for React Single Page Applications (SPA)",
6
6
  "keywords": [
7
7
  "auth0",
@@ -95,6 +95,6 @@
95
95
  "react-dom": "^16.11.0 || ^17 || ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1"
96
96
  },
97
97
  "dependencies": {
98
- "@auth0/auth0-spa-js": "^2.17.1"
98
+ "@auth0/auth0-spa-js": "^2.18.0"
99
99
  }
100
100
  }
@@ -51,10 +51,7 @@ export type AppState = {
51
51
  [key: string]: any; // eslint-disable-line @typescript-eslint/no-explicit-any
52
52
  };
53
53
 
54
- /**
55
- * The main configuration to instantiate the `Auth0Provider`.
56
- */
57
- export interface Auth0ProviderOptions<TUser extends User = User> extends Auth0ClientOptions {
54
+ type Auth0ProviderBaseOptions<TUser extends User = User> = {
58
55
  /**
59
56
  * The child nodes your Provider has wrapped
60
57
  */
@@ -97,7 +94,30 @@ export interface Auth0ProviderOptions<TUser extends User = User> extends Auth0Cl
97
94
  * For a sample on using multiple Auth0Providers review the [React Account Linking Sample](https://github.com/auth0-samples/auth0-link-accounts-sample/tree/react-variant)
98
95
  */
99
96
  context?: React.Context<Auth0ContextInterface<TUser>>;
100
- }
97
+ };
98
+
99
+ /**
100
+ * Options for `Auth0Provider` when configuring Auth0 via `domain` and `clientId`.
101
+ * Use this type when building wrapper components around `Auth0Provider`.
102
+ */
103
+ export type Auth0ProviderWithConfigOptions<TUser extends User = User> =
104
+ Auth0ProviderBaseOptions<TUser> & Auth0ClientOptions & { client?: never };
105
+
106
+ /**
107
+ * Options for `Auth0Provider` when supplying a pre-configured `Auth0Client` instance.
108
+ */
109
+ export type Auth0ProviderWithClientOptions<TUser extends User = User> =
110
+ Auth0ProviderBaseOptions<TUser> & { client: Auth0Client };
111
+
112
+ /**
113
+ * The main configuration to instantiate the `Auth0Provider`.
114
+ *
115
+ * Either provide `domain` and `clientId` (`Auth0ProviderWithConfigOptions`)
116
+ * or a pre-configured `client` instance (`Auth0ProviderWithClientOptions`).
117
+ */
118
+ export type Auth0ProviderOptions<TUser extends User = User> =
119
+ | Auth0ProviderWithConfigOptions<TUser>
120
+ | Auth0ProviderWithClientOptions<TUser>;
101
121
 
102
122
  /**
103
123
  * Replaced by the package version at build time.
@@ -109,7 +129,7 @@ declare const __VERSION__: string;
109
129
  * @ignore
110
130
  */
111
131
  const toAuth0ClientOptions = (
112
- opts: Auth0ProviderOptions
132
+ opts: Auth0ClientOptions
113
133
  ): Auth0ClientOptions => {
114
134
  deprecateRedirectUri(opts);
115
135
 
@@ -151,10 +171,18 @@ const Auth0Provider = <TUser extends User = User>(opts: Auth0ProviderOptions<TUs
151
171
  skipRedirectCallback,
152
172
  onRedirectCallback = defaultOnRedirectCallback,
153
173
  context = Auth0Context,
174
+ client: providedClient,
154
175
  ...clientOpts
155
- } = opts;
176
+ } = opts as Auth0ProviderBaseOptions<TUser> & Auth0ClientOptions & { client?: Auth0Client };
177
+ if (providedClient && (clientOpts.domain || clientOpts.clientId)) {
178
+ console.warn(
179
+ 'Auth0Provider: the `client` prop takes precedence over `domain`/`clientId` and other ' +
180
+ 'configuration options. Remove `domain`, `clientId`, and any other Auth0Client configuration ' +
181
+ 'props when using the `client` prop.'
182
+ );
183
+ }
156
184
  const [client] = useState(
157
- () => new Auth0Client(toAuth0ClientOptions(clientOpts))
185
+ () => providedClient ?? new Auth0Client(toAuth0ClientOptions(clientOpts))
158
186
  );
159
187
  const [state, dispatch] = useReducer(reducer<TUser>, initialAuthState as AuthState<TUser>);
160
188
  const didInitialise = useRef(false);
package/src/index.tsx CHANGED
@@ -1,6 +1,8 @@
1
1
  export {
2
2
  default as Auth0Provider,
3
3
  Auth0ProviderOptions,
4
+ Auth0ProviderWithConfigOptions,
5
+ Auth0ProviderWithClientOptions,
4
6
  AppState,
5
7
  ConnectedAccount
6
8
  } from './auth0-provider';