@alepha/devtools 0.16.1 → 0.19.1
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/README.md +1 -5
- package/dist/index.browser.js +224 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +349 -321
- package/dist/index.js +293 -186
- package/dist/index.js.map +1 -1
- package/package.json +30 -23
- package/src/assets.ts +6 -0
- package/src/{api/entities → entities}/logs.ts +2 -2
- package/src/index.browser.ts +11 -0
- package/src/index.shared.ts +15 -0
- package/src/index.ts +11 -37
- package/src/{api/providers → providers}/DevToolsMetadataProvider.ts +84 -47
- package/src/providers/DevToolsProvider.ts +280 -0
- package/src/{api/schemas → schemas}/DevActionMetadata.ts +8 -0
- package/src/{api/schemas → schemas}/DevEntityMetadata.ts +3 -0
- package/src/{api/schemas → schemas}/DevMetadata.ts +13 -2
- package/src/{api/schemas → schemas}/DevPageMetadata.ts +3 -0
- package/src/{api/schemas → schemas}/DevTopicMetadata.ts +1 -0
- package/src/ui/AppRouter.tsx +55 -59
- package/src/ui/components/DevLayout.tsx +104 -84
- package/src/ui/components/configuration/ConfigAtoms.page.tsx +5 -0
- package/src/ui/components/configuration/ConfigAtoms.tsx +511 -0
- package/src/ui/components/configuration/ConfigEnv.page.tsx +5 -0
- package/src/ui/components/configuration/ConfigEnv.tsx +230 -0
- package/src/ui/components/configuration/DevConfiguration.tsx +36 -0
- package/src/ui/components/configuration/index.ts +3 -0
- package/src/ui/components/dashboard/DevDashboard.tsx +482 -0
- package/src/ui/components/database/DatabaseEditor.page.tsx +23 -0
- package/src/ui/components/database/DatabaseEditor.tsx +399 -0
- package/src/ui/components/database/DatabaseErd.page.tsx +28 -0
- package/src/ui/components/database/DatabaseErd.tsx +107 -0
- package/src/ui/components/database/DevDatabase.tsx +36 -0
- package/src/ui/components/database/EntityNode.tsx +83 -0
- package/src/ui/components/explorer/DevExplorer.tsx +351 -0
- package/src/ui/components/explorer/ExplorerTree.tsx +178 -0
- package/src/ui/components/explorer/panels/DevPanelAction.tsx +499 -0
- package/src/ui/components/explorer/panels/DevPanelCache.tsx +73 -0
- package/src/ui/components/explorer/panels/DevPanelPage.tsx +96 -0
- package/src/ui/components/explorer/panels/DevPanelQueue.tsx +51 -0
- package/src/ui/components/explorer/panels/DevPanelTopic.tsx +56 -0
- package/src/ui/components/explorer/panels/index.ts +5 -0
- package/src/ui/components/graph/DevDependencyGraph.tsx +35 -60
- package/src/ui/components/graph/GraphControls.tsx +10 -11
- package/src/ui/components/graph/NodeDetails.tsx +22 -29
- package/src/ui/components/graph/ProviderNode.tsx +4 -4
- package/src/ui/components/graph/helpers.ts +1 -1
- package/src/ui/components/logs/DevLogs.tsx +661 -0
- package/src/ui/components/logs/index.ts +1 -0
- package/src/ui/components/shared/TreeView.tsx +189 -0
- package/src/ui/main.css +17 -0
- package/src/ui/main.ts +2 -6
- package/LICENSE +0 -21
- package/assets/devtools/actions.html +0 -21
- package/assets/devtools/actions.html.br +0 -0
- package/assets/devtools/actions.html.gz +0 -0
- package/assets/devtools/asset.BZV40eAE.css +0 -1
- package/assets/devtools/asset.BZV40eAE.css.br +0 -0
- package/assets/devtools/asset.BZV40eAE.css.gz +0 -0
- package/assets/devtools/asset.CBnMq2vO.css +0 -1
- package/assets/devtools/asset.CBnMq2vO.css.br +0 -0
- package/assets/devtools/asset.CBnMq2vO.css.gz +0 -0
- package/assets/devtools/atoms.html +0 -21
- package/assets/devtools/atoms.html.br +0 -0
- package/assets/devtools/atoms.html.gz +0 -0
- package/assets/devtools/caches.html +0 -21
- package/assets/devtools/caches.html.br +0 -0
- package/assets/devtools/caches.html.gz +0 -0
- package/assets/devtools/chunk.6INqNjF0.js +0 -1
- package/assets/devtools/chunk.6INqNjF0.js.br +0 -0
- package/assets/devtools/chunk.6INqNjF0.js.gz +0 -0
- package/assets/devtools/chunk.9vpWpXSF.js +0 -1
- package/assets/devtools/chunk.9vpWpXSF.js.br +0 -0
- package/assets/devtools/chunk.9vpWpXSF.js.gz +0 -0
- package/assets/devtools/chunk.B4peH6PS.js +0 -1
- package/assets/devtools/chunk.B4peH6PS.js.br +0 -0
- package/assets/devtools/chunk.B4peH6PS.js.gz +0 -0
- package/assets/devtools/chunk.B8CNjZzU.js +0 -1
- package/assets/devtools/chunk.B8CNjZzU.js.br +0 -0
- package/assets/devtools/chunk.B8CNjZzU.js.gz +0 -0
- package/assets/devtools/chunk.Bgd10SVI.js +0 -1
- package/assets/devtools/chunk.Bgd10SVI.js.br +0 -0
- package/assets/devtools/chunk.Bgd10SVI.js.gz +0 -0
- package/assets/devtools/chunk.BjFrJKj1.js +0 -1
- package/assets/devtools/chunk.BjFrJKj1.js.br +0 -2
- package/assets/devtools/chunk.BjFrJKj1.js.gz +0 -0
- package/assets/devtools/chunk.BlqFPyLh.js +0 -1
- package/assets/devtools/chunk.BlqFPyLh.js.br +0 -0
- package/assets/devtools/chunk.BlqFPyLh.js.gz +0 -0
- package/assets/devtools/chunk.BqBNmfN9.js +0 -1
- package/assets/devtools/chunk.BqBNmfN9.js.br +0 -0
- package/assets/devtools/chunk.BqBNmfN9.js.gz +0 -0
- package/assets/devtools/chunk.Bt0_vkJm.js +0 -2
- package/assets/devtools/chunk.Bt0_vkJm.js.br +0 -0
- package/assets/devtools/chunk.Bt0_vkJm.js.gz +0 -0
- package/assets/devtools/chunk.C3GuU4pz.js +0 -2
- package/assets/devtools/chunk.C3GuU4pz.js.br +0 -0
- package/assets/devtools/chunk.C3GuU4pz.js.gz +0 -0
- package/assets/devtools/chunk.CGwoN_Mo.js +0 -1
- package/assets/devtools/chunk.CGwoN_Mo.js.br +0 -0
- package/assets/devtools/chunk.CGwoN_Mo.js.gz +0 -0
- package/assets/devtools/chunk.CJCvhHA7.js +0 -1
- package/assets/devtools/chunk.CJCvhHA7.js.br +0 -2
- package/assets/devtools/chunk.CJCvhHA7.js.gz +0 -0
- package/assets/devtools/chunk.CKr2VE6v.js +0 -1
- package/assets/devtools/chunk.CKr2VE6v.js.br +0 -0
- package/assets/devtools/chunk.CKr2VE6v.js.gz +0 -0
- package/assets/devtools/chunk.CLvTwbkw.js +0 -1
- package/assets/devtools/chunk.CLvTwbkw.js.br +0 -0
- package/assets/devtools/chunk.CLvTwbkw.js.gz +0 -0
- package/assets/devtools/chunk.CR13dZhE.js +0 -7
- package/assets/devtools/chunk.CR13dZhE.js.br +0 -0
- package/assets/devtools/chunk.CR13dZhE.js.gz +0 -0
- package/assets/devtools/chunk.C_C-cVqs.js +0 -1
- package/assets/devtools/chunk.C_C-cVqs.js.br +0 -1
- package/assets/devtools/chunk.C_C-cVqs.js.gz +0 -0
- package/assets/devtools/chunk.CjevPbPy.js +0 -1
- package/assets/devtools/chunk.CjevPbPy.js.br +0 -0
- package/assets/devtools/chunk.CjevPbPy.js.gz +0 -0
- package/assets/devtools/chunk.CkNMZqAe.js +0 -1
- package/assets/devtools/chunk.CkNMZqAe.js.br +0 -0
- package/assets/devtools/chunk.CkNMZqAe.js.gz +0 -0
- package/assets/devtools/chunk.Cl1Mlnqx.js +0 -1
- package/assets/devtools/chunk.Cl1Mlnqx.js.br +0 -0
- package/assets/devtools/chunk.Cl1Mlnqx.js.gz +0 -0
- package/assets/devtools/chunk.CyY8OGdZ.js +0 -1
- package/assets/devtools/chunk.CyY8OGdZ.js.br +0 -0
- package/assets/devtools/chunk.CyY8OGdZ.js.gz +0 -0
- package/assets/devtools/chunk.Cyx9kLqD.js +0 -1
- package/assets/devtools/chunk.Cyx9kLqD.js.br +0 -0
- package/assets/devtools/chunk.Cyx9kLqD.js.gz +0 -0
- package/assets/devtools/chunk.D1MGgxUI.js +0 -1
- package/assets/devtools/chunk.D1MGgxUI.js.br +0 -0
- package/assets/devtools/chunk.D1MGgxUI.js.gz +0 -0
- package/assets/devtools/chunk.D5Ci-dwk.js +0 -1
- package/assets/devtools/chunk.D5Ci-dwk.js.br +0 -0
- package/assets/devtools/chunk.D5Ci-dwk.js.gz +0 -0
- package/assets/devtools/chunk.DFrWQW5x.js +0 -9
- package/assets/devtools/chunk.DFrWQW5x.js.br +0 -0
- package/assets/devtools/chunk.DFrWQW5x.js.gz +0 -0
- package/assets/devtools/chunk.DaVlli3f.js +0 -1
- package/assets/devtools/chunk.DaVlli3f.js.br +0 -0
- package/assets/devtools/chunk.DaVlli3f.js.gz +0 -0
- package/assets/devtools/chunk.DdyBCs50.js +0 -1
- package/assets/devtools/chunk.DdyBCs50.js.br +0 -0
- package/assets/devtools/chunk.DdyBCs50.js.gz +0 -0
- package/assets/devtools/chunk.Dl0THvrP.js +0 -1
- package/assets/devtools/chunk.Dl0THvrP.js.br +0 -0
- package/assets/devtools/chunk.Dl0THvrP.js.gz +0 -0
- package/assets/devtools/chunk.DwUNDm68.js +0 -1
- package/assets/devtools/chunk.DwUNDm68.js.br +0 -0
- package/assets/devtools/chunk.DwUNDm68.js.gz +0 -0
- package/assets/devtools/chunk.DzDkh4C6.js +0 -1
- package/assets/devtools/chunk.DzDkh4C6.js.br +0 -0
- package/assets/devtools/chunk.DzDkh4C6.js.gz +0 -0
- package/assets/devtools/chunk.QTExp4CY.js +0 -1
- package/assets/devtools/chunk.QTExp4CY.js.br +0 -0
- package/assets/devtools/chunk.QTExp4CY.js.gz +0 -0
- package/assets/devtools/chunk.ReCPcJln.js +0 -1
- package/assets/devtools/chunk.ReCPcJln.js.br +0 -0
- package/assets/devtools/chunk.ReCPcJln.js.gz +0 -0
- package/assets/devtools/chunk.UEhIKOMY.js +0 -1
- package/assets/devtools/chunk.UEhIKOMY.js.br +0 -0
- package/assets/devtools/chunk.UEhIKOMY.js.gz +0 -0
- package/assets/devtools/chunk.mWQqK3dU.js +0 -1
- package/assets/devtools/chunk.mWQqK3dU.js.br +0 -0
- package/assets/devtools/chunk.mWQqK3dU.js.gz +0 -0
- package/assets/devtools/chunk.uyVen0u2.js +0 -1
- package/assets/devtools/chunk.uyVen0u2.js.br +0 -0
- package/assets/devtools/chunk.uyVen0u2.js.gz +0 -0
- package/assets/devtools/chunk.yLRX_cUF.js +0 -1
- package/assets/devtools/chunk.yLRX_cUF.js.br +0 -0
- package/assets/devtools/chunk.yLRX_cUF.js.gz +0 -0
- package/assets/devtools/chunk.zuZxBYZg.js +0 -1
- package/assets/devtools/chunk.zuZxBYZg.js.br +0 -0
- package/assets/devtools/chunk.zuZxBYZg.js.gz +0 -0
- package/assets/devtools/db.html +0 -21
- package/assets/devtools/db.html.br +0 -0
- package/assets/devtools/db.html.gz +0 -0
- package/assets/devtools/entry.Cry3rxEI.js +0 -79
- package/assets/devtools/entry.Cry3rxEI.js.br +0 -0
- package/assets/devtools/entry.Cry3rxEI.js.gz +0 -0
- package/assets/devtools/env.html +0 -21
- package/assets/devtools/env.html.br +0 -0
- package/assets/devtools/env.html.gz +0 -0
- package/assets/devtools/graph.html +0 -22
- package/assets/devtools/graph.html.br +0 -0
- package/assets/devtools/graph.html.gz +0 -0
- package/assets/devtools/index.html +0 -21
- package/assets/devtools/index.html.br +0 -0
- package/assets/devtools/index.html.gz +0 -0
- package/assets/devtools/logs.html +0 -21
- package/assets/devtools/logs.html.br +0 -0
- package/assets/devtools/logs.html.gz +0 -0
- package/assets/devtools/queues.html +0 -21
- package/assets/devtools/queues.html.br +0 -0
- package/assets/devtools/queues.html.gz +0 -0
- package/assets/devtools/topics.html +0 -21
- package/assets/devtools/topics.html.br +0 -0
- package/assets/devtools/topics.html.gz +0 -0
- package/src/api/DevToolsProvider.ts +0 -157
- package/src/api/providers/DevToolsDatabaseProvider.ts +0 -27
- package/src/api/repositories/LogRepository.ts +0 -8
- package/src/api/schemas/DevCommandMetadata.ts +0 -9
- package/src/ui/components/DevAtomsViewer.tsx +0 -637
- package/src/ui/components/DevCacheInspector.tsx +0 -423
- package/src/ui/components/DevDashboard.tsx +0 -38
- package/src/ui/components/DevEnvExplorer.tsx +0 -462
- package/src/ui/components/DevLogViewer.tsx +0 -252
- package/src/ui/components/DevQueueMonitor.tsx +0 -51
- package/src/ui/components/DevTopicsViewer.tsx +0 -686
- package/src/ui/components/actions/ActionGroup.tsx +0 -37
- package/src/ui/components/actions/ActionItem.tsx +0 -138
- package/src/ui/components/actions/DevActionsExplorer.tsx +0 -132
- package/src/ui/components/actions/MethodBadge.tsx +0 -18
- package/src/ui/components/actions/SchemaViewer.tsx +0 -21
- package/src/ui/components/actions/TryItPanel.tsx +0 -140
- package/src/ui/components/actions/constants.ts +0 -7
- package/src/ui/components/actions/helpers.ts +0 -18
- package/src/ui/components/actions/index.ts +0 -8
- package/src/ui/components/db/ColumnBadge.tsx +0 -55
- package/src/ui/components/db/DevDbStudio.tsx +0 -485
- package/src/ui/components/db/constants.ts +0 -11
- package/src/ui/components/db/index.ts +0 -4
- package/src/ui/components/db/types.ts +0 -7
- package/src/ui/styles.css +0 -1
- /package/src/{api/schemas → schemas}/DevAtomMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevBucketMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevCacheMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevEnvMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevModuleMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevProviderMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevQueueMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevRealmMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevRouteMetadata.ts +0 -0
- /package/src/{api/schemas → schemas}/DevSchedulerMetadata.ts +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html data-theme="Midnight">
|
|
3
|
-
<head><meta charset="UTF-8">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
5
|
-
<link rel="stylesheet" href="/devtools/asset.CBnMq2vO.css" crossorigin="">
|
|
6
|
-
<script type="module" crossorigin="" src="/devtools/entry.Cry3rxEI.js"></script>
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div id="root"><script data-mantine-script="true">try {
|
|
10
|
-
var _colorScheme = window.localStorage.getItem("mantine-color-scheme-value");
|
|
11
|
-
var colorScheme = _colorScheme === "light" || _colorScheme === "dark" || _colorScheme === "auto" ? _colorScheme : "light";
|
|
12
|
-
var computedColorScheme = colorScheme !== "auto" ? colorScheme : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
13
|
-
document.documentElement.setAttribute("data-mantine-color-scheme", computedColorScheme);
|
|
14
|
-
} catch (e) {}
|
|
15
|
-
</script><style data-mantine-styles="true">:root, :host{--mantine-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--mantine-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--mantine-font-family-headings: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--mantine-heading-font-weight: 600;--mantine-radius-default: 6px;--mantine-primary-color-filled: var(--mantine-color-pink-filled);--mantine-primary-color-filled-hover: var(--mantine-color-pink-filled-hover);--mantine-primary-color-light: var(--mantine-color-pink-light);--mantine-primary-color-light-hover: var(--mantine-color-pink-light-hover);--mantine-primary-color-light-color: var(--mantine-color-pink-light-color);--mantine-radius-xs: 3px;--mantine-radius-sm: 6px;--mantine-radius-md: 6px;--mantine-radius-lg: 8px;--mantine-radius-xl: 12px;--mantine-primary-color-0: var(--mantine-color-pink-0);--mantine-primary-color-1: var(--mantine-color-pink-1);--mantine-primary-color-2: var(--mantine-color-pink-2);--mantine-primary-color-3: var(--mantine-color-pink-3);--mantine-primary-color-4: var(--mantine-color-pink-4);--mantine-primary-color-5: var(--mantine-color-pink-5);--mantine-primary-color-6: var(--mantine-color-pink-6);--mantine-primary-color-7: var(--mantine-color-pink-7);--mantine-primary-color-8: var(--mantine-color-pink-8);--mantine-primary-color-9: var(--mantine-color-pink-9);--mantine-color-dark-0: #d0d7de;--mantine-color-dark-1: #8b949e;--mantine-color-dark-2: #6e7681;--mantine-color-dark-3: #484f58;--mantine-color-dark-4: #30363d;--mantine-color-dark-5: #21262d;--mantine-color-dark-6: #161b22;--mantine-color-dark-7: #151b23;--mantine-color-dark-8: #0d1117;--mantine-color-dark-9: #010409;--mantine-color-gray-0: #f6f8fa;--mantine-color-gray-1: #eaeef2;--mantine-color-gray-2: #d0d7de;--mantine-color-gray-3: #afb8c1;--mantine-color-gray-4: #8c959f;--mantine-color-gray-5: #6e7781;--mantine-color-gray-6: #57606a;--mantine-color-gray-7: #424a53;--mantine-color-gray-8: #32383f;--mantine-color-gray-9: #24292f;--mantine-color-red-0: #ffebe9;--mantine-color-red-1: #ffcecb;--mantine-color-red-2: #ffaba8;--mantine-color-red-3: #ff8182;--mantine-color-red-4: #fa4549;--mantine-color-red-5: #cf222e;--mantine-color-red-6: #a40e26;--mantine-color-red-7: #82071e;--mantine-color-red-8: #660018;--mantine-color-red-9: #4c0014;--mantine-color-blue-0: #ddf4ff;--mantine-color-blue-1: #b6e3ff;--mantine-color-blue-2: #80ccff;--mantine-color-blue-3: #54aeff;--mantine-color-blue-4: #218bff;--mantine-color-blue-5: #0969da;--mantine-color-blue-6: #0550ae;--mantine-color-blue-7: #033d8b;--mantine-color-blue-8: #0a3069;--mantine-color-blue-9: #002155;--mantine-color-green-0: #dafbe1;--mantine-color-green-1: #aceebb;--mantine-color-green-2: #6fdd8b;--mantine-color-green-3: #4ac26b;--mantine-color-green-4: #2da44e;--mantine-color-green-5: #1a7f37;--mantine-color-green-6: #116329;--mantine-color-green-7: #044f1e;--mantine-color-green-8: #003d16;--mantine-color-green-9: #002d11;--mantine-h1-font-size: 2rem;--mantine-h1-line-height: 1.25;--mantine-h1-font-weight: 600;--mantine-h2-font-size: 1.5rem;--mantine-h2-line-height: 1.3;--mantine-h2-font-weight: 600;--mantine-h3-font-size: 1.25rem;--mantine-h3-font-weight: 600;--mantine-h4-font-size: 1rem;--mantine-h4-line-height: 1.5;--mantine-h4-font-weight: 600;--mantine-h5-font-size: 0.875rem;--mantine-h5-font-weight: 600;--mantine-h6-font-size: 0.75rem;--mantine-h6-font-weight: 600;}
|
|
16
|
-
|
|
17
|
-
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-pink-4);--mantine-color-dark-light: rgba(22, 27, 34, 0.15);--mantine-color-dark-light-hover: rgba(22, 27, 34, 0.2);--mantine-color-dark-outline-hover: rgba(48, 54, 61, 0.05);--mantine-color-gray-light: rgba(87, 96, 106, 0.15);--mantine-color-gray-light-hover: rgba(87, 96, 106, 0.2);--mantine-color-gray-outline-hover: rgba(140, 149, 159, 0.05);--mantine-color-red-light: rgba(164, 14, 38, 0.15);--mantine-color-red-light-hover: rgba(164, 14, 38, 0.2);--mantine-color-red-outline-hover: rgba(250, 69, 73, 0.05);--mantine-color-blue-light: rgba(5, 80, 174, 0.15);--mantine-color-blue-light-hover: rgba(5, 80, 174, 0.2);--mantine-color-blue-outline-hover: rgba(33, 139, 255, 0.05);--mantine-color-green-light: rgba(17, 99, 41, 0.15);--mantine-color-green-light-hover: rgba(17, 99, 41, 0.2);--mantine-color-green-outline-hover: rgba(45, 164, 78, 0.05);}
|
|
18
|
-
|
|
19
|
-
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-pink-7);--mantine-color-dark-filled: var(--mantine-color-dark-7);--mantine-color-dark-filled-hover: var(--mantine-color-dark-8);--mantine-color-dark-light: rgba(21, 27, 35, 0.1);--mantine-color-dark-light-hover: rgba(21, 27, 35, 0.12);--mantine-color-dark-light-color: var(--mantine-color-dark-7);--mantine-color-dark-outline: var(--mantine-color-dark-7);--mantine-color-dark-outline-hover: rgba(21, 27, 35, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-7);--mantine-color-gray-filled-hover: var(--mantine-color-gray-8);--mantine-color-gray-light: rgba(66, 74, 83, 0.1);--mantine-color-gray-light-hover: rgba(66, 74, 83, 0.12);--mantine-color-gray-light-color: var(--mantine-color-gray-7);--mantine-color-gray-outline: var(--mantine-color-gray-7);--mantine-color-gray-outline-hover: rgba(66, 74, 83, 0.05);--mantine-color-red-filled: var(--mantine-color-red-7);--mantine-color-red-filled-hover: var(--mantine-color-red-8);--mantine-color-red-light: rgba(130, 7, 30, 0.1);--mantine-color-red-light-hover: rgba(130, 7, 30, 0.12);--mantine-color-red-light-color: var(--mantine-color-red-7);--mantine-color-red-outline: var(--mantine-color-red-7);--mantine-color-red-outline-hover: rgba(130, 7, 30, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-7);--mantine-color-pink-filled-hover: var(--mantine-color-pink-8);--mantine-color-pink-light: rgba(214, 51, 108, 0.1);--mantine-color-pink-light-hover: rgba(214, 51, 108, 0.12);--mantine-color-pink-light-color: var(--mantine-color-pink-7);--mantine-color-pink-outline: var(--mantine-color-pink-7);--mantine-color-pink-outline-hover: rgba(214, 51, 108, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-7);--mantine-color-grape-filled-hover: var(--mantine-color-grape-8);--mantine-color-grape-light: rgba(174, 62, 201, 0.1);--mantine-color-grape-light-hover: rgba(174, 62, 201, 0.12);--mantine-color-grape-light-color: var(--mantine-color-grape-7);--mantine-color-grape-outline: var(--mantine-color-grape-7);--mantine-color-grape-outline-hover: rgba(174, 62, 201, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-7);--mantine-color-violet-filled-hover: var(--mantine-color-violet-8);--mantine-color-violet-light: rgba(112, 72, 232, 0.1);--mantine-color-violet-light-hover: rgba(112, 72, 232, 0.12);--mantine-color-violet-light-color: var(--mantine-color-violet-7);--mantine-color-violet-outline: var(--mantine-color-violet-7);--mantine-color-violet-outline-hover: rgba(112, 72, 232, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-7);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-8);--mantine-color-indigo-light: rgba(66, 99, 235, 0.1);--mantine-color-indigo-light-hover: rgba(66, 99, 235, 0.12);--mantine-color-indigo-light-color: var(--mantine-color-indigo-7);--mantine-color-indigo-outline: var(--mantine-color-indigo-7);--mantine-color-indigo-outline-hover: rgba(66, 99, 235, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-7);--mantine-color-blue-filled-hover: var(--mantine-color-blue-8);--mantine-color-blue-light: rgba(3, 61, 139, 0.1);--mantine-color-blue-light-hover: rgba(3, 61, 139, 0.12);--mantine-color-blue-light-color: var(--mantine-color-blue-7);--mantine-color-blue-outline: var(--mantine-color-blue-7);--mantine-color-blue-outline-hover: rgba(3, 61, 139, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-7);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-8);--mantine-color-cyan-light: rgba(16, 152, 173, 0.1);--mantine-color-cyan-light-hover: rgba(16, 152, 173, 0.12);--mantine-color-cyan-light-color: var(--mantine-color-cyan-7);--mantine-color-cyan-outline: var(--mantine-color-cyan-7);--mantine-color-cyan-outline-hover: rgba(16, 152, 173, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-7);--mantine-color-teal-filled-hover: var(--mantine-color-teal-8);--mantine-color-teal-light: rgba(12, 166, 120, 0.1);--mantine-color-teal-light-hover: rgba(12, 166, 120, 0.12);--mantine-color-teal-light-color: var(--mantine-color-teal-7);--mantine-color-teal-outline: var(--mantine-color-teal-7);--mantine-color-teal-outline-hover: rgba(12, 166, 120, 0.05);--mantine-color-green-filled: var(--mantine-color-green-7);--mantine-color-green-filled-hover: var(--mantine-color-green-8);--mantine-color-green-light: rgba(4, 79, 30, 0.1);--mantine-color-green-light-hover: rgba(4, 79, 30, 0.12);--mantine-color-green-light-color: var(--mantine-color-green-7);--mantine-color-green-outline: var(--mantine-color-green-7);--mantine-color-green-outline-hover: rgba(4, 79, 30, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-7);--mantine-color-lime-filled-hover: var(--mantine-color-lime-8);--mantine-color-lime-light: rgba(116, 184, 22, 0.1);--mantine-color-lime-light-hover: rgba(116, 184, 22, 0.12);--mantine-color-lime-light-color: var(--mantine-color-lime-7);--mantine-color-lime-outline: var(--mantine-color-lime-7);--mantine-color-lime-outline-hover: rgba(116, 184, 22, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-7);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-8);--mantine-color-yellow-light: rgba(245, 159, 0, 0.1);--mantine-color-yellow-light-hover: rgba(245, 159, 0, 0.12);--mantine-color-yellow-light-color: var(--mantine-color-yellow-7);--mantine-color-yellow-outline: var(--mantine-color-yellow-7);--mantine-color-yellow-outline-hover: rgba(245, 159, 0, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-7);--mantine-color-orange-filled-hover: var(--mantine-color-orange-8);--mantine-color-orange-light: rgba(247, 103, 7, 0.1);--mantine-color-orange-light-hover: rgba(247, 103, 7, 0.12);--mantine-color-orange-light-color: var(--mantine-color-orange-7);--mantine-color-orange-outline: var(--mantine-color-orange-7);--mantine-color-orange-outline-hover: rgba(247, 103, 7, 0.05);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><style data-mantine-styles="inline">:root{--app-shell-navbar-width:calc(18.75rem * var(--mantine-scale));--app-shell-navbar-offset:calc(18.75rem * var(--mantine-scale));--app-shell-header-height:calc(3.75rem * var(--mantine-scale));--app-shell-header-offset:calc(3.75rem * var(--mantine-scale));--app-shell-padding:var(--mantine-spacing-md);}@media(max-width: 47.99375em){:root{--app-shell-navbar-width:100%;--app-shell-navbar-offset:0px;--app-shell-navbar-transform:translateX(calc(var(--app-shell-navbar-width) * -1));--app-shell-navbar-transform-rtl:translateX(var(--app-shell-navbar-width));}}</style><div style="--app-shell-transition-duration:200ms;--app-shell-transition-timing-function:ease;width:100%;flex:1" class="m_89ab340 mantine-AppShell-root" data-resizing="true" data-mode="fixed" id="mantine-_R_lu_"><header style="--app-shell-header-z-index:100;background:var(--alepha-background)" class="m_3b16f56b mantine-AppShell-header right-scroll-bar-position" data-with-border="true"><div style="align-items:center;justify-content:space-between;padding-inline:var(--mantine-spacing-md);height:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_2jdlu_"><div style="flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_dmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3ddmjdlu_"><button style="--burger-size:var(--burger-size-sm)" class="mantine-focus-auto m_fea6bf1a mantine-Burger-root m_87cf2631 mantine-UnstyledButton-root mantine-hidden-from-sm" data-size="sm" type="button"><div class="m_d4fb9cad mantine-Burger-burger" data-reduce-motion="true"></div></button></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_5ddmjdlu_"><div style="margin-left:-32px;border-right:1px solid var(--mantine-color-default-border);width:calc(4.875rem * var(--mantine-scale));height:calc(3.75rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_bdddmjdlu_"></div></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_7ddmjdlu_"><button style="--button-justify:space-between;--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-pink-outline-hover);--button-color:var(--mantine-color-pink-outline);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-pink-outline);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="outline" data-with-right-section="true" type="button" justify="space-between"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="gap:var(--mantine-spacing-xs);align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_barfddmjdlu_"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="gray" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg><div style="min-width:calc(12rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2mrarfddmjdlu_ mantine-visible-from-sm"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs);color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">Search...</p></div></div></span><span class="m_a74036a mantine-Button-section" data-position="right"><kbd style="--kbd-fz:var(--kbd-fz-sm)" class="m_dc6f14e2 mantine-Kbd-root mantine-visible-from-sm" data-size="sm">+K</kbd></span></span></button></div></div><div class="m_8bffd616 mantine-Flex-root __m__-_R_lmjdlu_"></div><div style="align-items:center;justify-content:end;flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_tmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3dtmjdlu_"><button style="--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button" aria-label="Toggle color scheme"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-pink-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-text);width:calc(1.5rem * var(--mantine-scale))" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-sun alepha-light-hidden"><path d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path><path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-moon alepha-dark-hidden"><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008"></path></svg></div></span></span></button></div></div></div></header><nav style="opacity:1;--app-shell-navbar-z-index:calc(100 + 1);background:var(--alepha-background)" class="m_45252eee mantine-AppShell-navbar alepha-sidebar-navbar" data-with-border="true" data-resizing="false" data-hover-expanded="false"><div style="flex-direction:column;padding-block:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_6ldlu_"><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_1mmldlu_"></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_2mmldlu_"><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldkdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dashboard "><path d="M10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M13.45 11.55l2.05 -2.05"></path><path d="M6.4 20a9 9 0 1 1 11.2 0l-11.2 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldkdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldkdmmmldlu_">Dashboard</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_lmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/actions"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldktmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-api "><path d="M4 13h5"></path><path d="M12 16v-8h3a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-3"></path><path d="M20 8v8"></path><path d="M9 16v-5.5a2.5 2.5 0 0 0 -5 0v5.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldktmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldktmmmldlu_">Actions</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_15mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/queues"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldl5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-stack-2 "><path d="M12 4l-8 4l8 4l8 -4l-8 -4"></path><path d="M4 12l8 4l8 -4"></path><path d="M4 16l8 4l8 -4"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldl5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldl5mmmldlu_">Queues</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/topics"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldldmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-circle "><path d="M3 20l1.3 -3.9c-2.324 -3.437 -1.426 -7.872 2.1 -10.374c3.526 -2.501 8.59 -2.296 11.845 .48c3.255 2.777 3.695 7.266 1.029 10.501c-2.666 3.235 -7.615 4.215 -11.574 2.293l-4.7 1"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldldmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldldmmmldlu_">Topics</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/caches"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldllmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-archive "><path d="M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2"></path><path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10"></path><path d="M10 12l4 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldllmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldllmmmldlu_">Caches</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/db"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldltmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-database "><path d="M4 6a8 3 0 1 0 16 0a8 3 0 1 0 -16 0"></path><path d="M4 6v6a8 3 0 0 0 16 0v-6"></path><path d="M4 12v6a8 3 0 0 0 16 0v-6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldltmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldltmmmldlu_">DB Studio</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_25mmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/env"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-variable "><path d="M5 4c-2.5 5 -2.5 10 0 16m14 -16c2.5 5 2.5 10 0 16m-10 -11h1c1 0 1 1 2.016 3.527c.984 2.473 .984 3.473 1.984 3.473h1"></path><path d="M8 16c1.5 0 3 -2 4 -3.5s2.5 -3.5 4 -3.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmdmmmldlu_">Environment</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/atoms"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmlmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-atom "><path d="M12 12v.01"></path><path d="M19.071 4.929c-1.562 -1.562 -6 .337 -9.9 4.243c-3.905 3.905 -5.804 8.337 -4.242 9.9c1.562 1.561 6 -.338 9.9 -4.244c3.905 -3.905 5.804 -8.337 4.242 -9.9"></path><path d="M4.929 4.929c-1.562 1.562 .337 6 4.243 9.9c3.905 3.905 8.337 5.804 9.9 4.242c1.561 -1.562 -.338 -6 -4.244 -9.9c-3.905 -3.905 -8.337 -5.804 -9.9 -4.242"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmlmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmlmmmldlu_">Atoms</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2tmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_35mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/graph"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldn5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-topology-ring "><path d="M14 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M14 4a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M6 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M22 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M13.5 5.5l5 5"></path><path d="M5.5 13.5l5 5"></path><path d="M13.5 18.5l5 -5"></path><path d="M10.5 5.5l-5 5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldn5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldn5mmmldlu_">Graph</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_3dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/logs"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldndmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-logs "><path d="M4 12h.01"></path><path d="M4 6h.01"></path><path d="M4 18h.01"></path><path d="M8 18h2"></path><path d="M8 12h2"></path><path d="M8 6h2"></path><path d="M14 6h6"></path><path d="M14 12h6"></path><path d="M14 18h6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldndmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldndmmmldlu_">Logs</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_3mmldlu_"></div></div><div style="cursor:col-resize;user-select:none;width:calc(0.75rem * var(--mantine-scale));position:absolute;top:0rem;bottom:0rem;right:calc(-0.375rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_aldlu_"></div></nav><main style="flex-direction:column;padding-top:calc(3.75rem * var(--mantine-scale));padding-bottom:0rem;padding-left:calc(18.75rem * var(--mantine-scale));padding-right:0rem;display:flex;flex:1" class="m_8983817 mantine-AppShell-main alepha-sidebar-main" data-resizing="false"><div style="flex-direction:column;padding:0rem;border:calc(0.0625rem * var(--mantine-scale)) solid var(--alepha-border);background:var(--alepha-elevated);flex:1;border-radius:var(--mantine-radius-sm)" class="m_8bffd616 mantine-Flex-root __m__-_R_6ndlu_"><div style="border-bottom:1px solid var(--alepha-border);padding:var(--mantine-spacing-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_rendlu_"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_dkrendlu_"><button style="--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" type="button" aria-haspopup="dialog" aria-expanded="false" id="mantine-_R_3ddkrendlu_-target"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-filter "><path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227"></path></svg></span></span></button><button style="--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" type="button" aria-haspopup="dialog" aria-expanded="false" id="mantine-_R_5ddkrendlu_-target"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-columns "><path d="M4 6l5.5 0"></path><path d="M4 10l5.5 0"></path><path d="M4 14l5.5 0"></path><path d="M4 18l5.5 0"></path><path d="M14.5 6l5.5 0"></path><path d="M14.5 10l5.5 0"></path><path d="M14.5 14l5.5 0"></path><path d="M14.5 18l5.5 0"></path></svg></span></span></button></div><div style="flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_lkrendlu_"></div><div style="gap:var(--mantine-spacing-xs)" class="m_8bffd616 mantine-Flex-root __m__-_R_tkrendlu_"><button style="--button-color:var(--mantine-color-white)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-with-left-section="true" type="button"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-refresh "><path d="M20 11a8.1 8.1 0 0 0 -15.5 -2m-.5 -4v4h4"></path><path d="M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"></path></svg></span><span class="m_811560b9 mantine-Button-label">Refresh</span></span></button></div></div><div style="border-bottom:1px solid var(--alepha-border);padding:var(--mantine-spacing-xs);background:var(--alepha-surface);width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_1bendlu_"><form style="flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_5lbendlu_" id="_R_2ndlu_" noValidate=""><div style="gap:var(--mantine-spacing-sm);flex-direction:column;flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_bdlbendlu_"><div style="gap:var(--mantine-spacing-sm);flex-direction:column;flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_1mrdlbendlu_"><style data-mantine-styles="inline">.__m__-_R_5lmrdlbendlu_{--grid-gutter:var(--mantine-spacing-md);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_5lmrdlbendlu_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_rdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 36em){.__m__-_R_rdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}}@media(min-width: 48em){.__m__-_R_rdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:50%;--col-max-width:50%;}}@media(min-width: 75em){.__m__-_R_rdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:50%;--col-max-width:50%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_rdlmrdlbendlu_"><div class="m_46b77525 mantine-InputWrapper-root mantine-TextInput-root" data-size="sm"><label style="--input-label-size:var(--mantine-font-size-sm)" class="m_8fdc1311 mantine-InputWrapper-label mantine-TextInput-label" data-size="sm" for="mantine-_R_2qrdlmrdlbendlu_-target" id="mantine-_R_2qrdlmrdlbendlu_-target-label">Search</label><div style="--input-height:var(--input-height-sm);--input-fz:var(--mantine-font-size-sm)" class="m_6c018570 mantine-Input-wrapper mantine-TextInput-wrapper" data-variant="default" data-size="sm" data-with-left-section="true"><div data-position="left" class="m_82577fc2 mantine-Input-section mantine-TextInput-section"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-filter "><path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227"></path></svg></div><input class="m_8fb7ebe7 mantine-Input-input mantine-TextInput-input" data-variant="default" placeholder="Enter query or click for assistance..." autoComplete="off" data-path="/search" type="text" aria-haspopup="dialog" aria-expanded="false" aria-invalid="false" id="mantine-_R_2qrdlmrdlbendlu_-target" name="search" value=""/></div></div></div><style data-mantine-styles="inline">.__m__-_R_1bdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 36em){.__m__-_R_1bdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}}@media(min-width: 48em){.__m__-_R_1bdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:50%;--col-max-width:50%;}}@media(min-width: 75em){.__m__-_R_1bdlmrdlbendlu_{--col-flex-grow:auto;--col-flex-basis:50%;--col-max-width:50%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_1bdlmrdlbendlu_"><div class="m_46b77525 mantine-InputWrapper-root mantine-MultiSelect-root" data-size="sm"><label style="--input-label-size:var(--mantine-font-size-sm)" class="m_8fdc1311 mantine-InputWrapper-label mantine-MultiSelect-label" data-size="sm" for="mantine-_R_2rbdlmrdlbendlu_" id="mantine-_R_2rbdlmrdlbendlu_-label">Level</label><div style="--input-height:var(--input-height-sm);--input-fz:var(--mantine-font-size-sm);--input-padding-y:var(--input-padding-y-sm);--input-right-section-pointer-events:none" class="m_6c018570 mantine-Input-wrapper mantine-MultiSelect-wrapper" data-variant="default" data-size="sm" data-pointer="true" data-multiline="true" data-with-right-section="true" data-with-left-section="true"><div data-position="left" class="m_82577fc2 mantine-Input-section mantine-MultiSelect-section"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-selector "><path d="M8 9l4 -4l4 4"></path><path d="M16 15l-4 4l-4 -4"></path></svg></div><div class="m_8fb7ebe7 mantine-Input-input mantine-MultiSelect-input" data-variant="default" data-no-overflow="true"><div style="--pg-gap:var(--pg-gap-sm)" class="mantine-MultiSelect-pillsList m_1dcfd90b mantine-PillGroup-group" data-size="sm"><input class="mantine-MultiSelect-inputField m_45c4369d mantine-PillsInputField-field" data-pointer="true" data-type="hidden" readOnly="" aria-haspopup="listbox" autoComplete="off" id="mantine-_R_2rbdlmrdlbendlu_" aria-invalid="false" type="text" value=""/></div></div><div data-position="right" class="m_82577fc2 mantine-Input-section mantine-MultiSelect-section"><svg style="--combobox-chevron-size:var(--combobox-chevron-size-sm)" class="m_2943220b mantine-ComboboxChevron-chevron" data-size="sm" data-combobox-chevron="true" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.93179 5.43179C4.75605 5.60753 4.75605 5.89245 4.93179 6.06819C5.10753 6.24392 5.39245 6.24392 5.56819 6.06819L7.49999 4.13638L9.43179 6.06819C9.60753 6.24392 9.89245 6.24392 10.0682 6.06819C10.2439 5.89245 10.2439 5.60753 10.0682 5.43179L7.81819 3.18179C7.73379 3.0974 7.61933 3.04999 7.49999 3.04999C7.38064 3.04999 7.26618 3.0974 7.18179 3.18179L4.93179 5.43179ZM10.0682 9.56819C10.2439 9.39245 10.2439 9.10753 10.0682 8.93179C9.89245 8.75606 9.60753 8.75606 9.43179 8.93179L7.49999 10.8636L5.56819 8.93179C5.39245 8.75606 5.10753 8.75606 4.93179 8.93179C4.75605 9.10753 4.75605 9.39245 4.93179 9.56819L7.18179 11.8182C7.35753 11.9939 7.64245 11.9939 7.81819 11.8182L10.0682 9.56819Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></div></div></div><input type="hidden" value=""/></div></div></div></div></div></form></div><div class="overflow-auto m_8bffd616 mantine-Flex-root __m__-_R_1rendlu_"><table style="--table-horizontal-spacing:var(--mantine-spacing-xs);--table-vertical-spacing:0rem" class="m_b23fa0ef mantine-Table-table"><thead class="m_b242d975 mantine-Table-thead"><tr class="m_4e7aa4fd mantine-Table-tr" data-with-row-border="true"><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2jbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">timestamp</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2lbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">level</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2nbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">app</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2pbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">context</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2rbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">service</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2tbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">message</p></div></th><th class="m_4e7aa4f3 mantine-Table-th" data-with-column-border="true"><div style="gap:calc(0.25rem * var(--mantine-scale));align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_2vbbdlrendlu_"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">more</p></div></th></tr></thead><tbody class="m_b2404537 mantine-Table-tbody"></tbody></table></div></div></main></div></div>
|
|
20
|
-
<script>window.__ssr={"layers":[{"part":"/","name":"root","config":{"query":{},"params":{}},"props":{}},{"name":"layout","config":{"query":{},"params":{}},"props":{}},{"part":"/logs","name":"logs","config":{"query":{},"params":{}},"props":{}}]}</script></body>
|
|
21
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html data-theme="Midnight">
|
|
3
|
-
<head><meta charset="UTF-8">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
5
|
-
<link rel="stylesheet" href="/devtools/asset.CBnMq2vO.css" crossorigin="">
|
|
6
|
-
<script type="module" crossorigin="" src="/devtools/entry.Cry3rxEI.js"></script>
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div id="root"><script data-mantine-script="true">try {
|
|
10
|
-
var _colorScheme = window.localStorage.getItem("mantine-color-scheme-value");
|
|
11
|
-
var colorScheme = _colorScheme === "light" || _colorScheme === "dark" || _colorScheme === "auto" ? _colorScheme : "light";
|
|
12
|
-
var computedColorScheme = colorScheme !== "auto" ? colorScheme : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
13
|
-
document.documentElement.setAttribute("data-mantine-color-scheme", computedColorScheme);
|
|
14
|
-
} catch (e) {}
|
|
15
|
-
</script><style data-mantine-styles="true">:root, :host{--mantine-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--mantine-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--mantine-font-family-headings: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--mantine-heading-font-weight: 600;--mantine-radius-default: 6px;--mantine-primary-color-filled: var(--mantine-color-pink-filled);--mantine-primary-color-filled-hover: var(--mantine-color-pink-filled-hover);--mantine-primary-color-light: var(--mantine-color-pink-light);--mantine-primary-color-light-hover: var(--mantine-color-pink-light-hover);--mantine-primary-color-light-color: var(--mantine-color-pink-light-color);--mantine-radius-xs: 3px;--mantine-radius-sm: 6px;--mantine-radius-md: 6px;--mantine-radius-lg: 8px;--mantine-radius-xl: 12px;--mantine-primary-color-0: var(--mantine-color-pink-0);--mantine-primary-color-1: var(--mantine-color-pink-1);--mantine-primary-color-2: var(--mantine-color-pink-2);--mantine-primary-color-3: var(--mantine-color-pink-3);--mantine-primary-color-4: var(--mantine-color-pink-4);--mantine-primary-color-5: var(--mantine-color-pink-5);--mantine-primary-color-6: var(--mantine-color-pink-6);--mantine-primary-color-7: var(--mantine-color-pink-7);--mantine-primary-color-8: var(--mantine-color-pink-8);--mantine-primary-color-9: var(--mantine-color-pink-9);--mantine-color-dark-0: #d0d7de;--mantine-color-dark-1: #8b949e;--mantine-color-dark-2: #6e7681;--mantine-color-dark-3: #484f58;--mantine-color-dark-4: #30363d;--mantine-color-dark-5: #21262d;--mantine-color-dark-6: #161b22;--mantine-color-dark-7: #151b23;--mantine-color-dark-8: #0d1117;--mantine-color-dark-9: #010409;--mantine-color-gray-0: #f6f8fa;--mantine-color-gray-1: #eaeef2;--mantine-color-gray-2: #d0d7de;--mantine-color-gray-3: #afb8c1;--mantine-color-gray-4: #8c959f;--mantine-color-gray-5: #6e7781;--mantine-color-gray-6: #57606a;--mantine-color-gray-7: #424a53;--mantine-color-gray-8: #32383f;--mantine-color-gray-9: #24292f;--mantine-color-red-0: #ffebe9;--mantine-color-red-1: #ffcecb;--mantine-color-red-2: #ffaba8;--mantine-color-red-3: #ff8182;--mantine-color-red-4: #fa4549;--mantine-color-red-5: #cf222e;--mantine-color-red-6: #a40e26;--mantine-color-red-7: #82071e;--mantine-color-red-8: #660018;--mantine-color-red-9: #4c0014;--mantine-color-blue-0: #ddf4ff;--mantine-color-blue-1: #b6e3ff;--mantine-color-blue-2: #80ccff;--mantine-color-blue-3: #54aeff;--mantine-color-blue-4: #218bff;--mantine-color-blue-5: #0969da;--mantine-color-blue-6: #0550ae;--mantine-color-blue-7: #033d8b;--mantine-color-blue-8: #0a3069;--mantine-color-blue-9: #002155;--mantine-color-green-0: #dafbe1;--mantine-color-green-1: #aceebb;--mantine-color-green-2: #6fdd8b;--mantine-color-green-3: #4ac26b;--mantine-color-green-4: #2da44e;--mantine-color-green-5: #1a7f37;--mantine-color-green-6: #116329;--mantine-color-green-7: #044f1e;--mantine-color-green-8: #003d16;--mantine-color-green-9: #002d11;--mantine-h1-font-size: 2rem;--mantine-h1-line-height: 1.25;--mantine-h1-font-weight: 600;--mantine-h2-font-size: 1.5rem;--mantine-h2-line-height: 1.3;--mantine-h2-font-weight: 600;--mantine-h3-font-size: 1.25rem;--mantine-h3-font-weight: 600;--mantine-h4-font-size: 1rem;--mantine-h4-line-height: 1.5;--mantine-h4-font-weight: 600;--mantine-h5-font-size: 0.875rem;--mantine-h5-font-weight: 600;--mantine-h6-font-size: 0.75rem;--mantine-h6-font-weight: 600;}
|
|
16
|
-
|
|
17
|
-
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-pink-4);--mantine-color-dark-light: rgba(22, 27, 34, 0.15);--mantine-color-dark-light-hover: rgba(22, 27, 34, 0.2);--mantine-color-dark-outline-hover: rgba(48, 54, 61, 0.05);--mantine-color-gray-light: rgba(87, 96, 106, 0.15);--mantine-color-gray-light-hover: rgba(87, 96, 106, 0.2);--mantine-color-gray-outline-hover: rgba(140, 149, 159, 0.05);--mantine-color-red-light: rgba(164, 14, 38, 0.15);--mantine-color-red-light-hover: rgba(164, 14, 38, 0.2);--mantine-color-red-outline-hover: rgba(250, 69, 73, 0.05);--mantine-color-blue-light: rgba(5, 80, 174, 0.15);--mantine-color-blue-light-hover: rgba(5, 80, 174, 0.2);--mantine-color-blue-outline-hover: rgba(33, 139, 255, 0.05);--mantine-color-green-light: rgba(17, 99, 41, 0.15);--mantine-color-green-light-hover: rgba(17, 99, 41, 0.2);--mantine-color-green-outline-hover: rgba(45, 164, 78, 0.05);}
|
|
18
|
-
|
|
19
|
-
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-pink-7);--mantine-color-dark-filled: var(--mantine-color-dark-7);--mantine-color-dark-filled-hover: var(--mantine-color-dark-8);--mantine-color-dark-light: rgba(21, 27, 35, 0.1);--mantine-color-dark-light-hover: rgba(21, 27, 35, 0.12);--mantine-color-dark-light-color: var(--mantine-color-dark-7);--mantine-color-dark-outline: var(--mantine-color-dark-7);--mantine-color-dark-outline-hover: rgba(21, 27, 35, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-7);--mantine-color-gray-filled-hover: var(--mantine-color-gray-8);--mantine-color-gray-light: rgba(66, 74, 83, 0.1);--mantine-color-gray-light-hover: rgba(66, 74, 83, 0.12);--mantine-color-gray-light-color: var(--mantine-color-gray-7);--mantine-color-gray-outline: var(--mantine-color-gray-7);--mantine-color-gray-outline-hover: rgba(66, 74, 83, 0.05);--mantine-color-red-filled: var(--mantine-color-red-7);--mantine-color-red-filled-hover: var(--mantine-color-red-8);--mantine-color-red-light: rgba(130, 7, 30, 0.1);--mantine-color-red-light-hover: rgba(130, 7, 30, 0.12);--mantine-color-red-light-color: var(--mantine-color-red-7);--mantine-color-red-outline: var(--mantine-color-red-7);--mantine-color-red-outline-hover: rgba(130, 7, 30, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-7);--mantine-color-pink-filled-hover: var(--mantine-color-pink-8);--mantine-color-pink-light: rgba(214, 51, 108, 0.1);--mantine-color-pink-light-hover: rgba(214, 51, 108, 0.12);--mantine-color-pink-light-color: var(--mantine-color-pink-7);--mantine-color-pink-outline: var(--mantine-color-pink-7);--mantine-color-pink-outline-hover: rgba(214, 51, 108, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-7);--mantine-color-grape-filled-hover: var(--mantine-color-grape-8);--mantine-color-grape-light: rgba(174, 62, 201, 0.1);--mantine-color-grape-light-hover: rgba(174, 62, 201, 0.12);--mantine-color-grape-light-color: var(--mantine-color-grape-7);--mantine-color-grape-outline: var(--mantine-color-grape-7);--mantine-color-grape-outline-hover: rgba(174, 62, 201, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-7);--mantine-color-violet-filled-hover: var(--mantine-color-violet-8);--mantine-color-violet-light: rgba(112, 72, 232, 0.1);--mantine-color-violet-light-hover: rgba(112, 72, 232, 0.12);--mantine-color-violet-light-color: var(--mantine-color-violet-7);--mantine-color-violet-outline: var(--mantine-color-violet-7);--mantine-color-violet-outline-hover: rgba(112, 72, 232, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-7);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-8);--mantine-color-indigo-light: rgba(66, 99, 235, 0.1);--mantine-color-indigo-light-hover: rgba(66, 99, 235, 0.12);--mantine-color-indigo-light-color: var(--mantine-color-indigo-7);--mantine-color-indigo-outline: var(--mantine-color-indigo-7);--mantine-color-indigo-outline-hover: rgba(66, 99, 235, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-7);--mantine-color-blue-filled-hover: var(--mantine-color-blue-8);--mantine-color-blue-light: rgba(3, 61, 139, 0.1);--mantine-color-blue-light-hover: rgba(3, 61, 139, 0.12);--mantine-color-blue-light-color: var(--mantine-color-blue-7);--mantine-color-blue-outline: var(--mantine-color-blue-7);--mantine-color-blue-outline-hover: rgba(3, 61, 139, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-7);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-8);--mantine-color-cyan-light: rgba(16, 152, 173, 0.1);--mantine-color-cyan-light-hover: rgba(16, 152, 173, 0.12);--mantine-color-cyan-light-color: var(--mantine-color-cyan-7);--mantine-color-cyan-outline: var(--mantine-color-cyan-7);--mantine-color-cyan-outline-hover: rgba(16, 152, 173, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-7);--mantine-color-teal-filled-hover: var(--mantine-color-teal-8);--mantine-color-teal-light: rgba(12, 166, 120, 0.1);--mantine-color-teal-light-hover: rgba(12, 166, 120, 0.12);--mantine-color-teal-light-color: var(--mantine-color-teal-7);--mantine-color-teal-outline: var(--mantine-color-teal-7);--mantine-color-teal-outline-hover: rgba(12, 166, 120, 0.05);--mantine-color-green-filled: var(--mantine-color-green-7);--mantine-color-green-filled-hover: var(--mantine-color-green-8);--mantine-color-green-light: rgba(4, 79, 30, 0.1);--mantine-color-green-light-hover: rgba(4, 79, 30, 0.12);--mantine-color-green-light-color: var(--mantine-color-green-7);--mantine-color-green-outline: var(--mantine-color-green-7);--mantine-color-green-outline-hover: rgba(4, 79, 30, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-7);--mantine-color-lime-filled-hover: var(--mantine-color-lime-8);--mantine-color-lime-light: rgba(116, 184, 22, 0.1);--mantine-color-lime-light-hover: rgba(116, 184, 22, 0.12);--mantine-color-lime-light-color: var(--mantine-color-lime-7);--mantine-color-lime-outline: var(--mantine-color-lime-7);--mantine-color-lime-outline-hover: rgba(116, 184, 22, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-7);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-8);--mantine-color-yellow-light: rgba(245, 159, 0, 0.1);--mantine-color-yellow-light-hover: rgba(245, 159, 0, 0.12);--mantine-color-yellow-light-color: var(--mantine-color-yellow-7);--mantine-color-yellow-outline: var(--mantine-color-yellow-7);--mantine-color-yellow-outline-hover: rgba(245, 159, 0, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-7);--mantine-color-orange-filled-hover: var(--mantine-color-orange-8);--mantine-color-orange-light: rgba(247, 103, 7, 0.1);--mantine-color-orange-light-hover: rgba(247, 103, 7, 0.12);--mantine-color-orange-light-color: var(--mantine-color-orange-7);--mantine-color-orange-outline: var(--mantine-color-orange-7);--mantine-color-orange-outline-hover: rgba(247, 103, 7, 0.05);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><style data-mantine-styles="inline">:root{--app-shell-navbar-width:calc(18.75rem * var(--mantine-scale));--app-shell-navbar-offset:calc(18.75rem * var(--mantine-scale));--app-shell-header-height:calc(3.75rem * var(--mantine-scale));--app-shell-header-offset:calc(3.75rem * var(--mantine-scale));--app-shell-padding:var(--mantine-spacing-md);}@media(max-width: 47.99375em){:root{--app-shell-navbar-width:100%;--app-shell-navbar-offset:0px;--app-shell-navbar-transform:translateX(calc(var(--app-shell-navbar-width) * -1));--app-shell-navbar-transform-rtl:translateX(var(--app-shell-navbar-width));}}</style><div style="--app-shell-transition-duration:200ms;--app-shell-transition-timing-function:ease;width:100%;flex:1" class="m_89ab340 mantine-AppShell-root" data-resizing="true" data-mode="fixed" id="mantine-_R_lu_"><header style="--app-shell-header-z-index:100;background:var(--alepha-background)" class="m_3b16f56b mantine-AppShell-header right-scroll-bar-position" data-with-border="true"><div style="align-items:center;justify-content:space-between;padding-inline:var(--mantine-spacing-md);height:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_2jdlu_"><div style="flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_dmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3ddmjdlu_"><button style="--burger-size:var(--burger-size-sm)" class="mantine-focus-auto m_fea6bf1a mantine-Burger-root m_87cf2631 mantine-UnstyledButton-root mantine-hidden-from-sm" data-size="sm" type="button"><div class="m_d4fb9cad mantine-Burger-burger" data-reduce-motion="true"></div></button></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_5ddmjdlu_"><div style="margin-left:-32px;border-right:1px solid var(--mantine-color-default-border);width:calc(4.875rem * var(--mantine-scale));height:calc(3.75rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_bdddmjdlu_"></div></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_7ddmjdlu_"><button style="--button-justify:space-between;--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-pink-outline-hover);--button-color:var(--mantine-color-pink-outline);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-pink-outline);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="outline" data-with-right-section="true" type="button" justify="space-between"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="gap:var(--mantine-spacing-xs);align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_barfddmjdlu_"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="gray" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg><div style="min-width:calc(12rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2mrarfddmjdlu_ mantine-visible-from-sm"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs);color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">Search...</p></div></div></span><span class="m_a74036a mantine-Button-section" data-position="right"><kbd style="--kbd-fz:var(--kbd-fz-sm)" class="m_dc6f14e2 mantine-Kbd-root mantine-visible-from-sm" data-size="sm">+K</kbd></span></span></button></div></div><div class="m_8bffd616 mantine-Flex-root __m__-_R_lmjdlu_"></div><div style="align-items:center;justify-content:end;flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_tmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3dtmjdlu_"><button style="--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button" aria-label="Toggle color scheme"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-pink-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-text);width:calc(1.5rem * var(--mantine-scale))" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-sun alepha-light-hidden"><path d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path><path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-moon alepha-dark-hidden"><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008"></path></svg></div></span></span></button></div></div></div></header><nav style="opacity:1;--app-shell-navbar-z-index:calc(100 + 1);background:var(--alepha-background)" class="m_45252eee mantine-AppShell-navbar alepha-sidebar-navbar" data-with-border="true" data-resizing="false" data-hover-expanded="false"><div style="flex-direction:column;padding-block:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_6ldlu_"><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_1mmldlu_"></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_2mmldlu_"><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldkdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dashboard "><path d="M10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M13.45 11.55l2.05 -2.05"></path><path d="M6.4 20a9 9 0 1 1 11.2 0l-11.2 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldkdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldkdmmmldlu_">Dashboard</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_lmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/actions"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldktmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-api "><path d="M4 13h5"></path><path d="M12 16v-8h3a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-3"></path><path d="M20 8v8"></path><path d="M9 16v-5.5a2.5 2.5 0 0 0 -5 0v5.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldktmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldktmmmldlu_">Actions</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_15mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/queues"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldl5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-stack-2 "><path d="M12 4l-8 4l8 4l8 -4l-8 -4"></path><path d="M4 12l8 4l8 -4"></path><path d="M4 16l8 4l8 -4"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldl5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldl5mmmldlu_">Queues</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/topics"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldldmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-circle "><path d="M3 20l1.3 -3.9c-2.324 -3.437 -1.426 -7.872 2.1 -10.374c3.526 -2.501 8.59 -2.296 11.845 .48c3.255 2.777 3.695 7.266 1.029 10.501c-2.666 3.235 -7.615 4.215 -11.574 2.293l-4.7 1"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldldmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldldmmmldlu_">Topics</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/caches"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldllmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-archive "><path d="M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2"></path><path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10"></path><path d="M10 12l4 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldllmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldllmmmldlu_">Caches</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/db"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldltmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-database "><path d="M4 6a8 3 0 1 0 16 0a8 3 0 1 0 -16 0"></path><path d="M4 6v6a8 3 0 0 0 16 0v-6"></path><path d="M4 12v6a8 3 0 0 0 16 0v-6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldltmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldltmmmldlu_">DB Studio</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_25mmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/env"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-variable "><path d="M5 4c-2.5 5 -2.5 10 0 16m14 -16c2.5 5 2.5 10 0 16m-10 -11h1c1 0 1 1 2.016 3.527c.984 2.473 .984 3.473 1.984 3.473h1"></path><path d="M8 16c1.5 0 3 -2 4 -3.5s2.5 -3.5 4 -3.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmdmmmldlu_">Environment</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/atoms"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmlmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-atom "><path d="M12 12v.01"></path><path d="M19.071 4.929c-1.562 -1.562 -6 .337 -9.9 4.243c-3.905 3.905 -5.804 8.337 -4.242 9.9c1.562 1.561 6 -.338 9.9 -4.244c3.905 -3.905 5.804 -8.337 4.242 -9.9"></path><path d="M4.929 4.929c-1.562 1.562 .337 6 4.243 9.9c3.905 3.905 8.337 5.804 9.9 4.242c1.561 -1.562 -.338 -6 -4.244 -9.9c-3.905 -3.905 -8.337 -5.804 -9.9 -4.242"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmlmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmlmmmldlu_">Atoms</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2tmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_35mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/graph"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldn5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-topology-ring "><path d="M14 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M14 4a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M6 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M22 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M13.5 5.5l5 5"></path><path d="M5.5 13.5l5 5"></path><path d="M13.5 18.5l5 -5"></path><path d="M10.5 5.5l-5 5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldn5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldn5mmmldlu_">Graph</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_3dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/logs"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldndmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-logs "><path d="M4 12h.01"></path><path d="M4 6h.01"></path><path d="M4 18h.01"></path><path d="M8 18h2"></path><path d="M8 12h2"></path><path d="M8 6h2"></path><path d="M14 6h6"></path><path d="M14 12h6"></path><path d="M14 18h6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldndmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldndmmmldlu_">Logs</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_3mmldlu_"></div></div><div style="cursor:col-resize;user-select:none;width:calc(0.75rem * var(--mantine-scale));position:absolute;top:0rem;bottom:0rem;right:calc(-0.375rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_aldlu_"></div></nav><main style="flex-direction:column;padding-top:calc(3.75rem * var(--mantine-scale));padding-bottom:0rem;padding-left:calc(18.75rem * var(--mantine-scale));padding-right:0rem;display:flex;flex:1" class="m_8983817 mantine-AppShell-main alepha-sidebar-main" data-resizing="false"><div style="gap:var(--mantine-spacing-xl);flex-direction:column;padding:var(--mantine-spacing-xl);width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_2ndlu_"><div style="gap:var(--mantine-spacing-sm);align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_dmndlu_"><div style="--ti-size:calc(2rem * var(--mantine-scale));--ti-bg:var(--mantine-color-orange-light);--ti-color:var(--mantine-color-orange-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent" class="m_7341320d mantine-ThemeIcon-root" data-variant="light" color="orange"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-stack-2 "><path d="M12 4l-8 4l8 4l8 -4l-8 -4"></path><path d="M4 12l8 4l8 -4"></path><path d="M4 16l8 4l8 -4"></path></svg></div><p style="--text-fz:var(--mantine-font-size-xl);--text-lh:var(--mantine-line-height-xl);font-weight:600" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xl">Queue Monitor</p></div><p style="color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Background job queues - coming soon</p></div></main></div></div>
|
|
20
|
-
<script>window.__ssr={"layers":[{"part":"/","name":"root","config":{"query":{},"params":{}},"props":{}},{"name":"layout","config":{"query":{},"params":{}},"props":{}},{"part":"/queues","name":"queues","config":{"query":{},"params":{}},"props":{}}]}</script></body>
|
|
21
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html data-theme="Midnight">
|
|
3
|
-
<head><meta charset="UTF-8">
|
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
5
|
-
<link rel="stylesheet" href="/devtools/asset.CBnMq2vO.css" crossorigin="">
|
|
6
|
-
<script type="module" crossorigin="" src="/devtools/entry.Cry3rxEI.js"></script>
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div id="root"><script data-mantine-script="true">try {
|
|
10
|
-
var _colorScheme = window.localStorage.getItem("mantine-color-scheme-value");
|
|
11
|
-
var colorScheme = _colorScheme === "light" || _colorScheme === "dark" || _colorScheme === "auto" ? _colorScheme : "light";
|
|
12
|
-
var computedColorScheme = colorScheme !== "auto" ? colorScheme : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
13
|
-
document.documentElement.setAttribute("data-mantine-color-scheme", computedColorScheme);
|
|
14
|
-
} catch (e) {}
|
|
15
|
-
</script><style data-mantine-styles="true">:root, :host{--mantine-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";--mantine-font-family-monospace: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--mantine-font-family-headings: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--mantine-heading-font-weight: 600;--mantine-radius-default: 6px;--mantine-primary-color-filled: var(--mantine-color-pink-filled);--mantine-primary-color-filled-hover: var(--mantine-color-pink-filled-hover);--mantine-primary-color-light: var(--mantine-color-pink-light);--mantine-primary-color-light-hover: var(--mantine-color-pink-light-hover);--mantine-primary-color-light-color: var(--mantine-color-pink-light-color);--mantine-radius-xs: 3px;--mantine-radius-sm: 6px;--mantine-radius-md: 6px;--mantine-radius-lg: 8px;--mantine-radius-xl: 12px;--mantine-primary-color-0: var(--mantine-color-pink-0);--mantine-primary-color-1: var(--mantine-color-pink-1);--mantine-primary-color-2: var(--mantine-color-pink-2);--mantine-primary-color-3: var(--mantine-color-pink-3);--mantine-primary-color-4: var(--mantine-color-pink-4);--mantine-primary-color-5: var(--mantine-color-pink-5);--mantine-primary-color-6: var(--mantine-color-pink-6);--mantine-primary-color-7: var(--mantine-color-pink-7);--mantine-primary-color-8: var(--mantine-color-pink-8);--mantine-primary-color-9: var(--mantine-color-pink-9);--mantine-color-dark-0: #d0d7de;--mantine-color-dark-1: #8b949e;--mantine-color-dark-2: #6e7681;--mantine-color-dark-3: #484f58;--mantine-color-dark-4: #30363d;--mantine-color-dark-5: #21262d;--mantine-color-dark-6: #161b22;--mantine-color-dark-7: #151b23;--mantine-color-dark-8: #0d1117;--mantine-color-dark-9: #010409;--mantine-color-gray-0: #f6f8fa;--mantine-color-gray-1: #eaeef2;--mantine-color-gray-2: #d0d7de;--mantine-color-gray-3: #afb8c1;--mantine-color-gray-4: #8c959f;--mantine-color-gray-5: #6e7781;--mantine-color-gray-6: #57606a;--mantine-color-gray-7: #424a53;--mantine-color-gray-8: #32383f;--mantine-color-gray-9: #24292f;--mantine-color-red-0: #ffebe9;--mantine-color-red-1: #ffcecb;--mantine-color-red-2: #ffaba8;--mantine-color-red-3: #ff8182;--mantine-color-red-4: #fa4549;--mantine-color-red-5: #cf222e;--mantine-color-red-6: #a40e26;--mantine-color-red-7: #82071e;--mantine-color-red-8: #660018;--mantine-color-red-9: #4c0014;--mantine-color-blue-0: #ddf4ff;--mantine-color-blue-1: #b6e3ff;--mantine-color-blue-2: #80ccff;--mantine-color-blue-3: #54aeff;--mantine-color-blue-4: #218bff;--mantine-color-blue-5: #0969da;--mantine-color-blue-6: #0550ae;--mantine-color-blue-7: #033d8b;--mantine-color-blue-8: #0a3069;--mantine-color-blue-9: #002155;--mantine-color-green-0: #dafbe1;--mantine-color-green-1: #aceebb;--mantine-color-green-2: #6fdd8b;--mantine-color-green-3: #4ac26b;--mantine-color-green-4: #2da44e;--mantine-color-green-5: #1a7f37;--mantine-color-green-6: #116329;--mantine-color-green-7: #044f1e;--mantine-color-green-8: #003d16;--mantine-color-green-9: #002d11;--mantine-h1-font-size: 2rem;--mantine-h1-line-height: 1.25;--mantine-h1-font-weight: 600;--mantine-h2-font-size: 1.5rem;--mantine-h2-line-height: 1.3;--mantine-h2-font-weight: 600;--mantine-h3-font-size: 1.25rem;--mantine-h3-font-weight: 600;--mantine-h4-font-size: 1rem;--mantine-h4-line-height: 1.5;--mantine-h4-font-weight: 600;--mantine-h5-font-size: 0.875rem;--mantine-h5-font-weight: 600;--mantine-h6-font-size: 0.75rem;--mantine-h6-font-weight: 600;}
|
|
16
|
-
|
|
17
|
-
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-pink-4);--mantine-color-dark-light: rgba(22, 27, 34, 0.15);--mantine-color-dark-light-hover: rgba(22, 27, 34, 0.2);--mantine-color-dark-outline-hover: rgba(48, 54, 61, 0.05);--mantine-color-gray-light: rgba(87, 96, 106, 0.15);--mantine-color-gray-light-hover: rgba(87, 96, 106, 0.2);--mantine-color-gray-outline-hover: rgba(140, 149, 159, 0.05);--mantine-color-red-light: rgba(164, 14, 38, 0.15);--mantine-color-red-light-hover: rgba(164, 14, 38, 0.2);--mantine-color-red-outline-hover: rgba(250, 69, 73, 0.05);--mantine-color-blue-light: rgba(5, 80, 174, 0.15);--mantine-color-blue-light-hover: rgba(5, 80, 174, 0.2);--mantine-color-blue-outline-hover: rgba(33, 139, 255, 0.05);--mantine-color-green-light: rgba(17, 99, 41, 0.15);--mantine-color-green-light-hover: rgba(17, 99, 41, 0.2);--mantine-color-green-outline-hover: rgba(45, 164, 78, 0.05);}
|
|
18
|
-
|
|
19
|
-
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-pink-7);--mantine-color-dark-filled: var(--mantine-color-dark-7);--mantine-color-dark-filled-hover: var(--mantine-color-dark-8);--mantine-color-dark-light: rgba(21, 27, 35, 0.1);--mantine-color-dark-light-hover: rgba(21, 27, 35, 0.12);--mantine-color-dark-light-color: var(--mantine-color-dark-7);--mantine-color-dark-outline: var(--mantine-color-dark-7);--mantine-color-dark-outline-hover: rgba(21, 27, 35, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-7);--mantine-color-gray-filled-hover: var(--mantine-color-gray-8);--mantine-color-gray-light: rgba(66, 74, 83, 0.1);--mantine-color-gray-light-hover: rgba(66, 74, 83, 0.12);--mantine-color-gray-light-color: var(--mantine-color-gray-7);--mantine-color-gray-outline: var(--mantine-color-gray-7);--mantine-color-gray-outline-hover: rgba(66, 74, 83, 0.05);--mantine-color-red-filled: var(--mantine-color-red-7);--mantine-color-red-filled-hover: var(--mantine-color-red-8);--mantine-color-red-light: rgba(130, 7, 30, 0.1);--mantine-color-red-light-hover: rgba(130, 7, 30, 0.12);--mantine-color-red-light-color: var(--mantine-color-red-7);--mantine-color-red-outline: var(--mantine-color-red-7);--mantine-color-red-outline-hover: rgba(130, 7, 30, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-7);--mantine-color-pink-filled-hover: var(--mantine-color-pink-8);--mantine-color-pink-light: rgba(214, 51, 108, 0.1);--mantine-color-pink-light-hover: rgba(214, 51, 108, 0.12);--mantine-color-pink-light-color: var(--mantine-color-pink-7);--mantine-color-pink-outline: var(--mantine-color-pink-7);--mantine-color-pink-outline-hover: rgba(214, 51, 108, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-7);--mantine-color-grape-filled-hover: var(--mantine-color-grape-8);--mantine-color-grape-light: rgba(174, 62, 201, 0.1);--mantine-color-grape-light-hover: rgba(174, 62, 201, 0.12);--mantine-color-grape-light-color: var(--mantine-color-grape-7);--mantine-color-grape-outline: var(--mantine-color-grape-7);--mantine-color-grape-outline-hover: rgba(174, 62, 201, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-7);--mantine-color-violet-filled-hover: var(--mantine-color-violet-8);--mantine-color-violet-light: rgba(112, 72, 232, 0.1);--mantine-color-violet-light-hover: rgba(112, 72, 232, 0.12);--mantine-color-violet-light-color: var(--mantine-color-violet-7);--mantine-color-violet-outline: var(--mantine-color-violet-7);--mantine-color-violet-outline-hover: rgba(112, 72, 232, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-7);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-8);--mantine-color-indigo-light: rgba(66, 99, 235, 0.1);--mantine-color-indigo-light-hover: rgba(66, 99, 235, 0.12);--mantine-color-indigo-light-color: var(--mantine-color-indigo-7);--mantine-color-indigo-outline: var(--mantine-color-indigo-7);--mantine-color-indigo-outline-hover: rgba(66, 99, 235, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-7);--mantine-color-blue-filled-hover: var(--mantine-color-blue-8);--mantine-color-blue-light: rgba(3, 61, 139, 0.1);--mantine-color-blue-light-hover: rgba(3, 61, 139, 0.12);--mantine-color-blue-light-color: var(--mantine-color-blue-7);--mantine-color-blue-outline: var(--mantine-color-blue-7);--mantine-color-blue-outline-hover: rgba(3, 61, 139, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-7);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-8);--mantine-color-cyan-light: rgba(16, 152, 173, 0.1);--mantine-color-cyan-light-hover: rgba(16, 152, 173, 0.12);--mantine-color-cyan-light-color: var(--mantine-color-cyan-7);--mantine-color-cyan-outline: var(--mantine-color-cyan-7);--mantine-color-cyan-outline-hover: rgba(16, 152, 173, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-7);--mantine-color-teal-filled-hover: var(--mantine-color-teal-8);--mantine-color-teal-light: rgba(12, 166, 120, 0.1);--mantine-color-teal-light-hover: rgba(12, 166, 120, 0.12);--mantine-color-teal-light-color: var(--mantine-color-teal-7);--mantine-color-teal-outline: var(--mantine-color-teal-7);--mantine-color-teal-outline-hover: rgba(12, 166, 120, 0.05);--mantine-color-green-filled: var(--mantine-color-green-7);--mantine-color-green-filled-hover: var(--mantine-color-green-8);--mantine-color-green-light: rgba(4, 79, 30, 0.1);--mantine-color-green-light-hover: rgba(4, 79, 30, 0.12);--mantine-color-green-light-color: var(--mantine-color-green-7);--mantine-color-green-outline: var(--mantine-color-green-7);--mantine-color-green-outline-hover: rgba(4, 79, 30, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-7);--mantine-color-lime-filled-hover: var(--mantine-color-lime-8);--mantine-color-lime-light: rgba(116, 184, 22, 0.1);--mantine-color-lime-light-hover: rgba(116, 184, 22, 0.12);--mantine-color-lime-light-color: var(--mantine-color-lime-7);--mantine-color-lime-outline: var(--mantine-color-lime-7);--mantine-color-lime-outline-hover: rgba(116, 184, 22, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-7);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-8);--mantine-color-yellow-light: rgba(245, 159, 0, 0.1);--mantine-color-yellow-light-hover: rgba(245, 159, 0, 0.12);--mantine-color-yellow-light-color: var(--mantine-color-yellow-7);--mantine-color-yellow-outline: var(--mantine-color-yellow-7);--mantine-color-yellow-outline-hover: rgba(245, 159, 0, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-7);--mantine-color-orange-filled-hover: var(--mantine-color-orange-8);--mantine-color-orange-light: rgba(247, 103, 7, 0.1);--mantine-color-orange-light-hover: rgba(247, 103, 7, 0.12);--mantine-color-orange-light-color: var(--mantine-color-orange-7);--mantine-color-orange-outline: var(--mantine-color-orange-7);--mantine-color-orange-outline-hover: rgba(247, 103, 7, 0.05);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><style data-mantine-styles="inline">:root{--app-shell-navbar-width:calc(18.75rem * var(--mantine-scale));--app-shell-navbar-offset:calc(18.75rem * var(--mantine-scale));--app-shell-header-height:calc(3.75rem * var(--mantine-scale));--app-shell-header-offset:calc(3.75rem * var(--mantine-scale));--app-shell-padding:var(--mantine-spacing-md);}@media(max-width: 47.99375em){:root{--app-shell-navbar-width:100%;--app-shell-navbar-offset:0px;--app-shell-navbar-transform:translateX(calc(var(--app-shell-navbar-width) * -1));--app-shell-navbar-transform-rtl:translateX(var(--app-shell-navbar-width));}}</style><div style="--app-shell-transition-duration:200ms;--app-shell-transition-timing-function:ease;width:100%;flex:1" class="m_89ab340 mantine-AppShell-root" data-resizing="true" data-mode="fixed" id="mantine-_R_lu_"><header style="--app-shell-header-z-index:100;background:var(--alepha-background)" class="m_3b16f56b mantine-AppShell-header right-scroll-bar-position" data-with-border="true"><div style="align-items:center;justify-content:space-between;padding-inline:var(--mantine-spacing-md);height:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_2jdlu_"><div style="flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_dmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3ddmjdlu_"><button style="--burger-size:var(--burger-size-sm)" class="mantine-focus-auto m_fea6bf1a mantine-Burger-root m_87cf2631 mantine-UnstyledButton-root mantine-hidden-from-sm" data-size="sm" type="button"><div class="m_d4fb9cad mantine-Burger-burger" data-reduce-motion="true"></div></button></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_5ddmjdlu_"><div style="margin-left:-32px;border-right:1px solid var(--mantine-color-default-border);width:calc(4.875rem * var(--mantine-scale));height:calc(3.75rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_bdddmjdlu_"></div></div><div style="align-items:center;margin-left:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_7ddmjdlu_"><button style="--button-justify:space-between;--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-pink-outline-hover);--button-color:var(--mantine-color-pink-outline);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-pink-outline);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="outline" data-with-right-section="true" type="button" justify="space-between"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="gap:var(--mantine-spacing-xs);align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_barfddmjdlu_"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="gray" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-search "><path d="M3 10a7 7 0 1 0 14 0a7 7 0 1 0 -14 0"></path><path d="M21 21l-6 -6"></path></svg><div style="min-width:calc(12rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2mrarfddmjdlu_ mantine-visible-from-sm"><p style="--text-fz:var(--mantine-font-size-xs);--text-lh:var(--mantine-line-height-xs);color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root" data-size="xs">Search...</p></div></div></span><span class="m_a74036a mantine-Button-section" data-position="right"><kbd style="--kbd-fz:var(--kbd-fz-sm)" class="m_dc6f14e2 mantine-Kbd-root mantine-visible-from-sm" data-size="sm">+K</kbd></span></span></button></div></div><div class="m_8bffd616 mantine-Flex-root __m__-_R_lmjdlu_"></div><div style="align-items:center;justify-content:end;flex:1" class="m_8bffd616 mantine-Flex-root __m__-_R_tmjdlu_"><div style="align-items:center;margin-left:0rem" class="m_8bffd616 mantine-Flex-root __m__-_R_3dtmjdlu_"><button style="--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text)" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" type="button" aria-label="Toggle color scheme"><span class="m_80f1301b mantine-Button-inner"><span class="m_811560b9 mantine-Button-label"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-pink-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:var(--mantine-color-text);width:calc(1.5rem * var(--mantine-scale))" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-sun alepha-light-hidden"><path d="M8 12a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"></path><path d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-moon alepha-dark-hidden"><path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454l0 .008"></path></svg></div></span></span></button></div></div></div></header><nav style="opacity:1;--app-shell-navbar-z-index:calc(100 + 1);background:var(--alepha-background)" class="m_45252eee mantine-AppShell-navbar alepha-sidebar-navbar" data-with-border="true" data-resizing="false" data-hover-expanded="false"><div style="flex-direction:column;padding-block:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_6ldlu_"><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_1mmldlu_"></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md);flex:1" class="alepha-sidebar-scroll m_8bffd616 mantine-Flex-root __m__-_R_2mmldlu_"><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldkdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-dashboard "><path d="M10 13a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M13.45 11.55l2.05 -2.05"></path><path d="M6.4 20a9 9 0 1 1 11.2 0l-11.2 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldkdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldkdmmmldlu_">Dashboard</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_lmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/actions"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldktmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-api "><path d="M4 13h5"></path><path d="M12 16v-8h3a2 2 0 0 1 2 2v1a2 2 0 0 1 -2 2h-3"></path><path d="M20 8v8"></path><path d="M9 16v-5.5a2.5 2.5 0 0 0 -5 0v5.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldktmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldktmmmldlu_">Actions</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_15mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/queues"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldl5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-stack-2 "><path d="M12 4l-8 4l8 4l8 -4l-8 -4"></path><path d="M4 12l8 4l8 -4"></path><path d="M4 16l8 4l8 -4"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldl5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldl5mmmldlu_">Queues</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:var(--mantine-color-default);--button-hover:var(--mantine-color-default-hover);--button-color:var(--mantine-color-default-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="default" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/topics"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldldmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-message-circle "><path d="M3 20l1.3 -3.9c-2.324 -3.437 -1.426 -7.872 2.1 -10.374c3.526 -2.501 8.59 -2.296 11.845 .48c3.255 2.777 3.695 7.266 1.029 10.501c-2.666 3.235 -7.615 4.215 -11.574 2.293l-4.7 1"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldldmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldldmmmldlu_">Topics</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/caches"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldllmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-archive "><path d="M3 6a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2"></path><path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10"></path><path d="M10 12l4 0"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldllmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldllmmmldlu_">Caches</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_1tmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/db"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldltmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-database "><path d="M4 6a8 3 0 1 0 16 0a8 3 0 1 0 -16 0"></path><path d="M4 6v6a8 3 0 0 0 16 0v-6"></path><path d="M4 12v6a8 3 0 0 0 16 0v-6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldltmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldltmmmldlu_">DB Studio</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_25mmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/env"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmdmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-variable "><path d="M5 4c-2.5 5 -2.5 10 0 16m14 -16c2.5 5 2.5 10 0 16m-10 -11h1c1 0 1 1 2.016 3.527c.984 2.473 .984 3.473 1.984 3.473h1"></path><path d="M8 16c1.5 0 3 -2 4 -3.5s2.5 -3.5 4 -3.5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmdmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmdmmmldlu_">Environment</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_2lmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/atoms"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldmlmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-atom "><path d="M12 12v.01"></path><path d="M19.071 4.929c-1.562 -1.562 -6 .337 -9.9 4.243c-3.905 3.905 -5.804 8.337 -4.242 9.9c1.562 1.561 6 -.338 9.9 -4.244c3.905 -3.905 5.804 -8.337 4.242 -9.9"></path><path d="M4.929 4.929c-1.562 1.562 .337 6 4.243 9.9c3.905 3.905 8.337 5.804 9.9 4.242c1.561 -1.562 -.338 -6 -4.244 -9.9c-3.905 -3.905 -8.337 -5.804 -9.9 -4.242"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldmlmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldmlmmmldlu_">Atoms</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="margin-inline:var(--mantine-spacing-sm);margin-block:var(--mantine-spacing-xs);background:var(--alepha-border);height:calc(0.0625rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_2tmmmldlu_"></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_35mmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/graph"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldn5mmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-topology-ring "><path d="M14 20a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M14 4a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M6 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M22 12a2 2 0 1 0 -4 0a2 2 0 0 0 4 0"></path><path d="M13.5 5.5l5 5"></path><path d="M5.5 13.5l5 5"></path><path d="M13.5 18.5l5 -5"></path><path d="M10.5 5.5l-5 5"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldn5mmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldn5mmmldlu_">Graph</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div><div style="flex-direction:column;padding-inline-start:0rem;position:relative" class="m_8bffd616 mantine-Flex-root __m__-_R_3dmmmldlu_"><a style="--button-justify:space-between;--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-fz:var(--mantine-font-size-sm);--button-radius:var(--mantine-radius-md);--button-bg:transparent;--button-hover:var(--mantine-color-gray-light-hover);--button-color:var(--mantine-color-gray-light-color);--button-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding-inline:var(--mantine-spacing-xs);color:var(--mantine-color-text);width:100%" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root" data-variant="subtle" data-size="sm" data-with-left-section="true" justify="space-between" href="/devtools/logs"><span class="m_80f1301b mantine-Button-inner"><span class="m_a74036a mantine-Button-section" data-position="left"><div style="gap:var(--mantine-spacing-sm);align-items:center;width:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_lldndmmmldlu_"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-logs "><path d="M4 12h.01"></path><path d="M4 6h.01"></path><path d="M4 18h.01"></path><path d="M8 18h2"></path><path d="M8 12h2"></path><path d="M8 6h2"></path><path d="M14 6h6"></path><path d="M14 12h6"></path><path d="M14 18h6"></path></svg><div style="flex-direction:column" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlldndmmmldlu_"><div class="m_8bffd616 mantine-Flex-root __m__-_R_bddlldndmmmldlu_">Logs</div></div></div></span><span class="m_811560b9 mantine-Button-label"></span></span></a></div></div><div style="gap:calc(0.125rem * var(--mantine-scale));flex-direction:column;padding-inline:var(--mantine-spacing-md)" class="m_8bffd616 mantine-Flex-root __m__-_R_3mmldlu_"></div></div><div style="cursor:col-resize;user-select:none;width:calc(0.75rem * var(--mantine-scale));position:absolute;top:0rem;bottom:0rem;right:calc(-0.375rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_aldlu_"></div></nav><main style="flex-direction:column;padding-top:calc(3.75rem * var(--mantine-scale));padding-bottom:0rem;padding-left:calc(18.75rem * var(--mantine-scale));padding-right:0rem;display:flex;flex:1" class="m_8983817 mantine-AppShell-main alepha-sidebar-main" data-resizing="false"><div style="align-items:center;justify-content:center;height:100%" class="m_8bffd616 mantine-Flex-root __m__-_R_2ndlu_"><p style="color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Loading...</p></div></main></div></div>
|
|
20
|
-
<script>window.__ssr={"layers":[{"part":"/","name":"root","config":{"query":{},"params":{}},"props":{}},{"name":"layout","config":{"query":{},"params":{}},"props":{}},{"part":"/topics","name":"topics","config":{"query":{},"params":{}},"props":{}}]}</script></body>
|
|
21
|
-
</html>
|
|
Binary file
|
|
Binary file
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { $hook, $inject, Alepha, pageQuerySchema, t } from "alepha";
|
|
4
|
-
import { $batch } from "alepha/batch";
|
|
5
|
-
import { $logger, JsonFormatterProvider, type LogEntry } from "alepha/logger";
|
|
6
|
-
import { parseQueryString } from "alepha/orm";
|
|
7
|
-
import { $route, ServerProvider } from "alepha/server";
|
|
8
|
-
import { $serve } from "alepha/server/static";
|
|
9
|
-
import { type DevLogEntry, logs } from "./entities/logs.ts";
|
|
10
|
-
import { DevToolsMetadataProvider } from "./providers/DevToolsMetadataProvider.ts";
|
|
11
|
-
import { LogRepository } from "./repositories/LogRepository.ts";
|
|
12
|
-
import { devMetadataSchema } from "./schemas/DevMetadata.ts";
|
|
13
|
-
|
|
14
|
-
export class DevToolsProvider {
|
|
15
|
-
protected readonly log = $logger();
|
|
16
|
-
protected readonly alepha = $inject(Alepha);
|
|
17
|
-
protected readonly serverProvider = $inject(ServerProvider);
|
|
18
|
-
protected readonly jsonFormatter = $inject(JsonFormatterProvider);
|
|
19
|
-
protected readonly logs = $inject(LogRepository);
|
|
20
|
-
protected readonly devCollectorProvider = $inject(DevToolsMetadataProvider);
|
|
21
|
-
|
|
22
|
-
protected readonly onStart = $hook({
|
|
23
|
-
on: "start",
|
|
24
|
-
handler: () => {
|
|
25
|
-
this.log.info("Devtools OK", {
|
|
26
|
-
url: `${this.serverProvider.hostname}/devtools/`,
|
|
27
|
-
});
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
protected batchLogs = $batch({
|
|
32
|
-
maxSize: 50,
|
|
33
|
-
maxDuration: [10, "seconds"],
|
|
34
|
-
schema: logs.insertSchema,
|
|
35
|
-
handler: async (entries) => {
|
|
36
|
-
await this.logs.createMany(entries);
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
protected readonly onLog = $hook({
|
|
41
|
-
on: "log",
|
|
42
|
-
handler: async (ev: { message?: string; entry: LogEntry }) => {
|
|
43
|
-
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
44
|
-
// CAUTION: It's very easy to create an infinite loop here.
|
|
45
|
-
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
46
|
-
|
|
47
|
-
try {
|
|
48
|
-
if (!this.alepha.isStarted()) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
ev.entry.message = ev.entry.message?.slice(0, 2000); // limit message size
|
|
53
|
-
|
|
54
|
-
if (ev.entry.module === "alepha.devtools") {
|
|
55
|
-
// skip devtools logs to avoid infinite loop
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (ev.entry.level === "TRACE" && ev.entry.module === "alepha.batch") {
|
|
60
|
-
// skip batch trace logs to avoid infinite loop
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (this.alepha.isProduction() && ev.entry.level === "TRACE") {
|
|
65
|
-
// skip trace logs in production
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const entry = {
|
|
70
|
-
...ev.entry,
|
|
71
|
-
data:
|
|
72
|
-
ev.entry.data instanceof Error
|
|
73
|
-
? this.jsonFormatter.formatJsonError(ev.entry.data)
|
|
74
|
-
: typeof ev.entry.data === "object" &&
|
|
75
|
-
!Array.isArray(ev.entry.data)
|
|
76
|
-
? ev.entry.data
|
|
77
|
-
: { data: ev.entry.data },
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
await this.batchLogs.push(entry as DevLogEntry);
|
|
81
|
-
} catch (error) {
|
|
82
|
-
// DO TO NOT WITH THE LOGGER HERE TO AVOID INFINITE LOOP
|
|
83
|
-
console.error(error, ev);
|
|
84
|
-
}
|
|
85
|
-
},
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
protected readonly uiRoute = $serve({
|
|
89
|
-
path: "/devtools",
|
|
90
|
-
root: join(fileURLToPath(import.meta.url), "../../../assets/devtools"),
|
|
91
|
-
historyApiFallback: true,
|
|
92
|
-
});
|
|
93
|
-
|
|
94
|
-
protected readonly metadataRoute = $route({
|
|
95
|
-
method: "GET",
|
|
96
|
-
path: "/devtools/api/metadata",
|
|
97
|
-
silent: true,
|
|
98
|
-
schema: {
|
|
99
|
-
response: devMetadataSchema,
|
|
100
|
-
},
|
|
101
|
-
handler: () => {
|
|
102
|
-
return this.devCollectorProvider.getMetadata();
|
|
103
|
-
},
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
protected readonly logsRoute = $route({
|
|
107
|
-
method: "GET",
|
|
108
|
-
path: "/devtools/api/logs",
|
|
109
|
-
silent: true,
|
|
110
|
-
schema: {
|
|
111
|
-
query: t.extend(pageQuerySchema, {
|
|
112
|
-
search: t.optional(t.string()),
|
|
113
|
-
}),
|
|
114
|
-
response: t.page(logs.schema),
|
|
115
|
-
},
|
|
116
|
-
handler: ({ query }) => {
|
|
117
|
-
query.sort ??= "-timestamp";
|
|
118
|
-
return this.logs.paginate(
|
|
119
|
-
query,
|
|
120
|
-
query.search
|
|
121
|
-
? {
|
|
122
|
-
where: parseQueryString(query.search),
|
|
123
|
-
}
|
|
124
|
-
: {},
|
|
125
|
-
{
|
|
126
|
-
count: true,
|
|
127
|
-
},
|
|
128
|
-
);
|
|
129
|
-
},
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
protected readonly updateAtomRoute = $route({
|
|
133
|
-
method: "POST",
|
|
134
|
-
path: "/devtools/api/atoms",
|
|
135
|
-
silent: true,
|
|
136
|
-
schema: {
|
|
137
|
-
body: t.object({
|
|
138
|
-
name: t.text(),
|
|
139
|
-
value: t.any(),
|
|
140
|
-
}),
|
|
141
|
-
response: t.object({
|
|
142
|
-
success: t.boolean(),
|
|
143
|
-
}),
|
|
144
|
-
},
|
|
145
|
-
handler: ({ body }) => {
|
|
146
|
-
const atoms = this.alepha.store.getAtoms(false);
|
|
147
|
-
const atomEntry = atoms.find((a) => a.atom.key === body.name);
|
|
148
|
-
|
|
149
|
-
if (atomEntry) {
|
|
150
|
-
this.alepha.store.set(atomEntry.atom, body.value);
|
|
151
|
-
return { success: true };
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return { success: false };
|
|
155
|
-
},
|
|
156
|
-
});
|
|
157
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { SqliteProvider } from "alepha/orm";
|
|
2
|
-
|
|
3
|
-
export class DevToolsDatabaseProvider extends SqliteProvider {
|
|
4
|
-
public get name() {
|
|
5
|
-
return "";
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
protected readonly options = {
|
|
9
|
-
path: ":memory:",
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
public override async migrate(): Promise<void> {
|
|
13
|
-
this.sqlite.exec(`
|
|
14
|
-
CREATE TABLE IF NOT EXISTS logs (
|
|
15
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
16
|
-
level TEXT NOT NULL,
|
|
17
|
-
message TEXT,
|
|
18
|
-
service TEXT,
|
|
19
|
-
module TEXT,
|
|
20
|
-
context TEXT,
|
|
21
|
-
app TEXT,
|
|
22
|
-
data TEXT,
|
|
23
|
-
timestamp INTEGER NOT NULL
|
|
24
|
-
)
|
|
25
|
-
`);
|
|
26
|
-
}
|
|
27
|
-
}
|