@leancodepl/kratos 10.0.2 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +134 -42
- package/dist/index.js +1260 -1249
- package/dist/index.umd.cjs +1 -1
- package/dist/lib/factories/mkKratos.d.ts +14 -9
- package/dist/lib/factories/mkKratos.d.ts.map +1 -1
- package/dist/lib/flows/login/chooseMethodForm/ChooseMethodFormWrapper.d.ts +13 -22
- package/dist/lib/flows/login/chooseMethodForm/ChooseMethodFormWrapper.d.ts.map +1 -1
- package/dist/lib/flows/login/loginFlow.d.ts +5 -3
- package/dist/lib/flows/login/loginFlow.d.ts.map +1 -1
- package/dist/lib/flows/registration/registrationFlow.d.ts +5 -4
- package/dist/lib/flows/registration/registrationFlow.d.ts.map +1 -1
- package/dist/lib/flows/registration/traitsForm/TraitsFormWrapper.d.ts +7 -14
- package/dist/lib/flows/registration/traitsForm/TraitsFormWrapper.d.ts.map +1 -1
- package/dist/lib/flows/settings/oidcForm/OidcFormWrapper.d.ts +7 -11
- package/dist/lib/flows/settings/oidcForm/OidcFormWrapper.d.ts.map +1 -1
- package/dist/lib/flows/settings/oidcForm/providers.d.ts +1 -2
- package/dist/lib/flows/settings/oidcForm/providers.d.ts.map +1 -1
- package/dist/lib/flows/settings/settingsFlow.d.ts +7 -5
- package/dist/lib/flows/settings/settingsFlow.d.ts.map +1 -1
- package/dist/lib/utils/flow.d.ts +12 -8
- package/dist/lib/utils/flow.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/oidcProviders.d.ts +18 -0
- package/dist/lib/utils/oidcProviders.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -8,14 +8,15 @@ import { SettingsFlowProps } from '../flows/settings';
|
|
|
8
8
|
import { VerificationFlowProps } from '../flows/verification';
|
|
9
9
|
import { BaseSessionManager } from '../sessionManager';
|
|
10
10
|
import { BaseSessionManagerContructorProps } from '../sessionManager/baseSessionManager';
|
|
11
|
-
import { TraitsConfig } from '../utils';
|
|
12
|
-
export type MkKratosConfig<TTraitsConfig extends TraitsConfig, TSessionManager extends BaseSessionManager<TTraitsConfig
|
|
11
|
+
import { OidcProvidersConfig, TraitsConfig } from '../utils';
|
|
12
|
+
export type MkKratosConfig<TTraitsConfig extends TraitsConfig, TSessionManager extends BaseSessionManager<TTraitsConfig>, TOidcProvidersConfig extends OidcProvidersConfig> = {
|
|
13
13
|
queryClient: QueryClient;
|
|
14
14
|
basePath: string;
|
|
15
15
|
traits?: TTraitsConfig;
|
|
16
16
|
SessionManager?: new (props: BaseSessionManagerContructorProps) => TSessionManager;
|
|
17
|
+
oidcProviders?: TOidcProvidersConfig;
|
|
17
18
|
};
|
|
18
|
-
export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
19
|
+
export type FlowsConfig<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
19
20
|
/**
|
|
20
21
|
* Provides logout functionality for Kratos authentication flows.
|
|
21
22
|
*
|
|
@@ -72,7 +73,7 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
72
73
|
* />
|
|
73
74
|
* ```
|
|
74
75
|
*/
|
|
75
|
-
LoginFlow: ComponentType<LoginFlowProps
|
|
76
|
+
LoginFlow: ComponentType<LoginFlowProps<TOidcProvidersConfig>>;
|
|
76
77
|
/**
|
|
77
78
|
* Renders a multi-step password recovery flow with email verification and password reset.
|
|
78
79
|
*
|
|
@@ -131,7 +132,7 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
131
132
|
* />
|
|
132
133
|
* ```
|
|
133
134
|
*/
|
|
134
|
-
RegistrationFlow: ComponentType<Omit<RegistrationFlowProps<TTraitsConfig>, "traitsConfig">>;
|
|
135
|
+
RegistrationFlow: ComponentType<Omit<RegistrationFlowProps<TTraitsConfig, TOidcProvidersConfig>, "traitsConfig">>;
|
|
135
136
|
/**
|
|
136
137
|
* Renders a complete settings flow with user account management capabilities.
|
|
137
138
|
*
|
|
@@ -160,7 +161,7 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
160
161
|
* />
|
|
161
162
|
* ```
|
|
162
163
|
*/
|
|
163
|
-
SettingsFlow: ComponentType<Omit<SettingsFlowProps<TTraitsConfig>, "traitsConfig">>;
|
|
164
|
+
SettingsFlow: ComponentType<Omit<SettingsFlowProps<TTraitsConfig, TOidcProvidersConfig>, "traitsConfig">>;
|
|
164
165
|
/**
|
|
165
166
|
* Renders email verification flow with provider context and flow management.
|
|
166
167
|
*
|
|
@@ -189,10 +190,12 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
189
190
|
*
|
|
190
191
|
* @template TTraitsConfig - Configuration type for user traits schema
|
|
191
192
|
* @template TSessionManager - Session manager implementation extending {@link BaseSessionManager}
|
|
193
|
+
* @template TOidcProvidersConfig - Configuration type for OIDC providers array
|
|
192
194
|
* @param queryClient - React Query client instance for managing server state
|
|
193
195
|
* @param basePath - Base URL for the Kratos API server
|
|
194
196
|
* @param traits - Optional traits configuration object for user schema validation
|
|
195
197
|
* @param SessionManager - Optional session manager constructor, defaults to {@link BaseSessionManager}
|
|
198
|
+
* @param oidcProviders - Optional array of custom OIDC provider configurations. Each provider should have an `id` (matching Kratos provider ID). Define as `as const` for type safety.
|
|
196
199
|
* @returns Object containing authentication flows, React providers, and session manager
|
|
197
200
|
* @example
|
|
198
201
|
* ```tsx
|
|
@@ -200,10 +203,12 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
200
203
|
* import { mkKratos } from "@leancodepl/kratos";
|
|
201
204
|
*
|
|
202
205
|
* const queryClient = new QueryClient();
|
|
206
|
+
* const oidcProviders = [{ id: "google" }, { id: "github" }] as const;
|
|
203
207
|
* const kratos = mkKratos({
|
|
204
208
|
* queryClient,
|
|
205
209
|
* basePath: "https://api.example.com/.ory",
|
|
206
|
-
* traits: { Email: { trait: "email", type: "string", }, GivenName: { trait: "given_name", type: "string", } } as const
|
|
210
|
+
* traits: { Email: { trait: "email", type: "string", }, GivenName: { trait: "given_name", type: "string", } } as const,
|
|
211
|
+
* oidcProviders,
|
|
207
212
|
* });
|
|
208
213
|
*
|
|
209
214
|
* // Use flows
|
|
@@ -221,8 +226,8 @@ export type FlowsConfig<TTraitsConfig extends TraitsConfig> = {
|
|
|
221
226
|
* }
|
|
222
227
|
* ```
|
|
223
228
|
*/
|
|
224
|
-
export declare function mkKratos<TTraitsConfig extends TraitsConfig, TSessionManager extends BaseSessionManager<TTraitsConfig
|
|
225
|
-
flows: FlowsConfig<TTraitsConfig>;
|
|
229
|
+
export declare function mkKratos<TTraitsConfig extends TraitsConfig, TSessionManager extends BaseSessionManager<TTraitsConfig>, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ queryClient, basePath, traits, SessionManager, oidcProviders, }: MkKratosConfig<TTraitsConfig, TSessionManager, TOidcProvidersConfig>): {
|
|
230
|
+
flows: FlowsConfig<TTraitsConfig, TOidcProvidersConfig>;
|
|
226
231
|
providers: {
|
|
227
232
|
/**
|
|
228
233
|
* Provides React context for Kratos authentication flows and session management.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mkKratos.d.ts","sourceRoot":"","sources":["../../../src/lib/factories/mkKratos.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAG7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"mkKratos.d.ts","sourceRoot":"","sources":["../../../src/lib/factories/mkKratos.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import { AuthError } from '../../../utils';
|
|
2
|
+
import { AuthError, OidcProviderComponents, OidcProvidersConfig } from '../../../utils';
|
|
3
3
|
import { OnLoginFlowError } from '../types';
|
|
4
|
-
type
|
|
5
|
-
Google: ComponentType<{
|
|
6
|
-
children: ReactNode;
|
|
7
|
-
}>;
|
|
8
|
-
Passkey: ComponentType<{
|
|
9
|
-
children: ReactNode;
|
|
10
|
-
}>;
|
|
11
|
-
Apple: ComponentType<{
|
|
12
|
-
children: ReactNode;
|
|
13
|
-
}>;
|
|
14
|
-
Facebook: ComponentType<{
|
|
15
|
-
children: ReactNode;
|
|
16
|
-
}>;
|
|
17
|
-
};
|
|
18
|
-
type ChooseMethodFormPropsLoadedBase = {
|
|
4
|
+
type ChooseMethodFormPropsLoadedBase<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
19
5
|
errors: AuthError[];
|
|
20
6
|
isSubmitting: boolean;
|
|
21
7
|
isValidating: boolean;
|
|
8
|
+
Passkey: ComponentType<{
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}> | undefined;
|
|
11
|
+
oidcProviders: OidcProviderComponents<TOidcProvidersConfig>;
|
|
22
12
|
};
|
|
23
|
-
type ChooseMethodFormPropsLoadedRefresh =
|
|
13
|
+
type ChooseMethodFormPropsLoadedRefresh<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = ChooseMethodFormPropsLoadedBase<TOidcProvidersConfig> & {
|
|
24
14
|
isRefresh: true;
|
|
25
15
|
identifier?: string;
|
|
26
16
|
passwordFields?: {
|
|
@@ -32,7 +22,7 @@ type ChooseMethodFormPropsLoadedRefresh = ChooseMethodFormPropsLoadedBase & Part
|
|
|
32
22
|
}>;
|
|
33
23
|
};
|
|
34
24
|
};
|
|
35
|
-
type ChooseMethodFormPropsLoaded =
|
|
25
|
+
type ChooseMethodFormPropsLoaded<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = ChooseMethodFormPropsLoadedBase<TOidcProvidersConfig> & {
|
|
36
26
|
isRefresh?: false;
|
|
37
27
|
passwordFields: {
|
|
38
28
|
Identifier: ComponentType<{
|
|
@@ -46,13 +36,14 @@ type ChooseMethodFormPropsLoaded = ChooseMethodFormPropsComponentsBase & ChooseM
|
|
|
46
36
|
}>;
|
|
47
37
|
};
|
|
48
38
|
};
|
|
49
|
-
export type ChooseMethodFormProps = ChooseMethodFormPropsLoaded | ChooseMethodFormPropsLoadedRefresh
|
|
50
|
-
type ChooseMethodFormWrapperProps = {
|
|
51
|
-
chooseMethodForm: ComponentType<ChooseMethodFormProps
|
|
39
|
+
export type ChooseMethodFormProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = ChooseMethodFormPropsLoaded<TOidcProvidersConfig> | ChooseMethodFormPropsLoadedRefresh<TOidcProvidersConfig>;
|
|
40
|
+
type ChooseMethodFormWrapperProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
41
|
+
chooseMethodForm: ComponentType<ChooseMethodFormProps<TOidcProvidersConfig>>;
|
|
42
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
52
43
|
isRefresh: boolean | undefined;
|
|
53
44
|
onError?: OnLoginFlowError;
|
|
54
45
|
onLoginSuccess?: () => void;
|
|
55
46
|
};
|
|
56
|
-
export declare function ChooseMethodFormWrapper({ chooseMethodForm: ChooseMethodForm, isRefresh, onError, onLoginSuccess, }: ChooseMethodFormWrapperProps): import("react/jsx-runtime").JSX.Element | null;
|
|
47
|
+
export declare function ChooseMethodFormWrapper<TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ chooseMethodForm: ChooseMethodForm, oidcProvidersConfig, isRefresh, onError, onLoginSuccess, }: ChooseMethodFormWrapperProps<TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element | null;
|
|
57
48
|
export {};
|
|
58
49
|
//# sourceMappingURL=ChooseMethodFormWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChooseMethodFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/login/chooseMethodForm/ChooseMethodFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"ChooseMethodFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/login/chooseMethodForm/ChooseMethodFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,aAAa,EAAE,SAAS,EAAwB,MAAM,OAAO,CAAA;AAGtF,OAAO,EACL,SAAS,EAIT,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAK3C,KAAK,+BAA+B,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAAI;IACrG,MAAM,EAAE,SAAS,EAAE,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,SAAS,CAAA;IAC3D,aAAa,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAA;CAC5D,CAAA;AAED,KAAK,kCAAkC,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IACpG,+BAA+B,CAAC,oBAAoB,CAAC,GAAG;IACtD,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE;QACf,QAAQ,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;QAChD,MAAM,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;KAC/C,CAAA;CACF,CAAA;AAEH,KAAK,2BAA2B,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC7F,+BAA+B,CAAC,oBAAoB,CAAC,GAAG;IACtD,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,cAAc,EAAE;QACd,UAAU,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;QAClD,QAAQ,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;QAChD,MAAM,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;KAC/C,CAAA;CACF,CAAA;AAEH,MAAM,MAAM,qBAAqB,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC5F,2BAA2B,CAAC,oBAAoB,CAAC,GACjD,kCAAkC,CAAC,oBAAoB,CAAC,CAAA;AAE5D,KAAK,4BAA4B,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAAI;IAClG,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC5E,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,SAAS,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAED,wBAAgB,uBAAuB,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAAE,EACtG,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EACnB,SAAS,EACT,OAAO,EACP,cAAc,GACf,EAAE,4BAA4B,CAAC,oBAAoB,CAAC,kDA4EpD"}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
|
+
import { OidcProvidersConfig } from '../../utils';
|
|
2
3
|
import { EmailVerificationFormProps } from '../verification';
|
|
3
4
|
import { ChooseMethodFormProps } from './chooseMethodForm';
|
|
4
5
|
import { SecondFactorEmailFormProps } from './secondFactorEmailForm';
|
|
5
6
|
import { SecondFactorFormProps } from './secondFactorForm';
|
|
6
7
|
import { OnLoginFlowError } from './types';
|
|
7
|
-
export type LoginFlowProps = {
|
|
8
|
+
export type LoginFlowProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
8
9
|
loaderComponent?: ComponentType;
|
|
9
|
-
chooseMethodForm: ComponentType<ChooseMethodFormProps
|
|
10
|
+
chooseMethodForm: ComponentType<ChooseMethodFormProps<TOidcProvidersConfig>>;
|
|
10
11
|
secondFactorForm: ComponentType<SecondFactorFormProps>;
|
|
11
12
|
secondFactorEmailForm: ComponentType<SecondFactorEmailFormProps>;
|
|
12
13
|
emailVerificationForm: ComponentType<EmailVerificationFormProps>;
|
|
14
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
13
15
|
initialFlowId?: string;
|
|
14
16
|
returnTo?: string;
|
|
15
17
|
onError?: OnLoginFlowError;
|
|
@@ -57,5 +59,5 @@ export type LoginFlowProps = {
|
|
|
57
59
|
* }
|
|
58
60
|
* ```
|
|
59
61
|
*/
|
|
60
|
-
export declare function LoginFlow(props: LoginFlowProps): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export declare function LoginFlow<TOidcProvidersConfig extends OidcProvidersConfig = readonly []>(props: LoginFlowProps<TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
61
63
|
//# sourceMappingURL=loginFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/login/loginFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAGzD,OAAO,EACL,0BAA0B,EAI3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,qBAAqB,EAA2B,MAAM,oBAAoB,CAAA;AAEnF,OAAO,EAAE,0BAA0B,EAAgC,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,qBAAqB,EAA2B,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,MAAM,cAAc,GAAG;
|
|
1
|
+
{"version":3,"file":"loginFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/login/loginFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EACL,0BAA0B,EAI3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,qBAAqB,EAA2B,MAAM,oBAAoB,CAAA;AAEnF,OAAO,EAAE,0BAA0B,EAAgC,MAAM,yBAAyB,CAAA;AAClG,OAAO,EAAE,qBAAqB,EAA2B,MAAM,oBAAoB,CAAA;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,MAAM,cAAc,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAAI;IAC3F,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC5E,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;IACtD,qBAAqB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAA;IAChE,qBAAqB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAA;IAChE,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAA;CACvC,CAAA;AA0GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,SAAS,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,oBAAoB,CAAC,2CAQpI"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
|
-
import { TraitsConfig } from '../../utils';
|
|
2
|
+
import { OidcProvidersConfig, TraitsConfig } from '../../utils';
|
|
3
3
|
import { EmailVerificationFormProps } from '../verification';
|
|
4
4
|
import { ChooseMethodFormProps } from './chooseMethodForm';
|
|
5
5
|
import { TraitsFormProps } from './traitsForm';
|
|
6
6
|
import { OnRegistrationFlowError } from './types';
|
|
7
|
-
export type RegistrationFlowProps<TTraitsConfig extends TraitsConfig> = {
|
|
7
|
+
export type RegistrationFlowProps<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
8
8
|
traitsConfig: TTraitsConfig;
|
|
9
|
-
|
|
9
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
10
|
+
traitsForm: ComponentType<TraitsFormProps<TTraitsConfig, TOidcProvidersConfig>>;
|
|
10
11
|
chooseMethodForm: ComponentType<ChooseMethodFormProps>;
|
|
11
12
|
emailVerificationForm: ComponentType<EmailVerificationFormProps>;
|
|
12
13
|
initialFlowId?: string;
|
|
@@ -58,5 +59,5 @@ export type RegistrationFlowProps<TTraitsConfig extends TraitsConfig> = {
|
|
|
58
59
|
* }
|
|
59
60
|
* ```
|
|
60
61
|
*/
|
|
61
|
-
export declare function RegistrationFlow<TTraitsConfig extends TraitsConfig>(props: RegistrationFlowProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export declare function RegistrationFlow<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>(props: RegistrationFlowProps<TTraitsConfig, TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
62
63
|
//# sourceMappingURL=registrationFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrationFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/registration/registrationFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"registrationFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/registration/registrationFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAGzD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EACL,0BAA0B,EAI3B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,qBAAqB,EAA2B,MAAM,oBAAoB,CAAA;AAOnF,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEjD,MAAM,MAAM,qBAAqB,CAC/B,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC5D;IACF,YAAY,EAAE,aAAa,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC/E,gBAAgB,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAA;IACtD,qBAAqB,EAAE,aAAa,CAAC,0BAA0B,CAAC,CAAA;IAChE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAA;IAChD,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAA;CACvC,CAAA;AAmFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAC9D,KAAK,EAAE,qBAAqB,CAAC,aAAa,EAAE,oBAAoB,CAAC,2CAQlE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import { AuthError, TraitsConfig } from '../../../utils';
|
|
2
|
+
import { AuthError, OidcProviderComponents, OidcProvidersConfig, TraitsConfig } from '../../../utils';
|
|
3
3
|
import { OnRegistrationFlowError } from '../types';
|
|
4
4
|
import { TraitCheckbox, TraitInput } from './fields';
|
|
5
5
|
type TraitsComponents<TTraitsConfig extends TraitsConfig> = {
|
|
@@ -9,31 +9,24 @@ type TraitsComponents<TTraitsConfig extends TraitsConfig> = {
|
|
|
9
9
|
type: "boolean";
|
|
10
10
|
} ? ComponentType<Omit<typeof TraitCheckbox, "trait">> : never;
|
|
11
11
|
};
|
|
12
|
-
export type TraitsFormProps<TTraitsConfig extends TraitsConfig> = {
|
|
12
|
+
export type TraitsFormProps<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
13
13
|
traitFields: TraitsComponents<TTraitsConfig> & {
|
|
14
14
|
Submit: ComponentType<{
|
|
15
15
|
children: ReactNode;
|
|
16
16
|
}>;
|
|
17
17
|
};
|
|
18
|
-
|
|
19
|
-
children: ReactNode;
|
|
20
|
-
}>;
|
|
21
|
-
Apple: ComponentType<{
|
|
22
|
-
children: ReactNode;
|
|
23
|
-
}>;
|
|
24
|
-
Facebook: ComponentType<{
|
|
25
|
-
children: ReactNode;
|
|
26
|
-
}>;
|
|
18
|
+
oidcProviders: OidcProviderComponents<TOidcProvidersConfig>;
|
|
27
19
|
errors: Array<AuthError>;
|
|
28
20
|
isSubmitting: boolean;
|
|
29
21
|
isValidating: boolean;
|
|
30
22
|
};
|
|
31
|
-
type TraitsFormWrapperProps<TTraitsConfig extends TraitsConfig> = {
|
|
23
|
+
type TraitsFormWrapperProps<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
32
24
|
traitsConfig: TTraitsConfig;
|
|
33
|
-
|
|
25
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
26
|
+
traitsForm: ComponentType<TraitsFormProps<TTraitsConfig, TOidcProvidersConfig>>;
|
|
34
27
|
onError?: OnRegistrationFlowError<TTraitsConfig>;
|
|
35
28
|
onRegistrationSuccess?: () => void;
|
|
36
29
|
};
|
|
37
|
-
export declare function TraitsFormWrapper<TTraitsConfig extends TraitsConfig>({ traitsConfig, traitsForm: TraitsForm, onError, onRegistrationSuccess, }: TraitsFormWrapperProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare function TraitsFormWrapper<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ traitsConfig, oidcProvidersConfig, traitsForm: TraitsForm, onError, onRegistrationSuccess, }: TraitsFormWrapperProps<TTraitsConfig, TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
38
31
|
export {};
|
|
39
32
|
//# sourceMappingURL=TraitsFormWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TraitsFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/registration/traitsForm/TraitsFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TraitsFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/registration/traitsForm/TraitsFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AAGzD,OAAO,EACL,SAAS,EAGT,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAQ,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAI1D,KAAK,gBAAgB,CAAC,aAAa,SAAS,YAAY,IAAI;KACzD,CAAC,IAAI,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,GACnE,aAAa,CAAC,IAAI,CAAC,OAAO,UAAU,EAAE,OAAO,CAAC,CAAC,GAC/C,aAAa,CAAC,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GAC1C,aAAa,CAAC,IAAI,CAAC,OAAO,aAAa,EAAE,OAAO,CAAC,CAAC,GAClD,KAAK;CACZ,CAAA;AAED,MAAM,MAAM,eAAe,CACzB,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC5D;IACF,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,GAAG;QAC7C,MAAM,EAAE,aAAa,CAAC;YAAE,QAAQ,EAAE,SAAS,CAAA;SAAE,CAAC,CAAA;KAC/C,CAAA;IACD,aAAa,EAAE,sBAAsB,CAAC,oBAAoB,CAAC,CAAA;IAC3D,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,KAAK,sBAAsB,CACzB,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC5D;IACF,YAAY,EAAE,aAAa,CAAA;IAC3B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,EAAE,aAAa,CAAC,eAAe,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAC/E,OAAO,CAAC,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAA;IAChD,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;CACnC,CAAA;AAED,wBAAgB,iBAAiB,CAC/B,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAC9D,EACA,YAAY,EACZ,mBAAmB,EACnB,UAAU,EAAE,UAAU,EACtB,OAAO,EACP,qBAAqB,GACtB,EAAE,sBAAsB,CAAC,aAAa,EAAE,oBAAoB,CAAC,2CA2D7D"}
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import { ComponentType
|
|
2
|
-
import {
|
|
3
|
-
type
|
|
4
|
-
[key in Capitalize<TProvider>]?: ComponentType<{
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
}>;
|
|
7
|
-
};
|
|
8
|
-
export type OidcFormProps = OidcProviderComponents<OidcProvider> & {
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
import { OidcProviderComponents, OidcProvidersConfig } from '../../../utils';
|
|
3
|
+
export type OidcFormProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = OidcProviderComponents<TOidcProvidersConfig> & {
|
|
9
4
|
isLoading: boolean;
|
|
10
5
|
};
|
|
11
|
-
type OidcFormWrapperProps = {
|
|
12
|
-
oidcForm: ComponentType<OidcFormProps
|
|
6
|
+
type OidcFormWrapperProps<TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
7
|
+
oidcForm: ComponentType<OidcFormProps<TOidcProvidersConfig>>;
|
|
8
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
13
9
|
};
|
|
14
|
-
export declare function OidcFormWrapper({ oidcForm: OidcForm }: OidcFormWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function OidcFormWrapper<TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ oidcForm: OidcForm, oidcProvidersConfig, }: OidcFormWrapperProps<TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
15
11
|
export {};
|
|
16
12
|
//# sourceMappingURL=OidcFormWrapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OidcFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/settings/oidcForm/OidcFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"OidcFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/settings/oidcForm/OidcFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAA;AAEzD,OAAO,EAGL,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,gBAAgB,CAAA;AAKvB,MAAM,MAAM,aAAa,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IACtF,sBAAsB,CAAC,oBAAoB,CAAC,GAAG;IAC7C,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAEH,KAAK,oBAAoB,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAAI;IAC1F,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC5D,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;CAC3C,CAAA;AAED,wBAAgB,eAAe,CAAC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAAE,EAC9F,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,GACpB,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,2CA4B5C"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { UiNode } from '../../../kratos';
|
|
2
|
-
|
|
3
|
-
export declare const getOidcProviderType: (provider: OidcProvider, nodes: UiNode[]) => "link" | "unlink" | undefined;
|
|
2
|
+
export declare const getOidcProviderType: (provider: string, nodes: UiNode[]) => "link" | "unlink" | undefined;
|
|
4
3
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/settings/oidcForm/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../../src/lib/flows/settings/oidcForm/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,EAAE,OAAO,MAAM,EAAE,KAAG,MAAM,GAAG,QAAQ,GAAG,SAgB3F,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from 'react';
|
|
2
|
-
import { TraitsConfig } from '../../utils';
|
|
2
|
+
import { OidcProvidersConfig, TraitsConfig } from '../../utils';
|
|
3
3
|
import { NewPasswordFormProps } from './newPasswordForm';
|
|
4
4
|
import { OidcFormProps } from './oidcForm';
|
|
5
5
|
import { PasskeysFormProps } from './passkeysForm';
|
|
@@ -15,13 +15,14 @@ export type SettingsFormProps = {
|
|
|
15
15
|
totpForm?: ReactNode;
|
|
16
16
|
oidcForm?: ReactNode;
|
|
17
17
|
};
|
|
18
|
-
export type SettingsFlowProps<TTraitsConfig extends TraitsConfig> = {
|
|
18
|
+
export type SettingsFlowProps<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []> = {
|
|
19
19
|
traitsConfig?: TTraitsConfig;
|
|
20
|
+
oidcProvidersConfig?: TOidcProvidersConfig;
|
|
20
21
|
traitsForm?: ComponentType<TraitsFormProps<TTraitsConfig>>;
|
|
21
22
|
newPasswordForm?: ComponentType<NewPasswordFormProps>;
|
|
22
23
|
passkeysForm?: ComponentType<PasskeysFormProps>;
|
|
23
24
|
totpForm?: ComponentType<TotpFormProps>;
|
|
24
|
-
oidcForm?: ComponentType<OidcFormProps
|
|
25
|
+
oidcForm?: ComponentType<OidcFormProps<TOidcProvidersConfig>>;
|
|
25
26
|
initialFlowId?: string;
|
|
26
27
|
initialVerifiableAddress?: string;
|
|
27
28
|
onError?: OnSettingsFlowError<TTraitsConfig>;
|
|
@@ -34,6 +35,7 @@ export type SettingsFlowProps<TTraitsConfig extends TraitsConfig> = {
|
|
|
34
35
|
* Renders a complete settings flow with user account management capabilities.
|
|
35
36
|
*
|
|
36
37
|
* @template TTraitsConfig - Configuration type for user traits that extends TraitsConfig
|
|
38
|
+
* @template TOidcProvidersConfig - Configuration type for OIDC providers array
|
|
37
39
|
* @param props - Settings flow configuration and form components
|
|
38
40
|
* @param props.traitsConfig - Configuration for user traits fields
|
|
39
41
|
* @param props.traitsForm - Component for editing user traits/profile information
|
|
@@ -69,6 +71,6 @@ export type SettingsFlowProps<TTraitsConfig extends TraitsConfig> = {
|
|
|
69
71
|
* }
|
|
70
72
|
* ```
|
|
71
73
|
*/
|
|
72
|
-
export declare function SettingsFlow<TTraitsConfig extends TraitsConfig>(props: SettingsFlowProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element;
|
|
73
|
-
export declare function SettingsFlowWrapper<TTraitsConfig extends TraitsConfig>({ newPasswordForm: NewPasswordForm, traitsForm: TraitsForm, passkeysForm: PasskeysForm, totpForm: TotpForm, oidcForm: OidcForm, traitsConfig, settingsForm: SettingsForm, initialFlowId, onError, onChangePasswordSuccess, onChangeTraitsSuccess, onFlowRestart, }: SettingsFlowProps<TTraitsConfig>): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
export declare function SettingsFlow<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>(props: SettingsFlowProps<TTraitsConfig, TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
export declare function SettingsFlowWrapper<TTraitsConfig extends TraitsConfig, TOidcProvidersConfig extends OidcProvidersConfig = readonly []>({ newPasswordForm: NewPasswordForm, traitsForm: TraitsForm, passkeysForm: PasskeysForm, totpForm: TotpForm, oidcForm: OidcForm, traitsConfig, oidcProvidersConfig, settingsForm: SettingsForm, initialFlowId, onError, onChangePasswordSuccess, onChangeTraitsSuccess, onFlowRestart, }: SettingsFlowProps<TTraitsConfig, TOidcProvidersConfig>): import("react/jsx-runtime").JSX.Element;
|
|
74
76
|
//# sourceMappingURL=settingsFlow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settingsFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/settings/settingsFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"settingsFlow.d.ts","sourceRoot":"","sources":["../../../../src/lib/flows/settings/settingsFlow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,oBAAoB,EAA0B,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAuB,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAmB,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yBAAyB,EAAE,OAAO,CAAA;IAClC,eAAe,EAAE,SAAS,CAAA;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,iBAAiB,CAC3B,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,IAC5D;IACF,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAA;IAC1D,eAAe,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IACrD,YAAY,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACvC,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,OAAO,CAAC,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC5C,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAA;IACpC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAA;IAClC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,YAAY,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAC/C,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,YAAY,CAC1B,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAC9D,KAAK,EAAE,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,CAAC,2CAM9D;AAED,wBAAgB,mBAAmB,CACjC,aAAa,SAAS,YAAY,EAClC,oBAAoB,SAAS,mBAAmB,GAAG,SAAS,EAAE,EAC9D,EACA,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EAAE,YAAY,EAC1B,aAAa,EACb,OAAO,EACP,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,GACd,EAAE,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,CAAC,2CAuDxD"}
|
package/dist/lib/utils/flow.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { UiNode, UiNodeGroupEnum, UiNodeScriptAttributesNodeTypeEnum, UiNodeTypeEnum } from '../kratos';
|
|
1
|
+
import { UiNode, UiNodeGroupEnum, UiNodeInputAttributes, UiNodeScriptAttributesNodeTypeEnum, UiNodeTypeEnum } from '../kratos';
|
|
2
|
+
import { OidcProvidersConfig } from './oidcProviders';
|
|
2
3
|
export declare function getNodeById(nodes: UiNode[] | undefined, name: string): UiNode | undefined;
|
|
3
4
|
export declare function getNodesById(nodes: UiNode[] | undefined, name: string): UiNode[];
|
|
4
5
|
export declare function inputNodeAttributes(node?: UiNode): ({
|
|
5
6
|
node_type: "input";
|
|
6
|
-
} &
|
|
7
|
+
} & UiNodeInputAttributes) | undefined;
|
|
7
8
|
export declare function inputNodeMessages(node?: UiNode): import('../kratos').UiText[] | undefined;
|
|
8
9
|
export declare function getCsrfToken(flow: {
|
|
9
10
|
ui: {
|
|
@@ -30,17 +31,20 @@ export declare const isPasskeyRemoveUiNode: (node: UiNode) => node is UiNode & {
|
|
|
30
31
|
};
|
|
31
32
|
};
|
|
32
33
|
};
|
|
33
|
-
export declare const
|
|
34
|
-
export type
|
|
35
|
-
export type
|
|
34
|
+
export declare const defaultProviders: readonly ["apple", "facebook", "google"];
|
|
35
|
+
export type DefaultOidcProvider = (typeof defaultProviders)[number];
|
|
36
|
+
export type OidcProvider = DefaultOidcProvider | string;
|
|
37
|
+
export type OidcProviderUiNode<TProviderId extends string = string> = Omit<UiNode, "attributes" | "group"> & {
|
|
36
38
|
group: "oidc";
|
|
37
|
-
attributes: {
|
|
39
|
+
attributes: Omit<UiNodeInputAttributes, "node_type" | "value"> & {
|
|
38
40
|
node_type: "input";
|
|
39
|
-
value:
|
|
41
|
+
value: TProviderId;
|
|
40
42
|
};
|
|
41
43
|
};
|
|
42
44
|
export declare const isOidcProviderUiNode: (node: UiNode) => node is OidcProviderUiNode;
|
|
43
|
-
export declare const getOidcProviderUiNode: (nodes: UiNode[] | undefined, provider:
|
|
45
|
+
export declare const getOidcProviderUiNode: (nodes: UiNode[] | undefined, provider: string) => OidcProviderUiNode<string> | undefined;
|
|
46
|
+
export declare const getAllOidcProviderUiNodes: (nodes: UiNode[] | undefined) => OidcProviderUiNode[];
|
|
47
|
+
export declare const isOidcProviderInConfig: <TOidcProvidersConfig extends OidcProvidersConfig>(config: TOidcProvidersConfig | undefined, providerId: string) => providerId is TOidcProvidersConfig[number]["id"];
|
|
44
48
|
export declare const handleFlowErrorResponse: <TFlow>({ error }: {
|
|
45
49
|
error: unknown;
|
|
46
50
|
}) => Promise<TFlow | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,eAAe,EACf,kCAAkC,EAClC,cAAc,EACf,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,eAAe,EACf,qBAAqB,EACrB,kCAAkC,EAClC,cAAc,EACf,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,sBAEpE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,YAErE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM;;uCAMhD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,4CAM9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,UAM7D;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,eAAe,EAAE,OAAO,MAAM,EAAE,EAAE,OAAO,MAAM,KAC9C,CAAC,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAAA;AAE9E,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,KACX,IAAI,IAAI,MAAM,GAAG;IAClB,KAAK,EAAE,OAAO,eAAe,CAAC,OAAO,CAAA;IACrC,IAAI,EAAE,OAAO,cAAc,CAAC,KAAK,CAAA;IACjC,UAAU,EAAE;QACV,SAAS,EAAE,OAAO,kCAAkC,CAAC,KAAK,CAAA;QAC1D,IAAI,EAAE,gBAAgB,CAAA;KACvB,CAAA;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAA;gBAChB,YAAY,EAAE,MAAM,CAAA;gBACpB,aAAa,EAAE,MAAM,CAAA;aACtB,CAAA;SACF,CAAA;KACF,CAAA;CAsBF,CAAA;AAED,eAAO,MAAM,gBAAgB,0CAA2C,CAAA;AAExE,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,MAAM,YAAY,GAAG,mBAAmB,GAAG,MAAM,CAAA;AAEvD,MAAM,MAAM,kBAAkB,CAAC,WAAW,SAAS,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,GAAG;IAC3G,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG;QAC/D,SAAS,EAAE,OAAO,CAAA;QAClB,KAAK,EAAE,WAAW,CAAA;KACnB,CAAA;CACF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,IAAI,IAAI,kBACiD,CAAA;AAE7G,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,EAAE,GAAG,SAAS,EAAE,UAAU,MAAM,2CAExE,CAAA;AAEX,eAAO,MAAM,yBAAyB,GAAI,OAAO,MAAM,EAAE,GAAG,SAAS,KAAG,kBAAkB,EACH,CAAA;AAEvF,eAAO,MAAM,sBAAsB,GAAI,oBAAoB,SAAS,mBAAmB,EACrF,QAAQ,oBAAoB,GAAG,SAAS,EACxC,YAAY,MAAM,KACjB,UAAU,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAC2B,CAAA;AAE7E,eAAO,MAAM,uBAAuB,GAAU,KAAK,EAAE,WAAW;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,KAAG,OAAO,CAAC,KAAK,GAAG,SAAS,CAW7E,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
export type OidcProviderConfig = {
|
|
3
|
+
id: string;
|
|
4
|
+
};
|
|
5
|
+
export type OidcProvidersConfig = readonly OidcProviderConfig[];
|
|
6
|
+
/**
|
|
7
|
+
* Transforms OIDC provider config array into a typed object with capitalized provider IDs as keys
|
|
8
|
+
* @example
|
|
9
|
+
* type Config = [{ id: "google" }, { id: "microsoft" }]
|
|
10
|
+
* type Components = OidcProviderComponents<Config>
|
|
11
|
+
* // Result: { Google?: ComponentType<...>, Microsoft?: ComponentType<...> }
|
|
12
|
+
*/
|
|
13
|
+
export type OidcProviderComponents<TOidcProvidersConfig extends OidcProvidersConfig> = {
|
|
14
|
+
[K in Capitalize<TOidcProvidersConfig[number]["id"]>]?: ComponentType<{
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=oidcProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidcProviders.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/oidcProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,kBAAkB,EAAE,CAAA;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,CAAC,oBAAoB,SAAS,mBAAmB,IAAI;KACpF,CAAC,IAAI,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC;CAC/F,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leancodepl/kratos",
|
|
3
|
-
"version": "10.0
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"node": ">=22.0.0"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@leancodepl/utils": "10.0
|
|
25
|
+
"@leancodepl/utils": "10.1.0",
|
|
26
26
|
"@radix-ui/react-slot": ">=1.0.0",
|
|
27
27
|
"@tanstack/react-form": ">=1.23.0",
|
|
28
28
|
"@tanstack/react-query": ">=5.0.0"
|