A focused Docker Compose management web application.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add completions to editor

Brooke fa61744e bbba0d49

+2573 -31
+4
packages/panel/package.json
··· 18 18 "@codemirror/autocomplete": "^6.20.1", 19 19 "@codemirror/commands": "^6.10.3", 20 20 "@codemirror/lang-yaml": "^6.1.2", 21 + "@codemirror/language": "^6.12.2", 22 + "@codemirror/lint": "^6.9.5", 23 + "@codemirror/state": "^6.6.0", 21 24 "@codemirror/view": "^6.40.0", 22 25 "@fontsource-variable/open-sans": "^5.2.7", 23 26 "@fontsource/dejavu-mono": "^5.2.5", ··· 33 36 "@xterm/addon-web-links": "^0.12.0", 34 37 "@xterm/xterm": "^6.0.0", 35 38 "codemirror": "^6.0.2", 39 + "codemirror-json-schema": "^0.8.1", 36 40 "melt": "^0.44.0", 37 41 "openapi-fetch": "^0.17.0", 38 42 "openapi-typescript": "^7.13.0",
+59 -9
packages/panel/src/lib/component/ComposeEditor.svelte
··· 1 1 <script lang="ts"> 2 2 import { catppuccinMacchiato } from "@catppuccin/codemirror"; 3 - import { EditorView, keymap } from "@codemirror/view"; 4 3 import type { Attachment } from "svelte/attachments"; 5 - import { indentWithTab } from "@codemirror/commands"; 4 + 5 + import { yamlSchema } from "codemirror-json-schema/yaml"; 6 + import * as autocomplete from "@codemirror/autocomplete"; 7 + import * as language from "@codemirror/language"; 8 + import * as commands from "@codemirror/commands"; 6 9 import { yaml } from "@codemirror/lang-yaml"; 7 - import { basicSetup } from "codemirror"; 10 + import * as estate from "@codemirror/state"; 11 + import * as view from "@codemirror/view"; 12 + import * as lint from "@codemirror/lint"; 13 + 14 + import schema from "../schema.json"; 8 15 9 16 let { content = $bindable() }: { content: string } = $props(); 10 17 11 18 let focused = $state(false); 12 19 13 20 const editor: Attachment<HTMLElement> = (parent) => { 14 - const view = new EditorView({ 21 + const editor = new view.EditorView({ 15 22 extensions: [ 16 - yaml(), 17 - basicSetup, 18 - keymap.of([indentWithTab]), 19 23 catppuccinMacchiato, 24 + yamlSchema(schema), 25 + yaml(), 26 + 27 + view.lineNumbers(), 28 + view.highlightSpecialChars(), 29 + commands.history(), 30 + language.foldGutter(), 31 + view.drawSelection(), 32 + view.dropCursor(), 33 + estate.EditorState.allowMultipleSelections.of(true), 34 + language.indentOnInput(), 35 + language.syntaxHighlighting(language.defaultHighlightStyle, { fallback: true }), 36 + language.bracketMatching(), 37 + autocomplete.closeBrackets(), 38 + autocomplete.autocompletion(), 39 + view.rectangularSelection(), 40 + view.crosshairCursor(), 41 + view.keymap.of([ 42 + commands.indentWithTab, 43 + ...autocomplete.closeBracketsKeymap, 44 + ...commands.defaultKeymap, 45 + ...commands.historyKeymap, 46 + ...language.foldKeymap, 47 + ...autocomplete.completionKeymap, 48 + ...lint.lintKeymap, 49 + ]), 20 50 21 51 // Update content on every change 22 - EditorView.updateListener.of((update) => { 52 + view.EditorView.updateListener.of((update) => { 23 53 if (update.docChanged) { 24 54 content = update.state.doc.toString(); 25 55 } ··· 30 60 }); 31 61 32 62 return () => { 33 - view.destroy(); 63 + editor.destroy(); 34 64 }; 35 65 }; 36 66 </script> ··· 86 116 87 117 & :global(.cm-textfield) { 88 118 border-color: var(--subtext0); 119 + } 120 + 121 + & :global(.cm-tooltip) { 122 + background-color: var(--mantle); 123 + box-shadow: 0 -2px 10px #00000080; 124 + 125 + // padding: 0 10px; 126 + border-radius: 5px; 127 + overflow: hidden; 128 + 129 + border: 1px solid var(--subtext0); 130 + 131 + & :global(.cm6-json-schema-hover) { 132 + padding: 0 10px; 133 + } 134 + } 135 + 136 + & :global(.cm-tooltip .cm-tooltip-arrow:before), 137 + & :global(.cm-tooltip .cm-tooltip-arrow:after) { 138 + display: none; 89 139 } 90 140 } 91 141 </style>
+1912
packages/panel/src/lib/schema.json
··· 1 + { 2 + "$schema": "https://json-schema.org/draft-07/schema", 3 + "$id": "compose_spec.json", 4 + "type": "object", 5 + "title": "Compose Specification", 6 + "description": "The Compose file is a YAML file defining a multi-containers based application.", 7 + 8 + "properties": { 9 + "version": { 10 + "type": "string", 11 + "deprecated": true, 12 + "description": "declared for backward compatibility, ignored. Please remove it." 13 + }, 14 + 15 + "name": { 16 + "type": "string", 17 + "description": "define the Compose project name, until user defines one explicitly." 18 + }, 19 + 20 + "include": { 21 + "type": "array", 22 + "items": { 23 + "$ref": "#/definitions/include" 24 + }, 25 + "description": "compose sub-projects to be included." 26 + }, 27 + 28 + "services": { 29 + "type": "object", 30 + "patternProperties": { 31 + "^[a-zA-Z0-9._-]+$": { 32 + "$ref": "#/definitions/service" 33 + } 34 + }, 35 + "additionalProperties": false, 36 + "description": "The services that will be used by your application." 37 + }, 38 + 39 + "models": { 40 + "type": "object", 41 + "patternProperties": { 42 + "^[a-zA-Z0-9._-]+$": { 43 + "$ref": "#/definitions/model" 44 + } 45 + }, 46 + "description": "Language models that will be used by your application." 47 + }, 48 + 49 + 50 + "networks": { 51 + "type": "object", 52 + "patternProperties": { 53 + "^[a-zA-Z0-9._-]+$": { 54 + "$ref": "#/definitions/network" 55 + } 56 + }, 57 + "description": "Networks that are shared among multiple services." 58 + }, 59 + 60 + "volumes": { 61 + "type": "object", 62 + "patternProperties": { 63 + "^[a-zA-Z0-9._-]+$": { 64 + "$ref": "#/definitions/volume" 65 + } 66 + }, 67 + "additionalProperties": false, 68 + "description": "Named volumes that are shared among multiple services." 69 + }, 70 + 71 + "secrets": { 72 + "type": "object", 73 + "patternProperties": { 74 + "^[a-zA-Z0-9._-]+$": { 75 + "$ref": "#/definitions/secret" 76 + } 77 + }, 78 + "additionalProperties": false, 79 + "description": "Secrets that are shared among multiple services." 80 + }, 81 + 82 + "configs": { 83 + "type": "object", 84 + "patternProperties": { 85 + "^[a-zA-Z0-9._-]+$": { 86 + "$ref": "#/definitions/config" 87 + } 88 + }, 89 + "additionalProperties": false, 90 + "description": "Configurations that are shared among multiple services." 91 + } 92 + }, 93 + 94 + "patternProperties": {"^x-": {}}, 95 + "additionalProperties": false, 96 + 97 + "definitions": { 98 + 99 + "service": { 100 + "type": "object", 101 + "description": "Configuration for a service.", 102 + "properties": { 103 + "develop": {"$ref": "#/definitions/development"}, 104 + "deploy": {"$ref": "#/definitions/deployment"}, 105 + "annotations": {"$ref": "#/definitions/list_or_dict"}, 106 + "attach": {"type": ["boolean", "string"]}, 107 + "build": { 108 + "description": "Configuration options for building the service's image.", 109 + "oneOf": [ 110 + {"type": "string", "description": "Path to the build context. Can be a relative path or a URL."}, 111 + { 112 + "type": "object", 113 + "properties": { 114 + "context": {"type": "string", "description": "Path to the build context. Can be a relative path or a URL."}, 115 + "dockerfile": {"type": "string", "description": "Name of the Dockerfile to use for building the image."}, 116 + "dockerfile_inline": {"type": "string", "description": "Inline Dockerfile content to use instead of a Dockerfile from the build context."}, 117 + "entitlements": {"type": "array", "items": {"type": "string"}, "description": "List of extra privileged entitlements to grant to the build process."}, 118 + "args": {"$ref": "#/definitions/list_or_dict", "description": "Build-time variables, specified as a map or a list of KEY=VAL pairs."}, 119 + "ssh": {"$ref": "#/definitions/list_or_dict", "description": "SSH agent socket or keys to expose to the build. Format is either a string or a list of 'default|<id>[=<socket>|<key>[,<key>]]'."}, 120 + "labels": {"$ref": "#/definitions/list_or_dict", "description": "Labels to apply to the built image."}, 121 + "cache_from": {"type": "array", "items": {"type": "string"}, "description": "List of sources the image builder should use for cache resolution"}, 122 + "cache_to": {"type": "array", "items": {"type": "string"}, "description": "Cache destinations for the build cache."}, 123 + "no_cache": {"type": ["boolean", "string"], "description": "Do not use cache when building the image."}, 124 + "no_cache_filter": {"$ref": "#/definitions/string_or_list", "description": "Do not use build cache for the specified stages."}, 125 + "additional_contexts": {"$ref": "#/definitions/list_or_dict", "description": "Additional build contexts to use, specified as a map of name to context path or URL."}, 126 + "network": {"type": "string", "description": "Network mode to use for the build. Options include 'default', 'none', 'host', or a network name."}, 127 + "provenance": {"type": ["string","boolean"], "description": "Add a provenance attestation"}, 128 + "sbom": {"type": ["string","boolean"], "description": "Add a SBOM attestation"}, 129 + "pull": {"type": ["boolean", "string"], "description": "Always attempt to pull a newer version of the image."}, 130 + "target": {"type": "string", "description": "Build stage to target in a multi-stage Dockerfile."}, 131 + "shm_size": {"type": ["integer", "string"], "description": "Size of /dev/shm for the build container. A string value can use suffix like '2g' for 2 gigabytes."}, 132 + "extra_hosts": {"$ref": "#/definitions/extra_hosts", "description": "Add hostname mappings for the build container."}, 133 + "isolation": {"type": "string", "description": "Container isolation technology to use for the build process."}, 134 + "privileged": {"type": ["boolean", "string"], "description": "Give extended privileges to the build container."}, 135 + "secrets": {"$ref": "#/definitions/service_config_or_secret", "description": "Secrets to expose to the build. These are accessible at build-time."}, 136 + "tags": {"type": "array", "items": {"type": "string"}, "description": "Additional tags to apply to the built image."}, 137 + "ulimits": {"$ref": "#/definitions/ulimits", "description": "Override the default ulimits for the build container."}, 138 + "platforms": {"type": "array", "items": {"type": "string"}, "description": "Platforms to build for, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'."} 139 + }, 140 + "additionalProperties": false, 141 + "patternProperties": {"^x-": {}} 142 + } 143 + ] 144 + }, 145 + "blkio_config": { 146 + "type": "object", 147 + "description": "Block IO configuration for the service.", 148 + "properties": { 149 + "device_read_bps": { 150 + "type": "array", 151 + "description": "Limit read rate (bytes per second) from a device.", 152 + "items": {"$ref": "#/definitions/blkio_limit"} 153 + }, 154 + "device_read_iops": { 155 + "type": "array", 156 + "description": "Limit read rate (IO per second) from a device.", 157 + "items": {"$ref": "#/definitions/blkio_limit"} 158 + }, 159 + "device_write_bps": { 160 + "type": "array", 161 + "description": "Limit write rate (bytes per second) to a device.", 162 + "items": {"$ref": "#/definitions/blkio_limit"} 163 + }, 164 + "device_write_iops": { 165 + "type": "array", 166 + "description": "Limit write rate (IO per second) to a device.", 167 + "items": {"$ref": "#/definitions/blkio_limit"} 168 + }, 169 + "weight": { 170 + "type": ["integer", "string"], 171 + "description": "Block IO weight (relative weight) for the service, between 10 and 1000." 172 + }, 173 + "weight_device": { 174 + "type": "array", 175 + "description": "Block IO weight (relative weight) for specific devices.", 176 + "items": {"$ref": "#/definitions/blkio_weight"} 177 + } 178 + }, 179 + "additionalProperties": false 180 + }, 181 + "cap_add": { 182 + "type": "array", 183 + "items": {"type": "string"}, 184 + "uniqueItems": true, 185 + "description": "Add Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'." 186 + }, 187 + "cap_drop": { 188 + "type": "array", 189 + "items": {"type": "string"}, 190 + "uniqueItems": true, 191 + "description": "Drop Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'." 192 + }, 193 + "cgroup": { 194 + "type": "string", 195 + "enum": ["host", "private"], 196 + "description": "Specify the cgroup namespace to join. Use 'host' to use the host's cgroup namespace, or 'private' to use a private cgroup namespace." 197 + }, 198 + "cgroup_parent": { 199 + "type": "string", 200 + "description": "Specify an optional parent cgroup for the container." 201 + }, 202 + "command": { 203 + "$ref": "#/definitions/command", 204 + "description": "Override the default command declared by the container image, for example 'CMD' in Dockerfile." 205 + }, 206 + "configs": { 207 + "$ref": "#/definitions/service_config_or_secret", 208 + "description": "Grant access to Configs on a per-service basis." 209 + }, 210 + "container_name": { 211 + "type": "string", 212 + "description": "Specify a custom container name, rather than a generated default name.", 213 + "pattern": "[a-zA-Z0-9][a-zA-Z0-9_.-]+" 214 + }, 215 + "cpu_count": { 216 + "oneOf": [ 217 + {"type": "string"}, 218 + {"type": "integer", "minimum": 0} 219 + ], 220 + "description": "Number of usable CPUs." 221 + }, 222 + "cpu_percent": { 223 + "oneOf": [ 224 + {"type": "string"}, 225 + {"type": "integer", "minimum": 0, "maximum": 100} 226 + ], 227 + "description": "Percentage of CPU resources to use." 228 + }, 229 + "cpu_shares": { 230 + "type": ["number", "string"], 231 + "description": "CPU shares (relative weight) for the container." 232 + }, 233 + "cpu_quota": { 234 + "type": ["number", "string"], 235 + "description": "Limit the CPU CFS (Completely Fair Scheduler) quota." 236 + }, 237 + "cpu_period": { 238 + "type": ["number", "string"], 239 + "description": "Limit the CPU CFS (Completely Fair Scheduler) period." 240 + }, 241 + "cpu_rt_period": { 242 + "type": ["number", "string"], 243 + "description": "Limit the CPU real-time period in microseconds or a duration." 244 + }, 245 + "cpu_rt_runtime": { 246 + "type": ["number", "string"], 247 + "description": "Limit the CPU real-time runtime in microseconds or a duration." 248 + }, 249 + "cpus": { 250 + "type": ["number", "string"], 251 + "description": "Number of CPUs to use. A floating-point value is supported to request partial CPUs." 252 + }, 253 + "cpuset": { 254 + "type": "string", 255 + "description": "CPUs in which to allow execution (0-3, 0,1)." 256 + }, 257 + "credential_spec": { 258 + "type": "object", 259 + "description": "Configure the credential spec for managed service account.", 260 + "properties": { 261 + "config": { 262 + "type": "string", 263 + "description": "The name of the credential spec Config to use." 264 + }, 265 + "file": { 266 + "type": "string", 267 + "description": "Path to a credential spec file." 268 + }, 269 + "registry": { 270 + "type": "string", 271 + "description": "Path to a credential spec in the Windows registry." 272 + } 273 + }, 274 + "additionalProperties": false, 275 + "patternProperties": {"^x-": {}} 276 + }, 277 + "depends_on": { 278 + "oneOf": [ 279 + {"$ref": "#/definitions/list_of_strings"}, 280 + { 281 + "type": "object", 282 + "additionalProperties": false, 283 + "patternProperties": { 284 + "^[a-zA-Z0-9._-]+$": { 285 + "type": "object", 286 + "additionalProperties": false, 287 + "patternProperties": {"^x-": {}}, 288 + "properties": { 289 + "restart": { 290 + "type": ["boolean", "string"], 291 + "description": "Whether to restart dependent services when this service is restarted." 292 + }, 293 + "required": { 294 + "type": "boolean", 295 + "default": true, 296 + "description": "Whether the dependency is required for the dependent service to start." 297 + }, 298 + "condition": { 299 + "type": "string", 300 + "enum": ["service_started", "service_healthy", "service_completed_successfully"], 301 + "description": "Condition to wait for. 'service_started' waits until the service has started, 'service_healthy' waits until the service is healthy (as defined by its healthcheck), 'service_completed_successfully' waits until the service has completed successfully." 302 + } 303 + }, 304 + "required": ["condition"] 305 + } 306 + } 307 + } 308 + ], 309 + "description": "Express dependency between services. Service dependencies cause services to be started in dependency order. The dependent service will wait for the dependency to be ready before starting." 310 + }, 311 + "device_cgroup_rules": { 312 + "$ref": "#/definitions/list_of_strings", 313 + "description": "Add rules to the cgroup allowed devices list." 314 + }, 315 + "devices": { 316 + "type": "array", 317 + "description": "List of device mappings for the container.", 318 + "items": { 319 + "oneOf": [ 320 + {"type": "string"}, 321 + { 322 + "type": "object", 323 + "required": ["source"], 324 + "properties": { 325 + "source": { 326 + "type": "string", 327 + "description": "Path on the host to the device." 328 + }, 329 + "target": { 330 + "type": "string", 331 + "description": "Path in the container where the device will be mapped." 332 + }, 333 + "permissions": { 334 + "type": "string", 335 + "description": "Cgroup permissions for the device (rwm)." 336 + } 337 + }, 338 + "additionalProperties": false, 339 + "patternProperties": {"^x-": {}} 340 + } 341 + ] 342 + } 343 + }, 344 + "dns": { 345 + "$ref": "#/definitions/string_or_list", 346 + "description": "Custom DNS servers to set for the service container." 347 + }, 348 + "dns_opt": { 349 + "type": "array", 350 + "items": {"type": "string"}, 351 + "uniqueItems": true, 352 + "description": "Custom DNS options to be passed to the container's DNS resolver." 353 + }, 354 + "dns_search": { 355 + "$ref": "#/definitions/string_or_list", 356 + "description": "Custom DNS search domains to set on the service container." 357 + }, 358 + "domainname": { 359 + "type": "string", 360 + "description": "Custom domain name to use for the service container." 361 + }, 362 + "entrypoint": { 363 + "$ref": "#/definitions/command", 364 + "description": "Override the default entrypoint declared by the container image, for example 'ENTRYPOINT' in Dockerfile." 365 + }, 366 + "env_file": { 367 + "$ref": "#/definitions/env_file", 368 + "description": "Add environment variables from a file or multiple files. Can be a single file path or a list of file paths." 369 + }, 370 + "label_file": { 371 + "$ref": "#/definitions/label_file", 372 + "description": "Add metadata to containers using files containing Docker labels." 373 + }, 374 + "environment": { 375 + "$ref": "#/definitions/list_or_dict", 376 + "description": "Add environment variables. You can use either an array or a list of KEY=VAL pairs." 377 + }, 378 + "expose": { 379 + "type": "array", 380 + "items": { 381 + "type": ["string", "number"] 382 + }, 383 + "uniqueItems": true, 384 + "description": "Expose ports without publishing them to the host machine - they'll only be accessible to linked services." 385 + }, 386 + "extends": { 387 + "oneOf": [ 388 + {"type": "string"}, 389 + { 390 + "type": "object", 391 + "properties": { 392 + "service": { 393 + "type": "string", 394 + "description": "The name of the service to extend." 395 + }, 396 + "file": { 397 + "type": "string", 398 + "description": "The file path where the service to extend is defined." 399 + } 400 + }, 401 + "required": ["service"], 402 + "additionalProperties": false 403 + } 404 + ], 405 + "description": "Extend another service, in the current file or another file." 406 + }, 407 + "provider": { 408 + "type": "object", 409 + "description": "Specify a service which will not be manage by Compose directly, and delegate its management to an external provider.", 410 + "required": ["type"], 411 + "properties": { 412 + "type": { 413 + "type": "string", 414 + "description": "External component used by Compose to manage setup and teardown lifecycle of the service." 415 + }, 416 + "options": { 417 + "type": "object", 418 + "description": "Provider-specific options.", 419 + "patternProperties": { 420 + "^.+$": {"oneOf": [ 421 + { "type": ["string", "number", "boolean"] }, 422 + { "type": "array", "items": {"type": ["string", "number", "boolean"]}} 423 + ]} 424 + } 425 + } 426 + }, 427 + "additionalProperties": false, 428 + "patternProperties": {"^x-": {}} 429 + }, 430 + "external_links": { 431 + "type": "array", 432 + "items": {"type": "string"}, 433 + "uniqueItems": true, 434 + "description": "Link to services started outside this Compose application. Specify services as <service_name>:<alias>." 435 + }, 436 + "extra_hosts": { 437 + "$ref": "#/definitions/extra_hosts", 438 + "description": "Add hostname mappings to the container network interface configuration." 439 + }, 440 + "gpus": { 441 + "$ref": "#/definitions/gpus", 442 + "description": "Define GPU devices to use. Can be set to 'all' to use all GPUs, or a list of specific GPU devices." 443 + }, 444 + "group_add": { 445 + "type": "array", 446 + "items": { 447 + "type": ["string", "number"] 448 + }, 449 + "uniqueItems": true, 450 + "description": "Add additional groups which user inside the container should be member of." 451 + }, 452 + "healthcheck": { 453 + "$ref": "#/definitions/healthcheck", 454 + "description": "Configure a health check for the container to monitor its health status." 455 + }, 456 + "hostname": { 457 + "type": "string", 458 + "description": "Define a custom hostname for the service container." 459 + }, 460 + "image": { 461 + "type": "string", 462 + "description": "Specify the image to start the container from. Can be a repository/tag, a digest, or a local image ID." 463 + }, 464 + "init": { 465 + "type": ["boolean", "string"], 466 + "description": "Run as an init process inside the container that forwards signals and reaps processes." 467 + }, 468 + "ipc": { 469 + "type": "string", 470 + "description": "IPC sharing mode for the service container. Use 'host' to share the host's IPC namespace, 'service:[service_name]' to share with another service, or 'shareable' to allow other services to share this service's IPC namespace." 471 + }, 472 + "isolation": { 473 + "type": "string", 474 + "description": "Container isolation technology to use. Supported values are platform-specific." 475 + }, 476 + "labels": { 477 + "$ref": "#/definitions/list_or_dict", 478 + "description": "Add metadata to containers using Docker labels. You can use either an array or a list." 479 + }, 480 + "links": { 481 + "type": "array", 482 + "items": {"type": "string"}, 483 + "uniqueItems": true, 484 + "description": "Link to containers in another service. Either specify both the service name and a link alias (SERVICE:ALIAS), or just the service name." 485 + }, 486 + "logging": { 487 + "type": "object", 488 + "description": "Logging configuration for the service.", 489 + "properties": { 490 + "driver": { 491 + "type": "string", 492 + "description": "Logging driver to use, such as 'json-file', 'syslog', 'journald', etc." 493 + }, 494 + "options": { 495 + "type": "object", 496 + "description": "Options for the logging driver.", 497 + "patternProperties": { 498 + "^.+$": {"type": ["string", "number", "null"]} 499 + } 500 + } 501 + }, 502 + "additionalProperties": false, 503 + "patternProperties": {"^x-": {}} 504 + }, 505 + "mac_address": { 506 + "type": "string", 507 + "description": "Container MAC address to set." 508 + }, 509 + "mem_limit": { 510 + "type": ["number", "string"], 511 + "description": "Memory limit for the container. A string value can use suffix like '2g' for 2 gigabytes." 512 + }, 513 + "mem_reservation": { 514 + "type": ["string", "integer"], 515 + "description": "Memory reservation for the container." 516 + }, 517 + "mem_swappiness": { 518 + "type": ["integer", "string"], 519 + "description": "Container memory swappiness as percentage (0 to 100)." 520 + }, 521 + "memswap_limit": { 522 + "type": ["number", "string"], 523 + "description": "Amount of memory the container is allowed to swap to disk. Set to -1 to enable unlimited swap." 524 + }, 525 + "network_mode": { 526 + "type": "string", 527 + "description": "Network mode. Values can be 'bridge', 'host', 'none', 'service:[service name]', or 'container:[container name]'." 528 + }, 529 + "models": { 530 + "oneOf": [ 531 + {"$ref": "#/definitions/list_of_strings"}, 532 + {"type": "object", 533 + "patternProperties": { 534 + "^[a-zA-Z0-9._-]+$": { 535 + "oneOf": [ 536 + { 537 + "type": "object", 538 + "properties": { 539 + "endpoint_var": { 540 + "type": "string", 541 + "description": "Environment variable set to AI model endpoint." 542 + }, 543 + "model_var": { 544 + "type": "string", 545 + "description": "Environment variable set to AI model name." 546 + } 547 + }, 548 + "additionalProperties": false, 549 + "patternProperties": {"^x-": {}} 550 + }, 551 + {"type": "null"} 552 + ] 553 + } 554 + } 555 + } 556 + ], 557 + "description": "AI Models to use, referencing entries under the top-level models key." 558 + }, 559 + "networks": { 560 + "oneOf": [ 561 + {"$ref": "#/definitions/list_of_strings"}, 562 + { 563 + "type": "object", 564 + "patternProperties": { 565 + "^[a-zA-Z0-9._-]+$": { 566 + "oneOf": [ 567 + { 568 + "type": "object", 569 + "properties": { 570 + "aliases": { 571 + "$ref": "#/definitions/list_of_strings", 572 + "description": "Alternative hostnames for this service on the network." 573 + }, 574 + "interface_name": { 575 + "type": "string", 576 + "description": "Interface network name used to connect to network" 577 + }, 578 + "ipv4_address": { 579 + "type": "string", 580 + "description": "Specify a static IPv4 address for this service on this network." 581 + }, 582 + "ipv6_address": { 583 + "type": "string", 584 + "description": "Specify a static IPv6 address for this service on this network." 585 + }, 586 + "link_local_ips": { 587 + "$ref": "#/definitions/list_of_strings", 588 + "description": "List of link-local IPs." 589 + }, 590 + "mac_address": { 591 + "type": "string", 592 + "description": "Specify a MAC address for this service on this network." 593 + }, 594 + "driver_opts": { 595 + "type": "object", 596 + "description": "Driver options for this network.", 597 + "patternProperties": { 598 + "^.+$": {"type": ["string", "number"]} 599 + } 600 + }, 601 + "priority": { 602 + "type": "number", 603 + "description": "Specify the priority for the network connection." 604 + }, 605 + "gw_priority": { 606 + "type": "number", 607 + "description": "Specify the gateway priority for the network connection." 608 + } 609 + }, 610 + "additionalProperties": false, 611 + "patternProperties": {"^x-": {}} 612 + }, 613 + {"type": "null"} 614 + ] 615 + } 616 + }, 617 + "additionalProperties": false 618 + } 619 + ], 620 + "description": "Networks to join, referencing entries under the top-level networks key. Can be a list of network names or a mapping of network name to network configuration." 621 + }, 622 + "oom_kill_disable": { 623 + "type": ["boolean", "string"], 624 + "description": "Disable OOM Killer for the container." 625 + }, 626 + "oom_score_adj": { 627 + "oneOf": [ 628 + {"type": "string"}, 629 + {"type": "integer", "minimum": -1000, "maximum": 1000} 630 + ], 631 + "description": "Tune host's OOM preferences for the container (accepts -1000 to 1000)." 632 + }, 633 + "pid": { 634 + "type": ["string", "null"], 635 + "description": "PID mode for container." 636 + }, 637 + "pids_limit": { 638 + "type": ["number", "string"], 639 + "description": "Tune a container's PIDs limit. Set to -1 for unlimited PIDs." 640 + }, 641 + "platform": { 642 + "type": "string", 643 + "description": "Target platform to run on, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'." 644 + }, 645 + "ports": { 646 + "type": "array", 647 + "description": "Expose container ports. Short format ([HOST:]CONTAINER[/PROTOCOL]).", 648 + "items": { 649 + "oneOf": [ 650 + {"type": "number"}, 651 + {"type": "string"}, 652 + { 653 + "type": "object", 654 + "properties": { 655 + "name": { 656 + "type": "string", 657 + "description": "A human-readable name for this port mapping." 658 + }, 659 + "mode": { 660 + "type": "string", 661 + "description": "The port binding mode, either 'host' for publishing a host port or 'ingress' for load balancing." 662 + }, 663 + "host_ip": { 664 + "type": "string", 665 + "description": "The host IP to bind to." 666 + }, 667 + "target": { 668 + "type": ["integer", "string"], 669 + "description": "The port inside the container." 670 + }, 671 + "published": { 672 + "type": ["string", "integer"], 673 + "description": "The publicly exposed port." 674 + }, 675 + "protocol": { 676 + "type": "string", 677 + "description": "The port protocol (tcp or udp)." 678 + }, 679 + "app_protocol": { 680 + "type": "string", 681 + "description": "Application protocol to use with the port (e.g., http, https, mysql)." 682 + } 683 + }, 684 + "additionalProperties": false, 685 + "patternProperties": {"^x-": {}} 686 + } 687 + ] 688 + }, 689 + "uniqueItems": true 690 + }, 691 + "post_start": { 692 + "type": "array", 693 + "items": {"$ref": "#/definitions/service_hook"}, 694 + "description": "Commands to run after the container starts. If any command fails, the container stops." 695 + }, 696 + "pre_stop": { 697 + "type": "array", 698 + "items": {"$ref": "#/definitions/service_hook"}, 699 + "description": "Commands to run before the container stops. If any command fails, the container stop is aborted." 700 + }, 701 + "privileged": { 702 + "type": ["boolean", "string"], 703 + "description": "Give extended privileges to the service container." 704 + }, 705 + "profiles": { 706 + "$ref": "#/definitions/list_of_strings", 707 + "description": "List of profiles for this service. When profiles are specified, services are only started when the profile is activated." 708 + }, 709 + "pull_policy": { 710 + "type": "string", 711 + "pattern": "always|never|build|if_not_present|missing|refresh|daily|weekly|every_([0-9]+[wdhms])+", 712 + "description": "Policy for pulling images. Options include: 'always', 'never', 'if_not_present', 'missing', 'build', or time-based refresh policies." 713 + }, 714 + "pull_refresh_after": { 715 + "type": "string", 716 + "description": "Time after which to refresh the image. Used with pull_policy=refresh." 717 + }, 718 + "read_only": { 719 + "type": ["boolean", "string"], 720 + "description": "Mount the container's filesystem as read only." 721 + }, 722 + "restart": { 723 + "type": "string", 724 + "description": "Restart policy for the service container. Options include: 'no', 'always', 'on-failure', and 'unless-stopped'." 725 + }, 726 + "runtime": { 727 + "type": "string", 728 + "description": "Runtime to use for this container, e.g., 'runc'." 729 + }, 730 + "scale": { 731 + "type": ["integer", "string"], 732 + "description": "Number of containers to deploy for this service." 733 + }, 734 + "security_opt": { 735 + "type": "array", 736 + "items": {"type": "string"}, 737 + "uniqueItems": true, 738 + "description": "Override the default labeling scheme for each container." 739 + }, 740 + "shm_size": { 741 + "type": ["number", "string"], 742 + "description": "Size of /dev/shm. A string value can use suffix like '2g' for 2 gigabytes." 743 + }, 744 + "secrets": { 745 + "$ref": "#/definitions/service_config_or_secret", 746 + "description": "Grant access to Secrets on a per-service basis." 747 + }, 748 + "sysctls": { 749 + "$ref": "#/definitions/list_or_dict", 750 + "description": "Kernel parameters to set in the container. You can use either an array or a list." 751 + }, 752 + "stdin_open": { 753 + "type": ["boolean", "string"], 754 + "description": "Keep STDIN open even if not attached." 755 + }, 756 + "stop_grace_period": { 757 + "type": "string", 758 + "description": "Time to wait for the container to stop gracefully before sending SIGKILL (e.g., '1s', '1m30s')." 759 + }, 760 + "stop_signal": { 761 + "type": "string", 762 + "description": "Signal to stop the container (e.g., 'SIGTERM', 'SIGINT')." 763 + }, 764 + "storage_opt": { 765 + "type": "object", 766 + "description": "Storage driver options for the container." 767 + }, 768 + "tmpfs": { 769 + "$ref": "#/definitions/string_or_list", 770 + "description": "Mount a temporary filesystem (tmpfs) into the container. Can be a single value or a list." 771 + }, 772 + "tty": { 773 + "type": ["boolean", "string"], 774 + "description": "Allocate a pseudo-TTY to service container." 775 + }, 776 + "ulimits": { 777 + "$ref": "#/definitions/ulimits", 778 + "description": "Override the default ulimits for a container." 779 + }, 780 + "use_api_socket": { 781 + "type": "boolean", 782 + "description": "Bind mount Docker API socket and required auth." 783 + }, 784 + "user": { 785 + "type": "string", 786 + "description": "Username or UID to run the container process as." 787 + }, 788 + "uts": { 789 + "type": "string", 790 + "description": "UTS namespace to use. 'host' shares the host's UTS namespace." 791 + }, 792 + "userns_mode": { 793 + "type": "string", 794 + "description": "User namespace to use. 'host' shares the host's user namespace." 795 + }, 796 + "volumes": { 797 + "type": "array", 798 + "description": "Mount host paths or named volumes accessible to the container. Short syntax (VOLUME:CONTAINER_PATH[:MODE])", 799 + "items": { 800 + "oneOf": [ 801 + {"type": "string"}, 802 + { 803 + "type": "object", 804 + "required": ["type"], 805 + "properties": { 806 + "type": { 807 + "type": "string", 808 + "enum": ["bind", "volume", "tmpfs", "cluster", "npipe", "image"], 809 + "description": "The mount type: bind for mounting host directories, volume for named volumes, tmpfs for temporary filesystems, cluster for cluster volumes, npipe for named pipes, or image for mounting from an image." 810 + }, 811 + "source": { 812 + "type": "string", 813 + "description": "The source of the mount, a path on the host for a bind mount, a docker image reference for an image mount, or the name of a volume defined in the top-level volumes key. Not applicable for a tmpfs mount." 814 + }, 815 + "target": { 816 + "type": "string", 817 + "description": "The path in the container where the volume is mounted." 818 + }, 819 + "read_only": { 820 + "type": ["boolean", "string"], 821 + "description": "Flag to set the volume as read-only." 822 + }, 823 + "consistency": { 824 + "type": "string", 825 + "description": "The consistency requirements for the mount. Available values are platform specific." 826 + }, 827 + "bind": { 828 + "type": "object", 829 + "description": "Configuration specific to bind mounts.", 830 + "properties": { 831 + "propagation": { 832 + "type": "string", 833 + "description": "The propagation mode for the bind mount: 'shared', 'slave', 'private', 'rshared', 'rslave', or 'rprivate'." 834 + }, 835 + "create_host_path": { 836 + "type": ["boolean", "string"], 837 + "description": "Create the host path if it doesn't exist." 838 + }, 839 + "recursive": { 840 + "type": "string", 841 + "enum": ["enabled", "disabled", "writable", "readonly"], 842 + "description": "Recursively mount the source directory." 843 + }, 844 + "selinux": { 845 + "type": "string", 846 + "enum": ["z", "Z"], 847 + "description": "SELinux relabeling options: 'z' for shared content, 'Z' for private unshared content." 848 + } 849 + }, 850 + "additionalProperties": false, 851 + "patternProperties": {"^x-": {}} 852 + }, 853 + "volume": { 854 + "type": "object", 855 + "description": "Configuration specific to volume mounts.", 856 + "properties": { 857 + "labels": { 858 + "$ref": "#/definitions/list_or_dict", 859 + "description": "Labels to apply to the volume." 860 + }, 861 + "nocopy": { 862 + "type": ["boolean", "string"], 863 + "description": "Flag to disable copying of data from a container when a volume is created." 864 + }, 865 + "subpath": { 866 + "type": "string", 867 + "description": "Path within the volume to mount instead of the volume root." 868 + } 869 + }, 870 + "additionalProperties": false, 871 + "patternProperties": {"^x-": {}} 872 + }, 873 + "tmpfs": { 874 + "type": "object", 875 + "description": "Configuration specific to tmpfs mounts.", 876 + "properties": { 877 + "size": { 878 + "oneOf": [ 879 + {"type": "integer", "minimum": 0}, 880 + {"type": "string"} 881 + ], 882 + "description": "Size of the tmpfs mount in bytes." 883 + }, 884 + "mode": { 885 + "type": ["number", "string"], 886 + "description": "File mode of the tmpfs in octal." 887 + } 888 + }, 889 + "additionalProperties": false, 890 + "patternProperties": {"^x-": {}} 891 + }, 892 + "image": { 893 + "type": "object", 894 + "description": "Configuration specific to image mounts.", 895 + "properties": { 896 + "subpath": { 897 + "type": "string", 898 + "description": "Path within the image to mount instead of the image root." 899 + } 900 + }, 901 + "additionalProperties": false, 902 + "patternProperties": {"^x-": {}} 903 + } 904 + }, 905 + "additionalProperties": false, 906 + "patternProperties": {"^x-": {}} 907 + } 908 + ] 909 + }, 910 + "uniqueItems": true 911 + }, 912 + "volumes_from": { 913 + "type": "array", 914 + "items": {"type": "string"}, 915 + "uniqueItems": true, 916 + "description": "Mount volumes from another service or container. Optionally specify read-only access (ro) or read-write (rw)." 917 + }, 918 + "working_dir": { 919 + "type": "string", 920 + "description": "The working directory in which the entrypoint or command will be run" 921 + } 922 + }, 923 + "patternProperties": {"^x-": {}}, 924 + "additionalProperties": false 925 + }, 926 + 927 + "healthcheck": { 928 + "type": "object", 929 + "description": "Configuration options to determine whether the container is healthy.", 930 + "properties": { 931 + "disable": { 932 + "type": ["boolean", "string"], 933 + "description": "Disable any container-specified healthcheck. Set to true to disable." 934 + }, 935 + "interval": { 936 + "type": "string", 937 + "description": "Time between running the check (e.g., '1s', '1m30s'). Default: 30s." 938 + }, 939 + "retries": { 940 + "type": ["number", "string"], 941 + "description": "Number of consecutive failures needed to consider the container as unhealthy. Default: 3." 942 + }, 943 + "test": { 944 + "oneOf": [ 945 + {"type": "string"}, 946 + {"type": "array", "items": {"type": "string"}} 947 + ], 948 + "description": "The test to perform to check container health. Can be a string or a list. The first item is either NONE, CMD, or CMD-SHELL. If it's CMD, the rest of the command is exec'd. If it's CMD-SHELL, the rest is run in the shell." 949 + }, 950 + "timeout": { 951 + "type": "string", 952 + "description": "Maximum time to allow one check to run (e.g., '1s', '1m30s'). Default: 30s." 953 + }, 954 + "start_period": { 955 + "type": "string", 956 + "description": "Start period for the container to initialize before starting health-retries countdown (e.g., '1s', '1m30s'). Default: 0s." 957 + }, 958 + "start_interval": { 959 + "type": "string", 960 + "description": "Time between running the check during the start period (e.g., '1s', '1m30s'). Default: interval value." 961 + } 962 + }, 963 + "additionalProperties": false, 964 + "patternProperties": {"^x-": {}} 965 + }, 966 + "development": { 967 + "type": ["object", "null"], 968 + "description": "Development configuration for the service, used for development workflows.", 969 + "properties": { 970 + "watch": { 971 + "type": "array", 972 + "description": "Configure watch mode for the service, which monitors file changes and performs actions in response.", 973 + "items": { 974 + "type": "object", 975 + "required": ["path", "action"], 976 + "properties": { 977 + "ignore": { 978 + "$ref": "#/definitions/string_or_list", 979 + "description": "Patterns to exclude from watching." 980 + }, 981 + "include": { 982 + "$ref": "#/definitions/string_or_list", 983 + "description": "Patterns to include in watching." 984 + }, 985 + "path": { 986 + "type": "string", 987 + "description": "Path to watch for changes." 988 + }, 989 + "action": { 990 + "type": "string", 991 + "enum": ["rebuild", "sync", "restart", "sync+restart", "sync+exec"], 992 + "description": "Action to take when a change is detected: rebuild the container, sync files, restart the container, sync and restart, or sync and execute a command." 993 + }, 994 + "target": { 995 + "type": "string", 996 + "description": "Target path in the container for sync operations." 997 + }, 998 + "exec": { 999 + "$ref": "#/definitions/service_hook", 1000 + "description": "Command to execute when a change is detected and action is sync+exec." 1001 + }, 1002 + "initial_sync": { 1003 + "type": "boolean", 1004 + "description": "Ensure that an initial synchronization is done before starting watch mode for sync+x triggers" 1005 + } 1006 + }, 1007 + "additionalProperties": false, 1008 + "patternProperties": {"^x-": {}} 1009 + } 1010 + } 1011 + }, 1012 + "additionalProperties": false, 1013 + "patternProperties": {"^x-": {}} 1014 + }, 1015 + "deployment": { 1016 + "type": ["object", "null"], 1017 + "description": "Deployment configuration for the service.", 1018 + "properties": { 1019 + "mode": { 1020 + "type": "string", 1021 + "description": "Deployment mode for the service: 'replicated' (default) or 'global'." 1022 + }, 1023 + "endpoint_mode": { 1024 + "type": "string", 1025 + "description": "Endpoint mode for the service: 'vip' (default) or 'dnsrr'." 1026 + }, 1027 + "replicas": { 1028 + "type": ["integer", "string"], 1029 + "description": "Number of replicas of the service container to run." 1030 + }, 1031 + "labels": { 1032 + "$ref": "#/definitions/list_or_dict", 1033 + "description": "Labels to apply to the service." 1034 + }, 1035 + "rollback_config": { 1036 + "type": "object", 1037 + "description": "Configuration for rolling back a service update.", 1038 + "properties": { 1039 + "parallelism": { 1040 + "type": ["integer", "string"], 1041 + "description": "The number of containers to rollback at a time. If set to 0, all containers rollback simultaneously." 1042 + }, 1043 + "delay": { 1044 + "type": "string", 1045 + "description": "The time to wait between each container group's rollback (e.g., '1s', '1m30s')." 1046 + }, 1047 + "failure_action": { 1048 + "type": "string", 1049 + "description": "Action to take if a rollback fails: 'continue', 'pause'." 1050 + }, 1051 + "monitor": { 1052 + "type": "string", 1053 + "description": "Duration to monitor each task for failures after it is created (e.g., '1s', '1m30s')." 1054 + }, 1055 + "max_failure_ratio": { 1056 + "type": ["number", "string"], 1057 + "description": "Failure rate to tolerate during a rollback." 1058 + }, 1059 + "order": { 1060 + "type": "string", 1061 + "enum": ["start-first", "stop-first"], 1062 + "description": "Order of operations during rollbacks: 'stop-first' (default) or 'start-first'." 1063 + } 1064 + }, 1065 + "additionalProperties": false, 1066 + "patternProperties": {"^x-": {}} 1067 + }, 1068 + "update_config": { 1069 + "type": "object", 1070 + "description": "Configuration for updating a service.", 1071 + "properties": { 1072 + "parallelism": { 1073 + "type": ["integer", "string"], 1074 + "description": "The number of containers to update at a time." 1075 + }, 1076 + "delay": { 1077 + "type": "string", 1078 + "description": "The time to wait between updating a group of containers (e.g., '1s', '1m30s')." 1079 + }, 1080 + "failure_action": { 1081 + "type": "string", 1082 + "description": "Action to take if an update fails: 'continue', 'pause', 'rollback'." 1083 + }, 1084 + "monitor": { 1085 + "type": "string", 1086 + "description": "Duration to monitor each updated task for failures after it is created (e.g., '1s', '1m30s')." 1087 + }, 1088 + "max_failure_ratio": { 1089 + "type": ["number", "string"], 1090 + "description": "Failure rate to tolerate during an update (0 to 1)." 1091 + }, 1092 + "order": { 1093 + "type": "string", 1094 + "enum": ["start-first", "stop-first"], 1095 + "description": "Order of operations during updates: 'stop-first' (default) or 'start-first'." 1096 + } 1097 + }, 1098 + "additionalProperties": false, 1099 + "patternProperties": {"^x-": {}} 1100 + }, 1101 + "resources": { 1102 + "type": "object", 1103 + "description": "Resource constraints and reservations for the service.", 1104 + "properties": { 1105 + "limits": { 1106 + "type": "object", 1107 + "description": "Resource limits for the service containers.", 1108 + "properties": { 1109 + "cpus": { 1110 + "type": ["number", "string"], 1111 + "description": "Limit for how much of the available CPU resources, as number of cores, a container can use." 1112 + }, 1113 + "memory": { 1114 + "type": "string", 1115 + "description": "Limit on the amount of memory a container can allocate (e.g., '1g', '1024m')." 1116 + }, 1117 + "pids": { 1118 + "type": ["integer", "string"], 1119 + "description": "Maximum number of PIDs available to the container." 1120 + } 1121 + }, 1122 + "additionalProperties": false, 1123 + "patternProperties": {"^x-": {}} 1124 + }, 1125 + "reservations": { 1126 + "type": "object", 1127 + "description": "Resource reservations for the service containers.", 1128 + "properties": { 1129 + "cpus": { 1130 + "type": ["number", "string"], 1131 + "description": "Reservation for how much of the available CPU resources, as number of cores, a container can use." 1132 + }, 1133 + "memory": { 1134 + "type": "string", 1135 + "description": "Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m')." 1136 + }, 1137 + "generic_resources": { 1138 + "$ref": "#/definitions/generic_resources", 1139 + "description": "User-defined resources to reserve." 1140 + }, 1141 + "devices": { 1142 + "$ref": "#/definitions/devices", 1143 + "description": "Device reservations for the container." 1144 + } 1145 + }, 1146 + "additionalProperties": false, 1147 + "patternProperties": {"^x-": {}} 1148 + } 1149 + }, 1150 + "additionalProperties": false, 1151 + "patternProperties": {"^x-": {}} 1152 + }, 1153 + "restart_policy": { 1154 + "type": "object", 1155 + "description": "Restart policy for the service containers.", 1156 + "properties": { 1157 + "condition": { 1158 + "type": "string", 1159 + "description": "Condition for restarting the container: 'none', 'on-failure', 'any'." 1160 + }, 1161 + "delay": { 1162 + "type": "string", 1163 + "description": "Delay between restart attempts (e.g., '1s', '1m30s')." 1164 + }, 1165 + "max_attempts": { 1166 + "type": ["integer", "string"], 1167 + "description": "Maximum number of restart attempts before giving up." 1168 + }, 1169 + "window": { 1170 + "type": "string", 1171 + "description": "Time window used to evaluate the restart policy (e.g., '1s', '1m30s')." 1172 + } 1173 + }, 1174 + "additionalProperties": false, 1175 + "patternProperties": {"^x-": {}} 1176 + }, 1177 + "placement": { 1178 + "type": "object", 1179 + "description": "Constraints and preferences for the platform to select a physical node to run service containers", 1180 + "properties": { 1181 + "constraints": { 1182 + "type": "array", 1183 + "items": {"type": "string"}, 1184 + "description": "Placement constraints for the service (e.g., 'node.role==manager')." 1185 + }, 1186 + "preferences": { 1187 + "type": "array", 1188 + "description": "Placement preferences for the service.", 1189 + "items": { 1190 + "type": "object", 1191 + "properties": { 1192 + "spread": { 1193 + "type": "string", 1194 + "description": "Spread tasks evenly across values of the specified node label." 1195 + } 1196 + }, 1197 + "additionalProperties": false, 1198 + "patternProperties": {"^x-": {}} 1199 + } 1200 + }, 1201 + "max_replicas_per_node": { 1202 + "type": ["integer", "string"], 1203 + "description": "Maximum number of replicas of the service." 1204 + } 1205 + }, 1206 + "additionalProperties": false, 1207 + "patternProperties": {"^x-": {}} 1208 + } 1209 + }, 1210 + "additionalProperties": false, 1211 + "patternProperties": {"^x-": {}} 1212 + }, 1213 + 1214 + "generic_resources": { 1215 + "type": "array", 1216 + "description": "User-defined resources for services, allowing services to reserve specialized hardware resources.", 1217 + "items": { 1218 + "type": "object", 1219 + "properties": { 1220 + "discrete_resource_spec": { 1221 + "type": "object", 1222 + "description": "Specification for discrete (countable) resources.", 1223 + "properties": { 1224 + "kind": { 1225 + "type": "string", 1226 + "description": "Type of resource (e.g., 'GPU', 'FPGA', 'SSD')." 1227 + }, 1228 + "value": { 1229 + "type": ["number", "string"], 1230 + "description": "Number of resources of this kind to reserve." 1231 + } 1232 + }, 1233 + "additionalProperties": false, 1234 + "patternProperties": {"^x-": {}} 1235 + } 1236 + }, 1237 + "additionalProperties": false, 1238 + "patternProperties": {"^x-": {}} 1239 + } 1240 + }, 1241 + 1242 + "devices": { 1243 + "type": "array", 1244 + "description": "Device reservations for containers, allowing services to access specific hardware devices.", 1245 + "items": { 1246 + "type": "object", 1247 + "properties": { 1248 + "capabilities": { 1249 + "$ref": "#/definitions/list_of_strings", 1250 + "description": "List of capabilities the device needs to have (e.g., 'gpu', 'compute', 'utility')." 1251 + }, 1252 + "count": { 1253 + "type": ["string", "integer"], 1254 + "description": "Number of devices of this type to reserve." 1255 + }, 1256 + "device_ids": { 1257 + "$ref": "#/definitions/list_of_strings", 1258 + "description": "List of specific device IDs to reserve." 1259 + }, 1260 + "driver": { 1261 + "type": "string", 1262 + "description": "Device driver to use (e.g., 'nvidia')." 1263 + }, 1264 + "options": { 1265 + "$ref": "#/definitions/list_or_dict", 1266 + "description": "Driver-specific options for the device." 1267 + } 1268 + }, 1269 + "additionalProperties": false, 1270 + "patternProperties": {"^x-": {}}, 1271 + "required": [ 1272 + "capabilities" 1273 + ] 1274 + } 1275 + }, 1276 + 1277 + "gpus": { 1278 + "oneOf": [ 1279 + { 1280 + "type": "string", 1281 + "enum": ["all"], 1282 + "description": "Use all available GPUs." 1283 + }, 1284 + { 1285 + "type": "array", 1286 + "description": "List of specific GPU devices to use.", 1287 + "items": { 1288 + "type": "object", 1289 + "properties": { 1290 + "capabilities": { 1291 + "$ref": "#/definitions/list_of_strings", 1292 + "description": "List of capabilities the GPU needs to have (e.g., 'compute', 'utility')." 1293 + }, 1294 + "count": { 1295 + "type": ["string", "integer"], 1296 + "description": "Number of GPUs to use." 1297 + }, 1298 + "device_ids": { 1299 + "$ref": "#/definitions/list_of_strings", 1300 + "description": "List of specific GPU device IDs to use." 1301 + }, 1302 + "driver": { 1303 + "type": "string", 1304 + "description": "GPU driver to use (e.g., 'nvidia')." 1305 + }, 1306 + "options": { 1307 + "$ref": "#/definitions/list_or_dict", 1308 + "description": "Driver-specific options for the GPU." 1309 + } 1310 + } 1311 + }, 1312 + "additionalProperties": false, 1313 + "patternProperties": {"^x-": {}} 1314 + } 1315 + ] 1316 + }, 1317 + 1318 + "include": { 1319 + "description": "Compose application or sub-projects to be included.", 1320 + "oneOf": [ 1321 + {"type": "string"}, 1322 + { 1323 + "type": "object", 1324 + "properties": { 1325 + "path": { 1326 + "$ref": "#/definitions/string_or_list", 1327 + "description": "Path to the Compose application or sub-project files to include." 1328 + }, 1329 + "env_file": { 1330 + "$ref": "#/definitions/string_or_list", 1331 + "description": "Path to the environment files to use to define default values when interpolating variables in the Compose files being parsed." 1332 + }, 1333 + "project_directory": { 1334 + "type": "string", 1335 + "description": "Path to resolve relative paths set in the Compose file" 1336 + } 1337 + }, 1338 + "additionalProperties": false 1339 + } 1340 + ] 1341 + }, 1342 + 1343 + "network": { 1344 + "type": ["object", "null"], 1345 + "description": "Network configuration for the Compose application.", 1346 + "properties": { 1347 + "name": { 1348 + "type": "string", 1349 + "description": "Custom name for this network." 1350 + }, 1351 + "driver": { 1352 + "type": "string", 1353 + "description": "Specify which driver should be used for this network. Default is 'bridge'." 1354 + }, 1355 + "driver_opts": { 1356 + "type": "object", 1357 + "description": "Specify driver-specific options defined as key/value pairs.", 1358 + "patternProperties": { 1359 + "^.+$": {"type": ["string", "number"]} 1360 + } 1361 + }, 1362 + "ipam": { 1363 + "type": "object", 1364 + "description": "Custom IP Address Management configuration for this network.", 1365 + "properties": { 1366 + "driver": { 1367 + "type": "string", 1368 + "description": "Custom IPAM driver, instead of the default." 1369 + }, 1370 + "config": { 1371 + "type": "array", 1372 + "description": "List of IPAM configuration blocks.", 1373 + "items": { 1374 + "type": "object", 1375 + "properties": { 1376 + "subnet": { 1377 + "type": "string", 1378 + "description": "Subnet in CIDR format that represents a network segment." 1379 + }, 1380 + "ip_range": { 1381 + "type": "string", 1382 + "description": "Range of IPs from which to allocate container IPs." 1383 + }, 1384 + "gateway": { 1385 + "type": "string", 1386 + "description": "IPv4 or IPv6 gateway for the subnet." 1387 + }, 1388 + "aux_addresses": { 1389 + "type": "object", 1390 + "description": "Auxiliary IPv4 or IPv6 addresses used by Network driver.", 1391 + "additionalProperties": false, 1392 + "patternProperties": {"^.+$": {"type": "string"}} 1393 + } 1394 + }, 1395 + "additionalProperties": false, 1396 + "patternProperties": {"^x-": {}} 1397 + } 1398 + }, 1399 + "options": { 1400 + "type": "object", 1401 + "description": "Driver-specific options for the IPAM driver.", 1402 + "additionalProperties": false, 1403 + "patternProperties": {"^.+$": {"type": "string"}} 1404 + } 1405 + }, 1406 + "additionalProperties": false, 1407 + "patternProperties": {"^x-": {}} 1408 + }, 1409 + "external": { 1410 + "type": ["boolean", "string", "object"], 1411 + "description": "Specifies that this network already exists and was created outside of Compose.", 1412 + "properties": { 1413 + "name": { 1414 + "deprecated": true, 1415 + "type": "string", 1416 + "description": "Specifies the name of the external network. Deprecated: use the 'name' property instead." 1417 + } 1418 + }, 1419 + "additionalProperties": false, 1420 + "patternProperties": {"^x-": {}} 1421 + }, 1422 + "internal": { 1423 + "type": ["boolean", "string"], 1424 + "description": "Create an externally isolated network." 1425 + }, 1426 + "enable_ipv4": { 1427 + "type": ["boolean", "string"], 1428 + "description": "Enable IPv4 networking." 1429 + }, 1430 + "enable_ipv6": { 1431 + "type": ["boolean", "string"], 1432 + "description": "Enable IPv6 networking." 1433 + }, 1434 + "attachable": { 1435 + "type": ["boolean", "string"], 1436 + "description": "If true, standalone containers can attach to this network." 1437 + }, 1438 + "labels": { 1439 + "$ref": "#/definitions/list_or_dict", 1440 + "description": "Add metadata to the network using labels." 1441 + } 1442 + }, 1443 + "additionalProperties": false, 1444 + "patternProperties": {"^x-": {}} 1445 + }, 1446 + 1447 + "volume": { 1448 + "type": ["object", "null"], 1449 + "description": "Volume configuration for the Compose application.", 1450 + "properties": { 1451 + "name": { 1452 + "type": "string", 1453 + "description": "Custom name for this volume." 1454 + }, 1455 + "driver": { 1456 + "type": "string", 1457 + "description": "Specify which volume driver should be used for this volume." 1458 + }, 1459 + "driver_opts": { 1460 + "type": "object", 1461 + "description": "Specify driver-specific options.", 1462 + "patternProperties": { 1463 + "^.+$": {"type": ["string", "number"]} 1464 + } 1465 + }, 1466 + "external": { 1467 + "type": ["boolean", "string", "object"], 1468 + "description": "Specifies that this volume already exists and was created outside of Compose.", 1469 + "properties": { 1470 + "name": { 1471 + "deprecated": true, 1472 + "type": "string", 1473 + "description": "Specifies the name of the external volume. Deprecated: use the 'name' property instead." 1474 + } 1475 + }, 1476 + "additionalProperties": false, 1477 + "patternProperties": {"^x-": {}} 1478 + }, 1479 + "labels": { 1480 + "$ref": "#/definitions/list_or_dict", 1481 + "description": "Add metadata to the volume using labels." 1482 + } 1483 + }, 1484 + "additionalProperties": false, 1485 + "patternProperties": {"^x-": {}} 1486 + }, 1487 + 1488 + "secret": { 1489 + "type": "object", 1490 + "description": "Secret configuration for the Compose application.", 1491 + "properties": { 1492 + "name": { 1493 + "type": "string", 1494 + "description": "Custom name for this secret." 1495 + }, 1496 + "environment": { 1497 + "type": "string", 1498 + "description": "Name of an environment variable from which to get the secret value." 1499 + }, 1500 + "file": { 1501 + "type": "string", 1502 + "description": "Path to a file containing the secret value." 1503 + }, 1504 + "external": { 1505 + "type": ["boolean", "string", "object"], 1506 + "description": "Specifies that this secret already exists and was created outside of Compose.", 1507 + "properties": { 1508 + "name": { 1509 + "type": "string", 1510 + "description": "Specifies the name of the external secret." 1511 + } 1512 + } 1513 + }, 1514 + "labels": { 1515 + "$ref": "#/definitions/list_or_dict", 1516 + "description": "Add metadata to the secret using labels." 1517 + }, 1518 + "driver": { 1519 + "type": "string", 1520 + "description": "Specify which secret driver should be used for this secret." 1521 + }, 1522 + "driver_opts": { 1523 + "type": "object", 1524 + "description": "Specify driver-specific options.", 1525 + "patternProperties": { 1526 + "^.+$": {"type": ["string", "number"]} 1527 + } 1528 + }, 1529 + "template_driver": { 1530 + "type": "string", 1531 + "description": "Driver to use for templating the secret's value." 1532 + } 1533 + }, 1534 + "additionalProperties": false, 1535 + "patternProperties": {"^x-": {}} 1536 + }, 1537 + 1538 + "config": { 1539 + "type": "object", 1540 + "description": "Config configuration for the Compose application.", 1541 + "properties": { 1542 + "name": { 1543 + "type": "string", 1544 + "description": "Custom name for this config." 1545 + }, 1546 + "content": { 1547 + "type": "string", 1548 + "description": "Inline content of the config." 1549 + }, 1550 + "environment": { 1551 + "type": "string", 1552 + "description": "Name of an environment variable from which to get the config value." 1553 + }, 1554 + "file": { 1555 + "type": "string", 1556 + "description": "Path to a file containing the config value." 1557 + }, 1558 + "external": { 1559 + "type": ["boolean", "string", "object"], 1560 + "description": "Specifies that this config already exists and was created outside of Compose.", 1561 + "properties": { 1562 + "name": { 1563 + "deprecated": true, 1564 + "type": "string", 1565 + "description": "Specifies the name of the external config. Deprecated: use the 'name' property instead." 1566 + } 1567 + } 1568 + }, 1569 + "labels": { 1570 + "$ref": "#/definitions/list_or_dict", 1571 + "description": "Add metadata to the config using labels." 1572 + }, 1573 + "template_driver": { 1574 + "type": "string", 1575 + "description": "Driver to use for templating the config's value." 1576 + } 1577 + }, 1578 + "additionalProperties": false, 1579 + "patternProperties": {"^x-": {}} 1580 + }, 1581 + 1582 + "model": { 1583 + "type": "object", 1584 + "description": "Language Model for the Compose application.", 1585 + "properties": { 1586 + "name": { 1587 + "type": "string", 1588 + "description": "Custom name for this model." 1589 + }, 1590 + "model": { 1591 + "type": "string", 1592 + "description": "Language Model to run." 1593 + }, 1594 + "context_size": { 1595 + "type": "integer" 1596 + }, 1597 + "runtime_flags": { 1598 + "type": "array", 1599 + "items": {"type": "string"}, 1600 + "description": "Raw runtime flags to pass to the inference engine." 1601 + } 1602 + }, 1603 + "required": ["model"], 1604 + "additionalProperties": false, 1605 + "patternProperties": {"^x-": {}} 1606 + }, 1607 + 1608 + "command": { 1609 + "oneOf": [ 1610 + { 1611 + "type": "null", 1612 + "description": "No command specified, use the container's default command." 1613 + }, 1614 + { 1615 + "type": "string", 1616 + "description": "Command as a string, which will be executed in a shell (e.g., '/bin/sh -c')." 1617 + }, 1618 + { 1619 + "type": "array", 1620 + "description": "Command as an array of strings, which will be executed directly without a shell.", 1621 + "items": { 1622 + "type": "string", 1623 + "description": "Part of the command (executable or argument)." 1624 + } 1625 + } 1626 + ], 1627 + "description": "Command to run in the container, which can be specified as a string (shell form) or array (exec form)." 1628 + }, 1629 + 1630 + "service_hook": { 1631 + "type": "object", 1632 + "description": "Configuration for service lifecycle hooks, which are commands executed at specific points in a container's lifecycle.", 1633 + "properties": { 1634 + "command": { 1635 + "$ref": "#/definitions/command", 1636 + "description": "Command to execute as part of the hook." 1637 + }, 1638 + "user": { 1639 + "type": "string", 1640 + "description": "User to run the command as." 1641 + }, 1642 + "privileged": { 1643 + "type": ["boolean", "string"], 1644 + "description": "Whether to run the command with extended privileges." 1645 + }, 1646 + "working_dir": { 1647 + "type": "string", 1648 + "description": "Working directory for the command." 1649 + }, 1650 + "environment": { 1651 + "$ref": "#/definitions/list_or_dict", 1652 + "description": "Environment variables for the command." 1653 + } 1654 + }, 1655 + "additionalProperties": false, 1656 + "patternProperties": {"^x-": {}}, 1657 + "required": ["command"] 1658 + }, 1659 + 1660 + "env_file": { 1661 + "oneOf": [ 1662 + { 1663 + "type": "string", 1664 + "description": "Path to a file containing environment variables." 1665 + }, 1666 + { 1667 + "type": "array", 1668 + "description": "List of paths to files containing environment variables.", 1669 + "items": { 1670 + "oneOf": [ 1671 + { 1672 + "type": "string", 1673 + "description": "Path to a file containing environment variables." 1674 + }, 1675 + { 1676 + "type": "object", 1677 + "description": "Detailed configuration for an environment file.", 1678 + "additionalProperties": false, 1679 + "properties": { 1680 + "path": { 1681 + "type": "string", 1682 + "description": "Path to the environment file." 1683 + }, 1684 + "format": { 1685 + "type": "string", 1686 + "description": "Format attribute lets you to use an alternative file formats for env_file. When not set, env_file is parsed according to Compose rules." 1687 + }, 1688 + "required": { 1689 + "type": ["boolean", "string"], 1690 + "default": true, 1691 + "description": "Whether the file is required. If true and the file doesn't exist, an error will be raised." 1692 + } 1693 + }, 1694 + "required": [ 1695 + "path" 1696 + ] 1697 + } 1698 + ] 1699 + } 1700 + } 1701 + ] 1702 + }, 1703 + 1704 + "label_file": { 1705 + "oneOf": [ 1706 + { 1707 + "type": "string", 1708 + "description": "Path to a file containing Docker labels." 1709 + }, 1710 + { 1711 + "type": "array", 1712 + "description": "List of paths to files containing Docker labels.", 1713 + "items": { 1714 + "type": "string", 1715 + "description": "Path to a file containing Docker labels." 1716 + } 1717 + } 1718 + ] 1719 + }, 1720 + 1721 + "string_or_list": { 1722 + "oneOf": [ 1723 + { 1724 + "type": "string", 1725 + "description": "A single string value." 1726 + }, 1727 + { 1728 + "$ref": "#/definitions/list_of_strings", 1729 + "description": "A list of string values." 1730 + } 1731 + ], 1732 + "description": "Either a single string or a list of strings." 1733 + }, 1734 + 1735 + "list_of_strings": { 1736 + "type": "array", 1737 + "description": "A list of unique string values.", 1738 + "items": { 1739 + "type": "string", 1740 + "description": "A string value in the list." 1741 + }, 1742 + "uniqueItems": true 1743 + }, 1744 + 1745 + "list_or_dict": { 1746 + "oneOf": [ 1747 + { 1748 + "type": "object", 1749 + "description": "A dictionary mapping keys to values.", 1750 + "patternProperties": { 1751 + ".+": { 1752 + "type": ["string", "number", "boolean", "null"], 1753 + "description": "Value for the key, which can be a string, number, boolean, or null." 1754 + } 1755 + }, 1756 + "additionalProperties": false 1757 + }, 1758 + { 1759 + "type": "array", 1760 + "description": "A list of unique string values.", 1761 + "items": { 1762 + "type": "string", 1763 + "description": "A string value in the list." 1764 + }, 1765 + "uniqueItems": true 1766 + } 1767 + ], 1768 + "description": "Either a dictionary mapping keys to values, or a list of strings." 1769 + }, 1770 + 1771 + "extra_hosts": { 1772 + "oneOf": [ 1773 + { 1774 + "type": "object", 1775 + "description": "list mapping hostnames to IP addresses.", 1776 + "patternProperties": { 1777 + ".+": { 1778 + "oneOf": [ 1779 + { 1780 + "type": "string", 1781 + "description": "IP address for the hostname." 1782 + }, 1783 + { 1784 + "type": "array", 1785 + "description": "List of IP addresses for the hostname.", 1786 + "items": { 1787 + "type": "string", 1788 + "description": "IP address for the hostname." 1789 + }, 1790 + "uniqueItems": false 1791 + } 1792 + ] 1793 + } 1794 + }, 1795 + "additionalProperties": false 1796 + }, 1797 + { 1798 + "type": "array", 1799 + "description": "List of host:IP mappings in the format 'hostname:IP'.", 1800 + "items": { 1801 + "type": "string", 1802 + "description": "Host:IP mapping in the format 'hostname:IP'." 1803 + }, 1804 + "uniqueItems": true 1805 + } 1806 + ], 1807 + "description": "Additional hostnames to be defined in the container's /etc/hosts file." 1808 + }, 1809 + 1810 + "blkio_limit": { 1811 + "type": "object", 1812 + "description": "Block IO limit for a specific device.", 1813 + "properties": { 1814 + "path": { 1815 + "type": "string", 1816 + "description": "Path to the device (e.g., '/dev/sda')." 1817 + }, 1818 + "rate": { 1819 + "type": ["integer", "string"], 1820 + "description": "Rate limit in bytes per second or IO operations per second." 1821 + } 1822 + }, 1823 + "additionalProperties": false 1824 + }, 1825 + "blkio_weight": { 1826 + "type": "object", 1827 + "description": "Block IO weight for a specific device.", 1828 + "properties": { 1829 + "path": { 1830 + "type": "string", 1831 + "description": "Path to the device (e.g., '/dev/sda')." 1832 + }, 1833 + "weight": { 1834 + "type": ["integer", "string"], 1835 + "description": "Relative weight for the device, between 10 and 1000." 1836 + } 1837 + }, 1838 + "additionalProperties": false 1839 + }, 1840 + "service_config_or_secret": { 1841 + "type": "array", 1842 + "description": "Configuration for service configs or secrets, defining how they are mounted in the container.", 1843 + "items": { 1844 + "oneOf": [ 1845 + { 1846 + "type": "string", 1847 + "description": "Name of the config or secret to grant access to." 1848 + }, 1849 + { 1850 + "type": "object", 1851 + "description": "Detailed configuration for a config or secret.", 1852 + "properties": { 1853 + "source": { 1854 + "type": "string", 1855 + "description": "Name of the config or secret as defined in the top-level configs or secrets section." 1856 + }, 1857 + "target": { 1858 + "type": "string", 1859 + "description": "Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets." 1860 + }, 1861 + "uid": { 1862 + "type": "string", 1863 + "description": "UID of the file in the container. Default is 0 (root)." 1864 + }, 1865 + "gid": { 1866 + "type": "string", 1867 + "description": "GID of the file in the container. Default is 0 (root)." 1868 + }, 1869 + "mode": { 1870 + "type": ["number", "string"], 1871 + "description": "File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets." 1872 + } 1873 + }, 1874 + "additionalProperties": false, 1875 + "patternProperties": {"^x-": {}} 1876 + } 1877 + ] 1878 + } 1879 + }, 1880 + "ulimits": { 1881 + "type": "object", 1882 + "description": "Container ulimit options, controlling resource limits for processes inside the container.", 1883 + "patternProperties": { 1884 + "^[a-z]+$": { 1885 + "oneOf": [ 1886 + { 1887 + "type": ["integer", "string"], 1888 + "description": "Single value for both soft and hard limits." 1889 + }, 1890 + { 1891 + "type": "object", 1892 + "description": "Separate soft and hard limits.", 1893 + "properties": { 1894 + "hard": { 1895 + "type": ["integer", "string"], 1896 + "description": "Hard limit for the ulimit type. This is the maximum allowed value." 1897 + }, 1898 + "soft": { 1899 + "type": ["integer", "string"], 1900 + "description": "Soft limit for the ulimit type. This is the value that's actually enforced." 1901 + } 1902 + }, 1903 + "required": ["soft", "hard"], 1904 + "additionalProperties": false, 1905 + "patternProperties": {"^x-": {}} 1906 + } 1907 + ] 1908 + } 1909 + } 1910 + } 1911 + } 1912 + }
+598 -22
pnpm-lock.yaml
··· 25 25 '@codemirror/lang-yaml': 26 26 specifier: ^6.1.2 27 27 version: 6.1.2 28 + '@codemirror/language': 29 + specifier: ^6.12.2 30 + version: 6.12.2 31 + '@codemirror/lint': 32 + specifier: ^6.9.5 33 + version: 6.9.5 34 + '@codemirror/state': 35 + specifier: ^6.6.0 36 + version: 6.6.0 28 37 '@codemirror/view': 29 38 specifier: ^6.40.0 30 39 version: 6.40.0 ··· 48 57 version: 6.7.2 49 58 '@sveltejs/adapter-static': 50 59 specifier: ^3.0.10 51 - version: 3.0.10(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3))) 60 + version: 3.0.10(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2))) 52 61 '@sveltejs/kit': 53 62 specifier: ^2.16.0 54 - version: 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 63 + version: 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 55 64 '@sveltejs/vite-plugin-svelte': 56 65 specifier: ^5.0.0 57 - version: 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 66 + version: 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 58 67 '@types/node': 59 68 specifier: ^25.3.5 60 69 version: 25.3.5 ··· 70 79 codemirror: 71 80 specifier: ^6.0.2 72 81 version: 6.0.2 82 + codemirror-json-schema: 83 + specifier: ^0.8.1 84 + version: 0.8.1(@codemirror/language@6.12.2)(@codemirror/lint@6.9.5)(@codemirror/state@6.6.0)(@codemirror/view@6.40.0)(@lezer/common@1.5.1) 73 85 melt: 74 86 specifier: ^0.44.0 75 87 version: 0.44.0(@floating-ui/dom@1.7.6)(svelte@5.53.7) ··· 90 102 version: 3.5.1(prettier@3.8.1)(svelte@5.53.7) 91 103 runed: 92 104 specifier: ^0.37.1 93 - version: 0.37.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7) 105 + version: 0.37.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7) 94 106 sass: 95 107 specifier: ^1.89.0 96 108 version: 1.97.3 ··· 111 123 version: 0.1.4(typescript@5.9.3) 112 124 vite: 113 125 specifier: ^6.2.6 114 - version: 6.4.1(@types/node@25.3.5)(sass@1.97.3) 126 + version: 6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2) 115 127 116 128 packages: 117 129 ··· 134 146 135 147 '@codemirror/commands@6.10.3': 136 148 resolution: {integrity: sha512-JFRiqhKu+bvSkDLI+rUhJwSxQxYb759W5GBezE8Uc8mHLqC9aV/9aTC7yJSqCtB3F00pylrLCwnyS91Ap5ej4Q==} 149 + 150 + '@codemirror/lang-json@6.0.2': 151 + resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} 137 152 138 153 '@codemirror/lang-yaml@6.1.2': 139 154 resolution: {integrity: sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==} ··· 366 381 '@lezer/highlight@1.2.3': 367 382 resolution: {integrity: sha512-qXdH7UqTvGfdVBINrgKhDsVTJTxactNNxLk7+UMwZhU13lMHaOBlJe9Vqp907ya56Y3+ed2tlqzys7jDkTmW0g==} 368 383 384 + '@lezer/json@1.0.3': 385 + resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} 386 + 369 387 '@lezer/lr@1.4.8': 370 388 resolution: {integrity: sha512-bPWa0Pgx69ylNlMlPvBPryqeLYQjyJjqPx+Aupm5zydLIF3NE+6MMLT8Yi23Bd9cif9VS00aUebn+6fDIGBcDA==} 371 389 ··· 614 632 cpu: [x64] 615 633 os: [win32] 616 634 635 + '@sagold/json-pointer@5.1.2': 636 + resolution: {integrity: sha512-+wAhJZBXa6MNxRScg6tkqEbChEHMgVZAhTHVJ60Y7sbtXtu9XA49KfUkdWlS2x78D6H9nryiKePiYozumauPfA==} 637 + 638 + '@sagold/json-query@6.2.0': 639 + resolution: {integrity: sha512-7bOIdUE6eHeoWtFm8TvHQHfTVSZuCs+3RpOKmZCDBIOrxpvF/rNFTeuvIyjHva/RR0yVS3kQtr+9TW72LQEZjA==} 640 + 641 + '@shikijs/core@1.29.2': 642 + resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} 643 + 644 + '@shikijs/engine-javascript@1.29.2': 645 + resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} 646 + 647 + '@shikijs/engine-oniguruma@1.29.2': 648 + resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} 649 + 650 + '@shikijs/langs@1.29.2': 651 + resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} 652 + 653 + '@shikijs/markdown-it@1.29.2': 654 + resolution: {integrity: sha512-RPHqGU8RGQZ2TGMnEqLnSyM9CjPSjb0f8bwSLnJgBmWPWguoygoaFyYkXG0kwMtBtChNYsqQz1C0fLcbo6dY8g==} 655 + 656 + '@shikijs/themes@1.29.2': 657 + resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} 658 + 659 + '@shikijs/types@1.29.2': 660 + resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} 661 + 662 + '@shikijs/vscode-textmate@10.0.2': 663 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 664 + 617 665 '@sinclair/typebox@0.27.10': 618 666 resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} 619 667 ··· 667 715 '@types/estree@1.0.8': 668 716 resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 669 717 718 + '@types/hast@3.0.4': 719 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 720 + 721 + '@types/mdast@4.0.4': 722 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 723 + 670 724 '@types/node@25.3.5': 671 725 resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==} 672 726 673 727 '@types/trusted-types@2.0.7': 674 728 resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} 729 + 730 + '@types/unist@3.0.3': 731 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 732 + 733 + '@ungap/structured-clone@1.3.0': 734 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 675 735 676 736 '@xterm/addon-fit@0.11.0': 677 737 resolution: {integrity: sha512-jYcgT6xtVYhnhgxh3QgYDnnNMYTcf8ElbxxFzX0IZo+vabQqSPAjC3c1wJrKB5E19VwQei89QCiZZP86DCPF7g==} ··· 721 781 balanced-match@1.0.2: 722 782 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 723 783 784 + best-effort-json-parser@1.4.0: 785 + resolution: {integrity: sha512-gYmXQicIXaaspBdCLqok3t0JXYdi3Cr9oIgYh2+9rEWiNhLvi/89cguCWXZJWp0FgBR6YoEE9YkbZEfqKdqs+Q==} 786 + 724 787 brace-expansion@2.0.2: 725 788 resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 726 789 790 + ccount@2.0.1: 791 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 792 + 727 793 chalk@4.1.2: 728 794 resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 729 795 engines: {node: '>=10'} ··· 731 797 change-case@5.4.4: 732 798 resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} 733 799 800 + character-entities-html4@2.1.0: 801 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 802 + 803 + character-entities-legacy@3.0.0: 804 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 805 + 734 806 chokidar@4.0.3: 735 807 resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 736 808 engines: {node: '>= 14.16.0'} ··· 739 811 resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 740 812 engines: {node: '>=6'} 741 813 814 + codemirror-json-schema@0.8.1: 815 + resolution: {integrity: sha512-4lKPjW+nugNAmM5MsggJyn6TUxYdCCwAJIr9T4cZeTFPdkbBvPteCOGtDedrTOIeTC2ZFJtVg7VHIXnYU32t8w==} 816 + peerDependencies: 817 + '@codemirror/language': ^6.10.2 818 + '@codemirror/lint': ^6.8.0 819 + '@codemirror/state': ^6.4.1 820 + '@codemirror/view': ^6.27.0 821 + '@lezer/common': ^1.2.1 822 + 823 + codemirror-json5@1.0.3: 824 + resolution: {integrity: sha512-HmmoYO2huQxoaoG5ARKjqQc9mz7/qmNPvMbISVfIE2Gk1+4vZQg9X3G6g49MYM5IK00Ol3aijd7OKrySuOkA7Q==} 825 + 742 826 codemirror@6.0.2: 743 827 resolution: {integrity: sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==} 744 828 ··· 752 836 colorette@1.4.0: 753 837 resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} 754 838 839 + comma-separated-tokens@2.0.3: 840 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 841 + 842 + commander@2.20.3: 843 + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 844 + 755 845 cookie@0.6.0: 756 846 resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 757 847 engines: {node: '>= 0.6'} ··· 783 873 devalue@5.6.3: 784 874 resolution: {integrity: sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg==} 785 875 876 + devlop@1.1.0: 877 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 878 + 786 879 diff-sequences@29.6.3: 787 880 resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 788 881 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 882 + 883 + discontinuous-range@1.0.0: 884 + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} 885 + 886 + ebnf@1.9.1: 887 + resolution: {integrity: sha512-uW2UKSsuty9ANJ3YByIQE4ANkD8nqUPO7r6Fwcc1ADKPe9FRdcPpMl3VEput4JSvKBJ4J86npIC2MLP0pYkCuw==} 888 + hasBin: true 889 + 890 + emoji-regex-xs@1.0.0: 891 + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} 892 + 893 + entities@4.5.0: 894 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 895 + engines: {node: '>=0.12'} 789 896 790 897 esbuild@0.25.12: 791 898 resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} ··· 798 905 esrap@2.2.3: 799 906 resolution: {integrity: sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ==} 800 907 908 + fast-copy@3.0.2: 909 + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} 910 + 801 911 fast-deep-equal@3.1.3: 802 912 resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 803 913 ··· 821 931 has-flag@4.0.0: 822 932 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 823 933 engines: {node: '>=8'} 934 + 935 + hast-util-to-html@9.0.5: 936 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 937 + 938 + hast-util-whitespace@3.0.0: 939 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 940 + 941 + html-void-elements@3.0.0: 942 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 824 943 825 944 https-proxy-agent@7.0.6: 826 945 resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} ··· 871 990 resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} 872 991 hasBin: true 873 992 993 + json-schema-library@9.3.5: 994 + resolution: {integrity: sha512-5eBDx7cbfs+RjylsVO+N36b0GOPtv78rfqgf2uON+uaHUIC62h63Y8pkV2ovKbaL4ZpQcHp21968x5nx/dFwqQ==} 995 + 874 996 json-schema-traverse@1.0.0: 875 997 resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 876 998 999 + json-schema@0.4.0: 1000 + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} 1001 + 1002 + json5@2.2.3: 1003 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1004 + engines: {node: '>=6'} 1005 + hasBin: true 1006 + 877 1007 kleur@4.1.5: 878 1008 resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 879 1009 engines: {node: '>=6'} 1010 + 1011 + lezer-json5@2.0.2: 1012 + resolution: {integrity: sha512-NRmtBlKW/f8mA7xatKq8IUOq045t8GVHI4kZXrUtYYUdiVeGiO6zKGAV7/nUAnf5q+rYTY+SWX/gvQdFXMjNxQ==} 1013 + 1014 + linkify-it@5.0.0: 1015 + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} 880 1016 881 1017 locate-character@3.0.0: 882 1018 resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} ··· 884 1020 lodash.merge@4.6.2: 885 1021 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 886 1022 1023 + loglevel@1.9.2: 1024 + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} 1025 + engines: {node: '>= 0.6.0'} 1026 + 887 1027 lz-string@1.5.0: 888 1028 resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 889 1029 hasBin: true ··· 891 1031 magic-string@0.30.21: 892 1032 resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} 893 1033 1034 + markdown-it@14.1.1: 1035 + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} 1036 + hasBin: true 1037 + 1038 + mdast-util-to-hast@13.2.1: 1039 + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} 1040 + 1041 + mdurl@2.0.0: 1042 + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} 1043 + 894 1044 melt@0.44.0: 895 1045 resolution: {integrity: sha512-N2/d5zY7XNr9R8ZB/dLVmZtRKaQgq2Pb1Y8Wrpfw/zeUG0TT1pTaQFL5wLDRS84NymOrkNH9NmufYI54UGzjCQ==} 896 1046 peerDependencies: 897 1047 '@floating-ui/dom': ^1.6.0 898 1048 svelte: ^5.30.1 1049 + 1050 + micromark-util-character@2.1.1: 1051 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 1052 + 1053 + micromark-util-encode@2.0.1: 1054 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 1055 + 1056 + micromark-util-sanitize-uri@2.0.1: 1057 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 1058 + 1059 + micromark-util-symbol@2.0.1: 1060 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 1061 + 1062 + micromark-util-types@2.0.2: 1063 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 899 1064 900 1065 minimatch@5.1.9: 901 1066 resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} 902 1067 engines: {node: '>=10'} 903 1068 1069 + moo@0.5.3: 1070 + resolution: {integrity: sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA==} 1071 + 904 1072 mri@1.2.0: 905 1073 resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 906 1074 engines: {node: '>=4'} ··· 917 1085 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 918 1086 hasBin: true 919 1087 1088 + nearley@2.20.1: 1089 + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} 1090 + hasBin: true 1091 + 920 1092 node-addon-api@7.1.1: 921 1093 resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} 1094 + 1095 + oniguruma-to-es@2.3.0: 1096 + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} 922 1097 923 1098 openapi-fetch@0.17.0: 924 1099 resolution: {integrity: sha512-PsbZR1wAPcG91eEthKhN+Zn92FMHxv+/faECIwjXdxfTODGSGegYv0sc1Olz+HYPvKOuoXfp+0pA2XVt2cI0Ig==} ··· 970 1145 resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 971 1146 engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 972 1147 1148 + property-information@7.1.0: 1149 + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 1150 + 1151 + punycode.js@2.3.1: 1152 + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} 1153 + engines: {node: '>=6'} 1154 + 1155 + railroad-diagrams@1.0.0: 1156 + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} 1157 + 1158 + randexp@0.4.6: 1159 + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} 1160 + engines: {node: '>=0.12'} 1161 + 973 1162 react-is@18.3.1: 974 1163 resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 975 1164 ··· 977 1166 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 978 1167 engines: {node: '>= 14.18.0'} 979 1168 1169 + regex-recursion@5.1.1: 1170 + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} 1171 + 1172 + regex-utilities@2.3.0: 1173 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 1174 + 1175 + regex@5.1.1: 1176 + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} 1177 + 980 1178 require-from-string@2.0.2: 981 1179 resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 982 1180 engines: {node: '>=0.10.0'} 1181 + 1182 + ret@0.1.15: 1183 + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} 1184 + engines: {node: '>=0.12'} 983 1185 984 1186 rollup@4.59.0: 985 1187 resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} ··· 1015 1217 set-cookie-parser@3.0.1: 1016 1218 resolution: {integrity: sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q==} 1017 1219 1220 + shiki@1.29.2: 1221 + resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} 1222 + 1018 1223 sirv@3.0.2: 1019 1224 resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} 1020 1225 engines: {node: '>=18'} 1226 + 1227 + smtp-address-parser@1.0.10: 1228 + resolution: {integrity: sha512-Osg9LmvGeAG/hyao4mldbflLOkkr3a+h4m1lwKCK5U8M6ZAr7tdXEz/+/vr752TSGE4MNUlUl9cIK2cB8cgzXg==} 1229 + engines: {node: '>=0.10'} 1021 1230 1022 1231 source-map-js@1.2.1: 1023 1232 resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1024 1233 engines: {node: '>=0.10.0'} 1025 1234 1235 + space-separated-tokens@2.0.2: 1236 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 1237 + 1238 + stringify-entities@4.0.4: 1239 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 1240 + 1026 1241 style-mod@4.1.3: 1027 1242 resolution: {integrity: sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==} 1028 1243 ··· 1062 1277 resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1063 1278 engines: {node: '>=6'} 1064 1279 1280 + trim-lines@3.0.1: 1281 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1282 + 1065 1283 type-fest@4.41.0: 1066 1284 resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} 1067 1285 engines: {node: '>=16'} ··· 1071 1289 engines: {node: '>=14.17'} 1072 1290 hasBin: true 1073 1291 1292 + uc.micro@2.1.0: 1293 + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} 1294 + 1074 1295 ultrapatch@0.1.4: 1075 1296 resolution: {integrity: sha512-JZDcQL/nhYy3R1Qq3ONtCDMT2hO1I1wsN5swrUJgvunxVdCey42myCHLCufvwIVjVSVTKr27LeadxAsCi6KIZw==} 1076 1297 peerDependencies: ··· 1079 1300 undici-types@7.18.2: 1080 1301 resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} 1081 1302 1303 + unist-util-is@6.0.1: 1304 + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} 1305 + 1306 + unist-util-position@5.0.0: 1307 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 1308 + 1309 + unist-util-stringify-position@4.0.0: 1310 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1311 + 1312 + unist-util-visit-parents@6.0.2: 1313 + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} 1314 + 1315 + unist-util-visit@5.1.0: 1316 + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} 1317 + 1082 1318 uri-js-replace@1.0.1: 1083 1319 resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} 1084 1320 1321 + valid-url@1.0.9: 1322 + resolution: {integrity: sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==} 1323 + 1324 + vfile-message@4.0.3: 1325 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 1326 + 1327 + vfile@6.0.3: 1328 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1329 + 1085 1330 vite@6.4.1: 1086 1331 resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} 1087 1332 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} ··· 1135 1380 1136 1381 yaml-ast-parser@0.0.43: 1137 1382 resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} 1383 + 1384 + yaml@2.8.2: 1385 + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} 1386 + engines: {node: '>= 14.6'} 1387 + hasBin: true 1138 1388 1139 1389 yargs-parser@21.1.1: 1140 1390 resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} ··· 1143 1393 zimmerframe@1.1.4: 1144 1394 resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} 1145 1395 1396 + zwitch@2.0.4: 1397 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1398 + 1146 1399 snapshots: 1147 1400 1148 1401 '@babel/code-frame@7.29.0': ··· 1176 1429 '@codemirror/state': 6.6.0 1177 1430 '@codemirror/view': 6.40.0 1178 1431 '@lezer/common': 1.5.1 1432 + 1433 + '@codemirror/lang-json@6.0.2': 1434 + dependencies: 1435 + '@codemirror/language': 6.12.2 1436 + '@lezer/json': 1.0.3 1437 + optional: true 1179 1438 1180 1439 '@codemirror/lang-yaml@6.1.2': 1181 1440 dependencies: ··· 1355 1614 dependencies: 1356 1615 '@lezer/common': 1.5.1 1357 1616 1617 + '@lezer/json@1.0.3': 1618 + dependencies: 1619 + '@lezer/common': 1.5.1 1620 + '@lezer/highlight': 1.2.3 1621 + '@lezer/lr': 1.4.8 1622 + optional: true 1623 + 1358 1624 '@lezer/lr@1.4.8': 1359 1625 dependencies: 1360 1626 '@lezer/common': 1.5.1 ··· 1528 1794 '@rollup/rollup-win32-x64-msvc@4.59.0': 1529 1795 optional: true 1530 1796 1797 + '@sagold/json-pointer@5.1.2': {} 1798 + 1799 + '@sagold/json-query@6.2.0': 1800 + dependencies: 1801 + '@sagold/json-pointer': 5.1.2 1802 + ebnf: 1.9.1 1803 + 1804 + '@shikijs/core@1.29.2': 1805 + dependencies: 1806 + '@shikijs/engine-javascript': 1.29.2 1807 + '@shikijs/engine-oniguruma': 1.29.2 1808 + '@shikijs/types': 1.29.2 1809 + '@shikijs/vscode-textmate': 10.0.2 1810 + '@types/hast': 3.0.4 1811 + hast-util-to-html: 9.0.5 1812 + 1813 + '@shikijs/engine-javascript@1.29.2': 1814 + dependencies: 1815 + '@shikijs/types': 1.29.2 1816 + '@shikijs/vscode-textmate': 10.0.2 1817 + oniguruma-to-es: 2.3.0 1818 + 1819 + '@shikijs/engine-oniguruma@1.29.2': 1820 + dependencies: 1821 + '@shikijs/types': 1.29.2 1822 + '@shikijs/vscode-textmate': 10.0.2 1823 + 1824 + '@shikijs/langs@1.29.2': 1825 + dependencies: 1826 + '@shikijs/types': 1.29.2 1827 + 1828 + '@shikijs/markdown-it@1.29.2': 1829 + dependencies: 1830 + markdown-it: 14.1.1 1831 + shiki: 1.29.2 1832 + 1833 + '@shikijs/themes@1.29.2': 1834 + dependencies: 1835 + '@shikijs/types': 1.29.2 1836 + 1837 + '@shikijs/types@1.29.2': 1838 + dependencies: 1839 + '@shikijs/vscode-textmate': 10.0.2 1840 + '@types/hast': 3.0.4 1841 + 1842 + '@shikijs/vscode-textmate@10.0.2': {} 1843 + 1531 1844 '@sinclair/typebox@0.27.10': {} 1532 1845 1533 1846 '@standard-schema/spec@1.1.0': {} ··· 1536 1849 dependencies: 1537 1850 acorn: 8.16.0 1538 1851 1539 - '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))': 1852 + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))': 1540 1853 dependencies: 1541 - '@sveltejs/kit': 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 1854 + '@sveltejs/kit': 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1542 1855 1543 - '@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3))': 1856 + '@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2))': 1544 1857 dependencies: 1545 1858 '@standard-schema/spec': 1.1.0 1546 1859 '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) 1547 - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 1860 + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1548 1861 '@types/cookie': 0.6.0 1549 1862 acorn: 8.16.0 1550 1863 cookie: 0.6.0 ··· 1556 1869 set-cookie-parser: 3.0.1 1557 1870 sirv: 3.0.2 1558 1871 svelte: 5.53.7 1559 - vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3) 1872 + vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2) 1560 1873 optionalDependencies: 1561 1874 typescript: 5.9.3 1562 1875 1563 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3))': 1876 + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2))': 1564 1877 dependencies: 1565 - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 1878 + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1566 1879 debug: 4.4.3(supports-color@10.2.2) 1567 1880 svelte: 5.53.7 1568 - vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3) 1881 + vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2) 1569 1882 transitivePeerDependencies: 1570 1883 - supports-color 1571 1884 1572 - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3))': 1885 + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2))': 1573 1886 dependencies: 1574 - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 1887 + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1575 1888 debug: 4.4.3(supports-color@10.2.2) 1576 1889 deepmerge: 4.3.1 1577 1890 kleur: 4.1.5 1578 1891 magic-string: 0.30.21 1579 1892 svelte: 5.53.7 1580 - vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3) 1581 - vitefu: 1.1.2(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 1893 + vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2) 1894 + vitefu: 1.1.2(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1582 1895 transitivePeerDependencies: 1583 1896 - supports-color 1584 1897 ··· 1586 1899 1587 1900 '@types/estree@1.0.8': {} 1588 1901 1902 + '@types/hast@3.0.4': 1903 + dependencies: 1904 + '@types/unist': 3.0.3 1905 + 1906 + '@types/mdast@4.0.4': 1907 + dependencies: 1908 + '@types/unist': 3.0.3 1909 + 1589 1910 '@types/node@25.3.5': 1590 1911 dependencies: 1591 1912 undici-types: 7.18.2 1592 1913 1593 1914 '@types/trusted-types@2.0.7': {} 1915 + 1916 + '@types/unist@3.0.3': {} 1917 + 1918 + '@ungap/structured-clone@1.3.0': {} 1594 1919 1595 1920 '@xterm/addon-fit@0.11.0': {} 1596 1921 ··· 1620 1945 1621 1946 balanced-match@1.0.2: {} 1622 1947 1948 + best-effort-json-parser@1.4.0: {} 1949 + 1623 1950 brace-expansion@2.0.2: 1624 1951 dependencies: 1625 1952 balanced-match: 1.0.2 1953 + 1954 + ccount@2.0.1: {} 1626 1955 1627 1956 chalk@4.1.2: 1628 1957 dependencies: ··· 1631 1960 1632 1961 change-case@5.4.4: {} 1633 1962 1963 + character-entities-html4@2.1.0: {} 1964 + 1965 + character-entities-legacy@3.0.0: {} 1966 + 1634 1967 chokidar@4.0.3: 1635 1968 dependencies: 1636 1969 readdirp: 4.1.2 1637 1970 1638 1971 clsx@2.1.1: {} 1639 1972 1973 + codemirror-json-schema@0.8.1(@codemirror/language@6.12.2)(@codemirror/lint@6.9.5)(@codemirror/state@6.6.0)(@codemirror/view@6.40.0)(@lezer/common@1.5.1): 1974 + dependencies: 1975 + '@codemirror/language': 6.12.2 1976 + '@codemirror/lint': 6.9.5 1977 + '@codemirror/state': 6.6.0 1978 + '@codemirror/view': 6.40.0 1979 + '@lezer/common': 1.5.1 1980 + '@sagold/json-pointer': 5.1.2 1981 + '@shikijs/markdown-it': 1.29.2 1982 + best-effort-json-parser: 1.4.0 1983 + json-schema: 0.4.0 1984 + json-schema-library: 9.3.5 1985 + loglevel: 1.9.2 1986 + markdown-it: 14.1.1 1987 + shiki: 1.29.2 1988 + yaml: 2.8.2 1989 + optionalDependencies: 1990 + '@codemirror/autocomplete': 6.20.1 1991 + '@codemirror/lang-json': 6.0.2 1992 + '@codemirror/lang-yaml': 6.1.2 1993 + codemirror-json5: 1.0.3 1994 + json5: 2.2.3 1995 + 1996 + codemirror-json5@1.0.3: 1997 + dependencies: 1998 + '@codemirror/language': 6.12.2 1999 + '@codemirror/state': 6.6.0 2000 + '@codemirror/view': 6.40.0 2001 + '@lezer/common': 1.5.1 2002 + '@lezer/highlight': 1.2.3 2003 + json5: 2.2.3 2004 + lezer-json5: 2.0.2 2005 + optional: true 2006 + 1640 2007 codemirror@6.0.2: 1641 2008 dependencies: 1642 2009 '@codemirror/autocomplete': 6.20.1 ··· 1655 2022 1656 2023 colorette@1.4.0: {} 1657 2024 2025 + comma-separated-tokens@2.0.3: {} 2026 + 2027 + commander@2.20.3: {} 2028 + 1658 2029 cookie@0.6.0: {} 1659 2030 1660 2031 crelt@1.0.6: {} ··· 1674 2045 1675 2046 devalue@5.6.3: {} 1676 2047 2048 + devlop@1.1.0: 2049 + dependencies: 2050 + dequal: 2.0.3 2051 + 1677 2052 diff-sequences@29.6.3: {} 2053 + 2054 + discontinuous-range@1.0.0: {} 2055 + 2056 + ebnf@1.9.1: {} 2057 + 2058 + emoji-regex-xs@1.0.0: {} 2059 + 2060 + entities@4.5.0: {} 1678 2061 1679 2062 esbuild@0.25.12: 1680 2063 optionalDependencies: ··· 1711 2094 dependencies: 1712 2095 '@jridgewell/sourcemap-codec': 1.5.5 1713 2096 2097 + fast-copy@3.0.2: {} 2098 + 1714 2099 fast-deep-equal@3.1.3: {} 1715 2100 1716 2101 fdir@6.5.0(picomatch@4.0.3): ··· 1726 2111 1727 2112 has-flag@4.0.0: {} 1728 2113 2114 + hast-util-to-html@9.0.5: 2115 + dependencies: 2116 + '@types/hast': 3.0.4 2117 + '@types/unist': 3.0.3 2118 + ccount: 2.0.1 2119 + comma-separated-tokens: 2.0.3 2120 + hast-util-whitespace: 3.0.0 2121 + html-void-elements: 3.0.0 2122 + mdast-util-to-hast: 13.2.1 2123 + property-information: 7.1.0 2124 + space-separated-tokens: 2.0.2 2125 + stringify-entities: 4.0.4 2126 + zwitch: 2.0.4 2127 + 2128 + hast-util-whitespace@3.0.0: 2129 + dependencies: 2130 + '@types/hast': 3.0.4 2131 + 2132 + html-void-elements@3.0.0: {} 2133 + 1729 2134 https-proxy-agent@7.0.6(supports-color@10.2.2): 1730 2135 dependencies: 1731 2136 agent-base: 7.1.4 ··· 1780 2185 dependencies: 1781 2186 argparse: 2.0.1 1782 2187 2188 + json-schema-library@9.3.5: 2189 + dependencies: 2190 + '@sagold/json-pointer': 5.1.2 2191 + '@sagold/json-query': 6.2.0 2192 + deepmerge: 4.3.1 2193 + fast-copy: 3.0.2 2194 + fast-deep-equal: 3.1.3 2195 + smtp-address-parser: 1.0.10 2196 + valid-url: 1.0.9 2197 + 1783 2198 json-schema-traverse@1.0.0: {} 1784 2199 2200 + json-schema@0.4.0: {} 2201 + 2202 + json5@2.2.3: 2203 + optional: true 2204 + 1785 2205 kleur@4.1.5: {} 1786 2206 2207 + lezer-json5@2.0.2: 2208 + dependencies: 2209 + '@lezer/lr': 1.4.8 2210 + optional: true 2211 + 2212 + linkify-it@5.0.0: 2213 + dependencies: 2214 + uc.micro: 2.1.0 2215 + 1787 2216 locate-character@3.0.0: {} 1788 2217 1789 2218 lodash.merge@4.6.2: {} 2219 + 2220 + loglevel@1.9.2: {} 1790 2221 1791 2222 lz-string@1.5.0: {} 1792 2223 ··· 1794 2225 dependencies: 1795 2226 '@jridgewell/sourcemap-codec': 1.5.5 1796 2227 2228 + markdown-it@14.1.1: 2229 + dependencies: 2230 + argparse: 2.0.1 2231 + entities: 4.5.0 2232 + linkify-it: 5.0.0 2233 + mdurl: 2.0.0 2234 + punycode.js: 2.3.1 2235 + uc.micro: 2.1.0 2236 + 2237 + mdast-util-to-hast@13.2.1: 2238 + dependencies: 2239 + '@types/hast': 3.0.4 2240 + '@types/mdast': 4.0.4 2241 + '@ungap/structured-clone': 1.3.0 2242 + devlop: 1.1.0 2243 + micromark-util-sanitize-uri: 2.0.1 2244 + trim-lines: 3.0.1 2245 + unist-util-position: 5.0.0 2246 + unist-util-visit: 5.1.0 2247 + vfile: 6.0.3 2248 + 2249 + mdurl@2.0.0: {} 2250 + 1797 2251 melt@0.44.0(@floating-ui/dom@1.7.6)(svelte@5.53.7): 1798 2252 dependencies: 1799 2253 '@floating-ui/dom': 1.7.6 ··· 1803 2257 runed: 0.23.4(svelte@5.53.7) 1804 2258 svelte: 5.53.7 1805 2259 2260 + micromark-util-character@2.1.1: 2261 + dependencies: 2262 + micromark-util-symbol: 2.0.1 2263 + micromark-util-types: 2.0.2 2264 + 2265 + micromark-util-encode@2.0.1: {} 2266 + 2267 + micromark-util-sanitize-uri@2.0.1: 2268 + dependencies: 2269 + micromark-util-character: 2.1.1 2270 + micromark-util-encode: 2.0.1 2271 + micromark-util-symbol: 2.0.1 2272 + 2273 + micromark-util-symbol@2.0.1: {} 2274 + 2275 + micromark-util-types@2.0.2: {} 2276 + 1806 2277 minimatch@5.1.9: 1807 2278 dependencies: 1808 2279 brace-expansion: 2.0.2 2280 + 2281 + moo@0.5.3: {} 1809 2282 1810 2283 mri@1.2.0: {} 1811 2284 ··· 1815 2288 1816 2289 nanoid@3.3.11: {} 1817 2290 2291 + nearley@2.20.1: 2292 + dependencies: 2293 + commander: 2.20.3 2294 + moo: 0.5.3 2295 + railroad-diagrams: 1.0.0 2296 + randexp: 0.4.6 2297 + 1818 2298 node-addon-api@7.1.1: 1819 2299 optional: true 2300 + 2301 + oniguruma-to-es@2.3.0: 2302 + dependencies: 2303 + emoji-regex-xs: 1.0.0 2304 + regex: 5.1.1 2305 + regex-recursion: 5.1.1 1820 2306 1821 2307 openapi-fetch@0.17.0: 1822 2308 dependencies: ··· 1867 2353 ansi-styles: 5.2.0 1868 2354 react-is: 18.3.1 1869 2355 2356 + property-information@7.1.0: {} 2357 + 2358 + punycode.js@2.3.1: {} 2359 + 2360 + railroad-diagrams@1.0.0: {} 2361 + 2362 + randexp@0.4.6: 2363 + dependencies: 2364 + discontinuous-range: 1.0.0 2365 + ret: 0.1.15 2366 + 1870 2367 react-is@18.3.1: {} 1871 2368 1872 2369 readdirp@4.1.2: {} 1873 2370 2371 + regex-recursion@5.1.1: 2372 + dependencies: 2373 + regex: 5.1.1 2374 + regex-utilities: 2.3.0 2375 + 2376 + regex-utilities@2.3.0: {} 2377 + 2378 + regex@5.1.1: 2379 + dependencies: 2380 + regex-utilities: 2.3.0 2381 + 1874 2382 require-from-string@2.0.2: {} 1875 2383 2384 + ret@0.1.15: {} 2385 + 1876 2386 rollup@4.59.0: 1877 2387 dependencies: 1878 2388 '@types/estree': 1.0.8 ··· 1909 2419 esm-env: 1.2.2 1910 2420 svelte: 5.53.7 1911 2421 1912 - runed@0.37.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7): 2422 + runed@0.37.1(@sveltejs/kit@2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7): 1913 2423 dependencies: 1914 2424 dequal: 2.0.3 1915 2425 esm-env: 1.2.2 1916 2426 lz-string: 1.5.0 1917 2427 svelte: 5.53.7 1918 2428 optionalDependencies: 1919 - '@sveltejs/kit': 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)) 2429 + '@sveltejs/kit': 2.53.4(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.53.7)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)))(svelte@5.53.7)(typescript@5.9.3)(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)) 1920 2430 1921 2431 sade@1.8.1: 1922 2432 dependencies: ··· 1932 2442 1933 2443 set-cookie-parser@3.0.1: {} 1934 2444 2445 + shiki@1.29.2: 2446 + dependencies: 2447 + '@shikijs/core': 1.29.2 2448 + '@shikijs/engine-javascript': 1.29.2 2449 + '@shikijs/engine-oniguruma': 1.29.2 2450 + '@shikijs/langs': 1.29.2 2451 + '@shikijs/themes': 1.29.2 2452 + '@shikijs/types': 1.29.2 2453 + '@shikijs/vscode-textmate': 10.0.2 2454 + '@types/hast': 3.0.4 2455 + 1935 2456 sirv@3.0.2: 1936 2457 dependencies: 1937 2458 '@polka/url': 1.0.0-next.29 1938 2459 mrmime: 2.0.1 1939 2460 totalist: 3.0.1 2461 + 2462 + smtp-address-parser@1.0.10: 2463 + dependencies: 2464 + nearley: 2.20.1 1940 2465 1941 2466 source-map-js@1.2.1: {} 1942 2467 2468 + space-separated-tokens@2.0.2: {} 2469 + 2470 + stringify-entities@4.0.4: 2471 + dependencies: 2472 + character-entities-html4: 2.1.0 2473 + character-entities-legacy: 3.0.0 2474 + 1943 2475 style-mod@4.1.3: {} 1944 2476 1945 2477 supports-color@10.2.2: {} ··· 1992 2524 1993 2525 totalist@3.0.1: {} 1994 2526 2527 + trim-lines@3.0.1: {} 2528 + 1995 2529 type-fest@4.41.0: {} 1996 2530 1997 2531 typescript@5.9.3: {} 1998 2532 2533 + uc.micro@2.1.0: {} 2534 + 1999 2535 ultrapatch@0.1.4(typescript@5.9.3): 2000 2536 dependencies: 2001 2537 typescript: 5.9.3 2002 2538 2003 2539 undici-types@7.18.2: {} 2004 2540 2541 + unist-util-is@6.0.1: 2542 + dependencies: 2543 + '@types/unist': 3.0.3 2544 + 2545 + unist-util-position@5.0.0: 2546 + dependencies: 2547 + '@types/unist': 3.0.3 2548 + 2549 + unist-util-stringify-position@4.0.0: 2550 + dependencies: 2551 + '@types/unist': 3.0.3 2552 + 2553 + unist-util-visit-parents@6.0.2: 2554 + dependencies: 2555 + '@types/unist': 3.0.3 2556 + unist-util-is: 6.0.1 2557 + 2558 + unist-util-visit@5.1.0: 2559 + dependencies: 2560 + '@types/unist': 3.0.3 2561 + unist-util-is: 6.0.1 2562 + unist-util-visit-parents: 6.0.2 2563 + 2005 2564 uri-js-replace@1.0.1: {} 2006 2565 2007 - vite@6.4.1(@types/node@25.3.5)(sass@1.97.3): 2566 + valid-url@1.0.9: {} 2567 + 2568 + vfile-message@4.0.3: 2569 + dependencies: 2570 + '@types/unist': 3.0.3 2571 + unist-util-stringify-position: 4.0.0 2572 + 2573 + vfile@6.0.3: 2574 + dependencies: 2575 + '@types/unist': 3.0.3 2576 + vfile-message: 4.0.3 2577 + 2578 + vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2): 2008 2579 dependencies: 2009 2580 esbuild: 0.25.12 2010 2581 fdir: 6.5.0(picomatch@4.0.3) ··· 2016 2587 '@types/node': 25.3.5 2017 2588 fsevents: 2.3.3 2018 2589 sass: 1.97.3 2590 + yaml: 2.8.2 2019 2591 2020 - vitefu@1.1.2(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)): 2592 + vitefu@1.1.2(vite@6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2)): 2021 2593 optionalDependencies: 2022 - vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3) 2594 + vite: 6.4.1(@types/node@25.3.5)(sass@1.97.3)(yaml@2.8.2) 2023 2595 2024 2596 w3c-keyname@2.2.8: {} 2025 2597 2026 2598 yaml-ast-parser@0.0.43: {} 2027 2599 2600 + yaml@2.8.2: {} 2601 + 2028 2602 yargs-parser@21.1.1: {} 2029 2603 2030 2604 zimmerframe@1.1.4: {} 2605 + 2606 + zwitch@2.0.4: {}