@ory/elements-react 1.0.0-next.3 → 1.0.0-next.30
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/CHANGELOG.md +415 -0
- package/DEVELOPMENT.md +79 -0
- package/LICENSE +201 -0
- package/README.md +112 -37
- package/dist/client/config.d.mts +21 -0
- package/dist/client/config.d.ts +21 -0
- package/dist/client/config.js +77 -0
- package/dist/client/config.js.map +1 -0
- package/dist/client/config.mjs +51 -0
- package/dist/client/config.mjs.map +1 -0
- package/dist/client/frontendClient.d.mts +7 -0
- package/dist/client/frontendClient.d.ts +7 -0
- package/dist/client/frontendClient.js +52 -0
- package/dist/client/frontendClient.js.map +1 -0
- package/dist/client/frontendClient.mjs +31 -0
- package/dist/client/frontendClient.mjs.map +1 -0
- package/dist/client/index.d.mts +5 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.js +33 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/index.mjs +10 -0
- package/dist/client/index.mjs.map +1 -0
- package/dist/client/session-provider.d.mts +62 -0
- package/dist/client/session-provider.d.ts +62 -0
- package/dist/client/session-provider.js +96 -0
- package/dist/client/session-provider.js.map +1 -0
- package/dist/client/session-provider.mjs +71 -0
- package/dist/client/session-provider.mjs.map +1 -0
- package/dist/client/useSession.d.mts +32 -0
- package/dist/client/useSession.d.ts +32 -0
- package/dist/client/useSession.js +37 -0
- package/dist/client/useSession.js.map +1 -0
- package/dist/client/useSession.mjs +13 -0
- package/dist/client/useSession.mjs.map +1 -0
- package/dist/index.d.mts +445 -1635
- package/dist/index.d.ts +445 -1635
- package/dist/index.js +2411 -5702
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2404 -5668
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +833 -181
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +29 -142
- package/dist/theme/default/index.d.ts +29 -142
- package/dist/theme/default/index.js +2026 -10131
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +2080 -10212
- package/dist/theme/default/index.mjs.map +1 -1
- package/dist/theme/default/tailwind/defaults.d.mts +737 -0
- package/dist/theme/default/tailwind/defaults.d.ts +737 -0
- package/dist/theme/default/tailwind/defaults.js +219 -0
- package/dist/theme/default/tailwind/defaults.js.map +1 -0
- package/dist/theme/default/tailwind/defaults.mjs +196 -0
- package/dist/theme/default/tailwind/defaults.mjs.map +1 -0
- package/package.json +40 -10
- package/tailwind/defaults.ts +34 -0
- package/tailwind/generated/README.md +2 -0
- package/tailwind/generated/default-variables.css +216 -0
- package/tailwind/generated/variables-processed.json +161 -0
- package/tsconfig.json +14 -3
- package/tsconfig.runtime.json +4 -0
- package/.eslintrc.js +0 -61
- package/postcss.config.ts +0 -6
- package/tailwind.config.ts +0 -51
- package/variables-processed.json +0 -193
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://ory.sh">
|
|
3
|
-
<img src="https://raw.githubusercontent.com/ory/meta/
|
|
3
|
+
<img src="https://raw.githubusercontent.com/ory/meta/refs/heads/master/static/logos/logo-ory.svg" height="72" />
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
@@ -33,7 +33,7 @@ Visit https://ory.sh/docs to see the full Ory documentation.
|
|
|
33
33
|
|
|
34
34
|
- React `>= 18`
|
|
35
35
|
- Node.js `>= 18`
|
|
36
|
-
- **`@ory/client-fetch`**
|
|
36
|
+
- **`@ory/client-fetch`**
|
|
37
37
|
|
|
38
38
|
**Installation**
|
|
39
39
|
|
|
@@ -41,10 +41,6 @@ Visit https://ory.sh/docs to see the full Ory documentation.
|
|
|
41
41
|
npm install @ory/elements-react
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
> [!IMPORTANT]<br/>Please take a look at the
|
|
45
|
-
> [local develepmont documentation](https://www.ory.sh/docs/getting-started/local-development)
|
|
46
|
-
> \
|
|
47
|
-
|
|
48
44
|
## Usage
|
|
49
45
|
|
|
50
46
|
Ory Elements provides components that can aggregate flow objects and display
|
|
@@ -53,15 +49,16 @@ user authentication flows based on the data.
|
|
|
53
49
|
To feed Ory Elements with flow data you need to use Ory client.
|
|
54
50
|
|
|
55
51
|
```ts
|
|
56
|
-
import { frontendClient } from "@ory/client-fetch"
|
|
57
|
-
|
|
58
52
|
export function serverClientFrontend() {
|
|
59
53
|
// For testing purposes we're using Ory tunnel
|
|
60
|
-
|
|
54
|
+
|
|
55
|
+
const config = new Configuration({
|
|
61
56
|
headers: {
|
|
62
57
|
Accept: "application/json",
|
|
63
58
|
},
|
|
59
|
+
basePath: "http://localhost:4000",
|
|
64
60
|
})
|
|
61
|
+
return new FrontendApi(config)
|
|
65
62
|
}
|
|
66
63
|
```
|
|
67
64
|
|
|
@@ -96,42 +93,93 @@ export function init(params: QueryParams, flowType: FlowType) {
|
|
|
96
93
|
|
|
97
94
|
To access & render the flow, on your flow page, you can use the `flow` query
|
|
98
95
|
parameter, that is included in the redirect. Use it to call the
|
|
99
|
-
[`
|
|
96
|
+
[`getRegistrationFlowRaw()`](https://www.ory.sh/docs/reference/api#tag/frontend/operation/getRegistrationFlow)
|
|
100
97
|
API.
|
|
101
98
|
|
|
102
99
|
**Full Example**:
|
|
103
100
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
101
|
+
```ts
|
|
102
|
+
import {
|
|
103
|
+
Configuration,
|
|
104
|
+
FlowType,
|
|
105
|
+
FrontendApi,
|
|
106
|
+
handleFlowError,
|
|
107
|
+
RegistrationFlow,
|
|
108
|
+
} from "@ory/client-fetch"
|
|
109
|
+
import { redirect, RedirectType } from "next/navigation"
|
|
110
|
+
|
|
111
|
+
type QueryParams = {
|
|
112
|
+
flow?: string
|
|
113
|
+
}
|
|
114
|
+
export function serverClientFrontend() {
|
|
115
|
+
// For testing purposes we're using Ory tunnel
|
|
116
|
+
|
|
117
|
+
const config = new Configuration({
|
|
118
|
+
headers: {
|
|
119
|
+
Accept: "application/json",
|
|
120
|
+
},
|
|
121
|
+
basePath: "http://localhost:4000",
|
|
122
|
+
})
|
|
123
|
+
return new FrontendApi(config)
|
|
124
|
+
}
|
|
109
125
|
|
|
110
|
-
|
|
126
|
+
export function init(params: QueryParams, flowType: FlowType) {
|
|
127
|
+
// Take advantage of the fact, that Ory handles the flow creation for us and redirects the user to the default return to automatically if they're logged in already.
|
|
128
|
+
return redirect(
|
|
129
|
+
"http://localhost:4000" +
|
|
130
|
+
"/self-service/" +
|
|
131
|
+
flowType.toString() +
|
|
132
|
+
"/browser?" +
|
|
133
|
+
new URLSearchParams(params).toString(),
|
|
134
|
+
RedirectType.replace,
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export async function getOrCreateRegistrationFlow(params: {
|
|
139
|
+
flow?: string
|
|
140
|
+
}): Promise<RegistrationFlow> {
|
|
141
|
+
const onRestartFlow = () => init(params, FlowType.Registration)
|
|
142
|
+
|
|
143
|
+
// If flow ID doesn't exist in params simply trigger the init function.
|
|
111
144
|
if (!params.flow) {
|
|
112
|
-
return onRestartFlow()
|
|
145
|
+
return onRestartFlow()
|
|
113
146
|
}
|
|
114
147
|
|
|
115
148
|
return await serverClientFrontend()
|
|
116
|
-
//
|
|
117
|
-
.getRegistrationFlowRaw({ id: flow })
|
|
118
|
-
.then(res => res.value())
|
|
149
|
+
// Pass in the flow ID
|
|
150
|
+
.getRegistrationFlowRaw({ id: params.flow })
|
|
151
|
+
.then((res) => res.value())
|
|
119
152
|
.catch(
|
|
120
|
-
//
|
|
153
|
+
// @ory/client-fetch predefines the handleFlowError function to simplify error handling.
|
|
121
154
|
// You can define what should happen in each of these callbacks
|
|
122
155
|
handleFlowError({
|
|
156
|
+
// Validation errors happen if the user's provided input failed a validation rule (e.g. not an email, etc.)
|
|
123
157
|
onValidationError,
|
|
158
|
+
// Flows can sometimes encounter unrecoverable errors, in that case we need to start a new flow to protect the user.
|
|
159
|
+
// In most cases, it is enough to initialize a new flow.
|
|
124
160
|
onRestartFlow,
|
|
161
|
+
// Sometimes a flow requires a redirect to a different URL/context. For example during OIDC flows.
|
|
162
|
+
// In that case, you can handle the redirect here, for example using your framework's preferred method for redirects.
|
|
125
163
|
onRedirect,
|
|
126
|
-
})
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
|
|
164
|
+
}),
|
|
165
|
+
)
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function onValidationError(flow: RegistrationFlow) {
|
|
169
|
+
// handle validation error
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function onRedirect(url: string, external: boolean) {
|
|
173
|
+
// handle the redirect
|
|
174
|
+
}
|
|
175
|
+
```
|
|
130
176
|
|
|
131
177
|
As soon as we have our flow data we can render the `<Registration/>` component
|
|
132
178
|
from `@ory/elements-react` package.
|
|
133
179
|
|
|
134
180
|
```tsx
|
|
181
|
+
import { Registration } from "@ory/elements-react/theme"
|
|
182
|
+
|
|
135
183
|
export default async function RegistrationPage({ searchParams }: PageProps) {
|
|
136
184
|
const flow = await getOrCreateRegistrationFlow(searchParams)
|
|
137
185
|
|
|
@@ -139,13 +187,7 @@ export default async function RegistrationPage({ searchParams }: PageProps) {
|
|
|
139
187
|
return <div>Flow not found</div>
|
|
140
188
|
}
|
|
141
189
|
|
|
142
|
-
return
|
|
143
|
-
<Registration
|
|
144
|
-
flow={flow}
|
|
145
|
-
config={oryConfiguration}
|
|
146
|
-
components={ComponentOverrides}
|
|
147
|
-
/>
|
|
148
|
-
)
|
|
190
|
+
return <Registration flow={flow} config={oryConfiguration} />
|
|
149
191
|
}
|
|
150
192
|
```
|
|
151
193
|
|
|
@@ -169,11 +211,44 @@ Most styling can be overwritten, by providing your own custom CSS variables:
|
|
|
169
211
|
}
|
|
170
212
|
```
|
|
171
213
|
|
|
172
|
-
|
|
214
|
+
### Component overrides
|
|
173
215
|
|
|
174
|
-
|
|
175
|
-
|
|
216
|
+
Many components in Ory Elements can be overriden with your own implementation.
|
|
217
|
+
Ory Elements also provides useful hooks that be used inside of your custom
|
|
218
|
+
components to get access to the library configuration, or the current flow.
|
|
176
219
|
|
|
220
|
+
**Example:**
|
|
221
|
+
|
|
222
|
+
```tsx
|
|
223
|
+
import { Registration } from "@ory/elements-react/theme"
|
|
224
|
+
|
|
225
|
+
function CustomCardHeader() {
|
|
226
|
+
const { flowType } = useOryFlow()
|
|
227
|
+
|
|
228
|
+
return <div>My Custom {flowType} Card header</div>
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export default async function RegistrationPage({ searchParams }: PageProps) {
|
|
232
|
+
const flow = await getOrCreateRegistrationFlow(searchParams)
|
|
233
|
+
|
|
234
|
+
if (!flow) {
|
|
235
|
+
return <div>Flow not found</div>
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return (
|
|
239
|
+
<Registration
|
|
240
|
+
flow={flow}
|
|
241
|
+
config={oryConfiguration}
|
|
242
|
+
components={{
|
|
243
|
+
Card: {
|
|
244
|
+
CardHeader: CustomCardHeader,
|
|
245
|
+
},
|
|
246
|
+
}}
|
|
247
|
+
/>
|
|
248
|
+
)
|
|
249
|
+
}
|
|
177
250
|
```
|
|
178
|
-
|
|
179
|
-
|
|
251
|
+
|
|
252
|
+
## Development
|
|
253
|
+
|
|
254
|
+
See [DEVELOPMENT.md](./DEVELOPMENT.md).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function returns the base URL of the Ory SDK as set by environment variables `NEXT_PUBLIC_ORY_SDK_URL` or `ORY_SDK_URL`.
|
|
3
|
+
*/
|
|
4
|
+
declare function orySdkUrl(): string;
|
|
5
|
+
/**
|
|
6
|
+
* This function returns whether the current environment is a production environment.
|
|
7
|
+
*/
|
|
8
|
+
declare function isProduction(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* This function returns the Ory SDK URL. If the environment is not production, it tries to guess the SDK URL based on the environment variables, assuming
|
|
11
|
+
* that Ory APIs are proxied through the same domain as the application.
|
|
12
|
+
*
|
|
13
|
+
* Currently, this is only tested for Vercel deployments.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Options for guessing the SDK URL.
|
|
16
|
+
*/
|
|
17
|
+
declare function guessPotentiallyProxiedOrySdkUrl(options?: {
|
|
18
|
+
knownProxiedUrl?: string;
|
|
19
|
+
}): string;
|
|
20
|
+
|
|
21
|
+
export { guessPotentiallyProxiedOrySdkUrl, isProduction, orySdkUrl };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function returns the base URL of the Ory SDK as set by environment variables `NEXT_PUBLIC_ORY_SDK_URL` or `ORY_SDK_URL`.
|
|
3
|
+
*/
|
|
4
|
+
declare function orySdkUrl(): string;
|
|
5
|
+
/**
|
|
6
|
+
* This function returns whether the current environment is a production environment.
|
|
7
|
+
*/
|
|
8
|
+
declare function isProduction(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* This function returns the Ory SDK URL. If the environment is not production, it tries to guess the SDK URL based on the environment variables, assuming
|
|
11
|
+
* that Ory APIs are proxied through the same domain as the application.
|
|
12
|
+
*
|
|
13
|
+
* Currently, this is only tested for Vercel deployments.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Options for guessing the SDK URL.
|
|
16
|
+
*/
|
|
17
|
+
declare function guessPotentiallyProxiedOrySdkUrl(options?: {
|
|
18
|
+
knownProxiedUrl?: string;
|
|
19
|
+
}): string;
|
|
20
|
+
|
|
21
|
+
export { guessPotentiallyProxiedOrySdkUrl, isProduction, orySdkUrl };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var config_exports = {};
|
|
20
|
+
__export(config_exports, {
|
|
21
|
+
guessPotentiallyProxiedOrySdkUrl: () => guessPotentiallyProxiedOrySdkUrl,
|
|
22
|
+
isProduction: () => isProduction,
|
|
23
|
+
orySdkUrl: () => orySdkUrl
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(config_exports);
|
|
26
|
+
function orySdkUrl() {
|
|
27
|
+
let baseUrl;
|
|
28
|
+
if (process.env.NEXT_PUBLIC_ORY_SDK_URL) {
|
|
29
|
+
baseUrl = process.env.NEXT_PUBLIC_ORY_SDK_URL;
|
|
30
|
+
}
|
|
31
|
+
if (process.env.ORY_SDK_URL) {
|
|
32
|
+
baseUrl = process.env._ORY_SDK_URL;
|
|
33
|
+
}
|
|
34
|
+
if (!baseUrl) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
"You need to set environment variable `NEXT_PUBLIC_ORY_SDK_URL` or if you don't use Next.js `ORY_SDK_URL` to your Ory Network SDK URL."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return baseUrl.replace(/\/$/, "");
|
|
40
|
+
}
|
|
41
|
+
function isProduction() {
|
|
42
|
+
var _a, _b;
|
|
43
|
+
return ["production", "prod"].indexOf(
|
|
44
|
+
(_b = (_a = process.env.VERCEL_ENV) != null ? _a : process.env.NODE_ENV) != null ? _b : ""
|
|
45
|
+
) > -1;
|
|
46
|
+
}
|
|
47
|
+
function guessPotentiallyProxiedOrySdkUrl(options) {
|
|
48
|
+
if (isProduction()) {
|
|
49
|
+
return orySdkUrl();
|
|
50
|
+
}
|
|
51
|
+
if (process.env.VERCEL_ENV) {
|
|
52
|
+
if (!isProduction() && process.env.VERCEL_URL) {
|
|
53
|
+
return `https://${process.env.VERCEL_URL}`.replace(/\/$/, "");
|
|
54
|
+
}
|
|
55
|
+
if (process.env.__NEXT_PRIVATE_ORIGIN) {
|
|
56
|
+
return process.env.__NEXT_PRIVATE_ORIGIN.replace(/\/$/, "");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (typeof window !== "undefined") {
|
|
60
|
+
return window.location.origin;
|
|
61
|
+
}
|
|
62
|
+
if (options == null ? void 0 : options.knownProxiedUrl) {
|
|
63
|
+
return options.knownProxiedUrl;
|
|
64
|
+
}
|
|
65
|
+
const final = orySdkUrl();
|
|
66
|
+
console.warn(
|
|
67
|
+
`Unable to determine a suitable SDK URL for setting up the Next.js integration of Ory Elements. Will proceed using default Ory SDK URL "${final}". This is likely not what you want for local development and your authentication and login may not work.`
|
|
68
|
+
);
|
|
69
|
+
return final;
|
|
70
|
+
}
|
|
71
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
72
|
+
0 && (module.exports = {
|
|
73
|
+
guessPotentiallyProxiedOrySdkUrl,
|
|
74
|
+
isProduction,
|
|
75
|
+
orySdkUrl
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/config.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This function returns the base URL of the Ory SDK as set by environment variables `NEXT_PUBLIC_ORY_SDK_URL` or `ORY_SDK_URL`.\n */\nexport function orySdkUrl() {\n let baseUrl\n\n if (process.env.NEXT_PUBLIC_ORY_SDK_URL) {\n baseUrl = process.env.NEXT_PUBLIC_ORY_SDK_URL\n }\n\n if (process.env.ORY_SDK_URL) {\n baseUrl = process.env._ORY_SDK_URL\n }\n\n if (!baseUrl) {\n throw new Error(\n \"You need to set environment variable `NEXT_PUBLIC_ORY_SDK_URL` or if you don't use Next.js `ORY_SDK_URL` to your Ory Network SDK URL.\",\n )\n }\n\n return baseUrl.replace(/\\/$/, \"\")\n}\n\n/**\n * This function returns whether the current environment is a production environment.\n */\nexport function isProduction() {\n return (\n [\"production\", \"prod\"].indexOf(\n process.env.VERCEL_ENV ?? process.env.NODE_ENV ?? \"\",\n ) > -1\n )\n}\n\n/**\n * This function returns the Ory SDK URL. If the environment is not production, it tries to guess the SDK URL based on the environment variables, assuming\n * that Ory APIs are proxied through the same domain as the application.\n *\n * Currently, this is only tested for Vercel deployments.\n *\n * @param options - Options for guessing the SDK URL.\n */\nexport function guessPotentiallyProxiedOrySdkUrl(options?: {\n knownProxiedUrl?: string\n}) {\n if (isProduction()) {\n // In production, we use the production custom domain\n return orySdkUrl()\n }\n\n if (process.env.VERCEL_ENV) {\n // We are in vercel\n\n // The domain name of the generated deployment URL. Example: *.vercel.app. The value does not include the protocol scheme https://.\n //\n // This is only available for preview deployments on Vercel.\n if (!isProduction() && process.env.VERCEL_URL) {\n return `https://${process.env.VERCEL_URL}`.replace(/\\/$/, \"\")\n }\n\n // This is sometimes set by the render server.\n if (process.env.__NEXT_PRIVATE_ORIGIN) {\n return process.env.__NEXT_PRIVATE_ORIGIN.replace(/\\/$/, \"\")\n }\n }\n\n // Unable to figure out the SDK URL. Either because we are not using Vercel or because we are on a local machine.\n // Let's try to use the window location.\n if (typeof window !== \"undefined\") {\n return window.location.origin\n }\n\n if (options?.knownProxiedUrl) {\n return options.knownProxiedUrl\n }\n\n // We tried everything. Let's use the SDK URL.\n const final = orySdkUrl()\n console.warn(\n `Unable to determine a suitable SDK URL for setting up the Next.js integration of Ory Elements. Will proceed using default Ory SDK URL \"${final}\". This is likely not what you want for local development and your authentication and login may not work.`,\n )\n\n return final\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,SAAS,YAAY;AAC1B,MAAI;AAEJ,MAAI,QAAQ,IAAI,yBAAyB;AACvC,cAAU,QAAQ,IAAI;AAAA,EACxB;AAEA,MAAI,QAAQ,IAAI,aAAa;AAC3B,cAAU,QAAQ,IAAI;AAAA,EACxB;AAEA,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,QAAQ,OAAO,EAAE;AAClC;AAKO,SAAS,eAAe;AA7B/B;AA8BE,SACE,CAAC,cAAc,MAAM,EAAE;AAAA,KACrB,mBAAQ,IAAI,eAAZ,YAA0B,QAAQ,IAAI,aAAtC,YAAkD;AAAA,EACpD,IAAI;AAER;AAUO,SAAS,iCAAiC,SAE9C;AACD,MAAI,aAAa,GAAG;AAElB,WAAO,UAAU;AAAA,EACnB;AAEA,MAAI,QAAQ,IAAI,YAAY;AAM1B,QAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,YAAY;AAC7C,aAAO,WAAW,QAAQ,IAAI,UAAU,GAAG,QAAQ,OAAO,EAAE;AAAA,IAC9D;AAGA,QAAI,QAAQ,IAAI,uBAAuB;AACrC,aAAO,QAAQ,IAAI,sBAAsB,QAAQ,OAAO,EAAE;AAAA,IAC5D;AAAA,EACF;AAIA,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,OAAO,SAAS;AAAA,EACzB;AAEA,MAAI,mCAAS,iBAAiB;AAC5B,WAAO,QAAQ;AAAA,EACjB;AAGA,QAAM,QAAQ,UAAU;AACxB,UAAQ;AAAA,IACN,0IAA0I,KAAK;AAAA,EACjJ;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function orySdkUrl() {
|
|
2
|
+
let baseUrl;
|
|
3
|
+
if (process.env.NEXT_PUBLIC_ORY_SDK_URL) {
|
|
4
|
+
baseUrl = process.env.NEXT_PUBLIC_ORY_SDK_URL;
|
|
5
|
+
}
|
|
6
|
+
if (process.env.ORY_SDK_URL) {
|
|
7
|
+
baseUrl = process.env._ORY_SDK_URL;
|
|
8
|
+
}
|
|
9
|
+
if (!baseUrl) {
|
|
10
|
+
throw new Error(
|
|
11
|
+
"You need to set environment variable `NEXT_PUBLIC_ORY_SDK_URL` or if you don't use Next.js `ORY_SDK_URL` to your Ory Network SDK URL."
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
return baseUrl.replace(/\/$/, "");
|
|
15
|
+
}
|
|
16
|
+
function isProduction() {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
return ["production", "prod"].indexOf(
|
|
19
|
+
(_b = (_a = process.env.VERCEL_ENV) != null ? _a : process.env.NODE_ENV) != null ? _b : ""
|
|
20
|
+
) > -1;
|
|
21
|
+
}
|
|
22
|
+
function guessPotentiallyProxiedOrySdkUrl(options) {
|
|
23
|
+
if (isProduction()) {
|
|
24
|
+
return orySdkUrl();
|
|
25
|
+
}
|
|
26
|
+
if (process.env.VERCEL_ENV) {
|
|
27
|
+
if (!isProduction() && process.env.VERCEL_URL) {
|
|
28
|
+
return `https://${process.env.VERCEL_URL}`.replace(/\/$/, "");
|
|
29
|
+
}
|
|
30
|
+
if (process.env.__NEXT_PRIVATE_ORIGIN) {
|
|
31
|
+
return process.env.__NEXT_PRIVATE_ORIGIN.replace(/\/$/, "");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (typeof window !== "undefined") {
|
|
35
|
+
return window.location.origin;
|
|
36
|
+
}
|
|
37
|
+
if (options == null ? void 0 : options.knownProxiedUrl) {
|
|
38
|
+
return options.knownProxiedUrl;
|
|
39
|
+
}
|
|
40
|
+
const final = orySdkUrl();
|
|
41
|
+
console.warn(
|
|
42
|
+
`Unable to determine a suitable SDK URL for setting up the Next.js integration of Ory Elements. Will proceed using default Ory SDK URL "${final}". This is likely not what you want for local development and your authentication and login may not work.`
|
|
43
|
+
);
|
|
44
|
+
return final;
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
guessPotentiallyProxiedOrySdkUrl,
|
|
48
|
+
isProduction,
|
|
49
|
+
orySdkUrl
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/config.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * This function returns the base URL of the Ory SDK as set by environment variables `NEXT_PUBLIC_ORY_SDK_URL` or `ORY_SDK_URL`.\n */\nexport function orySdkUrl() {\n let baseUrl\n\n if (process.env.NEXT_PUBLIC_ORY_SDK_URL) {\n baseUrl = process.env.NEXT_PUBLIC_ORY_SDK_URL\n }\n\n if (process.env.ORY_SDK_URL) {\n baseUrl = process.env._ORY_SDK_URL\n }\n\n if (!baseUrl) {\n throw new Error(\n \"You need to set environment variable `NEXT_PUBLIC_ORY_SDK_URL` or if you don't use Next.js `ORY_SDK_URL` to your Ory Network SDK URL.\",\n )\n }\n\n return baseUrl.replace(/\\/$/, \"\")\n}\n\n/**\n * This function returns whether the current environment is a production environment.\n */\nexport function isProduction() {\n return (\n [\"production\", \"prod\"].indexOf(\n process.env.VERCEL_ENV ?? process.env.NODE_ENV ?? \"\",\n ) > -1\n )\n}\n\n/**\n * This function returns the Ory SDK URL. If the environment is not production, it tries to guess the SDK URL based on the environment variables, assuming\n * that Ory APIs are proxied through the same domain as the application.\n *\n * Currently, this is only tested for Vercel deployments.\n *\n * @param options - Options for guessing the SDK URL.\n */\nexport function guessPotentiallyProxiedOrySdkUrl(options?: {\n knownProxiedUrl?: string\n}) {\n if (isProduction()) {\n // In production, we use the production custom domain\n return orySdkUrl()\n }\n\n if (process.env.VERCEL_ENV) {\n // We are in vercel\n\n // The domain name of the generated deployment URL. Example: *.vercel.app. The value does not include the protocol scheme https://.\n //\n // This is only available for preview deployments on Vercel.\n if (!isProduction() && process.env.VERCEL_URL) {\n return `https://${process.env.VERCEL_URL}`.replace(/\\/$/, \"\")\n }\n\n // This is sometimes set by the render server.\n if (process.env.__NEXT_PRIVATE_ORIGIN) {\n return process.env.__NEXT_PRIVATE_ORIGIN.replace(/\\/$/, \"\")\n }\n }\n\n // Unable to figure out the SDK URL. Either because we are not using Vercel or because we are on a local machine.\n // Let's try to use the window location.\n if (typeof window !== \"undefined\") {\n return window.location.origin\n }\n\n if (options?.knownProxiedUrl) {\n return options.knownProxiedUrl\n }\n\n // We tried everything. Let's use the SDK URL.\n const final = orySdkUrl()\n console.warn(\n `Unable to determine a suitable SDK URL for setting up the Next.js integration of Ory Elements. Will proceed using default Ory SDK URL \"${final}\". This is likely not what you want for local development and your authentication and login may not work.`,\n )\n\n return final\n}\n"],"mappings":"AAMO,SAAS,YAAY;AAC1B,MAAI;AAEJ,MAAI,QAAQ,IAAI,yBAAyB;AACvC,cAAU,QAAQ,IAAI;AAAA,EACxB;AAEA,MAAI,QAAQ,IAAI,aAAa;AAC3B,cAAU,QAAQ,IAAI;AAAA,EACxB;AAEA,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,QAAQ,OAAO,EAAE;AAClC;AAKO,SAAS,eAAe;AA7B/B;AA8BE,SACE,CAAC,cAAc,MAAM,EAAE;AAAA,KACrB,mBAAQ,IAAI,eAAZ,YAA0B,QAAQ,IAAI,aAAtC,YAAkD;AAAA,EACpD,IAAI;AAER;AAUO,SAAS,iCAAiC,SAE9C;AACD,MAAI,aAAa,GAAG;AAElB,WAAO,UAAU;AAAA,EACnB;AAEA,MAAI,QAAQ,IAAI,YAAY;AAM1B,QAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,YAAY;AAC7C,aAAO,WAAW,QAAQ,IAAI,UAAU,GAAG,QAAQ,OAAO,EAAE;AAAA,IAC9D;AAGA,QAAI,QAAQ,IAAI,uBAAuB;AACrC,aAAO,QAAQ,IAAI,sBAAsB,QAAQ,OAAO,EAAE;AAAA,IAC5D;AAAA,EACF;AAIA,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO,OAAO,SAAS;AAAA,EACzB;AAEA,MAAI,mCAAS,iBAAiB;AAC5B,WAAO,QAAQ;AAAA,EACjB;AAGA,QAAM,QAAQ,UAAU;AACxB,UAAQ;AAAA,IACN,0IAA0I,KAAK;AAAA,EACjJ;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var frontendClient_exports = {};
|
|
21
|
+
__export(frontendClient_exports, {
|
|
22
|
+
frontendClient: () => frontendClient
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(frontendClient_exports);
|
|
25
|
+
var import_client_fetch = require("@ory/client-fetch");
|
|
26
|
+
var import_config = require("./config");
|
|
27
|
+
function frontendClient({
|
|
28
|
+
forceBaseUrl,
|
|
29
|
+
...opts
|
|
30
|
+
} = {
|
|
31
|
+
credentials: "include"
|
|
32
|
+
}) {
|
|
33
|
+
var _a;
|
|
34
|
+
const basePath = forceBaseUrl != null ? forceBaseUrl : (0, import_config.guessPotentiallyProxiedOrySdkUrl)({
|
|
35
|
+
knownProxiedUrl: window.location.origin
|
|
36
|
+
});
|
|
37
|
+
const config = new import_client_fetch.Configuration({
|
|
38
|
+
...opts,
|
|
39
|
+
basePath: basePath == null ? void 0 : basePath.replace(/\/$/, ""),
|
|
40
|
+
credentials: (_a = opts.credentials) != null ? _a : "include",
|
|
41
|
+
headers: {
|
|
42
|
+
Accept: "application/json",
|
|
43
|
+
...opts.headers
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return new import_client_fetch.FrontendApi(config);
|
|
47
|
+
}
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
frontendClient
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=frontendClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/frontendClient.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\nimport {\n Configuration,\n ConfigurationParameters,\n FrontendApi,\n} from \"@ory/client-fetch\"\nimport { guessPotentiallyProxiedOrySdkUrl } from \"./config\"\n\nexport function frontendClient(\n {\n forceBaseUrl,\n ...opts\n }: Partial<ConfigurationParameters & { forceBaseUrl?: string }> = {\n credentials: \"include\",\n },\n) {\n const basePath =\n forceBaseUrl ??\n guessPotentiallyProxiedOrySdkUrl({\n knownProxiedUrl: window.location.origin,\n })\n\n const config = new Configuration({\n ...opts,\n basePath: basePath?.replace(/\\/$/, \"\"),\n credentials: opts.credentials ?? \"include\",\n headers: {\n Accept: \"application/json\",\n ...opts.headers,\n },\n })\n return new FrontendApi(config)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AACP,oBAAiD;AAE1C,SAAS,eACd;AAAA,EACE;AAAA,EACA,GAAG;AACL,IAAkE;AAAA,EAChE,aAAa;AACf,GACA;AAjBF;AAkBE,QAAM,WACJ,0CACA,gDAAiC;AAAA,IAC/B,iBAAiB,OAAO,SAAS;AAAA,EACnC,CAAC;AAEH,QAAM,SAAS,IAAI,kCAAc;AAAA,IAC/B,GAAG;AAAA,IACH,UAAU,qCAAU,QAAQ,OAAO;AAAA,IACnC,cAAa,UAAK,gBAAL,YAAoB;AAAA,IACjC,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,GAAG,KAAK;AAAA,IACV;AAAA,EACF,CAAC;AACD,SAAO,IAAI,gCAAY,MAAM;AAC/B;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Configuration,
|
|
4
|
+
FrontendApi
|
|
5
|
+
} from "@ory/client-fetch";
|
|
6
|
+
import { guessPotentiallyProxiedOrySdkUrl } from "./config";
|
|
7
|
+
function frontendClient({
|
|
8
|
+
forceBaseUrl,
|
|
9
|
+
...opts
|
|
10
|
+
} = {
|
|
11
|
+
credentials: "include"
|
|
12
|
+
}) {
|
|
13
|
+
var _a;
|
|
14
|
+
const basePath = forceBaseUrl != null ? forceBaseUrl : guessPotentiallyProxiedOrySdkUrl({
|
|
15
|
+
knownProxiedUrl: window.location.origin
|
|
16
|
+
});
|
|
17
|
+
const config = new Configuration({
|
|
18
|
+
...opts,
|
|
19
|
+
basePath: basePath == null ? void 0 : basePath.replace(/\/$/, ""),
|
|
20
|
+
credentials: (_a = opts.credentials) != null ? _a : "include",
|
|
21
|
+
headers: {
|
|
22
|
+
Accept: "application/json",
|
|
23
|
+
...opts.headers
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return new FrontendApi(config);
|
|
27
|
+
}
|
|
28
|
+
export {
|
|
29
|
+
frontendClient
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=frontendClient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/frontendClient.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\nimport {\n Configuration,\n ConfigurationParameters,\n FrontendApi,\n} from \"@ory/client-fetch\"\nimport { guessPotentiallyProxiedOrySdkUrl } from \"./config\"\n\nexport function frontendClient(\n {\n forceBaseUrl,\n ...opts\n }: Partial<ConfigurationParameters & { forceBaseUrl?: string }> = {\n credentials: \"include\",\n },\n) {\n const basePath =\n forceBaseUrl ??\n guessPotentiallyProxiedOrySdkUrl({\n knownProxiedUrl: window.location.origin,\n })\n\n const config = new Configuration({\n ...opts,\n basePath: basePath?.replace(/\\/$/, \"\"),\n credentials: opts.credentials ?? \"include\",\n headers: {\n Accept: \"application/json\",\n ...opts.headers,\n },\n })\n return new FrontendApi(config)\n}\n"],"mappings":";AAGA;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AACP,SAAS,wCAAwC;AAE1C,SAAS,eACd;AAAA,EACE;AAAA,EACA,GAAG;AACL,IAAkE;AAAA,EAChE,aAAa;AACf,GACA;AAjBF;AAkBE,QAAM,WACJ,sCACA,iCAAiC;AAAA,IAC/B,iBAAiB,OAAO,SAAS;AAAA,EACnC,CAAC;AAEH,QAAM,SAAS,IAAI,cAAc;AAAA,IAC/B,GAAG;AAAA,IACH,UAAU,qCAAU,QAAQ,OAAO;AAAA,IACnC,cAAa,UAAK,gBAAL,YAAoB;AAAA,IACjC,SAAS;AAAA,MACP,QAAQ;AAAA,MACR,GAAG,KAAK;AAAA,IACV;AAAA,EACF,CAAC;AACD,SAAO,IAAI,YAAY,MAAM;AAC/B;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var client_exports = {};
|
|
21
|
+
__export(client_exports, {
|
|
22
|
+
SessionProvider: () => import_session_provider.SessionProvider,
|
|
23
|
+
useSession: () => import_useSession.useSession
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(client_exports);
|
|
26
|
+
var import_session_provider = require("./session-provider");
|
|
27
|
+
var import_useSession = require("./useSession");
|
|
28
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
29
|
+
0 && (module.exports = {
|
|
30
|
+
SessionProvider,
|
|
31
|
+
useSession
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/index.ts"],"sourcesContent":["\"use client\"\n// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport {\n SessionProvider,\n type SessionContextData,\n type SessionProviderProps,\n} from \"./session-provider\"\nexport { useSession } from \"./useSession\"\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,8BAIO;AACP,wBAA2B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/client/index.ts"],"sourcesContent":["\"use client\"\n// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport {\n SessionProvider,\n type SessionContextData,\n type SessionProviderProps,\n} from \"./session-provider\"\nexport { useSession } from \"./useSession\"\n"],"mappings":";AAIA;AAAA,EACE;AAAA,OAGK;AACP,SAAS,kBAAkB;","names":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { Session } from '@ory/client-fetch';
|
|
4
|
+
|
|
5
|
+
type SessionContextData = {
|
|
6
|
+
/**
|
|
7
|
+
* Whether the session is currently being loaded
|
|
8
|
+
*/
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Whether the session is being loaded for the first time
|
|
12
|
+
* Never true, if a session was passed to the provider
|
|
13
|
+
*/
|
|
14
|
+
initialized: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The current session or null if the user is not authenticated or an error occurred,
|
|
17
|
+
* when fetching the session
|
|
18
|
+
*/
|
|
19
|
+
session: Session | null;
|
|
20
|
+
/**
|
|
21
|
+
* The error that occurred when fetching the session if any
|
|
22
|
+
*/
|
|
23
|
+
error: Error | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Refetches the session
|
|
26
|
+
*/
|
|
27
|
+
refetch: () => Promise<void>;
|
|
28
|
+
};
|
|
29
|
+
declare const SessionContext: react.Context<SessionContextData>;
|
|
30
|
+
type SessionProviderProps = {
|
|
31
|
+
session?: Session | null;
|
|
32
|
+
baseUrl?: string;
|
|
33
|
+
} & React.PropsWithChildren;
|
|
34
|
+
/**
|
|
35
|
+
* A provider that fetches the session from the Ory Network and provides it to the children.
|
|
36
|
+
*
|
|
37
|
+
* To use this provider, wrap your application in it:
|
|
38
|
+
*
|
|
39
|
+
* ```tsx
|
|
40
|
+
* import { SessionProvider } from "@ory/elements-react"
|
|
41
|
+
*
|
|
42
|
+
* export default function App() {
|
|
43
|
+
* return (
|
|
44
|
+
* <SessionProvider>
|
|
45
|
+
* <MyApp />
|
|
46
|
+
* </SessionProvider>
|
|
47
|
+
* )
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* If you have a session from the server, you can pass it to the provider:
|
|
52
|
+
*
|
|
53
|
+
* ```tsx
|
|
54
|
+
* <SessionProvider session={serverSession}>
|
|
55
|
+
* ```
|
|
56
|
+
*
|
|
57
|
+
* @see {@link useSession}
|
|
58
|
+
* @param props - The provider props
|
|
59
|
+
*/
|
|
60
|
+
declare function SessionProvider({ session: initialSession, children, baseUrl, }: SessionProviderProps): react_jsx_runtime.JSX.Element;
|
|
61
|
+
|
|
62
|
+
export { SessionContext, type SessionContextData, SessionProvider, type SessionProviderProps };
|