zudoku 0.53.5 → 0.54.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/dist/config/config.d.ts +1 -0
- package/dist/config/validators/InputNavigationSchema.d.ts +254 -158
- package/dist/config/validators/InputNavigationSchema.js +4 -1
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/ProtectedRoutesSchema.d.ts +12 -0
- package/dist/config/validators/ProtectedRoutesSchema.js +19 -0
- package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -0
- package/dist/config/validators/icon-types.d.ts +1 -1
- package/dist/config/validators/icon-types.js +16 -0
- package/dist/config/validators/icon-types.js.map +1 -1
- package/dist/config/validators/validate.d.ts +32 -19
- package/dist/config/validators/validate.js +6 -2
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/lib/authentication/components/CallbackHandler.js +11 -9
- package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
- package/dist/lib/authentication/components/OAuthErrorPage.d.ts +3 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js +99 -0
- package/dist/lib/authentication/components/OAuthErrorPage.js.map +1 -0
- package/dist/lib/authentication/errors.d.ts +6 -12
- package/dist/lib/authentication/errors.js +2 -1
- package/dist/lib/authentication/errors.js.map +1 -1
- package/dist/lib/authentication/hook.d.ts +1 -0
- package/dist/lib/authentication/hook.js.map +1 -1
- package/dist/lib/authentication/providers/azureb2c.js +4 -2
- package/dist/lib/authentication/providers/azureb2c.js.map +1 -1
- package/dist/lib/authentication/providers/clerk.js +4 -2
- package/dist/lib/authentication/providers/clerk.js.map +1 -1
- package/dist/lib/authentication/providers/openid.js +3 -1
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/components/Heading.js +1 -1
- package/dist/lib/components/Heading.js.map +1 -1
- package/dist/lib/components/MobileTopNavigation.js +5 -3
- package/dist/lib/components/MobileTopNavigation.js.map +1 -1
- package/dist/lib/components/TopNavigation.js +4 -3
- package/dist/lib/components/TopNavigation.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.js +21 -13
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/navigation/NavigationItem.d.ts +1 -1
- package/dist/lib/components/navigation/NavigationItem.js +8 -1
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.d.ts +3 -1
- package/dist/lib/components/navigation/utils.js +6 -3
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/RouteGuard.js +9 -9
- package/dist/lib/core/RouteGuard.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +2 -1
- package/dist/lib/core/ZudokuContext.js +13 -1
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/plugins.d.ts +2 -1
- package/dist/lib/core/plugins.js.map +1 -1
- package/dist/lib/plugins/api-keys/CreateApiKey.js +7 -3
- package/dist/lib/plugins/api-keys/CreateApiKey.js.map +1 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js +3 -1
- package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
- package/dist/lib/plugins/api-keys/index.d.ts +1 -0
- package/dist/lib/plugins/api-keys/index.js +3 -7
- package/dist/lib/plugins/api-keys/index.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.d.ts +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js +1 -1
- package/dist/lib/plugins/openapi/graphql/gql.js.map +1 -1
- package/dist/lib/plugins/openapi/graphql/graphql.d.ts +1 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js +1 -0
- package/dist/lib/plugins/openapi/graphql/graphql.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +42 -10
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/ui/ActionButton.js +1 -1
- package/dist/lib/ui/ActionButton.js.map +1 -1
- package/dist/lib/ui/Badge.d.ts +1 -1
- package/dist/lib/ui/Button.d.ts +2 -2
- package/dist/lib/ui/Command.d.ts +1 -1
- package/dist/lib/util/invariant.d.ts +6 -5
- package/dist/lib/util/invariant.js +1 -1
- package/dist/lib/util/invariant.js.map +1 -1
- package/dist/vite/dev-server.js +1 -1
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/plugin-docs.js +15 -10
- package/dist/vite/plugin-docs.js.map +1 -1
- package/dist/vite/prerender/worker.js +5 -1
- package/dist/vite/prerender/worker.js.map +1 -1
- package/dist/vite/shadcn-registry.d.ts +8 -8
- package/lib/{Command-C9AC5cf-.js → Command-BYukybsa.js} +2 -2
- package/lib/{Command-C9AC5cf-.js.map → Command-BYukybsa.js.map} +1 -1
- package/lib/{Dialog-DMWw1doX.js → Dialog-u9Uz9sTt.js} +4 -4
- package/lib/{Dialog-DMWw1doX.js.map → Dialog-u9Uz9sTt.js.map} +1 -1
- package/lib/{MdxPage-DVI4iYgW.js → MdxPage-Bsko6_kb.js} +11 -11
- package/lib/{MdxPage-DVI4iYgW.js.map → MdxPage-Bsko6_kb.js.map} +1 -1
- package/lib/OAuthErrorPage-DJzGiIBt.js +150 -0
- package/lib/OAuthErrorPage-DJzGiIBt.js.map +1 -0
- package/lib/{OasProvider-CbwsKPNc.js → OasProvider-DQQRt3oS.js} +3 -3
- package/lib/{OasProvider-CbwsKPNc.js.map → OasProvider-DQQRt3oS.js.map} +1 -1
- package/lib/{OperationList-Bn9ggxw8.js → OperationList-DpmkHf26.js} +45 -43
- package/lib/{OperationList-Bn9ggxw8.js.map → OperationList-DpmkHf26.js.map} +1 -1
- package/lib/{Pagination-bavPec-z.js → Pagination-kqFNgtnI.js} +3 -3
- package/lib/{Pagination-bavPec-z.js.map → Pagination-kqFNgtnI.js.map} +1 -1
- package/lib/{RouteGuard-Vnlz_t51.js → RouteGuard-0wPUKdxJ.js} +166 -165
- package/lib/{RouteGuard-Vnlz_t51.js.map → RouteGuard-0wPUKdxJ.js.map} +1 -1
- package/lib/{SchemaList-DETyCVqu.js → SchemaList-DS-pMd6B.js} +8 -8
- package/lib/{SchemaList-DETyCVqu.js.map → SchemaList-DS-pMd6B.js.map} +1 -1
- package/lib/{SchemaView-Dvxo2RNe.js → SchemaView-BnN6WHjw.js} +4 -4
- package/lib/{SchemaView-Dvxo2RNe.js.map → SchemaView-BnN6WHjw.js.map} +1 -1
- package/lib/Select-BmTTKNPp.js +273 -0
- package/lib/Select-BmTTKNPp.js.map +1 -0
- package/lib/{SignUp-ClYhZq9H.js → SignUp-BwOSCD-6.js} +9 -9
- package/lib/{SignUp-ClYhZq9H.js.map → SignUp-BwOSCD-6.js.map} +1 -1
- package/lib/{Slot-B31yZlfB.js → Slot-DAyXieeZ.js} +1352 -1349
- package/lib/{Slot-B31yZlfB.js.map → Slot-DAyXieeZ.js.map} +1 -1
- package/lib/{SyntaxHighlight-bm761HDo.js → SyntaxHighlight-BMKR4pl6.js} +3 -3
- package/lib/{SyntaxHighlight-bm761HDo.js.map → SyntaxHighlight-BMKR4pl6.js.map} +1 -1
- package/lib/{Toc-D4oBWE8D.js → Toc-BKDRCQzU.js} +2 -2
- package/lib/{Toc-D4oBWE8D.js.map → Toc-BKDRCQzU.js.map} +1 -1
- package/lib/ZudokuContext-CLl5w57E.js +1278 -0
- package/lib/ZudokuContext-CLl5w57E.js.map +1 -0
- package/lib/{chunk-DQRVZFIR-DHK7_Ilc.js → chunk-QMGIS6GS-CEOk3lro.js} +3 -3
- package/lib/chunk-QMGIS6GS-CEOk3lro.js.map +1 -0
- package/lib/{circular-CRbFI6Zl.js → circular-8GWQDvCW.js} +2 -2
- package/lib/{circular-CRbFI6Zl.js.map → circular-8GWQDvCW.js.map} +1 -1
- package/lib/{createServer-DNyGJJNX.js → createServer-BsezSzvV.js} +5 -5
- package/lib/{createServer-DNyGJJNX.js.map → createServer-BsezSzvV.js.map} +1 -1
- package/lib/{errors-C1GlNcV3.js → errors-Cs7hKmdL.js} +11 -10
- package/lib/errors-Cs7hKmdL.js.map +1 -0
- package/lib/hook-DbUCLQNg.js +247 -0
- package/lib/hook-DbUCLQNg.js.map +1 -0
- package/lib/{index-D09PbNex.js → index-A5Qdwj1B.js} +1521 -1420
- package/lib/index-A5Qdwj1B.js.map +1 -0
- package/lib/{index-C_PXQ8Bx.js → index-Bg7Js3jB.js} +832 -912
- package/lib/index-Bg7Js3jB.js.map +1 -0
- package/lib/{index-CZTEgYDd.js → index-BkW9tJ6j.js} +2 -2
- package/lib/{index-CZTEgYDd.js.map → index-BkW9tJ6j.js.map} +1 -1
- package/lib/index.esm-CdzlRw50.js +1254 -0
- package/lib/index.esm-CdzlRw50.js.map +1 -0
- package/lib/{invariant-DAFpPywt.js → invariant-Bm-FVUQE.js} +2 -6
- package/lib/invariant-Bm-FVUQE.js.map +1 -0
- package/lib/ui/ActionButton.js +9 -9
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Form.js +1 -1
- package/lib/ui/SyntaxHighlight.js +3 -3
- package/lib/{useExposedProps-BIYjecPD.js → useExposedProps-KcgXHKeE.js} +2 -2
- package/lib/{useExposedProps-BIYjecPD.js.map → useExposedProps-KcgXHKeE.js.map} +1 -1
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +25 -17
- package/lib/zudoku.auth-azureb2c.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +24 -21
- package/lib/zudoku.auth-clerk.js.map +1 -1
- package/lib/zudoku.auth-openid.js +213 -205
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.auth-supabase.js +2 -2
- package/lib/zudoku.components.js +29 -28
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.hooks.js +16 -15
- package/lib/zudoku.hooks.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +26 -25
- package/lib/zudoku.plugin-api-catalog.js.map +1 -1
- package/lib/zudoku.plugin-api-keys.js +404 -289
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +7 -6
- package/lib/zudoku.plugin-openapi.js.map +1 -1
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +28 -27
- package/lib/zudoku.plugin-search-pagefind.js.map +1 -1
- package/lib/zudoku.plugins.js.map +1 -1
- package/package.json +8 -8
- package/src/lib/authentication/components/CallbackHandler.tsx +22 -15
- package/src/lib/authentication/components/OAuthErrorPage.tsx +171 -0
- package/src/lib/authentication/errors.ts +27 -13
- package/src/lib/authentication/hook.ts +2 -0
- package/src/lib/authentication/providers/azureb2c.tsx +8 -3
- package/src/lib/authentication/providers/clerk.tsx +4 -1
- package/src/lib/authentication/providers/openid.tsx +7 -1
- package/src/lib/components/Heading.tsx +1 -1
- package/src/lib/components/MobileTopNavigation.tsx +6 -3
- package/src/lib/components/TopNavigation.tsx +4 -4
- package/src/lib/components/context/ZudokuContext.ts +25 -18
- package/src/lib/components/navigation/NavigationItem.tsx +9 -1
- package/src/lib/components/navigation/utils.ts +9 -3
- package/src/lib/core/RouteGuard.tsx +13 -13
- package/src/lib/core/ZudokuContext.ts +18 -5
- package/src/lib/core/plugins.ts +2 -1
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +12 -1
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +24 -4
- package/src/lib/plugins/api-keys/index.tsx +7 -8
- package/src/lib/plugins/openapi/graphql/gql.ts +3 -3
- package/src/lib/plugins/openapi/graphql/graphql.ts +2 -0
- package/src/lib/plugins/openapi/index.tsx +66 -16
- package/src/lib/ui/ActionButton.tsx +3 -1
- package/src/lib/util/invariant.ts +7 -5
- package/lib/Alert-CWApD0CL.js +0 -161
- package/lib/Alert-CWApD0CL.js.map +0 -1
- package/lib/CallbackHandler-Dr5Lva9x.js +0 -38
- package/lib/CallbackHandler-Dr5Lva9x.js.map +0 -1
- package/lib/chunk-DQRVZFIR-DHK7_Ilc.js.map +0 -1
- package/lib/errors-C1GlNcV3.js.map +0 -1
- package/lib/hook-CZjW2buS.js +0 -1510
- package/lib/hook-CZjW2buS.js.map +0 -1
- package/lib/index-C_PXQ8Bx.js.map +0 -1
- package/lib/index-D09PbNex.js.map +0 -1
- package/lib/index.esm-Cp4wkyud.js +0 -1236
- package/lib/index.esm-Cp4wkyud.js.map +0 -1
- package/lib/invariant-DAFpPywt.js.map +0 -1
|
@@ -1,50 +1,55 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import { CircleSlashIcon as
|
|
3
|
-
import { D as
|
|
4
|
-
import { i as
|
|
5
|
-
import { O as
|
|
6
|
-
import {
|
|
7
|
-
import { Button as
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
import { CircleSlashIcon as F, CheckIcon as te, XIcon as ue, PencilLineIcon as he, RefreshCwIcon as fe, EyeOffIcon as pe, EyeIcon as me, CopyIcon as xe, TrashIcon as ye, KeyRoundIcon as ge } from "lucide-react";
|
|
3
|
+
import { D as je, a as Y, R as Ce } from "./Slot-DAyXieeZ.js";
|
|
4
|
+
import { i as A } from "./invariant-Bm-FVUQE.js";
|
|
5
|
+
import { O as ve, a as we, L as be } from "./chunk-QMGIS6GS-CEOk3lro.js";
|
|
6
|
+
import { a as ke } from "./hook-DbUCLQNg.js";
|
|
7
|
+
import { Button as x } from "./ui/Button.js";
|
|
8
|
+
import { c as se, e as ne, b as Ne } from "./ZudokuContext-CLl5w57E.js";
|
|
9
|
+
import { u as z, A as O, a as M, b as Ee, S as Ke, c as De, d as Ie, e as Pe, f as Ae, g as Z } from "./Select-BmTTKNPp.js";
|
|
10
|
+
import * as _ from "react";
|
|
11
|
+
import Re, { createContext as G, useRef as D, useLayoutEffect as Se, useEffect as ie, useId as J, useContext as U, useInsertionEffect as Te, useMemo as L, useCallback as ze, Children as Oe, isValidElement as Me, useState as K, forwardRef as qe } from "react";
|
|
12
|
+
import { C as Fe, a as Le } from "./Card-CMDQUPM4.js";
|
|
13
|
+
import { e as W, f as I, D as $, g as Q, a as B, c as H, b as V, d as re } from "./Dialog-u9Uz9sTt.js";
|
|
14
|
+
import { Input as ae } from "./ui/Input.js";
|
|
15
|
+
import { c as N } from "./cn-dYga0KKN.js";
|
|
16
|
+
import { u as $e } from "./CodeBlock-B-G0eKtw.js";
|
|
17
|
+
import { a as Qe } from "./index.esm-CdzlRw50.js";
|
|
18
|
+
import { B as Be } from "./Button-B3o-2Xdf.js";
|
|
19
|
+
import { S as He } from "./Spinner-mNLZ6awP.js";
|
|
20
|
+
const Ve = () => {
|
|
21
|
+
const t = ke();
|
|
22
|
+
return t.isAuthEnabled && t.isPending ? null : t.isAuthenticated ? /* @__PURE__ */ e.jsx(ve, {}) : t.isAuthEnabled ? /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: [
|
|
19
23
|
"Please login first to view this page",
|
|
20
|
-
/* @__PURE__ */ e.jsx(
|
|
21
|
-
] }) : /* @__PURE__ */ e.jsx("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: /* @__PURE__ */ e.jsxs(
|
|
24
|
+
/* @__PURE__ */ e.jsx(x, { onClick: () => t.login(), children: "Login" })
|
|
25
|
+
] }) : /* @__PURE__ */ e.jsx("div", { className: "flex flex-col justify-center gap-2 items-center h-1/2", children: /* @__PURE__ */ e.jsxs(je, { className: "max-w-[600px]", children: [
|
|
22
26
|
"Authentication needs to be enabled for API keys to work. Enable it in your Zudoku configuration under ",
|
|
23
27
|
/* @__PURE__ */ e.jsx("code", { children: "authentication" }),
|
|
24
28
|
"."
|
|
25
29
|
] }) });
|
|
26
|
-
},
|
|
27
|
-
function
|
|
28
|
-
const i =
|
|
30
|
+
}, _e = G({});
|
|
31
|
+
function oe(t) {
|
|
32
|
+
const i = D(null);
|
|
29
33
|
return i.current === null && (i.current = t()), i.current;
|
|
30
34
|
}
|
|
31
|
-
const
|
|
35
|
+
const Ge = typeof window < "u", Je = Ge ? Se : ie, le = /* @__PURE__ */ G(null);
|
|
36
|
+
function Ue(t) {
|
|
37
|
+
return typeof t == "object" && t !== null;
|
|
38
|
+
}
|
|
39
|
+
function We(t) {
|
|
40
|
+
return Ue(t) && "offsetHeight" in t;
|
|
41
|
+
}
|
|
42
|
+
const Xe = G({
|
|
32
43
|
transformPagePoint: (t) => t,
|
|
33
44
|
isStatic: !1,
|
|
34
45
|
reducedMotion: "never"
|
|
35
46
|
});
|
|
36
|
-
|
|
37
|
-
return typeof t == "object" && t !== null;
|
|
38
|
-
}
|
|
39
|
-
function qe(t) {
|
|
40
|
-
return Se(t) && "offsetHeight" in t;
|
|
41
|
-
}
|
|
42
|
-
class Le extends F.Component {
|
|
47
|
+
class Ye extends _.Component {
|
|
43
48
|
getSnapshotBeforeUpdate(i) {
|
|
44
49
|
const s = this.props.childRef.current;
|
|
45
50
|
if (s && i.isPresent && !this.props.isPresent) {
|
|
46
|
-
const n = s.offsetParent,
|
|
47
|
-
|
|
51
|
+
const n = s.offsetParent, r = We(n) && n.offsetWidth || 0, a = this.props.sizeRef.current;
|
|
52
|
+
a.height = s.offsetHeight || 0, a.width = s.offsetWidth || 0, a.top = s.offsetTop, a.left = s.offsetLeft, a.right = r - a.width - a.left;
|
|
48
53
|
}
|
|
49
54
|
return null;
|
|
50
55
|
}
|
|
@@ -57,234 +62,347 @@ class Le extends F.Component {
|
|
|
57
62
|
return this.props.children;
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
|
-
function
|
|
61
|
-
const
|
|
65
|
+
function Ze({ children: t, isPresent: i, anchorX: s, root: n }) {
|
|
66
|
+
const r = J(), a = D(null), l = D({
|
|
62
67
|
width: 0,
|
|
63
68
|
height: 0,
|
|
64
69
|
top: 0,
|
|
65
70
|
left: 0,
|
|
66
71
|
right: 0
|
|
67
|
-
}), { nonce:
|
|
68
|
-
return
|
|
69
|
-
const { width:
|
|
70
|
-
if (i || !
|
|
72
|
+
}), { nonce: h } = U(Xe);
|
|
73
|
+
return Te(() => {
|
|
74
|
+
const { width: y, height: d, top: C, left: u, right: f } = l.current;
|
|
75
|
+
if (i || !a.current || !y || !d)
|
|
71
76
|
return;
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
const p = s === "left" ? `left: ${u}` : `right: ${f}`;
|
|
78
|
+
a.current.dataset.motionPopId = r;
|
|
79
|
+
const m = document.createElement("style");
|
|
80
|
+
h && (m.nonce = h);
|
|
81
|
+
const g = n ?? document.head;
|
|
82
|
+
return g.appendChild(m), m.sheet && m.sheet.insertRule(`
|
|
83
|
+
[data-motion-pop-id="${r}"] {
|
|
77
84
|
position: absolute !important;
|
|
78
|
-
width: ${
|
|
79
|
-
height: ${
|
|
80
|
-
${
|
|
81
|
-
top: ${
|
|
85
|
+
width: ${y}px !important;
|
|
86
|
+
height: ${d}px !important;
|
|
87
|
+
${p}px !important;
|
|
88
|
+
top: ${C}px !important;
|
|
82
89
|
}
|
|
83
90
|
`), () => {
|
|
84
|
-
|
|
91
|
+
g.removeChild(m), g.contains(m) && g.removeChild(m);
|
|
85
92
|
};
|
|
86
|
-
}, [i]), e.jsx(
|
|
93
|
+
}, [i]), e.jsx(Ye, { isPresent: i, childRef: a, sizeRef: l, children: _.cloneElement(t, { ref: a }) });
|
|
87
94
|
}
|
|
88
|
-
const
|
|
89
|
-
const
|
|
90
|
-
let
|
|
91
|
-
id:
|
|
95
|
+
const et = ({ children: t, initial: i, isPresent: s, onExitComplete: n, custom: r, presenceAffectsLayout: a, mode: l, anchorX: h, root: y }) => {
|
|
96
|
+
const d = oe(tt), C = J();
|
|
97
|
+
let u = !0, f = L(() => (u = !1, {
|
|
98
|
+
id: C,
|
|
92
99
|
initial: i,
|
|
93
100
|
isPresent: s,
|
|
94
|
-
custom:
|
|
95
|
-
onExitComplete: (
|
|
96
|
-
|
|
97
|
-
for (const
|
|
98
|
-
if (!
|
|
101
|
+
custom: r,
|
|
102
|
+
onExitComplete: (p) => {
|
|
103
|
+
d.set(p, !0);
|
|
104
|
+
for (const m of d.values())
|
|
105
|
+
if (!m)
|
|
99
106
|
return;
|
|
100
107
|
n && n();
|
|
101
108
|
},
|
|
102
|
-
register: (
|
|
103
|
-
}), [s,
|
|
104
|
-
return
|
|
105
|
-
|
|
106
|
-
}, [s]),
|
|
107
|
-
!s && !
|
|
108
|
-
}, [s]),
|
|
109
|
+
register: (p) => (d.set(p, !1), () => d.delete(p))
|
|
110
|
+
}), [s, d, n]);
|
|
111
|
+
return a && u && (f = { ...f }), L(() => {
|
|
112
|
+
d.forEach((p, m) => d.set(m, !1));
|
|
113
|
+
}, [s]), _.useEffect(() => {
|
|
114
|
+
!s && !d.size && n && n();
|
|
115
|
+
}, [s]), l === "popLayout" && (t = e.jsx(Ze, { isPresent: s, anchorX: h, root: y, children: t })), e.jsx(le.Provider, { value: f, children: t });
|
|
109
116
|
};
|
|
110
|
-
function
|
|
117
|
+
function tt() {
|
|
111
118
|
return /* @__PURE__ */ new Map();
|
|
112
119
|
}
|
|
113
|
-
function
|
|
114
|
-
const i =
|
|
120
|
+
function st(t = !0) {
|
|
121
|
+
const i = U(le);
|
|
115
122
|
if (i === null)
|
|
116
123
|
return [!0, null];
|
|
117
|
-
const { isPresent: s, onExitComplete: n, register:
|
|
118
|
-
|
|
124
|
+
const { isPresent: s, onExitComplete: n, register: r } = i, a = J();
|
|
125
|
+
ie(() => {
|
|
119
126
|
if (t)
|
|
120
|
-
return
|
|
127
|
+
return r(a);
|
|
121
128
|
}, [t]);
|
|
122
|
-
const
|
|
123
|
-
return !s && n ? [!1,
|
|
129
|
+
const l = ze(() => t && n && n(a), [a, n, t]);
|
|
130
|
+
return !s && n ? [!1, l] : [!0];
|
|
124
131
|
}
|
|
125
|
-
const
|
|
126
|
-
function
|
|
132
|
+
const R = (t) => t.key || "";
|
|
133
|
+
function ee(t) {
|
|
127
134
|
const i = [];
|
|
128
|
-
return
|
|
129
|
-
|
|
135
|
+
return Oe.forEach(t, (s) => {
|
|
136
|
+
Me(s) && i.push(s);
|
|
130
137
|
}), i;
|
|
131
138
|
}
|
|
132
|
-
const
|
|
133
|
-
const [
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
for (let
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
+
const nt = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presenceAffectsLayout: r = !0, mode: a = "sync", propagate: l = !1, anchorX: h = "left", root: y }) => {
|
|
140
|
+
const [d, C] = st(l), u = L(() => ee(t), [t]), f = l && !d ? [] : u.map(R), p = D(!0), m = D(u), g = oe(() => /* @__PURE__ */ new Map()), [P, o] = K(u), [c, v] = K(u);
|
|
141
|
+
Je(() => {
|
|
142
|
+
p.current = !1, m.current = u;
|
|
143
|
+
for (let w = 0; w < c.length; w++) {
|
|
144
|
+
const j = R(c[w]);
|
|
145
|
+
f.includes(j) ? g.delete(j) : g.get(j) !== !0 && g.set(j, !1);
|
|
139
146
|
}
|
|
140
|
-
}, [
|
|
141
|
-
const
|
|
142
|
-
if (
|
|
143
|
-
let
|
|
144
|
-
for (let
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
+
}, [c, f.length, f.join("-")]);
|
|
148
|
+
const b = [];
|
|
149
|
+
if (u !== P) {
|
|
150
|
+
let w = [...u];
|
|
151
|
+
for (let j = 0; j < c.length; j++) {
|
|
152
|
+
const E = c[j], q = R(E);
|
|
153
|
+
f.includes(q) || (w.splice(j, 0, E), b.push(E));
|
|
147
154
|
}
|
|
148
|
-
return
|
|
155
|
+
return a === "wait" && b.length && (w = b), v(ee(w)), o(u), null;
|
|
149
156
|
}
|
|
150
|
-
process.env.NODE_ENV !== "production" &&
|
|
151
|
-
const { forceRender:
|
|
152
|
-
return e.jsx(e.Fragment, { children:
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
155
|
-
|
|
157
|
+
process.env.NODE_ENV !== "production" && a === "wait" && c.length > 1 && console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
|
|
158
|
+
const { forceRender: k } = U(_e);
|
|
159
|
+
return e.jsx(e.Fragment, { children: c.map((w) => {
|
|
160
|
+
const j = R(w), E = l && !d ? !1 : u === c || f.includes(j), q = () => {
|
|
161
|
+
if (g.has(j))
|
|
162
|
+
g.set(j, !0);
|
|
156
163
|
else
|
|
157
164
|
return;
|
|
158
|
-
let
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}),
|
|
165
|
+
let X = !0;
|
|
166
|
+
g.forEach((de) => {
|
|
167
|
+
de || (X = !1);
|
|
168
|
+
}), X && (k?.(), v(m.current), l && C?.(), n && n());
|
|
162
169
|
};
|
|
163
|
-
return e.jsx(
|
|
170
|
+
return e.jsx(et, { isPresent: E, initial: !p.current || s ? void 0 : !1, custom: i, presenceAffectsLayout: r, mode: a, root: y, onExitComplete: E ? void 0 : q, anchorX: h, children: w }, j);
|
|
164
171
|
}) });
|
|
165
|
-
},
|
|
166
|
-
|
|
172
|
+
}, ce = qe(
|
|
173
|
+
({ isPending: t, children: i, className: s, ...n }, r) => /* @__PURE__ */ e.jsxs(
|
|
174
|
+
Be,
|
|
175
|
+
{
|
|
176
|
+
ref: r,
|
|
177
|
+
disabled: t,
|
|
178
|
+
...n,
|
|
179
|
+
className: N("relative", s),
|
|
180
|
+
children: [
|
|
181
|
+
t && /* @__PURE__ */ e.jsx("div", { className: "absolute inset-0 grid place-items-center", children: /* @__PURE__ */ e.jsx(He, {}) }),
|
|
182
|
+
/* @__PURE__ */ e.jsx("span", { className: N("block", t && "invisible"), children: i })
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
);
|
|
187
|
+
ce.displayName = "ActionButton";
|
|
188
|
+
const it = ({
|
|
189
|
+
service: t,
|
|
190
|
+
onOpenChange: i
|
|
191
|
+
}) => {
|
|
192
|
+
const s = se(), n = ne(), r = we(), a = Qe({
|
|
193
|
+
defaultValues: {
|
|
194
|
+
expiresOn: "30"
|
|
195
|
+
}
|
|
196
|
+
}), l = z({
|
|
197
|
+
mutationFn: ({ description: h, expiresOn: y }) => {
|
|
198
|
+
if (!t.createKey)
|
|
199
|
+
throw new Error("createKey not implemented");
|
|
200
|
+
const d = y !== "never" ? rt(Number(y)) : void 0;
|
|
201
|
+
return t.createKey(
|
|
202
|
+
{
|
|
203
|
+
description: h || "Secret Key",
|
|
204
|
+
expiresOn: d
|
|
205
|
+
},
|
|
206
|
+
s
|
|
207
|
+
);
|
|
208
|
+
},
|
|
209
|
+
onSuccess: async () => {
|
|
210
|
+
await n.invalidateQueries({ queryKey: ["api-keys"] }), await r("/settings/api-keys/");
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
return t.createKey ? /* @__PURE__ */ e.jsxs(
|
|
214
|
+
"form",
|
|
215
|
+
{
|
|
216
|
+
onSubmit: a.handleSubmit(
|
|
217
|
+
(h) => l.mutate(
|
|
218
|
+
{ ...h },
|
|
219
|
+
{
|
|
220
|
+
onSuccess: () => i(!1)
|
|
221
|
+
}
|
|
222
|
+
)
|
|
223
|
+
),
|
|
224
|
+
children: [
|
|
225
|
+
l.error && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
|
|
226
|
+
/* @__PURE__ */ e.jsx(M, { children: "Error" }),
|
|
227
|
+
/* @__PURE__ */ e.jsx(Ee, { children: l.error.message })
|
|
228
|
+
] }),
|
|
229
|
+
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 flex-col text-sm font-medium", children: [
|
|
230
|
+
"Name",
|
|
231
|
+
/* @__PURE__ */ e.jsx(ae, { ...a.register("description") }),
|
|
232
|
+
"Expiration",
|
|
233
|
+
/* @__PURE__ */ e.jsxs(
|
|
234
|
+
Ke,
|
|
235
|
+
{
|
|
236
|
+
onValueChange: (h) => a.setValue("expiresOn", h),
|
|
237
|
+
defaultValue: a.getValues("expiresOn"),
|
|
238
|
+
children: [
|
|
239
|
+
/* @__PURE__ */ e.jsx(De, { children: /* @__PURE__ */ e.jsx(Ie, {}) }),
|
|
240
|
+
/* @__PURE__ */ e.jsx(Pe, { children: /* @__PURE__ */ e.jsxs(Ae, { children: [
|
|
241
|
+
[7, 30, 60, 90].map((h) => /* @__PURE__ */ e.jsxs(Z, { value: String(h), children: [
|
|
242
|
+
h,
|
|
243
|
+
" days"
|
|
244
|
+
] }, h)),
|
|
245
|
+
/* @__PURE__ */ e.jsx(Z, { value: "never", children: "Never" })
|
|
246
|
+
] }) })
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
),
|
|
250
|
+
/* @__PURE__ */ e.jsxs(W, { children: [
|
|
251
|
+
/* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
|
|
252
|
+
/* @__PURE__ */ e.jsx(ce, { isPending: l.isPending, children: "Generate Key" })
|
|
253
|
+
] })
|
|
254
|
+
] })
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
) : null;
|
|
258
|
+
}, rt = (t) => {
|
|
259
|
+
const i = /* @__PURE__ */ new Date();
|
|
260
|
+
return i.setDate(i.getDate() + t), i.toISOString();
|
|
261
|
+
}, at = ({ service: t }) => {
|
|
262
|
+
const i = se(), s = ne(), [n, r] = K(
|
|
167
263
|
null
|
|
168
|
-
), [
|
|
264
|
+
), [a, l] = K(""), { data: h, isFetching: y } = Ne({
|
|
169
265
|
queryFn: () => t.getConsumers(i),
|
|
170
266
|
queryKey: ["api-keys"],
|
|
171
267
|
retry: !1
|
|
172
|
-
}),
|
|
268
|
+
}), [d, C] = K(!1), u = z({
|
|
173
269
|
mutationFn: ({
|
|
174
|
-
consumerId:
|
|
270
|
+
consumerId: o,
|
|
175
271
|
keyId: c
|
|
176
272
|
}) => {
|
|
177
273
|
if (!t.deleteKey)
|
|
178
274
|
throw new Error("deleteKey not implemented");
|
|
179
|
-
return t.deleteKey(
|
|
275
|
+
return t.deleteKey(o, c, i);
|
|
180
276
|
},
|
|
181
|
-
onMutate: async ({ consumerId:
|
|
277
|
+
onMutate: async ({ consumerId: o, keyId: c }) => {
|
|
182
278
|
await s.cancelQueries({ queryKey: ["api-keys"] });
|
|
183
|
-
const
|
|
279
|
+
const v = s.getQueryData([
|
|
184
280
|
"api-keys"
|
|
185
281
|
]);
|
|
186
|
-
return s.setQueryData(["api-keys"], (
|
|
187
|
-
...
|
|
188
|
-
apiKeys:
|
|
189
|
-
} :
|
|
282
|
+
return s.setQueryData(["api-keys"], (b) => b && b.map((k) => k.id === o ? {
|
|
283
|
+
...k,
|
|
284
|
+
apiKeys: k.apiKeys.filter((w) => w.id !== c)
|
|
285
|
+
} : k)), { previousData: v };
|
|
190
286
|
},
|
|
191
|
-
onError: (
|
|
192
|
-
|
|
287
|
+
onError: (o, c, v) => {
|
|
288
|
+
v?.previousData && s.setQueryData(["api-keys"], v.previousData);
|
|
193
289
|
},
|
|
194
290
|
onSuccess: () => {
|
|
195
291
|
s.invalidateQueries({ queryKey: ["api-keys"] });
|
|
196
292
|
}
|
|
197
|
-
}),
|
|
293
|
+
}), f = z({
|
|
198
294
|
mutationFn: ({
|
|
199
|
-
consumerId:
|
|
295
|
+
consumerId: o,
|
|
200
296
|
label: c
|
|
201
297
|
}) => {
|
|
202
298
|
if (!t.updateConsumer)
|
|
203
299
|
throw new Error("updateConsumer not implemented");
|
|
204
|
-
return t.updateConsumer({ id:
|
|
300
|
+
return t.updateConsumer({ id: o, label: c }, i);
|
|
205
301
|
},
|
|
206
|
-
onMutate: async ({ consumerId:
|
|
302
|
+
onMutate: async ({ consumerId: o, label: c }) => {
|
|
207
303
|
await s.cancelQueries({ queryKey: ["api-keys"] });
|
|
208
|
-
const
|
|
209
|
-
return s.setQueryData(["api-keys"], (
|
|
210
|
-
...
|
|
304
|
+
const v = s.getQueryData(["api-keys"]);
|
|
305
|
+
return s.setQueryData(["api-keys"], (b) => b && b.map((k) => k.id === o ? {
|
|
306
|
+
...k,
|
|
211
307
|
label: c
|
|
212
|
-
} :
|
|
308
|
+
} : k)), { previousData: v };
|
|
213
309
|
},
|
|
214
|
-
onError: (
|
|
215
|
-
|
|
310
|
+
onError: (o, c, v) => {
|
|
311
|
+
v?.previousData && s.setQueryData(["api-keys"], v.previousData);
|
|
216
312
|
},
|
|
217
313
|
onSuccess: () => {
|
|
218
314
|
s.invalidateQueries({ queryKey: ["api-keys"] });
|
|
219
315
|
}
|
|
220
|
-
}),
|
|
221
|
-
mutationFn: (
|
|
316
|
+
}), p = z({
|
|
317
|
+
mutationFn: (o) => {
|
|
222
318
|
if (!t.rollKey)
|
|
223
319
|
throw new Error("rollKey not implemented");
|
|
224
|
-
return t.rollKey(
|
|
320
|
+
return t.rollKey(o, i);
|
|
225
321
|
},
|
|
226
322
|
onSuccess: () => s.invalidateQueries({ queryKey: ["api-keys"] })
|
|
227
|
-
}),
|
|
228
|
-
o
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
consumerId:
|
|
232
|
-
label:
|
|
233
|
-
}),
|
|
234
|
-
},
|
|
235
|
-
|
|
323
|
+
}), m = (o, c) => {
|
|
324
|
+
r(o), l(c);
|
|
325
|
+
}, g = (o) => {
|
|
326
|
+
a.trim() && f.mutate({
|
|
327
|
+
consumerId: o,
|
|
328
|
+
label: a.trim()
|
|
329
|
+
}), r(null), l("");
|
|
330
|
+
}, P = () => {
|
|
331
|
+
r(null), l("");
|
|
236
332
|
};
|
|
237
333
|
return /* @__PURE__ */ e.jsxs("div", { className: "max-w-screen-md h-full pt-(--padding-content-top) pb-(--padding-content-bottom)", children: [
|
|
238
|
-
/* @__PURE__ */ e.jsx(
|
|
334
|
+
/* @__PURE__ */ e.jsx(Y.Target, { name: "api-keys-list-page" }),
|
|
239
335
|
/* @__PURE__ */ e.jsxs("div", { className: "flex justify-between pb-3", children: [
|
|
240
|
-
/* @__PURE__ */ e.
|
|
241
|
-
|
|
336
|
+
/* @__PURE__ */ e.jsxs("h1", { className: "font-medium text-2xl", children: [
|
|
337
|
+
"API Keys ",
|
|
338
|
+
typeof t.createKey
|
|
339
|
+
] }),
|
|
340
|
+
t.createKey && /* @__PURE__ */ e.jsxs(
|
|
341
|
+
$,
|
|
342
|
+
{
|
|
343
|
+
open: d,
|
|
344
|
+
onOpenChange: C,
|
|
345
|
+
children: [
|
|
346
|
+
/* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Create API Key" }) }),
|
|
347
|
+
/* @__PURE__ */ e.jsxs(B, { children: [
|
|
348
|
+
/* @__PURE__ */ e.jsx(H, { children: /* @__PURE__ */ e.jsx(V, { children: "Create API Key" }) }),
|
|
349
|
+
/* @__PURE__ */ e.jsx(
|
|
350
|
+
it,
|
|
351
|
+
{
|
|
352
|
+
service: t,
|
|
353
|
+
onOpenChange: C
|
|
354
|
+
}
|
|
355
|
+
)
|
|
356
|
+
] })
|
|
357
|
+
]
|
|
358
|
+
}
|
|
359
|
+
)
|
|
242
360
|
] }),
|
|
243
361
|
/* @__PURE__ */ e.jsx("p", { children: "Create, manage, and monitor your API keys" }),
|
|
244
|
-
/* @__PURE__ */ e.jsx(
|
|
362
|
+
/* @__PURE__ */ e.jsx(Y.Target, { name: "api-keys-list-page-before-keys" }),
|
|
245
363
|
/* @__PURE__ */ e.jsx("div", { className: "h-8" }),
|
|
246
|
-
|
|
247
|
-
/* @__PURE__ */ e.jsx(
|
|
248
|
-
/* @__PURE__ */ e.jsx(
|
|
364
|
+
p.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
|
|
365
|
+
/* @__PURE__ */ e.jsx(F, { size: 16 }),
|
|
366
|
+
/* @__PURE__ */ e.jsx(M, { children: p.error.message })
|
|
249
367
|
] }),
|
|
250
|
-
|
|
251
|
-
/* @__PURE__ */ e.jsx(
|
|
252
|
-
/* @__PURE__ */ e.jsx(
|
|
368
|
+
f.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
|
|
369
|
+
/* @__PURE__ */ e.jsx(F, { size: 16 }),
|
|
370
|
+
/* @__PURE__ */ e.jsx(M, { children: f.error.message })
|
|
253
371
|
] }),
|
|
254
|
-
|
|
255
|
-
/* @__PURE__ */ e.jsx(
|
|
256
|
-
/* @__PURE__ */ e.jsx(
|
|
372
|
+
u.isError && /* @__PURE__ */ e.jsxs(O, { variant: "destructive", className: "mb-4", children: [
|
|
373
|
+
/* @__PURE__ */ e.jsx(F, { size: 16 }),
|
|
374
|
+
/* @__PURE__ */ e.jsx(M, { children: u.error.message })
|
|
257
375
|
] }),
|
|
258
|
-
/* @__PURE__ */ e.jsx("div", { className: "", children:
|
|
376
|
+
/* @__PURE__ */ e.jsx("div", { className: "", children: h.length === 0 ? /* @__PURE__ */ e.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: [
|
|
259
377
|
/* @__PURE__ */ e.jsxs("p", { className: "text-center", children: [
|
|
260
378
|
"You have no API keys yet.",
|
|
261
379
|
/* @__PURE__ */ e.jsx("br", {}),
|
|
262
380
|
t.createKey && "Get started and create your first key."
|
|
263
381
|
] }),
|
|
264
|
-
t.createKey && /* @__PURE__ */ e.jsx(
|
|
382
|
+
t.createKey && /* @__PURE__ */ e.jsx(x, { asChild: !0, variant: "outline", children: /* @__PURE__ */ e.jsx(be, { to: "/settings/api-keys/new", children: "Create API Key" }) })
|
|
265
383
|
] }) : /* @__PURE__ */ e.jsx(
|
|
266
384
|
"ul",
|
|
267
385
|
{
|
|
268
|
-
className:
|
|
386
|
+
className: N(
|
|
269
387
|
"grid grid-cols-[1fr_min-content] divide-y divide-border col-span-6"
|
|
270
388
|
),
|
|
271
|
-
children:
|
|
272
|
-
|
|
389
|
+
children: h.map((o) => /* @__PURE__ */ e.jsxs(
|
|
390
|
+
Fe,
|
|
273
391
|
{
|
|
274
392
|
className: "grid grid-cols-subgrid col-span-full items-center mb-4 group",
|
|
275
393
|
children: [
|
|
276
|
-
/* @__PURE__ */ e.jsxs(
|
|
394
|
+
/* @__PURE__ */ e.jsxs(Le, { className: "border-b col-span-full grid-cols-subgrid grid", children: [
|
|
277
395
|
/* @__PURE__ */ e.jsxs("div", { className: "h-10 flex flex-col text-sm justify-center", children: [
|
|
278
396
|
/* @__PURE__ */ e.jsxs("div", { className: "font-medium text-lg flex items-center gap-2", children: [
|
|
279
|
-
n ===
|
|
397
|
+
n === o.id ? /* @__PURE__ */ e.jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
280
398
|
/* @__PURE__ */ e.jsx(
|
|
281
|
-
|
|
399
|
+
ae,
|
|
282
400
|
{
|
|
283
401
|
maxLength: 32,
|
|
284
|
-
value:
|
|
285
|
-
onChange: (c) =>
|
|
402
|
+
value: a,
|
|
403
|
+
onChange: (c) => l(c.target.value),
|
|
286
404
|
onKeyDown: (c) => {
|
|
287
|
-
c.key === "Enter" ?
|
|
405
|
+
c.key === "Enter" ? g(o.id) : c.key === "Escape" && P();
|
|
288
406
|
},
|
|
289
407
|
className: "text-lg font-medium",
|
|
290
408
|
autoFocus: !0
|
|
@@ -292,90 +410,90 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
292
410
|
),
|
|
293
411
|
/* @__PURE__ */ e.jsxs("div", { className: "flex items-center", children: [
|
|
294
412
|
/* @__PURE__ */ e.jsx(
|
|
295
|
-
|
|
413
|
+
x,
|
|
296
414
|
{
|
|
297
415
|
size: "icon",
|
|
298
416
|
variant: "ghost",
|
|
299
|
-
onClick: () =>
|
|
300
|
-
disabled: !
|
|
301
|
-
children: /* @__PURE__ */ e.jsx(
|
|
417
|
+
onClick: () => g(o.id),
|
|
418
|
+
disabled: !a.trim(),
|
|
419
|
+
children: /* @__PURE__ */ e.jsx(te, { size: 16 })
|
|
302
420
|
}
|
|
303
421
|
),
|
|
304
422
|
/* @__PURE__ */ e.jsx(
|
|
305
|
-
|
|
423
|
+
x,
|
|
306
424
|
{
|
|
307
425
|
size: "icon",
|
|
308
426
|
variant: "ghost",
|
|
309
|
-
onClick:
|
|
310
|
-
children: /* @__PURE__ */ e.jsx(
|
|
427
|
+
onClick: P,
|
|
428
|
+
children: /* @__PURE__ */ e.jsx(ue, { size: 16 })
|
|
311
429
|
}
|
|
312
430
|
)
|
|
313
431
|
] })
|
|
314
|
-
] }) : /* @__PURE__ */ e.jsx(e.Fragment, { children:
|
|
315
|
-
/* @__PURE__ */ e.jsx("div", { className: "text-muted-foreground text-xs", children:
|
|
432
|
+
] }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: o.label }),
|
|
433
|
+
/* @__PURE__ */ e.jsx("div", { className: "text-muted-foreground text-xs", children: o.createdOn })
|
|
316
434
|
] }),
|
|
317
435
|
/* @__PURE__ */ e.jsxs("div", { className: "text-muted-foreground text-xs", children: [
|
|
318
|
-
|
|
436
|
+
o.createdOn && /* @__PURE__ */ e.jsxs("div", { children: [
|
|
319
437
|
"Created on",
|
|
320
438
|
" ",
|
|
321
|
-
new Date(
|
|
439
|
+
new Date(o.createdOn).toLocaleDateString()
|
|
322
440
|
] }),
|
|
323
|
-
|
|
441
|
+
o.expiresOn && /* @__PURE__ */ e.jsxs("div", { children: [
|
|
324
442
|
"Expires on",
|
|
325
443
|
" ",
|
|
326
|
-
new Date(
|
|
444
|
+
new Date(o.expiresOn).toLocaleDateString()
|
|
327
445
|
] })
|
|
328
446
|
] })
|
|
329
447
|
] }),
|
|
330
448
|
/* @__PURE__ */ e.jsxs("div", { className: "flex justify-end", children: [
|
|
331
449
|
t.updateConsumer && /* @__PURE__ */ e.jsxs(
|
|
332
|
-
|
|
450
|
+
x,
|
|
333
451
|
{
|
|
334
452
|
variant: "ghost",
|
|
335
|
-
onClick: () =>
|
|
336
|
-
className:
|
|
453
|
+
onClick: () => m(o.id, o.label),
|
|
454
|
+
className: N(
|
|
337
455
|
"flex gap-2",
|
|
338
|
-
n ===
|
|
456
|
+
n === o.id && "opacity-0! pointer-events-none"
|
|
339
457
|
),
|
|
340
|
-
disabled: n ===
|
|
458
|
+
disabled: n === o.id,
|
|
341
459
|
children: [
|
|
342
|
-
/* @__PURE__ */ e.jsx(
|
|
460
|
+
/* @__PURE__ */ e.jsx(he, { size: 16 }),
|
|
343
461
|
/* @__PURE__ */ e.jsx("span", { className: "hidden md:block", children: "Edit label" })
|
|
344
462
|
]
|
|
345
463
|
}
|
|
346
464
|
),
|
|
347
|
-
t.rollKey && /* @__PURE__ */ e.jsxs(
|
|
348
|
-
/* @__PURE__ */ e.jsx(
|
|
349
|
-
|
|
465
|
+
t.rollKey && /* @__PURE__ */ e.jsxs($, { children: [
|
|
466
|
+
/* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsxs(
|
|
467
|
+
x,
|
|
350
468
|
{
|
|
351
469
|
title: "Roll this key",
|
|
352
470
|
variant: "ghost",
|
|
353
|
-
disabled:
|
|
471
|
+
disabled: p.isPending,
|
|
354
472
|
className: "flex items-center gap-2",
|
|
355
473
|
children: [
|
|
356
474
|
/* @__PURE__ */ e.jsx(
|
|
357
|
-
|
|
475
|
+
fe,
|
|
358
476
|
{
|
|
359
477
|
size: 16,
|
|
360
|
-
className:
|
|
478
|
+
className: p.isPending ? "animate-spin" : void 0
|
|
361
479
|
}
|
|
362
480
|
),
|
|
363
481
|
/* @__PURE__ */ e.jsx("span", { className: "hidden md:block", children: "Roll key" })
|
|
364
482
|
]
|
|
365
483
|
}
|
|
366
484
|
) }),
|
|
367
|
-
/* @__PURE__ */ e.jsxs(
|
|
368
|
-
/* @__PURE__ */ e.jsxs(
|
|
369
|
-
/* @__PURE__ */ e.jsx(
|
|
370
|
-
/* @__PURE__ */ e.jsx(
|
|
485
|
+
/* @__PURE__ */ e.jsxs(B, { children: [
|
|
486
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
487
|
+
/* @__PURE__ */ e.jsx(V, { children: "Roll API Key" }),
|
|
488
|
+
/* @__PURE__ */ e.jsx(re, { children: "Are you sure you want to roll this API key?" })
|
|
371
489
|
] }),
|
|
372
|
-
/* @__PURE__ */ e.jsxs(
|
|
373
|
-
/* @__PURE__ */ e.jsx(
|
|
374
|
-
/* @__PURE__ */ e.jsx(
|
|
375
|
-
|
|
490
|
+
/* @__PURE__ */ e.jsxs(W, { children: [
|
|
491
|
+
/* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
|
|
492
|
+
/* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(
|
|
493
|
+
x,
|
|
376
494
|
{
|
|
377
495
|
onClick: () => {
|
|
378
|
-
|
|
496
|
+
p.mutate(o.id);
|
|
379
497
|
},
|
|
380
498
|
children: "Roll Key"
|
|
381
499
|
}
|
|
@@ -385,50 +503,50 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
385
503
|
] })
|
|
386
504
|
] })
|
|
387
505
|
] }),
|
|
388
|
-
/* @__PURE__ */ e.jsx("div", { className: "col-span-full grid-cols-subgrid grid", children: /* @__PURE__ */ e.jsx(
|
|
506
|
+
/* @__PURE__ */ e.jsx("div", { className: "col-span-full grid-cols-subgrid grid", children: /* @__PURE__ */ e.jsx(nt, { children: o.apiKeys.map((c) => /* @__PURE__ */ e.jsxs(Re.Fragment, { children: [
|
|
389
507
|
/* @__PURE__ */ e.jsx(
|
|
390
|
-
|
|
508
|
+
lt,
|
|
391
509
|
{
|
|
392
510
|
apiKey: c,
|
|
393
511
|
onDeleteKey: () => {
|
|
394
|
-
|
|
395
|
-
consumerId:
|
|
512
|
+
u.mutate({
|
|
513
|
+
consumerId: o.id,
|
|
396
514
|
keyId: c.id
|
|
397
515
|
});
|
|
398
516
|
},
|
|
399
|
-
className:
|
|
517
|
+
className: u.variables?.keyId === c.id && (u.isPending || y) ? "opacity-10!" : void 0
|
|
400
518
|
}
|
|
401
519
|
),
|
|
402
520
|
/* @__PURE__ */ e.jsx("div", { className: "col-span-full h-px bg-border" })
|
|
403
521
|
] }, c.id)) }) })
|
|
404
522
|
]
|
|
405
523
|
},
|
|
406
|
-
|
|
524
|
+
o.id
|
|
407
525
|
))
|
|
408
526
|
}
|
|
409
527
|
) })
|
|
410
528
|
] });
|
|
411
|
-
},
|
|
412
|
-
const i = /* @__PURE__ */ new Date(), s = new Date(t), n = Math.floor((i.getTime() - s.getTime()) / 1e3),
|
|
413
|
-
return n < 60 ?
|
|
414
|
-
},
|
|
529
|
+
}, ot = (t) => {
|
|
530
|
+
const i = /* @__PURE__ */ new Date(), s = new Date(t), n = Math.floor((i.getTime() - s.getTime()) / 1e3), r = new Intl.RelativeTimeFormat("en", { numeric: "auto" });
|
|
531
|
+
return n < 60 ? r.format(-n, "second") : n < 3600 ? r.format(-Math.floor(n / 60), "minute") : n < 86400 ? r.format(-Math.floor(n / 3600), "hour") : n < 2592e3 ? r.format(-Math.floor(n / 86400), "day") : n < 31536e3 ? r.format(-Math.floor(n / 2592e3), "month") : r.format(-Math.floor(n / 31536e3), "year");
|
|
532
|
+
}, lt = ({
|
|
415
533
|
apiKey: t,
|
|
416
534
|
onDeleteKey: i,
|
|
417
535
|
className: s
|
|
418
536
|
}) => {
|
|
419
|
-
const [n,
|
|
420
|
-
(new Date(
|
|
421
|
-
) : 1 / 0,
|
|
422
|
-
return /* @__PURE__ */ e.jsxs("div", { className:
|
|
537
|
+
const [n, r] = K(!1), [a, l] = $e(), { key: h, createdOn: y, expiresOn: d } = t, C = d && new Date(d) < /* @__PURE__ */ new Date(), u = d ? Math.ceil(
|
|
538
|
+
(new Date(d).getTime() - (/* @__PURE__ */ new Date()).getTime()) / (1e3 * 60 * 60 * 24)
|
|
539
|
+
) : 1 / 0, f = u <= 7 && !C;
|
|
540
|
+
return /* @__PURE__ */ e.jsxs("div", { className: N("grid col-span-full grid-cols-subgrid p-6", s), children: [
|
|
423
541
|
/* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
424
542
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-2 items-center text-sm border rounded-md w-full max-w-fit px-1", children: [
|
|
425
543
|
/* @__PURE__ */ e.jsxs("div", { className: "font-mono w-full h-9 items-center flex px-2 text-xs gap-2", children: [
|
|
426
544
|
/* @__PURE__ */ e.jsx(
|
|
427
545
|
"div",
|
|
428
546
|
{
|
|
429
|
-
className:
|
|
547
|
+
className: N(
|
|
430
548
|
"rounded-full w-2 h-2 bg-emerald-400 mr-2",
|
|
431
|
-
(
|
|
549
|
+
(f || C) && "bg-neutral-200"
|
|
432
550
|
)
|
|
433
551
|
}
|
|
434
552
|
),
|
|
@@ -436,67 +554,67 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
436
554
|
/* @__PURE__ */ e.jsx(
|
|
437
555
|
"div",
|
|
438
556
|
{
|
|
439
|
-
className:
|
|
557
|
+
className: N(
|
|
440
558
|
"w-40 inline-block md:w-full truncate",
|
|
441
559
|
n ? "" : "opacity-20"
|
|
442
560
|
),
|
|
443
|
-
children: n ?
|
|
561
|
+
children: n ? h.slice(0, -5) : "**** ".repeat(h.slice(0, -5).length / 5) + "*".repeat(h.slice(0, -5).length % 5)
|
|
444
562
|
}
|
|
445
563
|
),
|
|
446
|
-
/* @__PURE__ */ e.jsx("span", { children:
|
|
564
|
+
/* @__PURE__ */ e.jsx("span", { children: h.slice(-5) })
|
|
447
565
|
] })
|
|
448
566
|
] }),
|
|
449
567
|
/* @__PURE__ */ e.jsx(
|
|
450
|
-
|
|
568
|
+
x,
|
|
451
569
|
{
|
|
452
570
|
variant: "ghost",
|
|
453
|
-
onClick: () =>
|
|
571
|
+
onClick: () => r((p) => !p),
|
|
454
572
|
size: "icon",
|
|
455
|
-
children: n ? /* @__PURE__ */ e.jsx(
|
|
573
|
+
children: n ? /* @__PURE__ */ e.jsx(pe, { size: 16 }) : /* @__PURE__ */ e.jsx(me, { size: 16 })
|
|
456
574
|
}
|
|
457
575
|
),
|
|
458
576
|
/* @__PURE__ */ e.jsx(
|
|
459
|
-
|
|
577
|
+
x,
|
|
460
578
|
{
|
|
461
579
|
variant: "ghost",
|
|
462
|
-
onClick: () =>
|
|
580
|
+
onClick: () => l(h),
|
|
463
581
|
size: "icon",
|
|
464
|
-
children:
|
|
582
|
+
children: a ? /* @__PURE__ */ e.jsx(te, { size: 16 }) : /* @__PURE__ */ e.jsx(xe, { size: 16 })
|
|
465
583
|
}
|
|
466
584
|
)
|
|
467
585
|
] }),
|
|
468
586
|
/* @__PURE__ */ e.jsxs("div", { className: "flex gap-1 mt-0.5 text-nowrap", children: [
|
|
469
|
-
|
|
587
|
+
y && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-muted-foreground", children: [
|
|
470
588
|
"Created ",
|
|
471
|
-
|
|
589
|
+
ot(y),
|
|
472
590
|
"."
|
|
473
591
|
] }),
|
|
474
592
|
" ",
|
|
475
|
-
|
|
593
|
+
d && f && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
|
|
476
594
|
"Expires in ",
|
|
477
|
-
|
|
595
|
+
u,
|
|
478
596
|
" ",
|
|
479
|
-
|
|
597
|
+
u === 1 ? "day" : "days",
|
|
480
598
|
"."
|
|
481
599
|
] }),
|
|
482
|
-
|
|
600
|
+
d && C && /* @__PURE__ */ e.jsxs("span", { className: "text-xs text-primary", children: [
|
|
483
601
|
"Expired",
|
|
484
602
|
" ",
|
|
485
|
-
|
|
603
|
+
u === 0 ? "today." : `${u * -1} days ago.`
|
|
486
604
|
] })
|
|
487
605
|
] })
|
|
488
606
|
] }),
|
|
489
|
-
/* @__PURE__ */ e.jsx("div", { className: "flex justify-end", children:
|
|
490
|
-
/* @__PURE__ */ e.jsx(
|
|
491
|
-
/* @__PURE__ */ e.jsxs(
|
|
492
|
-
/* @__PURE__ */ e.jsxs(
|
|
493
|
-
/* @__PURE__ */ e.jsx(
|
|
494
|
-
/* @__PURE__ */ e.jsx(
|
|
607
|
+
/* @__PURE__ */ e.jsx("div", { className: "flex justify-end", children: d && i && /* @__PURE__ */ e.jsxs($, { children: [
|
|
608
|
+
/* @__PURE__ */ e.jsx(Q, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "ghost", size: "icon", children: /* @__PURE__ */ e.jsx(ye, { size: 16 }) }) }),
|
|
609
|
+
/* @__PURE__ */ e.jsxs(B, { children: [
|
|
610
|
+
/* @__PURE__ */ e.jsxs(H, { children: [
|
|
611
|
+
/* @__PURE__ */ e.jsx(V, { children: "Delete API Key" }),
|
|
612
|
+
/* @__PURE__ */ e.jsx(re, { children: "Are you sure you want to delete this API key?" })
|
|
495
613
|
] }),
|
|
496
|
-
/* @__PURE__ */ e.jsxs(
|
|
497
|
-
/* @__PURE__ */ e.jsx(
|
|
498
|
-
/* @__PURE__ */ e.jsx(
|
|
499
|
-
|
|
614
|
+
/* @__PURE__ */ e.jsxs(W, { children: [
|
|
615
|
+
/* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(x, { variant: "outline", children: "Cancel" }) }),
|
|
616
|
+
/* @__PURE__ */ e.jsx(I, { asChild: !0, children: /* @__PURE__ */ e.jsx(
|
|
617
|
+
x,
|
|
500
618
|
{
|
|
501
619
|
onClick: () => {
|
|
502
620
|
i();
|
|
@@ -508,55 +626,55 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
508
626
|
] })
|
|
509
627
|
] }) })
|
|
510
628
|
] });
|
|
511
|
-
},
|
|
629
|
+
}, S = "https://api.zuploedge.com/v2/client", ct = async (t) => {
|
|
512
630
|
try {
|
|
513
631
|
return await t.json();
|
|
514
632
|
} catch {
|
|
515
633
|
return;
|
|
516
634
|
}
|
|
517
|
-
},
|
|
635
|
+
}, T = async (t) => {
|
|
518
636
|
const i = t.headers.get("content-type");
|
|
519
637
|
if (!t.ok && i?.includes("application/problem+json")) {
|
|
520
|
-
const s = await
|
|
638
|
+
const s = await ct(t);
|
|
521
639
|
if (s.type && s.title)
|
|
522
640
|
throw new Error(s.detail ?? s.title);
|
|
523
641
|
}
|
|
524
|
-
},
|
|
525
|
-
deleteKey: async (
|
|
526
|
-
const
|
|
527
|
-
|
|
642
|
+
}, dt = (t, i) => ({
|
|
643
|
+
deleteKey: async (s, n, r) => {
|
|
644
|
+
const a = new Request(
|
|
645
|
+
S + `/${t}/consumers/${s}/keys/${n}`,
|
|
528
646
|
{
|
|
529
647
|
method: "DELETE"
|
|
530
648
|
}
|
|
531
649
|
);
|
|
532
|
-
await
|
|
533
|
-
const
|
|
534
|
-
await
|
|
650
|
+
await r.signRequest(a);
|
|
651
|
+
const l = await fetch(a);
|
|
652
|
+
await T(l), A(l.ok, "Failed to delete API key");
|
|
535
653
|
},
|
|
536
|
-
updateConsumer: async (
|
|
537
|
-
const
|
|
538
|
-
await
|
|
654
|
+
updateConsumer: async (s, n) => {
|
|
655
|
+
const r = await fetch(
|
|
656
|
+
await n.signRequest(
|
|
539
657
|
new Request(
|
|
540
|
-
|
|
658
|
+
S + `/${t}/consumers/${s.id}`,
|
|
541
659
|
{
|
|
542
660
|
method: "PATCH",
|
|
543
661
|
headers: {
|
|
544
662
|
"Content-Type": "application/json"
|
|
545
663
|
},
|
|
546
664
|
body: JSON.stringify({
|
|
547
|
-
label:
|
|
665
|
+
label: s.label
|
|
548
666
|
})
|
|
549
667
|
}
|
|
550
668
|
)
|
|
551
669
|
)
|
|
552
670
|
);
|
|
553
|
-
await
|
|
671
|
+
await T(r), A(r.ok, "Failed to update API key description");
|
|
554
672
|
},
|
|
555
|
-
rollKey: async (
|
|
556
|
-
const
|
|
557
|
-
await
|
|
673
|
+
rollKey: async (s, n) => {
|
|
674
|
+
const r = await fetch(
|
|
675
|
+
await n.signRequest(
|
|
558
676
|
new Request(
|
|
559
|
-
|
|
677
|
+
S + `/${t}/consumers/${s}/roll-key`,
|
|
560
678
|
{
|
|
561
679
|
method: "POST",
|
|
562
680
|
headers: {
|
|
@@ -567,41 +685,42 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
567
685
|
)
|
|
568
686
|
)
|
|
569
687
|
);
|
|
570
|
-
await
|
|
688
|
+
await T(r), A(r.ok, "Failed to delete API key");
|
|
571
689
|
},
|
|
572
|
-
getConsumers: async (
|
|
573
|
-
const
|
|
574
|
-
|
|
690
|
+
getConsumers: async (s) => {
|
|
691
|
+
const n = new Request(
|
|
692
|
+
S + `/${t}/consumers`
|
|
575
693
|
);
|
|
576
|
-
await
|
|
577
|
-
const
|
|
578
|
-
return await
|
|
579
|
-
id:
|
|
580
|
-
label:
|
|
581
|
-
apiKeys:
|
|
582
|
-
key:
|
|
694
|
+
await s.signRequest(n);
|
|
695
|
+
const r = await fetch(n);
|
|
696
|
+
return await T(r), A(r.ok, "Failed to fetch API keys"), (await r.json()).data.map((l) => ({
|
|
697
|
+
id: l.id,
|
|
698
|
+
label: l.label || l.subject || "API Key",
|
|
699
|
+
apiKeys: l.apiKeys.data,
|
|
700
|
+
key: l.apiKeys.data.at(0)
|
|
583
701
|
}));
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
|
|
702
|
+
},
|
|
703
|
+
...i
|
|
704
|
+
}), It = (t) => t, Pt = (t) => {
|
|
705
|
+
const i = "deploymentName" in t ? dt(t.deploymentName, t) : t;
|
|
587
706
|
return {
|
|
588
707
|
getProfileMenuItems: () => [
|
|
589
708
|
{
|
|
590
709
|
label: "API Keys",
|
|
591
710
|
path: "/settings/api-keys",
|
|
592
711
|
category: "middle",
|
|
593
|
-
icon:
|
|
712
|
+
icon: ge
|
|
594
713
|
}
|
|
595
714
|
],
|
|
596
715
|
getIdentities: async (s) => {
|
|
597
716
|
try {
|
|
598
|
-
return (await i.getConsumers(s)).map((
|
|
599
|
-
authorizeRequest: (
|
|
717
|
+
return (await i.getConsumers(s)).map((r) => ({
|
|
718
|
+
authorizeRequest: (a) => (a.headers.set(
|
|
600
719
|
"Authorization",
|
|
601
|
-
`Bearer ${
|
|
602
|
-
),
|
|
603
|
-
id:
|
|
604
|
-
label:
|
|
720
|
+
`Bearer ${r.apiKeys.at(0)?.key}`
|
|
721
|
+
), a),
|
|
722
|
+
id: r.id,
|
|
723
|
+
label: r.label
|
|
605
724
|
}));
|
|
606
725
|
} catch {
|
|
607
726
|
return [];
|
|
@@ -609,24 +728,20 @@ const He = ({ children: t, custom: i, initial: s = !0, onExitComplete: n, presen
|
|
|
609
728
|
},
|
|
610
729
|
getRoutes: () => [
|
|
611
730
|
{
|
|
612
|
-
element: /* @__PURE__ */ e.jsx(
|
|
613
|
-
errorElement: /* @__PURE__ */ e.jsx(
|
|
731
|
+
element: /* @__PURE__ */ e.jsx(Ve, {}),
|
|
732
|
+
errorElement: /* @__PURE__ */ e.jsx(Ce, {}),
|
|
614
733
|
children: [
|
|
615
734
|
{
|
|
616
735
|
path: "/settings/api-keys",
|
|
617
|
-
element: /* @__PURE__ */ e.jsx(
|
|
736
|
+
element: /* @__PURE__ */ e.jsx(at, { service: i })
|
|
618
737
|
}
|
|
619
|
-
// {
|
|
620
|
-
// path: "/settings/api-keys/new",
|
|
621
|
-
// element: <CreateApiKey service={service} />,
|
|
622
|
-
// },
|
|
623
738
|
]
|
|
624
739
|
}
|
|
625
740
|
]
|
|
626
741
|
};
|
|
627
742
|
};
|
|
628
743
|
export {
|
|
629
|
-
|
|
630
|
-
|
|
744
|
+
Pt as apiKeyPlugin,
|
|
745
|
+
It as createApiKeyService
|
|
631
746
|
};
|
|
632
747
|
//# sourceMappingURL=zudoku.plugin-api-keys.js.map
|