zudoku 0.53.0 → 0.53.2

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 (91) hide show
  1. package/README.md +2 -2
  2. package/dist/app/demo.js +16 -1
  3. package/dist/app/demo.js.map +1 -1
  4. package/dist/cli/build/handler.js +9 -1
  5. package/dist/cli/build/handler.js.map +1 -1
  6. package/dist/config/loader.js +2 -5
  7. package/dist/config/loader.js.map +1 -1
  8. package/dist/config/validators/BuildSchema.js +5 -0
  9. package/dist/config/validators/BuildSchema.js.map +1 -1
  10. package/dist/config/validators/validate.d.ts +1 -1
  11. package/dist/config/validators/validate.js +11 -2
  12. package/dist/config/validators/validate.js.map +1 -1
  13. package/dist/config/validators/validate.test.js +65 -2
  14. package/dist/config/validators/validate.test.js.map +1 -1
  15. package/dist/lib/authentication/authentication.d.ts +2 -0
  16. package/dist/lib/authentication/components/SignIn.js +4 -3
  17. package/dist/lib/authentication/components/SignIn.js.map +1 -1
  18. package/dist/lib/authentication/providers/openid.d.ts +4 -2
  19. package/dist/lib/authentication/providers/openid.js +11 -5
  20. package/dist/lib/authentication/providers/openid.js.map +1 -1
  21. package/dist/lib/components/MobileTopNavigation.js +8 -5
  22. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  23. package/dist/lib/components/TopNavigation.d.ts +5 -0
  24. package/dist/lib/components/TopNavigation.js +16 -12
  25. package/dist/lib/components/TopNavigation.js.map +1 -1
  26. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  27. package/dist/lib/core/ZudokuContext.js +14 -1
  28. package/dist/lib/core/ZudokuContext.js.map +1 -1
  29. package/dist/lib/plugins/api-keys/SettingsApiKeys.js +4 -4
  30. package/dist/lib/plugins/api-keys/SettingsApiKeys.js.map +1 -1
  31. package/dist/lib/plugins/api-keys/index.js +1 -1
  32. package/dist/lib/plugins/markdown/MdxPage.js +3 -2
  33. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  34. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  35. package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
  36. package/dist/lib/plugins/openapi/index.js +1 -1
  37. package/dist/lib/plugins/openapi/index.js.map +1 -1
  38. package/dist/vite/mdx/remark-last-modified.js +1 -28
  39. package/dist/vite/mdx/remark-last-modified.js.map +1 -1
  40. package/lib/{MdxPage-swXPJ0gf.js → MdxPage-8UuEK446.js} +37 -37
  41. package/lib/MdxPage-8UuEK446.js.map +1 -0
  42. package/lib/{OasProvider-CDAM3TB1.js → OasProvider-BsWpguVO.js} +2 -2
  43. package/lib/{OasProvider-CDAM3TB1.js.map → OasProvider-BsWpguVO.js.map} +1 -1
  44. package/lib/{OperationList-C9Hb9ql8.js → OperationList-PnZbf3b2.js} +6 -6
  45. package/lib/{OperationList-C9Hb9ql8.js.map → OperationList-PnZbf3b2.js.map} +1 -1
  46. package/lib/{Pagination-VGlgeCmS.js → Pagination-DY7gCrm4.js} +2 -2
  47. package/lib/{Pagination-VGlgeCmS.js.map → Pagination-DY7gCrm4.js.map} +1 -1
  48. package/lib/{SchemaList-BAbh1BXO.js → SchemaList-D6k4DKWH.js} +3 -3
  49. package/lib/{SchemaList-BAbh1BXO.js.map → SchemaList-D6k4DKWH.js.map} +1 -1
  50. package/lib/{SchemaView-C2Io712T.js → SchemaView-BhgJ9WB8.js} +3 -3
  51. package/lib/{SchemaView-C2Io712T.js.map → SchemaView-BhgJ9WB8.js.map} +1 -1
  52. package/lib/SignUp-CpUD6DUM.js +56 -0
  53. package/lib/SignUp-CpUD6DUM.js.map +1 -0
  54. package/lib/{circular-B42RaanD.js → circular-BUMjK3JF.js} +2 -2
  55. package/lib/{circular-B42RaanD.js.map → circular-BUMjK3JF.js.map} +1 -1
  56. package/lib/{createServer-BKFsRuuk.js → createServer-BPz8ZCrd.js} +3 -3
  57. package/lib/createServer-BPz8ZCrd.js.map +1 -0
  58. package/lib/{errors-CF2X_x5o.js → errors-DY-qOx9n.js} +3 -3
  59. package/lib/{errors-CF2X_x5o.js.map → errors-DY-qOx9n.js.map} +1 -1
  60. package/lib/{index-CLy1XyH0.js → index-C_xVKbf9.js} +1285 -1240
  61. package/lib/index-C_xVKbf9.js.map +1 -0
  62. package/lib/{index-B6Re5_cx.js → index-dVBKCNMa.js} +123 -123
  63. package/lib/{index-B6Re5_cx.js.map → index-dVBKCNMa.js.map} +1 -1
  64. package/lib/zudoku.auth-azureb2c.js +1 -1
  65. package/lib/zudoku.auth-clerk.js +1 -1
  66. package/lib/zudoku.auth-openid.js +114 -105
  67. package/lib/zudoku.auth-openid.js.map +1 -1
  68. package/lib/zudoku.components.js +1 -1
  69. package/lib/zudoku.plugin-api-catalog.js +1 -1
  70. package/lib/zudoku.plugin-api-keys.js +286 -272
  71. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  72. package/lib/zudoku.plugin-markdown.js +1 -1
  73. package/lib/zudoku.plugin-openapi.js +1 -1
  74. package/package.json +7 -7
  75. package/src/app/demo.tsx +19 -2
  76. package/src/lib/authentication/authentication.ts +2 -2
  77. package/src/lib/authentication/components/SignIn.tsx +5 -12
  78. package/src/lib/authentication/providers/openid.tsx +23 -4
  79. package/src/lib/components/MobileTopNavigation.tsx +56 -7
  80. package/src/lib/components/TopNavigation.tsx +30 -14
  81. package/src/lib/core/ZudokuContext.ts +21 -0
  82. package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +13 -9
  83. package/src/lib/plugins/api-keys/index.tsx +1 -1
  84. package/src/lib/plugins/markdown/MdxPage.tsx +3 -2
  85. package/src/lib/plugins/openapi/OperationList.tsx +1 -1
  86. package/src/lib/plugins/openapi/index.tsx +1 -1
  87. package/lib/MdxPage-swXPJ0gf.js.map +0 -1
  88. package/lib/SignUp-5RUdVhnq.js +0 -63
  89. package/lib/SignUp-5RUdVhnq.js.map +0 -1
  90. package/lib/createServer-BKFsRuuk.js.map +0 -1
  91. package/lib/index-CLy1XyH0.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { j as o } from "./jsx-runtime-C5mzlN2N.js";
2
2
  import { LogOutIcon as n } from "lucide-react";
3
- import { S as s, a as u, b as i } from "./SignUp-5RUdVhnq.js";
3
+ import { S as s, a as u, b as i } from "./SignUp-CpUD6DUM.js";
4
4
  import { c as l, j as c } from "./hook-Bd0yS8M0.js";
5
5
  import { N as h } from "./chunk-DQRVZFIR-DHK7_Ilc.js";
6
- import { u as m } from "./index-CLy1XyH0.js";
6
+ import { u as m } from "./index-C_xVKbf9.js";
7
7
  import { Z as p } from "./invariant-DAFpPywt.js";
8
8
  class C {
9
9
  getRoutes() {
@@ -75,4 +75,4 @@ export {
75
75
  w as O,
76
76
  E as a
77
77
  };
78
- //# sourceMappingURL=errors-CF2X_x5o.js.map
78
+ //# sourceMappingURL=errors-DY-qOx9n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors-CF2X_x5o.js","sources":["../src/lib/authentication/AuthenticationPlugin.tsx","../src/lib/util/url.ts","../src/lib/authentication/components/CallbackHandler.tsx","../src/lib/authentication/errors.ts"],"sourcesContent":["import { LogOutIcon } from \"lucide-react\";\nimport {\n type CommonPlugin,\n type NavigationPlugin,\n type ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class CoreAuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n }\n}\n","/**\n * Normalizes a redirect URL by removing the origin and optionally the root path\n */\nexport function normalizeRedirectUrl(\n redirectTo: string,\n origin: string,\n basePath: string = \"/\",\n): string {\n if (!redirectTo.startsWith(origin)) {\n return redirectTo;\n }\n\n if (basePath !== \"/\" && redirectTo.startsWith(origin + basePath)) {\n return redirectTo.slice(origin.length + basePath.length);\n }\n\n return redirectTo.slice(origin.length);\n}\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Navigate } from \"react-router\";\nimport { useZudoku } from \"zudoku/components\";\nimport { ZudokuError } from \"../../util/invariant.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { normalizeRedirectUrl } from \"../../util/url.js\";\n\nexport function CallbackHandler({\n handleCallback,\n}: {\n handleCallback: () => Promise<string>;\n}) {\n const { options } = useZudoku();\n const executeCallback = useSuspenseQuery({\n retry: false,\n queryKey: [\"oauth-callback\"],\n queryFn: async () => {\n try {\n return joinUrl(\n normalizeRedirectUrl(\n await handleCallback(),\n window.location.origin,\n options.basePath,\n ),\n );\n } catch (error) {\n throw new ZudokuError(\"Could not validate user\", {\n cause: error,\n title: \"Authentication Error\",\n developerHint:\n \"Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly.\",\n });\n }\n },\n });\n\n return <Navigate to={executeCallback.data} replace />;\n}\n","export class AuthorizationError extends Error {}\n\ninterface OAuthError {\n readonly error: string;\n readonly error_description?: string;\n readonly error_uri?: string;\n readonly algs?: string;\n readonly scope?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly [parameter: string]: any | undefined;\n}\n\nexport class OAuthAuthorizationError extends AuthorizationError {\n constructor(\n message: string,\n public error: OAuthError,\n options?: ErrorOptions,\n ) {\n super(message, options);\n }\n}\n"],"names":["CoreAuthenticationPlugin","SignOut","SignIn","SignUp","LogOutIcon","normalizeRedirectUrl","redirectTo","origin","basePath","CallbackHandler","handleCallback","options","useZudoku","executeCallback","useSuspenseQuery","joinUrl","error","ZudokuError","Navigate","AuthorizationError","OAuthAuthorizationError","message"],"mappings":";;;;;;;AAYO,MAAMA,EAAoD;AAAA,EAC/D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAQ,CAAA,CAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAO,CAAA,CAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAO,CAAA,CAAA;AAAA,MAAA;AAAA,IAErB;AAAA,EAAA;AAAA,EAGF,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMC;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEJ;ACrCO,SAASC,EACdC,GACAC,GACAC,IAAmB,KACX;AACR,SAAKF,EAAW,WAAWC,CAAM,IAI7BC,MAAa,OAAOF,EAAW,WAAWC,IAASC,CAAQ,IACtDF,EAAW,MAAMC,EAAO,SAASC,EAAS,MAAM,IAGlDF,EAAW,MAAMC,EAAO,MAAM,IAP5BD;AAQX;ACVO,SAASG,EAAgB;AAAA,EAC9B,gBAAAC;AACF,GAEG;AACK,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAU,GACxBC,IAAkBC,EAAiB;AAAA,IACvC,OAAO;AAAA,IACP,UAAU,CAAC,gBAAgB;AAAA,IAC3B,SAAS,YAAY;AACf,UAAA;AACK,eAAAC;AAAA,UACLV;AAAA,YACE,MAAMK,EAAe;AAAA,YACrB,OAAO,SAAS;AAAA,YAChBC,EAAQ;AAAA,UAAA;AAAA,QAEZ;AAAA,eACOK,GAAO;AACR,cAAA,IAAIC,EAAY,2BAA2B;AAAA,UAC/C,OAAOD;AAAA,UACP,OAAO;AAAA,UACP,eACE;AAAA,QAAA,CACH;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AAED,+BAAQE,GAAS,EAAA,IAAIL,EAAgB,MAAM,SAAO,IAAC;AACrD;ACrCO,MAAMM,UAA2B,MAAM;AAAC;AAYxC,MAAMC,UAAgCD,EAAmB;AAAA,EAC9D,YACEE,GACOL,GACPL,GACA;AACA,UAAMU,GAASV,CAAO,GAHf,KAAA,QAAAK;AAAA,EAAA;AAKX;"}
1
+ {"version":3,"file":"errors-DY-qOx9n.js","sources":["../src/lib/authentication/AuthenticationPlugin.tsx","../src/lib/util/url.ts","../src/lib/authentication/components/CallbackHandler.tsx","../src/lib/authentication/errors.ts"],"sourcesContent":["import { LogOutIcon } from \"lucide-react\";\nimport {\n type CommonPlugin,\n type NavigationPlugin,\n type ProfileMenuPlugin,\n} from \"../core/plugins.js\";\nimport { SignIn } from \"./components/SignIn.js\";\nimport { SignOut } from \"./components/SignOut.js\";\nimport { SignUp } from \"./components/SignUp.js\";\n\ntype PluginInterface = NavigationPlugin & CommonPlugin & ProfileMenuPlugin;\n\nexport class CoreAuthenticationPlugin implements PluginInterface {\n getRoutes() {\n return [\n {\n path: \"/signout\",\n element: <SignOut />,\n },\n {\n path: \"/signin\",\n element: <SignIn />,\n },\n {\n path: \"/signup\",\n element: <SignUp />,\n },\n ];\n }\n\n getProfileMenuItems() {\n return [\n {\n label: \"Logout\",\n path: \"/signout\",\n category: \"bottom\",\n icon: LogOutIcon,\n } as const,\n ];\n }\n}\n","/**\n * Normalizes a redirect URL by removing the origin and optionally the root path\n */\nexport function normalizeRedirectUrl(\n redirectTo: string,\n origin: string,\n basePath: string = \"/\",\n): string {\n if (!redirectTo.startsWith(origin)) {\n return redirectTo;\n }\n\n if (basePath !== \"/\" && redirectTo.startsWith(origin + basePath)) {\n return redirectTo.slice(origin.length + basePath.length);\n }\n\n return redirectTo.slice(origin.length);\n}\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Navigate } from \"react-router\";\nimport { useZudoku } from \"zudoku/components\";\nimport { ZudokuError } from \"../../util/invariant.js\";\nimport { joinUrl } from \"../../util/joinUrl.js\";\nimport { normalizeRedirectUrl } from \"../../util/url.js\";\n\nexport function CallbackHandler({\n handleCallback,\n}: {\n handleCallback: () => Promise<string>;\n}) {\n const { options } = useZudoku();\n const executeCallback = useSuspenseQuery({\n retry: false,\n queryKey: [\"oauth-callback\"],\n queryFn: async () => {\n try {\n return joinUrl(\n normalizeRedirectUrl(\n await handleCallback(),\n window.location.origin,\n options.basePath,\n ),\n );\n } catch (error) {\n throw new ZudokuError(\"Could not validate user\", {\n cause: error,\n title: \"Authentication Error\",\n developerHint:\n \"Check the configuration of your authorization provider and ensure all settings such as the callback URL are configured correctly.\",\n });\n }\n },\n });\n\n return <Navigate to={executeCallback.data} replace />;\n}\n","export class AuthorizationError extends Error {}\n\ninterface OAuthError {\n readonly error: string;\n readonly error_description?: string;\n readonly error_uri?: string;\n readonly algs?: string;\n readonly scope?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly [parameter: string]: any | undefined;\n}\n\nexport class OAuthAuthorizationError extends AuthorizationError {\n constructor(\n message: string,\n public error: OAuthError,\n options?: ErrorOptions,\n ) {\n super(message, options);\n }\n}\n"],"names":["CoreAuthenticationPlugin","SignOut","SignIn","SignUp","LogOutIcon","normalizeRedirectUrl","redirectTo","origin","basePath","CallbackHandler","handleCallback","options","useZudoku","executeCallback","useSuspenseQuery","joinUrl","error","ZudokuError","Navigate","AuthorizationError","OAuthAuthorizationError","message"],"mappings":";;;;;;;AAYO,MAAMA,EAAoD;AAAA,EAC/D,YAAY;AACH,WAAA;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAQ,CAAA,CAAA;AAAA,MACpB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAO,CAAA,CAAA;AAAA,MACnB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAO,CAAA,CAAA;AAAA,MAAA;AAAA,IAErB;AAAA,EAAA;AAAA,EAGF,sBAAsB;AACb,WAAA;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMC;AAAA,MAAA;AAAA,IAEV;AAAA,EAAA;AAEJ;ACrCO,SAASC,EACdC,GACAC,GACAC,IAAmB,KACX;AACR,SAAKF,EAAW,WAAWC,CAAM,IAI7BC,MAAa,OAAOF,EAAW,WAAWC,IAASC,CAAQ,IACtDF,EAAW,MAAMC,EAAO,SAASC,EAAS,MAAM,IAGlDF,EAAW,MAAMC,EAAO,MAAM,IAP5BD;AAQX;ACVO,SAASG,EAAgB;AAAA,EAC9B,gBAAAC;AACF,GAEG;AACK,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAU,GACxBC,IAAkBC,EAAiB;AAAA,IACvC,OAAO;AAAA,IACP,UAAU,CAAC,gBAAgB;AAAA,IAC3B,SAAS,YAAY;AACf,UAAA;AACK,eAAAC;AAAA,UACLV;AAAA,YACE,MAAMK,EAAe;AAAA,YACrB,OAAO,SAAS;AAAA,YAChBC,EAAQ;AAAA,UAAA;AAAA,QAEZ;AAAA,eACOK,GAAO;AACR,cAAA,IAAIC,EAAY,2BAA2B;AAAA,UAC/C,OAAOD;AAAA,UACP,OAAO;AAAA,UACP,eACE;AAAA,QAAA,CACH;AAAA,MAAA;AAAA,IACH;AAAA,EACF,CACD;AAED,+BAAQE,GAAS,EAAA,IAAIL,EAAgB,MAAM,SAAO,IAAC;AACrD;ACrCO,MAAMM,UAA2B,MAAM;AAAC;AAYxC,MAAMC,UAAgCD,EAAmB;AAAA,EAC9D,YACEE,GACOL,GACPL,GACA;AACA,UAAMU,GAASV,CAAO,GAHf,KAAA,QAAAK;AAAA,EAAA;AAKX;"}