@meindesk/auth-config 0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schema.ts","../src/defaults.ts","../src/validation.ts","../src/migrate.ts"],"names":["field"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from \"zod\";\n\nexport const EXPERIENCE_IDS = [\n \"signIn\",\n \"signUp\",\n \"forgotPassword\",\n \"resetPassword\",\n \"magicLink\",\n \"emailVerification\",\n \"mfa\",\n \"organizationSelection\",\n \"organizationCreation\",\n] as const;\n\nexport type ExperienceId = (typeof EXPERIENCE_IDS)[number];\n\nexport const PROVIDER_IDS = [\n \"google\",\n \"github\",\n \"discord\",\n \"apple\",\n \"facebook\",\n \"microsoft\",\n] as const;\n\nexport type ProviderId = (typeof PROVIDER_IDS)[number];\n\nexport const PROFILE_FIELD_IDS = [\n \"email\",\n \"password\",\n \"firstName\",\n \"lastName\",\n \"username\",\n \"phoneNumber\",\n] as const;\n\nexport type ProfileFieldId = (typeof PROFILE_FIELD_IDS)[number];\n\nexport const RADIUS_OPTIONS = [\"small\", \"medium\", \"large\"] as const;\nexport const CARD_STYLES = [\"flat\", \"bordered\", \"elevated\"] as const;\nexport const LAYOUT_OPTIONS = [\"centered\", \"minimal\"] as const;\nexport const PROVIDER_POSITIONS = [\"before\", \"after\"] as const;\nexport const LOGO_ALIGNMENTS = [\"left\", \"center\", \"right\"] as const;\n\nexport const profileFieldSchema = z.object({\n id: z.enum(PROFILE_FIELD_IDS),\n enabled: z.boolean().default(true),\n required: z.boolean().default(true),\n showLabel: z.boolean().default(true),\n label: z.string().default(\"\"),\n placeholder: z.string().optional(),\n showPasswordToggle: z.boolean().optional(),\n});\n\nexport type ProfileFieldConfig = z.infer<typeof profileFieldSchema>;\n\nexport const experienceCopySchema = z.object({\n title: z.string().default(\"\"),\n subtitle: z.string().default(\"\"),\n buttonText: z.string().default(\"Continue\"),\n loadingText: z.string().default(\"Please wait…\"),\n showSignUpLink: z.boolean().optional(),\n signUpLinkText: z.string().optional(),\n showSignInLink: z.boolean().optional(),\n signInLinkText: z.string().optional(),\n forgotPasswordEnabled: z.boolean().optional(),\n forgotPasswordText: z.string().optional(),\n dividerEnabled: z.boolean().optional(),\n dividerText: z.string().optional(),\n fields: z.array(profileFieldSchema).optional(),\n});\n\nexport type ExperienceCopy = z.infer<typeof experienceCopySchema>;\n\nexport const providerConfigSchema = z.object({\n id: z.enum(PROVIDER_IDS),\n enabled: z.boolean().default(false),\n buttonLabel: z.string().optional(),\n position: z.enum(PROVIDER_POSITIONS).default(\"before\"),\n});\n\nexport type ProviderConfig = z.infer<typeof providerConfigSchema>;\n\nexport const methodsSchema = z.object({\n emailPassword: z.boolean().default(true),\n magicLink: z.boolean().default(false),\n passkeys: z.boolean().default(false),\n phone: z.boolean().default(false),\n});\n\nexport type AuthMethods = z.infer<typeof methodsSchema>;\n\nexport const appearanceSchema = z.object({\n primaryColor: z.string().default(\"#0f172a\"),\n backgroundColor: z.string().default(\"#ffffff\"),\n foregroundColor: z.string().default(\"#0f172a\"),\n mutedColor: z.string().default(\"#64748b\"),\n borderColor: z.string().default(\"#e2e8f0\"),\n surfaceColor: z.string().default(\"#f8fafc\"),\n radius: z.enum(RADIUS_OPTIONS).default(\"medium\"),\n fontFamily: z\n .string()\n .default(\n 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n ),\n headingSize: z.string().default(\"1.35rem\"),\n bodySize: z.string().default(\"0.925rem\"),\n logoUrl: z.string().nullable().default(null),\n logoSize: z.number().int().positive().default(40),\n logoAlignment: z.enum(LOGO_ALIGNMENTS).default(\"center\"),\n showAppName: z.boolean().default(true),\n showMeindeskBranding: z.boolean().default(true),\n cardStyle: z.enum(CARD_STYLES).default(\"elevated\"),\n layout: z.enum(LAYOUT_OPTIONS).default(\"centered\"),\n});\n\nexport type AppearanceConfig = z.infer<typeof appearanceSchema>;\n\nexport const experiencesSchema = z.object({\n signIn: experienceCopySchema,\n signUp: experienceCopySchema,\n forgotPassword: experienceCopySchema,\n resetPassword: experienceCopySchema,\n magicLink: experienceCopySchema,\n emailVerification: experienceCopySchema,\n mfa: experienceCopySchema,\n organizationSelection: experienceCopySchema,\n organizationCreation: experienceCopySchema,\n});\n\nexport type ExperiencesConfig = z.infer<typeof experiencesSchema>;\n\nexport const authExperienceConfigSchema = z.object({\n version: z.literal(1).default(1),\n applicationName: z.string().optional(),\n methods: methodsSchema,\n providers: z.array(providerConfigSchema),\n appearance: appearanceSchema,\n experiences: experiencesSchema,\n});\n\nexport type AuthExperienceConfig = z.infer<typeof authExperienceConfigSchema>;\n\n/** Form type keys used in AuthenticationForm.type */\nexport const FORM_TYPE_TO_EXPERIENCE = {\n sign_in: \"signIn\",\n sign_up: \"signUp\",\n forgot_password: \"forgotPassword\",\n reset_password: \"resetPassword\",\n magic_link: \"magicLink\",\n email_verification: \"emailVerification\",\n mfa: \"mfa\",\n organization_selection: \"organizationSelection\",\n organization_creation: \"organizationCreation\",\n} as const;\n\nexport const EXPERIENCE_TO_FORM_TYPE = {\n signIn: \"sign_in\",\n signUp: \"sign_up\",\n forgotPassword: \"forgot_password\",\n resetPassword: \"reset_password\",\n magicLink: \"magic_link\",\n emailVerification: \"email_verification\",\n mfa: \"mfa\",\n organizationSelection: \"organization_selection\",\n organizationCreation: \"organization_creation\",\n} as const;\n\nexport type FormTypeKey = keyof typeof FORM_TYPE_TO_EXPERIENCE;\n","import type {\n AppearanceConfig,\n AuthExperienceConfig,\n ExperienceCopy,\n ExperiencesConfig,\n ProfileFieldConfig,\n ProviderConfig,\n} from \"./schema\";\nimport { PROVIDER_IDS } from \"./schema\";\n\nfunction field(\n id: ProfileFieldConfig[\"id\"],\n overrides: Partial<ProfileFieldConfig> = {},\n): ProfileFieldConfig {\n const labels: Record<ProfileFieldConfig[\"id\"], string> = {\n email: \"Email address\",\n password: \"Password\",\n firstName: \"First name\",\n lastName: \"Last name\",\n username: \"Username\",\n phoneNumber: \"Phone number\",\n };\n const placeholders: Partial<Record<ProfileFieldConfig[\"id\"], string>> = {\n email: \"you@example.com\",\n password: \"••••••••\",\n firstName: \"\",\n lastName: \"\",\n username: \"\",\n phoneNumber: \"+1 555 000 0000\",\n };\n return {\n id,\n enabled: true,\n required: true,\n showLabel: true,\n label: labels[id],\n placeholder: placeholders[id] ?? \"\",\n showPasswordToggle: id === \"password\" ? true : undefined,\n ...overrides,\n };\n}\n\nconst defaultSignIn: ExperienceCopy = {\n title: \"Welcome back\",\n subtitle: \"Sign in to continue\",\n buttonText: \"Continue\",\n loadingText: \"Signing in…\",\n showSignUpLink: true,\n signUpLinkText: \"Don't have an account? Sign up\",\n forgotPasswordEnabled: true,\n forgotPasswordText: \"Forgot password?\",\n dividerEnabled: true,\n dividerText: \"OR\",\n fields: [\n field(\"email\"),\n field(\"password\", { showPasswordToggle: true }),\n ],\n};\n\nconst defaultSignUp: ExperienceCopy = {\n title: \"Create your account\",\n subtitle: \"Sign up to get started\",\n buttonText: \"Continue\",\n loadingText: \"Creating account…\",\n showSignInLink: true,\n signInLinkText: \"Already have an account? Sign in\",\n dividerEnabled: true,\n dividerText: \"OR\",\n fields: [\n field(\"firstName\"),\n field(\"lastName\"),\n field(\"email\"),\n field(\"password\", { showPasswordToggle: true }),\n field(\"username\", { enabled: false, required: false }),\n field(\"phoneNumber\", { enabled: false, required: false }),\n ],\n};\n\nconst defaultForgotPassword: ExperienceCopy = {\n title: \"Forgot password?\",\n subtitle: \"Enter your email and we'll send a reset link\",\n buttonText: \"Continue\",\n loadingText: \"Sending…\",\n showSignInLink: true,\n signInLinkText: \"Back to sign in\",\n fields: [field(\"email\")],\n};\n\nconst defaultResetPassword: ExperienceCopy = {\n title: \"Reset password\",\n subtitle: \"Choose a new password for your account\",\n buttonText: \"Reset password\",\n loadingText: \"Resetting…\",\n fields: [\n field(\"password\", { label: \"New password\", showPasswordToggle: true }),\n ],\n};\n\nconst defaultMagicLink: ExperienceCopy = {\n title: \"Continue with email\",\n subtitle: \"We'll email you a magic link for a password-free sign in\",\n buttonText: \"Continue with Magic Link\",\n loadingText: \"Sending link…\",\n showSignInLink: true,\n signInLinkText: \"Back to sign in\",\n fields: [field(\"email\")],\n};\n\nconst defaultEmailVerification: ExperienceCopy = {\n title: \"Verify your email\",\n subtitle: \"Enter the verification code we sent to your email\",\n buttonText: \"Verify\",\n loadingText: \"Verifying…\",\n fields: [],\n};\n\nconst defaultMfa: ExperienceCopy = {\n title: \"Two-factor authentication\",\n subtitle: \"Enter the code from your authenticator app\",\n buttonText: \"Verify\",\n loadingText: \"Verifying…\",\n fields: [],\n};\n\nconst defaultOrgSelection: ExperienceCopy = {\n title: \"Choose an organization\",\n subtitle: \"Select which organization to continue with\",\n buttonText: \"Continue\",\n loadingText: \"Loading…\",\n fields: [],\n};\n\nconst defaultOrgCreation: ExperienceCopy = {\n title: \"Create an organization\",\n subtitle: \"Set up a new organization for your team\",\n buttonText: \"Create organization\",\n loadingText: \"Creating…\",\n fields: [],\n};\n\nexport const DEFAULT_EXPERIENCES: ExperiencesConfig = {\n signIn: defaultSignIn,\n signUp: defaultSignUp,\n forgotPassword: defaultForgotPassword,\n resetPassword: defaultResetPassword,\n magicLink: defaultMagicLink,\n emailVerification: defaultEmailVerification,\n mfa: defaultMfa,\n organizationSelection: defaultOrgSelection,\n organizationCreation: defaultOrgCreation,\n};\n\nexport const DEFAULT_APPEARANCE: AppearanceConfig = {\n primaryColor: \"#0f172a\",\n backgroundColor: \"#ffffff\",\n foregroundColor: \"#0f172a\",\n mutedColor: \"#64748b\",\n borderColor: \"#e2e8f0\",\n surfaceColor: \"#f8fafc\",\n radius: \"medium\",\n fontFamily:\n 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif',\n headingSize: \"1.35rem\",\n bodySize: \"0.925rem\",\n logoUrl: null,\n logoSize: 40,\n logoAlignment: \"center\",\n showAppName: true,\n showMeindeskBranding: true,\n cardStyle: \"elevated\",\n layout: \"centered\",\n};\n\nconst DEFAULT_PROVIDER_LABELS: Record<(typeof PROVIDER_IDS)[number], string> = {\n google: \"Continue with Google\",\n github: \"Continue with GitHub\",\n discord: \"Continue with Discord\",\n apple: \"Continue with Apple\",\n facebook: \"Continue with Facebook\",\n microsoft: \"Continue with Microsoft\",\n};\n\nexport function defaultProviders(\n enabled: Partial<Record<(typeof PROVIDER_IDS)[number], boolean>> = {},\n): ProviderConfig[] {\n return PROVIDER_IDS.map((id) => ({\n id,\n enabled: enabled[id] ?? (id === \"google\" || id === \"github\"),\n buttonLabel: DEFAULT_PROVIDER_LABELS[id],\n position: \"before\" as const,\n }));\n}\n\nexport function createDefaultAuthExperienceConfig(\n overrides: Partial<AuthExperienceConfig> = {},\n): AuthExperienceConfig {\n return {\n version: 1,\n applicationName: overrides.applicationName,\n methods: {\n emailPassword: true,\n magicLink: false,\n passkeys: false,\n phone: false,\n ...overrides.methods,\n },\n providers: overrides.providers ?? defaultProviders(),\n appearance: {\n ...DEFAULT_APPEARANCE,\n ...overrides.appearance,\n },\n experiences: {\n ...DEFAULT_EXPERIENCES,\n ...overrides.experiences,\n signIn: {\n ...DEFAULT_EXPERIENCES.signIn,\n ...overrides.experiences?.signIn,\n },\n signUp: {\n ...DEFAULT_EXPERIENCES.signUp,\n ...overrides.experiences?.signUp,\n },\n forgotPassword: {\n ...DEFAULT_EXPERIENCES.forgotPassword,\n ...overrides.experiences?.forgotPassword,\n },\n resetPassword: {\n ...DEFAULT_EXPERIENCES.resetPassword,\n ...overrides.experiences?.resetPassword,\n },\n magicLink: {\n ...DEFAULT_EXPERIENCES.magicLink,\n ...overrides.experiences?.magicLink,\n },\n emailVerification: {\n ...DEFAULT_EXPERIENCES.emailVerification,\n ...overrides.experiences?.emailVerification,\n },\n mfa: {\n ...DEFAULT_EXPERIENCES.mfa,\n ...overrides.experiences?.mfa,\n },\n organizationSelection: {\n ...DEFAULT_EXPERIENCES.organizationSelection,\n ...overrides.experiences?.organizationSelection,\n },\n organizationCreation: {\n ...DEFAULT_EXPERIENCES.organizationCreation,\n ...overrides.experiences?.organizationCreation,\n },\n },\n };\n}\n","import {\n authExperienceConfigSchema,\n type AuthExperienceConfig,\n} from \"./schema\";\nimport { createDefaultAuthExperienceConfig } from \"./defaults\";\n\nexport function parseAuthExperienceConfig(\n input: unknown,\n): AuthExperienceConfig {\n return authExperienceConfigSchema.parse(input);\n}\n\nexport function safeParseAuthExperienceConfig(input: unknown): {\n success: boolean;\n data?: AuthExperienceConfig;\n error?: string;\n} {\n const result = authExperienceConfigSchema.safeParse(input);\n if (result.success) {\n return { success: true, data: result.data };\n }\n return {\n success: false,\n error: result.error.issues.map((i) => i.message).join(\"; \"),\n };\n}\n\n/** Deep-merge partial updates onto defaults, then validate. */\nexport function mergeAuthExperienceConfig(\n partial: unknown,\n): AuthExperienceConfig {\n const base = createDefaultAuthExperienceConfig();\n if (!partial || typeof partial !== \"object\") {\n return base;\n }\n const p = partial as Partial<AuthExperienceConfig>;\n const merged = createDefaultAuthExperienceConfig({\n applicationName: p.applicationName ?? base.applicationName,\n methods: { ...base.methods, ...p.methods },\n providers: p.providers ?? base.providers,\n appearance: { ...base.appearance, ...p.appearance },\n experiences: {\n signIn: { ...base.experiences.signIn, ...p.experiences?.signIn },\n signUp: { ...base.experiences.signUp, ...p.experiences?.signUp },\n forgotPassword: {\n ...base.experiences.forgotPassword,\n ...p.experiences?.forgotPassword,\n },\n resetPassword: {\n ...base.experiences.resetPassword,\n ...p.experiences?.resetPassword,\n },\n magicLink: {\n ...base.experiences.magicLink,\n ...p.experiences?.magicLink,\n },\n emailVerification: {\n ...base.experiences.emailVerification,\n ...p.experiences?.emailVerification,\n },\n mfa: { ...base.experiences.mfa, ...p.experiences?.mfa },\n organizationSelection: {\n ...base.experiences.organizationSelection,\n ...p.experiences?.organizationSelection,\n },\n organizationCreation: {\n ...base.experiences.organizationCreation,\n ...p.experiences?.organizationCreation,\n },\n },\n });\n return parseAuthExperienceConfig(merged);\n}\n","import {\n createDefaultAuthExperienceConfig,\n DEFAULT_EXPERIENCES,\n} from \"./defaults\";\nimport type {\n AuthExperienceConfig,\n ExperienceCopy,\n ExperienceId,\n ProfileFieldConfig,\n ProfileFieldId,\n ProviderConfig,\n ProviderId,\n} from \"./schema\";\nimport {\n EXPERIENCE_TO_FORM_TYPE,\n FORM_TYPE_TO_EXPERIENCE,\n PROFILE_FIELD_IDS,\n PROVIDER_IDS,\n} from \"./schema\";\nimport { mergeAuthExperienceConfig } from \"./validation\";\n\ntype LegacyFormField = {\n id?: string;\n name?: string;\n type?: string;\n label?: string;\n placeholder?: string;\n required?: boolean;\n minLength?: number;\n maxLength?: number;\n errorMessage?: string;\n showPasswordToggle?: boolean;\n showLabel?: boolean;\n enabled?: boolean;\n};\n\ntype LegacyFormSchema = {\n id?: string;\n fields?: LegacyFormField[];\n title?: string;\n description?: string;\n subtitle?: string;\n submitLabel?: string;\n buttonText?: string;\n loadingText?: string;\n showSignUpLink?: boolean;\n signUpLinkText?: string;\n showSignInLink?: boolean;\n signInLinkText?: string;\n forgotPasswordEnabled?: boolean;\n forgotPasswordText?: string;\n dividerEnabled?: boolean;\n dividerText?: string;\n /** New-style experience document embedded in form.schema */\n experience?: ExperienceCopy;\n};\n\nfunction mapFieldTypeToProfileId(\n field: LegacyFormField,\n): ProfileFieldId | null {\n const key = (field.name ?? field.id ?? \"\").toString();\n if ((PROFILE_FIELD_IDS as readonly string[]).includes(key)) {\n return key as ProfileFieldId;\n }\n if (field.type === \"email\") return \"email\";\n if (field.type === \"password\") return \"password\";\n if (field.type === \"phone\" || field.type === \"tel\") return \"phoneNumber\";\n if (key === \"first_name\") return \"firstName\";\n if (key === \"last_name\") return \"lastName\";\n if (key === \"phone\") return \"phoneNumber\";\n return null;\n}\n\nfunction legacyFieldsToProfileFields(\n fields: LegacyFormField[] | undefined,\n fallback: ProfileFieldConfig[] | undefined,\n): ProfileFieldConfig[] {\n const base =\n fallback ??\n PROFILE_FIELD_IDS.map((id) => ({\n id,\n enabled: false,\n required: false,\n showLabel: true,\n label: id,\n placeholder: \"\",\n }));\n\n if (!fields?.length) return base;\n\n const byId = new Map<ProfileFieldId, ProfileFieldConfig>();\n for (const b of base) {\n byId.set(b.id, { ...b, enabled: false });\n }\n\n const order: ProfileFieldId[] = [];\n for (const f of fields) {\n const id = mapFieldTypeToProfileId(f);\n if (!id) continue;\n order.push(id);\n const prev = byId.get(id);\n byId.set(id, {\n id,\n enabled: f.enabled ?? true,\n required: f.required ?? true,\n showLabel: f.showLabel ?? true,\n label: f.label ?? prev?.label ?? id,\n placeholder: f.placeholder ?? prev?.placeholder ?? \"\",\n showPasswordToggle:\n id === \"password\"\n ? (f.showPasswordToggle ?? true)\n : undefined,\n });\n }\n\n const ordered: ProfileFieldConfig[] = [];\n const seen = new Set<ProfileFieldId>();\n for (const id of order) {\n if (seen.has(id)) continue;\n seen.add(id);\n const cfg = byId.get(id);\n if (cfg) ordered.push(cfg);\n }\n for (const id of PROFILE_FIELD_IDS) {\n if (seen.has(id)) continue;\n const cfg = byId.get(id);\n if (cfg) ordered.push(cfg);\n }\n return ordered;\n}\n\nfunction legacySchemaToExperience(\n schema: LegacyFormSchema | null | undefined,\n experienceId: ExperienceId,\n): ExperienceCopy {\n const defaults = DEFAULT_EXPERIENCES[experienceId];\n if (!schema) return { ...defaults };\n\n if (schema.experience) {\n return {\n ...defaults,\n ...schema.experience,\n fields: schema.experience.fields?.length\n ? schema.experience.fields\n : defaults.fields,\n };\n }\n\n return {\n ...defaults,\n title: schema.title ?? defaults.title,\n subtitle: schema.subtitle ?? schema.description ?? defaults.subtitle,\n buttonText:\n schema.buttonText ?? schema.submitLabel ?? defaults.buttonText,\n loadingText: schema.loadingText ?? defaults.loadingText,\n showSignUpLink: schema.showSignUpLink ?? defaults.showSignUpLink,\n signUpLinkText: schema.signUpLinkText ?? defaults.signUpLinkText,\n showSignInLink: schema.showSignInLink ?? defaults.showSignInLink,\n signInLinkText: schema.signInLinkText ?? defaults.signInLinkText,\n forgotPasswordEnabled:\n schema.forgotPasswordEnabled ?? defaults.forgotPasswordEnabled,\n forgotPasswordText:\n schema.forgotPasswordText ?? defaults.forgotPasswordText,\n dividerEnabled: schema.dividerEnabled ?? defaults.dividerEnabled,\n dividerText: schema.dividerText ?? defaults.dividerText,\n fields: legacyFieldsToProfileFields(schema.fields, defaults.fields),\n };\n}\n\nexport type AssembleAuthExperienceInput = {\n applicationName?: string;\n settings?: {\n passwordEnabled?: boolean;\n magicLinkEnabled?: boolean;\n passkeysEnabled?: boolean;\n phoneEnabled?: boolean;\n } | null;\n providers?: Array<{\n provider: string;\n enabled: boolean;\n buttonLabel?: string | null;\n position?: string | null;\n sortOrder?: number | null;\n }>;\n forms?: Array<{\n type: string;\n schema: unknown;\n }>;\n appearance?: Partial<AuthExperienceConfig[\"appearance\"]> | null;\n};\n\nexport function assembleAuthExperienceConfig(\n input: AssembleAuthExperienceInput,\n): AuthExperienceConfig {\n const base = createDefaultAuthExperienceConfig({\n applicationName: input.applicationName,\n });\n\n const experiences = { ...base.experiences };\n for (const form of input.forms ?? []) {\n const expKey =\n FORM_TYPE_TO_EXPERIENCE[\n form.type as keyof typeof FORM_TYPE_TO_EXPERIENCE\n ];\n if (!expKey) continue;\n experiences[expKey] = legacySchemaToExperience(\n form.schema as LegacyFormSchema,\n expKey,\n );\n }\n\n const providerMap = new Map(\n (input.providers ?? []).map((p) => [p.provider, p]),\n );\n const sortedProviders = [...(input.providers ?? [])].sort(\n (a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0),\n );\n const orderedIds: ProviderId[] = [];\n for (const p of sortedProviders) {\n if ((PROVIDER_IDS as readonly string[]).includes(p.provider)) {\n orderedIds.push(p.provider as ProviderId);\n }\n }\n for (const id of PROVIDER_IDS) {\n if (!orderedIds.includes(id)) orderedIds.push(id);\n }\n\n const providers: ProviderConfig[] = orderedIds.map((id) => {\n const row = providerMap.get(id);\n const fallback = base.providers.find((p) => p.id === id)!;\n return {\n id,\n enabled: row?.enabled ?? fallback.enabled,\n buttonLabel: row?.buttonLabel ?? fallback.buttonLabel,\n position:\n row?.position === \"after\" || row?.position === \"before\"\n ? row.position\n : fallback.position,\n };\n });\n\n return mergeAuthExperienceConfig({\n applicationName: input.applicationName ?? base.applicationName,\n methods: {\n emailPassword: input.settings?.passwordEnabled ?? true,\n magicLink: input.settings?.magicLinkEnabled ?? false,\n passkeys: input.settings?.passkeysEnabled ?? false,\n phone: input.settings?.phoneEnabled ?? false,\n },\n providers,\n appearance: {\n ...base.appearance,\n ...(input.appearance ?? {}),\n },\n experiences,\n });\n}\n\n/** Serialize an experience into AuthenticationForm.schema JSON. */\nexport function experienceToFormSchema(\n experienceId: ExperienceId,\n copy: ExperienceCopy,\n): Record<string, unknown> {\n const formType = EXPERIENCE_TO_FORM_TYPE[experienceId];\n return {\n id: formType,\n title: copy.title,\n description: copy.subtitle,\n subtitle: copy.subtitle,\n submitLabel: copy.buttonText,\n buttonText: copy.buttonText,\n loadingText: copy.loadingText,\n showSignUpLink: copy.showSignUpLink,\n signUpLinkText: copy.signUpLinkText,\n showSignInLink: copy.showSignInLink,\n signInLinkText: copy.signInLinkText,\n forgotPasswordEnabled: copy.forgotPasswordEnabled,\n forgotPasswordText: copy.forgotPasswordText,\n dividerEnabled: copy.dividerEnabled,\n dividerText: copy.dividerText,\n experience: copy,\n fields: (copy.fields ?? [])\n .filter((f) => f.enabled)\n .map((f) => ({\n id: f.id,\n name: f.id,\n type:\n f.id === \"email\"\n ? \"email\"\n : f.id === \"password\"\n ? \"password\"\n : f.id === \"phoneNumber\"\n ? \"tel\"\n : \"text\",\n label: f.label,\n placeholder: f.placeholder,\n required: f.required,\n showLabel: f.showLabel,\n showPasswordToggle: f.showPasswordToggle,\n })),\n };\n}\n\nexport function radiusToPx(\n radius: AuthExperienceConfig[\"appearance\"][\"radius\"],\n): string {\n if (radius === \"small\") return \"6px\";\n if (radius === \"large\") return \"16px\";\n return \"10px\";\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@meindesk/auth-config",
3
+ "version": "0.1.0",
4
+ "description": "Meindesk Auth experience configuration schema and defaults",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "dependencies": {
21
+ "zod": "^3.25.42"
22
+ },
23
+ "devDependencies": {
24
+ "typescript": "^5.8.3",
25
+ "@meindesk/typescript-config": "0.0.0"
26
+ },
27
+ "scripts": {
28
+ "build": "tsup",
29
+ "lint": "tsc --noEmit"
30
+ },
31
+ "main": "./dist/index.js",
32
+ "types": "./dist/index.d.ts"
33
+ }