@ory/elements-react 0.0.0-pr.e3d2b7e1 → 0.0.0-pr.f1435f4
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 +210 -0
- package/DEVELOPMENT.md +19 -4
- package/README.md +253 -4
- package/babel.config.js +10 -0
- package/dist/client/frontendClient.d.mts +5 -2
- package/dist/client/frontendClient.d.ts +5 -2
- package/dist/client/frontendClient.js +25 -2
- package/dist/client/frontendClient.js.map +1 -1
- package/dist/client/frontendClient.mjs +25 -2
- package/dist/client/frontendClient.mjs.map +1 -1
- package/dist/client/index.js +3 -3
- package/dist/index.d.mts +48 -5
- package/dist/index.d.ts +48 -5
- package/dist/index.js +807 -316
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +810 -320
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +175 -119
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +31 -5
- package/dist/theme/default/index.d.ts +31 -5
- package/dist/theme/default/index.js +4012 -670
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +4046 -629
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +22 -15
- package/tailwind/generated/default-variables.css +1 -1
- package/tsconfig.json +3 -2
- package/.storybook/global.css +0 -7
- package/.storybook/main.ts +0 -50
- package/.storybook/preview-head.html +0 -15
- package/.storybook/preview.tsx +0 -68
- package/.storybook/public/InterVariable.woff2 +0 -0
- package/.storybook/public/inter.css +0 -8
- package/.stub-responses/login/1fa/all-methods/initial-form.json +0 -245
- package/.stub-responses/login/1fa/all-methods/missing-email.json +0 -263
- package/.stub-responses/login/1fa/all-methods/wrong-credentials.json +0 -252
- package/.stub-responses/login/1fa/code/code-input.json +0 -135
- package/.stub-responses/login/1fa/code/initial-form.json +0 -173
- package/.stub-responses/login/1fa/code/invalid-account.json +0 -182
- package/.stub-responses/login/1fa/code/missing-email.json +0 -182
- package/.stub-responses/login/1fa/code/wrong-credentials.json +0 -124
- package/.stub-responses/login/1fa/none/initial-form.json +0 -33
- package/.stub-responses/login/1fa/oidc/credential-select-password.json +0 -120
- package/.stub-responses/login/1fa/oidc/credential-select.json +0 -81
- package/.stub-responses/login/1fa/oidc/initial-form.json +0 -279
- package/.stub-responses/login/1fa/passkey/initial-form.json +0 -122
- package/.stub-responses/login/1fa/password/initial-form.json +0 -154
- package/.stub-responses/login/1fa/password/missing-email.json +0 -172
- package/.stub-responses/login/1fa/password/wrong-credentials.json +0 -163
- package/.stub-responses/login/1fa/webauthn/initial-form.json +0 -76
- package/.stub-responses/login/1fa/webauthn/invalid-account.json +0 -83
- package/.stub-responses/login/1fa/webauthn/show-trigger.json +0 -105
- package/.stub-responses/recovery/disabled/initial-form.json +0 -9
- package/.stub-responses/recovery/none/initial-form.json +0 -9
- package/.stub-responses/registration/one-step/all-methods/initial-form.json +0 -334
- package/.stub-responses/registration/one-step/all-methods/missing-fields.json +0 -343
- package/.stub-responses/registration/one-step/disabled/initial-form.json +0 -10
- package/.stub-responses/registration/one-step/none/initial-form.json +0 -14
- package/.stub-responses/registration/one-step/oidc/initial-form.json +0 -338
- package/.stub-responses/registration/one-step/passkey/initial-form.json +0 -177
- package/.stub-responses/registration/one-step/password/initial-form.json +0 -154
- package/.stub-responses/registration/one-step/password/missing-fields.json +0 -172
- package/.stub-responses/registration/one-step/password/second-step.json +0 -164
- package/.stub-responses/registration/one-step/webauthn/initial-form.json +0 -185
- package/.stub-responses/registration/two-step/all-methods/enter-password.json +0 -242
- package/.stub-responses/registration/two-step/all-methods/initial-form.json +0 -180
- package/.stub-responses/registration/two-step/all-methods/missing-fields.json +0 -189
- package/.stub-responses/registration/two-step/all-methods/password-validation-error.json +0 -244
- package/.stub-responses/registration/two-step/password/enter-password.json +0 -108
- package/.stub-responses/registration/two-step/password/initial-form.json +0 -134
- package/.stub-responses/registration/two-step/password/missing-fields.json +0 -143
- package/.stub-responses/registration/two-step/password/password-validation-error.json +0 -110
- package/.stub-responses/settings/all-methods/change-password.json +0 -381
- package/.stub-responses/settings/all-methods/change-trait.json +0 -377
- package/.stub-responses/settings/all-methods/initial-form.json +0 -368
- package/.stub-responses/settings/oidc/with-provider.json +0 -229
- package/.stub-responses/settings/passkey/initial-form.json +0 -256
- package/.stub-responses/settings/webauthn/initial-form.json +0 -263
- package/.stub-responses/verification/disabled/initial-form.json +0 -9
- package/.stub-responses/verification/none/initial-form.json +0 -9
- package/stories/components/login/1fa/all.stories.ts +0 -46
- package/stories/components/login/1fa/code.stories.ts +0 -64
- package/stories/components/login/1fa/custom.stories.tsx +0 -74
- package/stories/components/login/1fa/none.stories.tsx +0 -28
- package/stories/components/login/1fa/oidc.stories.tsx +0 -140
- package/stories/components/login/1fa/passkey.stories.ts +0 -28
- package/stories/components/login/1fa/password.stories.ts +0 -46
- package/stories/components/login/1fa/webauthn.stories.ts +0 -46
- package/stories/components/registration/one-step/all-methods.stories.ts +0 -37
- package/stories/components/registration/one-step/password.stories.ts +0 -37
- package/stories/components/registration/one-step/webauthn.stories.ts +0 -28
- package/stories/components/registration/two-step/all-methods.stories.ts +0 -55
- package/stories/components/registration/two-step/password.stories.ts +0 -55
- package/stories/components/settings/all.stories.ts +0 -46
- package/stories/components/settings/oidc.stories.ts +0 -28
- package/stories/components/settings/passkey.stories.ts +0 -28
- package/stories/components/settings/webauthn.stories.ts +0 -28
- package/stories/pages/error.tsx +0 -29
- package/stories/utils.ts +0 -20
- package/storybook-static/InterVariable.woff2 +0 -0
- package/storybook-static/assets/Color-ERTF36HU-BdkKyVuV.js +0 -1
- package/storybook-static/assets/DocsRenderer-CFRXHY34-YqKt61zP.js +0 -595
- package/storybook-static/assets/all-methods.stories-B-rqPBX2.js +0 -11
- package/storybook-static/assets/all-methods.stories-CmMlhzsx.js +0 -21
- package/storybook-static/assets/all.stories-CtQ0yCQi.js +0 -16
- package/storybook-static/assets/all.stories-DgIVCzcZ.js +0 -16
- package/storybook-static/assets/chunk-H6MOWX77-DTQOW814.js +0 -1
- package/storybook-static/assets/code.stories-BbEryDcA.js +0 -26
- package/storybook-static/assets/custom.stories-DH2zHar9.js +0 -6
- package/storybook-static/assets/entry-preview-CcFGVifh.js +0 -10
- package/storybook-static/assets/entry-preview-docs-CyY-8bLe.js +0 -54
- package/storybook-static/assets/iframe-C5GAfuxh.js +0 -2
- package/storybook-static/assets/index-BVoBHvaS.js +0 -8
- package/storybook-static/assets/index-CfOt2XX2.js +0 -24
- package/storybook-static/assets/index-DPRSEdy-.js +0 -1
- package/storybook-static/assets/index-DrFu-skq.js +0 -6
- package/storybook-static/assets/index-FeUjBnvO.js +0 -1
- package/storybook-static/assets/index-uubelm5h.js +0 -9
- package/storybook-static/assets/initial-form-DWp_1F-f.js +0 -1
- package/storybook-static/assets/jsx-runtime-QvZ8i92b.js +0 -9
- package/storybook-static/assets/none.stories-TAeRhzd5.js +0 -6
- package/storybook-static/assets/oidc.stories-CniWBy7t.js +0 -58
- package/storybook-static/assets/oidc.stories-jhWzAyoQ.js +0 -6
- package/storybook-static/assets/passkey.stories-CBtjoVSN.js +0 -6
- package/storybook-static/assets/passkey.stories-CQU2Xw_t.js +0 -6
- package/storybook-static/assets/password.stories-0s6cDl0o.js +0 -11
- package/storybook-static/assets/password.stories-B2Wtckz_.js +0 -16
- package/storybook-static/assets/password.stories-DX0gkWjH.js +0 -21
- package/storybook-static/assets/preview-BBWR9nbA.js +0 -1
- package/storybook-static/assets/preview-BPAmP-pY.js +0 -2
- package/storybook-static/assets/preview-BWzBA1C2.js +0 -396
- package/storybook-static/assets/preview-BXtF2ySE.js +0 -234
- package/storybook-static/assets/preview-Cur_8nCX.css +0 -1
- package/storybook-static/assets/preview-D77C14du.js +0 -34
- package/storybook-static/assets/preview-DCjDUH0w.js +0 -27
- package/storybook-static/assets/preview-DFmD0pui.js +0 -1
- package/storybook-static/assets/preview-DGUiP6tS.js +0 -7
- package/storybook-static/assets/preview-aVwhiz9X.js +0 -1
- package/storybook-static/assets/react-18-CtsMCmcS.js +0 -1
- package/storybook-static/assets/settings-BqEFC2-V.css +0 -1
- package/storybook-static/assets/settings-Bx4osEmB.js +0 -2304
- package/storybook-static/assets/webauthn.stories-BzodmV0c.js +0 -6
- package/storybook-static/assets/webauthn.stories-DglGm7Ys.js +0 -6
- package/storybook-static/assets/webauthn.stories-G9E76Wjj.js +0 -16
- package/storybook-static/favicon.svg +0 -1
- package/storybook-static/iframe.html +0 -654
- package/storybook-static/index.html +0 -173
- package/storybook-static/index.json +0 -1
- package/storybook-static/inter.css +0 -8
- package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/preview-stats.json +0 -2344
- package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js +0 -12
- package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +0 -394
- package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js +0 -3
- package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/interactions-8/manager-bundle.js +0 -211
- package/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +0 -3
- package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
- package/storybook-static/sb-common-assets/favicon.svg +0 -1
- package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
- package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
- package/storybook-static/sb-manager/globals-module-info.js +0 -1006
- package/storybook-static/sb-manager/globals-runtime.js +0 -54400
- package/storybook-static/sb-manager/globals.js +0 -48
- package/storybook-static/sb-manager/runtime.js +0 -12089
- package/storybook-static/sb-preview/globals.js +0 -33
- package/storybook-static/sb-preview/runtime.js +0 -9498
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UiNodeGroupEnum, isUiNodeInputAttributes, FlowType,
|
|
2
|
-
import { createContext, useContext,
|
|
1
|
+
import { UiNodeGroupEnum, isUiNodeInputAttributes, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, FlowType, UiNodeInputAttributesTypeEnum, isUiNodeTextAttributes, handleContinueWith, handleFlowError, settingsUrl, isResponseError, loginUrl, recoveryUrl, verificationUrl, registrationUrl, Configuration, FrontendApi, instanceOfContinueWithRecoveryUi } from '@ory/client-fetch';
|
|
2
|
+
import { createContext, useContext, useState, useMemo, useReducer, useRef, 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({
|
|
@@ -34,10 +34,14 @@ function useGroupSorter() {
|
|
|
34
34
|
}
|
|
35
35
|
var defaultNodeOrder = [
|
|
36
36
|
"oidc",
|
|
37
|
+
"saml",
|
|
37
38
|
"identifier_first",
|
|
38
39
|
"default",
|
|
39
40
|
"profile",
|
|
40
41
|
"password",
|
|
42
|
+
// CAPTCHA is below password because otherwise the password input field
|
|
43
|
+
// would be above the captcha. Somehow, we sort the password sign up button somewhere else to be always at the bottom.
|
|
44
|
+
"captcha",
|
|
41
45
|
"passkey",
|
|
42
46
|
"code",
|
|
43
47
|
"webauthn"
|
|
@@ -46,6 +50,11 @@ function defaultNodeSorter(a, b) {
|
|
|
46
50
|
var _a, _b;
|
|
47
51
|
const aGroupWeight = (_a = defaultNodeOrder.indexOf(a.group)) != null ? _a : 999;
|
|
48
52
|
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
|
+
}
|
|
49
58
|
return aGroupWeight - bGroupWeight;
|
|
50
59
|
}
|
|
51
60
|
var defaultGroupOrder = [
|
|
@@ -83,22 +92,25 @@ function OryComponentProvider({
|
|
|
83
92
|
}
|
|
84
93
|
);
|
|
85
94
|
}
|
|
86
|
-
function isChoosingMethod(
|
|
87
|
-
return
|
|
95
|
+
function isChoosingMethod(flow) {
|
|
96
|
+
return flow.flow.ui.nodes.some(
|
|
88
97
|
(node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
|
|
89
|
-
) ||
|
|
98
|
+
) || flow.flow.ui.nodes.some(
|
|
90
99
|
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
91
|
-
);
|
|
100
|
+
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
92
101
|
}
|
|
93
|
-
function
|
|
94
|
-
return nodes.filter(
|
|
102
|
+
function removeSsoNodes(nodes) {
|
|
103
|
+
return nodes.filter(
|
|
104
|
+
(node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml)
|
|
105
|
+
);
|
|
95
106
|
}
|
|
96
107
|
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
97
|
-
var _a, _b, _c;
|
|
108
|
+
var _a, _b, _c, _d;
|
|
98
109
|
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
99
110
|
return [
|
|
100
111
|
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
101
|
-
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : []
|
|
112
|
+
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
113
|
+
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
102
114
|
].flat().filter(
|
|
103
115
|
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
104
116
|
).concat(selectedNodes);
|
|
@@ -170,25 +182,37 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
170
182
|
UiNodeGroupEnum.Default,
|
|
171
183
|
UiNodeGroupEnum.IdentifierFirst,
|
|
172
184
|
UiNodeGroupEnum.Profile,
|
|
185
|
+
UiNodeGroupEnum.Captcha,
|
|
173
186
|
...excludeAuthMethods
|
|
174
187
|
].includes(group)
|
|
175
188
|
);
|
|
176
189
|
}
|
|
177
|
-
function useNodesGroups(nodes) {
|
|
190
|
+
function useNodesGroups(nodes, { omit } = {}) {
|
|
178
191
|
const groupSorter = useGroupSorter();
|
|
179
192
|
const groups = useMemo(() => {
|
|
180
|
-
var _a;
|
|
193
|
+
var _a, _b;
|
|
181
194
|
const groups2 = {};
|
|
195
|
+
const groupRetained = {};
|
|
182
196
|
for (const node of nodes) {
|
|
183
|
-
if (node.type === "script") {
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
197
|
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
187
198
|
groupNodes.push(node);
|
|
188
199
|
groups2[node.group] = groupNodes;
|
|
200
|
+
if ((omit == null ? void 0 : omit.includes("script")) && isUiNodeScriptAttributes(node.attributes)) {
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
if ((omit == null ? void 0 : omit.includes("input_hidden")) && isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
|
|
207
|
+
}
|
|
208
|
+
const finalGroups = {};
|
|
209
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
210
|
+
if (count > 0) {
|
|
211
|
+
finalGroups[group] = groups2[group];
|
|
212
|
+
}
|
|
189
213
|
}
|
|
190
|
-
return
|
|
191
|
-
}, [nodes]);
|
|
214
|
+
return finalGroups;
|
|
215
|
+
}, [nodes, omit]);
|
|
192
216
|
const entries = useMemo(
|
|
193
217
|
() => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
|
|
194
218
|
[groups, groupSorter]
|
|
@@ -198,6 +222,9 @@ function useNodesGroups(nodes) {
|
|
|
198
222
|
entries
|
|
199
223
|
};
|
|
200
224
|
}
|
|
225
|
+
var findNode = (nodes, opt) => nodes.find((n) => {
|
|
226
|
+
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);
|
|
227
|
+
});
|
|
201
228
|
|
|
202
229
|
// src/context/form-state.ts
|
|
203
230
|
function findMethodWithMessage(nodes) {
|
|
@@ -219,9 +246,11 @@ function parseStateFromFlow(flow) {
|
|
|
219
246
|
return { current: "method_active", method: "code" };
|
|
220
247
|
} else if (methodWithMessage) {
|
|
221
248
|
return { current: "method_active", method: methodWithMessage.group };
|
|
222
|
-
} else if (flow.flow.active && !["default", "identifier_first", "oidc"].includes(
|
|
249
|
+
} else if (flow.flow.active && !["default", "identifier_first", "oidc", "saml"].includes(
|
|
250
|
+
flow.flow.active
|
|
251
|
+
)) {
|
|
223
252
|
return { current: "method_active", method: flow.flow.active };
|
|
224
|
-
} else if (isChoosingMethod(flow
|
|
253
|
+
} else if (isChoosingMethod(flow)) {
|
|
225
254
|
const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
|
|
226
255
|
if (authMethods.length === 1 && authMethods[0] !== "code") {
|
|
227
256
|
return { current: "method_active", method: authMethods[0] };
|
|
@@ -243,23 +272,32 @@ function parseStateFromFlow(flow) {
|
|
|
243
272
|
break;
|
|
244
273
|
case FlowType.Settings:
|
|
245
274
|
return { current: "settings" };
|
|
275
|
+
case FlowType.OAuth2Consent:
|
|
276
|
+
return { current: "method_active", method: "oauth2_consent" };
|
|
246
277
|
}
|
|
247
278
|
console.warn(
|
|
248
279
|
`[Ory/Elements React] Encountered an unknown form state on ${flow.flowType} flow with ID ${flow.flow.id}`
|
|
249
280
|
);
|
|
250
281
|
throw new Error("Unknown form state");
|
|
251
282
|
}
|
|
252
|
-
function formStateReducer(state, action) {
|
|
253
|
-
switch (action.type) {
|
|
254
|
-
case "action_flow_update":
|
|
255
|
-
return parseStateFromFlow(action.flow);
|
|
256
|
-
case "action_select_method":
|
|
257
|
-
return { current: "method_active", method: action.method };
|
|
258
|
-
}
|
|
259
|
-
return state;
|
|
260
|
-
}
|
|
261
283
|
function useFormStateReducer(flow) {
|
|
262
|
-
|
|
284
|
+
const action = parseStateFromFlow(flow);
|
|
285
|
+
const [selectedMethod, setSelectedMethod] = useState();
|
|
286
|
+
const formStateReducer = (state, action2) => {
|
|
287
|
+
switch (action2.type) {
|
|
288
|
+
case "action_flow_update": {
|
|
289
|
+
if (selectedMethod)
|
|
290
|
+
return { current: "method_active", method: selectedMethod };
|
|
291
|
+
return parseStateFromFlow(action2.flow);
|
|
292
|
+
}
|
|
293
|
+
case "action_select_method": {
|
|
294
|
+
setSelectedMethod(action2.method);
|
|
295
|
+
return { current: "method_active", method: action2.method };
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return state;
|
|
299
|
+
};
|
|
300
|
+
return useReducer(formStateReducer, action);
|
|
263
301
|
}
|
|
264
302
|
function useOryFlow() {
|
|
265
303
|
const ctx = useContext(OryFlowContext);
|
|
@@ -349,6 +387,22 @@ function computeDefaultValues(nodes) {
|
|
|
349
387
|
if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
|
|
350
388
|
return acc;
|
|
351
389
|
}
|
|
390
|
+
if (attrs.name.startsWith("grant_scope")) {
|
|
391
|
+
const scope = attrs.value;
|
|
392
|
+
if (Array.isArray(acc.grant_scope)) {
|
|
393
|
+
return {
|
|
394
|
+
...acc,
|
|
395
|
+
// We want to have all scopes accepted by default, so that the user has to actively uncheck them.
|
|
396
|
+
grant_scope: [...acc.grant_scope, scope]
|
|
397
|
+
};
|
|
398
|
+
} else if (!acc.grant_scope) {
|
|
399
|
+
return {
|
|
400
|
+
...acc,
|
|
401
|
+
grant_scope: [scope]
|
|
402
|
+
};
|
|
403
|
+
}
|
|
404
|
+
return acc;
|
|
405
|
+
}
|
|
352
406
|
return unrollTrait(
|
|
353
407
|
{
|
|
354
408
|
name: attrs.name,
|
|
@@ -780,7 +834,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
780
834
|
if ("lookup_secret_confirm" in submitData || "lookup_secret_reveal" in submitData || "lookup_secret_regenerate" in submitData || "lookup_secret_disable" in submitData) {
|
|
781
835
|
submitData.method = "lookup_secret";
|
|
782
836
|
}
|
|
783
|
-
if (submitData.method ===
|
|
837
|
+
if (submitData.method === UiNodeGroupEnum.Oidc && submitData.link && supportsSelectAccountPrompt.includes(submitData.link)) {
|
|
784
838
|
submitData.upstream_parameters = {
|
|
785
839
|
prompt: "select_account"
|
|
786
840
|
};
|
|
@@ -798,6 +852,19 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
798
852
|
});
|
|
799
853
|
break;
|
|
800
854
|
}
|
|
855
|
+
case FlowType.OAuth2Consent: {
|
|
856
|
+
const response = await fetch(flowContainer.flow.ui.action, {
|
|
857
|
+
method: "POST",
|
|
858
|
+
body: JSON.stringify(data),
|
|
859
|
+
headers: {
|
|
860
|
+
"Content-Type": "application/json"
|
|
861
|
+
}
|
|
862
|
+
});
|
|
863
|
+
const oauth2Success = await response.json();
|
|
864
|
+
if (oauth2Success.redirect_to && typeof oauth2Success.redirect_to === "string") {
|
|
865
|
+
onRedirect(oauth2Success.redirect_to);
|
|
866
|
+
}
|
|
867
|
+
}
|
|
801
868
|
}
|
|
802
869
|
if ("password" in data) {
|
|
803
870
|
methods.setValue("password", "");
|
|
@@ -812,11 +879,15 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
812
879
|
};
|
|
813
880
|
return onSubmit;
|
|
814
881
|
}
|
|
815
|
-
function OryForm({
|
|
816
|
-
|
|
882
|
+
function OryForm({
|
|
883
|
+
children,
|
|
884
|
+
onAfterSubmit,
|
|
885
|
+
"data-testid": dataTestId
|
|
886
|
+
}) {
|
|
817
887
|
const { Form } = useComponents();
|
|
818
888
|
const flowContainer = useOryFlow();
|
|
819
889
|
const methods = useFormContext();
|
|
890
|
+
const { Message } = useComponents();
|
|
820
891
|
const intl = useIntl();
|
|
821
892
|
const onSubmit = useOryFormSubmit(onAfterSubmit);
|
|
822
893
|
const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
|
|
@@ -831,15 +902,24 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
831
902
|
}
|
|
832
903
|
return false;
|
|
833
904
|
});
|
|
834
|
-
if (!hasMethods
|
|
835
|
-
|
|
836
|
-
id:
|
|
837
|
-
|
|
838
|
-
|
|
905
|
+
if (!hasMethods) {
|
|
906
|
+
const m = {
|
|
907
|
+
id: 5000002,
|
|
908
|
+
text: intl.formatMessage({
|
|
909
|
+
id: `identities.messages.${5000002}`,
|
|
910
|
+
defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
|
|
911
|
+
}),
|
|
912
|
+
type: "error"
|
|
913
|
+
};
|
|
914
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": dataTestId, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }) });
|
|
915
|
+
}
|
|
916
|
+
if (flowContainer.flowType === FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
917
|
+
methods.setValue("method", "code");
|
|
839
918
|
}
|
|
840
919
|
return /* @__PURE__ */ jsx(
|
|
841
920
|
Form.Root,
|
|
842
921
|
{
|
|
922
|
+
"data-testid": dataTestId,
|
|
843
923
|
action: flowContainer.flow.ui.action,
|
|
844
924
|
method: flowContainer.flow.ui.method,
|
|
845
925
|
onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
|
|
@@ -847,7 +927,15 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
847
927
|
}
|
|
848
928
|
);
|
|
849
929
|
}
|
|
850
|
-
var messageIdsToHide = [
|
|
930
|
+
var messageIdsToHide = [
|
|
931
|
+
1040009,
|
|
932
|
+
1060003,
|
|
933
|
+
1080003,
|
|
934
|
+
1010004,
|
|
935
|
+
1010014,
|
|
936
|
+
1040005,
|
|
937
|
+
1010016
|
|
938
|
+
];
|
|
851
939
|
function OryCardValidationMessages({ ...props }) {
|
|
852
940
|
var _a;
|
|
853
941
|
const { flow } = useOryFlow();
|
|
@@ -866,7 +954,7 @@ var NodeInput = ({
|
|
|
866
954
|
}) => {
|
|
867
955
|
var _a;
|
|
868
956
|
const { Node: Node2 } = useComponents();
|
|
869
|
-
const { setValue } = useFormContext();
|
|
957
|
+
const { setValue, watch } = useFormContext();
|
|
870
958
|
const {
|
|
871
959
|
onloadTrigger,
|
|
872
960
|
onclickTrigger,
|
|
@@ -878,15 +966,9 @@ var NodeInput = ({
|
|
|
878
966
|
} = attributes;
|
|
879
967
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
880
968
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
881
|
-
const setFormValue = () => {
|
|
882
|
-
if (attrs.value && !(isResendNode || isScreenSelectionNode)) {
|
|
883
|
-
setValue(attrs.name, attrs.value);
|
|
884
|
-
}
|
|
885
|
-
};
|
|
886
969
|
const hasRun = useRef(false);
|
|
887
970
|
useEffect(
|
|
888
971
|
() => {
|
|
889
|
-
setFormValue();
|
|
890
972
|
if (!hasRun.current && onloadTrigger) {
|
|
891
973
|
hasRun.current = true;
|
|
892
974
|
triggerToWindowCall(onloadTrigger);
|
|
@@ -897,13 +979,25 @@ var NodeInput = ({
|
|
|
897
979
|
[]
|
|
898
980
|
);
|
|
899
981
|
const handleClick = () => {
|
|
900
|
-
setFormValue();
|
|
901
982
|
if (onclickTrigger) {
|
|
902
983
|
triggerToWindowCall(onclickTrigger);
|
|
903
984
|
}
|
|
904
985
|
};
|
|
905
|
-
const isSocial = (attrs.name === "provider" || attrs.name === "link") && node.group ===
|
|
986
|
+
const isSocial = (attrs.name === "provider" || attrs.name === "link") && (node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml);
|
|
906
987
|
const isPinCodeInput = attrs.name === "code" && node.group === "code" || attrs.name === "totp_code" && node.group === "totp";
|
|
988
|
+
const handleScopeChange = (checked) => {
|
|
989
|
+
const scopes = watch("grant_scope");
|
|
990
|
+
if (Array.isArray(scopes)) {
|
|
991
|
+
if (checked) {
|
|
992
|
+
setValue("grant_scope", Array.from(/* @__PURE__ */ new Set([...scopes, attrs.value])));
|
|
993
|
+
} else {
|
|
994
|
+
setValue(
|
|
995
|
+
"grant_scope",
|
|
996
|
+
scopes.filter((scope) => scope !== attrs.value)
|
|
997
|
+
);
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
};
|
|
907
1001
|
switch (attributes.type) {
|
|
908
1002
|
case UiNodeInputAttributesTypeEnum.Submit:
|
|
909
1003
|
case UiNodeInputAttributesTypeEnum.Button:
|
|
@@ -913,6 +1007,9 @@ var NodeInput = ({
|
|
|
913
1007
|
if (isResendNode || isScreenSelectionNode) {
|
|
914
1008
|
return null;
|
|
915
1009
|
}
|
|
1010
|
+
if (node.group === "oauth2_consent") {
|
|
1011
|
+
return null;
|
|
1012
|
+
}
|
|
916
1013
|
return /* @__PURE__ */ jsx(
|
|
917
1014
|
Node2.Label,
|
|
918
1015
|
{
|
|
@@ -924,6 +1021,21 @@ var NodeInput = ({
|
|
|
924
1021
|
case UiNodeInputAttributesTypeEnum.DatetimeLocal:
|
|
925
1022
|
throw new Error("Not implemented");
|
|
926
1023
|
case UiNodeInputAttributesTypeEnum.Checkbox:
|
|
1024
|
+
if (node.group === "oauth2_consent" && node.attributes.node_type === "input") {
|
|
1025
|
+
switch (node.attributes.name) {
|
|
1026
|
+
case "grant_scope":
|
|
1027
|
+
return /* @__PURE__ */ jsx(
|
|
1028
|
+
Node2.ConsentScopeCheckbox,
|
|
1029
|
+
{
|
|
1030
|
+
attributes: attrs,
|
|
1031
|
+
node,
|
|
1032
|
+
onCheckedChange: handleScopeChange
|
|
1033
|
+
}
|
|
1034
|
+
);
|
|
1035
|
+
default:
|
|
1036
|
+
return null;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
927
1039
|
return /* @__PURE__ */ jsx(
|
|
928
1040
|
Node2.Label,
|
|
929
1041
|
{
|
|
@@ -950,6 +1062,9 @@ var NodeInput = ({
|
|
|
950
1062
|
};
|
|
951
1063
|
var Node = ({ node, onClick }) => {
|
|
952
1064
|
const { Node: Node2 } = useComponents();
|
|
1065
|
+
if (node.group === UiNodeGroupEnum.Captcha) {
|
|
1066
|
+
return /* @__PURE__ */ jsx(Node2.Captcha, { node });
|
|
1067
|
+
}
|
|
953
1068
|
if (isUiNodeImageAttributes(node.attributes)) {
|
|
954
1069
|
return /* @__PURE__ */ jsx(Node2.Image, { node, attributes: node.attributes });
|
|
955
1070
|
} else if (isUiNodeTextAttributes(node.attributes)) {
|
|
@@ -982,7 +1097,9 @@ function OryFormOidcButtons() {
|
|
|
982
1097
|
flow: { ui }
|
|
983
1098
|
} = useOryFlow();
|
|
984
1099
|
const { setValue } = useFormContext();
|
|
985
|
-
const filteredNodes = ui.nodes.filter(
|
|
1100
|
+
const filteredNodes = ui.nodes.filter(
|
|
1101
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1102
|
+
);
|
|
986
1103
|
const { Form, Node: Node2 } = useComponents();
|
|
987
1104
|
if (filteredNodes.length === 0) {
|
|
988
1105
|
return null;
|
|
@@ -997,7 +1114,7 @@ function OryFormOidcButtons() {
|
|
|
997
1114
|
"provider",
|
|
998
1115
|
node.attributes.value
|
|
999
1116
|
);
|
|
1000
|
-
setValue("method",
|
|
1117
|
+
setValue("method", node.group);
|
|
1001
1118
|
}
|
|
1002
1119
|
},
|
|
1003
1120
|
k
|
|
@@ -1007,39 +1124,75 @@ function OryFormSocialButtonsForm() {
|
|
|
1007
1124
|
const {
|
|
1008
1125
|
flow: { ui }
|
|
1009
1126
|
} = useOryFlow();
|
|
1010
|
-
const filteredNodes = ui.nodes.filter(
|
|
1127
|
+
const filteredNodes = ui.nodes.filter(
|
|
1128
|
+
(node) => node.group === UiNodeGroupEnum.Saml || node.group === UiNodeGroupEnum.Oidc
|
|
1129
|
+
);
|
|
1011
1130
|
if (filteredNodes.length === 0) {
|
|
1012
1131
|
return null;
|
|
1013
1132
|
}
|
|
1014
|
-
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1133
|
+
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1015
1134
|
}
|
|
1016
1135
|
function isUINodeGroupEnum(method) {
|
|
1017
1136
|
return Object.values(UiNodeGroupEnum).includes(method);
|
|
1018
1137
|
}
|
|
1019
1138
|
function OryTwoStepCard() {
|
|
1020
|
-
|
|
1021
|
-
flow: { ui },
|
|
1022
|
-
flowType,
|
|
1023
|
-
formState,
|
|
1024
|
-
dispatchFormState
|
|
1025
|
-
} = useOryFlow();
|
|
1139
|
+
var _a, _b, _c, _d;
|
|
1026
1140
|
const { Form, Card } = useComponents();
|
|
1141
|
+
const { flow, flowType, formState, dispatchFormState } = useOryFlow();
|
|
1142
|
+
const { ui } = flow;
|
|
1027
1143
|
const nodeSorter = useNodeSorter();
|
|
1028
1144
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1029
|
-
const
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
(group) =>
|
|
1145
|
+
const groupsToShow = useNodesGroups(ui.nodes, {
|
|
1146
|
+
// We only want to render groups that have visible elements.
|
|
1147
|
+
omit: ["script", "input_hidden"]
|
|
1148
|
+
});
|
|
1149
|
+
const authMethodBlocks = Object.fromEntries(
|
|
1150
|
+
Object.values(UiNodeGroupEnum).filter((group) => {
|
|
1151
|
+
var _a2;
|
|
1152
|
+
return (_a2 = groupsToShow.groups[group]) == null ? void 0 : _a2.length;
|
|
1153
|
+
}).filter(
|
|
1154
|
+
(group) => ![
|
|
1155
|
+
UiNodeGroupEnum.Oidc,
|
|
1156
|
+
UiNodeGroupEnum.Saml,
|
|
1157
|
+
UiNodeGroupEnum.Default,
|
|
1158
|
+
UiNodeGroupEnum.IdentifierFirst,
|
|
1159
|
+
UiNodeGroupEnum.Profile,
|
|
1160
|
+
UiNodeGroupEnum.Captcha
|
|
1161
|
+
].includes(group)
|
|
1162
|
+
).map((g) => [g, {}])
|
|
1163
|
+
);
|
|
1164
|
+
const authMethodAdditionalNodes = ui.nodes.filter(
|
|
1165
|
+
({ group }) => [
|
|
1035
1166
|
UiNodeGroupEnum.Oidc,
|
|
1167
|
+
UiNodeGroupEnum.Saml,
|
|
1036
1168
|
UiNodeGroupEnum.Default,
|
|
1037
1169
|
UiNodeGroupEnum.IdentifierFirst,
|
|
1038
|
-
UiNodeGroupEnum.Profile
|
|
1170
|
+
UiNodeGroupEnum.Profile,
|
|
1171
|
+
UiNodeGroupEnum.Captcha
|
|
1039
1172
|
].includes(group)
|
|
1040
1173
|
);
|
|
1041
|
-
|
|
1042
|
-
|
|
1174
|
+
if (UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1175
|
+
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1176
|
+
group: "identifier_first",
|
|
1177
|
+
node_type: "input",
|
|
1178
|
+
name: "identifier"
|
|
1179
|
+
})) == null ? void 0 : _a.attributes) == null ? void 0 : _b.value;
|
|
1180
|
+
identifier || (identifier = (_d = (_c = findNode(ui.nodes, {
|
|
1181
|
+
group: "code",
|
|
1182
|
+
node_type: "input",
|
|
1183
|
+
name: "address"
|
|
1184
|
+
})) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
|
|
1185
|
+
if (identifier) {
|
|
1186
|
+
authMethodBlocks[UiNodeGroupEnum.Code] = {
|
|
1187
|
+
title: {
|
|
1188
|
+
id: "identities.messages.1010023",
|
|
1189
|
+
values: { address: identifier }
|
|
1190
|
+
}
|
|
1191
|
+
};
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
const nonSsoNodes = removeSsoNodes(ui.nodes);
|
|
1195
|
+
const finalNodes = formState.current === "method_active" ? getFinalNodes(groupsToShow.groups, formState.method) : [];
|
|
1043
1196
|
const handleAfterFormSubmit = (method) => {
|
|
1044
1197
|
if (typeof method !== "string" || !isUINodeGroupEnum(method)) {
|
|
1045
1198
|
return;
|
|
@@ -1051,60 +1204,123 @@ function OryTwoStepCard() {
|
|
|
1051
1204
|
});
|
|
1052
1205
|
}
|
|
1053
1206
|
};
|
|
1054
|
-
const
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1207
|
+
const hasSso = ui.nodes.some(
|
|
1208
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1209
|
+
);
|
|
1210
|
+
const showSso = !(formState.current === "method_active" && !(formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml));
|
|
1211
|
+
const showSsoDivider = hasSso && nonSsoNodes.some((n) => {
|
|
1212
|
+
if (isUiNodeInputAttributes(n.attributes)) {
|
|
1213
|
+
return n.attributes.type !== UiNodeInputAttributesTypeEnum.Hidden;
|
|
1214
|
+
} else if (isUiNodeScriptAttributes(n.attributes)) {
|
|
1215
|
+
return false;
|
|
1216
|
+
}
|
|
1217
|
+
return true;
|
|
1218
|
+
});
|
|
1219
|
+
switch (formState.current) {
|
|
1220
|
+
case "provide_identifier":
|
|
1221
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1222
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1223
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1224
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1225
|
+
showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1226
|
+
/* @__PURE__ */ jsx(
|
|
1227
|
+
OryForm,
|
|
1228
|
+
{
|
|
1229
|
+
"data-testid": `ory/form/methods/local`,
|
|
1230
|
+
onAfterSubmit: handleAfterFormSubmit,
|
|
1231
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1232
|
+
showSsoDivider && /* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1233
|
+
nonSsoNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1234
|
+
] })
|
|
1235
|
+
}
|
|
1236
|
+
)
|
|
1237
|
+
] }),
|
|
1238
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1239
|
+
] });
|
|
1240
|
+
case "select_method":
|
|
1241
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1242
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1243
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1244
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1245
|
+
showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1246
|
+
Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsx(
|
|
1247
|
+
OryForm,
|
|
1248
|
+
{
|
|
1249
|
+
"data-testid": `ory/form/methods/local`,
|
|
1250
|
+
onAfterSubmit: handleAfterFormSubmit,
|
|
1251
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1252
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1253
|
+
/* @__PURE__ */ jsx(
|
|
1254
|
+
AuthMethodList,
|
|
1255
|
+
{
|
|
1256
|
+
options: authMethodBlocks,
|
|
1257
|
+
setSelectedGroup: (group) => dispatchFormState({
|
|
1258
|
+
type: "action_select_method",
|
|
1259
|
+
method: group
|
|
1260
|
+
})
|
|
1261
|
+
}
|
|
1262
|
+
),
|
|
1263
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1264
|
+
] })
|
|
1265
|
+
}
|
|
1266
|
+
)
|
|
1084
1267
|
] }),
|
|
1085
1268
|
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1086
|
-
] })
|
|
1087
|
-
|
|
1269
|
+
] });
|
|
1270
|
+
case "method_active":
|
|
1271
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1272
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1273
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1274
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1275
|
+
showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1276
|
+
/* @__PURE__ */ jsx(
|
|
1277
|
+
OryForm,
|
|
1278
|
+
{
|
|
1279
|
+
"data-testid": `ory/form/methods/local`,
|
|
1280
|
+
onAfterSubmit: handleAfterFormSubmit,
|
|
1281
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1282
|
+
ui.nodes.filter(
|
|
1283
|
+
(n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Captcha || n.group === UiNodeGroupEnum.Default || n.group === UiNodeGroupEnum.Profile
|
|
1284
|
+
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1285
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1286
|
+
] })
|
|
1287
|
+
}
|
|
1288
|
+
)
|
|
1289
|
+
] }),
|
|
1290
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1291
|
+
] });
|
|
1292
|
+
}
|
|
1293
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1294
|
+
"unknown form state: ",
|
|
1295
|
+
formState.current
|
|
1088
1296
|
] });
|
|
1089
1297
|
}
|
|
1090
1298
|
function AuthMethodList({ options, setSelectedGroup }) {
|
|
1091
1299
|
const { Card } = useComponents();
|
|
1092
|
-
const { setValue } = useFormContext();
|
|
1093
|
-
|
|
1300
|
+
const { setValue, getValues } = useFormContext();
|
|
1301
|
+
if (Object.entries(options).length === 0) {
|
|
1302
|
+
return null;
|
|
1303
|
+
}
|
|
1304
|
+
const handleClick = (group, options2) => {
|
|
1305
|
+
var _a, _b, _c, _d;
|
|
1094
1306
|
if (isGroupImmediateSubmit(group)) {
|
|
1307
|
+
if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
|
|
1308
|
+
setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
|
|
1309
|
+
}
|
|
1095
1310
|
setValue("method", group);
|
|
1096
1311
|
} else {
|
|
1097
1312
|
setSelectedGroup(group);
|
|
1098
1313
|
}
|
|
1099
1314
|
};
|
|
1100
|
-
return options.map((
|
|
1315
|
+
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1101
1316
|
Card.AuthMethodListItem,
|
|
1102
1317
|
{
|
|
1103
|
-
group
|
|
1104
|
-
|
|
1318
|
+
group,
|
|
1319
|
+
title: options2.title,
|
|
1320
|
+
onClick: () => handleClick(group, options2)
|
|
1105
1321
|
},
|
|
1106
|
-
|
|
1107
|
-
));
|
|
1322
|
+
group
|
|
1323
|
+
)) });
|
|
1108
1324
|
}
|
|
1109
1325
|
function OryFormGroups({ groups }) {
|
|
1110
1326
|
const {
|
|
@@ -1144,14 +1360,29 @@ function OryFormSectionInner({
|
|
|
1144
1360
|
}
|
|
1145
1361
|
);
|
|
1146
1362
|
}
|
|
1363
|
+
function OryConsentCard() {
|
|
1364
|
+
const { Form, Card } = useComponents();
|
|
1365
|
+
const flow = useOryFlow();
|
|
1366
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1367
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1368
|
+
/* @__PURE__ */ jsx(OryCardContent, { children: /* @__PURE__ */ jsxs(OryForm, { children: [
|
|
1369
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1370
|
+
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)) }),
|
|
1371
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1372
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1373
|
+
] }) })
|
|
1374
|
+
] });
|
|
1375
|
+
}
|
|
1147
1376
|
function OryFormGroupDivider() {
|
|
1148
1377
|
const { Card } = useComponents();
|
|
1149
1378
|
const {
|
|
1150
1379
|
flow: { ui }
|
|
1151
1380
|
} = useOryFlow();
|
|
1152
|
-
const filteredNodes = ui.nodes.filter(
|
|
1381
|
+
const filteredNodes = ui.nodes.filter(
|
|
1382
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1383
|
+
);
|
|
1153
1384
|
const otherNodes = ui.nodes.filter(
|
|
1154
|
-
(node) => node.group
|
|
1385
|
+
(node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml) && node.group !== "default"
|
|
1155
1386
|
);
|
|
1156
1387
|
if (filteredNodes.length > 0 && otherNodes.length > 0) {
|
|
1157
1388
|
return /* @__PURE__ */ jsx(Card.Divider, {});
|
|
@@ -1177,7 +1408,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1177
1408
|
onClick: () => {
|
|
1178
1409
|
if (node.attributes.node_type === "input") {
|
|
1179
1410
|
setValue("link", node.attributes.value);
|
|
1180
|
-
setValue("method",
|
|
1411
|
+
setValue("method", node.group);
|
|
1181
1412
|
}
|
|
1182
1413
|
}
|
|
1183
1414
|
}));
|
|
@@ -1186,7 +1417,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1186
1417
|
onClick: () => {
|
|
1187
1418
|
if (node.attributes.node_type === "input") {
|
|
1188
1419
|
setValue("unlink", node.attributes.value);
|
|
1189
|
-
setValue("method",
|
|
1420
|
+
setValue("method", node.group);
|
|
1190
1421
|
}
|
|
1191
1422
|
}
|
|
1192
1423
|
}));
|
|
@@ -1495,16 +1726,19 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1495
1726
|
const { Card } = useComponents();
|
|
1496
1727
|
const intl = useIntl();
|
|
1497
1728
|
const { flow } = useOryFlow();
|
|
1498
|
-
const
|
|
1729
|
+
const groupedNodes = useNodesGroups(flow.ui.nodes, {
|
|
1730
|
+
// Script nodes are already handled by the parent component.
|
|
1731
|
+
omit: ["script"]
|
|
1732
|
+
});
|
|
1499
1733
|
if (group === UiNodeGroupEnum.Totp) {
|
|
1500
1734
|
return /* @__PURE__ */ jsxs(
|
|
1501
1735
|
OryFormSection,
|
|
1502
1736
|
{
|
|
1503
|
-
nodes:
|
|
1737
|
+
nodes: groupedNodes.groups.totp,
|
|
1504
1738
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1505
1739
|
children: [
|
|
1506
|
-
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a =
|
|
1507
|
-
(_b =
|
|
1740
|
+
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
1741
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1508
1742
|
]
|
|
1509
1743
|
}
|
|
1510
1744
|
);
|
|
@@ -1513,16 +1747,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1513
1747
|
return /* @__PURE__ */ jsxs(
|
|
1514
1748
|
OryFormSection,
|
|
1515
1749
|
{
|
|
1516
|
-
nodes:
|
|
1750
|
+
nodes: groupedNodes.groups.lookup_secret,
|
|
1517
1751
|
"data-testid": "ory/screen/settings/group/lookup_secret",
|
|
1518
1752
|
children: [
|
|
1519
1753
|
/* @__PURE__ */ jsx(
|
|
1520
1754
|
OrySettingsRecoveryCodes,
|
|
1521
1755
|
{
|
|
1522
|
-
nodes: (_c =
|
|
1756
|
+
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1523
1757
|
}
|
|
1524
1758
|
),
|
|
1525
|
-
(_d =
|
|
1759
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1526
1760
|
]
|
|
1527
1761
|
}
|
|
1528
1762
|
);
|
|
@@ -1531,11 +1765,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1531
1765
|
return /* @__PURE__ */ jsxs(
|
|
1532
1766
|
OryFormSection,
|
|
1533
1767
|
{
|
|
1534
|
-
nodes:
|
|
1768
|
+
nodes: groupedNodes.groups.oidc,
|
|
1535
1769
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1536
1770
|
children: [
|
|
1537
|
-
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e =
|
|
1538
|
-
(_f =
|
|
1771
|
+
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
1772
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1539
1773
|
]
|
|
1540
1774
|
}
|
|
1541
1775
|
);
|
|
@@ -1544,11 +1778,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1544
1778
|
return /* @__PURE__ */ jsxs(
|
|
1545
1779
|
OryFormSection,
|
|
1546
1780
|
{
|
|
1547
|
-
nodes:
|
|
1781
|
+
nodes: groupedNodes.groups.webauthn,
|
|
1548
1782
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1549
1783
|
children: [
|
|
1550
|
-
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g =
|
|
1551
|
-
(_h =
|
|
1784
|
+
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
1785
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1552
1786
|
]
|
|
1553
1787
|
}
|
|
1554
1788
|
);
|
|
@@ -1557,11 +1791,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1557
1791
|
return /* @__PURE__ */ jsxs(
|
|
1558
1792
|
OryFormSection,
|
|
1559
1793
|
{
|
|
1560
|
-
nodes:
|
|
1794
|
+
nodes: groupedNodes.groups.passkey,
|
|
1561
1795
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1562
1796
|
children: [
|
|
1563
|
-
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i =
|
|
1564
|
-
(_j =
|
|
1797
|
+
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
1798
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1565
1799
|
]
|
|
1566
1800
|
}
|
|
1567
1801
|
);
|
|
@@ -1582,7 +1816,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1582
1816
|
id: `settings.${group}.description`
|
|
1583
1817
|
}),
|
|
1584
1818
|
children: [
|
|
1585
|
-
(_k =
|
|
1819
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1586
1820
|
nodes.filter(
|
|
1587
1821
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1588
1822
|
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
@@ -1596,16 +1830,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1596
1830
|
}
|
|
1597
1831
|
);
|
|
1598
1832
|
}
|
|
1599
|
-
var
|
|
1600
|
-
(node) =>
|
|
1833
|
+
var onlyScriptNodes = (nodes) => nodes.filter(
|
|
1834
|
+
(node) => isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
|
|
1601
1835
|
);
|
|
1602
1836
|
function OrySettingsCard() {
|
|
1603
1837
|
const { flow } = useOryFlow();
|
|
1604
|
-
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
1605
|
-
const
|
|
1838
|
+
const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
|
|
1839
|
+
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1606
1840
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1607
1841
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1608
|
-
|
|
1842
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n })),
|
|
1609
1843
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1610
1844
|
if (group === UiNodeGroupEnum.Default) {
|
|
1611
1845
|
return null;
|
|
@@ -1701,9 +1935,9 @@ var en_default = {
|
|
|
1701
1935
|
"identities.messages.1010005": "Verify",
|
|
1702
1936
|
"identities.messages.1010006": "Authentication code",
|
|
1703
1937
|
"identities.messages.1010007": "Backup recovery code",
|
|
1704
|
-
"identities.messages.1010008": "
|
|
1705
|
-
"identities.messages.1010009": "
|
|
1706
|
-
"identities.messages.1010010": "
|
|
1938
|
+
"identities.messages.1010008": "Continue with hardware key",
|
|
1939
|
+
"identities.messages.1010009": "Continue",
|
|
1940
|
+
"identities.messages.1010010": "Continue",
|
|
1707
1941
|
"identities.messages.1010011": "Sign in with hardware key",
|
|
1708
1942
|
"identities.messages.1010012": "Prepare your WebAuthn device (e.g. security key, biometrics scanner, ...) and press continue.",
|
|
1709
1943
|
"identities.messages.1010013": "Continue",
|
|
@@ -1840,9 +2074,17 @@ var en_default = {
|
|
|
1840
2074
|
"login.subtitle-oauth2": "To authenticate {clientName}",
|
|
1841
2075
|
"login.title": "Sign in",
|
|
1842
2076
|
"login.subtitle": "Sign in with {parts}",
|
|
1843
|
-
"login.title-aal2": "
|
|
2077
|
+
"login.title-aal2": "Second factor authentication",
|
|
2078
|
+
"login.subtitle-aal2": "Choose a way to complete your second factor authentication",
|
|
2079
|
+
"login.code.subtitle": "A verification code will be sent by email",
|
|
2080
|
+
"login.webauthn.subtitle": "Please prepare your WebAuthN device",
|
|
2081
|
+
"login.totp.subtitle": "Please enter the code generated by your Authenticator App",
|
|
2082
|
+
"login.lookup_secret.subtitle": "Please enter one of your 8-digit backup recovery codes",
|
|
1844
2083
|
"login.title-refresh": "Reauthenticate",
|
|
1845
2084
|
"login.subtitle-refresh": "Confirm your identity with {parts}",
|
|
2085
|
+
"login.2fa.go-back": "Something isn't working?",
|
|
2086
|
+
"login.2fa.go-back.link": "Go back",
|
|
2087
|
+
"login.2fa.method.go-back": "Choose another method",
|
|
1846
2088
|
"logout.accept-button": "Yes",
|
|
1847
2089
|
"logout.reject-button": "No",
|
|
1848
2090
|
"logout.title": "Do you wish to log out?",
|
|
@@ -1891,10 +2133,14 @@ var en_default = {
|
|
|
1891
2133
|
"two-step.password.description": "Enter your password associated with your account",
|
|
1892
2134
|
"two-step.code.title": "Email code",
|
|
1893
2135
|
"two-step.code.description": "A verification code will be sent to your email",
|
|
1894
|
-
"two-step.webauthn.title": "Security
|
|
2136
|
+
"two-step.webauthn.title": "Security key",
|
|
1895
2137
|
"two-step.webauthn.description": "Use your security key to authenticate",
|
|
1896
2138
|
"two-step.passkey.title": "Passkey (recommended)",
|
|
1897
2139
|
"two-step.passkey.description": "Use your device's for fingerprint or face recognition",
|
|
2140
|
+
"two-step.totp.title": "Use your Authenticator App (TOTP)",
|
|
2141
|
+
"two-step.totp.description": "Use a 6-digit one-time code from your authenticator app",
|
|
2142
|
+
"two-step.lookup_secret.title": "Backup recovery code",
|
|
2143
|
+
"two-step.lookup_secret.description": "Use up one of your 8-digit backup codes to authenticate",
|
|
1898
2144
|
"identities.messages.1010020": "",
|
|
1899
2145
|
"input.placeholder": "Enter your {placeholder}",
|
|
1900
2146
|
"card.header.parts.oidc": "a social provider",
|
|
@@ -1928,7 +2174,27 @@ var en_default = {
|
|
|
1928
2174
|
"property.phone": "phone",
|
|
1929
2175
|
"property.username": "username",
|
|
1930
2176
|
"property.identifier": "identifier",
|
|
1931
|
-
"property.code": "code"
|
|
2177
|
+
"property.code": "code",
|
|
2178
|
+
"consent.title": "Authorize {party}",
|
|
2179
|
+
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
|
|
2180
|
+
"consent.scope.openid.title": "Identity",
|
|
2181
|
+
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
|
|
2182
|
+
"consent.scope.offline_access.title": "Offline Access",
|
|
2183
|
+
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
|
|
2184
|
+
"consent.scope.profile.title": "Profile Information",
|
|
2185
|
+
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
|
|
2186
|
+
"consent.scope.email.title": "Email Address",
|
|
2187
|
+
"consent.scope.email.description": "Retrieve your email address and its verification status.",
|
|
2188
|
+
"consent.scope.address.title": "Physical Address",
|
|
2189
|
+
"consent.scope.address.description": "Access your postal address.",
|
|
2190
|
+
"consent.scope.phone.title": "Phone Number",
|
|
2191
|
+
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
|
|
2192
|
+
"error.title.what-happened": "What happened?",
|
|
2193
|
+
"error.title.what-can-i-do": "What can I do?",
|
|
2194
|
+
"error.instructions": "Please try again in a few minutes or contact the website operator.",
|
|
2195
|
+
"error.footer.text": "When reporting this error, please include the following information:",
|
|
2196
|
+
"error.footer.copy": "Copy",
|
|
2197
|
+
"error.action.go-back": "Go back"
|
|
1932
2198
|
};
|
|
1933
2199
|
|
|
1934
2200
|
// src/locales/de.json
|
|
@@ -1954,9 +2220,9 @@ var de_default = {
|
|
|
1954
2220
|
"identities.messages.1010005": "Verifizieren",
|
|
1955
2221
|
"identities.messages.1010006": "Authentifizierungscode",
|
|
1956
2222
|
"identities.messages.1010007": "Backup-Wiederherstellungscode",
|
|
1957
|
-
"identities.messages.1010008": "Sicherheitsschl\xFCssel
|
|
1958
|
-
"identities.messages.1010009": "
|
|
1959
|
-
"identities.messages.1010010": "
|
|
2223
|
+
"identities.messages.1010008": "Mit Sicherheitsschl\xFCssel fortfahren",
|
|
2224
|
+
"identities.messages.1010009": "Weiter",
|
|
2225
|
+
"identities.messages.1010010": "Weiter",
|
|
1960
2226
|
"identities.messages.1010011": "Mit Sicherheitsschl\xFCssel fortfahren",
|
|
1961
2227
|
"identities.messages.1010012": "Bereiten Sie Ihr WebAuthn-Ger\xE4t vor (z. B. Sicherheitsschl\xFCssel, biometrischer Scanner, ...) und dr\xFCcken Sie auf Weiter.",
|
|
1962
2228
|
"identities.messages.1010013": "Weiter",
|
|
@@ -2072,8 +2338,16 @@ var de_default = {
|
|
|
2072
2338
|
"login.registration-label": "Sie haben noch kein Konto?",
|
|
2073
2339
|
"login.subtitle-oauth2": "Zur Authentifizierung bei {clientName}",
|
|
2074
2340
|
"login.title": "Anmelden",
|
|
2075
|
-
"login.title-aal2": "
|
|
2341
|
+
"login.title-aal2": "Zweitfaktor-Authentifizierung",
|
|
2342
|
+
"login.subtitle-aal2": "W\xE4hlen Sie eine Methode zur Best\xE4tigung Ihrer Zwei-Faktor-Authentifizierung",
|
|
2343
|
+
"login.code.subtitle": "Ein Best\xE4tigungscode wird per E-Mail gesendet",
|
|
2344
|
+
"login.webauthn.subtitle": "Bitte bereiten Sie Ihr WebAuthN-Ger\xE4t vor",
|
|
2345
|
+
"login.totp.subtitle": "Bitte geben Sie den Code aus Ihrer Authenticator-App ein",
|
|
2346
|
+
"login.lookup_secret.subtitle": "Bitte geben Sie einen Ihrer 8-stelligen Backup-Wiederherstellungscodes ein",
|
|
2076
2347
|
"login.title-refresh": "Best\xE4tigen Sie, dass Sie es sind",
|
|
2348
|
+
"login.2fa.go-back": "Funktioniert etwas nicht?",
|
|
2349
|
+
"login.2fa.go-back.link": "Zur\xFCck",
|
|
2350
|
+
"login.2fa.method.go-back": "Eine andere Methode w\xE4hlen",
|
|
2077
2351
|
"logout.accept-button": "Ja",
|
|
2078
2352
|
"logout.reject-button": "Nein",
|
|
2079
2353
|
"logout.title": "M\xF6chten Sie sich abmelden?",
|
|
@@ -2091,11 +2365,15 @@ var de_default = {
|
|
|
2091
2365
|
"two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
|
|
2092
2366
|
"two-step.code.title": "E-Mail-Code",
|
|
2093
2367
|
"two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
|
|
2094
|
-
"two-step.passkey.title": "
|
|
2368
|
+
"two-step.passkey.title": "Passkey (empfohlen)",
|
|
2095
2369
|
"two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
|
|
2096
2370
|
"two-step.password.title": "Passwort",
|
|
2097
|
-
"two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
|
|
2098
2371
|
"two-step.webauthn.title": "Sicherheitsschl\xFCssel",
|
|
2372
|
+
"two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
|
|
2373
|
+
"two-step.totp.title": "Verwenden Sie Ihre Authenticator-App (TOTP)",
|
|
2374
|
+
"two-step.totp.description": "Verwenden Sie einen 6-stelligen Einmal-Code aus Ihrer Authenticator-App",
|
|
2375
|
+
"two-step.lookup_secret.title": "Backup-Wiederherstellungscode",
|
|
2376
|
+
"two-step.lookup_secret.description": "Verwenden Sie einen Ihrer 8-stelligen Backup-Codes, um sich zu authentifizieren",
|
|
2099
2377
|
"identities.messages.1070014": "Login- und Link-Zugangsdaten",
|
|
2100
2378
|
"identities.messages.1070015": "Bitte schlie\xDFen Sie die Captcha-Challenge ab, um fortzufahren.",
|
|
2101
2379
|
"identities.messages.4000038": "Die Captcha-\xDCberpr\xFCfung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
|
|
@@ -2103,20 +2381,20 @@ var de_default = {
|
|
|
2103
2381
|
"login.cancel-label": "Nicht das richtige Konto?",
|
|
2104
2382
|
"identities.messages.1010023": "Code an {address} senden",
|
|
2105
2383
|
"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.",
|
|
2106
|
-
"identities.messages.1010017": "",
|
|
2107
|
-
"identities.messages.1010018": "",
|
|
2108
|
-
"identities.messages.1010019": "",
|
|
2384
|
+
"identities.messages.1010017": "Anmelden und verbinden",
|
|
2385
|
+
"identities.messages.1010018": "Mit {provider} best\xE4tigen",
|
|
2386
|
+
"identities.messages.1010019": "Code senden um fortzufahren",
|
|
2109
2387
|
"identities.messages.1010020": "",
|
|
2110
|
-
"identities.messages.1010021": "",
|
|
2111
|
-
"identities.messages.1010022": "",
|
|
2112
|
-
"identities.messages.1040007": "",
|
|
2113
|
-
"identities.messages.1040008": "",
|
|
2114
|
-
"identities.messages.1040009": "",
|
|
2388
|
+
"identities.messages.1010021": "Mit Paskey anmelden",
|
|
2389
|
+
"identities.messages.1010022": "Mit Passwort anmelden",
|
|
2390
|
+
"identities.messages.1040007": "Mit Passkey registrieren",
|
|
2391
|
+
"identities.messages.1040008": "Zur\xFCck",
|
|
2392
|
+
"identities.messages.1040009": "Bitte w\xE4hlen Sie eine Authentifizierungsmethode, um fortzufahren.",
|
|
2115
2393
|
"identities.messages.1050019": "Passkey hinzuf\xFCgen",
|
|
2116
|
-
"identities.messages.1050020": "",
|
|
2117
|
-
"identities.messages.4000037": "",
|
|
2118
|
-
"identities.messages.4010009": "",
|
|
2119
|
-
"identities.messages.4010010": "",
|
|
2394
|
+
"identities.messages.1050020": 'Passkey "{display_name}" entfernen',
|
|
2395
|
+
"identities.messages.4000037": "F\xFCr die eingegebenen Daten existiert kein Account",
|
|
2396
|
+
"identities.messages.4010009": "Die Authentifizierungsmethode stimmt nicht mit der vorherigen Authentifizierungsmethode \xFCberein. Bitte versuchen Sie es erneut.",
|
|
2397
|
+
"identities.messages.4010010": "Die eingegebene Adresse stimmt nicht mit der Adresse \xFCberein, die Sie bei der Registrierung angegeben haben. Bitte versuchen Sie es erneut.",
|
|
2120
2398
|
"input.placeholder": "{placeholder} eingeben",
|
|
2121
2399
|
"card.header.parts.code": "einem Code per E-Mail",
|
|
2122
2400
|
"card.header.parts.identifier-first": "Ihr {identifierLabel}",
|
|
@@ -2181,7 +2459,27 @@ var de_default = {
|
|
|
2181
2459
|
"property.password": "Passwort",
|
|
2182
2460
|
"property.phone": "Telefon",
|
|
2183
2461
|
"property.code": "Code",
|
|
2184
|
-
"property.username": "Benutzername"
|
|
2462
|
+
"property.username": "Benutzername",
|
|
2463
|
+
"consent.title": "Autorisieren {party}",
|
|
2464
|
+
"consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
|
|
2465
|
+
"consent.scope.openid.title": "Identit\xE4t",
|
|
2466
|
+
"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.",
|
|
2467
|
+
"consent.scope.offline_access.title": "Offline-Zugriff",
|
|
2468
|
+
"consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
|
|
2469
|
+
"consent.scope.profile.title": "Profilinformationen",
|
|
2470
|
+
"consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
|
|
2471
|
+
"consent.scope.email.title": "E-Mail-Adresse",
|
|
2472
|
+
"consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
|
|
2473
|
+
"consent.scope.address.title": "Physische Adresse",
|
|
2474
|
+
"consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
|
|
2475
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
2476
|
+
"consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
|
|
2477
|
+
"error.title.what-happened": "Was ist passiert?",
|
|
2478
|
+
"error.footer.copy": "Kopieren",
|
|
2479
|
+
"error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
|
|
2480
|
+
"error.instructions": "Bitte versuchen Sie es in wenigen Minuten erneut oder wenden Sie sich an den Website-Betreiber.",
|
|
2481
|
+
"error.title.what-can-i-do": "Was kann ich tun?",
|
|
2482
|
+
"error.action.go-back": "Zur\xFCck"
|
|
2185
2483
|
};
|
|
2186
2484
|
|
|
2187
2485
|
// src/locales/es.json
|
|
@@ -2197,7 +2495,6 @@ var es_default = {
|
|
|
2197
2495
|
"error.back-button": "Regresar",
|
|
2198
2496
|
"error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
|
|
2199
2497
|
"error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
|
|
2200
|
-
"error.title": "Ocurri\xF3 un error",
|
|
2201
2498
|
"error.title-internal-server-error": "Error Interno del Servidor",
|
|
2202
2499
|
"error.title-not-found": "404 - P\xE1gina no encontrada",
|
|
2203
2500
|
"identities.messages.1010001": "Iniciar sesi\xF3n",
|
|
@@ -2207,9 +2504,9 @@ var es_default = {
|
|
|
2207
2504
|
"identities.messages.1010005": "Verificar",
|
|
2208
2505
|
"identities.messages.1010006": "C\xF3digo de autenticaci\xF3n",
|
|
2209
2506
|
"identities.messages.1010007": "C\xF3digo de recuperaci\xF3n de respaldo",
|
|
2210
|
-
"identities.messages.1010008": "
|
|
2211
|
-
"identities.messages.1010009": "
|
|
2212
|
-
"identities.messages.1010010": "
|
|
2507
|
+
"identities.messages.1010008": "Continuar con la llave de hardware",
|
|
2508
|
+
"identities.messages.1010009": "Continuar",
|
|
2509
|
+
"identities.messages.1010010": "Continuar",
|
|
2213
2510
|
"identities.messages.1010011": "Continuar con llave de seguridad",
|
|
2214
2511
|
"identities.messages.1010012": "Prepare su dispositivo WebAuthn (por ejemplo, llave de seguridad, esc\xE1ner biom\xE9trico, ...) y presione continuar.",
|
|
2215
2512
|
"identities.messages.1010013": "Continuar",
|
|
@@ -2325,8 +2622,16 @@ var es_default = {
|
|
|
2325
2622
|
"login.registration-label": "\xBFNo tiene una cuenta?",
|
|
2326
2623
|
"login.subtitle-oauth2": "Para autenticar a {clientName}",
|
|
2327
2624
|
"login.title": "Iniciar sesi\xF3n",
|
|
2328
|
-
"login.title-aal2": "Autenticaci\xF3n de
|
|
2625
|
+
"login.title-aal2": "Autenticaci\xF3n de dos factores",
|
|
2626
|
+
"login.subtitle-aal2": "Elija una forma de completar su autenticaci\xF3n de segundo factor",
|
|
2627
|
+
"login.code.subtitle": "Se enviar\xE1 un c\xF3digo de verificaci\xF3n por correo electr\xF3nico",
|
|
2628
|
+
"login.webauthn.subtitle": "Por favor, prepare su dispositivo WebAuthN",
|
|
2629
|
+
"login.totp.subtitle": "Ingrese el c\xF3digo generado por su aplicaci\xF3n de autenticaci\xF3n",
|
|
2630
|
+
"login.lookup_secret.subtitle": "Ingrese uno de sus c\xF3digos de recuperaci\xF3n de respaldo de 8 d\xEDgitos",
|
|
2329
2631
|
"login.title-refresh": "Confirme que es usted",
|
|
2632
|
+
"login.2fa.go-back": "\xBFAlgo no funciona?",
|
|
2633
|
+
"login.2fa.go-back.link": "Volver",
|
|
2634
|
+
"login.2fa.method.go-back": "Elegir otro m\xE9todo",
|
|
2330
2635
|
"logout.accept-button": "S\xED",
|
|
2331
2636
|
"logout.reject-button": "No",
|
|
2332
2637
|
"logout.title": "\xBFDesea cerrar sesi\xF3n?",
|
|
@@ -2358,47 +2663,12 @@ var es_default = {
|
|
|
2358
2663
|
"two-step.passkey.title": "Clave de acceso (recomendada)",
|
|
2359
2664
|
"two-step.password.description": "Ingrese la contrase\xF1a asociada con su cuenta",
|
|
2360
2665
|
"two-step.password.title": "Contrase\xF1a",
|
|
2361
|
-
"two-step.webauthn.description": "Utiliza tu llave de seguridad para autenticarte",
|
|
2362
2666
|
"two-step.webauthn.title": "Clave de Seguridad",
|
|
2363
|
-
"
|
|
2364
|
-
"
|
|
2365
|
-
"
|
|
2366
|
-
"
|
|
2367
|
-
"
|
|
2368
|
-
"identities.messages.1010021": "",
|
|
2369
|
-
"identities.messages.1010022": "",
|
|
2370
|
-
"identities.messages.1010023": "",
|
|
2371
|
-
"identities.messages.1040007": "",
|
|
2372
|
-
"identities.messages.1040008": "",
|
|
2373
|
-
"identities.messages.1040009": "",
|
|
2374
|
-
"identities.messages.1050019": "",
|
|
2375
|
-
"identities.messages.1050020": "",
|
|
2376
|
-
"identities.messages.1070014": "",
|
|
2377
|
-
"identities.messages.1070015": "",
|
|
2378
|
-
"identities.messages.4000037": "",
|
|
2379
|
-
"identities.messages.4000038": "",
|
|
2380
|
-
"identities.messages.4010009": "",
|
|
2381
|
-
"identities.messages.4010010": "",
|
|
2382
|
-
"login.cancel-button": "",
|
|
2383
|
-
"login.cancel-label": "",
|
|
2384
|
-
"input.placeholder": "",
|
|
2385
|
-
"card.header.description.login": "",
|
|
2386
|
-
"card.header.description.registration": "",
|
|
2387
|
-
"card.header.parts.code": "",
|
|
2388
|
-
"card.header.parts.identifier-first": "",
|
|
2389
|
-
"card.header.parts.oidc": "",
|
|
2390
|
-
"card.header.parts.passkey": "",
|
|
2391
|
-
"card.header.parts.password.login": "",
|
|
2392
|
-
"card.header.parts.password.registration": "",
|
|
2393
|
-
"card.header.parts.webauthn": "",
|
|
2394
|
-
"forms.label.forgot-password": "",
|
|
2395
|
-
"login.subtitle": "",
|
|
2396
|
-
"login.subtitle-refresh": "",
|
|
2397
|
-
"misc.or": "",
|
|
2398
|
-
"recovery.subtitle": "",
|
|
2399
|
-
"registration.subtitle": "",
|
|
2400
|
-
"settings.subtitle": "",
|
|
2401
|
-
"verification.subtitle": "",
|
|
2667
|
+
"two-step.webauthn.description": "Utilice su llave de seguridad para autenticase",
|
|
2668
|
+
"two-step.totp.title": "Utilice su aplicaci\xF3n de autenticaci\xF3n (TOTP)",
|
|
2669
|
+
"two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
|
|
2670
|
+
"two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
|
|
2671
|
+
"two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
|
|
2402
2672
|
"settings.totp.info.linked": "Actualmente tienes una aplicaci\xF3n de autenticaci\xF3n conectada.",
|
|
2403
2673
|
"settings.totp.info.not-linked": "Para habilitar, escanea el c\xF3digo QR con tu autenticador e ingresa el c\xF3digo.",
|
|
2404
2674
|
"settings.totp.title": "Aplicaci\xF3n Autenticadora",
|
|
@@ -2416,25 +2686,85 @@ var es_default = {
|
|
|
2416
2686
|
"settings.profile.title": "Configuraci\xF3n de Perfil",
|
|
2417
2687
|
"settings.webauthn.description": "Administra la configuraci\xF3n de tu token de hardware",
|
|
2418
2688
|
"settings.webauthn.title": "Gestionar Tokens de Hardware",
|
|
2419
|
-
"
|
|
2420
|
-
"
|
|
2421
|
-
"
|
|
2422
|
-
"
|
|
2423
|
-
"
|
|
2424
|
-
"
|
|
2425
|
-
"
|
|
2426
|
-
"
|
|
2427
|
-
"
|
|
2428
|
-
"
|
|
2429
|
-
"
|
|
2430
|
-
"
|
|
2431
|
-
"
|
|
2432
|
-
"
|
|
2433
|
-
"
|
|
2434
|
-
"
|
|
2435
|
-
"
|
|
2436
|
-
"
|
|
2437
|
-
"
|
|
2689
|
+
"consent.title": "Autorizar {party}",
|
|
2690
|
+
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2691
|
+
"consent.scope.openid.title": "Identidad",
|
|
2692
|
+
"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.",
|
|
2693
|
+
"consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
|
|
2694
|
+
"consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
|
|
2695
|
+
"consent.scope.profile.title": "Informaci\xF3n del perfil",
|
|
2696
|
+
"consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
|
|
2697
|
+
"consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
|
|
2698
|
+
"consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
|
|
2699
|
+
"consent.scope.address.title": "Direcci\xF3n f\xEDsica",
|
|
2700
|
+
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2701
|
+
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
2702
|
+
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
2703
|
+
"error.title": "Ocurri\xF3 un error",
|
|
2704
|
+
"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.',
|
|
2705
|
+
"identities.messages.1010017": "Iniciar sesi\xF3n y vincular",
|
|
2706
|
+
"identities.messages.1010018": "Confirmar con {provider}",
|
|
2707
|
+
"identities.messages.1010019": "Solicitar c\xF3digo para continuar",
|
|
2708
|
+
"identities.messages.1010021": "Iniciar sesi\xF3n con clave de acceso",
|
|
2709
|
+
"identities.messages.1010022": "Iniciar sesi\xF3n con contrase\xF1a",
|
|
2710
|
+
"identities.messages.1010023": "Enviar c\xF3digo a {address}",
|
|
2711
|
+
"identities.messages.1040007": "Registrarse con clave de acceso",
|
|
2712
|
+
"identities.messages.1040008": "Atr\xE1s",
|
|
2713
|
+
"identities.messages.1040009": "Por favor, elige una credencial para autenticarte.",
|
|
2714
|
+
"identities.messages.1050019": "Agregar clave de acceso",
|
|
2715
|
+
"identities.messages.1070014": "Iniciar sesi\xF3n y vincular credencial",
|
|
2716
|
+
"identities.messages.1070015": "Por favor, completa el desaf\xEDo captcha para continuar.",
|
|
2717
|
+
"identities.messages.4000037": "Esta cuenta no existe o no tiene ning\xFAn m\xE9todo de inicio de sesi\xF3n configurado.",
|
|
2718
|
+
"identities.messages.4000038": "Fall\xF3 la verificaci\xF3n de Captcha, por favor intenta de nuevo.",
|
|
2719
|
+
"identities.messages.4010009": "Las credenciales vinculadas no coinciden.",
|
|
2720
|
+
"identities.messages.4010010": "La direcci\xF3n que ingresaste no coincide con ninguna direcci\xF3n conocida en la cuenta actual.",
|
|
2721
|
+
"login.cancel-button": "Cancelar",
|
|
2722
|
+
"login.cancel-label": "\xBFNo es la cuenta correcta?",
|
|
2723
|
+
"login.subtitle": "Iniciar sesi\xF3n con {parts}",
|
|
2724
|
+
"login.subtitle-refresh": "Confirma tu identidad con {parts}",
|
|
2725
|
+
"recovery.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para recibir un c\xF3digo de acceso \xFAnico",
|
|
2726
|
+
"registration.subtitle": "Registrarse con {parts}",
|
|
2727
|
+
"settings.subtitle": "Actualiza la configuraci\xF3n de tu cuenta",
|
|
2728
|
+
"settings.title-lookup-secret": "Administrar c\xF3digos de recuperaci\xF3n de respaldo 2FA",
|
|
2729
|
+
"settings.title-navigation": "Configuraci\xF3n de la cuenta",
|
|
2730
|
+
"settings.title-oidc": "Inicio de sesi\xF3n social",
|
|
2731
|
+
"settings.title-password": "Cambiar contrase\xF1a",
|
|
2732
|
+
"settings.title-profile": "Configuraci\xF3n del perfil",
|
|
2733
|
+
"settings.title-totp": "Administrar la aplicaci\xF3n de autenticaci\xF3n 2FA TOTP",
|
|
2734
|
+
"settings.title-webauthn": "Administrar tokens de hardware",
|
|
2735
|
+
"settings.title-passkey": "Administrar claves de acceso",
|
|
2736
|
+
"verification.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para verificarla",
|
|
2737
|
+
"input.placeholder": "Ingresa tu {placeholder}",
|
|
2738
|
+
"card.header.parts.oidc": "un proveedor social",
|
|
2739
|
+
"card.header.parts.password.registration": "tu {identifierLabel} y una contrase\xF1a",
|
|
2740
|
+
"card.header.parts.password.login": "tu {identifierLabel} y contrase\xF1a",
|
|
2741
|
+
"card.header.parts.code": "un c\xF3digo enviado a tu correo electr\xF3nico",
|
|
2742
|
+
"card.header.parts.passkey": "una clave de acceso",
|
|
2743
|
+
"card.header.parts.webauthn": "una clave de seguridad",
|
|
2744
|
+
"card.header.parts.identifier-first": "tu {identifierLabel}",
|
|
2745
|
+
"card.header.description.login": "Iniciar sesi\xF3n con {identifierLabel}",
|
|
2746
|
+
"card.header.description.registration": "Registrarse con {identifierLabel}",
|
|
2747
|
+
"misc.or": "o",
|
|
2748
|
+
"forms.label.forgot-password": "\xBFOlvidaste tu contrase\xF1a?",
|
|
2749
|
+
"settings.oidc.info": "Las cuentas conectadas de estos proveedores se pueden utilizar para iniciar sesi\xF3n en tu cuenta",
|
|
2750
|
+
"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",
|
|
2751
|
+
"settings.passkey.info": "Administra la configuraci\xF3n de tus claves de acceso",
|
|
2752
|
+
"card.footer.select-another-method": "Seleccionar otro m\xE9todo",
|
|
2753
|
+
"account-linking.title": "Vincular cuenta",
|
|
2754
|
+
"property.password": "contrase\xF1a",
|
|
2755
|
+
"property.email": "correo electr\xF3nico",
|
|
2756
|
+
"property.phone": "tel\xE9fono",
|
|
2757
|
+
"property.username": "nombre de usuario",
|
|
2758
|
+
"property.identifier": "identificador",
|
|
2759
|
+
"property.code": "c\xF3digo",
|
|
2760
|
+
"error.title.what-happened": "\xBFQu\xE9 pas\xF3?",
|
|
2761
|
+
"error.title.what-can-i-do": "\xBFQu\xE9 puedo hacer?",
|
|
2762
|
+
"error.instructions": "Por favor, int\xE9ntalo de nuevo en unos minutos o contacta al operador del sitio web.",
|
|
2763
|
+
"error.footer.text": "Al informar este error, incluye la siguiente informaci\xF3n:",
|
|
2764
|
+
"error.footer.copy": "Copiar",
|
|
2765
|
+
"error.action.go-back": "Regresar",
|
|
2766
|
+
"identities.messages.1010020": "",
|
|
2767
|
+
"identities.messages.1050020": 'Eliminar passkey "{display_name}"'
|
|
2438
2768
|
};
|
|
2439
2769
|
|
|
2440
2770
|
// src/locales/fr.json
|
|
@@ -2460,9 +2790,9 @@ var fr_default = {
|
|
|
2460
2790
|
"identities.messages.1010005": "V\xE9rifier",
|
|
2461
2791
|
"identities.messages.1010006": "Code d'authentification",
|
|
2462
2792
|
"identities.messages.1010007": "Code de r\xE9cup\xE9ration de secours",
|
|
2463
|
-
"identities.messages.1010008": "
|
|
2464
|
-
"identities.messages.1010009": "
|
|
2465
|
-
"identities.messages.1010010": "
|
|
2793
|
+
"identities.messages.1010008": "Continuer avec la cl\xE9 mat\xE9rielle",
|
|
2794
|
+
"identities.messages.1010009": "Continuer",
|
|
2795
|
+
"identities.messages.1010010": "Continuer",
|
|
2466
2796
|
"identities.messages.1010011": "Continuer avec la cl\xE9 de s\xE9curit\xE9",
|
|
2467
2797
|
"identities.messages.1010012": "Pr\xE9parez votre appareil WebAuthn (par exemple, une cl\xE9 de s\xE9curit\xE9, un scanner biom\xE9trique, ...) et appuyez sur Continuer.",
|
|
2468
2798
|
"identities.messages.1010013": "Continuer",
|
|
@@ -2579,7 +2909,15 @@ var fr_default = {
|
|
|
2579
2909
|
"login.subtitle-oauth2": "Pour vous authentifier sur {clientName}",
|
|
2580
2910
|
"login.title": "Se connecter",
|
|
2581
2911
|
"login.title-aal2": "Authentification \xE0 deux facteurs",
|
|
2912
|
+
"login.subtitle-aal2": "Choisissez une m\xE9thode pour compl\xE9ter votre authentification \xE0 deux facteurs",
|
|
2913
|
+
"login.code.subtitle": "Un code de v\xE9rification sera envoy\xE9 par e-mail",
|
|
2914
|
+
"login.webauthn.subtitle": "Veuillez pr\xE9parer votre dispositif WebAuthN",
|
|
2915
|
+
"login.totp.subtitle": "Veuillez saisir le code g\xE9n\xE9r\xE9 par votre application d'authentification",
|
|
2916
|
+
"login.lookup_secret.subtitle": "Veuillez saisir l'un de vos codes de r\xE9cup\xE9ration de secours \xE0 8 chiffres",
|
|
2582
2917
|
"login.title-refresh": "Confirmez que c'est bien vous",
|
|
2918
|
+
"login.2fa.go-back": "Quelque chose ne fonctionne pas ?",
|
|
2919
|
+
"login.2fa.go-back.link": "Retour",
|
|
2920
|
+
"login.2fa.method.go-back": "Choisir une autre m\xE9thode",
|
|
2583
2921
|
"logout.accept-button": "Oui",
|
|
2584
2922
|
"logout.reject-button": "Non",
|
|
2585
2923
|
"logout.title": "Souhaitez-vous vous d\xE9connecter ?",
|
|
@@ -2611,83 +2949,107 @@ var fr_default = {
|
|
|
2611
2949
|
"two-step.passkey.title": "Cl\xE9 de passe (recommand\xE9e)",
|
|
2612
2950
|
"two-step.password.description": "Entrez votre mot de passe associ\xE9 \xE0 votre compte",
|
|
2613
2951
|
"two-step.password.title": "Mot de passe",
|
|
2614
|
-
"two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
|
|
2615
2952
|
"two-step.webauthn.title": "Cl\xE9 de S\xE9curit\xE9",
|
|
2616
|
-
"
|
|
2617
|
-
"
|
|
2618
|
-
"
|
|
2619
|
-
"
|
|
2620
|
-
"
|
|
2621
|
-
"identities.messages.1010016": "",
|
|
2622
|
-
"identities.messages.1010017": "",
|
|
2623
|
-
"identities.messages.1010018": "",
|
|
2624
|
-
"identities.messages.1010019": "",
|
|
2625
|
-
"identities.messages.1010020": "",
|
|
2626
|
-
"identities.messages.1010021": "",
|
|
2627
|
-
"identities.messages.1010022": "",
|
|
2628
|
-
"identities.messages.1040007": "",
|
|
2629
|
-
"identities.messages.1040008": "",
|
|
2630
|
-
"identities.messages.1040009": "",
|
|
2631
|
-
"identities.messages.1050019": "",
|
|
2632
|
-
"identities.messages.1050020": "",
|
|
2633
|
-
"identities.messages.1070014": "",
|
|
2634
|
-
"identities.messages.4000037": "",
|
|
2635
|
-
"identities.messages.4010009": "",
|
|
2636
|
-
"identities.messages.4010010": "",
|
|
2637
|
-
"input.placeholder": "",
|
|
2638
|
-
"card.header.description.login": "",
|
|
2639
|
-
"card.header.description.registration": "",
|
|
2640
|
-
"card.header.parts.code": "",
|
|
2641
|
-
"card.header.parts.identifier-first": "",
|
|
2642
|
-
"card.header.parts.oidc": "",
|
|
2643
|
-
"card.header.parts.passkey": "",
|
|
2644
|
-
"card.header.parts.password.login": "",
|
|
2645
|
-
"card.header.parts.password.registration": "",
|
|
2646
|
-
"card.header.parts.webauthn": "",
|
|
2647
|
-
"forms.label.forgot-password": "",
|
|
2648
|
-
"login.subtitle": "",
|
|
2649
|
-
"login.subtitle-refresh": "",
|
|
2650
|
-
"misc.or": "",
|
|
2651
|
-
"recovery.subtitle": "",
|
|
2652
|
-
"registration.subtitle": "",
|
|
2653
|
-
"settings.subtitle": "",
|
|
2654
|
-
"verification.subtitle": "",
|
|
2953
|
+
"two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
|
|
2954
|
+
"two-step.totp.title": "Utilisez votre application d'authentification (TOTP)",
|
|
2955
|
+
"two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
|
|
2956
|
+
"two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
|
|
2957
|
+
"two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
|
|
2655
2958
|
"settings.totp.info.linked": "Vous avez actuellement une application d'authentification connect\xE9e.",
|
|
2656
2959
|
"settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.",
|
|
2657
2960
|
"settings.totp.title": "Application d'authentification",
|
|
2658
2961
|
"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.",
|
|
2659
|
-
"
|
|
2660
|
-
"
|
|
2661
|
-
"
|
|
2662
|
-
"
|
|
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
|
-
"
|
|
2962
|
+
"consent.title": "Autoriser {party}",
|
|
2963
|
+
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
2964
|
+
"consent.scope.openid.title": "Identit\xE9",
|
|
2965
|
+
"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.",
|
|
2966
|
+
"consent.scope.offline_access.title": "Acc\xE8s hors ligne",
|
|
2967
|
+
"consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
|
|
2968
|
+
"consent.scope.profile.title": "Informations de profil",
|
|
2969
|
+
"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.",
|
|
2970
|
+
"consent.scope.email.title": "Adresse e-mail",
|
|
2971
|
+
"consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
|
|
2972
|
+
"consent.scope.address.title": "Adresse physique",
|
|
2973
|
+
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
2974
|
+
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
2975
|
+
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
2976
|
+
"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.",
|
|
2977
|
+
"identities.messages.1010017": "Se connecter et lier",
|
|
2978
|
+
"identities.messages.1010018": "Confirmer avec {provider}",
|
|
2979
|
+
"identities.messages.1010019": "Demander un code pour continuer",
|
|
2980
|
+
"identities.messages.1010021": "Se connecter avec une cl\xE9 d'acc\xE8s",
|
|
2981
|
+
"identities.messages.1010022": "Se connecter avec un mot de passe",
|
|
2982
|
+
"identities.messages.1010023": "Envoyer le code \xE0 {address}",
|
|
2983
|
+
"identities.messages.1040007": "S'inscrire avec une cl\xE9 d'acc\xE8s",
|
|
2984
|
+
"identities.messages.1040008": "Retour",
|
|
2985
|
+
"identities.messages.1040009": "Veuillez choisir une identification pour vous authentifier.",
|
|
2986
|
+
"identities.messages.1050019": "Ajouter une cl\xE9 d'acc\xE8s",
|
|
2987
|
+
"identities.messages.1050020": "Supprimer la cl\xE9 d'acc\xE8s \xAB {display_name} \xBB",
|
|
2988
|
+
"identities.messages.1070014": "Se connecter et lier l'identification",
|
|
2989
|
+
"identities.messages.1070015": "Veuillez compl\xE9ter le d\xE9fi captcha pour continuer.",
|
|
2990
|
+
"identities.messages.4000037": "Ce compte n'existe pas ou n'a aucune m\xE9thode de connexion configur\xE9e.",
|
|
2991
|
+
"identities.messages.4000038": "La v\xE9rification Captcha a \xE9chou\xE9, veuillez r\xE9essayer.",
|
|
2992
|
+
"identities.messages.4010009": "Les identifications li\xE9es ne correspondent pas.",
|
|
2993
|
+
"identities.messages.4010010": "L'adresse que vous avez saisie ne correspond \xE0 aucune adresse connue dans le compte actuel.",
|
|
2994
|
+
"login.cancel-button": "Annuler",
|
|
2995
|
+
"login.cancel-label": "Ce n'est pas le bon compte\xA0?",
|
|
2996
|
+
"login.subtitle": "Se connecter avec {parts}",
|
|
2997
|
+
"login.subtitle-refresh": "Confirmez votre identit\xE9 avec {parts}",
|
|
2998
|
+
"recovery.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour recevoir un code d'acc\xE8s unique",
|
|
2999
|
+
"registration.subtitle": "S'inscrire avec {parts}",
|
|
3000
|
+
"settings.subtitle": "Mettre \xE0 jour les param\xE8tres de votre compte",
|
|
3001
|
+
"settings.title-lookup-secret": "G\xE9rer les codes de r\xE9cup\xE9ration de sauvegarde 2FA",
|
|
3002
|
+
"settings.title-navigation": "Param\xE8tres du compte",
|
|
3003
|
+
"settings.title-oidc": "Connexion via les r\xE9seaux sociaux",
|
|
3004
|
+
"settings.title-password": "Changer le mot de passe",
|
|
3005
|
+
"settings.title-profile": "Param\xE8tres du profil",
|
|
3006
|
+
"settings.title-totp": "G\xE9rer l'application d'authentification 2FA TOTP",
|
|
3007
|
+
"settings.title-webauthn": "G\xE9rer les jetons mat\xE9riels",
|
|
3008
|
+
"settings.title-passkey": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3009
|
+
"settings.navigation.title": "Param\xE8tres du compte",
|
|
3010
|
+
"settings.password.title": "Changer le mot de passe",
|
|
3011
|
+
"settings.password.description": "Modifier votre mot de passe",
|
|
3012
|
+
"settings.profile.title": "Param\xE8tres du profil",
|
|
3013
|
+
"settings.profile.description": "Mettre \xE0 jour les informations de votre profil",
|
|
3014
|
+
"settings.webauthn.title": "G\xE9rer les jetons mat\xE9riels",
|
|
3015
|
+
"settings.webauthn.description": "G\xE9rer les param\xE8tres de votre jeton mat\xE9riel",
|
|
3016
|
+
"verification.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour la v\xE9rifier",
|
|
3017
|
+
"input.placeholder": "Saisissez votre {placeholder}",
|
|
3018
|
+
"card.header.parts.oidc": "un fournisseur de r\xE9seaux sociaux",
|
|
3019
|
+
"card.header.parts.password.registration": "votre {identifierLabel} et un mot de passe",
|
|
3020
|
+
"card.header.parts.password.login": "votre {identifierLabel} et votre mot de passe",
|
|
3021
|
+
"card.header.parts.code": "un code envoy\xE9 \xE0 votre adresse e-mail",
|
|
3022
|
+
"card.header.parts.passkey": "une cl\xE9 d'acc\xE8s",
|
|
3023
|
+
"card.header.parts.webauthn": "une cl\xE9 de s\xE9curit\xE9",
|
|
3024
|
+
"card.header.parts.identifier-first": "votre {identifierLabel}",
|
|
3025
|
+
"card.header.description.login": "Se connecter avec {identifierLabel}",
|
|
3026
|
+
"card.header.description.registration": "S'inscrire avec {identifierLabel}",
|
|
3027
|
+
"misc.or": "ou",
|
|
3028
|
+
"forms.label.forgot-password": "Mot de passe oubli\xE9?",
|
|
3029
|
+
"settings.lookup_secret.title": "Codes de r\xE9cup\xE9ration de sauvegarde (second facteur)",
|
|
3030
|
+
"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.",
|
|
3031
|
+
"settings.oidc.title": "Comptes connect\xE9s",
|
|
3032
|
+
"settings.oidc.description": "Connectez un fournisseur de connexion sociale \xE0 votre compte.",
|
|
3033
|
+
"settings.oidc.info": "Les comptes connect\xE9s de ces fournisseurs peuvent \xEAtre utilis\xE9s pour vous connecter \xE0 votre compte",
|
|
3034
|
+
"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",
|
|
3035
|
+
"settings.passkey.title": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3036
|
+
"settings.passkey.description": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3037
|
+
"settings.passkey.info": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3038
|
+
"card.footer.select-another-method": "S\xE9lectionner une autre m\xE9thode",
|
|
3039
|
+
"account-linking.title": "Lier le compte",
|
|
3040
|
+
"property.password": "mot de passe",
|
|
3041
|
+
"property.email": "e-mail",
|
|
3042
|
+
"property.phone": "t\xE9l\xE9phone",
|
|
3043
|
+
"property.username": "nom d'utilisateur",
|
|
3044
|
+
"property.identifier": "identifiant",
|
|
3045
|
+
"property.code": "code",
|
|
3046
|
+
"error.title.what-happened": "Que s'est-il pass\xE9?",
|
|
3047
|
+
"error.title.what-can-i-do": "Que puis-je faire?",
|
|
3048
|
+
"error.instructions": "Veuillez r\xE9essayer dans quelques minutes ou contacter l'op\xE9rateur du site Web.",
|
|
3049
|
+
"error.footer.text": "Lorsque vous signalez cette erreur, veuillez inclure les informations suivantes:",
|
|
3050
|
+
"error.footer.copy": "Copier",
|
|
3051
|
+
"error.action.go-back": "Retour",
|
|
3052
|
+
"identities.messages.1010020": ""
|
|
2691
3053
|
};
|
|
2692
3054
|
|
|
2693
3055
|
// src/locales/nl.json
|
|
@@ -2713,9 +3075,9 @@ var nl_default = {
|
|
|
2713
3075
|
"identities.messages.1010005": "Verifi\xEBren",
|
|
2714
3076
|
"identities.messages.1010006": "Verificatiecode",
|
|
2715
3077
|
"identities.messages.1010007": "Back-up herstelcode",
|
|
2716
|
-
"identities.messages.1010008": "
|
|
2717
|
-
"identities.messages.1010009": "
|
|
2718
|
-
"identities.messages.1010010": "
|
|
3078
|
+
"identities.messages.1010008": "Ga verder met hardware-sleutel",
|
|
3079
|
+
"identities.messages.1010009": "Doorgaan",
|
|
3080
|
+
"identities.messages.1010010": "Doorgaan",
|
|
2719
3081
|
"identities.messages.1010011": "Doorgaan met beveiligingssleutel",
|
|
2720
3082
|
"identities.messages.1010012": "Bereid uw WebAuthn-apparaat voor (bijv. beveiligingssleutel, biometrische scanner, ...) en druk op doorgaan.",
|
|
2721
3083
|
"identities.messages.1010013": "Doorgaan",
|
|
@@ -2831,8 +3193,16 @@ var nl_default = {
|
|
|
2831
3193
|
"login.registration-label": "Heb je nog geen account?",
|
|
2832
3194
|
"login.subtitle-oauth2": "Om te authenticeren bij {clientName}",
|
|
2833
3195
|
"login.title": "Inloggen",
|
|
2834
|
-
"login.title-aal2": "
|
|
3196
|
+
"login.title-aal2": "Tweefactorauthenticatie",
|
|
3197
|
+
"login.subtitle-aal2": "Kies een manier om uw tweefactorauthenticatie te voltooien",
|
|
3198
|
+
"login.code.subtitle": "Er wordt een verificatiecode per e-mail verzonden",
|
|
3199
|
+
"login.webauthn.subtitle": "Bereid uw WebAuthN-apparaat voor",
|
|
3200
|
+
"login.totp.subtitle": "Voer de code in die door uw Authenticator-app is gegenereerd",
|
|
3201
|
+
"login.lookup_secret.subtitle": "Voer een van uw 8-cijferige back-up herstelcodes in",
|
|
2835
3202
|
"login.title-refresh": "Bevestig dat jij het bent",
|
|
3203
|
+
"login.2fa.go-back": "Werkt er iets niet?",
|
|
3204
|
+
"login.2fa.go-back.link": "Ga terug",
|
|
3205
|
+
"login.2fa.method.go-back": "Kies een andere methode",
|
|
2836
3206
|
"logout.accept-button": "Ja",
|
|
2837
3207
|
"logout.reject-button": "Nee",
|
|
2838
3208
|
"logout.title": "Wil je uitloggen?",
|
|
@@ -2864,8 +3234,12 @@ var nl_default = {
|
|
|
2864
3234
|
"two-step.passkey.title": "Toegangscode (aanbevolen)",
|
|
2865
3235
|
"two-step.password.description": "Voer uw wachtwoord in dat is gekoppeld aan uw account",
|
|
2866
3236
|
"two-step.password.title": "Wachtwoord",
|
|
2867
|
-
"two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
|
|
2868
3237
|
"two-step.webauthn.title": "Beveiligingssleutel",
|
|
3238
|
+
"two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
|
|
3239
|
+
"two-step.totp.title": "Gebruik uw Authenticator-app (TOTP)",
|
|
3240
|
+
"two-step.totp.description": "Gebruik een 6-cijferige eenmalige code van uw authenticator-app",
|
|
3241
|
+
"two-step.lookup_secret.title": "Herstelcode",
|
|
3242
|
+
"two-step.lookup_secret.description": "Gebruik een van uw 8-cijferige back-upcodes om te authenticeren",
|
|
2869
3243
|
"identities.messages.1010023": "",
|
|
2870
3244
|
"identities.messages.1070014": "",
|
|
2871
3245
|
"identities.messages.1070015": "",
|
|
@@ -2940,7 +3314,27 @@ var nl_default = {
|
|
|
2940
3314
|
"property.identifier": "",
|
|
2941
3315
|
"property.password": "",
|
|
2942
3316
|
"property.phone": "",
|
|
2943
|
-
"property.username": ""
|
|
3317
|
+
"property.username": "",
|
|
3318
|
+
"consent.title": "Autoriseren {party}",
|
|
3319
|
+
"consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
|
|
3320
|
+
"consent.scope.openid.title": "Identiteit",
|
|
3321
|
+
"consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
|
|
3322
|
+
"consent.scope.offline_access.title": "Offline toegang",
|
|
3323
|
+
"consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
|
|
3324
|
+
"consent.scope.profile.title": "Profielinformatie",
|
|
3325
|
+
"consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
|
|
3326
|
+
"consent.scope.email.title": "E-mailadres",
|
|
3327
|
+
"consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
|
|
3328
|
+
"consent.scope.address.title": "Fysiek adres",
|
|
3329
|
+
"consent.scope.address.description": "Toegang tot uw postadres.",
|
|
3330
|
+
"consent.scope.phone.title": "Telefoonnummer",
|
|
3331
|
+
"consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
|
|
3332
|
+
"error.action.go-back": "",
|
|
3333
|
+
"error.footer.copy": "",
|
|
3334
|
+
"error.footer.text": "",
|
|
3335
|
+
"error.title.what-can-i-do": "",
|
|
3336
|
+
"error.title.what-happened": "",
|
|
3337
|
+
"error.instructions": ""
|
|
2944
3338
|
};
|
|
2945
3339
|
|
|
2946
3340
|
// src/locales/pl.json
|
|
@@ -2966,9 +3360,9 @@ var pl_default = {
|
|
|
2966
3360
|
"identities.messages.1010005": "Zweryifkuj",
|
|
2967
3361
|
"identities.messages.1010006": "Kod autentykacyjny",
|
|
2968
3362
|
"identities.messages.1010007": "Zapasowe kody odzyskiwania",
|
|
2969
|
-
"identities.messages.1010008": "
|
|
2970
|
-
"identities.messages.1010009": "
|
|
2971
|
-
"identities.messages.1010010": "
|
|
3363
|
+
"identities.messages.1010008": "Kontynuuj z kluczem sprz\u0119towym",
|
|
3364
|
+
"identities.messages.1010009": "Kontynuuj",
|
|
3365
|
+
"identities.messages.1010010": "Kontynuuj",
|
|
2972
3366
|
"identities.messages.1010011": "Kontynuuj za pomoc\u0105 klucza bezpiecze\u0144stwa",
|
|
2973
3367
|
"identities.messages.1010012": "Przygotuj swoje urz\u0105dzenie WebAuthn (np. klucz bezpiecze\u0144stwa, czytnik biometryczny, ...) a nast\u0119pnie kliknij kontynuuj.",
|
|
2974
3368
|
"identities.messages.1010013": "Kontynuuj",
|
|
@@ -3084,8 +3478,16 @@ var pl_default = {
|
|
|
3084
3478
|
"login.registration-label": "Nie posiadasz konta?",
|
|
3085
3479
|
"login.subtitle-oauth2": "Do autentykacji {clientName}",
|
|
3086
3480
|
"login.title": "Zaloguj si\u0119",
|
|
3087
|
-
"login.title-aal2": "
|
|
3481
|
+
"login.title-aal2": "Uwierzytelnianie dwusk\u0142adnikowe",
|
|
3482
|
+
"login.subtitle-aal2": "Wybierz spos\xF3b, aby zako\u0144czy\u0107 uwierzytelnianie dwusk\u0142adnikowe",
|
|
3483
|
+
"login.code.subtitle": "Kod weryfikacyjny zostanie wys\u0142any e-mailem",
|
|
3484
|
+
"login.webauthn.subtitle": "Prosz\u0119 przygotowa\u0107 urz\u0105dzenie WebAuthN",
|
|
3485
|
+
"login.totp.subtitle": "Prosz\u0119 wprowadzi\u0107 kod wygenerowany przez Twoj\u0105 aplikacj\u0119 uwierzytelniaj\u0105c\u0105",
|
|
3486
|
+
"login.lookup_secret.subtitle": "Prosz\u0119 wprowadzi\u0107 jeden z Twoich 8-cyfrowych kod\xF3w odzyskiwania zapasowego",
|
|
3088
3487
|
"login.title-refresh": "Potwierd\u017A \u017Ce to Ty",
|
|
3488
|
+
"login.2fa.go-back": "Co\u015B nie dzia\u0142a?",
|
|
3489
|
+
"login.2fa.go-back.link": "Wr\xF3\u0107",
|
|
3490
|
+
"login.2fa.method.go-back": "Wybierz inn\u0105 metod\u0119",
|
|
3089
3491
|
"logout.accept-button": "Tak",
|
|
3090
3492
|
"logout.reject-button": "Nie",
|
|
3091
3493
|
"logout.title": "Czy chcesz si\u0119 wylogowa\u0107?",
|
|
@@ -3117,8 +3519,12 @@ var pl_default = {
|
|
|
3117
3519
|
"two-step.passkey.title": "Klucz dost\u0119pu (zalecany)",
|
|
3118
3520
|
"two-step.password.description": "Wprowad\u017A has\u0142o powi\u0105zane z twoim kontem",
|
|
3119
3521
|
"two-step.password.title": "Has\u0142o",
|
|
3120
|
-
"two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
|
|
3121
3522
|
"two-step.webauthn.title": "Klucz bezpiecze\u0144stwa",
|
|
3523
|
+
"two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
|
|
3524
|
+
"two-step.totp.title": "U\u017Cyj swojej aplikacji uwierzytelniaj\u0105cej (TOTP)",
|
|
3525
|
+
"two-step.totp.description": "U\u017Cyj 6-cyfrowego jednorazowego kodu z Twojej aplikacji uwierzytelniaj\u0105cej",
|
|
3526
|
+
"two-step.lookup_secret.title": "Kod odzyskiwania zapasowego",
|
|
3527
|
+
"two-step.lookup_secret.description": "U\u017Cyj jednego z Twoich 8-cyfrowych kod\xF3w zapasowych, aby si\u0119 uwierzytelni\u0107",
|
|
3122
3528
|
"identities.messages.1010016": "",
|
|
3123
3529
|
"identities.messages.1010017": "",
|
|
3124
3530
|
"identities.messages.1010018": "",
|
|
@@ -3193,7 +3599,27 @@ var pl_default = {
|
|
|
3193
3599
|
"property.password": "",
|
|
3194
3600
|
"property.phone": "",
|
|
3195
3601
|
"property.username": "",
|
|
3196
|
-
"property.identifier": ""
|
|
3602
|
+
"property.identifier": "",
|
|
3603
|
+
"consent.title": "Autoryzuj {party}",
|
|
3604
|
+
"consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
|
|
3605
|
+
"consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
|
|
3606
|
+
"consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
|
|
3607
|
+
"consent.scope.offline_access.title": "Dost\u0119p offline",
|
|
3608
|
+
"consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
|
|
3609
|
+
"consent.scope.profile.title": "Informacje profilowe",
|
|
3610
|
+
"consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
|
|
3611
|
+
"consent.scope.email.title": "Adres e-mail",
|
|
3612
|
+
"consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
|
|
3613
|
+
"consent.scope.address.title": "Adres fizyczny",
|
|
3614
|
+
"consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
|
|
3615
|
+
"consent.scope.phone.title": "Numer telefonu",
|
|
3616
|
+
"consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
|
|
3617
|
+
"error.action.go-back": "",
|
|
3618
|
+
"error.footer.copy": "",
|
|
3619
|
+
"error.footer.text": "",
|
|
3620
|
+
"error.title.what-can-i-do": "",
|
|
3621
|
+
"error.title.what-happened": "",
|
|
3622
|
+
"error.instructions": ""
|
|
3197
3623
|
};
|
|
3198
3624
|
|
|
3199
3625
|
// src/locales/pt.json
|
|
@@ -3219,9 +3645,9 @@ var pt_default = {
|
|
|
3219
3645
|
"identities.messages.1010005": "Verificar",
|
|
3220
3646
|
"identities.messages.1010006": "C\xF3digo de Autentica\xE7\xE3o",
|
|
3221
3647
|
"identities.messages.1010007": "C\xF3digo de Recupera\xE7\xE3o de Backup",
|
|
3222
|
-
"identities.messages.1010008": "
|
|
3223
|
-
"identities.messages.1010009": "
|
|
3224
|
-
"identities.messages.1010010": "
|
|
3648
|
+
"identities.messages.1010008": "Continuar com chave de hardware",
|
|
3649
|
+
"identities.messages.1010009": "Continuar",
|
|
3650
|
+
"identities.messages.1010010": "Continuar",
|
|
3225
3651
|
"identities.messages.1010011": "Continuar com a chave de seguran\xE7a",
|
|
3226
3652
|
"identities.messages.1010012": "Prepare o seu dispositivo WebAuthn (por exemplo, chave de seguran\xE7a, scanner biom\xE9trico, ...) e pressione continuar.",
|
|
3227
3653
|
"identities.messages.1010013": "Continuar",
|
|
@@ -3337,8 +3763,16 @@ var pt_default = {
|
|
|
3337
3763
|
"login.registration-label": "N\xE3o tem uma conta?",
|
|
3338
3764
|
"login.subtitle-oauth2": "Para autenticar {clientName}",
|
|
3339
3765
|
"login.title": "Entrar",
|
|
3340
|
-
"login.title-aal2": "Autentica\xE7\xE3o de
|
|
3766
|
+
"login.title-aal2": "Autentica\xE7\xE3o de dois fatores",
|
|
3767
|
+
"login.subtitle-aal2": "Escolha uma forma de completar sua autentica\xE7\xE3o de segundo fator",
|
|
3768
|
+
"login.code.subtitle": "Um c\xF3digo de verifica\xE7\xE3o ser\xE1 enviado por e-mail",
|
|
3769
|
+
"login.webauthn.subtitle": "Por favor, prepare seu dispositivo WebAuthN",
|
|
3770
|
+
"login.totp.subtitle": "Digite o c\xF3digo gerado pelo seu aplicativo autenticador",
|
|
3771
|
+
"login.lookup_secret.subtitle": "Digite um dos seus c\xF3digos de recupera\xE7\xE3o de 8 d\xEDgitos",
|
|
3341
3772
|
"login.title-refresh": "Confirme que \xE9 voc\xEA",
|
|
3773
|
+
"login.2fa.go-back": "Algo n\xE3o est\xE1 funcionando?",
|
|
3774
|
+
"login.2fa.go-back.link": "Voltar",
|
|
3775
|
+
"login.2fa.method.go-back": "Escolher outro m\xE9todo",
|
|
3342
3776
|
"logout.accept-button": "Sim",
|
|
3343
3777
|
"logout.reject-button": "N\xE3o",
|
|
3344
3778
|
"logout.title": "Deseja sair?",
|
|
@@ -3370,8 +3804,12 @@ var pt_default = {
|
|
|
3370
3804
|
"two-step.passkey.title": "Chave de acesso (recomendado)",
|
|
3371
3805
|
"two-step.password.description": "Insira a sua senha associada \xE0 sua conta",
|
|
3372
3806
|
"two-step.password.title": "Senha",
|
|
3373
|
-
"two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
|
|
3374
3807
|
"two-step.webauthn.title": "Chave de Seguran\xE7a",
|
|
3808
|
+
"two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
|
|
3809
|
+
"two-step.totp.title": "Use seu aplicativo autenticador (TOTP)",
|
|
3810
|
+
"two-step.totp.description": "Use um c\xF3digo \xFAnico de 6 d\xEDgitos do seu aplicativo autenticador",
|
|
3811
|
+
"two-step.lookup_secret.title": "C\xF3digo de recupera\xE7\xE3o de backup",
|
|
3812
|
+
"two-step.lookup_secret.description": "Use um dos seus c\xF3digos de backup de 8 d\xEDgitos para autenticar",
|
|
3375
3813
|
"identities.messages.1010016": "",
|
|
3376
3814
|
"identities.messages.1010017": "",
|
|
3377
3815
|
"identities.messages.1010018": "",
|
|
@@ -3446,7 +3884,27 @@ var pt_default = {
|
|
|
3446
3884
|
"property.identifier": "",
|
|
3447
3885
|
"property.password": "",
|
|
3448
3886
|
"property.phone": "",
|
|
3449
|
-
"property.username": ""
|
|
3887
|
+
"property.username": "",
|
|
3888
|
+
"consent.title": "Autorizar {party}",
|
|
3889
|
+
"consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
|
|
3890
|
+
"consent.scope.openid.title": "Identidade",
|
|
3891
|
+
"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.",
|
|
3892
|
+
"consent.scope.offline_access.title": "Acesso Offline",
|
|
3893
|
+
"consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
|
|
3894
|
+
"consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
|
|
3895
|
+
"consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
|
|
3896
|
+
"consent.scope.email.title": "Endere\xE7o de E-mail",
|
|
3897
|
+
"consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
|
|
3898
|
+
"consent.scope.address.title": "Endere\xE7o F\xEDsico",
|
|
3899
|
+
"consent.scope.address.description": "Acesse seu endere\xE7o postal.",
|
|
3900
|
+
"consent.scope.phone.title": "N\xFAmero de Telefone",
|
|
3901
|
+
"consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
|
|
3902
|
+
"error.action.go-back": "",
|
|
3903
|
+
"error.footer.copy": "",
|
|
3904
|
+
"error.footer.text": "",
|
|
3905
|
+
"error.title.what-can-i-do": "",
|
|
3906
|
+
"error.title.what-happened": "",
|
|
3907
|
+
"error.instructions": ""
|
|
3450
3908
|
};
|
|
3451
3909
|
|
|
3452
3910
|
// src/locales/sv.json
|
|
@@ -3472,9 +3930,9 @@ var sv_default = {
|
|
|
3472
3930
|
"identities.messages.1010005": "Verifiera",
|
|
3473
3931
|
"identities.messages.1010006": "Autentiseringskod",
|
|
3474
3932
|
"identities.messages.1010007": "\xC5terst\xE4llningskod f\xF6r backup",
|
|
3475
|
-
"identities.messages.1010008": "
|
|
3476
|
-
"identities.messages.1010009": "
|
|
3477
|
-
"identities.messages.1010010": "
|
|
3933
|
+
"identities.messages.1010008": "Forts\xE4tt med s\xE4kerhetsnyckel",
|
|
3934
|
+
"identities.messages.1010009": "Forts\xE4tt",
|
|
3935
|
+
"identities.messages.1010010": "Forts\xE4tt",
|
|
3478
3936
|
"identities.messages.1010011": "Forts\xE4tt med s\xE4kerhetsnyckel",
|
|
3479
3937
|
"identities.messages.1010012": "F\xF6rbered din WebAuthn-enhet (t.ex. s\xE4kerhetsnyckel, biometriska skanner, ...) och tryck p\xE5 forts\xE4tt.",
|
|
3480
3938
|
"identities.messages.1010013": "Forts\xE4tt",
|
|
@@ -3609,7 +4067,15 @@ var sv_default = {
|
|
|
3609
4067
|
"login.subtitle-oauth2": "Att autentisera {clientName}",
|
|
3610
4068
|
"login.title": "Logga in",
|
|
3611
4069
|
"login.title-aal2": "Tv\xE5faktorsautentisering",
|
|
4070
|
+
"login.subtitle-aal2": "V\xE4lj ett s\xE4tt att slutf\xF6ra din tv\xE5faktorsautentisering",
|
|
4071
|
+
"login.code.subtitle": "En verifieringskod kommer att skickas via e-post",
|
|
4072
|
+
"login.webauthn.subtitle": "F\xF6rbered din WebAuthN-enhet",
|
|
4073
|
+
"login.totp.subtitle": "Ange koden som genererats av din autentiseringsapp",
|
|
4074
|
+
"login.lookup_secret.subtitle": "Ange en av dina 8-siffriga \xE5terst\xE4llningskoder",
|
|
3612
4075
|
"login.title-refresh": "Bekr\xE4fta att det \xE4r du",
|
|
4076
|
+
"login.2fa.go-back": "N\xE5got fungerar inte?",
|
|
4077
|
+
"login.2fa.go-back.link": "G\xE5 tillbaka",
|
|
4078
|
+
"login.2fa.method.go-back": "V\xE4lj en annan metod",
|
|
3613
4079
|
"logout.accept-button": "Ja",
|
|
3614
4080
|
"logout.reject-button": "Nej",
|
|
3615
4081
|
"logout.title": "Vill du logga ut?",
|
|
@@ -3641,8 +4107,12 @@ var sv_default = {
|
|
|
3641
4107
|
"two-step.passkey.title": "Passerkod (rekommenderad)",
|
|
3642
4108
|
"two-step.password.description": "Ange ditt l\xF6senord kopplat till ditt konto",
|
|
3643
4109
|
"two-step.password.title": "L\xF6senord",
|
|
3644
|
-
"two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
|
|
3645
4110
|
"two-step.webauthn.title": "S\xE4kerhetsnyckel",
|
|
4111
|
+
"two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
|
|
4112
|
+
"two-step.totp.title": "Anv\xE4nd din autentiseringsapp (TOTP)",
|
|
4113
|
+
"two-step.totp.description": "Anv\xE4nd en 6-siffrig eng\xE5ngskod fr\xE5n din autentiseringsapp",
|
|
4114
|
+
"two-step.lookup_secret.title": "Reserv\xE5terst\xE4llningskod",
|
|
4115
|
+
"two-step.lookup_secret.description": "Anv\xE4nd en av dina 8-siffriga reservkoder f\xF6r att autentisera",
|
|
3646
4116
|
"identities.messages.4000037": "Detta konto finns inte eller har ingen inloggningsmetod konfigurerad.",
|
|
3647
4117
|
"identities.messages.4000038": "Captcha-verifiering misslyckades, f\xF6rs\xF6k igen.",
|
|
3648
4118
|
"identities.messages.1010020": "",
|
|
@@ -3699,7 +4169,27 @@ var sv_default = {
|
|
|
3699
4169
|
"property.phone": "telefon",
|
|
3700
4170
|
"property.username": "anv\xE4ndarnamn",
|
|
3701
4171
|
"property.identifier": "identifier",
|
|
3702
|
-
"property.code": "kod"
|
|
4172
|
+
"property.code": "kod",
|
|
4173
|
+
"consent.title": "Auktorisera {party}",
|
|
4174
|
+
"consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
|
|
4175
|
+
"consent.scope.openid.title": "Identitet",
|
|
4176
|
+
"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.",
|
|
4177
|
+
"consent.scope.offline_access.title": "Offline-\xE5tkomst",
|
|
4178
|
+
"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.",
|
|
4179
|
+
"consent.scope.profile.title": "Profilinformation",
|
|
4180
|
+
"consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
|
|
4181
|
+
"consent.scope.email.title": "E-postadress",
|
|
4182
|
+
"consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
|
|
4183
|
+
"consent.scope.address.title": "Fysisk adress",
|
|
4184
|
+
"consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
|
|
4185
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
4186
|
+
"consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
|
|
4187
|
+
"error.action.go-back": "",
|
|
4188
|
+
"error.footer.copy": "",
|
|
4189
|
+
"error.footer.text": "",
|
|
4190
|
+
"error.title.what-can-i-do": "",
|
|
4191
|
+
"error.title.what-happened": "",
|
|
4192
|
+
"error.instructions": ""
|
|
3703
4193
|
};
|
|
3704
4194
|
|
|
3705
4195
|
// src/locales/index.ts
|
|
@@ -3714,6 +4204,6 @@ var OryLocales = {
|
|
|
3714
4204
|
sv: sv_default
|
|
3715
4205
|
};
|
|
3716
4206
|
|
|
3717
|
-
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
|
|
4207
|
+
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryConsentCard, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
|
|
3718
4208
|
//# sourceMappingURL=index.mjs.map
|
|
3719
4209
|
//# sourceMappingURL=index.mjs.map
|