zudoku 0.3.0-dev.34 → 0.3.0-dev.36

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 (78) hide show
  1. package/dist/app/entry.client.js +2 -1
  2. package/dist/app/entry.client.js.map +1 -1
  3. package/dist/app/entry.server.js +10 -2
  4. package/dist/app/entry.server.js.map +1 -1
  5. package/dist/app/main.js +1 -3
  6. package/dist/app/main.js.map +1 -1
  7. package/dist/lib/components/DevPortal.js +9 -3
  8. package/dist/lib/components/DevPortal.js.map +1 -1
  9. package/dist/lib/components/Layout.js +4 -1
  10. package/dist/lib/components/Layout.js.map +1 -1
  11. package/dist/lib/components/index.d.ts +5 -0
  12. package/dist/lib/components/index.js +4 -0
  13. package/dist/lib/components/index.js.map +1 -1
  14. package/dist/lib/plugins/markdown/MdxPage.js +3 -1
  15. package/dist/lib/plugins/markdown/MdxPage.js.map +1 -1
  16. package/dist/vite/config.js +1 -1
  17. package/dist/vite/config.js.map +1 -1
  18. package/dist/vite/plugin-component.js +1 -1
  19. package/dist/vite/plugin-component.js.map +1 -1
  20. package/lib/AnchorLink-Sx89bfCW.js +704 -0
  21. package/lib/AnchorLink-Sx89bfCW.js.map +1 -0
  22. package/lib/{DevPortalProvider-BlxLX6GG.js → DevPortalProvider-Demv4Ngx.js} +250 -230
  23. package/lib/DevPortalProvider-Demv4Ngx.js.map +1 -0
  24. package/lib/Markdown-DMEnjeMH.js +14499 -0
  25. package/lib/Markdown-DMEnjeMH.js.map +1 -0
  26. package/lib/{MdxPage-BRKQDcVW.js → MdxPage-s9RlKFtt.js} +102 -108
  27. package/lib/MdxPage-s9RlKFtt.js.map +1 -0
  28. package/lib/{OperationList-DfkWNe8Y.js → OperationList-9NIdTqS0.js} +1692 -1862
  29. package/lib/OperationList-9NIdTqS0.js.map +1 -0
  30. package/lib/{Route-Bf1_D_vC.js → Route-BqfQoDR2.js} +2 -2
  31. package/lib/{Route-Bf1_D_vC.js.map → Route-BqfQoDR2.js.map} +1 -1
  32. package/lib/Select-CJamK_wp.js +4571 -0
  33. package/lib/Select-CJamK_wp.js.map +1 -0
  34. package/lib/Spinner-3YT-WUu5.js +182 -0
  35. package/lib/Spinner-3YT-WUu5.js.map +1 -0
  36. package/lib/hook-Cq3Jb1lX.js +77 -0
  37. package/lib/hook-Cq3Jb1lX.js.map +1 -0
  38. package/lib/index-BB2EBBgh.js +412 -0
  39. package/lib/index-BB2EBBgh.js.map +1 -0
  40. package/lib/{index-BjSy8IQO.js → index-DhKGMJM2.js} +19 -20
  41. package/lib/{index-BjSy8IQO.js.map → index-DhKGMJM2.js.map} +1 -1
  42. package/lib/{jsx-runtime-CM0TzjGp.js → jsx-runtime-Bt86M5tA.js} +5 -5
  43. package/lib/{jsx-runtime-CM0TzjGp.js.map → jsx-runtime-Bt86M5tA.js.map} +1 -1
  44. package/lib/util-CYBrkBUo.js +41 -0
  45. package/lib/util-CYBrkBUo.js.map +1 -0
  46. package/lib/zudoku.auth-openid.js +1 -1
  47. package/lib/zudoku.components.js +564 -286
  48. package/lib/zudoku.components.js.map +1 -1
  49. package/lib/zudoku.plugin-api-keys.js +99 -153
  50. package/lib/zudoku.plugin-api-keys.js.map +1 -1
  51. package/lib/zudoku.plugin-markdown.js +46 -2
  52. package/lib/zudoku.plugin-markdown.js.map +1 -1
  53. package/lib/zudoku.plugin-openapi.js +3 -3
  54. package/package.json +2 -1
  55. package/src/app/entry.client.tsx +4 -1
  56. package/src/app/entry.server.tsx +17 -2
  57. package/src/app/main.tsx +1 -3
  58. package/src/lib/components/DevPortal.tsx +15 -1
  59. package/src/lib/components/Layout.tsx +9 -0
  60. package/src/lib/components/index.ts +4 -0
  61. package/src/lib/plugins/markdown/MdxPage.tsx +6 -0
  62. package/lib/DevPortalProvider-BlxLX6GG.js.map +0 -1
  63. package/lib/Markdown-CL8KPvJN.js +0 -8620
  64. package/lib/Markdown-CL8KPvJN.js.map +0 -1
  65. package/lib/MdxComponents-Ev_hBHb2.js +0 -5885
  66. package/lib/MdxComponents-Ev_hBHb2.js.map +0 -1
  67. package/lib/MdxPage-BRKQDcVW.js.map +0 -1
  68. package/lib/OperationList-DfkWNe8Y.js.map +0 -1
  69. package/lib/Select-DSa3bN4t.js +0 -4770
  70. package/lib/Select-DSa3bN4t.js.map +0 -1
  71. package/lib/hook-CTmJ6CWq.js +0 -35
  72. package/lib/hook-CTmJ6CWq.js.map +0 -1
  73. package/lib/index-Brq2ztwd.js +0 -74
  74. package/lib/index-Brq2ztwd.js.map +0 -1
  75. package/lib/index-QzXzw_ra.js +0 -24
  76. package/lib/index-QzXzw_ra.js.map +0 -1
  77. package/lib/mutation-91kw0lHb.js +0 -208
  78. package/lib/mutation-91kw0lHb.js.map +0 -1
@@ -1,35 +0,0 @@
1
- import { j as s } from "./jsx-runtime-CM0TzjGp.js";
2
- import { u as i } from "./DevPortalProvider-BlxLX6GG.js";
3
- import { u as a } from "./state-Ds_OxRHP.js";
4
- function r({ error: t }) {
5
- const n = (t == null ? void 0 : t.message) ?? "Something went wrong", e = t == null ? void 0 : t.stack;
6
- return /* @__PURE__ */ s.jsx("div", { className: "flex h-screen max-h-screen min-h-full items-center justify-center bg-primary-background px-4 py-16 lg:px-8", children: /* @__PURE__ */ s.jsxs("div", { className: "mx-auto max-w-[85%] sm:max-w-[50%]", children: [
7
- /* @__PURE__ */ s.jsx("h1", { className: "text-4xl font-bold tracking-tight text-h1-text sm:text-5xl", children: "Something went wrong" }),
8
- /* @__PURE__ */ s.jsx("p", { className: "mt-5 text-h1-text", children: n }),
9
- e ? /* @__PURE__ */ s.jsx("pre", { className: "mt-5 max-h-[400px] w-full overflow-scroll rounded-md border border-input-border bg-input-background p-3 text-property-name-text text-red-700", children: e }) : null
10
- ] }) });
11
- }
12
- const u = () => {
13
- const { authentication: t } = i(), n = a(), e = typeof t < "u";
14
- return {
15
- isAuthEnabled: e,
16
- isPending: n.isPending,
17
- profile: n.profile,
18
- isAuthenticated: n.profile,
19
- login: async () => {
20
- if (!e)
21
- throw new Error("Authentication is not enabled.");
22
- await t.login();
23
- },
24
- logout: async () => {
25
- if (!e)
26
- throw new Error("Authentication is not enabled.");
27
- await t.logout(), window.location.href = "/";
28
- }
29
- };
30
- };
31
- export {
32
- r as E,
33
- u
34
- };
35
- //# sourceMappingURL=hook-CTmJ6CWq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hook-CTmJ6CWq.js","sources":["../src/lib/errors/ErrorAlert.tsx","../src/lib/authentication/hook.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function ErrorAlert({ error }: { error: any }) {\n const message = error?.message ?? \"Something went wrong\";\n const stack = error?.stack;\n\n return (\n <div className=\"flex h-screen max-h-screen min-h-full items-center justify-center bg-primary-background px-4 py-16 lg:px-8\">\n <div className=\"mx-auto max-w-[85%] sm:max-w-[50%]\">\n <h1 className=\"text-4xl font-bold tracking-tight text-h1-text sm:text-5xl\">\n Something went wrong\n </h1>\n <p className=\"mt-5 text-h1-text\">{message}</p>\n {stack ? (\n <pre className=\"mt-5 max-h-[400px] w-full overflow-scroll rounded-md border border-input-border bg-input-background p-3 text-property-name-text text-red-700\">\n {stack}\n </pre>\n ) : null}\n </div>\n </div>\n );\n}\n","import { useDevPortal } from \"../components/context/DevPortalProvider.js\";\nimport { useAuthState } from \"./state.js\";\n\nexport const useAuth = () => {\n const { authentication } = useDevPortal();\n const authState = useAuthState();\n const isAuthEnabled = typeof authentication !== \"undefined\";\n\n return {\n isAuthEnabled,\n isPending: authState.isPending,\n profile: authState.profile,\n isAuthenticated: authState.profile,\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.login();\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.logout();\n\n // Redirect to home\n window.location.href = \"/\";\n },\n };\n};\n"],"names":["ErrorAlert","error","message","stack","jsxs","jsx","useAuth","authentication","useDevPortal","authState","useAuthState","isAuthEnabled"],"mappings":";;;AACgB,SAAAA,EAAW,EAAE,OAAAC,KAAyB;AAC9C,QAAAC,KAAUD,KAAA,gBAAAA,EAAO,YAAW,wBAC5BE,IAAQF,KAAA,gBAAAA,EAAO;AAErB,+BACG,OAAI,EAAA,WAAU,8GACb,UAACG,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,IAACC,gBAAAA,EAAA,IAAA,MAAA,EAAG,WAAU,8DAA6D,UAE3E,wBAAA;AAAA,IACCA,gBAAAA,EAAA,IAAA,KAAA,EAAE,WAAU,qBAAqB,UAAQH,GAAA;AAAA,IACzCC,IACEE,gBAAAA,EAAAA,IAAA,OAAA,EAAI,WAAU,gJACZ,YACH,CAAA,IACE;AAAA,EAAA,EACN,CAAA,EACF,CAAA;AAEJ;ACjBO,MAAMC,IAAU,MAAM;AACrB,QAAA,EAAE,gBAAAC,MAAmBC,KACrBC,IAAYC,KACZC,IAAgB,OAAOJ,IAAmB;AAEzC,SAAA;AAAA,IACL,eAAAI;AAAA,IACA,WAAWF,EAAU;AAAA,IACrB,SAASA,EAAU;AAAA,IACnB,iBAAiBA,EAAU;AAAA,IAE3B,OAAO,YAAY;AACjB,UAAI,CAACE;AACG,cAAA,IAAI,MAAM,gCAAgC;AAGlD,YAAMJ,EAAe;IACvB;AAAA,IAEA,QAAQ,YAAY;AAClB,UAAI,CAACI;AACG,cAAA,IAAI,MAAM,gCAAgC;AAGlD,YAAMJ,EAAe,UAGrB,OAAO,SAAS,OAAO;AAAA,IACzB;AAAA,EAAA;AAEJ;"}
@@ -1,74 +0,0 @@
1
- import { j as u, N as d } from "./jsx-runtime-CM0TzjGp.js";
2
- import { v as g } from "./DevPortalProvider-BlxLX6GG.js";
3
- const x = (...t) => {
4
- const e = t.filter((n) => !!n).map((n) => n.replace(/(^\/+|\/+$)/g, "")).join("/");
5
- return e ? `/${e}` : "";
6
- }, l = (t, e, n, o = []) => {
7
- const r = p(t) ? x(n, t.path) : n, c = e(t, r, o);
8
- if (c !== void 0) return c;
9
- if ("children" in t && t.children) {
10
- const s = [...o, t];
11
- for (const i of t.children) {
12
- const a = l(
13
- i,
14
- e,
15
- r,
16
- s
17
- );
18
- if (a !== void 0) return a;
19
- }
20
- }
21
- }, v = (t, e) => {
22
- if (t.categories)
23
- for (const n of t.categories) {
24
- const o = l(n, e, t.path);
25
- if (o !== void 0) return o;
26
- }
27
- }, p = (t) => "path" in t, j = (t, e) => {
28
- const n = Object.entries(t).flatMap(
29
- ([r, c]) => {
30
- const s = r.match(/pages\/(.*).mdx?$/), i = s == null ? void 0 : s.at(1);
31
- if (!i) return [];
32
- const a = i.split("/");
33
- return {
34
- path: a.at(-1) === "index" ? a.slice(0, -1).join("/") : i,
35
- lazy: async () => {
36
- const { MdxPage: m } = await import("./MdxPage-BRKQDcVW.js"), { default: h, ...f } = await c();
37
- return {
38
- element: /* @__PURE__ */ u.jsx(
39
- m,
40
- {
41
- mdxComponent: h,
42
- ...f,
43
- defaultOptions: e
44
- }
45
- )
46
- };
47
- }
48
- };
49
- }
50
- ), o = Array.from(
51
- new Set(n.map((r) => r.path.split("/").at(0)))
52
- ).map((r) => ({
53
- path: `/${r}`,
54
- element: /* @__PURE__ */ u.jsx(P, {})
55
- }));
56
- return [...n, ...o];
57
- }, P = () => {
58
- const t = g();
59
- return t ? v(t, (e, n) => {
60
- if (!("children" in e || !p(e)))
61
- return /* @__PURE__ */ u.jsx(d, { to: n, replace: !0 });
62
- }) : null;
63
- }, $ = ({
64
- markdownFiles: t,
65
- defaultOptions: e
66
- }) => ({
67
- getRoutes: () => j(t, e)
68
- });
69
- export {
70
- p as i,
71
- $ as m,
72
- v as t
73
- };
74
- //# sourceMappingURL=index-Brq2ztwd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Brq2ztwd.js","sources":["../src/lib/util/joinPath.tsx","../src/lib/util/traverseNavigation.ts","../src/lib/components/navigation/util.ts","../src/lib/plugins/markdown/generateRoutes.tsx","../src/lib/plugins/markdown/index.tsx"],"sourcesContent":["export const joinPath = (\n ...parts: Array<string | null | undefined | boolean>\n) => {\n const cleanPath = parts\n .filter((part): part is string => Boolean(part))\n .map((part) => part.replace(/(^\\/+|\\/+$)/g, \"\")) // Strip leading and trailing slashes\n .join(\"/\");\n\n return cleanPath ? `/${cleanPath}` : \"\";\n};\n","import { isPathItem } from \"../components/navigation/util.js\";\nimport type {\n NavigationCategory,\n NavigationCategoryItem,\n NavigationItem,\n} from \"../core/DevPortalContext.js\";\nimport { joinPath } from \"./joinPath.js\";\n\nexport type NavigationNode = NavigationCategoryItem | NavigationCategory;\ntype Callback<T> = (\n node: NavigationNode,\n fullPath: string,\n parentNodes: NavigationNode[],\n) => T | undefined;\n\nexport const traverseNavigationNode = <T>(\n node: NavigationNode,\n callback: Callback<T>,\n parentPath: string,\n parentNodes: NavigationNode[] = [],\n): T | undefined => {\n const newPath = isPathItem(node)\n ? joinPath(parentPath, node.path)\n : parentPath;\n const result = callback(node, newPath, parentNodes);\n\n if (result !== undefined) return result;\n\n if (\"children\" in node && node.children) {\n const newParentNodes = [...parentNodes, node];\n for (const child of node.children) {\n const childResult = traverseNavigationNode(\n child,\n callback,\n newPath,\n newParentNodes,\n );\n if (childResult !== undefined) return childResult;\n }\n }\n return undefined;\n};\n\nexport const traverseNavigation = <T>(\n navItem: NavigationItem,\n callback: Callback<T>,\n): T | undefined => {\n if (navItem.categories) {\n for (const category of navItem.categories) {\n const result = traverseNavigationNode(category, callback, navItem.path);\n if (result !== undefined) return result;\n }\n }\n return undefined;\n};\n","import { matchPath } from \"react-router-dom\";\nimport type {\n HrefNavigationCategoryItem,\n PathNavigationCategoryItem,\n} from \"../../core/DevPortalContext.js\";\nimport {\n traverseNavigationNode,\n type NavigationNode,\n} from \"../../util/traverseNavigation.js\";\n\nexport const isPathItem = (\n item: NavigationNode,\n): item is PathNavigationCategoryItem => \"path\" in item;\n\nexport const isLinkItem = (\n item: NavigationNode,\n): item is HrefNavigationCategoryItem => \"href\" in item;\n\n/**\n * Recursively checks if the current item or any of its children are active.\n */\nexport const checkHasActiveItem = (\n item: NavigationNode,\n locationPath: string,\n basePath: string,\n) => {\n return Boolean(\n traverseNavigationNode(\n item,\n (node, fullPath) => {\n if (isPathItem(node) && matchPath(fullPath, locationPath)) {\n return true;\n }\n },\n basePath,\n ),\n );\n};\n","import { Navigate, type RouteObject } from \"react-router-dom\";\nimport { useTopNavigationItem } from \"../../components/context/DevPortalProvider.js\";\nimport { isPathItem } from \"../../components/navigation/util.js\";\nimport { traverseNavigation } from \"../../util/traverseNavigation.js\";\n\nimport {\n MarkdownPluginDefaultOptions,\n MarkdownPluginOptions,\n} from \"./index.js\";\n\nexport const generateRoutes = (\n markdownFiles: MarkdownPluginOptions[\"markdownFiles\"],\n defaultOptions?: MarkdownPluginDefaultOptions,\n): RouteObject[] => {\n const routes = Object.entries(markdownFiles).flatMap(\n ([file, importPromise]) => {\n // @todo we can pass in the folder name and then filter the markdown files based on that path\n const match = file.match(/pages\\/(.*).mdx?$/);\n const path = match?.at(1);\n\n if (!path) return [];\n\n const pathSegments = path.split(\"/\");\n const isIndexFile = pathSegments.at(-1) === \"index\";\n const routePath = isIndexFile\n ? pathSegments.slice(0, -1).join(\"/\")\n : path;\n\n return {\n path: routePath,\n lazy: async () => {\n const { MdxPage } = await import(\"./MdxPage.js\");\n const { default: Component, ...props } = await importPromise();\n return {\n element: (\n <MdxPage\n mdxComponent={Component}\n {...props}\n defaultOptions={defaultOptions}\n />\n ),\n };\n },\n } satisfies RouteObject;\n },\n );\n\n const rootRoutes: RouteObject[] = Array.from(\n new Set(routes.map((route) => route.path.split(\"/\").at(0))),\n ).map((dir) => ({\n path: `/${dir}`,\n element: <Redirect />,\n }));\n\n return [...routes, ...rootRoutes];\n};\n\nconst Redirect = () => {\n const navItem = useTopNavigationItem();\n\n if (!navItem) return null;\n\n return traverseNavigation(navItem, (node, fullPath) => {\n if (\"children\" in node || !isPathItem(node)) return;\n return <Navigate to={fullPath} replace />;\n });\n};\n","import type { Toc } from \"@stefanprobst/rehype-extract-toc\";\nimport type { MDXProps } from \"mdx/types.js\";\nimport type { DevPortalPlugin } from \"../../core/plugins.js\";\nimport { generateRoutes } from \"./generateRoutes.js\";\n\nexport type MarkdownPluginOptions = {\n markdownFiles: Record<string, () => Promise<MDXImport>>;\n defaultOptions?: MarkdownPluginDefaultOptions;\n};\nexport type MarkdownPluginDefaultOptions = Pick<\n Frontmatter,\n \"toc\" | \"disablePager\"\n>;\n\nexport type Frontmatter = {\n title?: string;\n description?: string;\n category?: string;\n toc?: boolean;\n disablePager?: boolean;\n};\n\nexport type MDXImport = {\n tableOfContents: Toc;\n frontmatter: Frontmatter;\n default: (props: MDXProps) => JSX.Element;\n};\n\nexport const markdownPlugin = ({\n markdownFiles,\n defaultOptions,\n}: MarkdownPluginOptions): DevPortalPlugin => ({\n getRoutes: () => generateRoutes(markdownFiles, defaultOptions),\n});\n"],"names":["joinPath","parts","cleanPath","part","traverseNavigationNode","node","callback","parentPath","parentNodes","newPath","isPathItem","result","newParentNodes","child","childResult","traverseNavigation","navItem","category","item","generateRoutes","markdownFiles","defaultOptions","routes","file","importPromise","match","path","pathSegments","MdxPage","Component","props","jsx","rootRoutes","route","dir","Redirect","useTopNavigationItem","fullPath","Navigate","markdownPlugin"],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import e from "react";
2
- const o = {}, u = e.createContext(o);
3
- function c(n) {
4
- const t = e.useContext(u);
5
- return e.useMemo(
6
- function() {
7
- return typeof n == "function" ? n(t) : { ...t, ...n };
8
- },
9
- [t, n]
10
- );
11
- }
12
- function a(n) {
13
- let t;
14
- return n.disableParentContext ? t = typeof n.components == "function" ? n.components(o) : n.components || o : t = c(n.components), e.createElement(
15
- u.Provider,
16
- { value: t },
17
- n.children
18
- );
19
- }
20
- export {
21
- a as M,
22
- c as u
23
- };
24
- //# sourceMappingURL=index-QzXzw_ra.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-QzXzw_ra.js","sources":["../../../node_modules/.pnpm/@mdx-js+react@3.0.1_@types+react@18.3.3_react@18.3.1/node_modules/@mdx-js/react/lib/index.js"],"sourcesContent":["/**\n * @typedef {import('mdx/types.js').MDXComponents} MDXComponents\n * @typedef {import('react').Component<{}, {}, unknown>} Component\n * @typedef {import('react').ReactNode} ReactNode\n */\n\n/**\n * @callback MergeComponents\n * Custom merge function.\n * @param {Readonly<MDXComponents>} currentComponents\n * Current components from the context.\n * @returns {MDXComponents}\n * Additional components.\n *\n * @typedef Props\n * Configuration for `MDXProvider`.\n * @property {ReactNode | null | undefined} [children]\n * Children (optional).\n * @property {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @property {boolean | null | undefined} [disableParentContext=false]\n * Turn off outer component context (default: `false`).\n */\n\nimport React from 'react'\n\n/** @type {Readonly<MDXComponents>} */\nconst emptyComponents = {}\n\nconst MDXContext = React.createContext(emptyComponents)\n\n/**\n * Get current components from the MDX Context.\n *\n * @param {Readonly<MDXComponents> | MergeComponents | null | undefined} [components]\n * Additional components to use or a function that creates them (optional).\n * @returns {MDXComponents}\n * Current components.\n */\nexport function useMDXComponents(components) {\n const contextComponents = React.useContext(MDXContext)\n\n // Memoize to avoid unnecessary top-level context changes\n return React.useMemo(\n function () {\n // Custom merge via a function prop\n if (typeof components === 'function') {\n return components(contextComponents)\n }\n\n return {...contextComponents, ...components}\n },\n [contextComponents, components]\n )\n}\n\n/**\n * Provider for MDX context.\n *\n * @param {Readonly<Props>} properties\n * Properties.\n * @returns {JSX.Element}\n * Element.\n * @satisfies {Component}\n */\nexport function MDXProvider(properties) {\n /** @type {Readonly<MDXComponents>} */\n let allComponents\n\n if (properties.disableParentContext) {\n allComponents =\n typeof properties.components === 'function'\n ? properties.components(emptyComponents)\n : properties.components || emptyComponents\n } else {\n allComponents = useMDXComponents(properties.components)\n }\n\n return React.createElement(\n MDXContext.Provider,\n {value: allComponents},\n properties.children\n )\n}\n"],"names":["emptyComponents","MDXContext","React","useMDXComponents","components","contextComponents","MDXProvider","properties","allComponents"],"mappings":";AA2BA,MAAMA,IAAkB,CAAE,GAEpBC,IAAaC,EAAM,cAAcF,CAAe;AAU/C,SAASG,EAAiBC,GAAY;AAC3C,QAAMC,IAAoBH,EAAM,WAAWD,CAAU;AAGrD,SAAOC,EAAM;AAAA,IACX,WAAY;AAEV,aAAI,OAAOE,KAAe,aACjBA,EAAWC,CAAiB,IAG9B,EAAC,GAAGA,GAAmB,GAAGD,EAAU;AAAA,IAC5C;AAAA,IACD,CAACC,GAAmBD,CAAU;AAAA,EAC/B;AACH;AAWO,SAASE,EAAYC,GAAY;AAEtC,MAAIC;AAEJ,SAAID,EAAW,uBACbC,IACE,OAAOD,EAAW,cAAe,aAC7BA,EAAW,WAAWP,CAAe,IACrCO,EAAW,cAAcP,IAE/BQ,IAAgBL,EAAiBI,EAAW,UAAU,GAGjDL,EAAM;AAAA,IACXD,EAAW;AAAA,IACX,EAAC,OAAOO,EAAa;AAAA,IACrBD,EAAW;AAAA,EACZ;AACH;","x_google_ignoreList":[0]}
@@ -1,208 +0,0 @@
1
- var N = (s) => {
2
- throw TypeError(s);
3
- };
4
- var y = (s, t, i) => t.has(s) || N("Cannot " + i);
5
- var e = (s, t, i) => (y(s, t, "read from private field"), i ? i.call(s) : t.get(s)), l = (s, t, i) => t.has(s) ? N("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, i), p = (s, t, i, n) => (y(s, t, "write to private field"), n ? n.call(s, i) : t.set(s, i), i), h = (s, t, i) => (y(s, t, "access private method"), i);
6
- import { R as U, A as q, n as z } from "./DevPortalProvider-BlxLX6GG.js";
7
- var r, a, d, u, c, j, K = (j = class extends U {
8
- constructor(t) {
9
- super();
10
- l(this, u);
11
- l(this, r);
12
- l(this, a);
13
- l(this, d);
14
- this.mutationId = t.mutationId, p(this, a, t.mutationCache), p(this, r, []), this.state = t.state || B(), this.setOptions(t.options), this.scheduleGc();
15
- }
16
- setOptions(t) {
17
- this.options = t, this.updateGcTime(this.options.gcTime);
18
- }
19
- get meta() {
20
- return this.options.meta;
21
- }
22
- addObserver(t) {
23
- e(this, r).includes(t) || (e(this, r).push(t), this.clearGcTimeout(), e(this, a).notify({
24
- type: "observerAdded",
25
- mutation: this,
26
- observer: t
27
- }));
28
- }
29
- removeObserver(t) {
30
- p(this, r, e(this, r).filter((i) => i !== t)), this.scheduleGc(), e(this, a).notify({
31
- type: "observerRemoved",
32
- mutation: this,
33
- observer: t
34
- });
35
- }
36
- optionalRemove() {
37
- e(this, r).length || (this.state.status === "pending" ? this.scheduleGc() : e(this, a).remove(this));
38
- }
39
- continue() {
40
- var t;
41
- return ((t = e(this, d)) == null ? void 0 : t.continue()) ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before
42
- this.execute(this.state.variables);
43
- }
44
- async execute(t) {
45
- var m, x, w, g, R, v, C, P, M, S, G, A, D, E, F, O, T, b, k, I;
46
- p(this, d, q({
47
- fn: () => this.options.mutationFn ? this.options.mutationFn(t) : Promise.reject(new Error("No mutationFn found")),
48
- onFail: (o, f) => {
49
- h(this, u, c).call(this, { type: "failed", failureCount: o, error: f });
50
- },
51
- onPause: () => {
52
- h(this, u, c).call(this, { type: "pause" });
53
- },
54
- onContinue: () => {
55
- h(this, u, c).call(this, { type: "continue" });
56
- },
57
- retry: this.options.retry ?? 0,
58
- retryDelay: this.options.retryDelay,
59
- networkMode: this.options.networkMode,
60
- canRun: () => e(this, a).canRun(this)
61
- }));
62
- const i = this.state.status === "pending", n = !e(this, d).canStart();
63
- try {
64
- if (!i) {
65
- h(this, u, c).call(this, { type: "pending", variables: t, isPaused: n }), await ((x = (m = e(this, a).config).onMutate) == null ? void 0 : x.call(
66
- m,
67
- t,
68
- this
69
- ));
70
- const f = await ((g = (w = this.options).onMutate) == null ? void 0 : g.call(w, t));
71
- f !== this.state.context && h(this, u, c).call(this, {
72
- type: "pending",
73
- context: f,
74
- variables: t,
75
- isPaused: n
76
- });
77
- }
78
- const o = await e(this, d).start();
79
- return await ((v = (R = e(this, a).config).onSuccess) == null ? void 0 : v.call(
80
- R,
81
- o,
82
- t,
83
- this.state.context,
84
- this
85
- )), await ((P = (C = this.options).onSuccess) == null ? void 0 : P.call(C, o, t, this.state.context)), await ((S = (M = e(this, a).config).onSettled) == null ? void 0 : S.call(
86
- M,
87
- o,
88
- null,
89
- this.state.variables,
90
- this.state.context,
91
- this
92
- )), await ((A = (G = this.options).onSettled) == null ? void 0 : A.call(G, o, null, t, this.state.context)), h(this, u, c).call(this, { type: "success", data: o }), o;
93
- } catch (o) {
94
- try {
95
- throw await ((E = (D = e(this, a).config).onError) == null ? void 0 : E.call(
96
- D,
97
- o,
98
- t,
99
- this.state.context,
100
- this
101
- )), await ((O = (F = this.options).onError) == null ? void 0 : O.call(
102
- F,
103
- o,
104
- t,
105
- this.state.context
106
- )), await ((b = (T = e(this, a).config).onSettled) == null ? void 0 : b.call(
107
- T,
108
- void 0,
109
- o,
110
- this.state.variables,
111
- this.state.context,
112
- this
113
- )), await ((I = (k = this.options).onSettled) == null ? void 0 : I.call(
114
- k,
115
- void 0,
116
- o,
117
- t,
118
- this.state.context
119
- )), o;
120
- } finally {
121
- h(this, u, c).call(this, { type: "error", error: o });
122
- }
123
- } finally {
124
- e(this, a).runNext(this);
125
- }
126
- }
127
- }, r = new WeakMap(), a = new WeakMap(), d = new WeakMap(), u = new WeakSet(), c = function(t) {
128
- const i = (n) => {
129
- switch (t.type) {
130
- case "failed":
131
- return {
132
- ...n,
133
- failureCount: t.failureCount,
134
- failureReason: t.error
135
- };
136
- case "pause":
137
- return {
138
- ...n,
139
- isPaused: !0
140
- };
141
- case "continue":
142
- return {
143
- ...n,
144
- isPaused: !1
145
- };
146
- case "pending":
147
- return {
148
- ...n,
149
- context: t.context,
150
- data: void 0,
151
- failureCount: 0,
152
- failureReason: null,
153
- error: null,
154
- isPaused: t.isPaused,
155
- status: "pending",
156
- variables: t.variables,
157
- submittedAt: Date.now()
158
- };
159
- case "success":
160
- return {
161
- ...n,
162
- data: t.data,
163
- failureCount: 0,
164
- failureReason: null,
165
- error: null,
166
- status: "success",
167
- isPaused: !1
168
- };
169
- case "error":
170
- return {
171
- ...n,
172
- data: void 0,
173
- error: t.error,
174
- failureCount: n.failureCount + 1,
175
- failureReason: t.error,
176
- isPaused: !1,
177
- status: "error"
178
- };
179
- }
180
- };
181
- this.state = i(this.state), z.batch(() => {
182
- e(this, r).forEach((n) => {
183
- n.onMutationUpdate(t);
184
- }), e(this, a).notify({
185
- mutation: this,
186
- type: "updated",
187
- action: t
188
- });
189
- });
190
- }, j);
191
- function B() {
192
- return {
193
- context: void 0,
194
- data: void 0,
195
- error: null,
196
- failureCount: 0,
197
- failureReason: null,
198
- isPaused: !1,
199
- status: "idle",
200
- variables: void 0,
201
- submittedAt: 0
202
- };
203
- }
204
- export {
205
- K as M,
206
- B as g
207
- };
208
- //# sourceMappingURL=mutation-91kw0lHb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mutation-91kw0lHb.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.50.1/node_modules/@tanstack/query-core/build/modern/mutation.js"],"sourcesContent":["// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue: () => {\n this.#dispatch({ type: \"continue\" });\n },\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (!restored) {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n await this.#mutationCache.config.onMutate?.(\n variables,\n this\n );\n const context = await this.options.onMutate?.(variables);\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this\n );\n await this.options.onSuccess?.(data, variables, this.state.context);\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(data, null, variables, this.state.context);\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this\n );\n await this.options.onError?.(\n error,\n variables,\n this.state.context\n );\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this\n );\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context\n );\n throw error;\n } finally {\n this.#dispatch({ type: \"error\", error });\n }\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map"],"names":["Mutation","_a","Removable","config","__privateAdd","_Mutation_instances","_observers","_mutationCache","_retryer","__privateSet","getDefaultState","options","observer","__privateGet","x","variables","createRetryer","failureCount","error","__privateMethod","dispatch_fn","restored","isPaused","_b","context","_d","_c","data","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_p","_o","_r","_q","_t","_s","action","reducer","state","notifyManager"],"mappings":"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","x_google_ignoreList":[0]}