@ory/elements-react 0.0.0-pr.f3c2f07 → 0.0.0-pr.fd92d9ce
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 +174 -0
- package/DEVELOPMENT.md +2 -1
- package/README.md +253 -4
- package/dist/client/index.js +3 -3
- package/dist/index.d.mts +88 -49
- package/dist/index.d.ts +88 -49
- package/dist/index.js +892 -514
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +891 -515
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +16 -7
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +1 -1
- package/dist/theme/default/index.d.ts +1 -1
- package/dist/theme/default/index.js +3589 -3254
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +3688 -3334
- 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/package.json +17 -16
- package/tailwind/generated/default-variables.css +1 -1
- package/tsconfig.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UiNodeGroupEnum, isUiNodeInputAttributes, FlowType, Configuration, FrontendApi,
|
|
2
|
-
import { createContext, useContext, useRef,
|
|
1
|
+
import { UiNodeGroupEnum, isUiNodeInputAttributes, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, FlowType, getNodeId, Configuration, FrontendApi, isUiNodeTextAttributes, UiNodeInputAttributesTypeEnum, handleContinueWith, isResponseError as isResponseError$1, loginUrl, settingsUrl, registrationUrl, FetchError, ResponseError, recoveryUrl, instanceOfContinueWithRecoveryUi, verificationUrl as verificationUrl$1 } from '@ory/client-fetch';
|
|
2
|
+
import { createContext, useContext, useRef, useState, useMemo, useReducer, useEffect } from 'react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useIntl, IntlProvider as IntlProvider$1 } from 'react-intl';
|
|
5
|
-
import { useForm, FormProvider
|
|
5
|
+
import { useFormContext, useForm, FormProvider } from 'react-hook-form';
|
|
6
6
|
|
|
7
7
|
// src/context/component.tsx
|
|
8
8
|
var ComponentContext = createContext({
|
|
@@ -48,13 +48,18 @@ var defaultNodeOrder = [
|
|
|
48
48
|
];
|
|
49
49
|
function defaultNodeSorter(a, b) {
|
|
50
50
|
var _a, _b;
|
|
51
|
+
const aIsCaptcha = a.group === "captcha";
|
|
52
|
+
const bIsCaptcha = b.group === "captcha";
|
|
53
|
+
const aIsSubmit = isUiNodeInputAttributes(a.attributes) && a.attributes.type === "submit";
|
|
54
|
+
const bIsSubmit = isUiNodeInputAttributes(b.attributes) && b.attributes.type === "submit";
|
|
55
|
+
if (aIsCaptcha && bIsSubmit) {
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
if (bIsCaptcha && aIsSubmit) {
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
51
61
|
const aGroupWeight = (_a = defaultNodeOrder.indexOf(a.group)) != null ? _a : 999;
|
|
52
62
|
const bGroupWeight = (_b = defaultNodeOrder.indexOf(b.group)) != null ? _b : 999;
|
|
53
|
-
if (b.group === "captcha" && isUiNodeInputAttributes(a.attributes) && a.attributes.type === "submit") {
|
|
54
|
-
return aGroupWeight - (bGroupWeight - 2);
|
|
55
|
-
} else if (a.group === "captcha" && isUiNodeInputAttributes(b.attributes) && b.attributes.type === "submit") {
|
|
56
|
-
return aGroupWeight - 2 - bGroupWeight;
|
|
57
|
-
}
|
|
58
63
|
return aGroupWeight - bGroupWeight;
|
|
59
64
|
}
|
|
60
65
|
var defaultGroupOrder = [
|
|
@@ -92,28 +97,10 @@ function OryComponentProvider({
|
|
|
92
97
|
}
|
|
93
98
|
);
|
|
94
99
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
100
|
-
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
101
|
-
}
|
|
102
|
-
function removeSsoNodes(nodes) {
|
|
103
|
-
return nodes.filter(
|
|
104
|
-
(node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml)
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
108
|
-
var _a, _b, _c, _d;
|
|
109
|
-
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
110
|
-
return [
|
|
111
|
-
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
112
|
-
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
113
|
-
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
114
|
-
].flat().filter(
|
|
115
|
-
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
116
|
-
).concat(selectedNodes);
|
|
100
|
+
|
|
101
|
+
// src/theme/default/utils/form.ts
|
|
102
|
+
function isGroupImmediateSubmit(group) {
|
|
103
|
+
return group === "code";
|
|
117
104
|
}
|
|
118
105
|
function triggerToWindowCall(trigger) {
|
|
119
106
|
if (!trigger) {
|
|
@@ -187,21 +174,32 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
187
174
|
].includes(group)
|
|
188
175
|
);
|
|
189
176
|
}
|
|
190
|
-
function useNodesGroups(nodes) {
|
|
177
|
+
function useNodesGroups(nodes, { omit } = {}) {
|
|
191
178
|
const groupSorter = useGroupSorter();
|
|
192
179
|
const groups = useMemo(() => {
|
|
193
|
-
var _a;
|
|
180
|
+
var _a, _b;
|
|
194
181
|
const groups2 = {};
|
|
182
|
+
const groupRetained = {};
|
|
195
183
|
for (const node of nodes) {
|
|
196
|
-
if (node.type === "script") {
|
|
197
|
-
continue;
|
|
198
|
-
}
|
|
199
184
|
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
200
185
|
groupNodes.push(node);
|
|
201
186
|
groups2[node.group] = groupNodes;
|
|
187
|
+
if ((omit == null ? void 0 : omit.includes("script")) && isUiNodeScriptAttributes(node.attributes)) {
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if ((omit == null ? void 0 : omit.includes("input_hidden")) && isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
|
|
202
194
|
}
|
|
203
|
-
|
|
204
|
-
|
|
195
|
+
const finalGroups = {};
|
|
196
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
197
|
+
if (count > 0) {
|
|
198
|
+
finalGroups[group] = groups2[group];
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return finalGroups;
|
|
202
|
+
}, [nodes, omit]);
|
|
205
203
|
const entries = useMemo(
|
|
206
204
|
() => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
|
|
207
205
|
[groups, groupSorter]
|
|
@@ -214,6 +212,93 @@ function useNodesGroups(nodes) {
|
|
|
214
212
|
var findNode = (nodes, opt) => nodes.find((n) => {
|
|
215
213
|
return n.attributes.node_type === opt.node_type && (opt.group instanceof RegExp ? n.group.match(opt.group) : n.group === opt.group) && (opt.name && n.attributes.node_type === "input" ? opt.name instanceof RegExp ? n.attributes.name.match(opt.name) : n.attributes.name === opt.name : !opt.name);
|
|
216
214
|
});
|
|
215
|
+
function useFunctionalNodes(nodes) {
|
|
216
|
+
return nodes.filter(
|
|
217
|
+
({ group }) => [
|
|
218
|
+
UiNodeGroupEnum.Default,
|
|
219
|
+
UiNodeGroupEnum.IdentifierFirst,
|
|
220
|
+
UiNodeGroupEnum.Profile,
|
|
221
|
+
UiNodeGroupEnum.Captcha
|
|
222
|
+
].includes(group)
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
function isUiNodeGroupEnum(method) {
|
|
226
|
+
return Object.values(UiNodeGroupEnum).includes(method);
|
|
227
|
+
}
|
|
228
|
+
function isSingleSignOnNode(node) {
|
|
229
|
+
return node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml;
|
|
230
|
+
}
|
|
231
|
+
function hasSingleSignOnNodes(nodes) {
|
|
232
|
+
return nodes.some(isSingleSignOnNode);
|
|
233
|
+
}
|
|
234
|
+
function withoutSingleSignOnNodes(nodes) {
|
|
235
|
+
return nodes.filter((node) => !isSingleSignOnNode(node));
|
|
236
|
+
}
|
|
237
|
+
function isNodeVisible(node) {
|
|
238
|
+
if (isUiNodeScriptAttributes(node.attributes)) {
|
|
239
|
+
return false;
|
|
240
|
+
} else if (isUiNodeInputAttributes(node.attributes)) {
|
|
241
|
+
if (node.attributes.type === "hidden") {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
function useNodeGroupsWithVisibleNodes(nodes) {
|
|
248
|
+
return useMemo(() => {
|
|
249
|
+
var _a, _b;
|
|
250
|
+
const groups = {};
|
|
251
|
+
const groupRetained = {};
|
|
252
|
+
for (const node of nodes) {
|
|
253
|
+
const groupNodes = (_a = groups[node.group]) != null ? _a : [];
|
|
254
|
+
const groupCount = (_b = groupRetained[node.group]) != null ? _b : 0;
|
|
255
|
+
groupNodes.push(node);
|
|
256
|
+
groups[node.group] = groupNodes;
|
|
257
|
+
if (!isNodeVisible(node)) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
groupRetained[node.group] = groupCount + 1;
|
|
261
|
+
}
|
|
262
|
+
const finalGroups = {};
|
|
263
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
264
|
+
if (count > 0) {
|
|
265
|
+
finalGroups[group] = groups[group];
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return finalGroups;
|
|
269
|
+
}, [nodes]);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// src/components/card/two-step/utils.ts
|
|
273
|
+
function isChoosingMethod(flow) {
|
|
274
|
+
return flow.flow.ui.nodes.some(
|
|
275
|
+
(node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
|
|
276
|
+
) || flow.flow.ui.nodes.some(
|
|
277
|
+
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
278
|
+
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
279
|
+
}
|
|
280
|
+
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
281
|
+
var _a, _b, _c, _d;
|
|
282
|
+
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
283
|
+
return [
|
|
284
|
+
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
285
|
+
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
286
|
+
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
287
|
+
].flat().filter(
|
|
288
|
+
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
289
|
+
).concat(selectedNodes);
|
|
290
|
+
}
|
|
291
|
+
var handleAfterFormSubmit = (dispatchFormState) => (method) => {
|
|
292
|
+
if (typeof method !== "string" || !isUiNodeGroupEnum(method)) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (isGroupImmediateSubmit(method)) {
|
|
296
|
+
dispatchFormState({
|
|
297
|
+
type: "action_select_method",
|
|
298
|
+
method
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
};
|
|
217
302
|
|
|
218
303
|
// src/context/form-state.ts
|
|
219
304
|
function findMethodWithMessage(nodes) {
|
|
@@ -235,9 +320,9 @@ function parseStateFromFlow(flow) {
|
|
|
235
320
|
return { current: "method_active", method: "code" };
|
|
236
321
|
} else if (methodWithMessage) {
|
|
237
322
|
return { current: "method_active", method: methodWithMessage.group };
|
|
238
|
-
} else if (flow.flow.
|
|
239
|
-
|
|
240
|
-
)) {
|
|
323
|
+
} else if ((_a = flow.flow.ui.messages) == null ? void 0 : _a.some((m) => m.id === 1010016)) {
|
|
324
|
+
return { current: "select_method" };
|
|
325
|
+
} else if (flow.flow.active && !["default", "identifier_first"].includes(flow.flow.active)) {
|
|
241
326
|
return { current: "method_active", method: flow.flow.active };
|
|
242
327
|
} else if (isChoosingMethod(flow)) {
|
|
243
328
|
const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
|
|
@@ -245,8 +330,6 @@ function parseStateFromFlow(flow) {
|
|
|
245
330
|
return { current: "method_active", method: authMethods[0] };
|
|
246
331
|
}
|
|
247
332
|
return { current: "select_method" };
|
|
248
|
-
} else if ((_a = flow.flow.ui.messages) == null ? void 0 : _a.some((m) => m.id === 1010016)) {
|
|
249
|
-
return { current: "select_method" };
|
|
250
333
|
}
|
|
251
334
|
return { current: "provide_identifier" };
|
|
252
335
|
}
|
|
@@ -275,14 +358,20 @@ function useFormStateReducer(flow) {
|
|
|
275
358
|
const formStateReducer = (state, action2) => {
|
|
276
359
|
switch (action2.type) {
|
|
277
360
|
case "action_flow_update": {
|
|
278
|
-
if (selectedMethod)
|
|
361
|
+
if (selectedMethod) {
|
|
279
362
|
return { current: "method_active", method: selectedMethod };
|
|
363
|
+
}
|
|
280
364
|
return parseStateFromFlow(action2.flow);
|
|
281
365
|
}
|
|
282
366
|
case "action_select_method": {
|
|
283
367
|
setSelectedMethod(action2.method);
|
|
284
368
|
return { current: "method_active", method: action2.method };
|
|
285
369
|
}
|
|
370
|
+
case "action_clear_active_method": {
|
|
371
|
+
return {
|
|
372
|
+
current: "select_method"
|
|
373
|
+
};
|
|
374
|
+
}
|
|
286
375
|
}
|
|
287
376
|
return state;
|
|
288
377
|
};
|
|
@@ -321,6 +410,110 @@ function OryFlowProvider({
|
|
|
321
410
|
}
|
|
322
411
|
);
|
|
323
412
|
}
|
|
413
|
+
|
|
414
|
+
// src/client/config.ts
|
|
415
|
+
function isProduction() {
|
|
416
|
+
var _a, _b;
|
|
417
|
+
return ["production", "prod"].indexOf(
|
|
418
|
+
(_b = (_a = process.env.VERCEL_ENV) != null ? _a : process.env.NODE_ENV) != null ? _b : ""
|
|
419
|
+
) > -1;
|
|
420
|
+
}
|
|
421
|
+
function frontendClient(sdkUrl, opts = {}) {
|
|
422
|
+
const config = new Configuration({
|
|
423
|
+
...opts,
|
|
424
|
+
basePath: sdkUrl,
|
|
425
|
+
credentials: "include",
|
|
426
|
+
headers: {
|
|
427
|
+
Accept: "application/json",
|
|
428
|
+
...opts.headers
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
return new FrontendApi(config);
|
|
432
|
+
}
|
|
433
|
+
var defaultProject = {
|
|
434
|
+
name: "Ory",
|
|
435
|
+
registration_enabled: true,
|
|
436
|
+
verification_enabled: true,
|
|
437
|
+
recovery_enabled: true,
|
|
438
|
+
recovery_ui_url: "/ui/recovery",
|
|
439
|
+
registration_ui_url: "/ui/registration",
|
|
440
|
+
verification_ui_url: "/ui/verification",
|
|
441
|
+
login_ui_url: "/ui/login",
|
|
442
|
+
settings_ui_url: "/ui/settings",
|
|
443
|
+
default_redirect_url: "/ui/welcome",
|
|
444
|
+
error_ui_url: "/ui/error",
|
|
445
|
+
default_locale: "en",
|
|
446
|
+
locale_behavior: "force_default"
|
|
447
|
+
};
|
|
448
|
+
function useOryConfiguration() {
|
|
449
|
+
const configCtx = useContext(OryConfigurationContext);
|
|
450
|
+
return {
|
|
451
|
+
sdk: {
|
|
452
|
+
...configCtx.sdk,
|
|
453
|
+
frontend: frontendClient(configCtx.sdk.url, configCtx.sdk.options)
|
|
454
|
+
},
|
|
455
|
+
project: {
|
|
456
|
+
...configCtx.project
|
|
457
|
+
}
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
var OryConfigurationContext = createContext({
|
|
461
|
+
sdk: computeSdkConfig({}),
|
|
462
|
+
project: defaultProject
|
|
463
|
+
});
|
|
464
|
+
function OryConfigurationProvider({
|
|
465
|
+
children,
|
|
466
|
+
sdk: initialConfig,
|
|
467
|
+
project
|
|
468
|
+
}) {
|
|
469
|
+
const configRef = useRef({
|
|
470
|
+
sdk: computeSdkConfig(initialConfig),
|
|
471
|
+
project: {
|
|
472
|
+
...defaultProject,
|
|
473
|
+
...project
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
return /* @__PURE__ */ jsx(OryConfigurationContext.Provider, { value: configRef.current, children });
|
|
477
|
+
}
|
|
478
|
+
function computeSdkConfig(config) {
|
|
479
|
+
if ((config == null ? void 0 : config.url) && typeof config.url === "string") {
|
|
480
|
+
console.debug("Using sdk url from config");
|
|
481
|
+
return {
|
|
482
|
+
url: config.url.replace(/\/$/, ""),
|
|
483
|
+
options: config.options || {}
|
|
484
|
+
};
|
|
485
|
+
}
|
|
486
|
+
return {
|
|
487
|
+
url: getSDKUrl(),
|
|
488
|
+
options: (config == null ? void 0 : config.options) || {}
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
function getSDKUrl() {
|
|
492
|
+
var _a;
|
|
493
|
+
if (typeof process !== "undefined" && process.versions && process.versions.node) {
|
|
494
|
+
if (isProduction()) {
|
|
495
|
+
const sdkUrl = (_a = process.env["NEXT_PUBLIC_ORY_SDK_URL"]) != null ? _a : process.env["ORY_SDK_URL"];
|
|
496
|
+
if (!sdkUrl) {
|
|
497
|
+
throw new Error(
|
|
498
|
+
"Unable to determine SDK URL. Please set NEXT_PUBLIC_ORY_SDK_URL and/or ORY_SDK_URL in production environments."
|
|
499
|
+
);
|
|
500
|
+
}
|
|
501
|
+
return sdkUrl.replace(/\/$/, "");
|
|
502
|
+
} else {
|
|
503
|
+
if (process.env["__NEXT_PRIVATE_ORIGIN"]) {
|
|
504
|
+
return process.env["__NEXT_PRIVATE_ORIGIN"].replace(/\/$/, "");
|
|
505
|
+
} else if (process.env["VERCEL_URL"]) {
|
|
506
|
+
return `https://${process.env["VERCEL_URL"]}`.replace(/\/$/, "");
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
if (typeof window !== "undefined") {
|
|
511
|
+
return window.location.origin;
|
|
512
|
+
}
|
|
513
|
+
throw new Error(
|
|
514
|
+
"Unable to determine SDK URL. Please set NEXT_PUBLIC_ORY_SDK_URL and/or ORY_SDK_URL or supply the sdk.url parameter in the Ory configuration."
|
|
515
|
+
);
|
|
516
|
+
}
|
|
324
517
|
function mergeTranslations(customTranslations) {
|
|
325
518
|
return Object.keys(customTranslations).reduce((acc, key) => {
|
|
326
519
|
acc[key] = { ...OryLocales[key], ...customTranslations[key] };
|
|
@@ -350,17 +543,18 @@ var IntlProvider = ({
|
|
|
350
543
|
function OryProvider({
|
|
351
544
|
children,
|
|
352
545
|
components: Components,
|
|
546
|
+
config,
|
|
353
547
|
...oryFlowProps
|
|
354
548
|
}) {
|
|
355
549
|
var _a, _b, _c;
|
|
356
|
-
return /* @__PURE__ */ jsx(
|
|
550
|
+
return /* @__PURE__ */ jsx(OryConfigurationProvider, { sdk: config.sdk, project: config.project, children: /* @__PURE__ */ jsx(
|
|
357
551
|
IntlProvider,
|
|
358
552
|
{
|
|
359
|
-
locale: (_b = (_a =
|
|
360
|
-
customTranslations: (_c =
|
|
553
|
+
locale: (_b = (_a = config.intl) == null ? void 0 : _a.locale) != null ? _b : "en",
|
|
554
|
+
customTranslations: (_c = config.intl) == null ? void 0 : _c.customTranslations,
|
|
361
555
|
children: /* @__PURE__ */ jsx(OryFlowProvider, { ...oryFlowProps, children: /* @__PURE__ */ jsx(OryComponentProvider, { components: Components, children }) })
|
|
362
556
|
}
|
|
363
|
-
);
|
|
557
|
+
) });
|
|
364
558
|
}
|
|
365
559
|
function OryCardHeader() {
|
|
366
560
|
const { Card } = useComponents();
|
|
@@ -480,31 +674,143 @@ function OryCardContent({ children }) {
|
|
|
480
674
|
return /* @__PURE__ */ jsx(Card.Content, { children });
|
|
481
675
|
}
|
|
482
676
|
|
|
483
|
-
// src/theme/default/utils/form.ts
|
|
484
|
-
function isGroupImmediateSubmit(group) {
|
|
485
|
-
return group === "code";
|
|
486
|
-
}
|
|
487
|
-
function frontendClient(sdkUrl, opts = {}) {
|
|
488
|
-
const config = new Configuration({
|
|
489
|
-
...opts,
|
|
490
|
-
basePath: sdkUrl,
|
|
491
|
-
headers: {
|
|
492
|
-
Accept: "application/json",
|
|
493
|
-
...opts.headers
|
|
494
|
-
}
|
|
495
|
-
});
|
|
496
|
-
return new FrontendApi(config);
|
|
497
|
-
}
|
|
498
|
-
|
|
499
677
|
// src/util/internal.ts
|
|
500
678
|
function replaceWindowFlowId(flow) {
|
|
501
679
|
const url = new URL(window.location.href);
|
|
502
680
|
url.searchParams.set("flow", flow);
|
|
503
681
|
window.location.href = url.toString();
|
|
504
682
|
}
|
|
683
|
+
function isGenericErrorResponse(response) {
|
|
684
|
+
return typeof response === "object" && !!response && "error" in response && typeof response.error === "object" && !!response.error && "id" in response.error;
|
|
685
|
+
}
|
|
686
|
+
function isNeedsPrivilegedSessionError(response) {
|
|
687
|
+
return isGenericErrorResponse(response) && response.error.id === "session_refresh_required";
|
|
688
|
+
}
|
|
689
|
+
function isSelfServiceFlowExpiredError(response) {
|
|
690
|
+
return isGenericErrorResponse(response) && response.error.id === "self_service_flow_expired";
|
|
691
|
+
}
|
|
692
|
+
function isBrowserLocationChangeRequired(response) {
|
|
693
|
+
return isGenericErrorResponse(response) && isGenericErrorResponse(response) && response.error.id === "browser_location_change_required";
|
|
694
|
+
}
|
|
695
|
+
function isAddressNotVerified(response) {
|
|
696
|
+
return isGenericErrorResponse(response) && response.error.id === "session_verified_address_required";
|
|
697
|
+
}
|
|
698
|
+
function isCsrfError(response) {
|
|
699
|
+
return isGenericErrorResponse(response) && response.error.id === "security_csrf_violation";
|
|
700
|
+
}
|
|
701
|
+
var isResponseError = (err) => {
|
|
702
|
+
if (err instanceof ResponseError) {
|
|
703
|
+
return true;
|
|
704
|
+
}
|
|
705
|
+
return typeof err === "object" && !!err && "name" in err && err.name === "ResponseError";
|
|
706
|
+
};
|
|
707
|
+
var isFetchError = (err) => {
|
|
708
|
+
return err instanceof FetchError;
|
|
709
|
+
};
|
|
710
|
+
|
|
711
|
+
// src/util/sdk-helpers/urlHelpers.ts
|
|
712
|
+
var verificationUrl = (config) => config.sdk.url + "/self-service/verification/browser";
|
|
713
|
+
var handleFlowError = (opts) => async (err) => {
|
|
714
|
+
var _a;
|
|
715
|
+
if (!isResponseError(err)) {
|
|
716
|
+
if (isFetchError(err)) {
|
|
717
|
+
throw new FetchError(
|
|
718
|
+
err,
|
|
719
|
+
"Unable to call the API endpoint. Ensure that CORS is set up correctly and that you have provided a valid SDK URL to Ory Elements."
|
|
720
|
+
);
|
|
721
|
+
}
|
|
722
|
+
throw err;
|
|
723
|
+
}
|
|
724
|
+
const contentType = err.response.headers.get("content-type") || "";
|
|
725
|
+
if (contentType.includes("application/json")) {
|
|
726
|
+
const body = await toBody(err.response);
|
|
727
|
+
if (isSelfServiceFlowExpiredError(body)) {
|
|
728
|
+
opts.onRestartFlow(body.use_flow_id);
|
|
729
|
+
return;
|
|
730
|
+
} else if (isAddressNotVerified(body)) {
|
|
731
|
+
for (const continueWith of ((_a = body.error.details) == null ? void 0 : _a.continue_with) || []) {
|
|
732
|
+
if (continueWith.action === "show_verification_ui" && continueWith.flow.url) {
|
|
733
|
+
opts.onRedirect(continueWith.flow.url, true);
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
opts.onRedirect(verificationUrl(opts.config), true);
|
|
738
|
+
return;
|
|
739
|
+
} else if (isBrowserLocationChangeRequired(body) && body.redirect_browser_to) {
|
|
740
|
+
opts.onRedirect(body.redirect_browser_to, true);
|
|
741
|
+
return;
|
|
742
|
+
} else if (isNeedsPrivilegedSessionError(body) && body.redirect_browser_to) {
|
|
743
|
+
opts.onRedirect(body.redirect_browser_to, true);
|
|
744
|
+
return;
|
|
745
|
+
} else if (isCsrfError(body)) {
|
|
746
|
+
opts.onRestartFlow();
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
switch (err.response.status) {
|
|
750
|
+
case 404:
|
|
751
|
+
opts.onRestartFlow();
|
|
752
|
+
return;
|
|
753
|
+
case 410:
|
|
754
|
+
opts.onRestartFlow();
|
|
755
|
+
return;
|
|
756
|
+
case 400:
|
|
757
|
+
return opts.onValidationError(
|
|
758
|
+
await err.response.json()
|
|
759
|
+
);
|
|
760
|
+
case 403:
|
|
761
|
+
opts.onRestartFlow();
|
|
762
|
+
return;
|
|
763
|
+
case 422: {
|
|
764
|
+
throw new ResponseError(
|
|
765
|
+
err.response,
|
|
766
|
+
"The API returned an error code indicating a required redirect, but the SDK is outdated and does not know how to handle the action. Received response: " + await err.response.json()
|
|
767
|
+
);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
throw new ResponseError(
|
|
771
|
+
err.response,
|
|
772
|
+
"The Ory API endpoint returned a response code the SDK does not know how to handle. Please check the network tab for more information. Received response: " + await err.response.json()
|
|
773
|
+
);
|
|
774
|
+
} else if (
|
|
775
|
+
// Not a JSON response? If it's a text response we will return an error informing the user that the response is not JSON.
|
|
776
|
+
contentType.includes("text/") || contentType.includes("html") || contentType.includes("xml")
|
|
777
|
+
) {
|
|
778
|
+
await logResponseError(err.response, true);
|
|
779
|
+
throw new ResponseError(
|
|
780
|
+
err.response,
|
|
781
|
+
`The Ory API endpoint returned an unexpected HTML or text response. Check your console output for details.`
|
|
782
|
+
);
|
|
783
|
+
}
|
|
784
|
+
await logResponseError(err.response, false);
|
|
785
|
+
throw new ResponseError(
|
|
786
|
+
err.response,
|
|
787
|
+
"The Ory API endpoint returned unexpected content type `" + contentType + "`. Check your console output for details."
|
|
788
|
+
);
|
|
789
|
+
};
|
|
790
|
+
async function toBody(response) {
|
|
791
|
+
try {
|
|
792
|
+
return await response.clone().json();
|
|
793
|
+
} catch (e) {
|
|
794
|
+
await logResponseError(response, true, [e]);
|
|
795
|
+
throw new ResponseError(
|
|
796
|
+
response,
|
|
797
|
+
"Unable to decode API response using JSON."
|
|
798
|
+
);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
async function logResponseError(response, printBody, wrap) {
|
|
802
|
+
console.error("Unable to decode API response", {
|
|
803
|
+
response: {
|
|
804
|
+
status: response.status,
|
|
805
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
806
|
+
body: printBody ? await response.clone().text() : void 0
|
|
807
|
+
},
|
|
808
|
+
errors: wrap
|
|
809
|
+
});
|
|
810
|
+
}
|
|
505
811
|
|
|
506
812
|
// src/util/onSubmitLogin.ts
|
|
507
|
-
async function onSubmitLogin({
|
|
813
|
+
async function onSubmitLogin({ flow }, config, {
|
|
508
814
|
setFlowContainer,
|
|
509
815
|
body,
|
|
510
816
|
onRedirect
|
|
@@ -533,27 +839,21 @@ async function onSubmitLogin({ config, flow }, {
|
|
|
533
839
|
},
|
|
534
840
|
onValidationError: (body2) => {
|
|
535
841
|
setFlowContainer({
|
|
536
|
-
config,
|
|
537
842
|
flow: body2,
|
|
538
843
|
flowType: FlowType.Login
|
|
539
844
|
});
|
|
540
845
|
},
|
|
541
|
-
onRedirect
|
|
846
|
+
onRedirect,
|
|
847
|
+
config
|
|
542
848
|
})
|
|
543
849
|
);
|
|
544
850
|
}
|
|
545
|
-
async function onSubmitRecovery({
|
|
851
|
+
async function onSubmitRecovery({ flow }, config, {
|
|
546
852
|
setFlowContainer,
|
|
547
853
|
body,
|
|
548
854
|
onRedirect
|
|
549
855
|
}) {
|
|
550
|
-
|
|
551
|
-
if (!config.sdk.url) {
|
|
552
|
-
throw new Error(
|
|
553
|
-
`Please supply your Ory Network SDK url to the Ory Elements configuration.`
|
|
554
|
-
);
|
|
555
|
-
}
|
|
556
|
-
await frontendClient(config.sdk.url, (_a = config.sdk.options) != null ? _a : {}).updateRecoveryFlowRaw({
|
|
856
|
+
await config.sdk.frontend.updateRecoveryFlowRaw({
|
|
557
857
|
flow: flow.id,
|
|
558
858
|
updateRecoveryFlowBody: body
|
|
559
859
|
}).then(async (res) => {
|
|
@@ -566,8 +866,7 @@ async function onSubmitRecovery({ config, flow }, {
|
|
|
566
866
|
}
|
|
567
867
|
setFlowContainer({
|
|
568
868
|
flow: flow2,
|
|
569
|
-
flowType: FlowType.Recovery
|
|
570
|
-
config
|
|
869
|
+
flowType: FlowType.Recovery
|
|
571
870
|
});
|
|
572
871
|
}).catch(
|
|
573
872
|
handleFlowError({
|
|
@@ -585,12 +884,12 @@ async function onSubmitRecovery({ config, flow }, {
|
|
|
585
884
|
} else {
|
|
586
885
|
setFlowContainer({
|
|
587
886
|
flow: body2,
|
|
588
|
-
flowType: FlowType.Recovery
|
|
589
|
-
config
|
|
887
|
+
flowType: FlowType.Recovery
|
|
590
888
|
});
|
|
591
889
|
}
|
|
592
890
|
},
|
|
593
|
-
onRedirect
|
|
891
|
+
onRedirect,
|
|
892
|
+
config
|
|
594
893
|
})
|
|
595
894
|
);
|
|
596
895
|
}
|
|
@@ -607,19 +906,12 @@ function handleContinueWithRecoveryUIError(error, config, onRedirect) {
|
|
|
607
906
|
}
|
|
608
907
|
onRedirect(recoveryUrl(config), true);
|
|
609
908
|
}
|
|
610
|
-
async function onSubmitRegistration({
|
|
909
|
+
async function onSubmitRegistration({ flow }, config, {
|
|
611
910
|
setFlowContainer,
|
|
612
911
|
body,
|
|
613
912
|
onRedirect
|
|
614
913
|
}) {
|
|
615
|
-
|
|
616
|
-
if (!config.sdk.url) {
|
|
617
|
-
throw new Error(
|
|
618
|
-
`Please supply your Ory Network SDK url to the Ory Elements configuration.`
|
|
619
|
-
);
|
|
620
|
-
}
|
|
621
|
-
const client = frontendClient(config.sdk.url, (_a = config.sdk.options) != null ? _a : {});
|
|
622
|
-
await client.updateRegistrationFlowRaw({
|
|
914
|
+
await config.sdk.frontend.updateRegistrationFlowRaw({
|
|
623
915
|
flow: flow.id,
|
|
624
916
|
updateRegistrationFlowBody: body
|
|
625
917
|
}).then(async (res) => {
|
|
@@ -643,27 +935,20 @@ async function onSubmitRegistration({ config, flow }, {
|
|
|
643
935
|
onValidationError: (body2) => {
|
|
644
936
|
setFlowContainer({
|
|
645
937
|
flow: body2,
|
|
646
|
-
flowType: FlowType.Registration
|
|
647
|
-
config
|
|
938
|
+
flowType: FlowType.Registration
|
|
648
939
|
});
|
|
649
940
|
},
|
|
650
|
-
onRedirect
|
|
941
|
+
onRedirect,
|
|
942
|
+
config
|
|
651
943
|
})
|
|
652
944
|
);
|
|
653
945
|
}
|
|
654
|
-
async function onSubmitSettings({
|
|
946
|
+
async function onSubmitSettings({ flow }, config, {
|
|
655
947
|
setFlowContainer,
|
|
656
948
|
body,
|
|
657
949
|
onRedirect
|
|
658
950
|
}) {
|
|
659
|
-
|
|
660
|
-
if (!config.sdk.url) {
|
|
661
|
-
throw new Error(
|
|
662
|
-
`Please supply your Ory Network SDK url to the Ory Elements configuration.`
|
|
663
|
-
);
|
|
664
|
-
}
|
|
665
|
-
const client = frontendClient(config.sdk.url, (_a = config.sdk.options) != null ? _a : {});
|
|
666
|
-
await client.updateSettingsFlowRaw({
|
|
951
|
+
await config.sdk.frontend.updateSettingsFlowRaw({
|
|
667
952
|
flow: flow.id,
|
|
668
953
|
updateSettingsFlowBody: body
|
|
669
954
|
}).then(async (res) => {
|
|
@@ -676,8 +961,7 @@ async function onSubmitSettings({ config, flow }, {
|
|
|
676
961
|
}
|
|
677
962
|
setFlowContainer({
|
|
678
963
|
flow: body2,
|
|
679
|
-
flowType: FlowType.Settings
|
|
680
|
-
config
|
|
964
|
+
flowType: FlowType.Settings
|
|
681
965
|
});
|
|
682
966
|
}).catch(
|
|
683
967
|
handleFlowError({
|
|
@@ -691,14 +975,14 @@ async function onSubmitSettings({ config, flow }, {
|
|
|
691
975
|
onValidationError: (body2) => {
|
|
692
976
|
setFlowContainer({
|
|
693
977
|
flow: body2,
|
|
694
|
-
flowType: FlowType.Settings
|
|
695
|
-
config
|
|
978
|
+
flowType: FlowType.Settings
|
|
696
979
|
});
|
|
697
980
|
},
|
|
698
|
-
onRedirect
|
|
981
|
+
onRedirect,
|
|
982
|
+
config
|
|
699
983
|
})
|
|
700
984
|
).catch((err) => {
|
|
701
|
-
if (isResponseError(err)) {
|
|
985
|
+
if (isResponseError$1(err)) {
|
|
702
986
|
if (err.response.status === 401) {
|
|
703
987
|
return onRedirect(
|
|
704
988
|
loginUrl(config) + "?return_to=" + settingsUrl(config),
|
|
@@ -709,25 +993,18 @@ async function onSubmitSettings({ config, flow }, {
|
|
|
709
993
|
}
|
|
710
994
|
});
|
|
711
995
|
}
|
|
712
|
-
async function onSubmitVerification({
|
|
996
|
+
async function onSubmitVerification({ flow }, config, {
|
|
713
997
|
setFlowContainer,
|
|
714
998
|
body,
|
|
715
999
|
onRedirect
|
|
716
1000
|
}) {
|
|
717
|
-
|
|
718
|
-
if (!config.sdk.url) {
|
|
719
|
-
throw new Error(
|
|
720
|
-
`Please supply your Ory Network SDK URL to the Ory Elements configuration.`
|
|
721
|
-
);
|
|
722
|
-
}
|
|
723
|
-
await frontendClient(config.sdk.url, (_a = config.sdk.options) != null ? _a : {}).updateVerificationFlowRaw({
|
|
1001
|
+
await config.sdk.frontend.updateVerificationFlowRaw({
|
|
724
1002
|
flow: flow.id,
|
|
725
1003
|
updateVerificationFlowBody: body
|
|
726
1004
|
}).then(
|
|
727
1005
|
async (res) => setFlowContainer({
|
|
728
1006
|
flow: await res.value(),
|
|
729
|
-
flowType: FlowType.Verification
|
|
730
|
-
config
|
|
1007
|
+
flowType: FlowType.Verification
|
|
731
1008
|
})
|
|
732
1009
|
).catch(
|
|
733
1010
|
handleFlowError({
|
|
@@ -735,17 +1012,17 @@ async function onSubmitVerification({ config, flow }, {
|
|
|
735
1012
|
if (useFlowId) {
|
|
736
1013
|
replaceWindowFlowId(useFlowId);
|
|
737
1014
|
} else {
|
|
738
|
-
onRedirect(verificationUrl(config), true);
|
|
1015
|
+
onRedirect(verificationUrl$1(config), true);
|
|
739
1016
|
}
|
|
740
1017
|
},
|
|
741
1018
|
onValidationError: (body2) => {
|
|
742
1019
|
setFlowContainer({
|
|
743
1020
|
flow: body2,
|
|
744
|
-
flowType: FlowType.Verification
|
|
745
|
-
config
|
|
1021
|
+
flowType: FlowType.Verification
|
|
746
1022
|
});
|
|
747
1023
|
},
|
|
748
|
-
onRedirect
|
|
1024
|
+
onRedirect,
|
|
1025
|
+
config
|
|
749
1026
|
})
|
|
750
1027
|
);
|
|
751
1028
|
}
|
|
@@ -755,6 +1032,7 @@ var supportsSelectAccountPrompt = ["google", "github"];
|
|
|
755
1032
|
function useOryFormSubmit(onAfterSubmit) {
|
|
756
1033
|
const flowContainer = useOryFlow();
|
|
757
1034
|
const methods = useFormContext();
|
|
1035
|
+
const config = useOryConfiguration();
|
|
758
1036
|
const handleSuccess = (flow) => {
|
|
759
1037
|
flowContainer.setFlowContainer(flow);
|
|
760
1038
|
methods.reset(computeDefaultValues(flow.flow.ui.nodes));
|
|
@@ -771,7 +1049,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
771
1049
|
if (submitData.method === "code" && data.code) {
|
|
772
1050
|
submitData.resend = "";
|
|
773
1051
|
}
|
|
774
|
-
await onSubmitLogin(flowContainer, {
|
|
1052
|
+
await onSubmitLogin(flowContainer, config, {
|
|
775
1053
|
onRedirect,
|
|
776
1054
|
setFlowContainer: handleSuccess,
|
|
777
1055
|
body: submitData
|
|
@@ -785,7 +1063,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
785
1063
|
if (submitData.method === "code" && submitData.code) {
|
|
786
1064
|
submitData.resend = "";
|
|
787
1065
|
}
|
|
788
|
-
await onSubmitRegistration(flowContainer, {
|
|
1066
|
+
await onSubmitRegistration(flowContainer, config, {
|
|
789
1067
|
onRedirect,
|
|
790
1068
|
setFlowContainer: handleSuccess,
|
|
791
1069
|
body: submitData
|
|
@@ -793,7 +1071,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
793
1071
|
break;
|
|
794
1072
|
}
|
|
795
1073
|
case FlowType.Verification:
|
|
796
|
-
await onSubmitVerification(flowContainer, {
|
|
1074
|
+
await onSubmitVerification(flowContainer, config, {
|
|
797
1075
|
onRedirect,
|
|
798
1076
|
setFlowContainer: handleSuccess,
|
|
799
1077
|
body: data
|
|
@@ -806,7 +1084,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
806
1084
|
if (data.code) {
|
|
807
1085
|
submitData.email = "";
|
|
808
1086
|
}
|
|
809
|
-
await onSubmitRecovery(flowContainer, {
|
|
1087
|
+
await onSubmitRecovery(flowContainer, config, {
|
|
810
1088
|
onRedirect,
|
|
811
1089
|
setFlowContainer: handleSuccess,
|
|
812
1090
|
body: submitData
|
|
@@ -834,7 +1112,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
834
1112
|
if ("passkey_remove" in submitData) {
|
|
835
1113
|
submitData.method = "passkey";
|
|
836
1114
|
}
|
|
837
|
-
await onSubmitSettings(flowContainer, {
|
|
1115
|
+
await onSubmitSettings(flowContainer, config, {
|
|
838
1116
|
onRedirect,
|
|
839
1117
|
setFlowContainer: handleSuccess,
|
|
840
1118
|
body: submitData
|
|
@@ -868,7 +1146,11 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
868
1146
|
};
|
|
869
1147
|
return onSubmit;
|
|
870
1148
|
}
|
|
871
|
-
function OryForm({
|
|
1149
|
+
function OryForm({
|
|
1150
|
+
children,
|
|
1151
|
+
onAfterSubmit,
|
|
1152
|
+
"data-testid": dataTestId
|
|
1153
|
+
}) {
|
|
872
1154
|
const { Form } = useComponents();
|
|
873
1155
|
const flowContainer = useOryFlow();
|
|
874
1156
|
const methods = useFormContext();
|
|
@@ -877,6 +1159,9 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
877
1159
|
const onSubmit = useOryFormSubmit(onAfterSubmit);
|
|
878
1160
|
const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
|
|
879
1161
|
if (isUiNodeInputAttributes(node.attributes)) {
|
|
1162
|
+
if (node.attributes.type === "hidden") {
|
|
1163
|
+
return false;
|
|
1164
|
+
}
|
|
880
1165
|
return node.attributes.name !== "csrf_token";
|
|
881
1166
|
} else if (isUiNodeAnchorAttributes(node.attributes)) {
|
|
882
1167
|
return true;
|
|
@@ -896,17 +1181,15 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
896
1181
|
}),
|
|
897
1182
|
type: "error"
|
|
898
1183
|
};
|
|
899
|
-
return /* @__PURE__ */
|
|
900
|
-
/* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }),
|
|
901
|
-
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
902
|
-
] });
|
|
1184
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": dataTestId, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }) });
|
|
903
1185
|
}
|
|
904
|
-
if (flowContainer.flowType === FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
1186
|
+
if ((flowContainer.flowType === FlowType.Login || flowContainer.flowType === FlowType.Registration) && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
905
1187
|
methods.setValue("method", "code");
|
|
906
1188
|
}
|
|
907
1189
|
return /* @__PURE__ */ jsx(
|
|
908
1190
|
Form.Root,
|
|
909
1191
|
{
|
|
1192
|
+
"data-testid": dataTestId,
|
|
910
1193
|
action: flowContainer.flow.ui.action,
|
|
911
1194
|
method: flowContainer.flow.ui.method,
|
|
912
1195
|
onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
|
|
@@ -954,10 +1237,7 @@ var NodeInput = ({
|
|
|
954
1237
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
955
1238
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
956
1239
|
const setFormValue = () => {
|
|
957
|
-
if (isResendNode || isScreenSelectionNode || node.group ===
|
|
958
|
-
return;
|
|
959
|
-
}
|
|
960
|
-
if (attrs.value !== void 0) {
|
|
1240
|
+
if (attrs.value && !(isResendNode || isScreenSelectionNode || node.group === UiNodeGroupEnum.Oauth2Consent)) {
|
|
961
1241
|
setValue(attrs.name, attrs.value);
|
|
962
1242
|
}
|
|
963
1243
|
};
|
|
@@ -999,7 +1279,20 @@ var NodeInput = ({
|
|
|
999
1279
|
case UiNodeInputAttributesTypeEnum.Submit:
|
|
1000
1280
|
case UiNodeInputAttributesTypeEnum.Button:
|
|
1001
1281
|
if (isSocial) {
|
|
1002
|
-
return
|
|
1282
|
+
return /* @__PURE__ */ jsx(
|
|
1283
|
+
Node2.OidcButton,
|
|
1284
|
+
{
|
|
1285
|
+
node,
|
|
1286
|
+
attributes: attrs,
|
|
1287
|
+
onClick: () => {
|
|
1288
|
+
setValue(
|
|
1289
|
+
"provider",
|
|
1290
|
+
node.attributes.value
|
|
1291
|
+
);
|
|
1292
|
+
setValue("method", node.group);
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
);
|
|
1003
1296
|
}
|
|
1004
1297
|
if (isResendNode || isScreenSelectionNode) {
|
|
1005
1298
|
return null;
|
|
@@ -1089,6 +1382,37 @@ var Node = ({ node, onClick }) => {
|
|
|
1089
1382
|
}
|
|
1090
1383
|
return null;
|
|
1091
1384
|
};
|
|
1385
|
+
function OryTwoStepCardStateMethodActive({
|
|
1386
|
+
formState
|
|
1387
|
+
}) {
|
|
1388
|
+
const { Form } = useComponents();
|
|
1389
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1390
|
+
const { ui } = flow;
|
|
1391
|
+
const nodeSorter = useNodeSorter();
|
|
1392
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1393
|
+
const groupsToShow = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1394
|
+
const finalNodes = getFinalNodes(groupsToShow, formState.method);
|
|
1395
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1396
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1397
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1398
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1399
|
+
/* @__PURE__ */ jsx(
|
|
1400
|
+
OryForm,
|
|
1401
|
+
{
|
|
1402
|
+
"data-testid": `ory/form/methods/local`,
|
|
1403
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1404
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1405
|
+
ui.nodes.filter(
|
|
1406
|
+
(n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Default || n.group === UiNodeGroupEnum.Profile
|
|
1407
|
+
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1408
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1409
|
+
] })
|
|
1410
|
+
}
|
|
1411
|
+
)
|
|
1412
|
+
] }),
|
|
1413
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1414
|
+
] });
|
|
1415
|
+
}
|
|
1092
1416
|
function OryFormOidcButtons() {
|
|
1093
1417
|
const {
|
|
1094
1418
|
flow: { ui }
|
|
@@ -1101,7 +1425,7 @@ function OryFormOidcButtons() {
|
|
|
1101
1425
|
if (filteredNodes.length === 0) {
|
|
1102
1426
|
return null;
|
|
1103
1427
|
}
|
|
1104
|
-
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node
|
|
1428
|
+
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node) => /* @__PURE__ */ jsx(
|
|
1105
1429
|
Node2.OidcButton,
|
|
1106
1430
|
{
|
|
1107
1431
|
node,
|
|
@@ -1114,36 +1438,88 @@ function OryFormOidcButtons() {
|
|
|
1114
1438
|
setValue("method", node.group);
|
|
1115
1439
|
}
|
|
1116
1440
|
},
|
|
1117
|
-
|
|
1441
|
+
getNodeId(node)
|
|
1118
1442
|
)) });
|
|
1119
1443
|
}
|
|
1120
1444
|
function OryFormSocialButtonsForm() {
|
|
1121
1445
|
const {
|
|
1122
|
-
flow: { ui }
|
|
1446
|
+
flow: { ui },
|
|
1447
|
+
formState
|
|
1123
1448
|
} = useOryFlow();
|
|
1449
|
+
console.log(formState);
|
|
1124
1450
|
const filteredNodes = ui.nodes.filter(
|
|
1125
1451
|
(node) => node.group === UiNodeGroupEnum.Saml || node.group === UiNodeGroupEnum.Oidc
|
|
1126
1452
|
);
|
|
1127
1453
|
if (filteredNodes.length === 0) {
|
|
1128
1454
|
return null;
|
|
1129
1455
|
}
|
|
1130
|
-
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1131
|
-
}
|
|
1132
|
-
function isUINodeGroupEnum(method) {
|
|
1133
|
-
return Object.values(UiNodeGroupEnum).includes(method);
|
|
1456
|
+
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1134
1457
|
}
|
|
1135
|
-
function
|
|
1136
|
-
var _a, _b, _c, _d;
|
|
1458
|
+
function OryTwoStepCardStateProvideIdentifier() {
|
|
1137
1459
|
const { Form, Card } = useComponents();
|
|
1138
|
-
const {
|
|
1139
|
-
const { ui } = flow;
|
|
1460
|
+
const { flowType, flow, dispatchFormState } = useOryFlow();
|
|
1140
1461
|
const nodeSorter = useNodeSorter();
|
|
1141
1462
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1142
|
-
const
|
|
1143
|
-
const
|
|
1463
|
+
const nonSsoNodes = withoutSingleSignOnNodes(flow.ui.nodes).sort(sortNodes);
|
|
1464
|
+
const hasSso = flow.ui.nodes.filter(isNodeVisible).some(
|
|
1465
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1466
|
+
);
|
|
1467
|
+
const showSsoDivider = hasSso && nonSsoNodes.some(isNodeVisible);
|
|
1468
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1469
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1470
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1471
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1472
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1473
|
+
/* @__PURE__ */ jsx(
|
|
1474
|
+
OryForm,
|
|
1475
|
+
{
|
|
1476
|
+
"data-testid": `ory/form/methods/local`,
|
|
1477
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1478
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1479
|
+
showSsoDivider && /* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1480
|
+
nonSsoNodes.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1481
|
+
] })
|
|
1482
|
+
}
|
|
1483
|
+
)
|
|
1484
|
+
] }),
|
|
1485
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1486
|
+
] });
|
|
1487
|
+
}
|
|
1488
|
+
function AuthMethodList({
|
|
1489
|
+
options,
|
|
1490
|
+
setSelectedGroup
|
|
1491
|
+
}) {
|
|
1492
|
+
const { Card } = useComponents();
|
|
1493
|
+
const { setValue, getValues } = useFormContext();
|
|
1494
|
+
if (Object.entries(options).length === 0) {
|
|
1495
|
+
return null;
|
|
1496
|
+
}
|
|
1497
|
+
const handleClick = (group, options2) => {
|
|
1498
|
+
var _a, _b, _c, _d;
|
|
1499
|
+
if (isGroupImmediateSubmit(group)) {
|
|
1500
|
+
if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
|
|
1501
|
+
setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
|
|
1502
|
+
}
|
|
1503
|
+
setValue("method", group);
|
|
1504
|
+
} else {
|
|
1505
|
+
setSelectedGroup(group);
|
|
1506
|
+
}
|
|
1507
|
+
};
|
|
1508
|
+
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1509
|
+
Card.AuthMethodListItem,
|
|
1510
|
+
{
|
|
1511
|
+
group,
|
|
1512
|
+
title: options2.title,
|
|
1513
|
+
onClick: () => handleClick(group, options2)
|
|
1514
|
+
},
|
|
1515
|
+
group
|
|
1516
|
+
)) });
|
|
1517
|
+
}
|
|
1518
|
+
function toAuthMethodPickerOptions(visibleGroups) {
|
|
1519
|
+
return Object.fromEntries(
|
|
1144
1520
|
Object.values(UiNodeGroupEnum).filter((group) => {
|
|
1145
|
-
var
|
|
1146
|
-
return (
|
|
1521
|
+
var _a;
|
|
1522
|
+
return (_a = visibleGroups[group]) == null ? void 0 : _a.length;
|
|
1147
1523
|
}).filter(
|
|
1148
1524
|
(group) => ![
|
|
1149
1525
|
UiNodeGroupEnum.Oidc,
|
|
@@ -1155,7 +1531,19 @@ function OryTwoStepCard() {
|
|
|
1155
1531
|
].includes(group)
|
|
1156
1532
|
).map((g) => [g, {}])
|
|
1157
1533
|
);
|
|
1158
|
-
|
|
1534
|
+
}
|
|
1535
|
+
function OryTwoStepCardStateSelectMethod() {
|
|
1536
|
+
var _a, _b, _c, _d;
|
|
1537
|
+
const { Form, Card, Message } = useComponents();
|
|
1538
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1539
|
+
const { ui } = flow;
|
|
1540
|
+
const intl = useIntl();
|
|
1541
|
+
const nodeSorter = useNodeSorter();
|
|
1542
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1543
|
+
const visibleGroups = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1544
|
+
const authMethodBlocks = toAuthMethodPickerOptions(visibleGroups);
|
|
1545
|
+
const authMethodAdditionalNodes = useFunctionalNodes(ui.nodes);
|
|
1546
|
+
if (UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1159
1547
|
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1160
1548
|
group: "identifier_first",
|
|
1161
1549
|
node_type: "input",
|
|
@@ -1167,7 +1555,7 @@ function OryTwoStepCard() {
|
|
|
1167
1555
|
name: "address"
|
|
1168
1556
|
})) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
|
|
1169
1557
|
if (identifier) {
|
|
1170
|
-
|
|
1558
|
+
authMethodBlocks[UiNodeGroupEnum.Code] = {
|
|
1171
1559
|
title: {
|
|
1172
1560
|
id: "identities.messages.1010023",
|
|
1173
1561
|
values: { address: identifier }
|
|
@@ -1175,89 +1563,58 @@ function OryTwoStepCard() {
|
|
|
1175
1563
|
};
|
|
1176
1564
|
}
|
|
1177
1565
|
}
|
|
1178
|
-
const
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
}
|
|
1184
|
-
|
|
1185
|
-
dispatchFormState({
|
|
1186
|
-
type: "action_select_method",
|
|
1187
|
-
method
|
|
1188
|
-
});
|
|
1189
|
-
}
|
|
1566
|
+
const noMethods = {
|
|
1567
|
+
id: 5000002,
|
|
1568
|
+
text: intl.formatMessage({
|
|
1569
|
+
id: `identities.messages.5000002`,
|
|
1570
|
+
defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
|
|
1571
|
+
}),
|
|
1572
|
+
type: "error"
|
|
1190
1573
|
};
|
|
1191
|
-
const hasSso = ui.nodes.some(
|
|
1192
|
-
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1193
|
-
);
|
|
1194
|
-
const showSso = !(formState.current === "method_active" && !(formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml));
|
|
1195
|
-
const showSsoDivider = hasSso && nonSsoNodes.filter((n) => {
|
|
1196
|
-
if (isUiNodeInputAttributes(n.attributes)) {
|
|
1197
|
-
return n.attributes.type !== UiNodeInputAttributesTypeEnum.Hidden;
|
|
1198
|
-
} else if (isUiNodeScriptAttributes(n.attributes)) {
|
|
1199
|
-
return false;
|
|
1200
|
-
}
|
|
1201
|
-
return true;
|
|
1202
|
-
}).length > 0;
|
|
1203
1574
|
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1204
1575
|
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1205
1576
|
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1206
1577
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1207
|
-
|
|
1208
|
-
/* @__PURE__ */
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
formState.current === "select_method" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1578
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1579
|
+
Object.entries(authMethodBlocks).length > 0 ? /* @__PURE__ */ jsx(
|
|
1580
|
+
OryForm,
|
|
1581
|
+
{
|
|
1582
|
+
"data-testid": `ory/form/methods/local`,
|
|
1583
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1584
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1215
1585
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1216
1586
|
/* @__PURE__ */ jsx(
|
|
1217
1587
|
AuthMethodList,
|
|
1218
1588
|
{
|
|
1219
|
-
options,
|
|
1589
|
+
options: authMethodBlocks,
|
|
1220
1590
|
setSelectedGroup: (group) => dispatchFormState({
|
|
1221
1591
|
type: "action_select_method",
|
|
1222
1592
|
method: group
|
|
1223
1593
|
})
|
|
1224
1594
|
}
|
|
1225
1595
|
),
|
|
1226
|
-
|
|
1227
|
-
] }),
|
|
1228
|
-
formState.current === "method_active" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1229
|
-
ui.nodes.filter((n) => n.type === "script").map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1230
|
-
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1596
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1231
1597
|
] })
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1598
|
+
}
|
|
1599
|
+
) : !hasSingleSignOnNodes(ui.nodes) && /* @__PURE__ */ jsx("div", { "data-testid": `ory/form/methods/local`, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: noMethods }, noMethods.id) }) })
|
|
1600
|
+
] }),
|
|
1601
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1236
1602
|
] });
|
|
1237
1603
|
}
|
|
1238
|
-
function
|
|
1239
|
-
const {
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
}
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
};
|
|
1252
|
-
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1253
|
-
Card.AuthMethodListItem,
|
|
1254
|
-
{
|
|
1255
|
-
group,
|
|
1256
|
-
title: options2.title,
|
|
1257
|
-
onClick: () => handleClick(group, options2)
|
|
1258
|
-
},
|
|
1259
|
-
group
|
|
1260
|
-
)) });
|
|
1604
|
+
function OryTwoStepCard() {
|
|
1605
|
+
const { formState } = useOryFlow();
|
|
1606
|
+
switch (formState.current) {
|
|
1607
|
+
case "provide_identifier":
|
|
1608
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateProvideIdentifier, {});
|
|
1609
|
+
case "select_method":
|
|
1610
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateSelectMethod, {});
|
|
1611
|
+
case "method_active":
|
|
1612
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateMethodActive, { formState });
|
|
1613
|
+
}
|
|
1614
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1615
|
+
"unknown form state: ",
|
|
1616
|
+
formState.current
|
|
1617
|
+
] });
|
|
1261
1618
|
}
|
|
1262
1619
|
function OryFormGroups({ groups }) {
|
|
1263
1620
|
const {
|
|
@@ -1267,8 +1624,8 @@ function OryFormGroups({ groups }) {
|
|
|
1267
1624
|
const { flowType } = useOryFlow();
|
|
1268
1625
|
const { Form } = useComponents();
|
|
1269
1626
|
const nodes = ui.nodes.filter((node) => groups.indexOf(node.group) > -1).sort((a, b) => nodeSorter(a, b, { flowType }));
|
|
1270
|
-
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node
|
|
1271
|
-
return /* @__PURE__ */ jsx(Node, { node },
|
|
1627
|
+
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node) => {
|
|
1628
|
+
return /* @__PURE__ */ jsx(Node, { node }, getNodeId(node));
|
|
1272
1629
|
}) });
|
|
1273
1630
|
}
|
|
1274
1631
|
function OryFormSection({
|
|
@@ -1304,7 +1661,7 @@ function OryConsentCard() {
|
|
|
1304
1661
|
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1305
1662
|
/* @__PURE__ */ jsx(OryCardContent, { children: /* @__PURE__ */ jsxs(OryForm, { children: [
|
|
1306
1663
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1307
|
-
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node
|
|
1664
|
+
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) }),
|
|
1308
1665
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1309
1666
|
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1310
1667
|
] }) })
|
|
@@ -1663,16 +2020,19 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1663
2020
|
const { Card } = useComponents();
|
|
1664
2021
|
const intl = useIntl();
|
|
1665
2022
|
const { flow } = useOryFlow();
|
|
1666
|
-
const
|
|
2023
|
+
const groupedNodes = useNodesGroups(flow.ui.nodes, {
|
|
2024
|
+
// Script nodes are already handled by the parent component.
|
|
2025
|
+
omit: ["script"]
|
|
2026
|
+
});
|
|
1667
2027
|
if (group === UiNodeGroupEnum.Totp) {
|
|
1668
2028
|
return /* @__PURE__ */ jsxs(
|
|
1669
2029
|
OryFormSection,
|
|
1670
2030
|
{
|
|
1671
|
-
nodes:
|
|
2031
|
+
nodes: groupedNodes.groups.totp,
|
|
1672
2032
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1673
2033
|
children: [
|
|
1674
|
-
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a =
|
|
1675
|
-
(_b =
|
|
2034
|
+
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
2035
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1676
2036
|
]
|
|
1677
2037
|
}
|
|
1678
2038
|
);
|
|
@@ -1681,16 +2041,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1681
2041
|
return /* @__PURE__ */ jsxs(
|
|
1682
2042
|
OryFormSection,
|
|
1683
2043
|
{
|
|
1684
|
-
nodes:
|
|
2044
|
+
nodes: groupedNodes.groups.lookup_secret,
|
|
1685
2045
|
"data-testid": "ory/screen/settings/group/lookup_secret",
|
|
1686
2046
|
children: [
|
|
1687
2047
|
/* @__PURE__ */ jsx(
|
|
1688
2048
|
OrySettingsRecoveryCodes,
|
|
1689
2049
|
{
|
|
1690
|
-
nodes: (_c =
|
|
2050
|
+
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1691
2051
|
}
|
|
1692
2052
|
),
|
|
1693
|
-
(_d =
|
|
2053
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1694
2054
|
]
|
|
1695
2055
|
}
|
|
1696
2056
|
);
|
|
@@ -1699,11 +2059,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1699
2059
|
return /* @__PURE__ */ jsxs(
|
|
1700
2060
|
OryFormSection,
|
|
1701
2061
|
{
|
|
1702
|
-
nodes:
|
|
2062
|
+
nodes: groupedNodes.groups.oidc,
|
|
1703
2063
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1704
2064
|
children: [
|
|
1705
|
-
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e =
|
|
1706
|
-
(_f =
|
|
2065
|
+
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
2066
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1707
2067
|
]
|
|
1708
2068
|
}
|
|
1709
2069
|
);
|
|
@@ -1712,11 +2072,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1712
2072
|
return /* @__PURE__ */ jsxs(
|
|
1713
2073
|
OryFormSection,
|
|
1714
2074
|
{
|
|
1715
|
-
nodes:
|
|
2075
|
+
nodes: groupedNodes.groups.webauthn,
|
|
1716
2076
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1717
2077
|
children: [
|
|
1718
|
-
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g =
|
|
1719
|
-
(_h =
|
|
2078
|
+
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
2079
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1720
2080
|
]
|
|
1721
2081
|
}
|
|
1722
2082
|
);
|
|
@@ -1725,11 +2085,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1725
2085
|
return /* @__PURE__ */ jsxs(
|
|
1726
2086
|
OryFormSection,
|
|
1727
2087
|
{
|
|
1728
|
-
nodes:
|
|
2088
|
+
nodes: groupedNodes.groups.passkey,
|
|
1729
2089
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1730
2090
|
children: [
|
|
1731
|
-
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i =
|
|
1732
|
-
(_j =
|
|
2091
|
+
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
2092
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1733
2093
|
]
|
|
1734
2094
|
}
|
|
1735
2095
|
);
|
|
@@ -1750,30 +2110,30 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1750
2110
|
id: `settings.${group}.description`
|
|
1751
2111
|
}),
|
|
1752
2112
|
children: [
|
|
1753
|
-
(_k =
|
|
2113
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))),
|
|
1754
2114
|
nodes.filter(
|
|
1755
2115
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1756
|
-
).map((node
|
|
2116
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1757
2117
|
]
|
|
1758
2118
|
}
|
|
1759
2119
|
),
|
|
1760
2120
|
/* @__PURE__ */ jsx(Card.SettingsSectionFooter, { children: nodes.filter(
|
|
1761
2121
|
(node) => "type" in node.attributes && node.attributes.type === "submit"
|
|
1762
|
-
).map((node
|
|
2122
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) })
|
|
1763
2123
|
]
|
|
1764
2124
|
}
|
|
1765
2125
|
);
|
|
1766
2126
|
}
|
|
1767
|
-
var
|
|
1768
|
-
(node) =>
|
|
2127
|
+
var onlyScriptNodes = (nodes) => nodes.filter(
|
|
2128
|
+
(node) => isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
|
|
1769
2129
|
);
|
|
1770
2130
|
function OrySettingsCard() {
|
|
1771
2131
|
const { flow } = useOryFlow();
|
|
1772
|
-
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
1773
|
-
const
|
|
2132
|
+
const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
|
|
2133
|
+
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1774
2134
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1775
2135
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1776
|
-
|
|
2136
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n }, getNodeId(n))),
|
|
1777
2137
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1778
2138
|
if (group === UiNodeGroupEnum.Default) {
|
|
1779
2139
|
return null;
|
|
@@ -2080,9 +2440,11 @@ var en_default = {
|
|
|
2080
2440
|
"card.header.parts.oidc": "a social provider",
|
|
2081
2441
|
"card.header.parts.password.registration": "your {identifierLabel} and a password",
|
|
2082
2442
|
"card.header.parts.password.login": "your {identifierLabel} and password",
|
|
2083
|
-
"card.header.parts.code": "a code sent to
|
|
2443
|
+
"card.header.parts.code": "a code sent to you",
|
|
2084
2444
|
"card.header.parts.passkey": "a Passkey",
|
|
2085
2445
|
"card.header.parts.webauthn": "a security key",
|
|
2446
|
+
"card.header.parts.totp": "your authenticator app",
|
|
2447
|
+
"card.header.parts.lookup_secret": "a backup recovery code",
|
|
2086
2448
|
"card.header.parts.identifier-first": "your {identifierLabel}",
|
|
2087
2449
|
"card.header.description.login": "Sign in with {identifierLabel}",
|
|
2088
2450
|
"card.header.description.registration": "Sign up with {identifierLabel}",
|
|
@@ -2111,18 +2473,18 @@ var en_default = {
|
|
|
2111
2473
|
"property.code": "code",
|
|
2112
2474
|
"consent.title": "Authorize {party}",
|
|
2113
2475
|
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
|
|
2114
|
-
"consent.scope.openid.title": "
|
|
2115
|
-
"consent.scope.openid.description": "
|
|
2476
|
+
"consent.scope.openid.title": "Identity",
|
|
2477
|
+
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
|
|
2116
2478
|
"consent.scope.offline_access.title": "Offline Access",
|
|
2117
|
-
"consent.scope.offline_access.description": "
|
|
2118
|
-
"consent.scope.profile.title": "Profile",
|
|
2119
|
-
"consent.scope.profile.description": "
|
|
2479
|
+
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
|
|
2480
|
+
"consent.scope.profile.title": "Profile Information",
|
|
2481
|
+
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
|
|
2120
2482
|
"consent.scope.email.title": "Email Address",
|
|
2121
|
-
"consent.scope.email.description": "
|
|
2122
|
-
"consent.scope.address.title": "Address",
|
|
2123
|
-
"consent.scope.address.description": "
|
|
2124
|
-
"consent.scope.phone.title": "Phone",
|
|
2125
|
-
"consent.scope.phone.description": "
|
|
2483
|
+
"consent.scope.email.description": "Retrieve your email address and its verification status.",
|
|
2484
|
+
"consent.scope.address.title": "Physical Address",
|
|
2485
|
+
"consent.scope.address.description": "Access your postal address.",
|
|
2486
|
+
"consent.scope.phone.title": "Phone Number",
|
|
2487
|
+
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
|
|
2126
2488
|
"error.title.what-happened": "What happened?",
|
|
2127
2489
|
"error.title.what-can-i-do": "What can I do?",
|
|
2128
2490
|
"error.instructions": "Please try again in a few minutes or contact the website operator.",
|
|
@@ -2299,7 +2661,7 @@ var de_default = {
|
|
|
2299
2661
|
"two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
|
|
2300
2662
|
"two-step.code.title": "E-Mail-Code",
|
|
2301
2663
|
"two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
|
|
2302
|
-
"two-step.passkey.title": "
|
|
2664
|
+
"two-step.passkey.title": "Passkey (empfohlen)",
|
|
2303
2665
|
"two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
|
|
2304
2666
|
"two-step.password.title": "Passwort",
|
|
2305
2667
|
"two-step.webauthn.title": "Sicherheitsschl\xFCssel",
|
|
@@ -2315,28 +2677,30 @@ var de_default = {
|
|
|
2315
2677
|
"login.cancel-label": "Nicht das richtige Konto?",
|
|
2316
2678
|
"identities.messages.1010023": "Code an {address} senden",
|
|
2317
2679
|
"identities.messages.1010016": "Sie haben versucht, sich mit \u201E{duplicateIdentifier}\u201C anzumelden, aber diese E-Mail-Adresse wird bereits von einem anderen Konto verwendet. \nMelden Sie sich mit einer der folgenden Optionen bei Ihrem Konto an, um Ihr Konto \u201E{duplicateIdentifier}\u201C bei \u201E{provider}\u201C als weitere Anmeldem\xF6glichkeit hinzuzuf\xFCgen.",
|
|
2318
|
-
"identities.messages.1010017": "",
|
|
2319
|
-
"identities.messages.1010018": "",
|
|
2320
|
-
"identities.messages.1010019": "",
|
|
2680
|
+
"identities.messages.1010017": "Anmelden und verbinden",
|
|
2681
|
+
"identities.messages.1010018": "Mit {provider} best\xE4tigen",
|
|
2682
|
+
"identities.messages.1010019": "Code senden um fortzufahren",
|
|
2321
2683
|
"identities.messages.1010020": "",
|
|
2322
|
-
"identities.messages.1010021": "",
|
|
2323
|
-
"identities.messages.1010022": "",
|
|
2324
|
-
"identities.messages.1040007": "",
|
|
2325
|
-
"identities.messages.1040008": "",
|
|
2326
|
-
"identities.messages.1040009": "",
|
|
2684
|
+
"identities.messages.1010021": "Mit Paskey anmelden",
|
|
2685
|
+
"identities.messages.1010022": "Mit Passwort anmelden",
|
|
2686
|
+
"identities.messages.1040007": "Mit Passkey registrieren",
|
|
2687
|
+
"identities.messages.1040008": "Zur\xFCck",
|
|
2688
|
+
"identities.messages.1040009": "Bitte w\xE4hlen Sie eine Authentifizierungsmethode, um fortzufahren.",
|
|
2327
2689
|
"identities.messages.1050019": "Passkey hinzuf\xFCgen",
|
|
2328
|
-
"identities.messages.1050020": "",
|
|
2329
|
-
"identities.messages.4000037": "",
|
|
2330
|
-
"identities.messages.4010009": "",
|
|
2331
|
-
"identities.messages.4010010": "",
|
|
2690
|
+
"identities.messages.1050020": 'Passkey "{display_name}" entfernen',
|
|
2691
|
+
"identities.messages.4000037": "F\xFCr die eingegebenen Daten existiert kein Account",
|
|
2692
|
+
"identities.messages.4010009": "Die Authentifizierungsmethode stimmt nicht mit der vorherigen Authentifizierungsmethode \xFCberein. Bitte versuchen Sie es erneut.",
|
|
2693
|
+
"identities.messages.4010010": "Die eingegebene Adresse stimmt nicht mit der Adresse \xFCberein, die Sie bei der Registrierung angegeben haben. Bitte versuchen Sie es erneut.",
|
|
2332
2694
|
"input.placeholder": "{placeholder} eingeben",
|
|
2333
|
-
"card.header.parts.code": "
|
|
2695
|
+
"card.header.parts.code": "ein an Sie gesendeter Code",
|
|
2334
2696
|
"card.header.parts.identifier-first": "Ihr {identifierLabel}",
|
|
2335
2697
|
"card.header.parts.oidc": "ein sozialer Anbieter",
|
|
2336
2698
|
"card.header.parts.passkey": "ein Passkey",
|
|
2337
2699
|
"card.header.parts.password.login": "Ihrer {identifierLabel} und Ihrem Passwort",
|
|
2338
2700
|
"card.header.parts.password.registration": "Ihrer {identifierLabel} und einem Passwort",
|
|
2339
2701
|
"card.header.parts.webauthn": "ein Sicherheitsschl\xFCssel",
|
|
2702
|
+
"card.header.parts.totp": "deine Authentifikator-App",
|
|
2703
|
+
"card.header.parts.lookup_secret": "ein Backup-Wiederherstellungscode",
|
|
2340
2704
|
"recovery.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um einen einmaligen Zugangscode zu erhalten",
|
|
2341
2705
|
"verification.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um es zu best\xE4tigen",
|
|
2342
2706
|
"card.header.description.login": "Melden Sie sich mit {identifierLabel} an",
|
|
@@ -2394,20 +2758,20 @@ var de_default = {
|
|
|
2394
2758
|
"property.phone": "Telefon",
|
|
2395
2759
|
"property.code": "Code",
|
|
2396
2760
|
"property.username": "Benutzername",
|
|
2397
|
-
"consent.title": "",
|
|
2398
|
-
"consent.subtitle": "",
|
|
2399
|
-
"consent.scope.openid.title": "",
|
|
2400
|
-
"consent.scope.openid.description": "",
|
|
2401
|
-
"consent.scope.offline_access.title": "",
|
|
2402
|
-
"consent.scope.offline_access.description": "",
|
|
2403
|
-
"consent.scope.profile.title": "",
|
|
2404
|
-
"consent.scope.profile.description": "",
|
|
2405
|
-
"consent.scope.email.title": "",
|
|
2406
|
-
"consent.scope.email.description": "",
|
|
2407
|
-
"consent.scope.address.title": "",
|
|
2408
|
-
"consent.scope.address.description": "",
|
|
2409
|
-
"consent.scope.phone.title": "",
|
|
2410
|
-
"consent.scope.phone.description": "",
|
|
2761
|
+
"consent.title": "Autorisieren {party}",
|
|
2762
|
+
"consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
|
|
2763
|
+
"consent.scope.openid.title": "Identit\xE4t",
|
|
2764
|
+
"consent.scope.openid.description": "Erm\xF6glicht der Anwendung, Ihre Identit\xE4t zu \xFCberpr\xFCfen. Dies ist f\xFCr die Authentifizierung und eine vertrauensw\xFCrdige Login-Erfahrung erforderlich.",
|
|
2765
|
+
"consent.scope.offline_access.title": "Offline-Zugriff",
|
|
2766
|
+
"consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
|
|
2767
|
+
"consent.scope.profile.title": "Profilinformationen",
|
|
2768
|
+
"consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
|
|
2769
|
+
"consent.scope.email.title": "E-Mail-Adresse",
|
|
2770
|
+
"consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
|
|
2771
|
+
"consent.scope.address.title": "Physische Adresse",
|
|
2772
|
+
"consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
|
|
2773
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
2774
|
+
"consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
|
|
2411
2775
|
"error.title.what-happened": "Was ist passiert?",
|
|
2412
2776
|
"error.footer.copy": "Kopieren",
|
|
2413
2777
|
"error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
|
|
@@ -2429,7 +2793,6 @@ var es_default = {
|
|
|
2429
2793
|
"error.back-button": "Regresar",
|
|
2430
2794
|
"error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
|
|
2431
2795
|
"error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
|
|
2432
|
-
"error.title": "",
|
|
2433
2796
|
"error.title-internal-server-error": "Error Interno del Servidor",
|
|
2434
2797
|
"error.title-not-found": "404 - P\xE1gina no encontrada",
|
|
2435
2798
|
"identities.messages.1010001": "Iniciar sesi\xF3n",
|
|
@@ -2604,45 +2967,6 @@ var es_default = {
|
|
|
2604
2967
|
"two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
|
|
2605
2968
|
"two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
|
|
2606
2969
|
"two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
|
|
2607
|
-
"identities.messages.1010016": "",
|
|
2608
|
-
"identities.messages.1010017": "",
|
|
2609
|
-
"identities.messages.1010018": "",
|
|
2610
|
-
"identities.messages.1010019": "",
|
|
2611
|
-
"identities.messages.1010020": "",
|
|
2612
|
-
"identities.messages.1010021": "",
|
|
2613
|
-
"identities.messages.1010022": "",
|
|
2614
|
-
"identities.messages.1010023": "",
|
|
2615
|
-
"identities.messages.1040007": "",
|
|
2616
|
-
"identities.messages.1040008": "",
|
|
2617
|
-
"identities.messages.1040009": "",
|
|
2618
|
-
"identities.messages.1050019": "",
|
|
2619
|
-
"identities.messages.1050020": "",
|
|
2620
|
-
"identities.messages.1070014": "",
|
|
2621
|
-
"identities.messages.1070015": "",
|
|
2622
|
-
"identities.messages.4000037": "",
|
|
2623
|
-
"identities.messages.4000038": "",
|
|
2624
|
-
"identities.messages.4010009": "",
|
|
2625
|
-
"identities.messages.4010010": "",
|
|
2626
|
-
"login.cancel-button": "",
|
|
2627
|
-
"login.cancel-label": "",
|
|
2628
|
-
"input.placeholder": "",
|
|
2629
|
-
"card.header.description.login": "",
|
|
2630
|
-
"card.header.description.registration": "",
|
|
2631
|
-
"card.header.parts.code": "",
|
|
2632
|
-
"card.header.parts.identifier-first": "",
|
|
2633
|
-
"card.header.parts.oidc": "",
|
|
2634
|
-
"card.header.parts.passkey": "",
|
|
2635
|
-
"card.header.parts.password.login": "",
|
|
2636
|
-
"card.header.parts.password.registration": "",
|
|
2637
|
-
"card.header.parts.webauthn": "",
|
|
2638
|
-
"forms.label.forgot-password": "",
|
|
2639
|
-
"login.subtitle": "",
|
|
2640
|
-
"login.subtitle-refresh": "",
|
|
2641
|
-
"misc.or": "",
|
|
2642
|
-
"recovery.subtitle": "",
|
|
2643
|
-
"registration.subtitle": "",
|
|
2644
|
-
"settings.subtitle": "",
|
|
2645
|
-
"verification.subtitle": "",
|
|
2646
2970
|
"settings.totp.info.linked": "Actualmente tienes una aplicaci\xF3n de autenticaci\xF3n conectada.",
|
|
2647
2971
|
"settings.totp.info.not-linked": "Para habilitar, escanea el c\xF3digo QR con tu autenticador e ingresa el c\xF3digo.",
|
|
2648
2972
|
"settings.totp.title": "Aplicaci\xF3n Autenticadora",
|
|
@@ -2660,45 +2984,87 @@ var es_default = {
|
|
|
2660
2984
|
"settings.profile.title": "Configuraci\xF3n de Perfil",
|
|
2661
2985
|
"settings.webauthn.description": "Administra la configuraci\xF3n de tu token de hardware",
|
|
2662
2986
|
"settings.webauthn.title": "Gestionar Tokens de Hardware",
|
|
2663
|
-
"
|
|
2664
|
-
"
|
|
2665
|
-
"
|
|
2666
|
-
"
|
|
2667
|
-
"
|
|
2668
|
-
"
|
|
2669
|
-
"
|
|
2670
|
-
"
|
|
2671
|
-
"
|
|
2672
|
-
"
|
|
2673
|
-
"
|
|
2674
|
-
"
|
|
2675
|
-
"
|
|
2676
|
-
"
|
|
2677
|
-
"
|
|
2678
|
-
"
|
|
2679
|
-
"
|
|
2680
|
-
"
|
|
2681
|
-
"
|
|
2682
|
-
"
|
|
2683
|
-
"
|
|
2684
|
-
"
|
|
2685
|
-
"
|
|
2686
|
-
"
|
|
2687
|
-
"
|
|
2688
|
-
"
|
|
2689
|
-
"
|
|
2690
|
-
"
|
|
2691
|
-
"
|
|
2692
|
-
"
|
|
2693
|
-
"
|
|
2694
|
-
"
|
|
2695
|
-
"
|
|
2696
|
-
"
|
|
2697
|
-
"
|
|
2698
|
-
"
|
|
2699
|
-
"
|
|
2700
|
-
"
|
|
2701
|
-
"
|
|
2987
|
+
"consent.title": "Autorizar {party}",
|
|
2988
|
+
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2989
|
+
"consent.scope.openid.title": "Identidad",
|
|
2990
|
+
"consent.scope.openid.description": "Permite que la aplicaci\xF3n verifique su identidad. Esto es necesario para la autenticaci\xF3n y una experiencia de inicio de sesi\xF3n confiable.",
|
|
2991
|
+
"consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
|
|
2992
|
+
"consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
|
|
2993
|
+
"consent.scope.profile.title": "Informaci\xF3n del perfil",
|
|
2994
|
+
"consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
|
|
2995
|
+
"consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
|
|
2996
|
+
"consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
|
|
2997
|
+
"consent.scope.address.title": "Direcci\xF3n f\xEDsica",
|
|
2998
|
+
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2999
|
+
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
3000
|
+
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
3001
|
+
"error.title": "Ocurri\xF3 un error",
|
|
3002
|
+
"identities.messages.1010016": 'Intentaste iniciar sesi\xF3n con "{duplicateIdentifier}", pero ese correo electr\xF3nico ya est\xE1 en uso por otra cuenta. Inicia sesi\xF3n en tu cuenta con una de las opciones a continuaci\xF3n para agregar tu cuenta "{duplicateIdentifier}" en "{provider}" como otra forma de iniciar sesi\xF3n.',
|
|
3003
|
+
"identities.messages.1010017": "Iniciar sesi\xF3n y vincular",
|
|
3004
|
+
"identities.messages.1010018": "Confirmar con {provider}",
|
|
3005
|
+
"identities.messages.1010019": "Solicitar c\xF3digo para continuar",
|
|
3006
|
+
"identities.messages.1010021": "Iniciar sesi\xF3n con clave de acceso",
|
|
3007
|
+
"identities.messages.1010022": "Iniciar sesi\xF3n con contrase\xF1a",
|
|
3008
|
+
"identities.messages.1010023": "Enviar c\xF3digo a {address}",
|
|
3009
|
+
"identities.messages.1040007": "Registrarse con clave de acceso",
|
|
3010
|
+
"identities.messages.1040008": "Atr\xE1s",
|
|
3011
|
+
"identities.messages.1040009": "Por favor, elige una credencial para autenticarte.",
|
|
3012
|
+
"identities.messages.1050019": "Agregar clave de acceso",
|
|
3013
|
+
"identities.messages.1070014": "Iniciar sesi\xF3n y vincular credencial",
|
|
3014
|
+
"identities.messages.1070015": "Por favor, completa el desaf\xEDo captcha para continuar.",
|
|
3015
|
+
"identities.messages.4000037": "Esta cuenta no existe o no tiene ning\xFAn m\xE9todo de inicio de sesi\xF3n configurado.",
|
|
3016
|
+
"identities.messages.4000038": "Fall\xF3 la verificaci\xF3n de Captcha, por favor intenta de nuevo.",
|
|
3017
|
+
"identities.messages.4010009": "Las credenciales vinculadas no coinciden.",
|
|
3018
|
+
"identities.messages.4010010": "La direcci\xF3n que ingresaste no coincide con ninguna direcci\xF3n conocida en la cuenta actual.",
|
|
3019
|
+
"login.cancel-button": "Cancelar",
|
|
3020
|
+
"login.cancel-label": "\xBFNo es la cuenta correcta?",
|
|
3021
|
+
"login.subtitle": "Iniciar sesi\xF3n con {parts}",
|
|
3022
|
+
"login.subtitle-refresh": "Confirma tu identidad con {parts}",
|
|
3023
|
+
"recovery.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para recibir un c\xF3digo de acceso \xFAnico",
|
|
3024
|
+
"registration.subtitle": "Registrarse con {parts}",
|
|
3025
|
+
"settings.subtitle": "Actualiza la configuraci\xF3n de tu cuenta",
|
|
3026
|
+
"settings.title-lookup-secret": "Administrar c\xF3digos de recuperaci\xF3n de respaldo 2FA",
|
|
3027
|
+
"settings.title-navigation": "Configuraci\xF3n de la cuenta",
|
|
3028
|
+
"settings.title-oidc": "Inicio de sesi\xF3n social",
|
|
3029
|
+
"settings.title-password": "Cambiar contrase\xF1a",
|
|
3030
|
+
"settings.title-profile": "Configuraci\xF3n del perfil",
|
|
3031
|
+
"settings.title-totp": "Administrar la aplicaci\xF3n de autenticaci\xF3n 2FA TOTP",
|
|
3032
|
+
"settings.title-webauthn": "Administrar tokens de hardware",
|
|
3033
|
+
"settings.title-passkey": "Administrar claves de acceso",
|
|
3034
|
+
"verification.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para verificarla",
|
|
3035
|
+
"input.placeholder": "Ingresa tu {placeholder}",
|
|
3036
|
+
"card.header.parts.oidc": "un proveedor social",
|
|
3037
|
+
"card.header.parts.password.registration": "tu {identifierLabel} y una contrase\xF1a",
|
|
3038
|
+
"card.header.parts.password.login": "tu {identifierLabel} y contrase\xF1a",
|
|
3039
|
+
"card.header.parts.code": "un c\xF3digo enviado a tu correo electr\xF3nico",
|
|
3040
|
+
"card.header.parts.passkey": "una clave de acceso",
|
|
3041
|
+
"card.header.parts.webauthn": "una clave de seguridad",
|
|
3042
|
+
"card.header.parts.totp": "su aplicaci\xF3n de autenticaci\xF3n",
|
|
3043
|
+
"card.header.parts.lookup_secret": "un c\xF3digo de recuperaci\xF3n de copia de seguridad",
|
|
3044
|
+
"card.header.parts.identifier-first": "tu {identifierLabel}",
|
|
3045
|
+
"card.header.description.login": "Iniciar sesi\xF3n con {identifierLabel}",
|
|
3046
|
+
"card.header.description.registration": "Registrarse con {identifierLabel}",
|
|
3047
|
+
"misc.or": "o",
|
|
3048
|
+
"forms.label.forgot-password": "\xBFOlvidaste tu contrase\xF1a?",
|
|
3049
|
+
"settings.oidc.info": "Las cuentas conectadas de estos proveedores se pueden utilizar para iniciar sesi\xF3n en tu cuenta",
|
|
3050
|
+
"settings.webauthn.info": "Los tokens de hardware se utilizan para la autenticaci\xF3n de segundo factor o como primer factor con las claves de acceso",
|
|
3051
|
+
"settings.passkey.info": "Administra la configuraci\xF3n de tus claves de acceso",
|
|
3052
|
+
"card.footer.select-another-method": "Seleccionar otro m\xE9todo",
|
|
3053
|
+
"account-linking.title": "Vincular cuenta",
|
|
3054
|
+
"property.password": "contrase\xF1a",
|
|
3055
|
+
"property.email": "correo electr\xF3nico",
|
|
3056
|
+
"property.phone": "tel\xE9fono",
|
|
3057
|
+
"property.username": "nombre de usuario",
|
|
3058
|
+
"property.identifier": "identificador",
|
|
3059
|
+
"property.code": "c\xF3digo",
|
|
3060
|
+
"error.title.what-happened": "\xBFQu\xE9 pas\xF3?",
|
|
3061
|
+
"error.title.what-can-i-do": "\xBFQu\xE9 puedo hacer?",
|
|
3062
|
+
"error.instructions": "Por favor, int\xE9ntalo de nuevo en unos minutos o contacta al operador del sitio web.",
|
|
3063
|
+
"error.footer.text": "Al informar este error, incluye la siguiente informaci\xF3n:",
|
|
3064
|
+
"error.footer.copy": "Copiar",
|
|
3065
|
+
"error.action.go-back": "Regresar",
|
|
3066
|
+
"identities.messages.1010020": "",
|
|
3067
|
+
"identities.messages.1050020": 'Eliminar passkey "{display_name}"'
|
|
2702
3068
|
};
|
|
2703
3069
|
|
|
2704
3070
|
// src/locales/fr.json
|
|
@@ -2889,101 +3255,103 @@ var fr_default = {
|
|
|
2889
3255
|
"two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
|
|
2890
3256
|
"two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
|
|
2891
3257
|
"two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
|
|
2892
|
-
"identities.messages.1010023": "",
|
|
2893
|
-
"identities.messages.1070015": "",
|
|
2894
|
-
"identities.messages.4000038": "",
|
|
2895
|
-
"login.cancel-button": "",
|
|
2896
|
-
"login.cancel-label": "",
|
|
2897
|
-
"identities.messages.1010016": "",
|
|
2898
|
-
"identities.messages.1010017": "",
|
|
2899
|
-
"identities.messages.1010018": "",
|
|
2900
|
-
"identities.messages.1010019": "",
|
|
2901
|
-
"identities.messages.1010020": "",
|
|
2902
|
-
"identities.messages.1010021": "",
|
|
2903
|
-
"identities.messages.1010022": "",
|
|
2904
|
-
"identities.messages.1040007": "",
|
|
2905
|
-
"identities.messages.1040008": "",
|
|
2906
|
-
"identities.messages.1040009": "",
|
|
2907
|
-
"identities.messages.1050019": "",
|
|
2908
|
-
"identities.messages.1050020": "",
|
|
2909
|
-
"identities.messages.1070014": "",
|
|
2910
|
-
"identities.messages.4000037": "",
|
|
2911
|
-
"identities.messages.4010009": "",
|
|
2912
|
-
"identities.messages.4010010": "",
|
|
2913
|
-
"input.placeholder": "",
|
|
2914
|
-
"card.header.description.login": "",
|
|
2915
|
-
"card.header.description.registration": "",
|
|
2916
|
-
"card.header.parts.code": "",
|
|
2917
|
-
"card.header.parts.identifier-first": "",
|
|
2918
|
-
"card.header.parts.oidc": "",
|
|
2919
|
-
"card.header.parts.passkey": "",
|
|
2920
|
-
"card.header.parts.password.login": "",
|
|
2921
|
-
"card.header.parts.password.registration": "",
|
|
2922
|
-
"card.header.parts.webauthn": "",
|
|
2923
|
-
"forms.label.forgot-password": "",
|
|
2924
|
-
"login.subtitle": "",
|
|
2925
|
-
"login.subtitle-refresh": "",
|
|
2926
|
-
"misc.or": "",
|
|
2927
|
-
"recovery.subtitle": "",
|
|
2928
|
-
"registration.subtitle": "",
|
|
2929
|
-
"settings.subtitle": "",
|
|
2930
|
-
"verification.subtitle": "",
|
|
2931
3258
|
"settings.totp.info.linked": "Vous avez actuellement une application d'authentification connect\xE9e.",
|
|
2932
3259
|
"settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.",
|
|
2933
3260
|
"settings.totp.title": "Application d'authentification",
|
|
2934
3261
|
"settings.totp.description": "Ajoutez une application d'authentification TOTP \xE0 votre compte pour am\xE9liorer la s\xE9curit\xE9 de votre compte. Les applications d'authentification populaires sont LastPass et Google Authenticator.",
|
|
2935
|
-
"
|
|
2936
|
-
"
|
|
2937
|
-
"
|
|
2938
|
-
"
|
|
2939
|
-
"
|
|
2940
|
-
"
|
|
2941
|
-
"
|
|
2942
|
-
"
|
|
2943
|
-
"
|
|
2944
|
-
"
|
|
2945
|
-
"
|
|
2946
|
-
"
|
|
2947
|
-
"
|
|
2948
|
-
"
|
|
2949
|
-
"
|
|
2950
|
-
"
|
|
2951
|
-
"
|
|
2952
|
-
"
|
|
2953
|
-
"
|
|
2954
|
-
"
|
|
2955
|
-
"
|
|
2956
|
-
"
|
|
2957
|
-
"
|
|
2958
|
-
"
|
|
2959
|
-
"
|
|
2960
|
-
"
|
|
2961
|
-
"
|
|
2962
|
-
"
|
|
2963
|
-
"
|
|
2964
|
-
"
|
|
2965
|
-
"
|
|
2966
|
-
"
|
|
2967
|
-
"
|
|
2968
|
-
"
|
|
2969
|
-
"
|
|
2970
|
-
"
|
|
2971
|
-
"
|
|
2972
|
-
"
|
|
2973
|
-
"
|
|
2974
|
-
"
|
|
2975
|
-
"
|
|
2976
|
-
"
|
|
2977
|
-
"
|
|
2978
|
-
"
|
|
2979
|
-
"
|
|
2980
|
-
"
|
|
2981
|
-
"
|
|
2982
|
-
"
|
|
2983
|
-
"
|
|
2984
|
-
"
|
|
2985
|
-
"
|
|
2986
|
-
"
|
|
3262
|
+
"consent.title": "Autoriser {party}",
|
|
3263
|
+
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
3264
|
+
"consent.scope.openid.title": "Identit\xE9",
|
|
3265
|
+
"consent.scope.openid.description": "Permet \xE0 l'application de v\xE9rifier votre identit\xE9. Cela est n\xE9cessaire pour l'authentification et une exp\xE9rience de connexion fiable.",
|
|
3266
|
+
"consent.scope.offline_access.title": "Acc\xE8s hors ligne",
|
|
3267
|
+
"consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
|
|
3268
|
+
"consent.scope.profile.title": "Informations de profil",
|
|
3269
|
+
"consent.scope.profile.description": "Permet l'acc\xE8s aux d\xE9tails de base de votre profil, y compris votre nom d'utilisateur, pr\xE9nom et nom.",
|
|
3270
|
+
"consent.scope.email.title": "Adresse e-mail",
|
|
3271
|
+
"consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
|
|
3272
|
+
"consent.scope.address.title": "Adresse physique",
|
|
3273
|
+
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
3274
|
+
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
3275
|
+
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
3276
|
+
"identities.messages.1010016": "Vous avez essay\xE9 de vous connecter avec \xAB {duplicateIdentifier} \xBB, mais cet e-mail est d\xE9j\xE0 utilis\xE9 par un autre compte. Connectez-vous \xE0 votre compte avec l'une des options ci-dessous pour ajouter votre compte \xAB {duplicateIdentifier} \xBB sur \xAB {provider} \xBB comme autre moyen de vous connecter.",
|
|
3277
|
+
"identities.messages.1010017": "Se connecter et lier",
|
|
3278
|
+
"identities.messages.1010018": "Confirmer avec {provider}",
|
|
3279
|
+
"identities.messages.1010019": "Demander un code pour continuer",
|
|
3280
|
+
"identities.messages.1010021": "Se connecter avec une cl\xE9 d'acc\xE8s",
|
|
3281
|
+
"identities.messages.1010022": "Se connecter avec un mot de passe",
|
|
3282
|
+
"identities.messages.1010023": "Envoyer le code \xE0 {address}",
|
|
3283
|
+
"identities.messages.1040007": "S'inscrire avec une cl\xE9 d'acc\xE8s",
|
|
3284
|
+
"identities.messages.1040008": "Retour",
|
|
3285
|
+
"identities.messages.1040009": "Veuillez choisir une identification pour vous authentifier.",
|
|
3286
|
+
"identities.messages.1050019": "Ajouter une cl\xE9 d'acc\xE8s",
|
|
3287
|
+
"identities.messages.1050020": "Supprimer la cl\xE9 d'acc\xE8s \xAB {display_name} \xBB",
|
|
3288
|
+
"identities.messages.1070014": "Se connecter et lier l'identification",
|
|
3289
|
+
"identities.messages.1070015": "Veuillez compl\xE9ter le d\xE9fi captcha pour continuer.",
|
|
3290
|
+
"identities.messages.4000037": "Ce compte n'existe pas ou n'a aucune m\xE9thode de connexion configur\xE9e.",
|
|
3291
|
+
"identities.messages.4000038": "La v\xE9rification Captcha a \xE9chou\xE9, veuillez r\xE9essayer.",
|
|
3292
|
+
"identities.messages.4010009": "Les identifications li\xE9es ne correspondent pas.",
|
|
3293
|
+
"identities.messages.4010010": "L'adresse que vous avez saisie ne correspond \xE0 aucune adresse connue dans le compte actuel.",
|
|
3294
|
+
"login.cancel-button": "Annuler",
|
|
3295
|
+
"login.cancel-label": "Ce n'est pas le bon compte\xA0?",
|
|
3296
|
+
"login.subtitle": "Se connecter avec {parts}",
|
|
3297
|
+
"login.subtitle-refresh": "Confirmez votre identit\xE9 avec {parts}",
|
|
3298
|
+
"recovery.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour recevoir un code d'acc\xE8s unique",
|
|
3299
|
+
"registration.subtitle": "S'inscrire avec {parts}",
|
|
3300
|
+
"settings.subtitle": "Mettre \xE0 jour les param\xE8tres de votre compte",
|
|
3301
|
+
"settings.title-lookup-secret": "G\xE9rer les codes de r\xE9cup\xE9ration de sauvegarde 2FA",
|
|
3302
|
+
"settings.title-navigation": "Param\xE8tres du compte",
|
|
3303
|
+
"settings.title-oidc": "Connexion via les r\xE9seaux sociaux",
|
|
3304
|
+
"settings.title-password": "Changer le mot de passe",
|
|
3305
|
+
"settings.title-profile": "Param\xE8tres du profil",
|
|
3306
|
+
"settings.title-totp": "G\xE9rer l'application d'authentification 2FA TOTP",
|
|
3307
|
+
"settings.title-webauthn": "G\xE9rer les jetons mat\xE9riels",
|
|
3308
|
+
"settings.title-passkey": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3309
|
+
"settings.navigation.title": "Param\xE8tres du compte",
|
|
3310
|
+
"settings.password.title": "Changer le mot de passe",
|
|
3311
|
+
"settings.password.description": "Modifier votre mot de passe",
|
|
3312
|
+
"settings.profile.title": "Param\xE8tres du profil",
|
|
3313
|
+
"settings.profile.description": "Mettre \xE0 jour les informations de votre profil",
|
|
3314
|
+
"settings.webauthn.title": "G\xE9rer les jetons mat\xE9riels",
|
|
3315
|
+
"settings.webauthn.description": "G\xE9rer les param\xE8tres de votre jeton mat\xE9riel",
|
|
3316
|
+
"verification.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour la v\xE9rifier",
|
|
3317
|
+
"input.placeholder": "Saisissez votre {placeholder}",
|
|
3318
|
+
"card.header.parts.oidc": "un fournisseur de r\xE9seaux sociaux",
|
|
3319
|
+
"card.header.parts.password.registration": "votre {identifierLabel} et un mot de passe",
|
|
3320
|
+
"card.header.parts.password.login": "votre {identifierLabel} et votre mot de passe",
|
|
3321
|
+
"card.header.parts.passkey": "une cl\xE9 d'acc\xE8s",
|
|
3322
|
+
"card.header.parts.webauthn": "une cl\xE9 de s\xE9curit\xE9",
|
|
3323
|
+
"card.header.parts.identifier-first": "votre {identifierLabel}",
|
|
3324
|
+
"card.header.parts.code": "un code qui vous a \xE9t\xE9 envoy\xE9",
|
|
3325
|
+
"card.header.parts.totp": "votre application d'authentification",
|
|
3326
|
+
"card.header.parts.lookup_secret": "un code de r\xE9cup\xE9ration de secours",
|
|
3327
|
+
"card.header.description.login": "Se connecter avec {identifierLabel}",
|
|
3328
|
+
"card.header.description.registration": "S'inscrire avec {identifierLabel}",
|
|
3329
|
+
"misc.or": "ou",
|
|
3330
|
+
"forms.label.forgot-password": "Mot de passe oubli\xE9?",
|
|
3331
|
+
"settings.lookup_secret.title": "Codes de r\xE9cup\xE9ration de sauvegarde (second facteur)",
|
|
3332
|
+
"settings.lookup_secret.description": "Les codes de r\xE9cup\xE9ration sont une sauvegarde s\xE9curis\xE9e pour l'authentification \xE0 deux facteurs (2FA), vous permettant de retrouver l'acc\xE8s \xE0 votre compte si vous perdez votre appareil 2FA.",
|
|
3333
|
+
"settings.oidc.title": "Comptes connect\xE9s",
|
|
3334
|
+
"settings.oidc.description": "Connectez un fournisseur de connexion sociale \xE0 votre compte.",
|
|
3335
|
+
"settings.oidc.info": "Les comptes connect\xE9s de ces fournisseurs peuvent \xEAtre utilis\xE9s pour vous connecter \xE0 votre compte",
|
|
3336
|
+
"settings.webauthn.info": "Les jetons mat\xE9riels sont utilis\xE9s pour l'authentification \xE0 deux facteurs ou comme premier facteur avec les cl\xE9s d'acc\xE8s",
|
|
3337
|
+
"settings.passkey.title": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3338
|
+
"settings.passkey.description": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3339
|
+
"settings.passkey.info": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3340
|
+
"card.footer.select-another-method": "S\xE9lectionner une autre m\xE9thode",
|
|
3341
|
+
"account-linking.title": "Lier le compte",
|
|
3342
|
+
"property.password": "mot de passe",
|
|
3343
|
+
"property.email": "e-mail",
|
|
3344
|
+
"property.phone": "t\xE9l\xE9phone",
|
|
3345
|
+
"property.username": "nom d'utilisateur",
|
|
3346
|
+
"property.identifier": "identifiant",
|
|
3347
|
+
"property.code": "code",
|
|
3348
|
+
"error.title.what-happened": "Que s'est-il pass\xE9?",
|
|
3349
|
+
"error.title.what-can-i-do": "Que puis-je faire?",
|
|
3350
|
+
"error.instructions": "Veuillez r\xE9essayer dans quelques minutes ou contacter l'op\xE9rateur du site Web.",
|
|
3351
|
+
"error.footer.text": "Lorsque vous signalez cette erreur, veuillez inclure les informations suivantes:",
|
|
3352
|
+
"error.footer.copy": "Copier",
|
|
3353
|
+
"error.action.go-back": "Retour",
|
|
3354
|
+
"identities.messages.1010020": ""
|
|
2987
3355
|
};
|
|
2988
3356
|
|
|
2989
3357
|
// src/locales/nl.json
|
|
@@ -3198,7 +3566,9 @@ var nl_default = {
|
|
|
3198
3566
|
"input.placeholder": "",
|
|
3199
3567
|
"card.header.description.login": "",
|
|
3200
3568
|
"card.header.description.registration": "",
|
|
3201
|
-
"card.header.parts.code": "",
|
|
3569
|
+
"card.header.parts.code": "een code die naar je is verzonden",
|
|
3570
|
+
"card.header.parts.totp": "je authenticator-app",
|
|
3571
|
+
"card.header.parts.lookup_secret": "een backup herstelcode",
|
|
3202
3572
|
"card.header.parts.identifier-first": "",
|
|
3203
3573
|
"card.header.parts.oidc": "",
|
|
3204
3574
|
"card.header.parts.passkey": "",
|
|
@@ -3249,20 +3619,20 @@ var nl_default = {
|
|
|
3249
3619
|
"property.password": "",
|
|
3250
3620
|
"property.phone": "",
|
|
3251
3621
|
"property.username": "",
|
|
3252
|
-
"consent.title": "",
|
|
3253
|
-
"consent.subtitle": "",
|
|
3254
|
-
"consent.scope.openid.title": "",
|
|
3255
|
-
"consent.scope.openid.description": "",
|
|
3256
|
-
"consent.scope.offline_access.title": "",
|
|
3257
|
-
"consent.scope.offline_access.description": "",
|
|
3258
|
-
"consent.scope.profile.title": "",
|
|
3259
|
-
"consent.scope.profile.description": "",
|
|
3260
|
-
"consent.scope.email.title": "",
|
|
3261
|
-
"consent.scope.email.description": "",
|
|
3262
|
-
"consent.scope.address.title": "",
|
|
3263
|
-
"consent.scope.address.description": "",
|
|
3264
|
-
"consent.scope.phone.title": "",
|
|
3265
|
-
"consent.scope.phone.description": "",
|
|
3622
|
+
"consent.title": "Autoriseren {party}",
|
|
3623
|
+
"consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
|
|
3624
|
+
"consent.scope.openid.title": "Identiteit",
|
|
3625
|
+
"consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
|
|
3626
|
+
"consent.scope.offline_access.title": "Offline toegang",
|
|
3627
|
+
"consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
|
|
3628
|
+
"consent.scope.profile.title": "Profielinformatie",
|
|
3629
|
+
"consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
|
|
3630
|
+
"consent.scope.email.title": "E-mailadres",
|
|
3631
|
+
"consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
|
|
3632
|
+
"consent.scope.address.title": "Fysiek adres",
|
|
3633
|
+
"consent.scope.address.description": "Toegang tot uw postadres.",
|
|
3634
|
+
"consent.scope.phone.title": "Telefoonnummer",
|
|
3635
|
+
"consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
|
|
3266
3636
|
"error.action.go-back": "",
|
|
3267
3637
|
"error.footer.copy": "",
|
|
3268
3638
|
"error.footer.text": "",
|
|
@@ -3483,13 +3853,15 @@ var pl_default = {
|
|
|
3483
3853
|
"input.placeholder": "",
|
|
3484
3854
|
"card.header.description.login": "",
|
|
3485
3855
|
"card.header.description.registration": "",
|
|
3486
|
-
"card.header.parts.code": "",
|
|
3487
3856
|
"card.header.parts.identifier-first": "",
|
|
3488
3857
|
"card.header.parts.oidc": "",
|
|
3489
3858
|
"card.header.parts.passkey": "",
|
|
3490
3859
|
"card.header.parts.password.login": "",
|
|
3491
3860
|
"card.header.parts.password.registration": "",
|
|
3492
3861
|
"card.header.parts.webauthn": "",
|
|
3862
|
+
"card.header.parts.code": "kod wys\u0142any do Ciebie",
|
|
3863
|
+
"card.header.parts.totp": "Twoja aplikacja uwierzytelniaj\u0105ca",
|
|
3864
|
+
"card.header.parts.lookup_secret": "kod odzyskiwania kopii zapasowej",
|
|
3493
3865
|
"forms.label.forgot-password": "",
|
|
3494
3866
|
"login.subtitle": "",
|
|
3495
3867
|
"login.subtitle-refresh": "",
|
|
@@ -3534,20 +3906,20 @@ var pl_default = {
|
|
|
3534
3906
|
"property.phone": "",
|
|
3535
3907
|
"property.username": "",
|
|
3536
3908
|
"property.identifier": "",
|
|
3537
|
-
"consent.title": "",
|
|
3538
|
-
"consent.subtitle": "",
|
|
3539
|
-
"consent.scope.openid.title": "",
|
|
3540
|
-
"consent.scope.openid.description": "",
|
|
3541
|
-
"consent.scope.offline_access.title": "",
|
|
3542
|
-
"consent.scope.offline_access.description": "",
|
|
3543
|
-
"consent.scope.profile.title": "",
|
|
3544
|
-
"consent.scope.profile.description": "",
|
|
3545
|
-
"consent.scope.email.title": "",
|
|
3546
|
-
"consent.scope.email.description": "",
|
|
3547
|
-
"consent.scope.address.title": "",
|
|
3548
|
-
"consent.scope.address.description": "",
|
|
3549
|
-
"consent.scope.phone.title": "",
|
|
3550
|
-
"consent.scope.phone.description": "",
|
|
3909
|
+
"consent.title": "Autoryzuj {party}",
|
|
3910
|
+
"consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
|
|
3911
|
+
"consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
|
|
3912
|
+
"consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
|
|
3913
|
+
"consent.scope.offline_access.title": "Dost\u0119p offline",
|
|
3914
|
+
"consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
|
|
3915
|
+
"consent.scope.profile.title": "Informacje profilowe",
|
|
3916
|
+
"consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
|
|
3917
|
+
"consent.scope.email.title": "Adres e-mail",
|
|
3918
|
+
"consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
|
|
3919
|
+
"consent.scope.address.title": "Adres fizyczny",
|
|
3920
|
+
"consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
|
|
3921
|
+
"consent.scope.phone.title": "Numer telefonu",
|
|
3922
|
+
"consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
|
|
3551
3923
|
"error.action.go-back": "",
|
|
3552
3924
|
"error.footer.copy": "",
|
|
3553
3925
|
"error.footer.text": "",
|
|
@@ -3768,7 +4140,9 @@ var pt_default = {
|
|
|
3768
4140
|
"input.placeholder": "",
|
|
3769
4141
|
"card.header.description.login": "",
|
|
3770
4142
|
"card.header.description.registration": "",
|
|
3771
|
-
"card.header.parts.code": "",
|
|
4143
|
+
"card.header.parts.code": "um c\xF3digo enviado para voc\xEA",
|
|
4144
|
+
"card.header.parts.totp": "seu aplicativo autenticador",
|
|
4145
|
+
"card.header.parts.lookup_secret": "um c\xF3digo de recupera\xE7\xE3o de backup",
|
|
3772
4146
|
"card.header.parts.identifier-first": "",
|
|
3773
4147
|
"card.header.parts.oidc": "",
|
|
3774
4148
|
"card.header.parts.passkey": "",
|
|
@@ -3819,20 +4193,20 @@ var pt_default = {
|
|
|
3819
4193
|
"property.password": "",
|
|
3820
4194
|
"property.phone": "",
|
|
3821
4195
|
"property.username": "",
|
|
3822
|
-
"consent.title": "",
|
|
3823
|
-
"consent.subtitle": "",
|
|
3824
|
-
"consent.scope.openid.title": "",
|
|
3825
|
-
"consent.scope.openid.description": "",
|
|
3826
|
-
"consent.scope.offline_access.title": "",
|
|
3827
|
-
"consent.scope.offline_access.description": "",
|
|
3828
|
-
"consent.scope.profile.title": "",
|
|
3829
|
-
"consent.scope.profile.description": "",
|
|
3830
|
-
"consent.scope.email.title": "",
|
|
3831
|
-
"consent.scope.email.description": "",
|
|
3832
|
-
"consent.scope.address.title": "",
|
|
3833
|
-
"consent.scope.address.description": "",
|
|
3834
|
-
"consent.scope.phone.title": "",
|
|
3835
|
-
"consent.scope.phone.description": "",
|
|
4196
|
+
"consent.title": "Autorizar {party}",
|
|
4197
|
+
"consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
|
|
4198
|
+
"consent.scope.openid.title": "Identidade",
|
|
4199
|
+
"consent.scope.openid.description": "Permite que a aplica\xE7\xE3o verifique sua identidade. Isso \xE9 necess\xE1rio para a autentica\xE7\xE3o e uma experi\xEAncia de login confi\xE1vel.",
|
|
4200
|
+
"consent.scope.offline_access.title": "Acesso Offline",
|
|
4201
|
+
"consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
|
|
4202
|
+
"consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
|
|
4203
|
+
"consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
|
|
4204
|
+
"consent.scope.email.title": "Endere\xE7o de E-mail",
|
|
4205
|
+
"consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
|
|
4206
|
+
"consent.scope.address.title": "Endere\xE7o F\xEDsico",
|
|
4207
|
+
"consent.scope.address.description": "Acesse seu endere\xE7o postal.",
|
|
4208
|
+
"consent.scope.phone.title": "N\xFAmero de Telefone",
|
|
4209
|
+
"consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
|
|
3836
4210
|
"error.action.go-back": "",
|
|
3837
4211
|
"error.footer.copy": "",
|
|
3838
4212
|
"error.footer.text": "",
|
|
@@ -4053,7 +4427,9 @@ var sv_default = {
|
|
|
4053
4427
|
"input.placeholder": "Ange din {placeholder}",
|
|
4054
4428
|
"card.header.description.login": "Logga in med {identifierLabel}",
|
|
4055
4429
|
"card.header.description.registration": "Registrera dig med {identifierLabel}",
|
|
4056
|
-
"card.header.parts.code": "en kod skickad till
|
|
4430
|
+
"card.header.parts.code": "en kod skickad till dig",
|
|
4431
|
+
"card.header.parts.totp": "din autentiseringsapp",
|
|
4432
|
+
"card.header.parts.lookup_secret": "en s\xE4kerhetskopieringskod",
|
|
4057
4433
|
"card.header.parts.identifier-first": "din {identifierLabel}",
|
|
4058
4434
|
"card.header.parts.oidc": "en social leverant\xF6r",
|
|
4059
4435
|
"card.header.parts.passkey": "en Passkey",
|
|
@@ -4104,20 +4480,20 @@ var sv_default = {
|
|
|
4104
4480
|
"property.username": "anv\xE4ndarnamn",
|
|
4105
4481
|
"property.identifier": "identifier",
|
|
4106
4482
|
"property.code": "kod",
|
|
4107
|
-
"consent.title": "",
|
|
4108
|
-
"consent.subtitle": "",
|
|
4109
|
-
"consent.scope.openid.title": "",
|
|
4110
|
-
"consent.scope.openid.description": "",
|
|
4111
|
-
"consent.scope.offline_access.title": "",
|
|
4112
|
-
"consent.scope.offline_access.description": "",
|
|
4113
|
-
"consent.scope.profile.title": "",
|
|
4114
|
-
"consent.scope.profile.description": "",
|
|
4115
|
-
"consent.scope.email.title": "",
|
|
4116
|
-
"consent.scope.email.description": "",
|
|
4117
|
-
"consent.scope.address.title": "",
|
|
4118
|
-
"consent.scope.address.description": "",
|
|
4119
|
-
"consent.scope.phone.title": "",
|
|
4120
|
-
"consent.scope.phone.description": "",
|
|
4483
|
+
"consent.title": "Auktorisera {party}",
|
|
4484
|
+
"consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
|
|
4485
|
+
"consent.scope.openid.title": "Identitet",
|
|
4486
|
+
"consent.scope.openid.description": "G\xF6r det m\xF6jligt f\xF6r applikationen att verifiera din identitet. Detta kr\xE4vs f\xF6r autentisering och en p\xE5litlig inloggningsupplevelse.",
|
|
4487
|
+
"consent.scope.offline_access.title": "Offline-\xE5tkomst",
|
|
4488
|
+
"consent.scope.offline_access.description": "G\xF6r det m\xF6jligt f\xF6r denna applikation att h\xE5lla dig inloggad \xE4ven n\xE4r du inte aktivt anv\xE4nder den.",
|
|
4489
|
+
"consent.scope.profile.title": "Profilinformation",
|
|
4490
|
+
"consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
|
|
4491
|
+
"consent.scope.email.title": "E-postadress",
|
|
4492
|
+
"consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
|
|
4493
|
+
"consent.scope.address.title": "Fysisk adress",
|
|
4494
|
+
"consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
|
|
4495
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
4496
|
+
"consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
|
|
4121
4497
|
"error.action.go-back": "",
|
|
4122
4498
|
"error.footer.copy": "",
|
|
4123
4499
|
"error.footer.text": "",
|
|
@@ -4138,6 +4514,6 @@ var OryLocales = {
|
|
|
4138
4514
|
sv: sv_default
|
|
4139
4515
|
};
|
|
4140
4516
|
|
|
4141
|
-
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryConsentCard, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
|
|
4517
|
+
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryConfigurationProvider, OryConsentCard, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryConfiguration, useOryFlow };
|
|
4142
4518
|
//# sourceMappingURL=index.mjs.map
|
|
4143
4519
|
//# sourceMappingURL=index.mjs.map
|