006 plan ready

This commit is contained in:
2025-12-26 19:36:49 +03:00
parent a43f8fb021
commit d197303b9f
14 changed files with 768 additions and 51 deletions

View File

@@ -26,57 +26,85 @@
* ```
*/
declare module '$env/static/private' {
export const LESSOPEN: string;
export const USER: string;
export const npm_config_user_agent: string;
export const XDG_SESSION_TYPE: string;
export const npm_node_execpath: string;
export const SHLVL: string;
export const npm_config_noproxy: string;
export const LESS: string;
export const HOME: string;
export const OLDPWD: string;
export const DESKTOP_SESSION: string;
export const npm_package_json: string;
export const LSCOLORS: string;
export const ZSH: string;
export const GNOME_SHELL_SESSION_MODE: string;
export const GTK_MODULES: string;
export const PAGER: string;
export const PS1: string;
export const npm_config_userconfig: string;
export const npm_config_local_prefix: string;
export const SYSTEMD_EXEC_PID: string;
export const DBUS_SESSION_BUS_ADDRESS: string;
export const WSL_DISTRO_NAME: string;
export const COLORTERM: string;
export const COLOR: string;
export const npm_config_metrics_registry: string;
export const WAYLAND_DISPLAY: string;
export const LOGNAME: string;
export const NAME: string;
export const WSL_INTEROP: string;
export const PULSE_SERVER: string;
export const SDKMAN_CANDIDATES_API: string;
export const _: string;
export const npm_config_prefix: string;
export const npm_config_npm_version: string;
export const MEMORY_PRESSURE_WATCH: string;
export const XDG_SESSION_CLASS: string;
export const USERNAME: string;
export const TERM: string;
export const npm_config_cache: string;
export const GNOME_DESKTOP_SESSION_ID: string;
export const npm_config_node_gyp: string;
export const PATH: string;
export const SDKMAN_CANDIDATES_DIR: string;
export const NODE: string;
export const npm_package_name: string;
export const XDG_MENU_PREFIX: string;
export const SDKMAN_BROKER_API: string;
export const GNOME_TERMINAL_SCREEN: string;
export const GNOME_SETUP_DISPLAY: string;
export const XDG_RUNTIME_DIR: string;
export const DISPLAY: string;
export const LANG: string;
export const XDG_CURRENT_DESKTOP: string;
export const VIRTUAL_ENV_PROMPT: string;
export const XMODIFIERS: string;
export const XDG_SESSION_DESKTOP: string;
export const XAUTHORITY: string;
export const LS_COLORS: string;
export const GNOME_TERMINAL_SERVICE: string;
export const SDKMAN_DIR: string;
export const SDKMAN_PLATFORM: string;
export const npm_lifecycle_script: string;
export const SSH_AUTH_SOCK: string;
export const SHELL: string;
export const npm_package_version: string;
export const npm_lifecycle_event: string;
export const QT_ACCESSIBILITY: string;
export const GDMSESSION: string;
export const GOOGLE_CLOUD_PROJECT: string;
export const LESSCLOSE: string;
export const GPG_AGENT_INFO: string;
export const VIRTUAL_ENV: string;
export const QT_IM_MODULE: string;
export const npm_config_globalconfig: string;
export const npm_config_init_module: string;
export const JAVA_HOME: string;
export const PWD: string;
export const npm_config_globalignorefile: string;
export const npm_execpath: string;
export const XDG_DATA_DIRS: string;
export const npm_config_global_prefix: string;
export const npm_command: string;
export const WSL2_GUI_APPS_ENABLED: string;
export const HOSTTYPE: string;
export const WSLENV: string;
export const QT_IM_MODULES: string;
export const MEMORY_PRESSURE_WRITE: string;
export const VTE_VERSION: string;
export const INIT_CWD: string;
export const EDITOR: string;
export const NODE_ENV: string;
@@ -109,57 +137,85 @@ declare module '$env/static/public' {
*/
declare module '$env/dynamic/private' {
export const env: {
LESSOPEN: string;
USER: string;
npm_config_user_agent: string;
XDG_SESSION_TYPE: string;
npm_node_execpath: string;
SHLVL: string;
npm_config_noproxy: string;
LESS: string;
HOME: string;
OLDPWD: string;
DESKTOP_SESSION: string;
npm_package_json: string;
LSCOLORS: string;
ZSH: string;
GNOME_SHELL_SESSION_MODE: string;
GTK_MODULES: string;
PAGER: string;
PS1: string;
npm_config_userconfig: string;
npm_config_local_prefix: string;
SYSTEMD_EXEC_PID: string;
DBUS_SESSION_BUS_ADDRESS: string;
WSL_DISTRO_NAME: string;
COLORTERM: string;
COLOR: string;
npm_config_metrics_registry: string;
WAYLAND_DISPLAY: string;
LOGNAME: string;
NAME: string;
WSL_INTEROP: string;
PULSE_SERVER: string;
SDKMAN_CANDIDATES_API: string;
_: string;
npm_config_prefix: string;
npm_config_npm_version: string;
MEMORY_PRESSURE_WATCH: string;
XDG_SESSION_CLASS: string;
USERNAME: string;
TERM: string;
npm_config_cache: string;
GNOME_DESKTOP_SESSION_ID: string;
npm_config_node_gyp: string;
PATH: string;
SDKMAN_CANDIDATES_DIR: string;
NODE: string;
npm_package_name: string;
XDG_MENU_PREFIX: string;
SDKMAN_BROKER_API: string;
GNOME_TERMINAL_SCREEN: string;
GNOME_SETUP_DISPLAY: string;
XDG_RUNTIME_DIR: string;
DISPLAY: string;
LANG: string;
XDG_CURRENT_DESKTOP: string;
VIRTUAL_ENV_PROMPT: string;
XMODIFIERS: string;
XDG_SESSION_DESKTOP: string;
XAUTHORITY: string;
LS_COLORS: string;
GNOME_TERMINAL_SERVICE: string;
SDKMAN_DIR: string;
SDKMAN_PLATFORM: string;
npm_lifecycle_script: string;
SSH_AUTH_SOCK: string;
SHELL: string;
npm_package_version: string;
npm_lifecycle_event: string;
QT_ACCESSIBILITY: string;
GDMSESSION: string;
GOOGLE_CLOUD_PROJECT: string;
LESSCLOSE: string;
GPG_AGENT_INFO: string;
VIRTUAL_ENV: string;
QT_IM_MODULE: string;
npm_config_globalconfig: string;
npm_config_init_module: string;
JAVA_HOME: string;
PWD: string;
npm_config_globalignorefile: string;
npm_execpath: string;
XDG_DATA_DIRS: string;
npm_config_global_prefix: string;
npm_command: string;
WSL2_GUI_APPS_ENABLED: string;
HOSTTYPE: string;
WSLENV: string;
QT_IM_MODULES: string;
MEMORY_PRESSURE_WRITE: string;
VTE_VERSION: string;
INIT_CWD: string;
EDITOR: string;
NODE_ENV: string;

View File

@@ -24,7 +24,7 @@ export const options = {
app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
},
version_hash: "1pvaiah"
version_hash: "uq8l2w"
};
export async function get_hooks() {

View File

@@ -16,6 +16,12 @@
>
Dashboard
</a>
<a
href="/migration"
class="text-gray-600 hover:text-blue-600 font-medium {$page.url.pathname.startsWith('/migration') ? 'text-blue-600 border-b-2 border-blue-600' : ''}"
>
Migration
</a>
<a
href="/settings"
class="text-gray-600 hover:text-blue-600 font-medium {$page.url.pathname === '/settings' ? 'text-blue-600 border-b-2 border-blue-600' : ''}"

View File

@@ -103,16 +103,25 @@
<p class="mt-1 text-sm text-gray-500">Regular expression to filter dashboards to migrate.</p>
</div>
<div class="flex items-center mb-8">
<input
id="replace-db"
type="checkbox"
bind:checked={replaceDb}
class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"
/>
<label for="replace-db" class="ml-2 block text-sm text-gray-900">
Replace Database (Apply Mappings)
</label>
<div class="flex items-center justify-between mb-8">
<div class="flex items-center">
<input
id="replace-db"
type="checkbox"
bind:checked={replaceDb}
class="h-4 w-4 text-indigo-600 focus:ring-indigo-500 border-gray-300 rounded"
/>
<label for="replace-db" class="ml-2 block text-sm text-gray-900">
Replace Database (Apply Mappings)
</label>
</div>
<a
href="/migration/mappings"
class="text-sm font-medium text-indigo-600 hover:text-indigo-500"
>
Manage Mappings &rarr;
</a>
</div>
<button