zudoku 0.66.2 → 0.66.3

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.
Files changed (161) hide show
  1. package/dist/config/validators/validate.d.ts +32 -3
  2. package/dist/config/validators/validate.js +1 -1
  3. package/dist/config/validators/validate.js.map +1 -1
  4. package/dist/flat-config.d.ts +1 -1
  5. package/dist/lib/auth/issuer.js +1 -1
  6. package/dist/lib/auth/issuer.js.map +1 -1
  7. package/dist/lib/authentication/authentication.d.ts +3 -2
  8. package/dist/lib/authentication/hook.d.ts +2 -0
  9. package/dist/lib/authentication/hook.js +10 -0
  10. package/dist/lib/authentication/hook.js.map +1 -1
  11. package/dist/lib/authentication/providers/firebase.js +67 -9
  12. package/dist/lib/authentication/providers/firebase.js.map +1 -1
  13. package/dist/lib/authentication/ui/EmailVerificationUi.d.ts +4 -0
  14. package/dist/lib/authentication/ui/EmailVerificationUi.js +34 -0
  15. package/dist/lib/authentication/ui/EmailVerificationUi.js.map +1 -0
  16. package/dist/lib/authentication/ui/ZudokuAuthUi.d.ts +7 -2
  17. package/dist/lib/authentication/ui/ZudokuAuthUi.js +43 -11
  18. package/dist/lib/authentication/ui/ZudokuAuthUi.js.map +1 -1
  19. package/dist/lib/authentication/utils/relativeRedirectUrl.d.ts +1 -0
  20. package/dist/lib/authentication/utils/relativeRedirectUrl.js +8 -0
  21. package/dist/lib/authentication/utils/relativeRedirectUrl.js.map +1 -0
  22. package/dist/lib/components/index.d.ts +2 -0
  23. package/dist/lib/errors/ErrorMessage.d.ts +3 -0
  24. package/dist/lib/errors/ErrorMessage.js +16 -0
  25. package/dist/lib/errors/ErrorMessage.js.map +1 -0
  26. package/dist/lib/hooks/index.d.ts +2 -0
  27. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +9 -172
  28. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  29. package/dist/lib/plugins/api-keys/index.d.ts +4 -1
  30. package/dist/lib/plugins/api-keys/index.js +19 -14
  31. package/dist/lib/plugins/api-keys/index.js.map +1 -1
  32. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.d.ts +12 -0
  33. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js +133 -0
  34. package/dist/lib/plugins/api-keys/settings/ApiKeyItem.js.map +1 -0
  35. package/dist/lib/plugins/api-keys/settings/ApiKeyList.d.ts +4 -0
  36. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js +30 -0
  37. package/dist/lib/plugins/api-keys/settings/ApiKeyList.js.map +1 -0
  38. package/dist/lib/plugins/api-keys/settings/RevealApiKey.d.ts +6 -0
  39. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js +39 -0
  40. package/dist/lib/plugins/api-keys/settings/RevealApiKey.js.map +1 -0
  41. package/dist/vite/config.js +7 -0
  42. package/dist/vite/config.js.map +1 -1
  43. package/dist/vite/plugin-api-keys.js +4 -1
  44. package/dist/vite/plugin-api-keys.js.map +1 -1
  45. package/dist/vite/zuplo.d.ts +13 -0
  46. package/dist/vite/zuplo.js +15 -0
  47. package/dist/vite/zuplo.js.map +1 -0
  48. package/lib/{ClaudeLogo-CGRfGTk2.js → ClaudeLogo-BZslN9XF.js} +3 -3
  49. package/lib/{ClaudeLogo-CGRfGTk2.js.map → ClaudeLogo-BZslN9XF.js.map} +1 -1
  50. package/lib/{Drawer-Ci7XwhqT.js → Drawer-BRMcpfuF.js} +6 -6
  51. package/lib/{Drawer-Ci7XwhqT.js.map → Drawer-BRMcpfuF.js.map} +1 -1
  52. package/lib/Frame-DxlznfVd.js +205 -0
  53. package/lib/Frame-DxlznfVd.js.map +1 -0
  54. package/lib/{useMutation-C6RqWmTS.js → Input-D-kqEQ5M.js} +41 -23
  55. package/lib/Input-D-kqEQ5M.js.map +1 -0
  56. package/lib/{MdxPage-Bjf72BP3.js → MdxPage-B4zZq5aR.js} +8 -8
  57. package/lib/{MdxPage-Bjf72BP3.js.map → MdxPage-B4zZq5aR.js.map} +1 -1
  58. package/lib/{Mermaid-D_VSX7_Q.js → Mermaid-BjSczjLW.js} +3 -3
  59. package/lib/{Mermaid-D_VSX7_Q.js.map → Mermaid-BjSczjLW.js.map} +1 -1
  60. package/lib/{OAuthErrorPage-1Ekji0PK.js → OAuthErrorPage-DRY2hlga.js} +20 -21
  61. package/lib/{OAuthErrorPage-1Ekji0PK.js.map → OAuthErrorPage-DRY2hlga.js.map} +1 -1
  62. package/lib/{OasProvider-BZxmTyMM.js → OasProvider-lMwTD76Y.js} +4 -4
  63. package/lib/{OasProvider-BZxmTyMM.js.map → OasProvider-lMwTD76Y.js.map} +1 -1
  64. package/lib/{OperationList-B7nPIFB8.js → OperationList-Bm76b4vl.js} +23 -24
  65. package/lib/{OperationList-B7nPIFB8.js.map → OperationList-Bm76b4vl.js.map} +1 -1
  66. package/lib/{RouteGuard-9wjejsKm.js → RouteGuard-DGc32XJV.js} +4 -4
  67. package/lib/{RouteGuard-9wjejsKm.js.map → RouteGuard-DGc32XJV.js.map} +1 -1
  68. package/lib/{SchemaList-16_obkku.js → SchemaList-DX4FPogg.js} +7 -7
  69. package/lib/{SchemaList-16_obkku.js.map → SchemaList-DX4FPogg.js.map} +1 -1
  70. package/lib/SchemaView-CjXvSRxy.js +434 -0
  71. package/lib/SchemaView-CjXvSRxy.js.map +1 -0
  72. package/lib/{Select-CkxXP5I7.js → Secret-BxGpIhDP.js} +121 -121
  73. package/lib/Secret-BxGpIhDP.js.map +1 -0
  74. package/lib/{SignUp-D54_QWFy.js → SignUp-CntxjFGS.js} +4 -4
  75. package/lib/{SignUp-D54_QWFy.js.map → SignUp-CntxjFGS.js.map} +1 -1
  76. package/lib/{SyntaxHighlight-j_HRSPCU.js → SyntaxHighlight-Dgd0AaaX.js} +2 -2
  77. package/lib/{SyntaxHighlight-j_HRSPCU.js.map → SyntaxHighlight-Dgd0AaaX.js.map} +1 -1
  78. package/lib/{Toc-z05x698-.js → Toc-L1vGGHA1.js} +2 -2
  79. package/lib/{Toc-z05x698-.js.map → Toc-L1vGGHA1.js.map} +1 -1
  80. package/lib/{ZudokuContext-BXldanA8.js → ZudokuContext-DNHMZfcP.js} +33 -33
  81. package/lib/{ZudokuContext-BXldanA8.js.map → ZudokuContext-DNHMZfcP.js.map} +1 -1
  82. package/lib/{chunk-PVWAREVJ-dLIqswPy.js → chunk-PVWAREVJ-ClM0m2aJ.js} +19 -19
  83. package/lib/{chunk-PVWAREVJ-dLIqswPy.js.map → chunk-PVWAREVJ-ClM0m2aJ.js.map} +1 -1
  84. package/lib/{circular-D5sYCIWL.js → circular-BIN_WQ0c.js} +2 -2
  85. package/lib/{circular-D5sYCIWL.js.map → circular-BIN_WQ0c.js.map} +1 -1
  86. package/lib/{createServer-BlwU7lIr.js → createServer-BEl12QFw.js} +4 -4
  87. package/lib/{createServer-BlwU7lIr.js.map → createServer-BEl12QFw.js.map} +1 -1
  88. package/lib/createVariantComponent-CQVt-H3r.js +18 -0
  89. package/lib/createVariantComponent-CQVt-H3r.js.map +1 -0
  90. package/lib/{errors-BtC4Kn2j.js → errors-CtBbD47A.js} +2 -2
  91. package/lib/{errors-BtC4Kn2j.js.map → errors-CtBbD47A.js.map} +1 -1
  92. package/lib/{firebase-Ibm_tv3G.js → firebase-CT38ugg4.js} +1588 -1342
  93. package/lib/firebase-CT38ugg4.js.map +1 -0
  94. package/lib/hook-CHw_R_xu.js +52 -0
  95. package/lib/hook-CHw_R_xu.js.map +1 -0
  96. package/lib/{ErrorAlert-BUlG32M9.js → index-CG2v-T7-.js} +5373 -4335
  97. package/lib/index-CG2v-T7-.js.map +1 -0
  98. package/lib/{index-eKVhlB94.js → index-CISwSpdT.js} +2 -2
  99. package/lib/{index-eKVhlB94.js.map → index-CISwSpdT.js.map} +1 -1
  100. package/lib/{index-Css56y3F.js → index-DXXZDuSJ.js} +4 -4
  101. package/lib/{index-Css56y3F.js.map → index-DXXZDuSJ.js.map} +1 -1
  102. package/lib/{index-CeVTNcfF.js → index-jI2Fjpy-.js} +98 -99
  103. package/lib/{index-CeVTNcfF.js.map → index-jI2Fjpy-.js.map} +1 -1
  104. package/lib/{index.esm-BoKBnRoT.js → index.esm-Bu35TNgg.js} +16 -14
  105. package/lib/index.esm-Bu35TNgg.js.map +1 -0
  106. package/lib/{mutation-BoVlx8yA.js → mutation-DMHWqmFp.js} +2 -2
  107. package/lib/{mutation-BoVlx8yA.js.map → mutation-DMHWqmFp.js.map} +1 -1
  108. package/lib/ui/Drawer.js +2 -2
  109. package/lib/ui/SyntaxHighlight.js +2 -2
  110. package/lib/zudoku.__internal.js +507 -479
  111. package/lib/zudoku.__internal.js.map +1 -1
  112. package/lib/zudoku.auth-auth0.js +1 -1
  113. package/lib/zudoku.auth-azureb2c.js +4 -4
  114. package/lib/zudoku.auth-clerk.js +2 -2
  115. package/lib/zudoku.auth-firebase.js +6 -5
  116. package/lib/zudoku.auth-firebase.js.map +1 -1
  117. package/lib/zudoku.auth-openid.js +4 -4
  118. package/lib/zudoku.auth-supabase.js +5 -5
  119. package/lib/zudoku.components.js +20 -21
  120. package/lib/zudoku.components.js.map +1 -1
  121. package/lib/zudoku.hooks.js +3 -3
  122. package/lib/zudoku.mermaid.js +3 -3
  123. package/lib/zudoku.plugin-api-catalog.js +8 -9
  124. package/lib/zudoku.plugin-api-catalog.js.map +1 -1
  125. package/lib/zudoku.plugin-api-keys.js +580 -543
  126. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  127. package/lib/zudoku.plugin-custom-pages.js +1 -1
  128. package/lib/zudoku.plugin-markdown.js +1 -1
  129. package/lib/zudoku.plugin-openapi.js +3 -3
  130. package/lib/zudoku.plugin-redirect.js +1 -1
  131. package/lib/zudoku.plugin-search-pagefind.js +3 -3
  132. package/lib/zudoku.router.js +2 -2
  133. package/package.json +4 -2
  134. package/src/lib/auth/issuer.ts +1 -1
  135. package/src/lib/authentication/authentication.ts +8 -2
  136. package/src/lib/authentication/hook.ts +16 -0
  137. package/src/lib/authentication/providers/firebase.tsx +98 -6
  138. package/src/lib/authentication/ui/EmailVerificationUi.tsx +129 -0
  139. package/src/lib/authentication/ui/ZudokuAuthUi.tsx +170 -38
  140. package/src/lib/authentication/utils/relativeRedirectUrl.ts +12 -0
  141. package/src/lib/errors/ErrorMessage.tsx +38 -0
  142. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +36 -476
  143. package/src/lib/plugins/api-keys/index.tsx +33 -18
  144. package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -0
  145. package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +64 -0
  146. package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +124 -0
  147. package/lib/ErrorAlert-BUlG32M9.js.map +0 -1
  148. package/lib/RouterError-DfTZblpv.js +0 -42
  149. package/lib/RouterError-DfTZblpv.js.map +0 -1
  150. package/lib/SchemaView-eyvR4bRt.js +0 -597
  151. package/lib/SchemaView-eyvR4bRt.js.map +0 -1
  152. package/lib/Select-CkxXP5I7.js.map +0 -1
  153. package/lib/createVariantComponent-B9_dVBvu.js +0 -35
  154. package/lib/createVariantComponent-B9_dVBvu.js.map +0 -1
  155. package/lib/firebase-Ibm_tv3G.js.map +0 -1
  156. package/lib/hook-BNxidGQq.js +0 -40
  157. package/lib/hook-BNxidGQq.js.map +0 -1
  158. package/lib/index-DSOi7zVM.js +0 -1059
  159. package/lib/index-DSOi7zVM.js.map +0 -1
  160. package/lib/index.esm-BoKBnRoT.js.map +0 -1
  161. package/lib/useMutation-C6RqWmTS.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useMutation } from "@tanstack/react-query";
3
3
  import React from "react";
4
4
  import { useForm } from "react-hook-form";
@@ -12,6 +12,7 @@ import { Separator } from "zudoku/ui/Separator.js";
12
12
  import { Form, FormControl, FormItem, FormLabel, FormMessage, } from "../../ui/Form.js";
13
13
  import { cn } from "../../util/cn.js";
14
14
  import createVariantComponent from "../../util/createVariantComponent.js";
15
+ import { getRelativeRedirectUrl } from "../utils/relativeRedirectUrl.js";
15
16
  import AppleIcon from "./icons/Apple.js";
16
17
  import FacebookIcon from "./icons/Facebook.js";
17
18
  import GithubIcon from "./icons/Github.js";
@@ -51,10 +52,11 @@ const AuthProviderButton = ({ providerId, onClick, ...buttonProps }) => {
51
52
  const EmailPasswordForm = ({ form, onSubmit, submitLabel, isPending, }) => {
52
53
  return (_jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "flex flex-col gap-2", children: [_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "E-Mail" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "Email", ...form.register("email") }) }), _jsx(FormMessage, {})] }), _jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Password" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "Password", ...form.register("password"), type: "password" }) }), _jsx(FormMessage, {})] }), _jsx(ActionButton, { type: "submit", isPending: isPending, children: submitLabel })] }) }));
53
54
  };
54
- export const ZudokuSignInUi = ({ providers, onOAuthSignIn, onUsernamePasswordSignIn, }) => {
55
+ export const ZudokuSignInUi = ({ providers, onOAuthSignIn, onUsernamePasswordSignIn, enableUsernamePassword, }) => {
55
56
  const navigate = useNavigate();
56
57
  const [searchParams] = useSearchParams();
57
58
  const redirectTo = searchParams.get("redirectTo");
59
+ const relativeRedirectTo = getRelativeRedirectUrl(redirectTo);
58
60
  const invalidProviders = providers.filter((provider) => !isValidAuthProviderId(provider));
59
61
  if (invalidProviders.length > 0) {
60
62
  throw new Error(`Unsupported auth provider: ${invalidProviders.join(", ")}`);
@@ -67,7 +69,7 @@ export const ZudokuSignInUi = ({ providers, onOAuthSignIn, onUsernamePasswordSig
67
69
  await onUsernamePasswordSignIn(email, password);
68
70
  },
69
71
  onSuccess: () => {
70
- void navigate(redirectTo ?? "/");
72
+ void navigate(relativeRedirectTo);
71
73
  },
72
74
  });
73
75
  const signInByProviderMutation = useMutation({
@@ -75,7 +77,7 @@ export const ZudokuSignInUi = ({ providers, onOAuthSignIn, onUsernamePasswordSig
75
77
  await onOAuthSignIn(providerId);
76
78
  },
77
79
  onSuccess: () => {
78
- void navigate(redirectTo ?? "/");
80
+ void navigate(relativeRedirectTo);
79
81
  },
80
82
  });
81
83
  const form = useForm({
@@ -86,12 +88,16 @@ export const ZudokuSignInUi = ({ providers, onOAuthSignIn, onUsernamePasswordSig
86
88
  });
87
89
  const pending = signInUsernameMutation.isPending || signInByProviderMutation.isPending;
88
90
  const error = signInUsernameMutation.error ?? signInByProviderMutation.error;
89
- return (_jsxs(AuthCard, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Sign in" }), _jsx(CardDescription, { children: "Sign in to your account to continue." })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [error && (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Error" }), _jsx(AlertDescription, { children: error?.message })] })), _jsx(EmailPasswordForm, { form: form, onSubmit: (data) => void signInUsernameMutation.mutate({
90
- email: data.email,
91
- password: data.password,
92
- }), submitLabel: "Sign in", isPending: pending }), _jsx(ProviderSeparator, { providers: providers }), _jsx(ProviderButtons, { providers: providers, onClick: (providerId) => signInByProviderMutation.mutate({ providerId }) }), _jsx(Link, { to: "/signup", className: "text-sm text-muted-foreground", children: "Don't have an account? Sign up." })] })] }));
91
+ return (_jsxs(AuthCard, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Sign in" }), _jsx(CardDescription, { children: "Sign in to your account to continue." })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [error && (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Error" }), _jsx(AlertDescription, { children: error?.message })] })), enableUsernamePassword && (_jsxs(_Fragment, { children: [_jsx(EmailPasswordForm, { form: form, onSubmit: (data) => void signInUsernameMutation.mutate({
92
+ email: data.email,
93
+ password: data.password,
94
+ }), submitLabel: "Sign in", isPending: pending }), _jsx(Link, { to: "/reset-password", className: "text-sm text-muted-foreground text-right -mt-2", children: "Forgot password?" })] })), enableUsernamePassword && providers.length > 0 && (_jsx(ProviderSeparator, { providers: providers })), providers.length > 0 && (_jsx(ProviderButtons, { providers: providers, onClick: (providerId) => signInByProviderMutation.mutate({ providerId }) })), _jsx(Link, { to: "/signup", className: "text-sm text-muted-foreground", children: "Don't have an account? Sign up." })] })] }));
93
95
  };
94
- export const ZudokuSignUpUi = ({ providers, onOAuthSignUp, onUsernamePasswordSignUp, }) => {
96
+ export const ZudokuSignUpUi = ({ providers, enableUsernamePassword, onOAuthSignUp, onUsernamePasswordSignUp, }) => {
97
+ const navigate = useNavigate();
98
+ const [searchParams] = useSearchParams();
99
+ const redirectTo = searchParams.get("redirectTo");
100
+ const relativeRedirectTo = redirectTo?.replace(window.location.origin, "");
95
101
  if (!isAuthProviderIdArray(providers)) {
96
102
  throw new Error("Invalid auth provider IDs");
97
103
  }
@@ -99,11 +105,17 @@ export const ZudokuSignUpUi = ({ providers, onOAuthSignUp, onUsernamePasswordSig
99
105
  mutationFn: async ({ email, password }) => {
100
106
  await onUsernamePasswordSignUp(email, password);
101
107
  },
108
+ onSuccess: () => {
109
+ void navigate(relativeRedirectTo ?? "/");
110
+ },
102
111
  });
103
112
  const signUpByProviderMutation = useMutation({
104
113
  mutationFn: async ({ providerId }) => {
105
114
  await onOAuthSignUp(providerId);
106
115
  },
116
+ onSuccess: () => {
117
+ void navigate(relativeRedirectTo ?? "/");
118
+ },
107
119
  });
108
120
  const form = useForm({
109
121
  defaultValues: {
@@ -113,10 +125,10 @@ export const ZudokuSignUpUi = ({ providers, onOAuthSignUp, onUsernamePasswordSig
113
125
  });
114
126
  const pending = signUpUsernameMutation.isPending || signUpByProviderMutation.isPending;
115
127
  const error = signUpUsernameMutation.error ?? signUpByProviderMutation.error;
116
- return (_jsxs(AuthCard, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Sign up" }), _jsx(CardDescription, { children: "Sign up to your account to continue." })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [error && (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Error" }), _jsx(AlertDescription, { children: error?.message })] })), _jsx(EmailPasswordForm, { form: form, onSubmit: (data) => void signUpUsernameMutation.mutate({
128
+ return (_jsxs(AuthCard, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Sign up" }), _jsx(CardDescription, { children: "Sign up to your account to continue." })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [error && (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Error" }), _jsx(AlertDescription, { children: error?.message })] })), enableUsernamePassword && (_jsx(EmailPasswordForm, { form: form, onSubmit: (data) => void signUpUsernameMutation.mutate({
117
129
  email: data.email,
118
130
  password: data.password,
119
- }), submitLabel: "Sign up", isPending: pending }), _jsx(ProviderSeparator, { providers: providers }), _jsx(ProviderButtons, { providers: providers, onClick: (providerId) => signUpByProviderMutation.mutate({ providerId }) }), _jsx(Link, { to: "/signin", className: "text-sm text-muted-foreground", children: "Already have an account? Sign in." })] })] }));
131
+ }), submitLabel: "Sign up", isPending: pending })), enableUsernamePassword && providers.length > 0 && (_jsx(ProviderSeparator, { providers: providers })), providers.length > 0 && (_jsx(ProviderButtons, { providers: providers, onClick: (providerId) => signUpByProviderMutation.mutate({ providerId }) })), _jsx(Link, { to: "/signin", className: "text-sm text-muted-foreground", children: "Already have an account? Sign in." })] })] }));
120
132
  };
121
133
  const AuthCard = createVariantComponent(Card, "max-w-md w-full mt-10 mx-auto");
122
134
  const ProviderButtons = ({ providers, onClick, }) => {
@@ -125,4 +137,24 @@ const ProviderButtons = ({ providers, onClick, }) => {
125
137
  const ProviderSeparator = ({ providers }) => {
126
138
  return (providers.length > 0 && (_jsx(Separator, { className: "my-3 relative", children: _jsx("span", { className: "bg-card text-muted-foreground text-sm px-2 absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2", children: "or continue with" }) })));
127
139
  };
140
+ export const ZudokuPasswordResetUi = ({ onPasswordReset, }) => {
141
+ const [isSubmitted, setIsSubmitted] = React.useState(false);
142
+ const passwordResetMutation = useMutation({
143
+ mutationFn: async ({ email }) => {
144
+ await onPasswordReset(email);
145
+ },
146
+ onSuccess: () => {
147
+ setIsSubmitted(true);
148
+ },
149
+ });
150
+ const form = useForm({
151
+ defaultValues: {
152
+ email: "",
153
+ },
154
+ });
155
+ const error = passwordResetMutation.error;
156
+ return (_jsxs(AuthCard, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Reset password" }), _jsx(CardDescription, { children: isSubmitted
157
+ ? "Check your email for a password reset link."
158
+ : "Enter your email address and we'll send you a link to reset your password." })] }), _jsxs(CardContent, { className: "flex flex-col gap-4", children: [error && (_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: "Error" }), _jsx(AlertDescription, { children: error?.message })] })), isSubmitted ? (_jsxs("div", { className: "flex flex-col gap-4", children: [_jsxs(Alert, { children: [_jsx(AlertTitle, { children: "Email sent" }), _jsx(AlertDescription, { children: "If an account exists with that email address, you will receive a password reset link shortly." })] }), _jsx(Link, { to: "/signin", children: _jsx(Button, { variant: "outline", className: "w-full", children: "Back to sign in" }) })] })) : (_jsxs(_Fragment, { children: [_jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit((data) => passwordResetMutation.mutate({ email: data.email })), className: "flex flex-col gap-2", children: [_jsxs(FormItem, { children: [_jsx(FormLabel, { children: "Email" }), _jsx(FormControl, { children: _jsx(Input, { placeholder: "you@example.com", ...form.register("email") }) }), _jsx(FormMessage, {})] }), _jsx(ActionButton, { type: "submit", isPending: passwordResetMutation.isPending, children: "Reset password" })] }) }), _jsx(Link, { to: "/signin", className: "text-sm text-muted-foreground", children: "Sign in" })] }))] })] }));
159
+ };
128
160
  //# sourceMappingURL=ZudokuAuthUi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZudokuAuthUi.js","sourceRoot":"","sources":["../../../../src/lib/authentication/ui/ZudokuAuthUi.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ZudokuAuthUi.js","sourceRoot":"","sources":["../../../../src/lib/authentication/ui/ZudokuAuthUi.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAoB,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,IAAI,EACJ,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACtC,OAAO,sBAAsB,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,GAAG;IACZ,CAAC,EAAE,GAAG;IACN,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;CACf,CAAC;AAIF,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,YAAY;IACtB,OAAO,EAAE,KAAK;IACd,CAAC,EAAE,KAAK;IACR,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,aAAa;IACxB,KAAK,EAAE,KAAK,CAAC,QAAQ;CACb,CAAC;AAEX,MAAM,qBAAqB,GAAG,CAC5B,QAAgB,EACY,EAAE;IAC9B,OAAO,QAAQ,IAAI,aAAa,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,SAAmB,EACY,EAAE;IACjC,OAAO,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,EAC1B,UAAU,EACV,OAAO,EACP,GAAG,WAAW,EACqD,EAAE,EAAE;IACvE,MAAM,YAAY,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,CACL,MAAC,MAAM,IACL,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAE,OAAO,KACZ,WAAW,aAEf,KAAC,YAAY,IAAC,SAAS,EAAC,yBAAyB,GAAG,EACnD,mBAAmB,CAAC,UAAU,CAAC,IACzB,CACV,CAAC;AACJ,CAAC,CAAC;AAOF,MAAM,iBAAiB,GAAG,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,SAAS,GAMV,EAAE,EAAE;IACH,OAAO,CACL,KAAC,IAAI,OAAK,IAAI,YACZ,gBACE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EACrC,SAAS,EAAC,qBAAqB,aAE/B,MAAC,QAAQ,eACP,KAAC,SAAS,yBAAmB,EAC7B,KAAC,WAAW,cACV,KAAC,KAAK,IAAC,WAAW,EAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAI,GAC7C,EACd,KAAC,WAAW,KAAG,IACN,EACX,MAAC,QAAQ,eACP,KAAC,SAAS,2BAAqB,EAC/B,KAAC,WAAW,cACV,KAAC,KAAK,IACJ,WAAW,EAAC,UAAU,KAClB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC7B,IAAI,EAAC,UAAU,GACf,GACU,EACd,KAAC,WAAW,KAAG,IACN,EACX,KAAC,YAAY,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,SAAS,YAC7C,WAAW,GACC,IACV,GACF,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EACT,aAAa,EACb,wBAAwB,EACxB,sBAAsB,GAMvB,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAE9D,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CACvC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAC/C,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,8BAA8B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC;QACzC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAc,EAAE,EAAE;YACpD,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;IACH,MAAM,wBAAwB,GAAG,WAAW,CAAC;QAC3C,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAA0B,EAAE,EAAE;YAC3D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAa;QAC/B,aAAa,EAAE;YACb,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACb;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GACX,sBAAsB,CAAC,SAAS,IAAI,wBAAwB,CAAC,SAAS,CAAC;IAEzE,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,IAAI,wBAAwB,CAAC,KAAK,CAAC;IAE7E,OAAO,CACL,MAAC,QAAQ,eACP,MAAC,UAAU,eACT,KAAC,SAAS,0BAAoB,EAC9B,KAAC,eAAe,uDAAuD,IAC5D,EACb,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aACzC,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,wBAAmB,EAC9B,KAAC,gBAAgB,cAAE,KAAK,EAAE,OAAO,GAAoB,IAC/C,CACT,EACA,sBAAsB,IAAI,CACzB,8BACE,KAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,KAAK,sBAAsB,CAAC,MAAM,CAAC;oCACjC,KAAK,EAAE,IAAI,CAAC,KAAK;oCACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iCACxB,CAAC,EAEJ,WAAW,EAAC,SAAS,EACrB,SAAS,EAAE,OAAO,GAClB,EACF,KAAC,IAAI,IACH,EAAE,EAAC,iBAAiB,EACpB,SAAS,EAAC,gDAAgD,iCAGrD,IACN,CACJ,EACA,sBAAsB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACjD,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,GAAI,CAC5C,EACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CACtB,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAEjD,CACH,EACD,KAAC,IAAI,IAAC,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,+BAA+B,gDAErD,IACK,IACL,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EACT,sBAAsB,EACtB,aAAa,EACb,wBAAwB,GAMzB,EAAE,EAAE;IACH,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAElD,MAAM,kBAAkB,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE3E,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,sBAAsB,GAAG,WAAW,CAAC;QACzC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAc,EAAE,EAAE;YACpD,MAAM,wBAAwB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,QAAQ,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG,WAAW,CAAC;QAC3C,UAAU,EAAE,KAAK,EAAE,EAAE,UAAU,EAA0B,EAAE,EAAE;YAC3D,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,QAAQ,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAa;QAC/B,aAAa,EAAE;YACb,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACb;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GACX,sBAAsB,CAAC,SAAS,IAAI,wBAAwB,CAAC,SAAS,CAAC;IAEzE,MAAM,KAAK,GAAG,sBAAsB,CAAC,KAAK,IAAI,wBAAwB,CAAC,KAAK,CAAC;IAE7E,OAAO,CACL,MAAC,QAAQ,eACP,MAAC,UAAU,eACT,KAAC,SAAS,0BAAoB,EAC9B,KAAC,eAAe,uDAAuD,IAC5D,EACb,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aACzC,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,wBAAmB,EAC9B,KAAC,gBAAgB,cAAE,KAAK,EAAE,OAAO,GAAoB,IAC/C,CACT,EAEA,sBAAsB,IAAI,CACzB,KAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CACjB,KAAK,sBAAsB,CAAC,MAAM,CAAC;4BACjC,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC,EAEJ,WAAW,EAAC,SAAS,EACrB,SAAS,EAAE,OAAO,GAClB,CACH,EACA,sBAAsB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACjD,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,GAAI,CAC5C,EACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,KAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CACtB,wBAAwB,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAEjD,CACH,EACD,KAAC,IAAI,IAAC,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,+BAA+B,kDAErD,IACK,IACL,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;AAE/E,MAAM,eAAe,GAAG,CAAC,EACvB,SAAS,EACT,OAAO,GAIR,EAAE,EAAE;IACH,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,wBAAwB,EACxB,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAC3D,YAEA,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC3B,KAAC,kBAAkB,IAEjB,UAAU,EAAE,QAAQ,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAF3B,QAAQ,CAGb,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,EAAE,SAAS,EAAmC,EAAE,EAAE;IAC3E,OAAO,CACL,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,KAAC,SAAS,IAAC,SAAS,EAAC,eAAe,YAClC,eAAM,SAAS,EAAC,wGAAwG,iCAEjH,GACG,CACb,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,eAAe,GAGhB,EAAE,EAAE;IACH,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,qBAAqB,GAAG,WAAW,CAAC;QACxC,UAAU,EAAE,KAAK,EAAE,EAAE,KAAK,EAAqB,EAAE,EAAE;YACjD,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,OAAO,CAAoB;QACtC,aAAa,EAAE;YACb,KAAK,EAAE,EAAE;SACV;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC;IAE1C,OAAO,CACL,MAAC,QAAQ,eACP,MAAC,UAAU,eACT,KAAC,SAAS,iCAA2B,EACrC,KAAC,eAAe,cACb,WAAW;4BACV,CAAC,CAAC,6CAA6C;4BAC/C,CAAC,CAAC,4EAA4E,GAChE,IACP,EACb,MAAC,WAAW,IAAC,SAAS,EAAC,qBAAqB,aACzC,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,wBAAmB,EAC9B,KAAC,gBAAgB,cAAE,KAAK,EAAE,OAAO,GAAoB,IAC/C,CACT,EACA,WAAW,CAAC,CAAC,CAAC,CACb,eAAK,SAAS,EAAC,qBAAqB,aAClC,MAAC,KAAK,eACJ,KAAC,UAAU,6BAAwB,EACnC,KAAC,gBAAgB,gHAGE,IACb,EACR,KAAC,IAAI,IAAC,EAAE,EAAC,SAAS,YAChB,KAAC,MAAM,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,QAAQ,gCAEnC,GACJ,IACH,CACP,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,IAAI,OAAK,IAAI,YACZ,gBACE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,qBAAqB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CACpD,EACD,SAAS,EAAC,qBAAqB,aAE/B,MAAC,QAAQ,eACP,KAAC,SAAS,wBAAkB,EAC5B,KAAC,WAAW,cACV,KAAC,KAAK,IACJ,WAAW,EAAC,iBAAiB,KACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAC1B,GACU,EACd,KAAC,WAAW,KAAG,IACN,EACX,KAAC,YAAY,IACX,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,qBAAqB,CAAC,SAAS,+BAG7B,IACV,GACF,EACP,KAAC,IAAI,IAAC,EAAE,EAAC,SAAS,EAAC,SAAS,EAAC,+BAA+B,wBAErD,IACN,CACJ,IACW,IACL,CACZ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const getRelativeRedirectUrl: (redirectTo?: string | null) => string;
@@ -0,0 +1,8 @@
1
+ import { joinUrl } from "../../util/joinUrl.js";
2
+ export const getRelativeRedirectUrl = (redirectTo) => {
3
+ if (!redirectTo) {
4
+ return "/";
5
+ }
6
+ return redirectTo.replace(joinUrl(window.location.origin, import.meta.env.BASE_URL), "");
7
+ };
8
+ //# sourceMappingURL=relativeRedirectUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relativeRedirectUrl.js","sourceRoot":"","sources":["../../../../src/lib/authentication/utils/relativeRedirectUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAA0B,EAAE,EAAE;IACnE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,CACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EACzD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -50,6 +50,8 @@ export declare const useAuth: () => {
50
50
  login: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
51
51
  logout: () => Promise<void>;
52
52
  signup: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
53
+ supportsEmailVerification: boolean;
54
+ requestEmailVerification: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
53
55
  isAuthenticated: boolean;
54
56
  isPending: boolean;
55
57
  profile: import("../authentication/state.js").UserProfile | null;
@@ -0,0 +1,3 @@
1
+ export declare function ErrorMessage({ error }: {
2
+ error: unknown;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Alert, AlertDescription, AlertTitle } from "zudoku/ui/Alert.js";
3
+ import { SyntaxHighlight } from "zudoku/ui/SyntaxHighlight.js";
4
+ import { DeveloperHint } from "../components/DeveloperHint.js";
5
+ import { ZudokuError } from "../util/invariant.js";
6
+ export function ErrorMessage({ error }) {
7
+ const message = error instanceof Error ? error.message : "Something went wrong";
8
+ const showDeveloperHints = process.env.NODE_ENV === "development";
9
+ const hint = error instanceof ZudokuError ? error.developerHint : undefined;
10
+ const title = error instanceof ZudokuError ? error.title : "Something went wrong";
11
+ const stack = error instanceof Error ? error.stack : undefined;
12
+ const cause = error instanceof Error ? error.cause : undefined;
13
+ const stringError = cause instanceof Error ? String(cause.stack) : stack;
14
+ return (_jsxs(_Fragment, { children: [_jsxs(Alert, { variant: "destructive", children: [_jsx(AlertTitle, { children: title }), _jsx(AlertDescription, { children: message })] }), showDeveloperHints && hint && (_jsx(DeveloperHint, { className: "mb-4", children: hint })), showDeveloperHints && stringError && (_jsx(SyntaxHighlight, { className: "max-h-[400px] [&>pre]:p-4", language: "js", code: stringError }))] }));
15
+ }
16
+ //# sourceMappingURL=ErrorMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorMessage.js","sourceRoot":"","sources":["../../../src/lib/errors/ErrorMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAsB;IACxD,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAElE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IAElE,MAAM,IAAI,GAAG,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,KAAK,GACT,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC;IACtE,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzE,OAAO,CACL,8BACE,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,aAC1B,KAAC,UAAU,cAAE,KAAK,GAAc,EAChC,KAAC,gBAAgB,cAAE,OAAO,GAAoB,IACxC,EACP,kBAAkB,IAAI,IAAI,IAAI,CAC7B,KAAC,aAAa,IAAC,SAAS,EAAC,MAAM,YAAE,IAAI,GAAiB,CACvD,EACA,kBAAkB,IAAI,WAAW,IAAI,CACpC,KAAC,eAAe,IACd,SAAS,EAAC,2BAA2B,EACrC,QAAQ,EAAC,IAAI,EACb,IAAI,EAAE,WAAW,GACjB,CACH,IACA,CACJ,CAAC;AACJ,CAAC"}
@@ -9,6 +9,8 @@ export declare const useAuth: () => {
9
9
  login: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
10
10
  logout: () => Promise<void>;
11
11
  signup: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
12
+ supportsEmailVerification: boolean;
13
+ requestEmailVerification: (options?: import("../authentication/authentication.js").AuthActionOptions) => Promise<void>;
12
14
  isAuthenticated: boolean;
13
15
  isPending: boolean;
14
16
  profile: import("../authentication/state.js").UserProfile | null;
@@ -1,179 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMutation, useQueryClient, useSuspenseQuery, } from "@tanstack/react-query";
3
- import { CheckIcon, CircleSlashIcon, PencilLineIcon, RefreshCwIcon, TrashIcon, XIcon, } from "lucide-react";
4
- import { AnimatePresence } from "motion/react";
5
- import React, { useState } from "react";
6
- import { Alert, AlertTitle } from "zudoku/ui/Alert.js";
7
- import { Card, CardHeader } from "zudoku/ui/Card.js";
8
- import { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "zudoku/ui/Dialog.js";
9
- import { Secret } from "zudoku/ui/Secret.js";
10
- import { useZudoku } from "../../components/context/ZudokuContext.js";
2
+ import { useState } from "react";
3
+ import { ErrorBoundary } from "react-error-boundary";
4
+ import { Button } from "zudoku/components";
5
+ import { useAuth } from "zudoku/hooks";
6
+ import { Item, ItemActions, ItemContent, ItemDescription, ItemTitle, } from "zudoku/ui/Item.js";
11
7
  import { Slot } from "../../components/Slot.js";
12
- import { Button } from "../../ui/Button.js";
13
- import { Input } from "../../ui/Input.js";
14
- import { cn } from "../../util/cn.js";
8
+ import { ErrorMessage } from "../../errors/ErrorMessage.js";
15
9
  import { CreateApiKeyDialog } from "./CreateApiKeyDialog.js";
10
+ import { ApiKeyList } from "./settings/ApiKeyList.js";
16
11
  export const SettingsApiKeys = ({ service }) => {
17
- const context = useZudoku();
18
- const queryClient = useQueryClient();
19
- const [editingConsumerId, setEditingConsumerId] = useState(null);
20
- const [editingLabel, setEditingLabel] = useState("");
21
- const { data, isFetching } = useSuspenseQuery({
22
- queryFn: () => service.getConsumers(context),
23
- queryKey: ["api-keys"],
24
- retry: false,
25
- });
26
12
  const [isCreateApiKeyOpen, setIsCreateApiKeyOpen] = useState(false);
27
- const deleteKeyMutation = useMutation({
28
- mutationFn: ({ consumerId, keyId, }) => {
29
- if (!service.deleteKey) {
30
- throw new Error("deleteKey not implemented");
31
- }
32
- return service.deleteKey(consumerId, keyId, context);
33
- },
34
- onMutate: async ({ consumerId, keyId }) => {
35
- await queryClient.cancelQueries({ queryKey: ["api-keys"] });
36
- const previousData = queryClient.getQueryData([
37
- "api-keys",
38
- ]);
39
- queryClient.setQueryData(["api-keys"], (old) => {
40
- if (!old) {
41
- return old;
42
- }
43
- return old.map((consumer) => {
44
- if (consumer.id === consumerId) {
45
- return {
46
- ...consumer,
47
- apiKeys: consumer.apiKeys.filter((key) => key.id !== keyId),
48
- };
49
- }
50
- return consumer;
51
- });
52
- });
53
- return { previousData };
54
- },
55
- onError: (_err, _variables, context) => {
56
- if (context?.previousData) {
57
- queryClient.setQueryData(["api-keys"], context.previousData);
58
- }
59
- },
60
- onSuccess: () => {
61
- void queryClient.invalidateQueries({ queryKey: ["api-keys"] });
62
- },
63
- });
64
- const updateConsumerMutation = useMutation({
65
- mutationFn: ({ consumerId, label, }) => {
66
- if (!service.updateConsumer) {
67
- throw new Error("updateConsumer not implemented");
68
- }
69
- return service.updateConsumer({ id: consumerId, label }, context);
70
- },
71
- onMutate: async ({ consumerId, label }) => {
72
- await queryClient.cancelQueries({ queryKey: ["api-keys"] });
73
- const previousData = queryClient.getQueryData(["api-keys"]);
74
- queryClient.setQueryData(["api-keys"], (old) => {
75
- if (!old) {
76
- return old;
77
- }
78
- return old.map((consumer) => {
79
- if (consumer.id === consumerId) {
80
- return {
81
- ...consumer,
82
- label,
83
- };
84
- }
85
- return consumer;
86
- });
87
- });
88
- return { previousData };
89
- },
90
- onError: (_err, _variables, context) => {
91
- if (context?.previousData) {
92
- queryClient.setQueryData(["api-keys"], context.previousData);
93
- }
94
- },
95
- onSuccess: () => {
96
- void queryClient.invalidateQueries({ queryKey: ["api-keys"] });
97
- },
98
- });
99
- const rollKeyMutation = useMutation({
100
- mutationFn: (id) => {
101
- if (!service.rollKey) {
102
- throw new Error("rollKey not implemented");
103
- }
104
- return service.rollKey(id, context);
105
- },
106
- onSuccess: () => queryClient.invalidateQueries({ queryKey: ["api-keys"] }),
107
- });
108
- const handleStartEdit = (consumerId, currentLabel) => {
109
- setEditingConsumerId(consumerId);
110
- setEditingLabel(currentLabel);
111
- };
112
- const handleSaveEdit = (consumerId) => {
113
- if (editingLabel.trim()) {
114
- updateConsumerMutation.mutate({
115
- consumerId,
116
- label: editingLabel.trim(),
117
- });
118
- }
119
- setEditingConsumerId(null);
120
- setEditingLabel("");
121
- };
122
- const handleCancelEdit = () => {
123
- setEditingConsumerId(null);
124
- setEditingLabel("");
125
- };
126
- return (_jsxs("div", { className: "max-w-screen-md h-full pt-(--padding-content-top) pb-(--padding-content-bottom)", children: [_jsx(Slot.Target, { name: "api-keys-list-page" }), _jsxs("div", { className: "flex justify-between pb-3", children: [_jsx("h1", { className: "font-medium text-2xl", children: "API Keys" }), service.createKey && (_jsx(CreateApiKeyDialog, { service: service, isOpen: isCreateApiKeyOpen, onOpenChange: setIsCreateApiKeyOpen }))] }), _jsx("p", { children: "Create, manage, and monitor your API keys" }), _jsx(Slot.Target, { name: "api-keys-list-page-before-keys" }), _jsx("div", { className: "h-8" }), rollKeyMutation.isError && (_jsxs(Alert, { variant: "destructive", className: "mb-4", children: [_jsx(CircleSlashIcon, { size: 16 }), _jsx(AlertTitle, { children: rollKeyMutation.error.message })] })), updateConsumerMutation.isError && (_jsxs(Alert, { variant: "destructive", className: "mb-4", children: [_jsx(CircleSlashIcon, { size: 16 }), _jsx(AlertTitle, { children: updateConsumerMutation.error.message })] })), deleteKeyMutation.isError && (_jsxs(Alert, { variant: "destructive", className: "mb-4", children: [_jsx(CircleSlashIcon, { size: 16 }), _jsx(AlertTitle, { children: deleteKeyMutation.error.message })] })), _jsx("div", { className: "", children: data.length === 0 ? (_jsxs("div", { className: "flex col-span-full flex-col justify-center gap-4 items-center p-8 border rounded-sm bg-muted/30 text-muted-foreground", children: [_jsxs("p", { className: "text-center", children: ["You have no API keys yet.", _jsx("br", {}), service.createKey && "Get started and create your first key."] }), service.createKey && (_jsx(CreateApiKeyDialog, { service: service, isOpen: isCreateApiKeyOpen, onOpenChange: setIsCreateApiKeyOpen }))] })) : (_jsx("ul", { className: cn("grid grid-cols-[1fr_min-content] divide-y divide-border col-span-6"), children: data.map((consumers) => (_jsxs(Card, { className: "grid grid-cols-subgrid col-span-full items-center mb-4 group", children: [_jsxs(CardHeader, { className: "border-b col-span-full grid-cols-subgrid grid", children: [_jsxs("div", { className: "h-10 flex flex-col text-sm justify-center", children: [_jsxs("div", { className: "font-medium text-lg flex items-center gap-2", children: [editingConsumerId === consumers.id ? (_jsxs("div", { className: "flex items-center gap-2 w-full", children: [_jsx(Input, { maxLength: 32, value: editingLabel, onChange: (e) => setEditingLabel(e.target.value), onKeyDown: (e) => {
127
- if (e.key === "Enter") {
128
- handleSaveEdit(consumers.id);
129
- }
130
- else if (e.key === "Escape") {
131
- handleCancelEdit();
132
- }
133
- }, className: "text-lg font-medium", autoFocus: true }), _jsxs("div", { className: "flex items-center", children: [_jsx(Button, { size: "icon", variant: "ghost", onClick: () => handleSaveEdit(consumers.id), disabled: !editingLabel.trim(), children: _jsx(CheckIcon, { size: 16 }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: handleCancelEdit, children: _jsx(XIcon, { size: 16 }) })] })] })) : (consumers.label), _jsx("div", { className: "text-muted-foreground text-xs", children: consumers.createdOn })] }), _jsxs("div", { className: "text-muted-foreground text-xs", children: [consumers.createdOn && (_jsxs("div", { children: ["Created on", " ", new Date(consumers.createdOn).toLocaleDateString()] })), consumers.expiresOn && (_jsxs("div", { children: ["Expires on", " ", new Date(consumers.expiresOn).toLocaleDateString()] }))] })] }), _jsxs("div", { className: "flex justify-end", children: [service.updateConsumer && (_jsxs(Button, { variant: "ghost", onClick: () => handleStartEdit(consumers.id, consumers.label), className: cn("flex gap-2", editingConsumerId === consumers.id &&
134
- "opacity-0! pointer-events-none"), disabled: editingConsumerId === consumers.id, children: [_jsx(PencilLineIcon, { size: 16 }), _jsx("span", { className: "hidden md:block", children: "Edit label" })] })), service.rollKey && (_jsxs(Dialog, { children: [_jsx(DialogTrigger, { asChild: true, children: _jsxs(Button, { title: "Roll this key", variant: "ghost", disabled: rollKeyMutation.isPending, className: "flex items-center gap-2", children: [_jsx(RefreshCwIcon, { size: 16, className: rollKeyMutation.isPending
135
- ? "animate-spin"
136
- : undefined }), _jsx("span", { className: "hidden md:block", children: "Roll key" })] }) }), _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Roll API Key" }), _jsx(DialogDescription, { children: "Are you sure you want to roll this API key?" })] }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Cancel" }) }), _jsx(DialogClose, { asChild: true, children: _jsx(Button, { onClick: () => {
137
- rollKeyMutation.mutate(consumers.id);
138
- }, children: "Roll Key" }) })] })] })] }))] })] }), _jsx("div", { className: "col-span-full grid-cols-subgrid grid", children: _jsx(AnimatePresence, { children: consumers.apiKeys.map((apiKey) => (_jsxs(React.Fragment, { children: [_jsx(RevealApiKey, { apiKey: apiKey, onDeleteKey: () => {
139
- deleteKeyMutation.mutate({
140
- consumerId: consumers.id,
141
- keyId: apiKey.id,
142
- });
143
- }, className: deleteKeyMutation.variables?.keyId === apiKey.id &&
144
- (deleteKeyMutation.isPending || isFetching)
145
- ? "opacity-10!"
146
- : undefined }), _jsx("div", { className: "col-span-full h-px bg-border" })] }, apiKey.id))) }) })] }, consumers.id))) })) })] }));
147
- };
148
- const getTimeAgo = (date) => {
149
- const now = new Date();
150
- const created = new Date(date);
151
- const diffInSeconds = Math.floor((now.getTime() - created.getTime()) / 1000);
152
- const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
153
- if (diffInSeconds < 60)
154
- return rtf.format(-diffInSeconds, "second");
155
- if (diffInSeconds < 3600)
156
- return rtf.format(-Math.floor(diffInSeconds / 60), "minute");
157
- if (diffInSeconds < 86400)
158
- return rtf.format(-Math.floor(diffInSeconds / 3600), "hour");
159
- if (diffInSeconds < 2592000)
160
- return rtf.format(-Math.floor(diffInSeconds / 86400), "day");
161
- if (diffInSeconds < 31536000)
162
- return rtf.format(-Math.floor(diffInSeconds / 2592000), "month");
163
- return rtf.format(-Math.floor(diffInSeconds / 31536000), "year");
164
- };
165
- const RevealApiKey = ({ apiKey, onDeleteKey, className, }) => {
166
- const [revealed, setRevealed] = useState(false);
167
- const { key, createdOn, expiresOn } = apiKey;
168
- const isExpired = expiresOn && new Date(expiresOn) < new Date();
169
- const daysUntilExpiry = expiresOn
170
- ? Math.ceil((new Date(expiresOn).getTime() - Date.now()) / (1000 * 60 * 60 * 24))
171
- : Infinity;
172
- const expiresSoon = daysUntilExpiry <= 7 && !isExpired;
173
- return (_jsxs("div", { className: cn("grid col-span-full grid-cols-subgrid p-6", className), children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(Secret, { className: "max-w-fit w-full", secret: key, status: isExpired ? "expired" : expiresSoon ? "expiring" : "active", revealed: revealed, onReveal: setRevealed }), _jsxs("div", { className: "flex gap-1 mt-0.5 text-nowrap", children: [createdOn && (_jsxs("span", { className: "text-xs text-muted-foreground", children: ["Created ", getTimeAgo(createdOn), "."] })), " ", expiresOn && expiresSoon && (_jsxs("span", { className: "text-xs text-primary", children: ["Expires in ", daysUntilExpiry, " ", daysUntilExpiry === 1 ? "day" : "days", "."] })), expiresOn && isExpired && (_jsxs("span", { className: "text-xs text-primary", children: ["Expired", " ", daysUntilExpiry === 0
174
- ? "today."
175
- : `${daysUntilExpiry * -1} days ago.`] }))] })] }), _jsx("div", { className: "flex justify-end", children: expiresOn && onDeleteKey && (_jsxs(Dialog, { children: [_jsx(DialogTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", children: _jsx(TrashIcon, { size: 16 }) }) }), _jsxs(DialogContent, { children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: "Delete API Key" }), _jsx(DialogDescription, { children: "Are you sure you want to delete this API key?" })] }), _jsxs(DialogFooter, { children: [_jsx(DialogClose, { asChild: true, children: _jsx(Button, { variant: "outline", children: "Cancel" }) }), _jsx(DialogClose, { asChild: true, children: _jsx(Button, { onClick: () => {
176
- onDeleteKey();
177
- }, children: "Delete" }) })] })] })] })) })] }));
13
+ const auth = useAuth();
14
+ return (_jsxs("div", { className: "max-w-3xl h-full pt-(--padding-content-top) pb-(--padding-content-bottom)", children: [_jsx(Slot.Target, { name: "api-keys-list-page" }), _jsxs("div", { className: "flex justify-between pb-3", children: [_jsx("h1", { className: "font-medium text-2xl", children: "API Keys" }), service.createKey && (_jsx(CreateApiKeyDialog, { service: service, isOpen: isCreateApiKeyOpen, onOpenChange: setIsCreateApiKeyOpen }))] }), _jsx("p", { children: "Create, manage, and monitor your API keys" }), _jsx(Slot.Target, { name: "api-keys-list-page-before-keys" }), auth.profile?.emailVerified === false ? (_jsxs(Item, { variant: "outline", children: [_jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Verified email required" }), _jsx(ItemDescription, { children: "You need to verify your email to access API keys." })] }), _jsx(ItemActions, { children: _jsx(Button, { onClick: () => auth.requestEmailVerification(), children: "Verify email" }) })] })) : (_jsx(ErrorBoundary, { fallbackRender: ({ error }) => _jsx(ErrorMessage, { error: error }), children: _jsx(ApiKeyList, { service: service }) }))] }));
178
15
  };
179
16
  //# sourceMappingURL=SettingsApiKeys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsApiKeys.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-keys/SettingsApiKeys.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsApiKeys.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-keys/SettingsApiKeys.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACL,IAAI,EACJ,WAAW,EACX,WAAW,EACX,eAAe,EACf,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,OAAO,EAA8B,EAAE,EAAE;IACzE,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,OAAO,CACL,eAAK,SAAS,EAAC,2EAA2E,aACxF,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,oBAAoB,GAAG,EAEzC,eAAK,SAAS,EAAC,2BAA2B,aACxC,aAAI,SAAS,EAAC,sBAAsB,yBAAc,EAEjD,OAAO,CAAC,SAAS,IAAI,CACpB,KAAC,kBAAkB,IACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,kBAAkB,EAC1B,YAAY,EAAE,qBAAqB,GACnC,CACH,IACG,EACN,oEAAgD,EAEhD,KAAC,IAAI,CAAC,MAAM,IAAC,IAAI,EAAC,gCAAgC,GAAG,EACpD,IAAI,CAAC,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,CACvC,MAAC,IAAI,IAAC,OAAO,EAAC,SAAS,aACrB,MAAC,WAAW,eACV,KAAC,SAAS,0CAAoC,EAC9C,KAAC,eAAe,oEAEE,IACN,EAEd,KAAC,WAAW,cACV,KAAC,MAAM,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,6BAE7C,GACG,IACT,CACR,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,GAAI,YAE7D,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,GAAI,GAClB,CACjB,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { ApiKeysOptions } from "../../../config/validators/validate.js";
1
2
  import type { UseAuthReturn } from "../../authentication/hook.js";
2
3
  import type { ApiIdentityPlugin, ProfileMenuPlugin, ZudokuPlugin } from "../../core/plugins.js";
3
4
  import type { ZudokuContext } from "../../core/ZudokuContext.js";
@@ -41,4 +42,6 @@ export interface ApiConsumer {
41
42
  key?: ApiKey;
42
43
  }
43
44
  export declare const createApiKeyService: <T extends ApiKeyService>(service: T) => T;
44
- export declare const apiKeyPlugin: (options: ApiKeyPluginOptions) => ZudokuPlugin & ApiIdentityPlugin & ProfileMenuPlugin;
45
+ export declare const apiKeyPlugin: ({ deploymentName, ...options }: Omit<ApiKeysOptions, "enabled"> & {
46
+ deploymentName?: string;
47
+ }) => ZudokuPlugin & ApiIdentityPlugin & ProfileMenuPlugin;
@@ -1,8 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { KeyRoundIcon } from "lucide-react";
3
- import { RouterError } from "../../errors/RouterError.js";
4
3
  import invariant from "../../util/invariant.js";
5
- import { ProtectedRoute } from "./ProtectedRoute.js";
6
4
  import { SettingsApiKeys } from "./SettingsApiKeys.js";
7
5
  const DEFAULT_API_KEY_ENDPOINT = "https://api.zuploedge.com/v2/client";
8
6
  const parseJsonSafe = async (response) => {
@@ -69,6 +67,9 @@ const createDefaultHandler = (deploymentName, options) => {
69
67
  const data = (await keys.json());
70
68
  return data.data.map((consumer) => ({
71
69
  id: consumer.id,
70
+ createdOn: consumer.createdOn,
71
+ updatedOn: consumer.updatedOn,
72
+ expiresOn: consumer.expiresOn,
72
73
  label: consumer.label || consumer.subject || "API Key",
73
74
  apiKeys: consumer.apiKeys.data,
74
75
  key: consumer.apiKeys.data.at(0),
@@ -78,10 +79,17 @@ const createDefaultHandler = (deploymentName, options) => {
78
79
  };
79
80
  };
80
81
  export const createApiKeyService = (service) => service;
81
- export const apiKeyPlugin = (options) => {
82
- const service = "deploymentName" in options
83
- ? createDefaultHandler(options.deploymentName, options)
82
+ export const apiKeyPlugin = ({ deploymentName, ...options }) => {
83
+ const service = deploymentName
84
+ ? createDefaultHandler(deploymentName, { deploymentName, ...options })
84
85
  : options;
86
+ if (!service.getConsumers) {
87
+ throw new Error("getConsumers is required when using the apiKeyPlugin");
88
+ }
89
+ const verifiedService = {
90
+ ...service,
91
+ getConsumers: service.getConsumers,
92
+ };
85
93
  return {
86
94
  getProfileMenuItems: () => [
87
95
  {
@@ -93,7 +101,7 @@ export const apiKeyPlugin = (options) => {
93
101
  ],
94
102
  getIdentities: async (context) => {
95
103
  try {
96
- const consumers = await service.getConsumers(context);
104
+ const consumers = await verifiedService.getConsumers(context);
97
105
  return consumers.map((consumer) => ({
98
106
  authorizeRequest: (request) => {
99
107
  request.headers.set("Authorization", `Bearer ${consumer.apiKeys.at(0)?.key}`);
@@ -110,17 +118,14 @@ export const apiKeyPlugin = (options) => {
110
118
  getRoutes: () => {
111
119
  return [
112
120
  {
113
- element: _jsx(ProtectedRoute, {}),
114
- errorElement: _jsx(RouterError, {}),
115
- children: [
116
- {
117
- path: "/settings/api-keys",
118
- element: _jsx(SettingsApiKeys, { service: service }),
119
- },
120
- ],
121
+ path: "/settings/api-keys",
122
+ element: _jsx(SettingsApiKeys, { service: verifiedService }),
121
123
  },
122
124
  ];
123
125
  },
126
+ getProtectedRoutes: () => {
127
+ return ["/settings/api-keys"];
128
+ },
124
129
  };
125
130
  };
126
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-keys/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-keys/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ZudokuContext } from "../../../core/ZudokuContext.js";
2
+ import type { ApiConsumer } from "../index.js";
3
+ declare const ApiKeyItem: ({ consumer, onUpdate, onRollKey, onDeleteKey, }: {
4
+ consumer: ApiConsumer;
5
+ onUpdate?: (data: {
6
+ label: string;
7
+ id: string;
8
+ }, context: ZudokuContext) => Promise<void>;
9
+ onRollKey?: (consumerId: string, context: ZudokuContext) => Promise<void>;
10
+ onDeleteKey?: (consumerId: string, keyId: string, context: ZudokuContext) => Promise<void>;
11
+ }) => import("react/jsx-runtime").JSX.Element;
12
+ export default ApiKeyItem;