zudoku 0.3.0-dev.2 → 0.3.0-dev.4

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.
@@ -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 { MoonStarIcon, SearchIcon, SunIcon } from "lucide-react";
3
3
  import { memo } from "react";
4
4
  import { useAuth } from "../authentication/hook.js";
@@ -10,6 +10,6 @@ export const Header = memo(function HeaderInner() {
10
10
  const { isAuthenticated, profile, isAuthEnabled, login, logout } = useAuth();
11
11
  const { meta } = useDevPortal();
12
12
  const ThemeIcon = isDark ? MoonStarIcon : SunIcon;
13
- return (_jsx("header", { className: "fixed top-0 w-full z-10 bg-background/80 backdrop-blur", children: _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b border-border px-12 h-[--top-header-height]", children: [_jsxs("div", { className: "flex items-center gap-3.5", children: [meta?.logo && (_jsx("img", { src: meta.logo, alt: "My Dev Portal", className: "h-10" })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: meta?.headerTitle })] }), _jsxs("div", { className: "grid grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full max-w-prose", children: _jsxs("button", { className: "flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-40 sm:w-72", children: [_jsxs("div", { className: "flex items-center gap-2 flex-grow", children: [_jsx(SearchIcon, { size: 14 }), "Search"] }), _jsx("kbd", { className: "absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex", children: "\u2318K" })] }) }), _jsxs("div", { className: "items-center justify-self-end text-sm hidden lg:flex", children: [isAuthenticated ? (_jsxs("button", { className: "cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded text-nowrap", onClick: logout, children: ["Logout ", profile?.email ? `(${profile.email})` : null] })) : (_jsx("button", { className: "cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded", onClick: login, children: "Login" })), _jsx("button", { className: "cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full", onClick: toggleTheme, children: _jsx(ThemeIcon, { size: 18 }) })] })] })] }), _jsx(TopNavigation, {})] }) }));
13
+ return (_jsx("header", { className: "fixed top-0 w-full z-10 bg-background/80 backdrop-blur", children: _jsxs("div", { className: "max-w-screen-2xl mx-auto", children: [_jsxs("div", { className: "grid grid-cols-[calc(var(--side-nav-width))_1fr] lg:gap-12 items-center border-b border-border px-12 h-[--top-header-height]", children: [_jsxs("div", { className: "flex items-center gap-3.5", children: [meta?.logo && (_jsx("img", { src: meta.logo, alt: "My Dev Portal", className: "h-10" })), _jsx("span", { className: "font-bold text-2xl text-foreground/85 tracking-wide", children: meta?.headerTitle })] }), _jsxs("div", { className: "grid grid-cols-[--sidecar-grid-cols] items-center gap-8", children: [_jsx("div", { className: "w-full max-w-prose", children: _jsxs("button", { className: "flex items-center border border-input hover:bg-accent hover:text-accent-foreground p-4 relative h-8 justify-start rounded-lg bg-background text-sm text-muted-foreground shadow-none w-40 sm:w-72", children: [_jsxs("div", { className: "flex items-center gap-2 flex-grow", children: [_jsx(SearchIcon, { size: 14 }), "Search"] }), _jsx("kbd", { className: "absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex", children: "\u2318K" })] }) }), _jsxs("div", { className: "items-center justify-self-end text-sm hidden lg:flex", children: [isAuthEnabled && (_jsx(_Fragment, { children: isAuthenticated ? (_jsxs("button", { className: "cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded text-nowrap", onClick: logout, children: ["Logout ", profile?.email ? `(${profile.email})` : null] })) : (_jsx("button", { className: "cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded", onClick: login, children: "Login" })) })), _jsx("button", { className: "cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full", onClick: toggleTheme, children: _jsx(ThemeIcon, { size: 18 }) })] })] })] }), _jsx(TopNavigation, {})] }) }));
14
14
  });
15
15
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,WAAW;IAC7C,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAE,CAAC;IACzC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAElD,OAAO,CACL,iBAAQ,SAAS,EAAC,wDAAwD,YACxE,eAAK,SAAS,EAAC,0BAA0B,aACvC,eAAK,SAAS,EAAC,8HAA8H,aAC3I,eAAK,SAAS,EAAC,2BAA2B,aACvC,IAAI,EAAE,IAAI,IAAI,CACb,cAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC,eAAe,EAAC,SAAS,EAAC,MAAM,GAAG,CAC7D,EACD,eAAM,SAAS,EAAC,qDAAqD,YAClE,IAAI,EAAE,WAAW,GACb,IACH,EACN,eAAK,SAAS,EAAC,yDAAyD,aACtE,cAAK,SAAS,EAAC,oBAAoB,YACjC,kBAAQ,SAAS,EAAC,mMAAmM,aACnN,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,cAEpB,EACN,cAAK,SAAS,EAAC,mLAAmL,wBAE5L,IACC,GACL,EAEN,eAAK,SAAS,EAAC,sDAAsD,aAClE,eAAe,CAAC,CAAC,CAAC,CACjB,kBACE,SAAS,EAAC,qEAAqE,EAC/E,OAAO,EAAE,MAAM,wBAEP,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAC7C,CACV,CAAC,CAAC,CAAC,CACF,iBACE,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,KAAK,sBAGP,CACV,EAED,iBACE,SAAS,EAAC,6DAA6D,EACvE,OAAO,EAAE,WAAW,YAEpB,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,IACL,IACF,IACF,EACN,KAAC,aAAa,KAAG,IACb,GACC,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/lib/components/Header.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,WAAW;IAC7C,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAE,CAAC;IACzC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;IAC7E,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAElD,OAAO,CACL,iBAAQ,SAAS,EAAC,wDAAwD,YACxE,eAAK,SAAS,EAAC,0BAA0B,aACvC,eAAK,SAAS,EAAC,8HAA8H,aAC3I,eAAK,SAAS,EAAC,2BAA2B,aACvC,IAAI,EAAE,IAAI,IAAI,CACb,cAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAC,eAAe,EAAC,SAAS,EAAC,MAAM,GAAG,CAC7D,EACD,eAAM,SAAS,EAAC,qDAAqD,YAClE,IAAI,EAAE,WAAW,GACb,IACH,EACN,eAAK,SAAS,EAAC,yDAAyD,aACtE,cAAK,SAAS,EAAC,oBAAoB,YACjC,kBAAQ,SAAS,EAAC,mMAAmM,aACnN,eAAK,SAAS,EAAC,mCAAmC,aAChD,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,cAEpB,EACN,cAAK,SAAS,EAAC,mLAAmL,wBAE5L,IACC,GACL,EAEN,eAAK,SAAS,EAAC,sDAAsD,aAClE,aAAa,IAAI,CAChB,4BACG,eAAe,CAAC,CAAC,CAAC,CACjB,kBACE,SAAS,EAAC,qEAAqE,EAC/E,OAAO,EAAE,MAAM,wBAEP,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAC7C,CACV,CAAC,CAAC,CAAC,CACF,iBACE,SAAS,EAAC,yDAAyD,EACnE,OAAO,EAAE,KAAK,sBAGP,CACV,GACA,CACJ,EACD,iBACE,SAAS,EAAC,6DAA6D,EACvE,OAAO,EAAE,WAAW,YAEpB,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,IACL,IACF,IACF,EACN,KAAC,aAAa,KAAG,IACb,GACC,CACV,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -22,6 +22,7 @@ export class DevPortalContext {
22
22
  this.plugins
23
23
  .filter(needsInitialization)
24
24
  .forEach((plugin) => plugin.initialize(this));
25
+ this.authentication?.initialize(this);
25
26
  };
26
27
  invalidateCache = async (key) => {
27
28
  await queryClient.invalidateQueries({ queryKey: key });
@@ -1 +1 @@
1
- {"version":3,"file":"DevPortalContext.js","sourceRoot":"","sources":["../../../src/lib/core/DevPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AA+CtB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAe,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAKhE,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAsB,EAAE,CAAC;IAChC,iBAAiB,CAAqB;IAEvC,UAAU,CAAmB;IAC7B,IAAI,CAAyB;IAC7B,cAAc,CAA0B;IACxC,KAAK,CAAyB;IAErC,YAAY,MAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;IAC/B,CAAC;IAED,UAAU,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,eAAe,GAAG,KAAK,EAAE,GAAwB,EAAE,EAAE;QACnD,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,aAAa,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC1C,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAC7B,CACF,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"DevPortalContext.js","sourceRoot":"","sources":["../../../src/lib/core/DevPortalContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AA+CtB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAe,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAKhE,MAAM,OAAO,gBAAgB;IACnB,OAAO,GAAsB,EAAE,CAAC;IAChC,iBAAiB,CAAqB;IAEvC,UAAU,CAAmB;IAC7B,IAAI,CAAyB;IAC7B,cAAc,CAA0B;IACxC,KAAK,CAAyB;IAErC,YAAY,MAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;IAC/B,CAAC;IAED,UAAU,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,eAAe,GAAG,KAAK,EAAE,GAAwB,EAAE,EAAE;QACnD,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,aAAa,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAC1C,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAC7B,CACF,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -35,15 +35,20 @@ export const apiKeyPlugin = (options) => {
35
35
  const service = "getKeys" in options ? options : createDefaultHandler(endpoint);
36
36
  return {
37
37
  getIdentities: async (context) => {
38
- const keys = await service.getKeys(context);
39
- return keys.map((key) => ({
40
- authorizeRequest: (request) => {
41
- request.headers.set("Authorization", `Bearer ${key.key}`);
42
- return request;
43
- },
44
- id: key.id,
45
- label: key.description ?? key.id,
46
- }));
38
+ try {
39
+ const keys = await service.getKeys(context);
40
+ return keys.map((key) => ({
41
+ authorizeRequest: (request) => {
42
+ request.headers.set("Authorization", `Bearer ${key.key}`);
43
+ return request;
44
+ },
45
+ id: key.id,
46
+ label: key.description ?? key.id,
47
+ }));
48
+ }
49
+ catch {
50
+ return [];
51
+ }
47
52
  },
48
53
  getRoutes: () => {
49
54
  return [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-key/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,wBAAwB,GAC5B,0DAA0D,CAAC;AA8B7D,MAAM,oBAAoB,GAAG,CAAC,QAAgB,EAAiB,EAAE;IAC/D,OAAO;QACL,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,0BAA0B,EAAE,EAAE,EAAE;gBACrE,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,wBAAwB,EAAE;gBAC/D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,GAAG,wBAAwB,CAAC,CAAC;YAEjE,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YAElC,OAAO,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,OAA4B,EACS,EAAE;IACvC,MAAM,QAAQ,GACZ,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAEtE,MAAM,OAAO,GACX,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAElE,OAAO;QACL,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACxB,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC5B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC1D,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,EAAE;aACjC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACd,OAAO;gBACL;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI;iBACjE;gBACD;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI;iBAC9D;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/plugins/api-key/index.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ var se = (t) => {
5
5
  var Se = (t, e, s) => e in t ? De(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
6
6
  var y = (t, e, s) => Se(t, typeof e != "symbol" ? e + "" : e, s), ae = (t, e, s) => e.has(t) || se("Cannot " + s);
7
7
  var i = (t, e, s) => (ae(t, e, "read from private field"), s ? s.call(t) : e.get(t)), m = (t, e, s) => e.has(t) ? se("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, s), u = (t, e, s, a) => (ae(t, e, "write to private field"), a ? a.call(t, s) : e.set(t, s), s);
8
- var R = (t, e, s, a) => ({
8
+ var F = (t, e, s, a) => ({
9
9
  set _(r) {
10
10
  u(t, e, r, s);
11
11
  },
@@ -14,7 +14,7 @@ var R = (t, e, s, a) => ({
14
14
  }
15
15
  });
16
16
  import { j as n, u as D, O as Ee } from "./index-DNx3xWa2.js";
17
- import { S as me, h as ge, Q as Te, n as p, m as ne, M as Ie, a as re, b as j, e as Re, c as Fe, d as He, f as Le, o as ie, r as oe, g as ze, i as le, p as ce, s as Ke, j as E, u as K, N as V, k as _e, l as Be, q as W, t as X, v as U, w as ve, x as Ve, y as z, R as ye, T as xe, C as be, A as Ue, z as We, B as Xe, D as $e, H as Ge, E as Je, F as Ye, G as Ze, I as et, J as tt, K as st, L as at, O as nt, P as rt, V as it } from "./Spinner-7LezPqGn.js";
17
+ import { S as me, h as ge, Q as Te, n as p, m as ne, M as Ie, a as re, b as j, e as Fe, c as Re, d as He, f as Le, o as ie, r as oe, g as ze, i as le, p as ce, s as Ke, j as E, u as K, N as V, k as _e, l as Be, q as W, t as X, v as U, w as ve, x as Ve, y as z, R as ye, T as xe, C as be, A as Ue, z as We, B as Xe, D as $e, H as Ge, E as Je, F as Ye, G as Ze, I as et, J as tt, K as st, L as at, O as nt, P as rt, V as it } from "./Spinner-7LezPqGn.js";
18
18
  import { W as Vt, U as Ut } from "./Spinner-7LezPqGn.js";
19
19
  import { memo as je, createContext as ot, useEffect as T, useRef as _, useState as lt, forwardRef as ct, Suspense as we, useMemo as L } from "react";
20
20
  import { c as ht, u as ut } from "./state-oycsxkHz.js";
@@ -100,19 +100,19 @@ var x, de, dt = (de = class extends me {
100
100
  build(e, s, a) {
101
101
  const r = new Ie({
102
102
  mutationCache: this,
103
- mutationId: ++R(this, S)._,
103
+ mutationId: ++F(this, S)._,
104
104
  options: e.defaultMutationOptions(s),
105
105
  state: a
106
106
  });
107
107
  return this.add(r), r;
108
108
  }
109
109
  add(e) {
110
- const s = F(e), a = i(this, f).get(s) ?? [];
110
+ const s = R(e), a = i(this, f).get(s) ?? [];
111
111
  a.push(e), i(this, f).set(s, a), this.notify({ type: "added", mutation: e });
112
112
  }
113
113
  remove(e) {
114
114
  var a;
115
- const s = F(e);
115
+ const s = R(e);
116
116
  if (i(this, f).has(s)) {
117
117
  const r = (a = i(this, f).get(s)) == null ? void 0 : a.filter((o) => o !== e);
118
118
  r && (r.length === 0 ? i(this, f).delete(s) : i(this, f).set(s, r));
@@ -121,12 +121,12 @@ var x, de, dt = (de = class extends me {
121
121
  }
122
122
  canRun(e) {
123
123
  var a;
124
- const s = (a = i(this, f).get(F(e))) == null ? void 0 : a.find((r) => r.state.status === "pending");
124
+ const s = (a = i(this, f).get(R(e))) == null ? void 0 : a.find((r) => r.state.status === "pending");
125
125
  return !s || s === e;
126
126
  }
127
127
  runNext(e) {
128
128
  var a;
129
- const s = (a = i(this, f).get(F(e))) == null ? void 0 : a.find((r) => r !== e && r.state.isPaused);
129
+ const s = (a = i(this, f).get(R(e))) == null ? void 0 : a.find((r) => r !== e && r.state.isPaused);
130
130
  return (s == null ? void 0 : s.continue()) ?? Promise.resolve();
131
131
  }
132
132
  clear() {
@@ -164,7 +164,7 @@ var x, de, dt = (de = class extends me {
164
164
  );
165
165
  }
166
166
  }, f = new WeakMap(), S = new WeakMap(), fe);
167
- function F(t) {
167
+ function R(t) {
168
168
  var e;
169
169
  return ((e = t.options.scope) == null ? void 0 : e.id) ?? String(t.mutationId);
170
170
  }
@@ -182,7 +182,7 @@ function pt(t) {
182
182
  b = !0;
183
183
  }), e.signal)
184
184
  });
185
- }, Qe = Re(e.options, e.fetchOptions), B = async (v, w, O) => {
185
+ }, Qe = Fe(e.options, e.fetchOptions), B = async (v, w, O) => {
186
186
  if (b)
187
187
  return Promise.reject();
188
188
  if (w == null && v.pages.length)
@@ -196,7 +196,7 @@ function pt(t) {
196
196
  d(I);
197
197
  const qe = await Qe(
198
198
  I
199
- ), { maxPages: ee } = e.options, te = O ? Fe : He;
199
+ ), { maxPages: ee } = e.options, te = O ? Re : He;
200
200
  return {
201
201
  pages: te(v.pages, qe, ee),
202
202
  pageParams: te(v.pageParams, w, ee)
@@ -270,7 +270,7 @@ var c, P, N, C, M, k, Q, q, pe, gt = (pe = class {
270
270
  u(this, c, t.queryCache || new dt()), u(this, P, t.mutationCache || new ft()), u(this, N, t.defaultOptions || {}), u(this, C, /* @__PURE__ */ new Map()), u(this, M, /* @__PURE__ */ new Map()), u(this, k, 0);
271
271
  }
272
272
  mount() {
273
- R(this, k)._++, i(this, k) === 1 && (u(this, Q, Le.subscribe(async (t) => {
273
+ F(this, k)._++, i(this, k) === 1 && (u(this, Q, Le.subscribe(async (t) => {
274
274
  t && (await this.resumePausedMutations(), i(this, c).onFocus());
275
275
  })), u(this, q, ie.subscribe(async (t) => {
276
276
  t && (await this.resumePausedMutations(), i(this, c).onOnline());
@@ -278,7 +278,7 @@ var c, P, N, C, M, k, Q, q, pe, gt = (pe = class {
278
278
  }
279
279
  unmount() {
280
280
  var t, e;
281
- R(this, k)._--, i(this, k) === 0 && ((t = i(this, Q)) == null || t.call(this), u(this, Q, void 0), (e = i(this, q)) == null || e.call(this), u(this, q, void 0));
281
+ F(this, k)._--, i(this, k) === 0 && ((t = i(this, Q)) == null || t.call(this), u(this, Q, void 0), (e = i(this, q)) == null || e.call(this), u(this, q, void 0));
282
282
  }
283
283
  isFetching(t) {
284
284
  return i(this, c).findAll({ ...t, fetchStatus: "fetching" }).length;
@@ -468,7 +468,8 @@ class bt {
468
468
  y(this, "authentication");
469
469
  y(this, "state");
470
470
  y(this, "initialize", async () => {
471
- this.plugins.filter(vt).forEach((e) => e.initialize(this));
471
+ var e;
472
+ this.plugins.filter(vt).forEach((s) => s.initialize(this)), (e = this.authentication) == null || e.initialize(this);
472
473
  });
473
474
  y(this, "invalidateCache", async (e) => {
474
475
  await Ne.invalidateQueries({ queryKey: e });
@@ -597,7 +598,7 @@ const Nt = E("Sun", [
597
598
  /* @__PURE__ */ n.jsx("kbd", { className: "absolute right-[0.3rem] top-[0.3rem] hidden h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[11px] font-medium opacity-100 sm:flex", children: "⌘K" })
598
599
  ] }) }),
599
600
  /* @__PURE__ */ n.jsxs("div", { className: "items-center justify-self-end text-sm hidden lg:flex", children: [
600
- a ? /* @__PURE__ */ n.jsxs(
601
+ o && /* @__PURE__ */ n.jsx(n.Fragment, { children: a ? /* @__PURE__ */ n.jsxs(
601
602
  "button",
602
603
  {
603
604
  className: "cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded text-nowrap",
@@ -614,7 +615,7 @@ const Nt = E("Sun", [
614
615
  onClick: l,
615
616
  children: "Login"
616
617
  }
617
- ),
618
+ ) }),
618
619
  /* @__PURE__ */ n.jsx(
619
620
  "button",
620
621
  {
@@ -916,10 +917,10 @@ const It = (t) => {
916
917
  )
917
918
  }
918
919
  ) }) }) }) }) }) }) });
919
- }, Rt = je(It);
920
- Rt.displayName = "DevPortal";
920
+ }, Ft = je(It);
921
+ Ft.displayName = "DevPortal";
921
922
  export {
922
- Rt as DevPortal,
923
+ Ft as DevPortal,
923
924
  Vt as Link,
924
925
  Ut as useMDXComponents
925
926
  };
@@ -4874,11 +4874,17 @@ const xx = ({
4874
4874
  }), PO = (e) => {
4875
4875
  const t = "endpoint" in e ? e.endpoint : vx, n = "getKeys" in e ? e : wx(t);
4876
4876
  return {
4877
- getIdentities: async (r) => (await n.getKeys(r)).map((a) => ({
4878
- authorizeRequest: (o) => (o.headers.set("Authorization", `Bearer ${a.key}`), o),
4879
- id: a.id,
4880
- label: a.description ?? a.id
4881
- })),
4877
+ getIdentities: async (r) => {
4878
+ try {
4879
+ return (await n.getKeys(r)).map((a) => ({
4880
+ authorizeRequest: (o) => (o.headers.set("Authorization", `Bearer ${a.key}`), o),
4881
+ id: a.id,
4882
+ label: a.description ?? a.id
4883
+ }));
4884
+ } catch {
4885
+ return [];
4886
+ }
4887
+ },
4882
4888
  getRoutes: () => [
4883
4889
  {
4884
4890
  path: "/settings/api-keys",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zudoku",
3
- "version": "0.3.0-dev.2",
3
+ "version": "0.3.0-dev.4",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -39,22 +39,25 @@ export const Header = memo(function HeaderInner() {
39
39
  </div>
40
40
 
41
41
  <div className="items-center justify-self-end text-sm hidden lg:flex">
42
- {isAuthenticated ? (
43
- <button
44
- className="cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded text-nowrap"
45
- onClick={logout}
46
- >
47
- Logout {profile?.email ? `(${profile.email})` : null}
48
- </button>
49
- ) : (
50
- <button
51
- className="cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded"
52
- onClick={login}
53
- >
54
- Login
55
- </button>
42
+ {isAuthEnabled && (
43
+ <>
44
+ {isAuthenticated ? (
45
+ <button
46
+ className="cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded text-nowrap"
47
+ onClick={logout}
48
+ >
49
+ Logout {profile?.email ? `(${profile.email})` : null}
50
+ </button>
51
+ ) : (
52
+ <button
53
+ className="cursor-pointer hover:bg-secondary p-1 px-2 mx-2 rounded"
54
+ onClick={login}
55
+ >
56
+ Login
57
+ </button>
58
+ )}
59
+ </>
56
60
  )}
57
-
58
61
  <button
59
62
  className="cursor-pointer hover:bg-secondary p-2.5 -m-2.5 rounded-full"
60
63
  onClick={toggleTheme}
@@ -88,6 +88,7 @@ export class DevPortalContext {
88
88
  this.plugins
89
89
  .filter(needsInitialization)
90
90
  .forEach((plugin) => plugin.initialize(this));
91
+ this.authentication?.initialize(this);
91
92
  };
92
93
 
93
94
  invalidateCache = async (key: DevPortalCacheKey[]) => {
@@ -84,16 +84,20 @@ export const apiKeyPlugin = (
84
84
 
85
85
  return {
86
86
  getIdentities: async (context) => {
87
- const keys = await service.getKeys(context);
88
-
89
- return keys.map((key) => ({
90
- authorizeRequest: (request) => {
91
- request.headers.set("Authorization", `Bearer ${key.key}`);
92
- return request;
93
- },
94
- id: key.id,
95
- label: key.description ?? key.id,
96
- }));
87
+ try {
88
+ const keys = await service.getKeys(context);
89
+
90
+ return keys.map((key) => ({
91
+ authorizeRequest: (request) => {
92
+ request.headers.set("Authorization", `Bearer ${key.key}`);
93
+ return request;
94
+ },
95
+ id: key.id,
96
+ label: key.description ?? key.id,
97
+ }));
98
+ } catch {
99
+ return [];
100
+ }
97
101
  },
98
102
  getRoutes: () => {
99
103
  return [