zudoku 0.55.1 → 0.57.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/app/demo.js +1 -1
- package/dist/app/entry.client.js +1 -1
- package/dist/app/entry.server.js +1 -1
- package/dist/app/main.js +12 -4
- package/dist/app/main.js.map +1 -1
- package/dist/app/standalone.js +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +4 -0
- package/dist/config/validators/InputNavigationSchema.js +1 -0
- package/dist/config/validators/InputNavigationSchema.js.map +1 -1
- package/dist/config/validators/ProtectedRoutesSchema.d.ts +5 -4
- package/dist/config/validators/ProtectedRoutesSchema.js +4 -13
- package/dist/config/validators/ProtectedRoutesSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +2 -13
- package/dist/config/validators/validate.js +1 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/flat-config.d.ts +329 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/components/BuildCheck.js +7 -0
- package/dist/lib/components/BuildCheck.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Layout.js +4 -7
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/Meta.d.ts +2 -0
- package/dist/lib/components/Meta.js +11 -0
- package/dist/lib/components/Meta.js.map +1 -0
- package/dist/lib/components/context/ZudokuContext.js +1 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +0 -28
- package/dist/lib/components/index.js +0 -15
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/components/navigation/NavigationItem.js +3 -2
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/components/navigation/utils.js +12 -11
- package/dist/lib/components/navigation/utils.js.map +1 -1
- package/dist/lib/core/ZudokuContext.d.ts +3 -1
- package/dist/lib/core/ZudokuContext.js +13 -3
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/core/__internal.d.ts +37 -0
- package/dist/lib/core/__internal.js +26 -0
- package/dist/lib/core/__internal.js.map +1 -0
- package/dist/lib/core/router.d.ts +1 -0
- package/dist/lib/core/router.js +2 -0
- package/dist/lib/core/router.js.map +1 -0
- package/dist/lib/plugins/custom-pages/index.js +3 -0
- package/dist/lib/plugins/custom-pages/index.js.map +1 -1
- package/dist/lib/ui/CodeBlock.js +2 -2
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/ui/Dialog.js +2 -2
- package/dist/lib/ui/Dialog.js.map +1 -1
- package/dist/vite/plugin-mdx.js +1 -1
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/sitemap.js +10 -9
- package/dist/vite/sitemap.js.map +1 -1
- package/lib/CategoryHeading-DCpZu3yG.js +17 -0
- package/lib/CategoryHeading-DCpZu3yG.js.map +1 -0
- package/lib/{CodeBlock-CVT6z0PP.js → CodeBlock-yJjjRwj-.js} +3 -3
- package/lib/CodeBlock-yJjjRwj-.js.map +1 -0
- package/lib/{Command-BYukybsa.js → Command-CDn17s8X.js} +2 -2
- package/lib/{Command-BYukybsa.js.map → Command-CDn17s8X.js.map} +1 -1
- package/lib/Dialog-BrIjMmUK.js +114 -0
- package/lib/Dialog-BrIjMmUK.js.map +1 -0
- package/lib/{MdxPage-BKyikAKk.js → MdxPage-BmOQ5m5g.js} +16 -15
- package/lib/{MdxPage-BKyikAKk.js.map → MdxPage-BmOQ5m5g.js.map} +1 -1
- package/lib/{OAuthErrorPage--neTdY8H.js → OAuthErrorPage-Jv3r8wnL.js} +7 -7
- package/lib/{OAuthErrorPage--neTdY8H.js.map → OAuthErrorPage-Jv3r8wnL.js.map} +1 -1
- package/lib/{OasProvider-yysXhMVI.js → OasProvider-CA_lpILt.js} +3 -3
- package/lib/{OasProvider-yysXhMVI.js.map → OasProvider-CA_lpILt.js.map} +1 -1
- package/lib/{OperationList-CSYrpcpD.js → OperationList-C-TObVw6.js} +17 -16
- package/lib/{OperationList-CSYrpcpD.js.map → OperationList-C-TObVw6.js.map} +1 -1
- package/lib/{Pagination-QsyyJuoq.js → Pagination-CBiRGddW.js} +3 -3
- package/lib/{Pagination-QsyyJuoq.js.map → Pagination-CBiRGddW.js.map} +1 -1
- package/lib/RouteGuard-JLH6tCY8.js +56 -0
- package/lib/RouteGuard-JLH6tCY8.js.map +1 -0
- package/lib/RouterError-DcVonMP1.js +41 -0
- package/lib/RouterError-DcVonMP1.js.map +1 -0
- package/lib/{SchemaList-CSZkqmwI.js → SchemaList-BeYWvBC7.js} +15 -14
- package/lib/{SchemaList-CSZkqmwI.js.map → SchemaList-BeYWvBC7.js.map} +1 -1
- package/lib/{SchemaView-bhJ_U4vL.js → SchemaView-CRcShewo.js} +4 -4
- package/lib/{SchemaView-bhJ_U4vL.js.map → SchemaView-CRcShewo.js.map} +1 -1
- package/lib/{Select-DlfI9FFO.js → Select-C3efYI1n.js} +8 -8
- package/lib/{Select-DlfI9FFO.js.map → Select-C3efYI1n.js.map} +1 -1
- package/lib/{SignUp-C6ogvx5s.js → SignUp-CxBGHgba.js} +11 -11
- package/lib/{SignUp-C6ogvx5s.js.map → SignUp-CxBGHgba.js.map} +1 -1
- package/lib/{Slot-Dgy8tqef.js → Slot-DOtTvoyj.js} +1634 -1868
- package/lib/{Slot-Dgy8tqef.js.map → Slot-DOtTvoyj.js.map} +1 -1
- package/lib/{SyntaxHighlight-BD_Z_Csq.js → SyntaxHighlight-GR0eix_L.js} +313 -313
- package/lib/SyntaxHighlight-GR0eix_L.js.map +1 -0
- package/lib/{Toc-CjX59Ljo.js → Toc-BlcGIkXc.js} +2 -2
- package/lib/{Toc-CjX59Ljo.js.map → Toc-BlcGIkXc.js.map} +1 -1
- package/lib/{ZudokuContext-Coxa0DfE.js → ZudokuContext-BuJD7yIX.js} +100 -92
- package/lib/{ZudokuContext-Coxa0DfE.js.map → ZudokuContext-BuJD7yIX.js.map} +1 -1
- package/lib/chunk-QMGIS6GS-DqecZ6nq.js +9204 -0
- package/lib/chunk-QMGIS6GS-DqecZ6nq.js.map +1 -0
- package/lib/{circular-Q4G1nwyb.js → circular-CGTcsqA3.js} +2 -2
- package/lib/{circular-Q4G1nwyb.js.map → circular-CGTcsqA3.js.map} +1 -1
- package/lib/{createServer-Dtstxqn7.js → createServer-DjgpuLne.js} +4 -4
- package/lib/{createServer-Dtstxqn7.js.map → createServer-DjgpuLne.js.map} +1 -1
- package/lib/{errors-BoJYHL2E.js → errors-CrI3s7mR.js} +2 -2
- package/lib/{errors-BoJYHL2E.js.map → errors-CrI3s7mR.js.map} +1 -1
- package/lib/{hook-DEPqwjke.js → hook-bv3iuX7X.js} +2 -2
- package/lib/{hook-DEPqwjke.js.map → hook-bv3iuX7X.js.map} +1 -1
- package/lib/{index-DRkS-pvf.js → index-CvTWnHZF.js} +18 -18
- package/lib/{index-DRkS-pvf.js.map → index-CvTWnHZF.js.map} +1 -1
- package/lib/index-DzO-Qh6S.js +1061 -0
- package/lib/index-DzO-Qh6S.js.map +1 -0
- package/lib/{index-Bl1W774G.js → index-HarEI51d.js} +2 -2
- package/lib/{index-Bl1W774G.js.map → index-HarEI51d.js.map} +1 -1
- package/lib/{RouteGuard-D17dUEM_.js → index.esm-BnYHxCYC.js} +226 -281
- package/lib/index.esm-BnYHxCYC.js.map +1 -0
- package/lib/mutation-Dy_5up8v.js +196 -0
- package/lib/mutation-Dy_5up8v.js.map +1 -0
- package/lib/ui/CodeBlock.js +1 -1
- package/lib/ui/Command.js +1 -1
- package/lib/ui/Dialog.js +56 -41
- package/lib/ui/Dialog.js.map +1 -1
- package/lib/ui/SyntaxHighlight.js +3 -3
- package/lib/{useExposedProps-DUoV7MCU.js → useExposedProps-BH9aq4MD.js} +32 -32
- package/lib/{useExposedProps-DUoV7MCU.js.map → useExposedProps-BH9aq4MD.js.map} +1 -1
- package/lib/useLatest-hmRS46UF.js +11 -0
- package/lib/useLatest-hmRS46UF.js.map +1 -0
- package/lib/zudoku.__internal.js +2965 -0
- package/lib/zudoku.__internal.js.map +1 -0
- package/lib/zudoku.auth-auth0.js +1 -1
- package/lib/zudoku.auth-azureb2c.js +5 -5
- package/lib/zudoku.auth-clerk.js +2 -2
- package/lib/zudoku.auth-openid.js +5 -5
- package/lib/zudoku.auth-supabase.js +2 -2
- package/lib/zudoku.components.js +20 -28
- package/lib/zudoku.hooks.js +4 -4
- package/lib/zudoku.plugin-api-catalog.js +18 -18
- package/lib/zudoku.plugin-api-keys.js +28 -27
- package/lib/zudoku.plugin-api-keys.js.map +1 -1
- package/lib/zudoku.plugin-custom-pages.js +8 -5
- package/lib/zudoku.plugin-custom-pages.js.map +1 -1
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +4 -4
- package/lib/zudoku.plugin-redirect.js +3 -3
- package/lib/zudoku.plugin-search-pagefind.js +14 -14
- package/lib/zudoku.router.js +123 -0
- package/lib/zudoku.router.js.map +1 -0
- package/package.json +14 -6
- package/src/app/demo.tsx +1 -1
- package/src/app/entry.client.tsx +1 -1
- package/src/app/entry.server.tsx +1 -1
- package/src/app/main.tsx +20 -5
- package/src/app/standalone.tsx +1 -1
- package/src/lib/components/BuildCheck.tsx +10 -0
- package/src/lib/components/Header.tsx +3 -2
- package/src/lib/components/Layout.tsx +2 -21
- package/src/lib/components/Meta.tsx +32 -0
- package/src/lib/components/context/ZudokuContext.ts +1 -1
- package/src/lib/components/index.ts +0 -18
- package/src/lib/components/navigation/NavigationItem.tsx +4 -2
- package/src/lib/components/navigation/utils.ts +12 -12
- package/src/lib/core/ZudokuContext.ts +23 -5
- package/src/lib/core/__internal.tsx +30 -0
- package/src/lib/core/router.ts +1 -0
- package/src/lib/plugins/custom-pages/index.tsx +3 -0
- package/src/lib/ui/CodeBlock.tsx +2 -2
- package/src/lib/ui/Dialog.tsx +12 -3
- package/lib/CodeBlock-CVT6z0PP.js.map +0 -1
- package/lib/Dialog-u9Uz9sTt.js +0 -99
- package/lib/Dialog-u9Uz9sTt.js.map +0 -1
- package/lib/RouteGuard-D17dUEM_.js.map +0 -1
- package/lib/SyntaxHighlight-BD_Z_Csq.js.map +0 -1
- package/lib/chunk-QMGIS6GS-CdEm9pzB.js +0 -1839
- package/lib/chunk-QMGIS6GS-CdEm9pzB.js.map +0 -1
- package/lib/index-DYs8gxKX.js +0 -4082
- package/lib/index-DYs8gxKX.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as t } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { LogOutIcon as n } from "lucide-react";
|
|
3
|
-
import { S as i, a, b as u } from "./SignUp-
|
|
3
|
+
import { S as i, a, b as u } from "./SignUp-CxBGHgba.js";
|
|
4
4
|
import { Z as m } from "./invariant-Bm-FVUQE.js";
|
|
5
5
|
class h {
|
|
6
6
|
getRoutes() {
|
|
@@ -42,4 +42,4 @@ export {
|
|
|
42
42
|
h as C,
|
|
43
43
|
f as O
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=errors-
|
|
45
|
+
//# sourceMappingURL=errors-CrI3s7mR.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-
|
|
1
|
+
{"version":3,"file":"errors-CrI3s7mR.js","sources":["../src/lib/authentication/AuthenticationPlugin.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","import type { OAuth2Error } from \"oauth4webapi\";\nimport { ZudokuError, type ZudokuErrorOptions } from \"../util/invariant.js\";\n\nexport class AuthorizationError extends Error {}\n\nexport class OAuthAuthorizationError extends ZudokuError {\n constructor(\n message: string,\n public error: OAuth2Error,\n options?: ZudokuErrorOptions,\n ) {\n super(message, options);\n }\n}\n\nexport type OAuthErrorType =\n // Authorization errors\n | \"invalid_request\"\n | \"unauthorized_client\"\n | \"access_denied\"\n | \"unsupported_response_type\"\n | \"invalid_scope\"\n | \"server_error\"\n | \"temporarily_unavailable\"\n // Token errors\n | \"invalid_client\"\n | \"invalid_grant\"\n | \"unsupported_grant_type\"\n // Custom errors\n | \"invalid_state\"\n | \"missing_code_verifier\"\n | \"network_error\"\n | \"token_expired\"\n | \"configuration_error\"\n | \"unknown_error\";\n"],"names":["CoreAuthenticationPlugin","SignOut","SignIn","SignUp","LogOutIcon","AuthorizationError","OAuthAuthorizationError","ZudokuError","message","error","options"],"mappings":";;;;AAYO,MAAMA,EAAoD;AAAA,EAC/D,YAAY;AACV,WAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAQ;AAAA,MAAA;AAAA,MAEpB;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAO;AAAA,MAAA;AAAA,MAEnB;AAAA,QACE,MAAM;AAAA,QACN,+BAAUC,GAAA,CAAA,CAAO;AAAA,MAAA;AAAA,IACnB;AAAA,EAEJ;AAAA,EAEA,sBAAsB;AACpB,WAAO;AAAA,MACL;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAMC;AAAA,MAAA;AAAA,IACR;AAAA,EAEJ;AACF;ACrCO,MAAMC,UAA2B,MAAM;AAAC;AAExC,MAAMC,UAAgCC,EAAY;AAAA,EACvD,YACEC,GACOC,GACPC,GACA;AACA,UAAMF,GAASE,CAAO,GAHf,KAAA,QAAAD;AAAA,EAIT;AACF;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { d as _ } from "./ZudokuContext-BuJD7yIX.js";
|
|
2
2
|
import I from "react";
|
|
3
3
|
const E = (t) => {
|
|
4
4
|
let n;
|
|
@@ -244,4 +244,4 @@ export {
|
|
|
244
244
|
x as p,
|
|
245
245
|
O as u
|
|
246
246
|
};
|
|
247
|
-
//# sourceMappingURL=hook-
|
|
247
|
+
//# sourceMappingURL=hook-bv3iuX7X.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-DEPqwjke.js","sources":["../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/state.ts","../src/lib/authentication/hook.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { create, type Mutate, type StoreApi } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nexport interface AuthState<ProviderData = unknown> {\n isAuthenticated: boolean;\n isPending: boolean;\n profile: UserProfile | null;\n providerData: ProviderData | null;\n setAuthenticationPending: () => void;\n setLoggedOut: () => void;\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) => void;\n}\n\nexport type StoreWithPersist<T> = Mutate<\n StoreApi<T>,\n [[\"zustand/persist\", unknown]]\n>;\n\nconst withStorageDOMEvents = <T>(store: StoreWithPersist<T>) => {\n const storageEventCallback = (e: StorageEvent) => {\n if (e.key === store.persist.getOptions().name && e.newValue) {\n void store.persist.rehydrate();\n }\n };\n\n window.addEventListener(\"storage\", storageEventCallback);\n\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n};\n\nexport const useAuthState = create<AuthState>()(\n persist(\n (set) => ({\n isAuthenticated: false,\n isPending: true,\n profile: null,\n providerData: null,\n setAuthenticationPending: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedOut: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) =>\n set(() => ({\n isAuthenticated: true,\n isPending: false,\n profile,\n providerData,\n })),\n }),\n {\n merge: (persistedState, currentState) => {\n return {\n ...currentState,\n isPending: false,\n ...(typeof persistedState === \"object\" ? persistedState : {}),\n };\n },\n name: \"auth-state\",\n storage: createJSONStorage(() => localStorage),\n },\n ),\n);\n\nif (typeof window !== \"undefined\") {\n withStorageDOMEvents(useAuthState);\n}\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n","import { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport type UseAuthReturn = ReturnType<typeof useAuth>;\n\nexport const useAuth = () => {\n const { authentication } = useZudoku();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n ...authState,\n\n login: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signIn({\n redirectTo: window.location.href,\n });\n },\n\n logout: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signOut();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n\n signup: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n await authentication.signUp({\n redirectTo: window.location.href,\n });\n },\n };\n};\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","createJSONStorage","getStorage","options","storage","name","_a","parse","str2","str","newValue","toThenable","fn","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","config","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","e","newOptions","persist","withStorageDOMEvents","store","storageEventCallback","useAuthState","profile","providerData","useAuth","authentication","useZudoku","authState","isAuthEnabled"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"hook-bv3iuX7X.js","sources":["../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/react.mjs","../../../node_modules/.pnpm/zustand@5.0.6_@types+react@19.1.8_react@19.1.0_use-sync-external-store@1.5.0_react@19.1.0_/node_modules/zustand/esm/middleware.mjs","../src/lib/authentication/state.ts","../src/lib/authentication/hook.ts"],"sourcesContent":["const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\n\nexport { createStore };\n","import React from 'react';\nimport { createStore } from 'zustand/vanilla';\n\nconst identity = (arg) => arg;\nfunction useStore(api, selector = identity) {\n const slice = React.useSyncExternalStore(\n api.subscribe,\n () => selector(api.getState()),\n () => selector(api.getInitialState())\n );\n React.useDebugValue(slice);\n return slice;\n}\nconst createImpl = (createState) => {\n const api = createStore(createState);\n const useBoundStore = (selector) => useStore(api, selector);\n Object.assign(useBoundStore, api);\n return useBoundStore;\n};\nconst create = (createState) => createState ? createImpl(createState) : createImpl;\n\nexport { create, useStore };\n","const reduxImpl = (reducer, initial) => (set, _get, api) => {\n api.dispatch = (action) => {\n set((state) => reducer(state, action), false, action);\n return action;\n };\n api.dispatchFromDevtools = true;\n return { dispatch: (...args) => api.dispatch(...args), ...initial };\n};\nconst redux = reduxImpl;\n\nconst trackedConnections = /* @__PURE__ */ new Map();\nconst getTrackedConnectionState = (name) => {\n const api = trackedConnections.get(name);\n if (!api) return {};\n return Object.fromEntries(\n Object.entries(api.stores).map(([key, api2]) => [key, api2.getState()])\n );\n};\nconst extractConnectionInformation = (store, extensionConnector, options) => {\n if (store === void 0) {\n return {\n type: \"untracked\",\n connection: extensionConnector.connect(options)\n };\n }\n const existingConnection = trackedConnections.get(options.name);\n if (existingConnection) {\n return { type: \"tracked\", store, ...existingConnection };\n }\n const newConnection = {\n connection: extensionConnector.connect(options),\n stores: {}\n };\n trackedConnections.set(options.name, newConnection);\n return { type: \"tracked\", store, ...newConnection };\n};\nconst removeStoreFromTrackedConnections = (name, store) => {\n if (store === void 0) return;\n const connectionInfo = trackedConnections.get(name);\n if (!connectionInfo) return;\n delete connectionInfo.stores[store];\n if (Object.keys(connectionInfo.stores).length === 0) {\n trackedConnections.delete(name);\n }\n};\nconst findCallerName = (stack) => {\n var _a, _b;\n if (!stack) return void 0;\n const traceLines = stack.split(\"\\n\");\n const apiSetStateLineIndex = traceLines.findIndex(\n (traceLine) => traceLine.includes(\"api.setState\")\n );\n if (apiSetStateLineIndex < 0) return void 0;\n const callerLine = ((_a = traceLines[apiSetStateLineIndex + 1]) == null ? void 0 : _a.trim()) || \"\";\n return (_b = /.+ (.+) .+/.exec(callerLine)) == null ? void 0 : _b[1];\n};\nconst devtoolsImpl = (fn, devtoolsOptions = {}) => (set, get, api) => {\n const { enabled, anonymousActionType, store, ...options } = devtoolsOptions;\n let extensionConnector;\n try {\n extensionConnector = (enabled != null ? enabled : (import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") && window.__REDUX_DEVTOOLS_EXTENSION__;\n } catch (e) {\n }\n if (!extensionConnector) {\n return fn(set, get, api);\n }\n const { connection, ...connectionInformation } = extractConnectionInformation(store, extensionConnector, options);\n let isRecording = true;\n api.setState = (state, replace, nameOrAction) => {\n const r = set(state, replace);\n if (!isRecording) return r;\n const action = nameOrAction === void 0 ? {\n type: anonymousActionType || findCallerName(new Error().stack) || \"anonymous\"\n } : typeof nameOrAction === \"string\" ? { type: nameOrAction } : nameOrAction;\n if (store === void 0) {\n connection == null ? void 0 : connection.send(action, get());\n return r;\n }\n connection == null ? void 0 : connection.send(\n {\n ...action,\n type: `${store}/${action.type}`\n },\n {\n ...getTrackedConnectionState(options.name),\n [store]: api.getState()\n }\n );\n return r;\n };\n api.devtools = {\n cleanup: () => {\n if (connection && typeof connection.unsubscribe === \"function\") {\n connection.unsubscribe();\n }\n removeStoreFromTrackedConnections(options.name, store);\n }\n };\n const setStateFromDevtools = (...a) => {\n const originalIsRecording = isRecording;\n isRecording = false;\n set(...a);\n isRecording = originalIsRecording;\n };\n const initialState = fn(api.setState, get, api);\n if (connectionInformation.type === \"untracked\") {\n connection == null ? void 0 : connection.init(initialState);\n } else {\n connectionInformation.stores[connectionInformation.store] = api;\n connection == null ? void 0 : connection.init(\n Object.fromEntries(\n Object.entries(connectionInformation.stores).map(([key, store2]) => [\n key,\n key === connectionInformation.store ? initialState : store2.getState()\n ])\n )\n );\n }\n if (api.dispatchFromDevtools && typeof api.dispatch === \"function\") {\n let didWarnAboutReservedActionType = false;\n const originalDispatch = api.dispatch;\n api.dispatch = (...args) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && args[0].type === \"__setState\" && !didWarnAboutReservedActionType) {\n console.warn(\n '[zustand devtools middleware] \"__setState\" action type is reserved to set state from the devtools. Avoid using it.'\n );\n didWarnAboutReservedActionType = true;\n }\n originalDispatch(...args);\n };\n }\n connection.subscribe((message) => {\n var _a;\n switch (message.type) {\n case \"ACTION\":\n if (typeof message.payload !== \"string\") {\n console.error(\n \"[zustand devtools middleware] Unsupported action format\"\n );\n return;\n }\n return parseJsonThen(\n message.payload,\n (action) => {\n if (action.type === \"__setState\") {\n if (store === void 0) {\n setStateFromDevtools(action.state);\n return;\n }\n if (Object.keys(action.state).length !== 1) {\n console.error(\n `\n [zustand devtools middleware] Unsupported __setState action format.\n When using 'store' option in devtools(), the 'state' should have only one key, which is a value of 'store' that was passed in devtools(),\n and value of this only key should be a state object. Example: { \"type\": \"__setState\", \"state\": { \"abc123Store\": { \"foo\": \"bar\" } } }\n `\n );\n }\n const stateFromDevtools = action.state[store];\n if (stateFromDevtools === void 0 || stateFromDevtools === null) {\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(stateFromDevtools)) {\n setStateFromDevtools(stateFromDevtools);\n }\n return;\n }\n if (!api.dispatchFromDevtools) return;\n if (typeof api.dispatch !== \"function\") return;\n api.dispatch(action);\n }\n );\n case \"DISPATCH\":\n switch (message.payload.type) {\n case \"RESET\":\n setStateFromDevtools(initialState);\n if (store === void 0) {\n return connection == null ? void 0 : connection.init(api.getState());\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"COMMIT\":\n if (store === void 0) {\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n return connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n case \"ROLLBACK\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n connection == null ? void 0 : connection.init(api.getState());\n return;\n }\n setStateFromDevtools(state[store]);\n connection == null ? void 0 : connection.init(getTrackedConnectionState(options.name));\n });\n case \"JUMP_TO_STATE\":\n case \"JUMP_TO_ACTION\":\n return parseJsonThen(message.state, (state) => {\n if (store === void 0) {\n setStateFromDevtools(state);\n return;\n }\n if (JSON.stringify(api.getState()) !== JSON.stringify(state[store])) {\n setStateFromDevtools(state[store]);\n }\n });\n case \"IMPORT_STATE\": {\n const { nextLiftedState } = message.payload;\n const lastComputedState = (_a = nextLiftedState.computedStates.slice(-1)[0]) == null ? void 0 : _a.state;\n if (!lastComputedState) return;\n if (store === void 0) {\n setStateFromDevtools(lastComputedState);\n } else {\n setStateFromDevtools(lastComputedState[store]);\n }\n connection == null ? void 0 : connection.send(\n null,\n // FIXME no-any\n nextLiftedState\n );\n return;\n }\n case \"PAUSE_RECORDING\":\n return isRecording = !isRecording;\n }\n return;\n }\n });\n return initialState;\n};\nconst devtools = devtoolsImpl;\nconst parseJsonThen = (stringified, fn) => {\n let parsed;\n try {\n parsed = JSON.parse(stringified);\n } catch (e) {\n console.error(\n \"[zustand devtools middleware] Could not parse the received json\",\n e\n );\n }\n if (parsed !== void 0) fn(parsed);\n};\n\nconst subscribeWithSelectorImpl = (fn) => (set, get, api) => {\n const origSubscribe = api.subscribe;\n api.subscribe = (selector, optListener, options) => {\n let listener = selector;\n if (optListener) {\n const equalityFn = (options == null ? void 0 : options.equalityFn) || Object.is;\n let currentSlice = selector(api.getState());\n listener = (state) => {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n optListener(currentSlice = nextSlice, previousSlice);\n }\n };\n if (options == null ? void 0 : options.fireImmediately) {\n optListener(currentSlice, currentSlice);\n }\n }\n return origSubscribe(listener);\n };\n const initialState = fn(set, get, api);\n return initialState;\n};\nconst subscribeWithSelector = subscribeWithSelectorImpl;\n\nfunction combine(initialState, create) {\n return (...args) => Object.assign({}, initialState, create(...args));\n}\n\nfunction createJSONStorage(getStorage, options) {\n let storage;\n try {\n storage = getStorage();\n } catch (e) {\n return;\n }\n const persistStorage = {\n getItem: (name) => {\n var _a;\n const parse = (str2) => {\n if (str2 === null) {\n return null;\n }\n return JSON.parse(str2, options == null ? void 0 : options.reviver);\n };\n const str = (_a = storage.getItem(name)) != null ? _a : null;\n if (str instanceof Promise) {\n return str.then(parse);\n }\n return parse(str);\n },\n setItem: (name, newValue) => storage.setItem(name, JSON.stringify(newValue, options == null ? void 0 : options.replacer)),\n removeItem: (name) => storage.removeItem(name)\n };\n return persistStorage;\n}\nconst toThenable = (fn) => (input) => {\n try {\n const result = fn(input);\n if (result instanceof Promise) {\n return result;\n }\n return {\n then(onFulfilled) {\n return toThenable(onFulfilled)(result);\n },\n catch(_onRejected) {\n return this;\n }\n };\n } catch (e) {\n return {\n then(_onFulfilled) {\n return this;\n },\n catch(onRejected) {\n return toThenable(onRejected)(e);\n }\n };\n }\n};\nconst persistImpl = (config, baseOptions) => (set, get, api) => {\n let options = {\n storage: createJSONStorage(() => localStorage),\n partialize: (state) => state,\n version: 0,\n merge: (persistedState, currentState) => ({\n ...currentState,\n ...persistedState\n }),\n ...baseOptions\n };\n let hasHydrated = false;\n const hydrationListeners = /* @__PURE__ */ new Set();\n const finishHydrationListeners = /* @__PURE__ */ new Set();\n let storage = options.storage;\n if (!storage) {\n return config(\n (...args) => {\n console.warn(\n `[zustand persist middleware] Unable to update item '${options.name}', the given storage is currently unavailable.`\n );\n set(...args);\n },\n get,\n api\n );\n }\n const setItem = () => {\n const state = options.partialize({ ...get() });\n return storage.setItem(options.name, {\n state,\n version: options.version\n });\n };\n const savedSetState = api.setState;\n api.setState = (state, replace) => {\n savedSetState(state, replace);\n void setItem();\n };\n const configResult = config(\n (...args) => {\n set(...args);\n void setItem();\n },\n get,\n api\n );\n api.getInitialState = () => configResult;\n let stateFromStorage;\n const hydrate = () => {\n var _a, _b;\n if (!storage) return;\n hasHydrated = false;\n hydrationListeners.forEach((cb) => {\n var _a2;\n return cb((_a2 = get()) != null ? _a2 : configResult);\n });\n const postRehydrationCallback = ((_b = options.onRehydrateStorage) == null ? void 0 : _b.call(options, (_a = get()) != null ? _a : configResult)) || void 0;\n return toThenable(storage.getItem.bind(storage))(options.name).then((deserializedStorageValue) => {\n if (deserializedStorageValue) {\n if (typeof deserializedStorageValue.version === \"number\" && deserializedStorageValue.version !== options.version) {\n if (options.migrate) {\n const migration = options.migrate(\n deserializedStorageValue.state,\n deserializedStorageValue.version\n );\n if (migration instanceof Promise) {\n return migration.then((result) => [true, result]);\n }\n return [true, migration];\n }\n console.error(\n `State loaded from storage couldn't be migrated since no migrate function was provided`\n );\n } else {\n return [false, deserializedStorageValue.state];\n }\n }\n return [false, void 0];\n }).then((migrationResult) => {\n var _a2;\n const [migrated, migratedState] = migrationResult;\n stateFromStorage = options.merge(\n migratedState,\n (_a2 = get()) != null ? _a2 : configResult\n );\n set(stateFromStorage, true);\n if (migrated) {\n return setItem();\n }\n }).then(() => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(stateFromStorage, void 0);\n stateFromStorage = get();\n hasHydrated = true;\n finishHydrationListeners.forEach((cb) => cb(stateFromStorage));\n }).catch((e) => {\n postRehydrationCallback == null ? void 0 : postRehydrationCallback(void 0, e);\n });\n };\n api.persist = {\n setOptions: (newOptions) => {\n options = {\n ...options,\n ...newOptions\n };\n if (newOptions.storage) {\n storage = newOptions.storage;\n }\n },\n clearStorage: () => {\n storage == null ? void 0 : storage.removeItem(options.name);\n },\n getOptions: () => options,\n rehydrate: () => hydrate(),\n hasHydrated: () => hasHydrated,\n onHydrate: (cb) => {\n hydrationListeners.add(cb);\n return () => {\n hydrationListeners.delete(cb);\n };\n },\n onFinishHydration: (cb) => {\n finishHydrationListeners.add(cb);\n return () => {\n finishHydrationListeners.delete(cb);\n };\n }\n };\n if (!options.skipHydration) {\n hydrate();\n }\n return stateFromStorage || configResult;\n};\nconst persist = persistImpl;\n\nexport { combine, createJSONStorage, devtools, persist, redux, subscribeWithSelector };\n","import { create, type Mutate, type StoreApi } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nexport interface AuthState<ProviderData = unknown> {\n isAuthenticated: boolean;\n isPending: boolean;\n profile: UserProfile | null;\n providerData: ProviderData | null;\n setAuthenticationPending: () => void;\n setLoggedOut: () => void;\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) => void;\n}\n\nexport type StoreWithPersist<T> = Mutate<\n StoreApi<T>,\n [[\"zustand/persist\", unknown]]\n>;\n\nconst withStorageDOMEvents = <T>(store: StoreWithPersist<T>) => {\n const storageEventCallback = (e: StorageEvent) => {\n if (e.key === store.persist.getOptions().name && e.newValue) {\n void store.persist.rehydrate();\n }\n };\n\n window.addEventListener(\"storage\", storageEventCallback);\n\n return () => {\n window.removeEventListener(\"storage\", storageEventCallback);\n };\n};\n\nexport const useAuthState = create<AuthState>()(\n persist(\n (set) => ({\n isAuthenticated: false,\n isPending: true,\n profile: null,\n providerData: null,\n setAuthenticationPending: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedOut: () =>\n set(() => ({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n })),\n setLoggedIn: ({\n profile,\n providerData,\n }: {\n profile: UserProfile;\n providerData: unknown;\n }) =>\n set(() => ({\n isAuthenticated: true,\n isPending: false,\n profile,\n providerData,\n })),\n }),\n {\n merge: (persistedState, currentState) => {\n return {\n ...currentState,\n isPending: false,\n ...(typeof persistedState === \"object\" ? persistedState : {}),\n };\n },\n name: \"auth-state\",\n storage: createJSONStorage(() => localStorage),\n },\n ),\n);\n\nif (typeof window !== \"undefined\") {\n withStorageDOMEvents(useAuthState);\n}\n\nexport interface UserProfile {\n sub: string;\n email: string | undefined;\n emailVerified: boolean;\n name: string | undefined;\n pictureUrl: string | undefined;\n [key: string]: string | boolean | undefined;\n}\n","import { useZudoku } from \"../components/context/ZudokuContext.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport type UseAuthReturn = ReturnType<typeof useAuth>;\n\nexport const useAuth = () => {\n const { authentication } = useZudoku();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n ...authState,\n\n login: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signIn({\n redirectTo: window.location.href,\n });\n },\n\n logout: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n // TODO: Should handle errors/state\n await authentication.signOut();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n\n signup: async () => {\n if (!isAuthEnabled) {\n throw new Error(\"Authentication is not enabled.\");\n }\n await authentication.signUp({\n redirectTo: window.location.href,\n });\n },\n };\n};\n"],"names":["createStoreImpl","createState","state","listeners","setState","partial","replace","nextState","previousState","listener","getState","api","initialState","createStore","identity","arg","useStore","selector","slice","React","createImpl","useBoundStore","create","createJSONStorage","getStorage","options","storage","name","_a","parse","str2","str","newValue","toThenable","fn","input","result","onFulfilled","_onRejected","_onFulfilled","onRejected","persistImpl","config","baseOptions","set","get","persistedState","currentState","hasHydrated","hydrationListeners","finishHydrationListeners","args","setItem","savedSetState","configResult","stateFromStorage","hydrate","_b","cb","_a2","postRehydrationCallback","deserializedStorageValue","migration","migrationResult","migrated","migratedState","e","newOptions","persist","withStorageDOMEvents","store","storageEventCallback","useAuthState","profile","providerData","useAuth","authentication","useZudoku","authState","isAuthEnabled"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import { j as n } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { ChevronUpIcon as yn, ChevronRightIcon as vn, CheckIcon as ft, DotIcon as bn, PlusCircleIcon as he, FileInput as jn, Check as Cn, TableOfContentsIcon as wn, LockIcon as Nn, CircleAlertIcon as Sn, XIcon as gt, Circle as Tn, Unlink2Icon as An, CornerDownRightIcon as On, CornerDownLeftIcon as Pn, DownloadIcon as Rn, UnplugIcon as Ln, SendIcon as $n, CopyIcon as En, IdCardLanyardIcon as In, ShapesIcon as kn, LogInIcon as Dn, CirclePlayIcon as zn } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import { c as Le, p as $e, b as xt, a as Un } from "./hook-
|
|
3
|
+
import { aq as Fn, aU as qn, aM as Vn, e as Bn, ai as _n, an as st } from "./chunk-QMGIS6GS-DqecZ6nq.js";
|
|
4
|
+
import { c as Le, p as $e, b as xt, a as Un } from "./hook-bv3iuX7X.js";
|
|
5
5
|
import { Button as ne } from "./ui/Button.js";
|
|
6
|
-
import {
|
|
6
|
+
import { d as Mn, e as Gn, I as Hn, j as I, b as Qn } from "./ZudokuContext-BuJD7yIX.js";
|
|
7
7
|
import { Z as Jn, i as Wn } from "./invariant-Bm-FVUQE.js";
|
|
8
8
|
import * as A from "react";
|
|
9
9
|
import { createContext as yt, use as Xn, useRef as R, useEffect as z, useMemo as vt, useState as k, useCallback as bt, Fragment as K, useLayoutEffect as Zn, useTransition as Yn, useContext as Kn } from "react";
|
|
10
10
|
import { VisuallyHidden as es } from "@radix-ui/react-visually-hidden";
|
|
11
|
-
import { D as Ee, a as Ie,
|
|
12
|
-
import { S as ns,
|
|
13
|
-
import { S as wt, c as Nt, d as St, e as Tt, g as le, A as rs, a as as, b as os, u as is } from "./Select-
|
|
11
|
+
import { D as Ee, a as Ie, c as ke, d as jt, e as Ct, g as ts } from "./Dialog-BrIjMmUK.js";
|
|
12
|
+
import { S as ns, b as ss } from "./index-DzO-Qh6S.js";
|
|
13
|
+
import { S as wt, c as Nt, d as St, e as Tt, g as le, A as rs, a as as, b as os, u as is } from "./Select-C3efYI1n.js";
|
|
14
14
|
import { u as ae, b as De, C as F, a as cs, F as ls } from "./index.esm-CdzlRw50.js";
|
|
15
15
|
import { B as E } from "./Button-B3o-2Xdf.js";
|
|
16
16
|
import * as ze from "@radix-ui/react-collapsible";
|
|
17
|
-
import {
|
|
17
|
+
import { g as rt, h as at, i as ot, j as ds } from "./Slot-DOtTvoyj.js";
|
|
18
18
|
import { c as C } from "./cn-dYga0KKN.js";
|
|
19
|
-
import { u as us } from "./CodeBlock-
|
|
20
|
-
import { u as ms } from "./
|
|
19
|
+
import { u as us } from "./CodeBlock-yJjjRwj-.js";
|
|
20
|
+
import { u as ms } from "./useLatest-hmRS46UF.js";
|
|
21
21
|
import * as w from "@radix-ui/react-dropdown-menu";
|
|
22
22
|
import * as Oe from "@radix-ui/react-checkbox";
|
|
23
23
|
import * as de from "@radix-ui/react-popover";
|
|
24
24
|
import { PopoverAnchor as ps } from "@radix-ui/react-popover";
|
|
25
25
|
import { P as hs } from "./index-CrcNWbel.js";
|
|
26
|
-
import { f as fs, g as gs, C as xs, b as ys } from "./Command-
|
|
26
|
+
import { f as fs, g as gs, C as xs, b as ys } from "./Command-CDn17s8X.js";
|
|
27
27
|
import { Input as ue } from "./ui/Input.js";
|
|
28
28
|
import { Slot as vs } from "@radix-ui/react-slot";
|
|
29
29
|
import { C as bs } from "./Card-CMDQUPM4.js";
|
|
30
30
|
import * as At from "@radix-ui/react-label";
|
|
31
31
|
import { c as js } from "./index-DI5SPFK9.js";
|
|
32
32
|
import * as se from "@radix-ui/react-radio-group";
|
|
33
|
-
import { z as Cs } from "./useExposedProps-
|
|
34
|
-
import { h as ws } from "./SyntaxHighlight-
|
|
33
|
+
import { z as Cs } from "./useExposedProps-BH9aq4MD.js";
|
|
34
|
+
import { h as ws } from "./SyntaxHighlight-GR0eix_L.js";
|
|
35
35
|
let je;
|
|
36
36
|
const Ns = (e) => {
|
|
37
37
|
if (e.errors?.[0])
|
|
@@ -43,7 +43,7 @@ class Ss {
|
|
|
43
43
|
constructor(t) {
|
|
44
44
|
this.config = t;
|
|
45
45
|
}
|
|
46
|
-
#e = async () => (je || (je = import("./createServer-
|
|
46
|
+
#e = async () => (je || (je = import("./createServer-DjgpuLne.js").then(
|
|
47
47
|
(t) => t.createServer(this.config)
|
|
48
48
|
)), je);
|
|
49
49
|
#t = async (t) => this.config.server ? fetch(this.config.server, t) : (await this.#e()).fetch("http://localhost/graphql", t);
|
|
@@ -3091,7 +3091,7 @@ const Zr = (e) => Object.entries({
|
|
|
3091
3091
|
}, ht = (e) => ({
|
|
3092
3092
|
path: e.routePath,
|
|
3093
3093
|
async lazy() {
|
|
3094
|
-
const { OasProvider: t } = await import("./OasProvider-
|
|
3094
|
+
const { OasProvider: t } = await import("./OasProvider-CA_lpILt.js");
|
|
3095
3095
|
return {
|
|
3096
3096
|
element: /* @__PURE__ */ n.jsx(
|
|
3097
3097
|
t,
|
|
@@ -3112,7 +3112,7 @@ const Zr = (e) => Object.entries({
|
|
|
3112
3112
|
}) => ({
|
|
3113
3113
|
path: e,
|
|
3114
3114
|
async lazy() {
|
|
3115
|
-
const { OperationList: a } = await import("./OperationList-
|
|
3115
|
+
const { OperationList: a } = await import("./OperationList-C-TObVw6.js");
|
|
3116
3116
|
return { element: /* @__PURE__ */ n.jsx(a, { tag: t, untagged: s }) };
|
|
3117
3117
|
}
|
|
3118
3118
|
}), la = ({
|
|
@@ -3134,7 +3134,7 @@ const Zr = (e) => Object.entries({
|
|
|
3134
3134
|
}, da = ({ path: e }) => ({
|
|
3135
3135
|
path: e,
|
|
3136
3136
|
async lazy() {
|
|
3137
|
-
const { OperationList: t } = await import("./OperationList-
|
|
3137
|
+
const { OperationList: t } = await import("./OperationList-C-TObVw6.js");
|
|
3138
3138
|
return {
|
|
3139
3139
|
element: /* @__PURE__ */ n.jsx(
|
|
3140
3140
|
la,
|
|
@@ -3155,7 +3155,7 @@ const Zr = (e) => Object.entries({
|
|
|
3155
3155
|
{
|
|
3156
3156
|
path: I(e, "~schemas"),
|
|
3157
3157
|
lazy: async () => {
|
|
3158
|
-
const { SchemaList: t } = await import("./SchemaList-
|
|
3158
|
+
const { SchemaList: t } = await import("./SchemaList-BeYWvBC7.js");
|
|
3159
3159
|
return { element: /* @__PURE__ */ n.jsx(t, {}) };
|
|
3160
3160
|
}
|
|
3161
3161
|
}
|
|
@@ -3388,4 +3388,4 @@ export {
|
|
|
3388
3388
|
nn as y,
|
|
3389
3389
|
Ma as z
|
|
3390
3390
|
};
|
|
3391
|
-
//# sourceMappingURL=index-
|
|
3391
|
+
//# sourceMappingURL=index-CvTWnHZF.js.map
|