@cloud-cli/on 1.35.0 → 1.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/on.js CHANGED
@@ -5586,93 +5586,612 @@ function Vi(e = !1) {
5586
5586
  </body>
5587
5587
  </html>`;
5588
5588
  }
5589
- //#endregion
5590
- //#region src/workflows-ui.html?raw
5591
- var Hi = "<!doctype html>\n<html lang=\"en\" class=\"dark\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"theme-color\" content=\"#030712\" />\n <meta name=\"mobile-web-app-capable\" content=\"yes\" />\n <link rel=\"manifest\" href=\"/manifest.webmanifest\" />\n <link rel=\"icon\" href=\"/app-icon.svg\" type=\"image/svg+xml\" />\n <title>Runner Workflow Management</title>\n <script type=\"importmap\">\n { \"imports\": { \"@li3/\": \"https://cdn.li3.dev/@li3/\" } }\n <\/script>\n <style>\n body[data-page='list'] .editor-panel {\n display: none;\n }\n body[data-page='editor'] .workflow-list,\n body[data-page='editor'] .secrets-panel {\n display: none;\n }\n </style>\n </head>\n <body data-page=\"__WORKFLOW_PAGE__\" class=\"min-h-screen bg-gray-950 p-4 font-sans text-gray-100 md:p-6\">\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/code-editor.html\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/code-block.html\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/lucide-icon.html\" />\n\n <template app>\n <main class=\"mx-auto max-w-6xl space-y-5\">\n <header class=\"flex flex-col gap-4 border-b border-gray-800 pb-5 sm:flex-row sm:items-end sm:justify-between\">\n <div class=\"flex items-start gap-3\">\n <a\n href=\"/runs\"\n aria-label=\"Back to dashboard\"\n class=\"mt-1 rounded-lg border border-gray-800 bg-gray-900 p-2 text-gray-400 transition hover:border-indigo-500/60 hover:text-indigo-300\"\n >\n <lucide-icon icon=\"arrow-left\" size=\"17\"></lucide-icon>\n </a>\n <div>\n <p class=\"text-xs font-semibold uppercase tracking-[0.18em] text-indigo-400\">Runner engine</p>\n <h1 class=\"mt-1 text-2xl font-bold tracking-tight text-white\">Workflow control room</h1>\n <p class=\"mt-1 text-sm text-gray-400\">Draft, validate, and publish revisioned YAML definitions.</p>\n </div>\n </div>\n <a\n href=\"/workflows/new\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg bg-indigo-500 px-4 py-2.5 text-sm font-semibold text-white shadow-lg shadow-indigo-950/40 transition hover:bg-indigo-400\"\n >\n <lucide-icon icon=\"plus\" size=\"16\"></lucide-icon>\n New workflow\n </a>\n <a\n href=\"/help\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-gray-800 bg-gray-900 px-3 py-2.5 text-sm font-medium text-gray-300 outline-none transition hover:border-indigo-500/50 hover:text-indigo-200 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\"></circle>\n <path d=\"M9.6 9a2.5 2.5 0 1 1 4.2 1.8c-1.2 1-1.8 1.4-1.8 2.7\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n Help\n </a>\n </header>\n\n <template if=\"notice\">\n <div\n role=\"status\"\n class=\"flex items-center gap-2 rounded-lg border px-3 py-2.5 text-sm\"\n bind-class=\"noticeError ? 'border-rose-500/40 bg-rose-500/10 text-rose-100' : 'border-emerald-500/40 bg-emerald-500/10 text-emerald-100'\"\n >\n <lucide-icon bind-icon=\"noticeError ? 'circle-alert' : 'circle-check'\" size=\"17\"></lucide-icon>\n <span>{{ notice }}</span>\n </div>\n </template>\n\n <section id=\"workflow-layout\" class=\"space-y-5\">\n <nav\n class=\"workflow-list rounded-2xl border border-gray-800 bg-gray-900/80 p-4 shadow-xl shadow-black/10\"\n aria-labelledby=\"workflow-list-title\"\n >\n <div class=\"mb-4 flex items-end justify-between gap-3 border-b border-gray-800 pb-4\">\n <div>\n <p class=\"text-[11px] font-semibold uppercase tracking-[0.18em] text-indigo-400\">Definitions</p>\n <h2 id=\"workflow-list-title\" class=\"mt-1 text-lg font-semibold text-white\">Workflows</h2>\n </div>\n <span\n class=\"rounded-full border border-gray-700 bg-gray-950 px-2.5 py-1 text-xs font-mono text-gray-400\"\n aria-label=\"Workflow count\"\n >\n {{ workflows.length }}\n </span>\n </div>\n <ul class=\"grid gap-2\" aria-label=\"Workflow definitions\">\n <template for=\"workflow of workflows\">\n <li>\n <a\n attr-href=\"'/workflows/' + workflow.id\"\n class=\"group flex min-h-16 items-center gap-3 rounded-xl border border-gray-800 bg-gray-950/50 px-3.5 py-3 text-left text-sm text-gray-300 outline-none transition hover:border-indigo-500/50 hover:bg-indigo-500/10 focus-visible:border-indigo-400 focus-visible:ring-2 focus-visible:ring-indigo-400/50\"\n >\n <span\n class=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-gray-800 text-gray-400 transition group-hover:bg-indigo-500/15 group-hover:text-indigo-300\"\n >\n <lucide-icon icon=\"workflow\" size=\"17\"></lucide-icon>\n </span>\n <span class=\"min-w-0 flex-1\">\n <span class=\"block truncate font-medium text-gray-100\">{{ workflow.name }}</span>\n <span class=\"mt-0.5 block truncate font-mono text-[11px] text-gray-500\">{{ workflow.id }}</span>\n </span>\n <span\n class=\"rounded-full border px-2 py-1 text-[10px] font-semibold uppercase tracking-wide\"\n bind-class=\"workflow.status === 'published' ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-300' : workflow.status === 'archived' ? 'border-gray-700 bg-gray-800 text-gray-500' : 'border-amber-500/30 bg-amber-500/10 text-amber-300'\"\n >{{ workflow.status }}</span\n >\n <lucide-icon\n icon=\"arrow-up-right\"\n size=\"16\"\n class=\"shrink-0 text-gray-600 transition group-hover:text-indigo-300\"\n ></lucide-icon>\n </a>\n </li>\n </template>\n </ul>\n <div\n class=\"rounded-xl border border-dashed border-gray-700 px-4 py-8 text-center\"\n class-hidden=\"workflows.length > 0\"\n >\n <lucide-icon icon=\"workflow\" size=\"22\" class=\"mx-auto text-gray-600\"></lucide-icon>\n <p class=\"mt-2 text-sm font-medium text-gray-300\">No workflows yet</p>\n <p class=\"mt-1 text-xs text-gray-500\">Create a definition to start automating jobs.</p>\n </div>\n </nav>\n\n <section\n class=\"editor-panel overflow-hidden rounded-xl border border-gray-800 bg-gray-900/80 shadow-xl shadow-black/10\"\n >\n <div class=\"border-b border-gray-800 px-4 pt-3 sm:px-5\">\n <a\n href=\"/workflows\"\n class=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-gray-400 outline-none transition hover:bg-gray-800 hover:text-gray-100 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <lucide-icon icon=\"arrow-left\" size=\"14\"></lucide-icon>\n Back to workflows\n </a>\n </div>\n <div class=\"border-b border-gray-800 bg-gray-900 px-4 py-4 sm:px-5\">\n <div class=\"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between\">\n <label class=\"block max-w-xl flex-1 text-xs font-semibold uppercase tracking-wider text-gray-400\"\n >Workflow ID\n <input\n bind-value=\"workflowId\"\n on-input=\"setWorkflowId($event)\"\n bind-disabled=\"selectedId\"\n aria-describedby=\"workflow-id-help\"\n class=\"mt-2 w-full rounded-lg border border-gray-700 bg-gray-950 px-3 py-2.5 font-mono text-sm normal-case tracking-normal text-white outline-none transition focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20\"\n placeholder=\"derived-from-workflow-name\"\n />\n <span\n id=\"workflow-id-help\"\n class=\"mt-1 block text-[11px] font-normal normal-case tracking-normal text-gray-500\"\n >The ID becomes permanent after the first save.</span\n >\n </label>\n <label class=\"inline-flex items-center gap-2 text-sm text-gray-300\">\n <input\n type=\"checkbox\"\n bind-checked=\"enabled\"\n on-change=\"setEnabled($event)\"\n class=\"h-4 w-4 rounded border-gray-700 bg-gray-950 text-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n />\n Enabled\n </label>\n <div class=\"flex flex-wrap gap-2\" class-hidden=\"readOnly\">\n <button\n type=\"button\"\n aria-label=\"Save workflow draft\"\n title=\"Save workflow draft\"\n on-click=\"save()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg bg-indigo-500 px-3 py-2.5 text-sm font-semibold text-white transition hover:bg-indigo-400 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"save\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Save draft</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Publish workflow\"\n title=\"Publish workflow\"\n on-click=\"publish()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg border border-emerald-500/50 px-3 py-2.5 text-sm font-medium text-emerald-300 transition hover:bg-emerald-500/10 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"rocket\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Publish</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Delete workflow\"\n title=\"Delete workflow\"\n on-click=\"remove()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg border border-rose-500/50 px-3 py-2.5 text-sm font-medium text-rose-300 transition hover:bg-rose-500/10 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"trash\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Delete</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"p-3 sm:p-5\">\n <div class=\"mb-2 flex items-center justify-between px-1 text-xs text-gray-500\">\n <div class=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Validate workflow\"\n title=\"Validate workflow\"\n on-click=\"validate(1)\"\n bind-disabled=\"validation.running\"\n bind-class=\"{ 'hidden': readOnly, 'text-emerald-400': validation.valid, 'text-rose-400': !validation.valid }\"\n class=\"disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon\n class=\"inline-block\"\n bind-icon=\"validation.running ? 'loader-circle' : (validation.valid ? 'circle-check' : 'circle-alert')\"\n bind-class=\"validation.running ? 'animate-spin' : ''\"\n size=\"16\"\n ></lucide-icon>\n </button>\n <span class=\"font-medium\" bind-class=\"validation.error ? 'bg-rose-500/10 text-rose-100' : ''\"\n >{{ validation.error || '' }}</span\n >\n </div>\n <span class=\"font-mono\">{{ source.length }} characters</span>\n </div>\n <template if=\"readOnly\">\n <code-block\n language=\"yaml\"\n theme=\"atom-one-dark\"\n class=\"block h-[calc(100vh-23rem)] min-h-[28rem] overflow-auto rounded-lg border border-gray-700 bg-gray-950 p-4\"\n bind-source=\"source\"\n ></code-block>\n </template>\n <template if=\"!readOnly\">\n <code-editor\n id=\"source-yaml\"\n language=\"yaml\"\n theme=\"atom-one-dark\"\n nostatus=\"true\"\n class=\"block h-[calc(100vh-23rem)] min-h-[28rem] overflow-hidden rounded-lg border border-gray-700 bg-gray-950\"\n bind-value=\"source\"\n on-change=\"setSource($event.detail)\"\n ></code-editor>\n </template>\n <details\n class=\"mt-4 overflow-hidden rounded-xl border border-gray-800 bg-gray-950/50\"\n on-toggle=\"loadHelp($event)\"\n >\n <summary\n class=\"cursor-pointer list-none px-4 py-3 text-sm font-medium text-gray-300 outline-none transition hover:bg-gray-900 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <span class=\"inline-flex items-center gap-2\"\n ><lucide-icon icon=\"circle-question-mark\" size=\"16\"></lucide-icon>Syntax</span\n >\n <span class=\"ml-2 text-xs font-normal text-gray-500\">Reference, tutorials, and examples</span>\n </summary>\n <div\n ref=\"helpContent\"\n class=\"max-h-[38rem] overflow-y-auto border-t border-gray-800 bg-gray-950 px-4 py-5\"\n role=\"region\"\n aria-label=\"Workflow syntax help\"\n aria-live=\"polite\"\n >\n <p class=\"text-sm text-gray-500\">Expand to load the workflow syntax reference.</p>\n </div>\n </details>\n </div>\n </section>\n </section>\n\n <section\n class=\"secrets-panel rounded-2xl border border-gray-800 bg-gray-900/80 p-4 shadow-xl shadow-black/10 sm:p-5\"\n aria-labelledby=\"secrets-title\"\n >\n <div class=\"mb-5 flex items-start justify-between gap-3\">\n <div class=\"flex items-start gap-3\">\n <span class=\"rounded-lg bg-indigo-500/10 p-2 text-indigo-300\"\n ><lucide-icon icon=\"key-round\" size=\"18\"></lucide-icon\n ></span>\n <div>\n <h2 id=\"secrets-title\" class=\"text-lg font-semibold text-white\">Secrets</h2>\n <p class=\"mt-0.5 text-sm text-gray-400\">Write-only credentials available to workflows.</p>\n </div>\n </div>\n <span\n class=\"rounded-full border border-gray-700 bg-gray-950 px-2.5 py-1 text-xs font-mono text-gray-400\"\n aria-label=\"Secret count\"\n >{{ secrets.length }}</span\n >\n </div>\n <div class=\"mb-5 rounded-xl border border-gray-800 bg-gray-950/50 p-3\">\n <p class=\"mb-3 text-xs text-gray-500\">Saving an existing name replaces its encrypted value.</p>\n <div class=\"grid gap-3 md:grid-cols-[14rem_1fr_auto_auto]\">\n <label class=\"sr-only\" for=\"secret-name\">Secret name</label>\n <input\n id=\"secret-name\"\n bind-value=\"secretName\"\n on-input=\"setSecretName($event)\"\n class=\"rounded-lg border border-gray-700 bg-gray-900 px-3 py-2.5 font-mono text-sm uppercase outline-none transition placeholder:text-gray-600 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n placeholder=\"NPM_TOKEN\"\n />\n <label class=\"sr-only\" for=\"secret-value\">Secret value</label>\n <input\n id=\"secret-value\"\n ref=\"secretValueInput\"\n bind-value=\"secretValue\"\n on-input=\"setSecretValue($event)\"\n type=\"password\"\n class=\"rounded-lg border border-gray-700 bg-gray-900 px-3 py-2.5 font-mono text-sm outline-none transition placeholder:text-gray-600 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n placeholder=\"New secret value\"\n />\n <button\n type=\"button\"\n aria-label=\"Save secret value\"\n title=\"Save secret value\"\n on-click=\"saveSecret()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-indigo-500/60 px-3 py-2.5 text-sm font-medium text-indigo-200 outline-none transition hover:bg-indigo-500/10 focus-visible:ring-2 focus-visible:ring-indigo-400/60 disabled:opacity-50\"\n >\n <lucide-icon icon=\"lock-keyhole\" size=\"16\"></lucide-icon><span class=\"hidden sm:inline\">Save</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Delete secret\"\n title=\"Delete secret\"\n on-click=\"removeSecret()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-rose-500/50 px-3 py-2.5 text-sm font-medium text-rose-300 outline-none transition hover:bg-rose-500/10 focus-visible:ring-2 focus-visible:ring-rose-400/60 disabled:opacity-50\"\n >\n <lucide-icon icon=\"trash\" size=\"16\"></lucide-icon><span class=\"hidden sm:inline\">Delete</span>\n </button>\n </div>\n </div>\n <ul class=\"grid gap-2\" aria-label=\"Saved secrets\">\n <template for=\"name of secrets\">\n <li>\n <button\n type=\"button\"\n on-click=\"selectSecret(name)\"\n class=\"group flex min-h-14 w-full items-center gap-3 rounded-xl border border-gray-800 bg-gray-950/50 px-3.5 py-3 text-left outline-none transition hover:border-indigo-500/50 hover:bg-indigo-500/10 focus-visible:border-indigo-400 focus-visible:ring-2 focus-visible:ring-indigo-400/50\"\n aria-label=\"Edit secret {{ name }}\"\n >\n <span\n class=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gray-800 text-gray-500 group-hover:text-indigo-300\"\n ><lucide-icon icon=\"key-round\" size=\"15\"></lucide-icon\n ></span>\n <span class=\"min-w-0 flex-1 truncate font-mono text-sm text-gray-200\">{{ name }}</span>\n <span class=\"text-xs text-gray-500\">Select</span>\n <lucide-icon\n icon=\"chevron-right\"\n size=\"16\"\n class=\"text-gray-600 transition group-hover:text-indigo-300\"\n ></lucide-icon>\n </button>\n </li>\n </template>\n </ul>\n <div\n class=\"rounded-xl border border-dashed border-gray-700 px-4 py-8 text-center\"\n class-hidden=\"secrets.length > 0\"\n >\n <lucide-icon icon=\"key-round\" size=\"22\" class=\"mx-auto text-gray-600\"></lucide-icon>\n <p class=\"mt-2 text-sm font-medium text-gray-300\">No secrets configured</p>\n <p class=\"mt-1 text-xs text-gray-500\">Add one above to make it available to a workflow.</p>\n </div>\n </section>\n </main>\n\n <script setup>\n import { onDestroy, onInit, ref, templateRef } from '@li3/web';\n\n export default function () {\n const page = document.body.dataset.page;\n const initialId = __WORKFLOW_ID__;\n const initialRevision = __WORKFLOW_REVISION__;\n const readOnly = Boolean(initialRevision);\n const workflows = ref([]);\n const secrets = ref([]);\n const source = ref('');\n const validation = ref({ valid: true });\n const savedSource = ref('');\n const workflowId = ref('');\n const enabled = ref(true);\n const savedEnabled = ref(true);\n const selectedId = ref('');\n const secretName = ref('');\n const secretValue = ref('');\n const notice = ref('');\n const noticeError = ref(false);\n const busy = ref(false);\n const secretValueInput = templateRef('secretValueInput');\n const helpContent = templateRef('helpContent');\n const helpLoaded = ref(false);\n const helpLoading = ref(false);\n let validationTimer;\n\n const showNotice = (message, error = false) => {\n notice.value = message;\n noticeError.value = error;\n };\n\n const api = async (url, options = {}) => {\n const response = await fetch(url, {\n headers: { accept: 'application/json', ...(options.body ? { 'content-type': 'application/json' } : {}) },\n ...options,\n });\n const body = response.status === 204 ? null : await response.json().catch(() => ({}));\n if (!response.ok) throw new Error(body.error || `Request failed: ${response.status}`);\n return body;\n };\n\n const derivedId = () =>\n source.value\n .match(/^\\s*(?:id:\\s*([^\\n]+)|name:\\s*([^\\n]+))/m)\n ?.slice(1)\n .find(Boolean)\n ?.trim()\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '-')\n .replace(/(^-|-$)/g, '') || '';\n\n const run = async (action) => {\n if (busy.value) return;\n\n busy.value = true;\n\n try {\n await action();\n } catch (error) {\n showNotice(error.message, true);\n } finally {\n busy.value = false;\n }\n };\n\n const loadWorkflows = async () => {\n workflows.value = (await api('/api/workflows')).workflows;\n };\n\n const loadSecrets = async () => {\n secrets.value = (await api('/api/secrets')).secrets;\n };\n\n const openWorkflow = async (id) => {\n const workflowUrl = initialRevision\n ? `/api/workflows/${id}?revision=${initialRevision}`\n : `/api/workflows/${id}`;\n const workflow = await api(workflowUrl);\n selectedId.value = workflow.id;\n workflowId.value = workflow.id;\n source.value = workflow.sourceYaml;\n savedSource.value = workflow.sourceYaml;\n enabled.value = workflow.enabled;\n savedEnabled.value = workflow.enabled;\n };\n\n const validateSource = async () => {\n validation.value = await api('/api/workflows/validate', {\n method: 'POST',\n body: JSON.stringify({ sourceYaml: source.value }),\n });\n };\n\n const validate = (ms = 1000) => {\n if (page !== 'editor') return;\n\n clearTimeout(validationTimer);\n validationTimer = setTimeout(() => {\n validation.running = true;\n validateSource();\n }, ms);\n };\n\n const save = () =>\n run(async () => {\n const id = workflowId.value.trim() || derivedId();\n if (!id) throw new Error('Set an ID or add a workflow name first.');\n if (\n initialId &&\n id === selectedId.value &&\n source.value === savedSource.value &&\n enabled.value === savedEnabled.value\n ) {\n showNotice('No changes to save.');\n return;\n }\n const workflow = await api(`/api/workflows/${id}`, {\n method: 'PUT',\n body: JSON.stringify({ sourceYaml: source.value, enabled: enabled.value }),\n });\n selectedId.value = workflow.id;\n workflowId.value = workflow.id;\n savedSource.value = source.value;\n savedEnabled.value = enabled.value;\n showNotice(`Saved ${workflow.id} as draft revision ${workflow.revision}.`);\n if (!initialId) history.replaceState(null, '', `/workflows/${workflow.id}`);\n });\n const publish = () =>\n run(async () => {\n const id = workflowId.value.trim() || selectedId.value;\n if (!id) throw new Error('Save a workflow before publishing it.');\n const workflow = await api(`/api/workflows/${id}/publish`, { method: 'POST' });\n selectedId.value = workflow.id;\n showNotice(`Published ${workflow.id} revision ${workflow.revision}.`);\n });\n const remove = () =>\n run(async () => {\n const id = workflowId.value.trim() || selectedId.value;\n if (!id || !confirm(`Delete ${id} and all of its revisions?`)) return;\n await api(`/api/workflows/${id}`, { method: 'DELETE' });\n window.location.href = '/workflows';\n });\n const saveSecret = () =>\n run(async () => {\n const name = secretName.value.trim();\n if (!name || !secretValue.value) throw new Error('Set a secret name and value first.');\n await api(`/api/secrets/${name}`, { method: 'PUT', body: JSON.stringify({ value: secretValue.value }) });\n secretValue.value = '';\n await loadSecrets();\n showNotice(`Saved ${name}.`);\n });\n const removeSecret = () =>\n run(async () => {\n const name = secretName.value.trim();\n if (!name || !confirm(`Delete ${name}?`)) return;\n await api(`/api/secrets/${name}`, { method: 'DELETE' });\n secretName.value = '';\n secretValue.value = '';\n await loadSecrets();\n showNotice(`Deleted ${name}.`);\n });\n const setSource = (value) => {\n source.value = value;\n validate();\n };\n const setWorkflowId = (event) => {\n workflowId.value = event.target.value;\n };\n const setEnabled = (event) => {\n enabled.value = event.target.checked;\n };\n const setSecretName = (event) => {\n secretName.value = event.target.value;\n };\n const setSecretValue = (event) => {\n secretValue.value = event.target.value;\n };\n const selectSecret = (name) => {\n secretName.value = name;\n secretValueInput.value?.focus();\n };\n const visitWorkflow = (id) => {\n window.location.href = `/workflows/${id}`;\n };\n const loadHelp = async (event) => {\n if (!event.target.open || helpLoaded.value || helpLoading.value || !helpContent.value) return;\n helpLoading.value = true;\n helpContent.value.textContent = 'Loading workflow syntax help...';\n try {\n const response = await fetch('/help?embed=1', { headers: { accept: 'text/html' } });\n if (!response.ok) throw new Error(`Help request failed: ${response.status}`);\n const html = await response.text();\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n const sourceNodes = [\n ...Array.from(parsed.head.querySelectorAll('style')),\n ...Array.from(parsed.body.childNodes),\n ];\n const nodes = sourceNodes.map((node) => document.importNode(node, true));\n helpContent.value.replaceChildren(...nodes);\n helpLoaded.value = true;\n } catch (error) {\n helpContent.value.textContent = 'Unable to load workflow syntax help.';\n console.error(error);\n } finally {\n helpLoading.value = false;\n }\n };\n\n onDestroy(() => clearTimeout(validationTimer));\n\n onInit(() => {\n const loadPage =\n page === 'editor'\n ? initialId\n ? openWorkflow(initialId)\n : Promise.resolve()\n : Promise.all([loadWorkflows(), loadSecrets()]);\n loadPage.catch((error) => showNotice(error.message, true));\n });\n\n return {\n workflows,\n secrets,\n source,\n validation,\n workflowId,\n enabled,\n readOnly,\n selectedId,\n secretName,\n secretValue,\n notice,\n noticeError,\n busy,\n validate,\n save,\n publish,\n remove,\n saveSecret,\n removeSecret,\n setSource,\n setWorkflowId,\n setEnabled,\n setSecretName,\n setSecretValue,\n selectSecret,\n visitWorkflow,\n loadHelp,\n };\n }\n <\/script>\n </template>\n\n <script type=\"module\">\n import '@li3/web';\n <\/script>\n <script src=\"https://cdn.tailwindcss.com\"><\/script>\n </body>\n</html>\n";
5589
+ var Hi = {
5590
+ openapi: "3.0.3",
5591
+ info: {
5592
+ title: "On Workflow Runner API",
5593
+ version: "1.0.0",
5594
+ description: "Control-plane, job, workflow, webhook, event, secret, artifact, and notification APIs for the On workflow runner."
5595
+ },
5596
+ servers: [{ url: "/" }],
5597
+ security: [{ bearerAuth: [] }, { basicAuth: [] }],
5598
+ tags: [
5599
+ { name: "discovery" },
5600
+ { name: "jobs" },
5601
+ { name: "workflows" },
5602
+ { name: "secrets" },
5603
+ { name: "events" },
5604
+ { name: "webhooks" },
5605
+ { name: "notifications" }
5606
+ ],
5607
+ paths: {
5608
+ "/api": { get: {
5609
+ tags: ["discovery"],
5610
+ summary: "Get this OpenAPI specification",
5611
+ security: [],
5612
+ responses: { 200: {
5613
+ description: "OpenAPI JSON document",
5614
+ content: { "application/json": { schema: { type: "object" } } }
5615
+ } }
5616
+ } },
5617
+ "/api/jobs": { get: {
5618
+ tags: ["jobs"],
5619
+ summary: "List jobs",
5620
+ security: [],
5621
+ parameters: [
5622
+ { $ref: "#/components/parameters/AfterId" },
5623
+ { $ref: "#/components/parameters/BeforeId" },
5624
+ { $ref: "#/components/parameters/Limit" },
5625
+ { $ref: "#/components/parameters/Filter" }
5626
+ ],
5627
+ responses: { 200: {
5628
+ description: "Dashboard job list",
5629
+ content: { "application/json": { schema: { $ref: "#/components/schemas/JobList" } } }
5630
+ } }
5631
+ } },
5632
+ "/api/jobs/{jobId}/cancel": { post: {
5633
+ tags: ["jobs"],
5634
+ summary: "Cancel an active job",
5635
+ parameters: [{ $ref: "#/components/parameters/JobId" }],
5636
+ responses: {
5637
+ 200: {
5638
+ description: "Job cancelled",
5639
+ content: { "application/json": { schema: { $ref: "#/components/schemas/JobStatus" } } }
5640
+ },
5641
+ 404: { $ref: "#/components/responses/NotFound" },
5642
+ 409: { $ref: "#/components/responses/Conflict" }
5643
+ }
5644
+ } },
5645
+ "/api/jobs/{jobId}/secrets": { get: {
5646
+ tags: ["jobs"],
5647
+ summary: "Get secrets for an assigned worker job",
5648
+ security: [{ workerBearerAuth: [] }],
5649
+ parameters: [{ $ref: "#/components/parameters/JobId" }, { $ref: "#/components/parameters/WorkerId" }],
5650
+ responses: {
5651
+ 200: {
5652
+ description: "Decrypted job secrets",
5653
+ content: { "application/json": { schema: { $ref: "#/components/schemas/Secrets" } } }
5654
+ },
5655
+ 403: { $ref: "#/components/responses/Forbidden" }
5656
+ }
5657
+ } },
5658
+ "/api/runs/{jobId}": { get: {
5659
+ tags: ["jobs"],
5660
+ summary: "Get a run view",
5661
+ parameters: [{ $ref: "#/components/parameters/JobId" }],
5662
+ responses: {
5663
+ 200: {
5664
+ description: "Run details",
5665
+ content: { "application/json": { schema: { $ref: "#/components/schemas/RunView" } } }
5666
+ },
5667
+ 404: { $ref: "#/components/responses/NotFound" }
5668
+ }
5669
+ } },
5670
+ "/api/runs/{jobId}/artifacts/{path}": { get: {
5671
+ tags: ["jobs"],
5672
+ summary: "Download an artifact",
5673
+ parameters: [{ $ref: "#/components/parameters/JobId" }, {
5674
+ name: "path",
5675
+ in: "path",
5676
+ required: !0,
5677
+ schema: { type: "string" }
5678
+ }],
5679
+ responses: {
5680
+ 200: {
5681
+ description: "Artifact bytes",
5682
+ content: { "application/octet-stream": { schema: {
5683
+ type: "string",
5684
+ format: "binary"
5685
+ } } }
5686
+ },
5687
+ 404: { $ref: "#/components/responses/NotFound" }
5688
+ }
5689
+ } },
5690
+ "/api/workflows/validate": { post: {
5691
+ tags: ["workflows"],
5692
+ summary: "Validate workflow YAML",
5693
+ requestBody: {
5694
+ required: !0,
5695
+ content: { "application/json": { schema: { $ref: "#/components/schemas/WorkflowSource" } } }
5696
+ },
5697
+ responses: {
5698
+ 200: {
5699
+ description: "Valid workflow definitions",
5700
+ content: { "application/json": { schema: { $ref: "#/components/schemas/ValidationResult" } } }
5701
+ },
5702
+ 422: { $ref: "#/components/responses/ValidationError" }
5703
+ }
5704
+ } },
5705
+ "/api/workflows": { get: {
5706
+ tags: ["workflows"],
5707
+ summary: "List workflows",
5708
+ responses: { 200: {
5709
+ description: "Workflow list",
5710
+ content: { "application/json": { schema: {
5711
+ type: "object",
5712
+ properties: { workflows: {
5713
+ type: "array",
5714
+ items: { $ref: "#/components/schemas/Workflow" }
5715
+ } }
5716
+ } } }
5717
+ } }
5718
+ } },
5719
+ "/api/workflows/{workflowId}": {
5720
+ get: {
5721
+ tags: ["workflows"],
5722
+ summary: "Get a workflow or historical revision",
5723
+ parameters: [{ $ref: "#/components/parameters/WorkflowId" }, { $ref: "#/components/parameters/Revision" }],
5724
+ responses: {
5725
+ 200: {
5726
+ description: "Workflow definition",
5727
+ content: { "application/json": { schema: { $ref: "#/components/schemas/Workflow" } } }
5728
+ },
5729
+ 404: { $ref: "#/components/responses/NotFound" }
5730
+ }
5731
+ },
5732
+ put: {
5733
+ tags: ["workflows"],
5734
+ summary: "Save a workflow draft",
5735
+ parameters: [{ $ref: "#/components/parameters/WorkflowId" }],
5736
+ requestBody: {
5737
+ required: !0,
5738
+ content: { "application/json": { schema: { $ref: "#/components/schemas/WorkflowSave" } } }
5739
+ },
5740
+ responses: {
5741
+ 200: {
5742
+ description: "Draft saved",
5743
+ content: { "application/json": { schema: { $ref: "#/components/schemas/Workflow" } } }
5744
+ },
5745
+ 422: { $ref: "#/components/responses/ValidationError" }
5746
+ }
5747
+ },
5748
+ delete: {
5749
+ tags: ["workflows"],
5750
+ summary: "Delete a workflow and its revisions",
5751
+ parameters: [{ $ref: "#/components/parameters/WorkflowId" }],
5752
+ responses: {
5753
+ 204: { description: "Workflow deleted" },
5754
+ 404: { $ref: "#/components/responses/NotFound" }
5755
+ }
5756
+ }
5757
+ },
5758
+ "/api/workflows/{workflowId}/publish": { post: {
5759
+ tags: ["workflows"],
5760
+ summary: "Publish the latest workflow revision",
5761
+ parameters: [{ $ref: "#/components/parameters/WorkflowId" }],
5762
+ responses: {
5763
+ 200: {
5764
+ description: "Workflow published",
5765
+ content: { "application/json": { schema: { $ref: "#/components/schemas/Workflow" } } }
5766
+ },
5767
+ 404: { $ref: "#/components/responses/NotFound" }
5768
+ }
5769
+ } },
5770
+ "/api/secrets": { get: {
5771
+ tags: ["secrets"],
5772
+ summary: "List secret names",
5773
+ responses: { 200: {
5774
+ description: "Secret names",
5775
+ content: { "application/json": { schema: { $ref: "#/components/schemas/SecretNames" } } }
5776
+ } }
5777
+ } },
5778
+ "/api/secrets/{name}": {
5779
+ put: {
5780
+ tags: ["secrets"],
5781
+ summary: "Create or replace an encrypted secret",
5782
+ parameters: [{ $ref: "#/components/parameters/SecretName" }],
5783
+ requestBody: {
5784
+ required: !0,
5785
+ content: { "application/json": { schema: { $ref: "#/components/schemas/SecretValue" } } }
5786
+ },
5787
+ responses: { 204: { description: "Secret saved" } }
5788
+ },
5789
+ delete: {
5790
+ tags: ["secrets"],
5791
+ summary: "Delete a secret",
5792
+ parameters: [{ $ref: "#/components/parameters/SecretName" }],
5793
+ responses: {
5794
+ 204: { description: "Secret deleted" },
5795
+ 404: { $ref: "#/components/responses/NotFound" }
5796
+ }
5797
+ }
5798
+ },
5799
+ "/api/events": {
5800
+ get: {
5801
+ tags: ["events"],
5802
+ summary: "Subscribe to runner events",
5803
+ security: [],
5804
+ responses: { 200: {
5805
+ description: "Server-sent event stream",
5806
+ content: { "text/event-stream": { schema: { type: "string" } } }
5807
+ } }
5808
+ },
5809
+ post: {
5810
+ tags: ["events"],
5811
+ summary: "Publish a worker job-change event",
5812
+ security: [{ workerBearerAuth: [] }],
5813
+ requestBody: { content: { "application/json": { schema: { $ref: "#/components/schemas/JobEvent" } } } },
5814
+ responses: { 202: { description: "Event accepted" } }
5815
+ }
5816
+ },
5817
+ "/api/push/public-key": { get: {
5818
+ tags: ["notifications"],
5819
+ summary: "Get the Web Push public key",
5820
+ security: [],
5821
+ responses: { 200: {
5822
+ description: "VAPID public key",
5823
+ content: { "application/json": { schema: {
5824
+ type: "object",
5825
+ properties: { publicKey: { type: "string" } }
5826
+ } } }
5827
+ } }
5828
+ } },
5829
+ "/api/push/subscriptions": {
5830
+ post: {
5831
+ tags: ["notifications"],
5832
+ summary: "Register a Web Push subscription",
5833
+ security: [],
5834
+ requestBody: {
5835
+ required: !0,
5836
+ content: { "application/json": { schema: { type: "object" } } }
5837
+ },
5838
+ responses: { 201: { description: "Subscription saved" } }
5839
+ },
5840
+ delete: {
5841
+ tags: ["notifications"],
5842
+ summary: "Remove a Web Push subscription",
5843
+ security: [],
5844
+ requestBody: {
5845
+ required: !0,
5846
+ content: { "application/json": { schema: {
5847
+ type: "object",
5848
+ required: ["endpoint"],
5849
+ properties: { endpoint: {
5850
+ type: "string",
5851
+ format: "uri"
5852
+ } }
5853
+ } } }
5854
+ },
5855
+ responses: { 204: { description: "Subscription removed" } }
5856
+ }
5857
+ },
5858
+ "/webhooks/{provider}": { post: {
5859
+ tags: ["webhooks"],
5860
+ summary: "Receive a provider webhook",
5861
+ security: [],
5862
+ parameters: [{
5863
+ name: "provider",
5864
+ in: "path",
5865
+ required: !0,
5866
+ schema: { type: "string" }
5867
+ }],
5868
+ requestBody: {
5869
+ required: !0,
5870
+ content: { "application/json": { schema: { type: "object" } } }
5871
+ },
5872
+ responses: {
5873
+ 202: { description: "Webhook accepted" },
5874
+ 401: { $ref: "#/components/responses/Unauthorized" },
5875
+ 413: { $ref: "#/components/responses/PayloadTooLarge" }
5876
+ }
5877
+ } },
5878
+ "/restart/{jobId}": { post: {
5879
+ tags: ["jobs"],
5880
+ summary: "Create a new run from the active workflow revision",
5881
+ parameters: [{ $ref: "#/components/parameters/JobId" }],
5882
+ responses: {
5883
+ 201: {
5884
+ description: "New job created",
5885
+ content: { "application/json": { schema: {
5886
+ type: "object",
5887
+ properties: { id: { type: "integer" } }
5888
+ } } }
5889
+ },
5890
+ 404: { $ref: "#/components/responses/NotFound" }
5891
+ }
5892
+ } },
5893
+ "/admin/reload-secrets": { post: {
5894
+ tags: ["secrets"],
5895
+ summary: "Reload legacy in-memory secrets",
5896
+ responses: {
5897
+ 200: { description: "Secrets reloaded" },
5898
+ 403: { $ref: "#/components/responses/Forbidden" }
5899
+ }
5900
+ } }
5901
+ },
5902
+ components: {
5903
+ securitySchemes: {
5904
+ bearerAuth: {
5905
+ type: "http",
5906
+ scheme: "bearer"
5907
+ },
5908
+ basicAuth: {
5909
+ type: "http",
5910
+ scheme: "basic"
5911
+ },
5912
+ workerBearerAuth: {
5913
+ type: "http",
5914
+ scheme: "bearer",
5915
+ description: "RUNNER_WORKER_SECRET"
5916
+ }
5917
+ },
5918
+ parameters: {
5919
+ JobId: {
5920
+ name: "jobId",
5921
+ in: "path",
5922
+ required: !0,
5923
+ schema: {
5924
+ type: "integer",
5925
+ minimum: 1
5926
+ }
5927
+ },
5928
+ WorkflowId: {
5929
+ name: "workflowId",
5930
+ in: "path",
5931
+ required: !0,
5932
+ schema: {
5933
+ type: "string",
5934
+ pattern: "^[a-z0-9-]+$"
5935
+ }
5936
+ },
5937
+ Revision: {
5938
+ name: "revision",
5939
+ in: "query",
5940
+ required: !1,
5941
+ schema: {
5942
+ type: "integer",
5943
+ minimum: 1
5944
+ }
5945
+ },
5946
+ SecretName: {
5947
+ name: "name",
5948
+ in: "path",
5949
+ required: !0,
5950
+ schema: {
5951
+ type: "string",
5952
+ pattern: "^[A-Z][A-Z0-9_]*$"
5953
+ }
5954
+ },
5955
+ WorkerId: {
5956
+ name: "X-Runner-Worker-Id",
5957
+ in: "header",
5958
+ required: !0,
5959
+ schema: { type: "string" }
5960
+ },
5961
+ AfterId: {
5962
+ name: "afterId",
5963
+ in: "query",
5964
+ schema: {
5965
+ type: "integer",
5966
+ minimum: 0
5967
+ }
5968
+ },
5969
+ BeforeId: {
5970
+ name: "beforeId",
5971
+ in: "query",
5972
+ schema: {
5973
+ type: "integer",
5974
+ minimum: 1
5975
+ }
5976
+ },
5977
+ Limit: {
5978
+ name: "limit",
5979
+ in: "query",
5980
+ schema: {
5981
+ type: "integer",
5982
+ minimum: 1,
5983
+ maximum: 500,
5984
+ default: 50
5985
+ }
5986
+ },
5987
+ Filter: {
5988
+ name: "filter",
5989
+ in: "query",
5990
+ schema: {
5991
+ type: "string",
5992
+ maxLength: 200
5993
+ }
5994
+ }
5995
+ },
5996
+ responses: {
5997
+ Unauthorized: { description: "Unauthorized" },
5998
+ Forbidden: { description: "Forbidden" },
5999
+ NotFound: { description: "Not found" },
6000
+ Conflict: { description: "Conflict" },
6001
+ ValidationError: { description: "Validation error" },
6002
+ PayloadTooLarge: { description: "Payload too large" }
6003
+ },
6004
+ schemas: {
6005
+ Job: {
6006
+ type: "object",
6007
+ properties: {
6008
+ id: { type: "integer" },
6009
+ workflowId: { type: "string" },
6010
+ status: { type: "string" },
6011
+ workerId: { type: ["string", "null"] },
6012
+ createdAt: { type: "string" },
6013
+ updatedAt: { type: "string" }
6014
+ }
6015
+ },
6016
+ JobList: {
6017
+ type: "object",
6018
+ required: ["jobs", "hasMore"],
6019
+ properties: {
6020
+ jobs: {
6021
+ type: "array",
6022
+ items: { $ref: "#/components/schemas/Job" }
6023
+ },
6024
+ hasMore: { type: "boolean" }
6025
+ }
6026
+ },
6027
+ JobStatus: {
6028
+ type: "object",
6029
+ properties: {
6030
+ id: { type: "integer" },
6031
+ status: { type: "string" }
6032
+ }
6033
+ },
6034
+ JobEvent: {
6035
+ type: "object",
6036
+ properties: { jobId: { type: "integer" } }
6037
+ },
6038
+ Workflow: {
6039
+ type: "object",
6040
+ properties: {
6041
+ id: { type: "string" },
6042
+ name: { type: "string" },
6043
+ sourceYaml: { type: "string" },
6044
+ revision: { type: "integer" },
6045
+ status: { type: "string" },
6046
+ enabled: { type: "boolean" }
6047
+ }
6048
+ },
6049
+ WorkflowSource: {
6050
+ type: "object",
6051
+ required: ["sourceYaml"],
6052
+ properties: { sourceYaml: { type: "string" } }
6053
+ },
6054
+ WorkflowSave: { allOf: [{ $ref: "#/components/schemas/WorkflowSource" }, {
6055
+ type: "object",
6056
+ properties: { enabled: { type: "boolean" } }
6057
+ }] },
6058
+ ValidationResult: {
6059
+ type: "object",
6060
+ properties: {
6061
+ valid: { type: "boolean" },
6062
+ workflows: {
6063
+ type: "array",
6064
+ items: { type: "object" }
6065
+ }
6066
+ }
6067
+ },
6068
+ SecretNames: {
6069
+ type: "object",
6070
+ properties: { secrets: {
6071
+ type: "array",
6072
+ items: { type: "string" }
6073
+ } }
6074
+ },
6075
+ SecretValue: {
6076
+ type: "object",
6077
+ required: ["value"],
6078
+ properties: { value: {
6079
+ type: "string",
6080
+ format: "password"
6081
+ } }
6082
+ },
6083
+ Secrets: {
6084
+ type: "object",
6085
+ properties: { secrets: {
6086
+ type: "object",
6087
+ additionalProperties: { type: "string" }
6088
+ } }
6089
+ },
6090
+ RunView: {
6091
+ type: "object",
6092
+ properties: {
6093
+ jobId: { type: "string" },
6094
+ workflowName: { type: "string" },
6095
+ status: { type: "string" },
6096
+ inputs: { type: "object" },
6097
+ steps: {
6098
+ type: "array",
6099
+ items: { type: "object" }
6100
+ },
6101
+ artifacts: {
6102
+ type: "array",
6103
+ items: { type: "string" }
6104
+ },
6105
+ canViewLogs: { type: "boolean" }
6106
+ }
6107
+ }
6108
+ }
6109
+ }
6110
+ }, Ui = "<!doctype html>\n<html lang=\"en\" class=\"dark\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <meta name=\"theme-color\" content=\"#030712\" />\n <meta name=\"mobile-web-app-capable\" content=\"yes\" />\n <link rel=\"manifest\" href=\"/manifest.webmanifest\" />\n <link rel=\"icon\" href=\"/app-icon.svg\" type=\"image/svg+xml\" />\n <title>Runner Workflow Management</title>\n <script type=\"importmap\">\n { \"imports\": { \"@li3/\": \"https://cdn.li3.dev/@li3/\" } }\n <\/script>\n <style>\n body[data-page='list'] .editor-panel {\n display: none;\n }\n body[data-page='editor'] .workflow-list,\n body[data-page='editor'] .secrets-panel {\n display: none;\n }\n </style>\n </head>\n <body data-page=\"__WORKFLOW_PAGE__\" class=\"min-h-screen bg-gray-950 p-4 font-sans text-gray-100 md:p-6\">\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/code-editor.html\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/code-block.html\" />\n <link rel=\"component\" href=\"https://sodium.static.apphor.de/lucide-icon.html\" />\n\n <template app>\n <main class=\"mx-auto max-w-6xl space-y-5\">\n <header class=\"flex flex-col gap-4 border-b border-gray-800 pb-5 sm:flex-row sm:items-end sm:justify-between\">\n <div class=\"flex items-start gap-3\">\n <a\n href=\"/runs\"\n aria-label=\"Back to dashboard\"\n class=\"mt-1 rounded-lg border border-gray-800 bg-gray-900 p-2 text-gray-400 transition hover:border-indigo-500/60 hover:text-indigo-300\"\n >\n <lucide-icon icon=\"arrow-left\" size=\"17\"></lucide-icon>\n </a>\n <div>\n <p class=\"text-xs font-semibold uppercase tracking-[0.18em] text-indigo-400\">Runner engine</p>\n <h1 class=\"mt-1 text-2xl font-bold tracking-tight text-white\">Workflow control room</h1>\n <p class=\"mt-1 text-sm text-gray-400\">Draft, validate, and publish revisioned YAML definitions.</p>\n </div>\n </div>\n <a\n href=\"/workflows/new\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg bg-indigo-500 px-4 py-2.5 text-sm font-semibold text-white shadow-lg shadow-indigo-950/40 transition hover:bg-indigo-400\"\n >\n <lucide-icon icon=\"plus\" size=\"16\"></lucide-icon>\n New workflow\n </a>\n <a\n href=\"/help\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-gray-800 bg-gray-900 px-3 py-2.5 text-sm font-medium text-gray-300 outline-none transition hover:border-indigo-500/50 hover:text-indigo-200 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.8\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"9\"></circle>\n <path d=\"M9.6 9a2.5 2.5 0 1 1 4.2 1.8c-1.2 1-1.8 1.4-1.8 2.7\"></path>\n <path d=\"M12 17h.01\"></path>\n </svg>\n Help\n </a>\n </header>\n\n <template if=\"notice\">\n <div\n role=\"status\"\n class=\"flex items-center gap-2 rounded-lg border px-3 py-2.5 text-sm\"\n bind-class=\"noticeError ? 'border-rose-500/40 bg-rose-500/10 text-rose-100' : 'border-emerald-500/40 bg-emerald-500/10 text-emerald-100'\"\n >\n <lucide-icon bind-icon=\"noticeError ? 'circle-alert' : 'circle-check'\" size=\"17\"></lucide-icon>\n <span>{{ notice }}</span>\n </div>\n </template>\n\n <section id=\"workflow-layout\" class=\"space-y-5\">\n <nav\n class=\"workflow-list rounded-2xl border border-gray-800 bg-gray-900/80 p-4 shadow-xl shadow-black/10\"\n aria-labelledby=\"workflow-list-title\"\n >\n <div class=\"mb-4 flex items-end justify-between gap-3 border-b border-gray-800 pb-4\">\n <div>\n <p class=\"text-[11px] font-semibold uppercase tracking-[0.18em] text-indigo-400\">Definitions</p>\n <h2 id=\"workflow-list-title\" class=\"mt-1 text-lg font-semibold text-white\">Workflows</h2>\n </div>\n <span\n class=\"rounded-full border border-gray-700 bg-gray-950 px-2.5 py-1 text-xs font-mono text-gray-400\"\n aria-label=\"Workflow count\"\n >\n {{ workflows.length }}\n </span>\n </div>\n <ul class=\"grid gap-2\" aria-label=\"Workflow definitions\">\n <template for=\"workflow of workflows\">\n <li>\n <a\n attr-href=\"'/workflows/' + workflow.id\"\n class=\"group flex min-h-16 items-center gap-3 rounded-xl border border-gray-800 bg-gray-950/50 px-3.5 py-3 text-left text-sm text-gray-300 outline-none transition hover:border-indigo-500/50 hover:bg-indigo-500/10 focus-visible:border-indigo-400 focus-visible:ring-2 focus-visible:ring-indigo-400/50\"\n >\n <span\n class=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-gray-800 text-gray-400 transition group-hover:bg-indigo-500/15 group-hover:text-indigo-300\"\n >\n <lucide-icon icon=\"workflow\" size=\"17\"></lucide-icon>\n </span>\n <span class=\"min-w-0 flex-1\">\n <span class=\"block truncate font-medium text-gray-100\">{{ workflow.name }}</span>\n <span class=\"mt-0.5 block truncate font-mono text-[11px] text-gray-500\">{{ workflow.id }}</span>\n </span>\n <span\n class=\"rounded-full border px-2 py-1 text-[10px] font-semibold uppercase tracking-wide\"\n bind-class=\"workflow.status === 'published' ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-300' : workflow.status === 'archived' ? 'border-gray-700 bg-gray-800 text-gray-500' : 'border-amber-500/30 bg-amber-500/10 text-amber-300'\"\n >{{ workflow.status }}</span\n >\n <lucide-icon\n icon=\"arrow-up-right\"\n size=\"16\"\n class=\"shrink-0 text-gray-600 transition group-hover:text-indigo-300\"\n ></lucide-icon>\n </a>\n </li>\n </template>\n </ul>\n <div\n class=\"rounded-xl border border-dashed border-gray-700 px-4 py-8 text-center\"\n class-hidden=\"workflows.length > 0\"\n >\n <lucide-icon icon=\"workflow\" size=\"22\" class=\"mx-auto text-gray-600\"></lucide-icon>\n <p class=\"mt-2 text-sm font-medium text-gray-300\">No workflows yet</p>\n <p class=\"mt-1 text-xs text-gray-500\">Create a definition to start automating jobs.</p>\n </div>\n </nav>\n\n <section\n class=\"editor-panel overflow-hidden rounded-xl border border-gray-800 bg-gray-900/80 shadow-xl shadow-black/10\"\n >\n <div class=\"border-b border-gray-800 px-4 pt-3 sm:px-5\">\n <a\n href=\"/workflows\"\n class=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1.5 text-xs font-medium text-gray-400 outline-none transition hover:bg-gray-800 hover:text-gray-100 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <lucide-icon icon=\"arrow-left\" size=\"14\"></lucide-icon>\n Back to workflows\n </a>\n </div>\n <div class=\"border-b border-gray-800 bg-gray-900 px-4 py-4 sm:px-5\">\n <div class=\"flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between\">\n <label class=\"block max-w-xl flex-1 text-xs font-semibold uppercase tracking-wider text-gray-400\"\n >Workflow ID\n <input\n bind-value=\"workflowId\"\n on-input=\"setWorkflowId($event)\"\n bind-disabled=\"selectedId\"\n aria-describedby=\"workflow-id-help\"\n class=\"mt-2 w-full rounded-lg border border-gray-700 bg-gray-950 px-3 py-2.5 font-mono text-sm normal-case tracking-normal text-white outline-none transition focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/20\"\n placeholder=\"derived-from-workflow-name\"\n />\n <span\n id=\"workflow-id-help\"\n class=\"mt-1 block text-[11px] font-normal normal-case tracking-normal text-gray-500\"\n >The ID becomes permanent after the first save.</span\n >\n </label>\n <label class=\"inline-flex items-center gap-2 text-sm text-gray-300\">\n <input\n type=\"checkbox\"\n bind-checked=\"enabled\"\n on-change=\"setEnabled($event)\"\n class=\"h-4 w-4 rounded border-gray-700 bg-gray-950 text-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n />\n Enabled\n </label>\n <div class=\"flex flex-wrap gap-2\" class-hidden=\"readOnly\">\n <button\n type=\"button\"\n aria-label=\"Save workflow draft\"\n title=\"Save workflow draft\"\n on-click=\"save()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg bg-indigo-500 px-3 py-2.5 text-sm font-semibold text-white transition hover:bg-indigo-400 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"save\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Save draft</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Publish workflow\"\n title=\"Publish workflow\"\n on-click=\"publish()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg border border-emerald-500/50 px-3 py-2.5 text-sm font-medium text-emerald-300 transition hover:bg-emerald-500/10 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"rocket\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Publish</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Delete workflow\"\n title=\"Delete workflow\"\n on-click=\"remove()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center gap-2 rounded-lg border border-rose-500/50 px-3 py-2.5 text-sm font-medium text-rose-300 transition hover:bg-rose-500/10 disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon icon=\"trash\" size=\"16\"></lucide-icon>\n <span class=\"hidden sm:inline\">Delete</span>\n </button>\n </div>\n </div>\n </div>\n <div class=\"p-3 sm:p-5\">\n <div class=\"mb-2 flex items-center justify-between px-1 text-xs text-gray-500\">\n <div class=\"flex items-center gap-2\">\n <button\n type=\"button\"\n aria-label=\"Validate workflow\"\n title=\"Validate workflow\"\n on-click=\"validate(1)\"\n bind-disabled=\"validation.running\"\n bind-class=\"{ 'hidden': readOnly, 'text-emerald-400': validation.valid, 'text-rose-400': !validation.valid }\"\n class=\"disabled:cursor-not-allowed disabled:opacity-50\"\n >\n <lucide-icon\n class=\"inline-block\"\n bind-icon=\"validation.running ? 'loader-circle' : (validation.valid ? 'circle-check' : 'circle-alert')\"\n bind-class=\"validation.running ? 'animate-spin' : ''\"\n size=\"16\"\n ></lucide-icon>\n </button>\n <span class=\"font-medium\" bind-class=\"validation.error ? 'bg-rose-500/10 text-rose-100' : ''\"\n >{{ validation.error || '' }}</span\n >\n </div>\n <span class=\"font-mono\">{{ source.length }} characters</span>\n </div>\n <template if=\"readOnly\">\n <code-block\n language=\"yaml\"\n theme=\"atom-one-dark\"\n class=\"block h-[calc(100vh-23rem)] min-h-[28rem] overflow-auto rounded-lg border border-gray-700 bg-gray-950 p-4\"\n bind-source=\"source\"\n ></code-block>\n </template>\n <template if=\"!readOnly\">\n <code-editor\n id=\"source-yaml\"\n language=\"yaml\"\n theme=\"atom-one-dark\"\n nostatus=\"true\"\n class=\"block h-[calc(100vh-23rem)] min-h-[28rem] overflow-hidden rounded-lg border border-gray-700 bg-gray-950\"\n bind-value=\"source\"\n on-change=\"setSource($event.detail)\"\n ></code-editor>\n </template>\n <details\n class=\"mt-4 overflow-hidden rounded-xl border border-gray-800 bg-gray-950/50\"\n on-toggle=\"loadHelp($event)\"\n >\n <summary\n class=\"cursor-pointer list-none px-4 py-3 text-sm font-medium text-gray-300 outline-none transition hover:bg-gray-900 focus-visible:ring-2 focus-visible:ring-indigo-400/60\"\n >\n <span class=\"inline-flex items-center gap-2\"\n ><lucide-icon icon=\"circle-question-mark\" size=\"16\"></lucide-icon>Syntax</span\n >\n <span class=\"ml-2 text-xs font-normal text-gray-500\">Reference, tutorials, and examples</span>\n </summary>\n <div\n ref=\"helpContent\"\n class=\"max-h-[38rem] overflow-y-auto border-t border-gray-800 bg-gray-950 px-4 py-5\"\n role=\"region\"\n aria-label=\"Workflow syntax help\"\n aria-live=\"polite\"\n >\n <p class=\"text-sm text-gray-500\">Expand to load the workflow syntax reference.</p>\n </div>\n </details>\n </div>\n </section>\n </section>\n\n <section\n class=\"secrets-panel rounded-2xl border border-gray-800 bg-gray-900/80 p-4 shadow-xl shadow-black/10 sm:p-5\"\n aria-labelledby=\"secrets-title\"\n >\n <div class=\"mb-5 flex items-start justify-between gap-3\">\n <div class=\"flex items-start gap-3\">\n <span class=\"rounded-lg bg-indigo-500/10 p-2 text-indigo-300\"\n ><lucide-icon icon=\"key-round\" size=\"18\"></lucide-icon\n ></span>\n <div>\n <h2 id=\"secrets-title\" class=\"text-lg font-semibold text-white\">Secrets</h2>\n <p class=\"mt-0.5 text-sm text-gray-400\">Write-only credentials available to workflows.</p>\n </div>\n </div>\n <span\n class=\"rounded-full border border-gray-700 bg-gray-950 px-2.5 py-1 text-xs font-mono text-gray-400\"\n aria-label=\"Secret count\"\n >{{ secrets.length }}</span\n >\n </div>\n <div class=\"mb-5 rounded-xl border border-gray-800 bg-gray-950/50 p-3\">\n <p class=\"mb-3 text-xs text-gray-500\">Saving an existing name replaces its encrypted value.</p>\n <div class=\"grid gap-3 md:grid-cols-[14rem_1fr_auto_auto]\">\n <label class=\"sr-only\" for=\"secret-name\">Secret name</label>\n <input\n id=\"secret-name\"\n bind-value=\"secretName\"\n on-input=\"setSecretName($event)\"\n class=\"rounded-lg border border-gray-700 bg-gray-900 px-3 py-2.5 font-mono text-sm uppercase outline-none transition placeholder:text-gray-600 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n placeholder=\"NPM_TOKEN\"\n />\n <label class=\"sr-only\" for=\"secret-value\">Secret value</label>\n <input\n id=\"secret-value\"\n ref=\"secretValueInput\"\n bind-value=\"secretValue\"\n on-input=\"setSecretValue($event)\"\n type=\"password\"\n class=\"rounded-lg border border-gray-700 bg-gray-900 px-3 py-2.5 font-mono text-sm outline-none transition placeholder:text-gray-600 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500/30\"\n placeholder=\"New secret value\"\n />\n <button\n type=\"button\"\n aria-label=\"Save secret value\"\n title=\"Save secret value\"\n on-click=\"saveSecret()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-indigo-500/60 px-3 py-2.5 text-sm font-medium text-indigo-200 outline-none transition hover:bg-indigo-500/10 focus-visible:ring-2 focus-visible:ring-indigo-400/60 disabled:opacity-50\"\n >\n <lucide-icon icon=\"lock-keyhole\" size=\"16\"></lucide-icon><span class=\"hidden sm:inline\">Save</span>\n </button>\n <button\n type=\"button\"\n aria-label=\"Delete secret\"\n title=\"Delete secret\"\n on-click=\"removeSecret()\"\n bind-disabled=\"busy\"\n class=\"inline-flex items-center justify-center gap-2 rounded-lg border border-rose-500/50 px-3 py-2.5 text-sm font-medium text-rose-300 outline-none transition hover:bg-rose-500/10 focus-visible:ring-2 focus-visible:ring-rose-400/60 disabled:opacity-50\"\n >\n <lucide-icon icon=\"trash\" size=\"16\"></lucide-icon><span class=\"hidden sm:inline\">Delete</span>\n </button>\n </div>\n </div>\n <ul class=\"grid gap-2\" aria-label=\"Saved secrets\">\n <template for=\"name of secrets\">\n <li>\n <button\n type=\"button\"\n on-click=\"selectSecret(name)\"\n class=\"group flex min-h-14 w-full items-center gap-3 rounded-xl border border-gray-800 bg-gray-950/50 px-3.5 py-3 text-left outline-none transition hover:border-indigo-500/50 hover:bg-indigo-500/10 focus-visible:border-indigo-400 focus-visible:ring-2 focus-visible:ring-indigo-400/50\"\n aria-label=\"Edit secret {{ name }}\"\n >\n <span\n class=\"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-gray-800 text-gray-500 group-hover:text-indigo-300\"\n ><lucide-icon icon=\"key-round\" size=\"15\"></lucide-icon\n ></span>\n <span class=\"min-w-0 flex-1 truncate font-mono text-sm text-gray-200\">{{ name }}</span>\n <span class=\"text-xs text-gray-500\">Select</span>\n <lucide-icon\n icon=\"chevron-right\"\n size=\"16\"\n class=\"text-gray-600 transition group-hover:text-indigo-300\"\n ></lucide-icon>\n </button>\n </li>\n </template>\n </ul>\n <div\n class=\"rounded-xl border border-dashed border-gray-700 px-4 py-8 text-center\"\n class-hidden=\"secrets.length > 0\"\n >\n <lucide-icon icon=\"key-round\" size=\"22\" class=\"mx-auto text-gray-600\"></lucide-icon>\n <p class=\"mt-2 text-sm font-medium text-gray-300\">No secrets configured</p>\n <p class=\"mt-1 text-xs text-gray-500\">Add one above to make it available to a workflow.</p>\n </div>\n </section>\n </main>\n\n <script setup>\n import { onDestroy, onInit, ref, templateRef } from '@li3/web';\n\n export default function () {\n const page = document.body.dataset.page;\n const initialId = __WORKFLOW_ID__;\n const initialRevision = __WORKFLOW_REVISION__;\n const readOnly = Boolean(initialRevision);\n const workflows = ref([]);\n const secrets = ref([]);\n const source = ref('');\n const validation = ref({ valid: true });\n const savedSource = ref('');\n const workflowId = ref('');\n const enabled = ref(true);\n const savedEnabled = ref(true);\n const selectedId = ref('');\n const secretName = ref('');\n const secretValue = ref('');\n const notice = ref('');\n const noticeError = ref(false);\n const busy = ref(false);\n const secretValueInput = templateRef('secretValueInput');\n const helpContent = templateRef('helpContent');\n const helpLoaded = ref(false);\n const helpLoading = ref(false);\n let validationTimer;\n\n const showNotice = (message, error = false) => {\n notice.value = message;\n noticeError.value = error;\n };\n\n const api = async (url, options = {}) => {\n const response = await fetch(url, {\n headers: { accept: 'application/json', ...(options.body ? { 'content-type': 'application/json' } : {}) },\n ...options,\n });\n const body = response.status === 204 ? null : await response.json().catch(() => ({}));\n if (!response.ok) throw new Error(body.error || `Request failed: ${response.status}`);\n return body;\n };\n\n const derivedId = () =>\n source.value\n .match(/^\\s*(?:id:\\s*([^\\n]+)|name:\\s*([^\\n]+))/m)\n ?.slice(1)\n .find(Boolean)\n ?.trim()\n .toLowerCase()\n .replace(/[^a-z0-9]/g, '-')\n .replace(/(^-|-$)/g, '') || '';\n\n const run = async (action) => {\n if (busy.value) return;\n\n busy.value = true;\n\n try {\n await action();\n } catch (error) {\n showNotice(error.message, true);\n } finally {\n busy.value = false;\n }\n };\n\n const loadWorkflows = async () => {\n workflows.value = (await api('/api/workflows')).workflows;\n };\n\n const loadSecrets = async () => {\n secrets.value = (await api('/api/secrets')).secrets;\n };\n\n const openWorkflow = async (id) => {\n const workflowUrl = initialRevision\n ? `/api/workflows/${id}?revision=${initialRevision}`\n : `/api/workflows/${id}`;\n const workflow = await api(workflowUrl);\n selectedId.value = workflow.id;\n workflowId.value = workflow.id;\n source.value = workflow.sourceYaml;\n savedSource.value = workflow.sourceYaml;\n enabled.value = workflow.enabled;\n savedEnabled.value = workflow.enabled;\n };\n\n const validateSource = async () => {\n validation.value = await api('/api/workflows/validate', {\n method: 'POST',\n body: JSON.stringify({ sourceYaml: source.value }),\n });\n };\n\n const validate = (ms = 1000) => {\n if (page !== 'editor') return;\n\n clearTimeout(validationTimer);\n validationTimer = setTimeout(() => {\n validation.running = true;\n validateSource();\n }, ms);\n };\n\n const save = () =>\n run(async () => {\n const id = workflowId.value.trim() || derivedId();\n if (!id) throw new Error('Set an ID or add a workflow name first.');\n if (\n initialId &&\n id === selectedId.value &&\n source.value === savedSource.value &&\n enabled.value === savedEnabled.value\n ) {\n showNotice('No changes to save.');\n return;\n }\n const workflow = await api(`/api/workflows/${id}`, {\n method: 'PUT',\n body: JSON.stringify({ sourceYaml: source.value, enabled: enabled.value }),\n });\n selectedId.value = workflow.id;\n workflowId.value = workflow.id;\n savedSource.value = source.value;\n savedEnabled.value = enabled.value;\n showNotice(`Saved ${workflow.id} as draft revision ${workflow.revision}.`);\n if (!initialId) history.replaceState(null, '', `/workflows/${workflow.id}`);\n });\n const publish = () =>\n run(async () => {\n const id = workflowId.value.trim() || selectedId.value;\n if (!id) throw new Error('Save a workflow before publishing it.');\n const workflow = await api(`/api/workflows/${id}/publish`, { method: 'POST' });\n selectedId.value = workflow.id;\n showNotice(`Published ${workflow.id} revision ${workflow.revision}.`);\n });\n const remove = () =>\n run(async () => {\n const id = workflowId.value.trim() || selectedId.value;\n if (!id || !confirm(`Delete ${id} and all of its revisions?`)) return;\n await api(`/api/workflows/${id}`, { method: 'DELETE' });\n window.location.href = '/workflows';\n });\n const saveSecret = () =>\n run(async () => {\n const name = secretName.value.trim();\n if (!name || !secretValue.value) throw new Error('Set a secret name and value first.');\n await api(`/api/secrets/${name}`, { method: 'PUT', body: JSON.stringify({ value: secretValue.value }) });\n secretValue.value = '';\n await loadSecrets();\n showNotice(`Saved ${name}.`);\n });\n const removeSecret = () =>\n run(async () => {\n const name = secretName.value.trim();\n if (!name || !confirm(`Delete ${name}?`)) return;\n await api(`/api/secrets/${name}`, { method: 'DELETE' });\n secretName.value = '';\n secretValue.value = '';\n await loadSecrets();\n showNotice(`Deleted ${name}.`);\n });\n const setSource = (value) => {\n source.value = value;\n validate();\n };\n const setWorkflowId = (event) => {\n workflowId.value = event.target.value;\n };\n const setEnabled = (event) => {\n enabled.value = event.target.checked;\n };\n const setSecretName = (event) => {\n secretName.value = event.target.value;\n };\n const setSecretValue = (event) => {\n secretValue.value = event.target.value;\n };\n const selectSecret = (name) => {\n secretName.value = name;\n secretValueInput.value?.focus();\n };\n const visitWorkflow = (id) => {\n window.location.href = `/workflows/${id}`;\n };\n const loadHelp = async (event) => {\n if (!event.target.open || helpLoaded.value || helpLoading.value || !helpContent.value) return;\n helpLoading.value = true;\n helpContent.value.textContent = 'Loading workflow syntax help...';\n try {\n const response = await fetch('/help?embed=1', { headers: { accept: 'text/html' } });\n if (!response.ok) throw new Error(`Help request failed: ${response.status}`);\n const html = await response.text();\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n const sourceNodes = [\n ...Array.from(parsed.head.querySelectorAll('style')),\n ...Array.from(parsed.body.childNodes),\n ];\n const nodes = sourceNodes.map((node) => document.importNode(node, true));\n helpContent.value.replaceChildren(...nodes);\n helpLoaded.value = true;\n } catch (error) {\n helpContent.value.textContent = 'Unable to load workflow syntax help.';\n console.error(error);\n } finally {\n helpLoading.value = false;\n }\n };\n\n onDestroy(() => clearTimeout(validationTimer));\n\n onInit(() => {\n const loadPage =\n page === 'editor'\n ? initialId\n ? openWorkflow(initialId)\n : Promise.resolve()\n : Promise.all([loadWorkflows(), loadSecrets()]);\n loadPage.catch((error) => showNotice(error.message, true));\n });\n\n return {\n workflows,\n secrets,\n source,\n validation,\n workflowId,\n enabled,\n readOnly,\n selectedId,\n secretName,\n secretValue,\n notice,\n noticeError,\n busy,\n validate,\n save,\n publish,\n remove,\n saveSecret,\n removeSecret,\n setSource,\n setWorkflowId,\n setEnabled,\n setSecretName,\n setSecretValue,\n selectSecret,\n visitWorkflow,\n loadHelp,\n };\n }\n <\/script>\n </template>\n\n <script type=\"module\">\n import '@li3/web';\n <\/script>\n <script src=\"https://cdn.tailwindcss.com\"><\/script>\n </body>\n</html>\n";
5592
6111
  //#endregion
5593
6112
  //#region src/workflows-ui.ts
5594
- function Ui(e, t = "", n) {
5595
- return Hi.replace("__WORKFLOW_PAGE__", e).replace("__WORKFLOW_ID__", JSON.stringify(t)).replace("__WORKFLOW_REVISION__", JSON.stringify(n ?? null));
6113
+ function Wi(e, t = "", n) {
6114
+ return Ui.replace("__WORKFLOW_PAGE__", e).replace("__WORKFLOW_ID__", JSON.stringify(t)).replace("__WORKFLOW_REVISION__", JSON.stringify(n ?? null));
5596
6115
  }
5597
6116
  //#endregion
5598
6117
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/identity.js
5599
- var Wi = Symbol.for("yaml.alias"), Gi = Symbol.for("yaml.document"), Ki = Symbol.for("yaml.map"), qi = Symbol.for("yaml.pair"), Ji = Symbol.for("yaml.scalar"), Yi = Symbol.for("yaml.seq"), G = Symbol.for("yaml.node.type"), Xi = (e) => !!e && typeof e == "object" && e[G] === Wi, Zi = (e) => !!e && typeof e == "object" && e[G] === Gi, Qi = (e) => !!e && typeof e == "object" && e[G] === Ki, K = (e) => !!e && typeof e == "object" && e[G] === qi, q = (e) => !!e && typeof e == "object" && e[G] === Ji, $i = (e) => !!e && typeof e == "object" && e[G] === Yi;
6118
+ var Gi = Symbol.for("yaml.alias"), Ki = Symbol.for("yaml.document"), qi = Symbol.for("yaml.map"), Ji = Symbol.for("yaml.pair"), Yi = Symbol.for("yaml.scalar"), Xi = Symbol.for("yaml.seq"), G = Symbol.for("yaml.node.type"), Zi = (e) => !!e && typeof e == "object" && e[G] === Gi, Qi = (e) => !!e && typeof e == "object" && e[G] === Ki, $i = (e) => !!e && typeof e == "object" && e[G] === qi, K = (e) => !!e && typeof e == "object" && e[G] === Ji, q = (e) => !!e && typeof e == "object" && e[G] === Yi, ea = (e) => !!e && typeof e == "object" && e[G] === Xi;
5600
6119
  function J(e) {
5601
6120
  if (e && typeof e == "object") switch (e[G]) {
5602
- case Ki:
5603
- case Yi: return !0;
6121
+ case qi:
6122
+ case Xi: return !0;
5604
6123
  }
5605
6124
  return !1;
5606
6125
  }
5607
6126
  function Y(e) {
5608
6127
  if (e && typeof e == "object") switch (e[G]) {
5609
- case Wi:
5610
- case Ki:
5611
- case Ji:
5612
- case Yi: return !0;
6128
+ case Gi:
6129
+ case qi:
6130
+ case Yi:
6131
+ case Xi: return !0;
5613
6132
  }
5614
6133
  return !1;
5615
6134
  }
5616
- var ea = (e) => (q(e) || J(e)) && !!e.anchor, X = Symbol("break visit"), ta = Symbol("skip children"), na = Symbol("remove node");
5617
- function ra(e, t) {
5618
- let n = sa(t);
5619
- Zi(e) ? ia(null, e.contents, n, Object.freeze([e])) === na && (e.contents = null) : ia(null, e, n, Object.freeze([]));
6135
+ var ta = (e) => (q(e) || J(e)) && !!e.anchor, X = Symbol("break visit"), na = Symbol("skip children"), ra = Symbol("remove node");
6136
+ function ia(e, t) {
6137
+ let n = ca(t);
6138
+ Qi(e) ? aa(null, e.contents, n, Object.freeze([e])) === ra && (e.contents = null) : aa(null, e, n, Object.freeze([]));
5620
6139
  }
5621
- ra.BREAK = X, ra.SKIP = ta, ra.REMOVE = na;
5622
- function ia(e, t, n, r) {
5623
- let i = ca(e, t, n, r);
5624
- if (Y(i) || K(i)) return la(e, r, i), ia(e, i, n, r);
6140
+ ia.BREAK = X, ia.SKIP = na, ia.REMOVE = ra;
6141
+ function aa(e, t, n, r) {
6142
+ let i = la(e, t, n, r);
6143
+ if (Y(i) || K(i)) return ua(e, r, i), aa(e, i, n, r);
5625
6144
  if (typeof i != "symbol") {
5626
6145
  if (J(t)) {
5627
6146
  r = Object.freeze(r.concat(t));
5628
6147
  for (let e = 0; e < t.items.length; ++e) {
5629
- let i = ia(e, t.items[e], n, r);
6148
+ let i = aa(e, t.items[e], n, r);
5630
6149
  if (typeof i == "number") e = i - 1;
5631
6150
  else if (i === X) return X;
5632
- else i === na && (t.items.splice(e, 1), --e);
6151
+ else i === ra && (t.items.splice(e, 1), --e);
5633
6152
  }
5634
6153
  } else if (K(t)) {
5635
6154
  r = Object.freeze(r.concat(t));
5636
- let e = ia("key", t.key, n, r);
6155
+ let e = aa("key", t.key, n, r);
5637
6156
  if (e === X) return X;
5638
- e === na && (t.key = null);
5639
- let i = ia("value", t.value, n, r);
6157
+ e === ra && (t.key = null);
6158
+ let i = aa("value", t.value, n, r);
5640
6159
  if (i === X) return X;
5641
- i === na && (t.value = null);
6160
+ i === ra && (t.value = null);
5642
6161
  }
5643
6162
  }
5644
6163
  return i;
5645
6164
  }
5646
- async function aa(e, t) {
5647
- let n = sa(t);
5648
- Zi(e) ? await oa(null, e.contents, n, Object.freeze([e])) === na && (e.contents = null) : await oa(null, e, n, Object.freeze([]));
6165
+ async function oa(e, t) {
6166
+ let n = ca(t);
6167
+ Qi(e) ? await sa(null, e.contents, n, Object.freeze([e])) === ra && (e.contents = null) : await sa(null, e, n, Object.freeze([]));
5649
6168
  }
5650
- aa.BREAK = X, aa.SKIP = ta, aa.REMOVE = na;
5651
- async function oa(e, t, n, r) {
5652
- let i = await ca(e, t, n, r);
5653
- if (Y(i) || K(i)) return la(e, r, i), oa(e, i, n, r);
6169
+ oa.BREAK = X, oa.SKIP = na, oa.REMOVE = ra;
6170
+ async function sa(e, t, n, r) {
6171
+ let i = await la(e, t, n, r);
6172
+ if (Y(i) || K(i)) return ua(e, r, i), sa(e, i, n, r);
5654
6173
  if (typeof i != "symbol") {
5655
6174
  if (J(t)) {
5656
6175
  r = Object.freeze(r.concat(t));
5657
6176
  for (let e = 0; e < t.items.length; ++e) {
5658
- let i = await oa(e, t.items[e], n, r);
6177
+ let i = await sa(e, t.items[e], n, r);
5659
6178
  if (typeof i == "number") e = i - 1;
5660
6179
  else if (i === X) return X;
5661
- else i === na && (t.items.splice(e, 1), --e);
6180
+ else i === ra && (t.items.splice(e, 1), --e);
5662
6181
  }
5663
6182
  } else if (K(t)) {
5664
6183
  r = Object.freeze(r.concat(t));
5665
- let e = await oa("key", t.key, n, r);
6184
+ let e = await sa("key", t.key, n, r);
5666
6185
  if (e === X) return X;
5667
- e === na && (t.key = null);
5668
- let i = await oa("value", t.value, n, r);
6186
+ e === ra && (t.key = null);
6187
+ let i = await sa("value", t.value, n, r);
5669
6188
  if (i === X) return X;
5670
- i === na && (t.value = null);
6189
+ i === ra && (t.value = null);
5671
6190
  }
5672
6191
  }
5673
6192
  return i;
5674
6193
  }
5675
- function sa(e) {
6194
+ function ca(e) {
5676
6195
  return typeof e == "object" && (e.Collection || e.Node || e.Value) ? Object.assign({
5677
6196
  Alias: e.Node,
5678
6197
  Map: e.Node,
@@ -5687,34 +6206,34 @@ function sa(e) {
5687
6206
  Seq: e.Collection
5688
6207
  }, e) : e;
5689
6208
  }
5690
- function ca(e, t, n, r) {
6209
+ function la(e, t, n, r) {
5691
6210
  if (typeof n == "function") return n(e, t, r);
5692
- if (Qi(t)) return n.Map?.(e, t, r);
5693
- if ($i(t)) return n.Seq?.(e, t, r);
6211
+ if ($i(t)) return n.Map?.(e, t, r);
6212
+ if (ea(t)) return n.Seq?.(e, t, r);
5694
6213
  if (K(t)) return n.Pair?.(e, t, r);
5695
6214
  if (q(t)) return n.Scalar?.(e, t, r);
5696
- if (Xi(t)) return n.Alias?.(e, t, r);
6215
+ if (Zi(t)) return n.Alias?.(e, t, r);
5697
6216
  }
5698
- function la(e, t, n) {
6217
+ function ua(e, t, n) {
5699
6218
  let r = t[t.length - 1];
5700
6219
  if (J(r)) r.items[e] = n;
5701
6220
  else if (K(r)) e === "key" ? r.key = n : r.value = n;
5702
- else if (Zi(r)) r.contents = n;
6221
+ else if (Qi(r)) r.contents = n;
5703
6222
  else {
5704
- let e = Xi(r) ? "alias" : "scalar";
6223
+ let e = Zi(r) ? "alias" : "scalar";
5705
6224
  throw Error(`Cannot replace node with ${e} parent`);
5706
6225
  }
5707
6226
  }
5708
6227
  //#endregion
5709
6228
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/directives.js
5710
- var ua = {
6229
+ var da = {
5711
6230
  "!": "%21",
5712
6231
  ",": "%2C",
5713
6232
  "[": "%5B",
5714
6233
  "]": "%5D",
5715
6234
  "{": "%7B",
5716
6235
  "}": "%7D"
5717
- }, da = (e) => e.replace(/[!,[\]{}]/g, (e) => ua[e]), fa = class e {
6236
+ }, fa = (e) => e.replace(/[!,[\]{}]/g, (e) => da[e]), pa = class e {
5718
6237
  constructor(t, n) {
5719
6238
  this.docStart = null, this.docEnd = !1, this.yaml = Object.assign({}, e.defaultYaml, t), this.tags = Object.assign({}, e.defaultTags, n);
5720
6239
  }
@@ -5777,14 +6296,14 @@ var ua = {
5777
6296
  return n === "!" ? e : (t(`Could not resolve tag: ${e}`), null);
5778
6297
  }
5779
6298
  tagString(e) {
5780
- for (let [t, n] of Object.entries(this.tags)) if (e.startsWith(n)) return t + da(e.substring(n.length));
6299
+ for (let [t, n] of Object.entries(this.tags)) if (e.startsWith(n)) return t + fa(e.substring(n.length));
5781
6300
  return e[0] === "!" ? e : `!<${e}>`;
5782
6301
  }
5783
6302
  toString(e) {
5784
6303
  let t = this.yaml.explicit ? [`%YAML ${this.yaml.version || "1.2"}`] : [], n = Object.entries(this.tags), r;
5785
6304
  if (e && n.length > 0 && Y(e.contents)) {
5786
6305
  let t = {};
5787
- ra(e.contents, (e, n) => {
6306
+ ia(e.contents, (e, n) => {
5788
6307
  Y(n) && n.tag && (t[n.tag] = !0);
5789
6308
  }), r = Object.keys(t);
5790
6309
  } else r = [];
@@ -5792,37 +6311,37 @@ var ua = {
5792
6311
  return t.join("\n");
5793
6312
  }
5794
6313
  };
5795
- fa.defaultYaml = {
6314
+ pa.defaultYaml = {
5796
6315
  explicit: !1,
5797
6316
  version: "1.2"
5798
- }, fa.defaultTags = { "!!": "tag:yaml.org,2002:" };
6317
+ }, pa.defaultTags = { "!!": "tag:yaml.org,2002:" };
5799
6318
  //#endregion
5800
6319
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/anchors.js
5801
- function pa(e) {
6320
+ function ma(e) {
5802
6321
  if (/[\x00-\x19\s,[\]{}]/.test(e)) {
5803
6322
  let t = `Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;
5804
6323
  throw Error(t);
5805
6324
  }
5806
6325
  return !0;
5807
6326
  }
5808
- function ma(e) {
6327
+ function ha(e) {
5809
6328
  let t = /* @__PURE__ */ new Set();
5810
- return ra(e, { Value(e, n) {
6329
+ return ia(e, { Value(e, n) {
5811
6330
  n.anchor && t.add(n.anchor);
5812
6331
  } }), t;
5813
6332
  }
5814
- function ha(e, t) {
6333
+ function ga(e, t) {
5815
6334
  for (let n = 1;; ++n) {
5816
6335
  let r = `${e}${n}`;
5817
6336
  if (!t.has(r)) return r;
5818
6337
  }
5819
6338
  }
5820
- function ga(e, t) {
6339
+ function _a(e, t) {
5821
6340
  let n = [], r = /* @__PURE__ */ new Map(), i = null;
5822
6341
  return {
5823
6342
  onAnchor: (r) => {
5824
- n.push(r), i ??= ma(e);
5825
- let a = ha(t, i);
6343
+ n.push(r), i ??= ha(e);
6344
+ let a = ga(t, i);
5826
6345
  return i.add(a), a;
5827
6346
  },
5828
6347
  setAnchors: () => {
@@ -5840,22 +6359,22 @@ function ga(e, t) {
5840
6359
  }
5841
6360
  //#endregion
5842
6361
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/applyReviver.js
5843
- function _a(e, t, n, r) {
6362
+ function va(e, t, n, r) {
5844
6363
  if (r && typeof r == "object") {
5845
6364
  if (Array.isArray(r)) for (let t = 0, n = r.length; t < n; ++t) {
5846
- let n = r[t], i = _a(e, r, String(t), n);
6365
+ let n = r[t], i = va(e, r, String(t), n);
5847
6366
  i === void 0 ? delete r[t] : i !== n && (r[t] = i);
5848
6367
  }
5849
6368
  else if (r instanceof Map) for (let t of Array.from(r.keys())) {
5850
- let n = r.get(t), i = _a(e, r, t, n);
6369
+ let n = r.get(t), i = va(e, r, t, n);
5851
6370
  i === void 0 ? r.delete(t) : i !== n && r.set(t, i);
5852
6371
  }
5853
6372
  else if (r instanceof Set) for (let t of Array.from(r)) {
5854
- let n = _a(e, r, t, t);
6373
+ let n = va(e, r, t, t);
5855
6374
  n === void 0 ? r.delete(t) : n !== t && (r.delete(t), r.add(n));
5856
6375
  }
5857
6376
  else for (let [t, n] of Object.entries(r)) {
5858
- let i = _a(e, r, t, n);
6377
+ let i = va(e, r, t, n);
5859
6378
  i === void 0 ? delete r[t] : i !== n && (r[t] = i);
5860
6379
  }
5861
6380
  }
@@ -5863,10 +6382,10 @@ function _a(e, t, n, r) {
5863
6382
  }
5864
6383
  //#endregion
5865
6384
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/toJS.js
5866
- function va(e, t, n) {
5867
- if (Array.isArray(e)) return e.map((e, t) => va(e, String(t), n));
6385
+ function ya(e, t, n) {
6386
+ if (Array.isArray(e)) return e.map((e, t) => ya(e, String(t), n));
5868
6387
  if (e && typeof e.toJSON == "function") {
5869
- if (!n || !ea(e)) return e.toJSON(t, n);
6388
+ if (!n || !ta(e)) return e.toJSON(t, n);
5870
6389
  let r = {
5871
6390
  aliasCount: 0,
5872
6391
  count: 1,
@@ -5882,7 +6401,7 @@ function va(e, t, n) {
5882
6401
  }
5883
6402
  //#endregion
5884
6403
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Node.js
5885
- var ya = class {
6404
+ var ba = class {
5886
6405
  constructor(e) {
5887
6406
  Object.defineProperty(this, G, { value: e });
5888
6407
  }
@@ -5891,7 +6410,7 @@ var ya = class {
5891
6410
  return this.range && (e.range = this.range.slice()), e;
5892
6411
  }
5893
6412
  toJS(e, { mapAsMap: t, maxAliasCount: n, onAnchor: r, reviver: i } = {}) {
5894
- if (!Zi(e)) throw TypeError("A document argument is required");
6413
+ if (!Qi(e)) throw TypeError("A document argument is required");
5895
6414
  let a = {
5896
6415
  anchors: /* @__PURE__ */ new Map(),
5897
6416
  doc: e,
@@ -5899,21 +6418,21 @@ var ya = class {
5899
6418
  mapAsMap: t === !0,
5900
6419
  mapKeyWarned: !1,
5901
6420
  maxAliasCount: typeof n == "number" ? n : 100
5902
- }, o = va(this, "", a);
6421
+ }, o = ya(this, "", a);
5903
6422
  if (typeof r == "function") for (let { count: e, res: t } of a.anchors.values()) r(t, e);
5904
- return typeof i == "function" ? _a(i, { "": o }, "", o) : o;
6423
+ return typeof i == "function" ? va(i, { "": o }, "", o) : o;
5905
6424
  }
5906
- }, ba = class extends ya {
6425
+ }, xa = class extends ba {
5907
6426
  constructor(e) {
5908
- super(Wi), this.source = e, Object.defineProperty(this, "tag", { set() {
6427
+ super(Gi), this.source = e, Object.defineProperty(this, "tag", { set() {
5909
6428
  throw Error("Alias nodes cannot have tags");
5910
6429
  } });
5911
6430
  }
5912
6431
  resolve(e, t) {
5913
6432
  if (t?.maxAliasCount === 0) throw ReferenceError("Alias resolution is disabled");
5914
6433
  let n;
5915
- t?.aliasResolveCache ? n = t.aliasResolveCache : (n = [], ra(e, { Node: (e, t) => {
5916
- (Xi(t) || ea(t)) && n.push(t);
6434
+ t?.aliasResolveCache ? n = t.aliasResolveCache : (n = [], ia(e, { Node: (e, t) => {
6435
+ (Zi(t) || ta(t)) && n.push(t);
5917
6436
  } }), t && (t.aliasResolveCache = n));
5918
6437
  let r;
5919
6438
  for (let e of n) {
@@ -5931,14 +6450,14 @@ var ya = class {
5931
6450
  }
5932
6451
  let o = n.get(a);
5933
6452
  /* istanbul ignore if */
5934
- if (o ||= (va(a, null, t), n.get(a)), o?.res === void 0) throw ReferenceError("This should not happen: Alias anchor was not resolved?");
5935
- if (i >= 0 && (o.count += 1, o.aliasCount === 0 && (o.aliasCount = xa(r, a, n)), o.count * o.aliasCount > i)) throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");
6453
+ if (o ||= (ya(a, null, t), n.get(a)), o?.res === void 0) throw ReferenceError("This should not happen: Alias anchor was not resolved?");
6454
+ if (i >= 0 && (o.count += 1, o.aliasCount === 0 && (o.aliasCount = Sa(r, a, n)), o.count * o.aliasCount > i)) throw ReferenceError("Excessive alias count indicates a resource exhaustion attack");
5936
6455
  return o.res;
5937
6456
  }
5938
6457
  toString(e, t, n) {
5939
6458
  let r = `*${this.source}`;
5940
6459
  if (e) {
5941
- if (pa(this.source), e.options.verifyAliasOrder && !e.anchors.has(this.source)) {
6460
+ if (ma(this.source), e.options.verifyAliasOrder && !e.anchors.has(this.source)) {
5942
6461
  let e = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
5943
6462
  throw Error(e);
5944
6463
  }
@@ -5947,33 +6466,33 @@ var ya = class {
5947
6466
  return r;
5948
6467
  }
5949
6468
  };
5950
- function xa(e, t, n) {
5951
- if (Xi(t)) {
6469
+ function Sa(e, t, n) {
6470
+ if (Zi(t)) {
5952
6471
  let r = t.resolve(e), i = n && r && n.get(r);
5953
6472
  return i ? i.count * i.aliasCount : 0;
5954
6473
  }
5955
6474
  if (J(t)) {
5956
6475
  let r = 0;
5957
6476
  for (let i of t.items) {
5958
- let t = xa(e, i, n);
6477
+ let t = Sa(e, i, n);
5959
6478
  t > r && (r = t);
5960
6479
  }
5961
6480
  return r;
5962
6481
  }
5963
6482
  if (K(t)) {
5964
- let r = xa(e, t.key, n), i = xa(e, t.value, n);
6483
+ let r = Sa(e, t.key, n), i = Sa(e, t.value, n);
5965
6484
  return Math.max(r, i);
5966
6485
  }
5967
6486
  return 1;
5968
6487
  }
5969
6488
  //#endregion
5970
6489
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Scalar.js
5971
- var Sa = (e) => !e || typeof e != "function" && typeof e != "object", Z = class extends ya {
6490
+ var Ca = (e) => !e || typeof e != "function" && typeof e != "object", Z = class extends ba {
5972
6491
  constructor(e) {
5973
- super(Ji), this.value = e;
6492
+ super(Yi), this.value = e;
5974
6493
  }
5975
6494
  toJSON(e, t) {
5976
- return t?.keep ? this.value : va(this.value, e, t);
6495
+ return t?.keep ? this.value : ya(this.value, e, t);
5977
6496
  }
5978
6497
  toString() {
5979
6498
  return String(this.value);
@@ -5982,8 +6501,8 @@ var Sa = (e) => !e || typeof e != "function" && typeof e != "object", Z = class
5982
6501
  Z.BLOCK_FOLDED = "BLOCK_FOLDED", Z.BLOCK_LITERAL = "BLOCK_LITERAL", Z.PLAIN = "PLAIN", Z.QUOTE_DOUBLE = "QUOTE_DOUBLE", Z.QUOTE_SINGLE = "QUOTE_SINGLE";
5983
6502
  //#endregion
5984
6503
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/createNode.js
5985
- var Ca = "tag:yaml.org,2002:";
5986
- function wa(e, t, n) {
6504
+ var wa = "tag:yaml.org,2002:";
6505
+ function Ta(e, t, n) {
5987
6506
  if (t) {
5988
6507
  let e = n.filter((e) => e.tag === t), r = e.find((e) => !e.format) ?? e[0];
5989
6508
  if (!r) throw Error(`Tag ${t} not found`);
@@ -5991,29 +6510,29 @@ function wa(e, t, n) {
5991
6510
  }
5992
6511
  return n.find((t) => t.identify?.(e) && !t.format);
5993
6512
  }
5994
- function Ta(e, t, n) {
5995
- if (Zi(e) && (e = e.contents), Y(e)) return e;
6513
+ function Ea(e, t, n) {
6514
+ if (Qi(e) && (e = e.contents), Y(e)) return e;
5996
6515
  if (K(e)) {
5997
- let t = n.schema[Ki].createNode?.(n.schema, null, n);
6516
+ let t = n.schema[qi].createNode?.(n.schema, null, n);
5998
6517
  return t.items.push(e), t;
5999
6518
  }
6000
6519
  (e instanceof String || e instanceof Number || e instanceof Boolean || typeof BigInt < "u" && e instanceof BigInt) && (e = e.valueOf());
6001
6520
  let { aliasDuplicateObjects: r, onAnchor: i, onTagObj: a, schema: o, sourceObjects: s } = n, c;
6002
6521
  if (r && e && typeof e == "object") {
6003
- if (c = s.get(e), c) return c.anchor ?? (c.anchor = i(e)), new ba(c.anchor);
6522
+ if (c = s.get(e), c) return c.anchor ?? (c.anchor = i(e)), new xa(c.anchor);
6004
6523
  c = {
6005
6524
  anchor: null,
6006
6525
  node: null
6007
6526
  }, s.set(e, c);
6008
6527
  }
6009
- t?.startsWith("!!") && (t = Ca + t.slice(2));
6010
- let l = wa(e, t, o.tags);
6528
+ t?.startsWith("!!") && (t = wa + t.slice(2));
6529
+ let l = Ta(e, t, o.tags);
6011
6530
  if (!l) {
6012
6531
  if (e && typeof e.toJSON == "function" && (e = e.toJSON()), !e || typeof e != "object") {
6013
6532
  let t = new Z(e);
6014
6533
  return c && (c.node = t), t;
6015
6534
  }
6016
- l = e instanceof Map ? o[Ki] : Symbol.iterator in Object(e) ? o[Yi] : o[Ki];
6535
+ l = e instanceof Map ? o[qi] : Symbol.iterator in Object(e) ? o[Xi] : o[qi];
6017
6536
  }
6018
6537
  a && (a(l), delete n.onTagObj);
6019
6538
  let u = l?.createNode ? l.createNode(n.schema, e, n) : typeof l?.nodeClass?.from == "function" ? l.nodeClass.from(n.schema, e, n) : new Z(e);
@@ -6021,7 +6540,7 @@ function Ta(e, t, n) {
6021
6540
  }
6022
6541
  //#endregion
6023
6542
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Collection.js
6024
- function Ea(e, t, n) {
6543
+ function Da(e, t, n) {
6025
6544
  let r = n;
6026
6545
  for (let e = t.length - 1; e >= 0; --e) {
6027
6546
  let n = t[e];
@@ -6030,7 +6549,7 @@ function Ea(e, t, n) {
6030
6549
  e[n] = r, r = e;
6031
6550
  } else r = /* @__PURE__ */ new Map([[n, r]]);
6032
6551
  }
6033
- return Ta(r, void 0, {
6552
+ return Ea(r, void 0, {
6034
6553
  aliasDuplicateObjects: !1,
6035
6554
  keepUndefined: !1,
6036
6555
  onAnchor: () => {
@@ -6040,7 +6559,7 @@ function Ea(e, t, n) {
6040
6559
  sourceObjects: /* @__PURE__ */ new Map()
6041
6560
  });
6042
6561
  }
6043
- var Da = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next().done, Oa = class extends ya {
6562
+ var Oa = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next().done, ka = class extends ba {
6044
6563
  constructor(e, t) {
6045
6564
  super(e), Object.defineProperty(this, "schema", {
6046
6565
  value: t,
@@ -6054,11 +6573,11 @@ var Da = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next
6054
6573
  return e && (t.schema = e), t.items = t.items.map((t) => Y(t) || K(t) ? t.clone(e) : t), this.range && (t.range = this.range.slice()), t;
6055
6574
  }
6056
6575
  addIn(e, t) {
6057
- if (Da(e)) this.add(t);
6576
+ if (Oa(e)) this.add(t);
6058
6577
  else {
6059
6578
  let [n, ...r] = e, i = this.get(n, !0);
6060
6579
  if (J(i)) i.addIn(r, t);
6061
- else if (i === void 0 && this.schema) this.set(n, Ea(this.schema, r, t));
6580
+ else if (i === void 0 && this.schema) this.set(n, Da(this.schema, r, t));
6062
6581
  else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`);
6063
6582
  }
6064
6583
  }
@@ -6092,16 +6611,16 @@ var Da = (e) => e == null || typeof e == "object" && !!e[Symbol.iterator]().next
6092
6611
  else {
6093
6612
  let e = this.get(n, !0);
6094
6613
  if (J(e)) e.setIn(r, t);
6095
- else if (e === void 0 && this.schema) this.set(n, Ea(this.schema, r, t));
6614
+ else if (e === void 0 && this.schema) this.set(n, Da(this.schema, r, t));
6096
6615
  else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`);
6097
6616
  }
6098
6617
  }
6099
- }, ka = (e) => e.replace(/^(?!$)(?: $)?/gm, "#");
6100
- function Aa(e, t) {
6618
+ }, Aa = (e) => e.replace(/^(?!$)(?: $)?/gm, "#");
6619
+ function ja(e, t) {
6101
6620
  return /^\n+$/.test(e) ? e.substring(1) : t ? e.replace(/^(?! *$)/gm, t) : e;
6102
6621
  }
6103
- var ja = (e, t, n) => e.endsWith("\n") ? Aa(n, t) : n.includes("\n") ? "\n" + Aa(n, t) : (e.endsWith(" ") ? "" : " ") + n, Ma = "flow", Na = "block", Pa = "quoted";
6104
- function Fa(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentWidth: a = 20, onFold: o, onOverflow: s } = {}) {
6622
+ var Ma = (e, t, n) => e.endsWith("\n") ? ja(n, t) : n.includes("\n") ? "\n" + ja(n, t) : (e.endsWith(" ") ? "" : " ") + n, Na = "flow", Pa = "block", Fa = "quoted";
6623
+ function Ia(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentWidth: a = 20, onFold: o, onOverflow: s } = {}) {
6105
6624
  if (!i || i < 0) return e;
6106
6625
  i < a && (a = 0);
6107
6626
  let c = Math.max(1 + a, 1 + i - t.length);
@@ -6109,7 +6628,7 @@ function Fa(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
6109
6628
  let l = [], u = {}, d = i - t.length;
6110
6629
  typeof r == "number" && (r > i - Math.max(2, a) ? l.push(0) : d = i - r);
6111
6630
  let f, p, m = !1, h = -1, g = -1, _ = -1;
6112
- n === "block" && (h = Ia(e, h, t.length), h !== -1 && (d = h + c));
6631
+ n === "block" && (h = La(e, h, t.length), h !== -1 && (d = h + c));
6113
6632
  for (let r; r = e[h += 1];) {
6114
6633
  if (n === "quoted" && r === "\\") {
6115
6634
  switch (g = h, e[h + 1]) {
@@ -6126,7 +6645,7 @@ function Fa(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
6126
6645
  }
6127
6646
  _ = h;
6128
6647
  }
6129
- if (r === "\n") n === "block" && (h = Ia(e, h, t.length)), d = h + t.length + c, f = void 0;
6648
+ if (r === "\n") n === "block" && (h = La(e, h, t.length)), d = h + t.length + c, f = void 0;
6130
6649
  else {
6131
6650
  if (r === " " && p && p !== " " && p !== "\n" && p !== " ") {
6132
6651
  let t = e[h + 1];
@@ -6153,7 +6672,7 @@ function Fa(e, t, n = "flow", { indentAtStart: r, lineWidth: i = 80, minContentW
6153
6672
  }
6154
6673
  return v;
6155
6674
  }
6156
- function Ia(e, t, n) {
6675
+ function La(e, t, n) {
6157
6676
  let r = t, i = t + 1, a = e[i];
6158
6677
  for (; a === " " || a === " ";) if (t < i + n) a = e[++t];
6159
6678
  else {
@@ -6166,12 +6685,12 @@ function Ia(e, t, n) {
6166
6685
  }
6167
6686
  //#endregion
6168
6687
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyString.js
6169
- var La = (e, t) => ({
6688
+ var Ra = (e, t) => ({
6170
6689
  indentAtStart: t ? e.indent.length : e.indentAtStart,
6171
6690
  lineWidth: e.options.lineWidth,
6172
6691
  minContentWidth: e.options.minContentWidth
6173
- }), Ra = (e) => /^(%|---|\.\.\.)/m.test(e);
6174
- function za(e, t, n) {
6692
+ }), za = (e) => /^(%|---|\.\.\.)/m.test(e);
6693
+ function Ba(e, t, n) {
6175
6694
  if (!t || t < 0) return !1;
6176
6695
  let r = t - n, i = e.length;
6177
6696
  if (i <= r) return !1;
@@ -6181,10 +6700,10 @@ function za(e, t, n) {
6181
6700
  }
6182
6701
  return !0;
6183
6702
  }
6184
- function Ba(e, t) {
6703
+ function Va(e, t) {
6185
6704
  let n = JSON.stringify(e);
6186
6705
  if (t.options.doubleQuotedAsJSON) return n;
6187
- let { implicitKey: r } = t, i = t.options.doubleQuotedMinMultiLineLength, a = t.indent || (Ra(e) ? " " : ""), o = "", s = 0;
6706
+ let { implicitKey: r } = t, i = t.options.doubleQuotedMinMultiLineLength, a = t.indent || (za(e) ? " " : ""), o = "", s = 0;
6188
6707
  for (let e = 0, t = n[e]; t; t = n[++e]) if (t === " " && n[e + 1] === "\\" && n[e + 2] === "n" && (o += n.slice(s, e) + "\\ ", e += 1, s = e, t = "\\"), t === "\\") switch (n[e + 1]) {
6189
6708
  case "u":
6190
6709
  {
@@ -6229,32 +6748,32 @@ function Ba(e, t) {
6229
6748
  break;
6230
6749
  default: e += 1;
6231
6750
  }
6232
- return o = s ? o + n.slice(s) : n, r ? o : Fa(o, a, Pa, La(t, !1));
6233
- }
6234
- function Va(e, t) {
6235
- if (t.options.singleQuote === !1 || t.implicitKey && e.includes("\n") || /[ \t]\n|\n[ \t]/.test(e)) return Ba(e, t);
6236
- let n = t.indent || (Ra(e) ? " " : ""), r = "'" + e.replace(/'/g, "''").replace(/\n+/g, `$&\n${n}`) + "'";
6237
- return t.implicitKey ? r : Fa(r, n, Ma, La(t, !1));
6751
+ return o = s ? o + n.slice(s) : n, r ? o : Ia(o, a, Fa, Ra(t, !1));
6238
6752
  }
6239
6753
  function Ha(e, t) {
6754
+ if (t.options.singleQuote === !1 || t.implicitKey && e.includes("\n") || /[ \t]\n|\n[ \t]/.test(e)) return Va(e, t);
6755
+ let n = t.indent || (za(e) ? " " : ""), r = "'" + e.replace(/'/g, "''").replace(/\n+/g, `$&\n${n}`) + "'";
6756
+ return t.implicitKey ? r : Ia(r, n, Na, Ra(t, !1));
6757
+ }
6758
+ function Ua(e, t) {
6240
6759
  let { singleQuote: n } = t.options, r;
6241
- if (n === !1) r = Ba;
6760
+ if (n === !1) r = Va;
6242
6761
  else {
6243
6762
  let t = e.includes("\""), i = e.includes("'");
6244
- r = t && !i ? Va : i && !t ? Ba : n ? Va : Ba;
6763
+ r = t && !i ? Ha : i && !t ? Va : n ? Ha : Va;
6245
6764
  }
6246
6765
  return r(e, t);
6247
6766
  }
6248
- var Ua;
6767
+ var Wa;
6249
6768
  try {
6250
- Ua = /* @__PURE__ */ RegExp("(^|(?<!\n))\n+(?!\n|$)", "g");
6769
+ Wa = /* @__PURE__ */ RegExp("(^|(?<!\n))\n+(?!\n|$)", "g");
6251
6770
  } catch {
6252
- Ua = /\n+(?!\n|$)/g;
6771
+ Wa = /\n+(?!\n|$)/g;
6253
6772
  }
6254
- function Wa({ comment: e, type: t, value: n }, r, i, a) {
6773
+ function Ga({ comment: e, type: t, value: n }, r, i, a) {
6255
6774
  let { blockQuote: o, commentString: s, lineWidth: c } = r.options;
6256
- if (!o || /\n[\t ]+$/.test(n)) return Ha(n, r);
6257
- let l = r.indent || (r.forceBlockIndent || Ra(n) ? " " : ""), u = o === "literal" ? !0 : o === "folded" || t === Z.BLOCK_FOLDED ? !1 : t === Z.BLOCK_LITERAL || !za(n, c, l.length);
6775
+ if (!o || /\n[\t ]+$/.test(n)) return Ua(n, r);
6776
+ let l = r.indent || (r.forceBlockIndent || za(n) ? " " : ""), u = o === "literal" ? !0 : o === "folded" || t === Z.BLOCK_FOLDED ? !1 : t === Z.BLOCK_LITERAL || !Ba(n, c, l.length);
6258
6777
  if (!n) return u ? "|\n" : ">\n";
6259
6778
  let d, f;
6260
6779
  for (f = n.length; f > 0; --f) {
@@ -6262,7 +6781,7 @@ function Wa({ comment: e, type: t, value: n }, r, i, a) {
6262
6781
  if (e !== "\n" && e !== " " && e !== " ") break;
6263
6782
  }
6264
6783
  let p = n.substring(f), m = p.indexOf("\n");
6265
- m === -1 ? d = "-" : n === p || m !== p.length - 1 ? (d = "+", a && a()) : d = "", p &&= (n = n.slice(0, -p.length), p[p.length - 1] === "\n" && (p = p.slice(0, -1)), p.replace(Ua, `$&${l}`));
6784
+ m === -1 ? d = "-" : n === p || m !== p.length - 1 ? (d = "+", a && a()) : d = "", p &&= (n = n.slice(0, -p.length), p[p.length - 1] === "\n" && (p = p.slice(0, -1)), p.replace(Wa, `$&${l}`));
6266
6785
  let h = !1, g, _ = -1;
6267
6786
  for (g = 0; g < n.length; ++g) {
6268
6787
  let e = n[g];
@@ -6274,41 +6793,41 @@ function Wa({ comment: e, type: t, value: n }, r, i, a) {
6274
6793
  v &&= (n = n.substring(v.length), v.replace(/\n+/g, `$&${l}`));
6275
6794
  let y = (h ? l ? "2" : "1" : "") + d;
6276
6795
  if (e && (y += " " + s(e.replace(/ ?[\r\n]+/g, " ")), i && i()), !u) {
6277
- let e = n.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${l}`), i = !1, a = La(r, !0);
6796
+ let e = n.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${l}`), i = !1, a = Ra(r, !0);
6278
6797
  o !== "folded" && t !== Z.BLOCK_FOLDED && (a.onOverflow = () => {
6279
6798
  i = !0;
6280
6799
  });
6281
- let s = Fa(`${v}${e}${p}`, l, Na, a);
6800
+ let s = Ia(`${v}${e}${p}`, l, Pa, a);
6282
6801
  if (!i) return `>${y}\n${l}${s}`;
6283
6802
  }
6284
6803
  return n = n.replace(/\n+/g, `$&${l}`), `|${y}\n${l}${v}${n}${p}`;
6285
6804
  }
6286
- function Ga(e, t, n, r) {
6805
+ function Ka(e, t, n, r) {
6287
6806
  let { type: i, value: a } = e, { actualString: o, implicitKey: s, indent: c, indentStep: l, inFlow: u } = t;
6288
- if (s && a.includes("\n") || u && /[[\]{},]/.test(a)) return Ha(a, t);
6289
- if (/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)) return s || u || !a.includes("\n") ? Ha(a, t) : Wa(e, t, n, r);
6290
- if (!s && !u && i !== Z.PLAIN && a.includes("\n")) return Wa(e, t, n, r);
6291
- if (Ra(a)) {
6292
- if (c === "") return t.forceBlockIndent = !0, Wa(e, t, n, r);
6293
- if (s && c === l) return Ha(a, t);
6807
+ if (s && a.includes("\n") || u && /[[\]{},]/.test(a)) return Ua(a, t);
6808
+ if (/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)) return s || u || !a.includes("\n") ? Ua(a, t) : Ga(e, t, n, r);
6809
+ if (!s && !u && i !== Z.PLAIN && a.includes("\n")) return Ga(e, t, n, r);
6810
+ if (za(a)) {
6811
+ if (c === "") return t.forceBlockIndent = !0, Ga(e, t, n, r);
6812
+ if (s && c === l) return Ua(a, t);
6294
6813
  }
6295
6814
  let d = a.replace(/\n+/g, `$&\n${c}`);
6296
6815
  if (o) {
6297
6816
  let e = (e) => e.default && e.tag !== "tag:yaml.org,2002:str" && e.test?.test(d), { compat: n, tags: r } = t.doc.schema;
6298
- if (r.some(e) || n?.some(e)) return Ha(a, t);
6817
+ if (r.some(e) || n?.some(e)) return Ua(a, t);
6299
6818
  }
6300
- return s ? d : Fa(d, c, Ma, La(t, !1));
6819
+ return s ? d : Ia(d, c, Na, Ra(t, !1));
6301
6820
  }
6302
- function Ka(e, t, n, r) {
6821
+ function qa(e, t, n, r) {
6303
6822
  let { implicitKey: i, inFlow: a } = t, o = typeof e.value == "string" ? e : Object.assign({}, e, { value: String(e.value) }), { type: s } = e;
6304
6823
  s !== Z.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value) && (s = Z.QUOTE_DOUBLE);
6305
6824
  let c = (e) => {
6306
6825
  switch (e) {
6307
6826
  case Z.BLOCK_FOLDED:
6308
- case Z.BLOCK_LITERAL: return i || a ? Ha(o.value, t) : Wa(o, t, n, r);
6309
- case Z.QUOTE_DOUBLE: return Ba(o.value, t);
6310
- case Z.QUOTE_SINGLE: return Va(o.value, t);
6311
- case Z.PLAIN: return Ga(o, t, n, r);
6827
+ case Z.BLOCK_LITERAL: return i || a ? Ua(o.value, t) : Ga(o, t, n, r);
6828
+ case Z.QUOTE_DOUBLE: return Va(o.value, t);
6829
+ case Z.QUOTE_SINGLE: return Ha(o.value, t);
6830
+ case Z.PLAIN: return Ka(o, t, n, r);
6312
6831
  default: return null;
6313
6832
  }
6314
6833
  }, l = c(s);
@@ -6320,10 +6839,10 @@ function Ka(e, t, n, r) {
6320
6839
  }
6321
6840
  //#endregion
6322
6841
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringify.js
6323
- function qa(e, t) {
6842
+ function Ja(e, t) {
6324
6843
  let n = Object.assign({
6325
6844
  blockQuote: !0,
6326
- commentString: ka,
6845
+ commentString: Aa,
6327
6846
  defaultKeyType: null,
6328
6847
  defaultStringType: "PLAIN",
6329
6848
  directives: null,
@@ -6360,7 +6879,7 @@ function qa(e, t) {
6360
6879
  options: n
6361
6880
  };
6362
6881
  }
6363
- function Ja(e, t) {
6882
+ function Ya(e, t) {
6364
6883
  if (t.tag) {
6365
6884
  let n = e.filter((e) => e.tag === t.tag);
6366
6885
  if (n.length > 0) return n.find((e) => e.format === t.format) ?? n[0];
@@ -6381,30 +6900,30 @@ function Ja(e, t) {
6381
6900
  }
6382
6901
  return n;
6383
6902
  }
6384
- function Ya(e, t, { anchors: n, doc: r }) {
6903
+ function Xa(e, t, { anchors: n, doc: r }) {
6385
6904
  if (!r.directives) return "";
6386
6905
  let i = [], a = (q(e) || J(e)) && e.anchor;
6387
- a && pa(a) && (n.add(a), i.push(`&${a}`));
6906
+ a && ma(a) && (n.add(a), i.push(`&${a}`));
6388
6907
  let o = e.tag ?? (t.default ? null : t.tag);
6389
6908
  return o && i.push(r.directives.tagString(o)), i.join(" ");
6390
6909
  }
6391
- function Xa(e, t, n, r) {
6910
+ function Za(e, t, n, r) {
6392
6911
  if (K(e)) return e.toString(t, n, r);
6393
- if (Xi(e)) {
6912
+ if (Zi(e)) {
6394
6913
  if (t.doc.directives) return e.toString(t);
6395
6914
  if (t.resolvedAliases?.has(e)) throw TypeError("Cannot stringify circular structure without alias nodes");
6396
6915
  t.resolvedAliases ? t.resolvedAliases.add(e) : t.resolvedAliases = /* @__PURE__ */ new Set([e]), e = e.resolve(t.doc);
6397
6916
  }
6398
6917
  let i, a = Y(e) ? e : t.doc.createNode(e, { onTagObj: (e) => i = e });
6399
- i ??= Ja(t.doc.schema.tags, a);
6400
- let o = Ya(a, i, t);
6918
+ i ??= Ya(t.doc.schema.tags, a);
6919
+ let o = Xa(a, i, t);
6401
6920
  o.length > 0 && (t.indentAtStart = (t.indentAtStart ?? 0) + o.length + 1);
6402
- let s = typeof i.stringify == "function" ? i.stringify(a, t, n, r) : q(a) ? Ka(a, t, n, r) : a.toString(t, n, r);
6921
+ let s = typeof i.stringify == "function" ? i.stringify(a, t, n, r) : q(a) ? qa(a, t, n, r) : a.toString(t, n, r);
6403
6922
  return o ? q(a) || s[0] === "{" || s[0] === "[" ? `${o} ${s}` : `${o}\n${t.indent}${s}` : s;
6404
6923
  }
6405
6924
  //#endregion
6406
6925
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyPair.js
6407
- function Za({ key: e, value: t }, n, r, i) {
6926
+ function Qa({ key: e, value: t }, n, r, i) {
6408
6927
  let { allNullValues: a, doc: o, indent: s, indentStep: c, options: { commentString: l, indentSeq: u, simpleKeys: d } } = n, f = Y(e) && e.comment || null;
6409
6928
  if (d) {
6410
6929
  if (f) throw Error("With simple keys, key nodes cannot have comments");
@@ -6416,22 +6935,22 @@ function Za({ key: e, value: t }, n, r, i) {
6416
6935
  implicitKey: !p && (d || !a),
6417
6936
  indent: s + c
6418
6937
  });
6419
- let m = !1, h = !1, g = Xa(e, n, () => m = !0, () => h = !0);
6938
+ let m = !1, h = !1, g = Za(e, n, () => m = !0, () => h = !0);
6420
6939
  if (!p && !n.inFlow && g.length > 1024) {
6421
6940
  if (d) throw Error("With simple keys, single line scalar must not span more than 1024 characters");
6422
6941
  p = !0;
6423
6942
  }
6424
6943
  if (n.inFlow) {
6425
6944
  if (a || t == null) return m && r && r(), g === "" ? "?" : p ? `? ${g}` : g;
6426
- } else if (a && !d || t == null && p) return g = `? ${g}`, f && !m ? g += ja(g, n.indent, l(f)) : h && i && i(), g;
6427
- m && (f = null), p ? (f && (g += ja(g, n.indent, l(f))), g = `? ${g}\n${s}:`) : (g = `${g}:`, f && (g += ja(g, n.indent, l(f))));
6945
+ } else if (a && !d || t == null && p) return g = `? ${g}`, f && !m ? g += Ma(g, n.indent, l(f)) : h && i && i(), g;
6946
+ m && (f = null), p ? (f && (g += Ma(g, n.indent, l(f))), g = `? ${g}\n${s}:`) : (g = `${g}:`, f && (g += Ma(g, n.indent, l(f))));
6428
6947
  let _, v, y;
6429
- Y(t) ? (_ = !!t.spaceBefore, v = t.commentBefore, y = t.comment) : (_ = !1, v = null, y = null, t && typeof t == "object" && (t = o.createNode(t))), n.implicitKey = !1, !p && !f && q(t) && (n.indentAtStart = g.length + 1), h = !1, !u && c.length >= 2 && !n.inFlow && !p && $i(t) && !t.flow && !t.tag && !t.anchor && (n.indent = n.indent.substring(2));
6430
- let b = !1, x = Xa(t, n, () => b = !0, () => h = !0), S = " ";
6948
+ Y(t) ? (_ = !!t.spaceBefore, v = t.commentBefore, y = t.comment) : (_ = !1, v = null, y = null, t && typeof t == "object" && (t = o.createNode(t))), n.implicitKey = !1, !p && !f && q(t) && (n.indentAtStart = g.length + 1), h = !1, !u && c.length >= 2 && !n.inFlow && !p && ea(t) && !t.flow && !t.tag && !t.anchor && (n.indent = n.indent.substring(2));
6949
+ let b = !1, x = Za(t, n, () => b = !0, () => h = !0), S = " ";
6431
6950
  if (f || _ || v) {
6432
6951
  if (S = _ ? "\n" : "", v) {
6433
6952
  let e = l(v);
6434
- S += `\n${Aa(e, n.indent)}`;
6953
+ S += `\n${ja(e, n.indent)}`;
6435
6954
  }
6436
6955
  x === "" && !n.inFlow ? S === "\n" && y && (S = "\n\n") : S += `\n${n.indent}`;
6437
6956
  } else if (!p && J(t)) {
@@ -6445,32 +6964,32 @@ function Za({ key: e, value: t }, n, r, i) {
6445
6964
  t || (S = `\n${n.indent}`);
6446
6965
  }
6447
6966
  } else (x === "" || x[0] === "\n") && (S = "");
6448
- return g += S + x, n.inFlow ? b && r && r() : y && !b ? g += ja(g, n.indent, l(y)) : h && i && i(), g;
6967
+ return g += S + x, n.inFlow ? b && r && r() : y && !b ? g += Ma(g, n.indent, l(y)) : h && i && i(), g;
6449
6968
  }
6450
6969
  //#endregion
6451
6970
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/log.js
6452
- function Qa(e, t) {
6971
+ function $a(e, t) {
6453
6972
  (e === "debug" || e === "warn") && console.warn(t);
6454
6973
  }
6455
6974
  //#endregion
6456
6975
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js
6457
- var $a = "<<", eo = {
6458
- identify: (e) => e === $a || typeof e == "symbol" && e.description === $a,
6976
+ var eo = "<<", to = {
6977
+ identify: (e) => e === eo || typeof e == "symbol" && e.description === eo,
6459
6978
  default: "key",
6460
6979
  tag: "tag:yaml.org,2002:merge",
6461
6980
  test: /^<<$/,
6462
- resolve: () => Object.assign(new Z(Symbol($a)), { addToJSMap: no }),
6463
- stringify: () => $a
6464
- }, to = (e, t) => (eo.identify(t) || q(t) && (!t.type || t.type === Z.PLAIN) && eo.identify(t.value)) && e?.doc.schema.tags.some((e) => e.tag === eo.tag && e.default);
6465
- function no(e, t, n) {
6466
- let r = io(e, n);
6467
- if ($i(r)) for (let n of r.items) ro(e, t, n);
6468
- else if (Array.isArray(r)) for (let n of r) ro(e, t, n);
6469
- else ro(e, t, r);
6470
- }
6981
+ resolve: () => Object.assign(new Z(Symbol(eo)), { addToJSMap: ro }),
6982
+ stringify: () => eo
6983
+ }, no = (e, t) => (to.identify(t) || q(t) && (!t.type || t.type === Z.PLAIN) && to.identify(t.value)) && e?.doc.schema.tags.some((e) => e.tag === to.tag && e.default);
6471
6984
  function ro(e, t, n) {
6472
- let r = io(e, n);
6473
- if (!Qi(r)) throw Error("Merge sources must be maps or map aliases");
6985
+ let r = ao(e, n);
6986
+ if (ea(r)) for (let n of r.items) io(e, t, n);
6987
+ else if (Array.isArray(r)) for (let n of r) io(e, t, n);
6988
+ else io(e, t, r);
6989
+ }
6990
+ function io(e, t, n) {
6991
+ let r = ao(e, n);
6992
+ if (!$i(r)) throw Error("Merge sources must be maps or map aliases");
6474
6993
  let i = r.toJSON(null, e, Map);
6475
6994
  for (let [e, n] of i) t instanceof Map ? t.has(e) || t.set(e, n) : t instanceof Set ? t.add(e) : Object.prototype.hasOwnProperty.call(t, e) || Object.defineProperty(t, e, {
6476
6995
  value: n,
@@ -6480,20 +6999,20 @@ function ro(e, t, n) {
6480
6999
  });
6481
7000
  return t;
6482
7001
  }
6483
- function io(e, t) {
6484
- return e && Xi(t) ? t.resolve(e.doc, e) : t;
7002
+ function ao(e, t) {
7003
+ return e && Zi(t) ? t.resolve(e.doc, e) : t;
6485
7004
  }
6486
7005
  //#endregion
6487
7006
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js
6488
- function ao(e, t, { key: n, value: r }) {
7007
+ function oo(e, t, { key: n, value: r }) {
6489
7008
  if (Y(n) && n.addToJSMap) n.addToJSMap(e, t, r);
6490
- else if (to(e, n)) no(e, t, r);
7009
+ else if (no(e, n)) ro(e, t, r);
6491
7010
  else {
6492
- let i = va(n, "", e);
6493
- if (t instanceof Map) t.set(i, va(r, i, e));
7011
+ let i = ya(n, "", e);
7012
+ if (t instanceof Map) t.set(i, ya(r, i, e));
6494
7013
  else if (t instanceof Set) t.add(i);
6495
7014
  else {
6496
- let a = oo(n, i, e), o = va(r, a, e);
7015
+ let a = so(n, i, e), o = ya(r, a, e);
6497
7016
  a in t ? Object.defineProperty(t, a, {
6498
7017
  value: o,
6499
7018
  writable: !0,
@@ -6504,18 +7023,18 @@ function ao(e, t, { key: n, value: r }) {
6504
7023
  }
6505
7024
  return t;
6506
7025
  }
6507
- function oo(e, t, n) {
7026
+ function so(e, t, n) {
6508
7027
  if (t === null) return "";
6509
7028
  if (typeof t != "object") return String(t);
6510
7029
  if (Y(e) && n?.doc) {
6511
- let t = qa(n.doc, {});
7030
+ let t = Ja(n.doc, {});
6512
7031
  t.anchors = /* @__PURE__ */ new Set();
6513
7032
  for (let e of n.anchors.keys()) t.anchors.add(e.anchor);
6514
7033
  t.inFlow = !0, t.inStringifyKey = !0;
6515
7034
  let r = e.toString(t);
6516
7035
  if (!n.mapKeyWarned) {
6517
7036
  let e = JSON.stringify(r);
6518
- e.length > 40 && (e = e.substring(0, 36) + "...\""), Qa(n.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`), n.mapKeyWarned = !0;
7037
+ e.length > 40 && (e = e.substring(0, 36) + "...\""), $a(n.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`), n.mapKeyWarned = !0;
6519
7038
  }
6520
7039
  return r;
6521
7040
  }
@@ -6523,44 +7042,44 @@ function oo(e, t, n) {
6523
7042
  }
6524
7043
  //#endregion
6525
7044
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/Pair.js
6526
- function so(e, t, n) {
6527
- return new Q(Ta(e, void 0, n), Ta(t, void 0, n));
7045
+ function co(e, t, n) {
7046
+ return new Q(Ea(e, void 0, n), Ea(t, void 0, n));
6528
7047
  }
6529
7048
  var Q = class e {
6530
7049
  constructor(e, t = null) {
6531
- Object.defineProperty(this, G, { value: qi }), this.key = e, this.value = t;
7050
+ Object.defineProperty(this, G, { value: Ji }), this.key = e, this.value = t;
6532
7051
  }
6533
7052
  clone(t) {
6534
7053
  let { key: n, value: r } = this;
6535
7054
  return Y(n) && (n = n.clone(t)), Y(r) && (r = r.clone(t)), new e(n, r);
6536
7055
  }
6537
7056
  toJSON(e, t) {
6538
- return ao(t, t?.mapAsMap ? /* @__PURE__ */ new Map() : {}, this);
7057
+ return oo(t, t?.mapAsMap ? /* @__PURE__ */ new Map() : {}, this);
6539
7058
  }
6540
7059
  toString(e, t, n) {
6541
- return e?.doc ? Za(this, e, t, n) : JSON.stringify(this);
7060
+ return e?.doc ? Qa(this, e, t, n) : JSON.stringify(this);
6542
7061
  }
6543
7062
  };
6544
7063
  //#endregion
6545
7064
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyCollection.js
6546
- function co(e, t, n) {
6547
- return (t.inFlow ?? e.flow ? uo : lo)(e, t, n);
7065
+ function lo(e, t, n) {
7066
+ return (t.inFlow ?? e.flow ? fo : uo)(e, t, n);
6548
7067
  }
6549
- function lo({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, itemIndent: a, onChompKeep: o, onComment: s }) {
7068
+ function uo({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, itemIndent: a, onChompKeep: o, onComment: s }) {
6550
7069
  let { indent: c, options: { commentString: l } } = n, u = Object.assign({}, n, {
6551
7070
  indent: a,
6552
7071
  type: null
6553
7072
  }), d = !1, f = [];
6554
7073
  for (let e = 0; e < t.length; ++e) {
6555
7074
  let i = t[e], o = null;
6556
- if (Y(i)) !d && i.spaceBefore && f.push(""), fo(n, f, i.commentBefore, d), i.comment && (o = i.comment);
7075
+ if (Y(i)) !d && i.spaceBefore && f.push(""), po(n, f, i.commentBefore, d), i.comment && (o = i.comment);
6557
7076
  else if (K(i)) {
6558
7077
  let e = Y(i.key) ? i.key : null;
6559
- e && (!d && e.spaceBefore && f.push(""), fo(n, f, e.commentBefore, d));
7078
+ e && (!d && e.spaceBefore && f.push(""), po(n, f, e.commentBefore, d));
6560
7079
  }
6561
7080
  d = !1;
6562
- let s = Xa(i, u, () => o = null, () => d = !0);
6563
- o && (s += ja(s, a, l(o))), d && o && (d = !1), f.push(r + s);
7081
+ let s = Za(i, u, () => o = null, () => d = !0);
7082
+ o && (s += Ma(s, a, l(o))), d && o && (d = !1), f.push(r + s);
6564
7083
  }
6565
7084
  let p;
6566
7085
  if (f.length === 0) p = i.start + i.end;
@@ -6571,9 +7090,9 @@ function lo({ comment: e, items: t }, n, { blockItemPrefix: r, flowChars: i, ite
6571
7090
  p += t ? `\n${c}${t}` : "\n";
6572
7091
  }
6573
7092
  }
6574
- return e ? (p += "\n" + Aa(l(e), c), s && s()) : d && o && o(), p;
7093
+ return e ? (p += "\n" + ja(l(e), c), s && s()) : d && o && o(), p;
6575
7094
  }
6576
- function uo({ items: e }, t, { flowChars: n, itemIndent: r }) {
7095
+ function fo({ items: e }, t, { flowChars: n, itemIndent: r }) {
6577
7096
  let { indent: i, indentStep: a, flowCollectionPadding: o, options: { commentString: s } } = t;
6578
7097
  r += a;
6579
7098
  let c = Object.assign({}, t, {
@@ -6583,16 +7102,16 @@ function uo({ items: e }, t, { flowChars: n, itemIndent: r }) {
6583
7102
  }), l = !1, u = 0, d = [];
6584
7103
  for (let n = 0; n < e.length; ++n) {
6585
7104
  let i = e[n], a = null;
6586
- if (Y(i)) i.spaceBefore && d.push(""), fo(t, d, i.commentBefore, !1), i.comment && (a = i.comment);
7105
+ if (Y(i)) i.spaceBefore && d.push(""), po(t, d, i.commentBefore, !1), i.comment && (a = i.comment);
6587
7106
  else if (K(i)) {
6588
7107
  let e = Y(i.key) ? i.key : null;
6589
- e && (e.spaceBefore && d.push(""), fo(t, d, e.commentBefore, !1), e.comment && (l = !0));
7108
+ e && (e.spaceBefore && d.push(""), po(t, d, e.commentBefore, !1), e.comment && (l = !0));
6590
7109
  let n = Y(i.value) ? i.value : null;
6591
7110
  n ? (n.comment && (a = n.comment), n.commentBefore && (l = !0)) : i.value == null && e?.comment && (a = e.comment);
6592
7111
  }
6593
7112
  a && (l = !0);
6594
- let o = Xa(i, c, () => a = null);
6595
- l ||= d.length > u || o.includes("\n"), n < e.length - 1 ? o += "," : t.options.trailingComma && (t.options.lineWidth > 0 && (l ||= d.reduce((e, t) => e + t.length + 2, 2) + (o.length + 2) > t.options.lineWidth), l && (o += ",")), a && (o += ja(o, r, s(a))), d.push(o), u = d.length;
7113
+ let o = Za(i, c, () => a = null);
7114
+ l ||= d.length > u || o.includes("\n"), n < e.length - 1 ? o += "," : t.options.trailingComma && (t.options.lineWidth > 0 && (l ||= d.reduce((e, t) => e + t.length + 2, 2) + (o.length + 2) > t.options.lineWidth), l && (o += ",")), a && (o += Ma(o, r, s(a))), d.push(o), u = d.length;
6596
7115
  }
6597
7116
  let { start: f, end: p } = n;
6598
7117
  if (d.length === 0) return f + p;
@@ -6607,30 +7126,30 @@ function uo({ items: e }, t, { flowChars: n, itemIndent: r }) {
6607
7126
  }
6608
7127
  return `${f}${o}${d.join(" ")}${o}${p}`;
6609
7128
  }
6610
- function fo({ indent: e, options: { commentString: t } }, n, r, i) {
7129
+ function po({ indent: e, options: { commentString: t } }, n, r, i) {
6611
7130
  if (r && i && (r = r.replace(/^\n+/, "")), r) {
6612
- let i = Aa(t(r), e);
7131
+ let i = ja(t(r), e);
6613
7132
  n.push(i.trimStart());
6614
7133
  }
6615
7134
  }
6616
7135
  //#endregion
6617
7136
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/nodes/YAMLMap.js
6618
- function po(e, t) {
7137
+ function mo(e, t) {
6619
7138
  let n = q(t) ? t.value : t;
6620
7139
  for (let r of e) if (K(r) && (r.key === t || r.key === n || q(r.key) && r.key.value === n)) return r;
6621
7140
  }
6622
- var $ = class extends Oa {
7141
+ var $ = class extends ka {
6623
7142
  static get tagName() {
6624
7143
  return "tag:yaml.org,2002:map";
6625
7144
  }
6626
7145
  constructor(e) {
6627
- super(Ki, e), this.items = [];
7146
+ super(qi, e), this.items = [];
6628
7147
  }
6629
7148
  static from(e, t, n) {
6630
7149
  let { keepUndefined: r, replacer: i } = n, a = new this(e), o = (e, o) => {
6631
7150
  if (typeof i == "function") o = i.call(t, e, o);
6632
7151
  else if (Array.isArray(i) && !i.includes(e)) return;
6633
- (o !== void 0 || r) && a.items.push(so(e, o, n));
7152
+ (o !== void 0 || r) && a.items.push(co(e, o, n));
6634
7153
  };
6635
7154
  if (t instanceof Map) for (let [e, n] of t) o(e, n);
6636
7155
  else if (t && typeof t == "object") for (let e of Object.keys(t)) o(e, t[e]);
@@ -6639,25 +7158,25 @@ var $ = class extends Oa {
6639
7158
  add(e, t) {
6640
7159
  let n;
6641
7160
  n = K(e) ? e : !e || typeof e != "object" || !("key" in e) ? new Q(e, e?.value) : new Q(e.key, e.value);
6642
- let r = po(this.items, n.key), i = this.schema?.sortMapEntries;
7161
+ let r = mo(this.items, n.key), i = this.schema?.sortMapEntries;
6643
7162
  if (r) {
6644
7163
  if (!t) throw Error(`Key ${n.key} already set`);
6645
- q(r.value) && Sa(n.value) ? r.value.value = n.value : r.value = n.value;
7164
+ q(r.value) && Ca(n.value) ? r.value.value = n.value : r.value = n.value;
6646
7165
  } else if (i) {
6647
7166
  let e = this.items.findIndex((e) => i(n, e) < 0);
6648
7167
  e === -1 ? this.items.push(n) : this.items.splice(e, 0, n);
6649
7168
  } else this.items.push(n);
6650
7169
  }
6651
7170
  delete(e) {
6652
- let t = po(this.items, e);
7171
+ let t = mo(this.items, e);
6653
7172
  return t ? this.items.splice(this.items.indexOf(t), 1).length > 0 : !1;
6654
7173
  }
6655
7174
  get(e, t) {
6656
- let n = po(this.items, e)?.value;
7175
+ let n = mo(this.items, e)?.value;
6657
7176
  return (!t && q(n) ? n.value : n) ?? void 0;
6658
7177
  }
6659
7178
  has(e) {
6660
- return !!po(this.items, e);
7179
+ return !!mo(this.items, e);
6661
7180
  }
6662
7181
  set(e, t) {
6663
7182
  this.add(new Q(e, t), !0);
@@ -6665,13 +7184,13 @@ var $ = class extends Oa {
6665
7184
  toJSON(e, t, n) {
6666
7185
  let r = n ? new n() : t?.mapAsMap ? /* @__PURE__ */ new Map() : {};
6667
7186
  t?.onCreate && t.onCreate(r);
6668
- for (let e of this.items) ao(t, r, e);
7187
+ for (let e of this.items) oo(t, r, e);
6669
7188
  return r;
6670
7189
  }
6671
7190
  toString(e, t, n) {
6672
7191
  if (!e) return JSON.stringify(this);
6673
7192
  for (let e of this.items) if (!K(e)) throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);
6674
- return !e.allNullValues && this.hasAllNullValues(!1) && (e = Object.assign({}, e, { allNullValues: !0 })), co(this, e, {
7193
+ return !e.allNullValues && this.hasAllNullValues(!1) && (e = Object.assign({}, e, { allNullValues: !0 })), lo(this, e, {
6675
7194
  blockItemPrefix: "",
6676
7195
  flowChars: {
6677
7196
  start: "{",
@@ -6682,54 +7201,54 @@ var $ = class extends Oa {
6682
7201
  onComment: t
6683
7202
  });
6684
7203
  }
6685
- }, mo = {
7204
+ }, ho = {
6686
7205
  collection: "map",
6687
7206
  default: !0,
6688
7207
  nodeClass: $,
6689
7208
  tag: "tag:yaml.org,2002:map",
6690
7209
  resolve(e, t) {
6691
- return Qi(e) || t("Expected a mapping for this tag"), e;
7210
+ return $i(e) || t("Expected a mapping for this tag"), e;
6692
7211
  },
6693
7212
  createNode: (e, t, n) => $.from(e, t, n)
6694
- }, ho = class extends Oa {
7213
+ }, go = class extends ka {
6695
7214
  static get tagName() {
6696
7215
  return "tag:yaml.org,2002:seq";
6697
7216
  }
6698
7217
  constructor(e) {
6699
- super(Yi, e), this.items = [];
7218
+ super(Xi, e), this.items = [];
6700
7219
  }
6701
7220
  add(e) {
6702
7221
  this.items.push(e);
6703
7222
  }
6704
7223
  delete(e) {
6705
- let t = go(e);
7224
+ let t = _o(e);
6706
7225
  return typeof t == "number" && this.items.splice(t, 1).length > 0;
6707
7226
  }
6708
7227
  get(e, t) {
6709
- let n = go(e);
7228
+ let n = _o(e);
6710
7229
  if (typeof n != "number") return;
6711
7230
  let r = this.items[n];
6712
7231
  return !t && q(r) ? r.value : r;
6713
7232
  }
6714
7233
  has(e) {
6715
- let t = go(e);
7234
+ let t = _o(e);
6716
7235
  return typeof t == "number" && t < this.items.length;
6717
7236
  }
6718
7237
  set(e, t) {
6719
- let n = go(e);
7238
+ let n = _o(e);
6720
7239
  if (typeof n != "number") throw Error(`Expected a valid index, not ${e}.`);
6721
7240
  let r = this.items[n];
6722
- q(r) && Sa(t) ? r.value = t : this.items[n] = t;
7241
+ q(r) && Ca(t) ? r.value = t : this.items[n] = t;
6723
7242
  }
6724
7243
  toJSON(e, t) {
6725
7244
  let n = [];
6726
7245
  t?.onCreate && t.onCreate(n);
6727
7246
  let r = 0;
6728
- for (let e of this.items) n.push(va(e, String(r++), t));
7247
+ for (let e of this.items) n.push(ya(e, String(r++), t));
6729
7248
  return n;
6730
7249
  }
6731
7250
  toString(e, t, n) {
6732
- return e ? co(this, e, {
7251
+ return e ? lo(this, e, {
6733
7252
  blockItemPrefix: "- ",
6734
7253
  flowChars: {
6735
7254
  start: "[",
@@ -6749,56 +7268,56 @@ var $ = class extends Oa {
6749
7268
  let n = t instanceof Set ? a : String(e++);
6750
7269
  a = r.call(t, n, a);
6751
7270
  }
6752
- i.items.push(Ta(a, void 0, n));
7271
+ i.items.push(Ea(a, void 0, n));
6753
7272
  }
6754
7273
  }
6755
7274
  return i;
6756
7275
  }
6757
7276
  };
6758
- function go(e) {
7277
+ function _o(e) {
6759
7278
  let t = q(e) ? e.value : e;
6760
7279
  return t && typeof t == "string" && (t = Number(t)), typeof t == "number" && Number.isInteger(t) && t >= 0 ? t : null;
6761
7280
  }
6762
7281
  //#endregion
6763
7282
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/common/seq.js
6764
- var _o = {
7283
+ var vo = {
6765
7284
  collection: "seq",
6766
7285
  default: !0,
6767
- nodeClass: ho,
7286
+ nodeClass: go,
6768
7287
  tag: "tag:yaml.org,2002:seq",
6769
7288
  resolve(e, t) {
6770
- return $i(e) || t("Expected a sequence for this tag"), e;
7289
+ return ea(e) || t("Expected a sequence for this tag"), e;
6771
7290
  },
6772
- createNode: (e, t, n) => ho.from(e, t, n)
6773
- }, vo = {
7291
+ createNode: (e, t, n) => go.from(e, t, n)
7292
+ }, yo = {
6774
7293
  identify: (e) => typeof e == "string",
6775
7294
  default: !0,
6776
7295
  tag: "tag:yaml.org,2002:str",
6777
7296
  resolve: (e) => e,
6778
7297
  stringify(e, t, n, r) {
6779
- return t = Object.assign({ actualString: !0 }, t), Ka(e, t, n, r);
7298
+ return t = Object.assign({ actualString: !0 }, t), qa(e, t, n, r);
6780
7299
  }
6781
- }, yo = {
7300
+ }, bo = {
6782
7301
  identify: (e) => e == null,
6783
7302
  createNode: () => new Z(null),
6784
7303
  default: !0,
6785
7304
  tag: "tag:yaml.org,2002:null",
6786
7305
  test: /^(?:~|[Nn]ull|NULL)?$/,
6787
7306
  resolve: () => new Z(null),
6788
- stringify: ({ source: e }, t) => typeof e == "string" && yo.test.test(e) ? e : t.options.nullStr
6789
- }, bo = {
7307
+ stringify: ({ source: e }, t) => typeof e == "string" && bo.test.test(e) ? e : t.options.nullStr
7308
+ }, xo = {
6790
7309
  identify: (e) => typeof e == "boolean",
6791
7310
  default: !0,
6792
7311
  tag: "tag:yaml.org,2002:bool",
6793
7312
  test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
6794
7313
  resolve: (e) => new Z(e[0] === "t" || e[0] === "T"),
6795
7314
  stringify({ source: e, value: t }, n) {
6796
- return e && bo.test.test(e) && t === (e[0] === "t" || e[0] === "T") ? e : t ? n.options.trueStr : n.options.falseStr;
7315
+ return e && xo.test.test(e) && t === (e[0] === "t" || e[0] === "T") ? e : t ? n.options.trueStr : n.options.falseStr;
6797
7316
  }
6798
7317
  };
6799
7318
  //#endregion
6800
7319
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyNumber.js
6801
- function xo({ format: e, minFractionDigits: t, tag: n, value: r }) {
7320
+ function So({ format: e, minFractionDigits: t, tag: n, value: r }) {
6802
7321
  if (typeof r == "bigint") return String(r);
6803
7322
  let i = typeof r == "number" ? r : Number(r);
6804
7323
  if (!isFinite(i)) return isNaN(i) ? ".nan" : i < 0 ? "-.inf" : ".inf";
@@ -6813,14 +7332,14 @@ function xo({ format: e, minFractionDigits: t, tag: n, value: r }) {
6813
7332
  }
6814
7333
  //#endregion
6815
7334
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/core/float.js
6816
- var So = {
7335
+ var Co = {
6817
7336
  identify: (e) => typeof e == "number",
6818
7337
  default: !0,
6819
7338
  tag: "tag:yaml.org,2002:float",
6820
7339
  test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
6821
7340
  resolve: (e) => e.slice(-3).toLowerCase() === "nan" ? NaN : e[0] === "-" ? -Infinity : Infinity,
6822
- stringify: xo
6823
- }, Co = {
7341
+ stringify: So
7342
+ }, wo = {
6824
7343
  identify: (e) => typeof e == "number",
6825
7344
  default: !0,
6826
7345
  tag: "tag:yaml.org,2002:float",
@@ -6829,9 +7348,9 @@ var So = {
6829
7348
  resolve: (e) => parseFloat(e),
6830
7349
  stringify(e) {
6831
7350
  let t = Number(e.value);
6832
- return isFinite(t) ? t.toExponential() : xo(e);
7351
+ return isFinite(t) ? t.toExponential() : So(e);
6833
7352
  }
6834
- }, wo = {
7353
+ }, To = {
6835
7354
  identify: (e) => typeof e == "number",
6836
7355
  default: !0,
6837
7356
  tag: "tag:yaml.org,2002:float",
@@ -6840,60 +7359,60 @@ var So = {
6840
7359
  let t = new Z(parseFloat(e)), n = e.indexOf(".");
6841
7360
  return n !== -1 && e[e.length - 1] === "0" && (t.minFractionDigits = e.length - n - 1), t;
6842
7361
  },
6843
- stringify: xo
6844
- }, To = (e) => typeof e == "bigint" || Number.isInteger(e), Eo = (e, t, n, { intAsBigInt: r }) => r ? BigInt(e) : parseInt(e.substring(t), n);
6845
- function Do(e, t, n) {
7362
+ stringify: So
7363
+ }, Eo = (e) => typeof e == "bigint" || Number.isInteger(e), Do = (e, t, n, { intAsBigInt: r }) => r ? BigInt(e) : parseInt(e.substring(t), n);
7364
+ function Oo(e, t, n) {
6846
7365
  let { value: r } = e;
6847
- return To(r) && r >= 0 ? n + r.toString(t) : xo(e);
7366
+ return Eo(r) && r >= 0 ? n + r.toString(t) : So(e);
6848
7367
  }
6849
- var Oo = {
6850
- identify: (e) => To(e) && e >= 0,
7368
+ var ko = {
7369
+ identify: (e) => Eo(e) && e >= 0,
6851
7370
  default: !0,
6852
7371
  tag: "tag:yaml.org,2002:int",
6853
7372
  format: "OCT",
6854
7373
  test: /^0o[0-7]+$/,
6855
- resolve: (e, t, n) => Eo(e, 2, 8, n),
6856
- stringify: (e) => Do(e, 8, "0o")
6857
- }, ko = {
6858
- identify: To,
7374
+ resolve: (e, t, n) => Do(e, 2, 8, n),
7375
+ stringify: (e) => Oo(e, 8, "0o")
7376
+ }, Ao = {
7377
+ identify: Eo,
6859
7378
  default: !0,
6860
7379
  tag: "tag:yaml.org,2002:int",
6861
7380
  test: /^[-+]?[0-9]+$/,
6862
- resolve: (e, t, n) => Eo(e, 0, 10, n),
6863
- stringify: xo
6864
- }, Ao = {
6865
- identify: (e) => To(e) && e >= 0,
7381
+ resolve: (e, t, n) => Do(e, 0, 10, n),
7382
+ stringify: So
7383
+ }, jo = {
7384
+ identify: (e) => Eo(e) && e >= 0,
6866
7385
  default: !0,
6867
7386
  tag: "tag:yaml.org,2002:int",
6868
7387
  format: "HEX",
6869
7388
  test: /^0x[0-9a-fA-F]+$/,
6870
- resolve: (e, t, n) => Eo(e, 2, 16, n),
6871
- stringify: (e) => Do(e, 16, "0x")
6872
- }, jo = [
6873
- mo,
6874
- _o,
7389
+ resolve: (e, t, n) => Do(e, 2, 16, n),
7390
+ stringify: (e) => Oo(e, 16, "0x")
7391
+ }, Mo = [
7392
+ ho,
6875
7393
  vo,
6876
7394
  yo,
6877
7395
  bo,
6878
- Oo,
7396
+ xo,
6879
7397
  ko,
6880
7398
  Ao,
6881
- So,
7399
+ jo,
6882
7400
  Co,
6883
- wo
7401
+ wo,
7402
+ To
6884
7403
  ];
6885
7404
  //#endregion
6886
7405
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/json/schema.js
6887
- function Mo(e) {
7406
+ function No(e) {
6888
7407
  return typeof e == "bigint" || Number.isInteger(e);
6889
7408
  }
6890
- var No = ({ value: e }) => JSON.stringify(e), Po = [
7409
+ var Po = ({ value: e }) => JSON.stringify(e), Fo = [
6891
7410
  {
6892
7411
  identify: (e) => typeof e == "string",
6893
7412
  default: !0,
6894
7413
  tag: "tag:yaml.org,2002:str",
6895
7414
  resolve: (e) => e,
6896
- stringify: No
7415
+ stringify: Po
6897
7416
  },
6898
7417
  {
6899
7418
  identify: (e) => e == null,
@@ -6902,7 +7421,7 @@ var No = ({ value: e }) => JSON.stringify(e), Po = [
6902
7421
  tag: "tag:yaml.org,2002:null",
6903
7422
  test: /^null$/,
6904
7423
  resolve: () => null,
6905
- stringify: No
7424
+ stringify: Po
6906
7425
  },
6907
7426
  {
6908
7427
  identify: (e) => typeof e == "boolean",
@@ -6910,15 +7429,15 @@ var No = ({ value: e }) => JSON.stringify(e), Po = [
6910
7429
  tag: "tag:yaml.org,2002:bool",
6911
7430
  test: /^true$|^false$/,
6912
7431
  resolve: (e) => e === "true",
6913
- stringify: No
7432
+ stringify: Po
6914
7433
  },
6915
7434
  {
6916
- identify: Mo,
7435
+ identify: No,
6917
7436
  default: !0,
6918
7437
  tag: "tag:yaml.org,2002:int",
6919
7438
  test: /^-?(?:0|[1-9][0-9]*)$/,
6920
7439
  resolve: (e, t, { intAsBigInt: n }) => n ? BigInt(e) : parseInt(e, 10),
6921
- stringify: ({ value: e }) => Mo(e) ? e.toString() : JSON.stringify(e)
7440
+ stringify: ({ value: e }) => No(e) ? e.toString() : JSON.stringify(e)
6922
7441
  },
6923
7442
  {
6924
7443
  identify: (e) => typeof e == "number",
@@ -6926,16 +7445,16 @@ var No = ({ value: e }) => JSON.stringify(e), Po = [
6926
7445
  tag: "tag:yaml.org,2002:float",
6927
7446
  test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
6928
7447
  resolve: (e) => parseFloat(e),
6929
- stringify: No
7448
+ stringify: Po
6930
7449
  }
6931
- ], Fo = [mo, _o].concat(Po, {
7450
+ ], Io = [ho, vo].concat(Fo, {
6932
7451
  default: !0,
6933
7452
  tag: "",
6934
7453
  test: /^/,
6935
7454
  resolve(e, t) {
6936
7455
  return t(`Unresolved plain scalar ${JSON.stringify(e)}`), e;
6937
7456
  }
6938
- }), Io = {
7457
+ }), Lo = {
6939
7458
  identify: (e) => e instanceof Uint8Array,
6940
7459
  default: !1,
6941
7460
  tag: "tag:yaml.org,2002:binary",
@@ -6960,7 +7479,7 @@ var No = ({ value: e }) => JSON.stringify(e), Po = [
6960
7479
  for (let t = 0, r = 0; t < n; ++t, r += e) i[t] = s.substr(r, e);
6961
7480
  s = i.join(t === Z.BLOCK_LITERAL ? "\n" : " ");
6962
7481
  }
6963
- return Ka({
7482
+ return qa({
6964
7483
  comment: e,
6965
7484
  type: t,
6966
7485
  value: s
@@ -6969,11 +7488,11 @@ var No = ({ value: e }) => JSON.stringify(e), Po = [
6969
7488
  };
6970
7489
  //#endregion
6971
7490
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js
6972
- function Lo(e, t) {
6973
- if ($i(e)) for (let n = 0; n < e.items.length; ++n) {
7491
+ function Ro(e, t) {
7492
+ if (ea(e)) for (let n = 0; n < e.items.length; ++n) {
6974
7493
  let r = e.items[n];
6975
7494
  if (!K(r)) {
6976
- if (Qi(r)) {
7495
+ if ($i(r)) {
6977
7496
  r.items.length > 1 && t("Each pair must have its own sequence indicator");
6978
7497
  let e = r.items[0] || new Q(new Z(null));
6979
7498
  if (r.commentBefore && (e.key.commentBefore = e.key.commentBefore ? `${r.commentBefore}\n${e.key.commentBefore}` : r.commentBefore), r.comment) {
@@ -6988,8 +7507,8 @@ function Lo(e, t) {
6988
7507
  else t("Expected a sequence for this tag");
6989
7508
  return e;
6990
7509
  }
6991
- function Ro(e, t, n) {
6992
- let { replacer: r } = n, i = new ho(e);
7510
+ function zo(e, t, n) {
7511
+ let { replacer: r } = n, i = new go(e);
6993
7512
  i.tag = "tag:yaml.org,2002:pairs";
6994
7513
  let a = 0;
6995
7514
  if (t && Symbol.iterator in Object(t)) for (let e of t) {
@@ -7003,17 +7522,17 @@ function Ro(e, t, n) {
7003
7522
  if (t.length === 1) o = t[0], s = e[o];
7004
7523
  else throw TypeError(`Expected tuple with one key, not ${t.length} keys`);
7005
7524
  } else o = e;
7006
- i.items.push(so(o, s, n));
7525
+ i.items.push(co(o, s, n));
7007
7526
  }
7008
7527
  return i;
7009
7528
  }
7010
- var zo = {
7529
+ var Bo = {
7011
7530
  collection: "seq",
7012
7531
  default: !1,
7013
7532
  tag: "tag:yaml.org,2002:pairs",
7014
- resolve: Lo,
7015
- createNode: Ro
7016
- }, Bo = class e extends ho {
7533
+ resolve: Ro,
7534
+ createNode: zo
7535
+ }, Vo = class e extends go {
7017
7536
  constructor() {
7018
7537
  super(), this.add = $.prototype.add.bind(this), this.delete = $.prototype.delete.bind(this), this.get = $.prototype.get.bind(this), this.has = $.prototype.has.bind(this), this.set = $.prototype.set.bind(this), this.tag = e.tag;
7019
7538
  }
@@ -7023,57 +7542,57 @@ var zo = {
7023
7542
  t?.onCreate && t.onCreate(n);
7024
7543
  for (let e of this.items) {
7025
7544
  let r, i;
7026
- if (K(e) ? (r = va(e.key, "", t), i = va(e.value, r, t)) : r = va(e, "", t), n.has(r)) throw Error("Ordered maps must not include duplicate keys");
7545
+ if (K(e) ? (r = ya(e.key, "", t), i = ya(e.value, r, t)) : r = ya(e, "", t), n.has(r)) throw Error("Ordered maps must not include duplicate keys");
7027
7546
  n.set(r, i);
7028
7547
  }
7029
7548
  return n;
7030
7549
  }
7031
7550
  static from(e, t, n) {
7032
- let r = Ro(e, t, n), i = new this();
7551
+ let r = zo(e, t, n), i = new this();
7033
7552
  return i.items = r.items, i;
7034
7553
  }
7035
7554
  };
7036
- Bo.tag = "tag:yaml.org,2002:omap";
7037
- var Vo = {
7555
+ Vo.tag = "tag:yaml.org,2002:omap";
7556
+ var Ho = {
7038
7557
  collection: "seq",
7039
7558
  identify: (e) => e instanceof Map,
7040
- nodeClass: Bo,
7559
+ nodeClass: Vo,
7041
7560
  default: !1,
7042
7561
  tag: "tag:yaml.org,2002:omap",
7043
7562
  resolve(e, t) {
7044
- let n = Lo(e, t), r = [];
7563
+ let n = Ro(e, t), r = [];
7045
7564
  for (let { key: e } of n.items) q(e) && (r.includes(e.value) ? t(`Ordered maps must not include duplicate keys: ${e.value}`) : r.push(e.value));
7046
- return Object.assign(new Bo(), n);
7565
+ return Object.assign(new Vo(), n);
7047
7566
  },
7048
- createNode: (e, t, n) => Bo.from(e, t, n)
7567
+ createNode: (e, t, n) => Vo.from(e, t, n)
7049
7568
  };
7050
7569
  //#endregion
7051
7570
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js
7052
- function Ho({ value: e, source: t }, n) {
7053
- return t && (e ? Uo : Wo).test.test(t) ? t : e ? n.options.trueStr : n.options.falseStr;
7571
+ function Uo({ value: e, source: t }, n) {
7572
+ return t && (e ? Wo : Go).test.test(t) ? t : e ? n.options.trueStr : n.options.falseStr;
7054
7573
  }
7055
- var Uo = {
7574
+ var Wo = {
7056
7575
  identify: (e) => e === !0,
7057
7576
  default: !0,
7058
7577
  tag: "tag:yaml.org,2002:bool",
7059
7578
  test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
7060
7579
  resolve: () => new Z(!0),
7061
- stringify: Ho
7062
- }, Wo = {
7580
+ stringify: Uo
7581
+ }, Go = {
7063
7582
  identify: (e) => e === !1,
7064
7583
  default: !0,
7065
7584
  tag: "tag:yaml.org,2002:bool",
7066
7585
  test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
7067
7586
  resolve: () => new Z(!1),
7068
- stringify: Ho
7069
- }, Go = {
7587
+ stringify: Uo
7588
+ }, Ko = {
7070
7589
  identify: (e) => typeof e == "number",
7071
7590
  default: !0,
7072
7591
  tag: "tag:yaml.org,2002:float",
7073
7592
  test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
7074
7593
  resolve: (e) => e.slice(-3).toLowerCase() === "nan" ? NaN : e[0] === "-" ? -Infinity : Infinity,
7075
- stringify: xo
7076
- }, Ko = {
7594
+ stringify: So
7595
+ }, qo = {
7077
7596
  identify: (e) => typeof e == "number",
7078
7597
  default: !0,
7079
7598
  tag: "tag:yaml.org,2002:float",
@@ -7082,9 +7601,9 @@ var Uo = {
7082
7601
  resolve: (e) => parseFloat(e.replace(/_/g, "")),
7083
7602
  stringify(e) {
7084
7603
  let t = Number(e.value);
7085
- return isFinite(t) ? t.toExponential() : xo(e);
7604
+ return isFinite(t) ? t.toExponential() : So(e);
7086
7605
  }
7087
- }, qo = {
7606
+ }, Jo = {
7088
7607
  identify: (e) => typeof e == "number",
7089
7608
  default: !0,
7090
7609
  tag: "tag:yaml.org,2002:float",
@@ -7097,9 +7616,9 @@ var Uo = {
7097
7616
  }
7098
7617
  return t;
7099
7618
  },
7100
- stringify: xo
7101
- }, Jo = (e) => typeof e == "bigint" || Number.isInteger(e);
7102
- function Yo(e, t, n, { intAsBigInt: r }) {
7619
+ stringify: So
7620
+ }, Yo = (e) => typeof e == "bigint" || Number.isInteger(e);
7621
+ function Xo(e, t, n, { intAsBigInt: r }) {
7103
7622
  let i = e[0];
7104
7623
  if ((i === "-" || i === "+") && (t += 1), e = e.substring(t).replace(/_/g, ""), r) {
7105
7624
  switch (n) {
@@ -7117,60 +7636,60 @@ function Yo(e, t, n, { intAsBigInt: r }) {
7117
7636
  let a = parseInt(e, n);
7118
7637
  return i === "-" ? -1 * a : a;
7119
7638
  }
7120
- function Xo(e, t, n) {
7639
+ function Zo(e, t, n) {
7121
7640
  let { value: r } = e;
7122
- if (Jo(r)) {
7641
+ if (Yo(r)) {
7123
7642
  let e = r.toString(t);
7124
7643
  return r < 0 ? "-" + n + e.substr(1) : n + e;
7125
7644
  }
7126
- return xo(e);
7645
+ return So(e);
7127
7646
  }
7128
- var Zo = {
7129
- identify: Jo,
7647
+ var Qo = {
7648
+ identify: Yo,
7130
7649
  default: !0,
7131
7650
  tag: "tag:yaml.org,2002:int",
7132
7651
  format: "BIN",
7133
7652
  test: /^[-+]?0b[0-1_]+$/,
7134
- resolve: (e, t, n) => Yo(e, 2, 2, n),
7135
- stringify: (e) => Xo(e, 2, "0b")
7136
- }, Qo = {
7137
- identify: Jo,
7653
+ resolve: (e, t, n) => Xo(e, 2, 2, n),
7654
+ stringify: (e) => Zo(e, 2, "0b")
7655
+ }, $o = {
7656
+ identify: Yo,
7138
7657
  default: !0,
7139
7658
  tag: "tag:yaml.org,2002:int",
7140
7659
  format: "OCT",
7141
7660
  test: /^[-+]?0[0-7_]+$/,
7142
- resolve: (e, t, n) => Yo(e, 1, 8, n),
7143
- stringify: (e) => Xo(e, 8, "0")
7144
- }, $o = {
7145
- identify: Jo,
7661
+ resolve: (e, t, n) => Xo(e, 1, 8, n),
7662
+ stringify: (e) => Zo(e, 8, "0")
7663
+ }, es = {
7664
+ identify: Yo,
7146
7665
  default: !0,
7147
7666
  tag: "tag:yaml.org,2002:int",
7148
7667
  test: /^[-+]?[0-9][0-9_]*$/,
7149
- resolve: (e, t, n) => Yo(e, 0, 10, n),
7150
- stringify: xo
7151
- }, es = {
7152
- identify: Jo,
7668
+ resolve: (e, t, n) => Xo(e, 0, 10, n),
7669
+ stringify: So
7670
+ }, ts = {
7671
+ identify: Yo,
7153
7672
  default: !0,
7154
7673
  tag: "tag:yaml.org,2002:int",
7155
7674
  format: "HEX",
7156
7675
  test: /^[-+]?0x[0-9a-fA-F_]+$/,
7157
- resolve: (e, t, n) => Yo(e, 2, 16, n),
7158
- stringify: (e) => Xo(e, 16, "0x")
7159
- }, ts = class e extends $ {
7676
+ resolve: (e, t, n) => Xo(e, 2, 16, n),
7677
+ stringify: (e) => Zo(e, 16, "0x")
7678
+ }, ns = class e extends $ {
7160
7679
  constructor(t) {
7161
7680
  super(t), this.tag = e.tag;
7162
7681
  }
7163
7682
  add(e) {
7164
7683
  let t;
7165
- t = K(e) ? e : e && typeof e == "object" && "key" in e && "value" in e && e.value === null ? new Q(e.key, null) : new Q(e, null), po(this.items, t.key) || this.items.push(t);
7684
+ t = K(e) ? e : e && typeof e == "object" && "key" in e && "value" in e && e.value === null ? new Q(e.key, null) : new Q(e, null), mo(this.items, t.key) || this.items.push(t);
7166
7685
  }
7167
7686
  get(e, t) {
7168
- let n = po(this.items, e);
7687
+ let n = mo(this.items, e);
7169
7688
  return !t && K(n) ? q(n.key) ? n.key.value : n.key : n;
7170
7689
  }
7171
7690
  set(e, t) {
7172
7691
  if (typeof t != "boolean") throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);
7173
- let n = po(this.items, e);
7692
+ let n = mo(this.items, e);
7174
7693
  n && !t ? this.items.splice(this.items.indexOf(n), 1) : !n && t && this.items.push(new Q(e));
7175
7694
  }
7176
7695
  toJSON(e, t) {
@@ -7183,21 +7702,21 @@ var Zo = {
7183
7702
  }
7184
7703
  static from(e, t, n) {
7185
7704
  let { replacer: r } = n, i = new this(e);
7186
- if (t && Symbol.iterator in Object(t)) for (let e of t) typeof r == "function" && (e = r.call(t, e, e)), i.items.push(so(e, null, n));
7705
+ if (t && Symbol.iterator in Object(t)) for (let e of t) typeof r == "function" && (e = r.call(t, e, e)), i.items.push(co(e, null, n));
7187
7706
  return i;
7188
7707
  }
7189
7708
  };
7190
- ts.tag = "tag:yaml.org,2002:set";
7191
- var ns = {
7709
+ ns.tag = "tag:yaml.org,2002:set";
7710
+ var rs = {
7192
7711
  collection: "map",
7193
7712
  identify: (e) => e instanceof Set,
7194
- nodeClass: ts,
7713
+ nodeClass: ns,
7195
7714
  default: !1,
7196
7715
  tag: "tag:yaml.org,2002:set",
7197
- createNode: (e, t, n) => ts.from(e, t, n),
7716
+ createNode: (e, t, n) => ns.from(e, t, n),
7198
7717
  resolve(e, t) {
7199
- if (Qi(e)) {
7200
- if (e.hasAllNullValues(!0)) return Object.assign(new ts(), e);
7718
+ if ($i(e)) {
7719
+ if (e.hasAllNullValues(!0)) return Object.assign(new ns(), e);
7201
7720
  t("Set items must all have null values");
7202
7721
  } else t("Expected a mapping for this tag");
7203
7722
  return e;
@@ -7205,127 +7724,127 @@ var ns = {
7205
7724
  };
7206
7725
  //#endregion
7207
7726
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js
7208
- function rs(e, t) {
7727
+ function is(e, t) {
7209
7728
  let n = e[0], r = n === "-" || n === "+" ? e.substring(1) : e, i = (e) => t ? BigInt(e) : Number(e), a = r.replace(/_/g, "").split(":").reduce((e, t) => e * i(60) + i(t), i(0));
7210
7729
  return n === "-" ? i(-1) * a : a;
7211
7730
  }
7212
- function is(e) {
7731
+ function as(e) {
7213
7732
  let { value: t } = e, n = (e) => e;
7214
7733
  if (typeof t == "bigint") n = (e) => BigInt(e);
7215
- else if (isNaN(t) || !isFinite(t)) return xo(e);
7734
+ else if (isNaN(t) || !isFinite(t)) return So(e);
7216
7735
  let r = "";
7217
7736
  t < 0 && (r = "-", t *= n(-1));
7218
7737
  let i = n(60), a = [t % i];
7219
7738
  return t < 60 ? a.unshift(0) : (t = (t - a[0]) / i, a.unshift(t % i), t >= 60 && (t = (t - a[0]) / i, a.unshift(t))), r + a.map((e) => String(e).padStart(2, "0")).join(":").replace(/000000\d*$/, "");
7220
7739
  }
7221
- var as = {
7740
+ var os = {
7222
7741
  identify: (e) => typeof e == "bigint" || Number.isInteger(e),
7223
7742
  default: !0,
7224
7743
  tag: "tag:yaml.org,2002:int",
7225
7744
  format: "TIME",
7226
7745
  test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,
7227
- resolve: (e, t, { intAsBigInt: n }) => rs(e, n),
7228
- stringify: is
7229
- }, os = {
7746
+ resolve: (e, t, { intAsBigInt: n }) => is(e, n),
7747
+ stringify: as
7748
+ }, ss = {
7230
7749
  identify: (e) => typeof e == "number",
7231
7750
  default: !0,
7232
7751
  tag: "tag:yaml.org,2002:float",
7233
7752
  format: "TIME",
7234
7753
  test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,
7235
- resolve: (e) => rs(e, !1),
7236
- stringify: is
7237
- }, ss = {
7754
+ resolve: (e) => is(e, !1),
7755
+ stringify: as
7756
+ }, cs = {
7238
7757
  identify: (e) => e instanceof Date,
7239
7758
  default: !0,
7240
7759
  tag: "tag:yaml.org,2002:timestamp",
7241
7760
  test: RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),
7242
7761
  resolve(e) {
7243
- let t = e.match(ss.test);
7762
+ let t = e.match(cs.test);
7244
7763
  if (!t) throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");
7245
7764
  let [, n, r, i, a, o, s] = t.map(Number), c = t[7] ? Number((t[7] + "00").substr(1, 3)) : 0, l = Date.UTC(n, r - 1, i, a || 0, o || 0, s || 0, c), u = t[8];
7246
7765
  if (u && u !== "Z") {
7247
- let e = rs(u, !1);
7766
+ let e = is(u, !1);
7248
7767
  Math.abs(e) < 30 && (e *= 60), l -= 6e4 * e;
7249
7768
  }
7250
7769
  return new Date(l);
7251
7770
  },
7252
7771
  stringify: ({ value: e }) => e?.toISOString().replace(/(T00:00:00)?\.000Z$/, "") ?? ""
7253
- }, cs = [
7254
- mo,
7255
- _o,
7772
+ }, ls = [
7773
+ ho,
7256
7774
  vo,
7257
7775
  yo,
7258
- Uo,
7776
+ bo,
7259
7777
  Wo,
7260
- Zo,
7778
+ Go,
7261
7779
  Qo,
7262
7780
  $o,
7263
7781
  es,
7264
- Go,
7782
+ ts,
7265
7783
  Ko,
7266
7784
  qo,
7267
- Io,
7268
- eo,
7269
- Vo,
7270
- zo,
7271
- ns,
7272
- as,
7785
+ Jo,
7786
+ Lo,
7787
+ to,
7788
+ Ho,
7789
+ Bo,
7790
+ rs,
7273
7791
  os,
7274
- ss
7275
- ], ls = /* @__PURE__ */ new Map([
7276
- ["core", jo],
7792
+ ss,
7793
+ cs
7794
+ ], us = /* @__PURE__ */ new Map([
7795
+ ["core", Mo],
7277
7796
  ["failsafe", [
7278
- mo,
7279
- _o,
7280
- vo
7797
+ ho,
7798
+ vo,
7799
+ yo
7281
7800
  ]],
7282
- ["json", Fo],
7283
- ["yaml11", cs],
7284
- ["yaml-1.1", cs]
7285
- ]), us = {
7286
- binary: Io,
7287
- bool: bo,
7288
- float: wo,
7289
- floatExp: Co,
7290
- floatNaN: So,
7291
- floatTime: os,
7292
- int: ko,
7293
- intHex: Ao,
7294
- intOct: Oo,
7295
- intTime: as,
7296
- map: mo,
7297
- merge: eo,
7298
- null: yo,
7299
- omap: Vo,
7300
- pairs: zo,
7301
- seq: _o,
7302
- set: ns,
7303
- timestamp: ss
7304
- }, ds = {
7305
- "tag:yaml.org,2002:binary": Io,
7306
- "tag:yaml.org,2002:merge": eo,
7307
- "tag:yaml.org,2002:omap": Vo,
7308
- "tag:yaml.org,2002:pairs": zo,
7309
- "tag:yaml.org,2002:set": ns,
7310
- "tag:yaml.org,2002:timestamp": ss
7801
+ ["json", Io],
7802
+ ["yaml11", ls],
7803
+ ["yaml-1.1", ls]
7804
+ ]), ds = {
7805
+ binary: Lo,
7806
+ bool: xo,
7807
+ float: To,
7808
+ floatExp: wo,
7809
+ floatNaN: Co,
7810
+ floatTime: ss,
7811
+ int: Ao,
7812
+ intHex: jo,
7813
+ intOct: ko,
7814
+ intTime: os,
7815
+ map: ho,
7816
+ merge: to,
7817
+ null: bo,
7818
+ omap: Ho,
7819
+ pairs: Bo,
7820
+ seq: vo,
7821
+ set: rs,
7822
+ timestamp: cs
7823
+ }, fs = {
7824
+ "tag:yaml.org,2002:binary": Lo,
7825
+ "tag:yaml.org,2002:merge": to,
7826
+ "tag:yaml.org,2002:omap": Ho,
7827
+ "tag:yaml.org,2002:pairs": Bo,
7828
+ "tag:yaml.org,2002:set": rs,
7829
+ "tag:yaml.org,2002:timestamp": cs
7311
7830
  };
7312
- function fs(e, t, n) {
7313
- let r = ls.get(t);
7314
- if (r && !e) return n && !r.includes(eo) ? r.concat(eo) : r.slice();
7831
+ function ps(e, t, n) {
7832
+ let r = us.get(t);
7833
+ if (r && !e) return n && !r.includes(to) ? r.concat(to) : r.slice();
7315
7834
  let i = r;
7316
7835
  if (!i) {
7317
7836
  if (Array.isArray(e)) i = [];
7318
7837
  else {
7319
- let e = Array.from(ls.keys()).filter((e) => e !== "yaml11").map((e) => JSON.stringify(e)).join(", ");
7838
+ let e = Array.from(us.keys()).filter((e) => e !== "yaml11").map((e) => JSON.stringify(e)).join(", ");
7320
7839
  throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`);
7321
7840
  }
7322
7841
  }
7323
7842
  if (Array.isArray(e)) for (let t of e) i = i.concat(t);
7324
7843
  else typeof e == "function" && (i = e(i.slice()));
7325
- return n && (i = i.concat(eo)), i.reduce((e, t) => {
7326
- let n = typeof t == "string" ? us[t] : t;
7844
+ return n && (i = i.concat(to)), i.reduce((e, t) => {
7845
+ let n = typeof t == "string" ? ds[t] : t;
7327
7846
  if (!n) {
7328
- let e = JSON.stringify(t), n = Object.keys(us).map((e) => JSON.stringify(e)).join(", ");
7847
+ let e = JSON.stringify(t), n = Object.keys(ds).map((e) => JSON.stringify(e)).join(", ");
7329
7848
  throw Error(`Unknown custom tag ${e}; use one of ${n}`);
7330
7849
  }
7331
7850
  return e.includes(n) || e.push(n), e;
@@ -7333,9 +7852,9 @@ function fs(e, t, n) {
7333
7852
  }
7334
7853
  //#endregion
7335
7854
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/schema/Schema.js
7336
- var ps = (e, t) => e.key < t.key ? -1 : +(e.key > t.key), ms = class e {
7855
+ var ms = (e, t) => e.key < t.key ? -1 : +(e.key > t.key), hs = class e {
7337
7856
  constructor({ compat: e, customTags: t, merge: n, resolveKnownTags: r, schema: i, sortMapEntries: a, toStringDefaults: o }) {
7338
- this.compat = Array.isArray(e) ? fs(e, "compat") : e ? fs(null, e) : null, this.name = typeof i == "string" && i || "core", this.knownTags = r ? ds : {}, this.tags = fs(t, this.name, n), this.toStringOptions = o ?? null, Object.defineProperty(this, Ki, { value: mo }), Object.defineProperty(this, Ji, { value: vo }), Object.defineProperty(this, Yi, { value: _o }), this.sortMapEntries = typeof a == "function" ? a : a === !0 ? ps : null;
7857
+ this.compat = Array.isArray(e) ? ps(e, "compat") : e ? ps(null, e) : null, this.name = typeof i == "string" && i || "core", this.knownTags = r ? fs : {}, this.tags = ps(t, this.name, n), this.toStringOptions = o ?? null, Object.defineProperty(this, qi, { value: ho }), Object.defineProperty(this, Yi, { value: yo }), Object.defineProperty(this, Xi, { value: vo }), this.sortMapEntries = typeof a == "function" ? a : a === !0 ? ms : null;
7339
7858
  }
7340
7859
  clone() {
7341
7860
  let t = Object.create(e.prototype, Object.getOwnPropertyDescriptors(this));
@@ -7344,47 +7863,47 @@ var ps = (e, t) => e.key < t.key ? -1 : +(e.key > t.key), ms = class e {
7344
7863
  };
7345
7864
  //#endregion
7346
7865
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/stringify/stringifyDocument.js
7347
- function hs(e, t) {
7866
+ function gs(e, t) {
7348
7867
  let n = [], r = t.directives === !0;
7349
7868
  if (t.directives !== !1 && e.directives) {
7350
7869
  let t = e.directives.toString(e);
7351
7870
  t ? (n.push(t), r = !0) : e.directives.docStart && (r = !0);
7352
7871
  }
7353
7872
  r && n.push("---");
7354
- let i = qa(e, t), { commentString: a } = i.options;
7873
+ let i = Ja(e, t), { commentString: a } = i.options;
7355
7874
  if (e.commentBefore) {
7356
7875
  n.length !== 1 && n.unshift("");
7357
7876
  let t = a(e.commentBefore);
7358
- n.unshift(Aa(t, ""));
7877
+ n.unshift(ja(t, ""));
7359
7878
  }
7360
7879
  let o = !1, s = null;
7361
7880
  if (e.contents) {
7362
7881
  if (Y(e.contents)) {
7363
7882
  if (e.contents.spaceBefore && r && n.push(""), e.contents.commentBefore) {
7364
7883
  let t = a(e.contents.commentBefore);
7365
- n.push(Aa(t, ""));
7884
+ n.push(ja(t, ""));
7366
7885
  }
7367
7886
  i.forceBlockIndent = !!e.comment, s = e.contents.comment;
7368
7887
  }
7369
- let t = s ? void 0 : () => o = !0, c = Xa(e.contents, i, () => s = null, t);
7370
- s && (c += ja(c, "", a(s))), (c[0] === "|" || c[0] === ">") && n[n.length - 1] === "---" ? n[n.length - 1] = `--- ${c}` : n.push(c);
7371
- } else n.push(Xa(e.contents, i));
7888
+ let t = s ? void 0 : () => o = !0, c = Za(e.contents, i, () => s = null, t);
7889
+ s && (c += Ma(c, "", a(s))), (c[0] === "|" || c[0] === ">") && n[n.length - 1] === "---" ? n[n.length - 1] = `--- ${c}` : n.push(c);
7890
+ } else n.push(Za(e.contents, i));
7372
7891
  if (e.directives?.docEnd) {
7373
7892
  if (e.comment) {
7374
7893
  let t = a(e.comment);
7375
- t.includes("\n") ? (n.push("..."), n.push(Aa(t, ""))) : n.push(`... ${t}`);
7894
+ t.includes("\n") ? (n.push("..."), n.push(ja(t, ""))) : n.push(`... ${t}`);
7376
7895
  } else n.push("...");
7377
7896
  } else {
7378
7897
  let t = e.comment;
7379
- t && o && (t = t.replace(/^\n+/, "")), t && ((!o || s) && n[n.length - 1] !== "" && n.push(""), n.push(Aa(a(t), "")));
7898
+ t && o && (t = t.replace(/^\n+/, "")), t && ((!o || s) && n[n.length - 1] !== "" && n.push(""), n.push(ja(a(t), "")));
7380
7899
  }
7381
7900
  return n.join("\n") + "\n";
7382
7901
  }
7383
7902
  //#endregion
7384
7903
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/doc/Document.js
7385
- var gs = class e {
7904
+ var _s = class e {
7386
7905
  constructor(e, t, n) {
7387
- this.commentBefore = null, this.comment = null, this.errors = [], this.warnings = [], Object.defineProperty(this, G, { value: Gi });
7906
+ this.commentBefore = null, this.comment = null, this.errors = [], this.warnings = [], Object.defineProperty(this, G, { value: Ki });
7388
7907
  let r = null;
7389
7908
  typeof t == "function" || Array.isArray(t) ? r = t : n === void 0 && t && (n = t, t = void 0);
7390
7909
  let i = Object.assign({
@@ -7399,24 +7918,24 @@ var gs = class e {
7399
7918
  }, n);
7400
7919
  this.options = i;
7401
7920
  let { version: a } = i;
7402
- n?._directives ? (this.directives = n._directives.atDocument(), this.directives.yaml.explicit && (a = this.directives.yaml.version)) : this.directives = new fa({ version: a }), this.setSchema(a, n), this.contents = e === void 0 ? null : this.createNode(e, r, n);
7921
+ n?._directives ? (this.directives = n._directives.atDocument(), this.directives.yaml.explicit && (a = this.directives.yaml.version)) : this.directives = new pa({ version: a }), this.setSchema(a, n), this.contents = e === void 0 ? null : this.createNode(e, r, n);
7403
7922
  }
7404
7923
  clone() {
7405
- let t = Object.create(e.prototype, { [G]: { value: Gi } });
7924
+ let t = Object.create(e.prototype, { [G]: { value: Ki } });
7406
7925
  return t.commentBefore = this.commentBefore, t.comment = this.comment, t.errors = this.errors.slice(), t.warnings = this.warnings.slice(), t.options = Object.assign({}, this.options), this.directives && (t.directives = this.directives.clone()), t.schema = this.schema.clone(), t.contents = Y(this.contents) ? this.contents.clone(t.schema) : this.contents, this.range && (t.range = this.range.slice()), t;
7407
7926
  }
7408
7927
  add(e) {
7409
- _s(this.contents) && this.contents.add(e);
7928
+ vs(this.contents) && this.contents.add(e);
7410
7929
  }
7411
7930
  addIn(e, t) {
7412
- _s(this.contents) && this.contents.addIn(e, t);
7931
+ vs(this.contents) && this.contents.addIn(e, t);
7413
7932
  }
7414
7933
  createAlias(e, t) {
7415
7934
  if (!e.anchor) {
7416
- let n = ma(this);
7417
- e.anchor = !t || n.has(t) ? ha(t || "a", n) : t;
7935
+ let n = ha(this);
7936
+ e.anchor = !t || n.has(t) ? ga(t || "a", n) : t;
7418
7937
  }
7419
- return new ba(e.anchor);
7938
+ return new xa(e.anchor);
7420
7939
  }
7421
7940
  createNode(e, t, n) {
7422
7941
  let r;
@@ -7425,7 +7944,7 @@ var gs = class e {
7425
7944
  let e = t.filter((e) => typeof e == "number" || e instanceof String || e instanceof Number).map(String);
7426
7945
  e.length > 0 && (t = t.concat(e)), r = t;
7427
7946
  } else n === void 0 && t && (n = t, t = void 0);
7428
- let { aliasDuplicateObjects: i, anchorPrefix: a, flow: o, keepUndefined: s, onTagObj: c, tag: l } = n ?? {}, { onAnchor: u, setAnchors: d, sourceObjects: f } = ga(this, a || "a"), p = {
7947
+ let { aliasDuplicateObjects: i, anchorPrefix: a, flow: o, keepUndefined: s, onTagObj: c, tag: l } = n ?? {}, { onAnchor: u, setAnchors: d, sourceObjects: f } = _a(this, a || "a"), p = {
7429
7948
  aliasDuplicateObjects: i ?? !0,
7430
7949
  keepUndefined: s ?? !1,
7431
7950
  onAnchor: u,
@@ -7433,49 +7952,49 @@ var gs = class e {
7433
7952
  replacer: r,
7434
7953
  schema: this.schema,
7435
7954
  sourceObjects: f
7436
- }, m = Ta(e, l, p);
7955
+ }, m = Ea(e, l, p);
7437
7956
  return o && J(m) && (m.flow = !0), d(), m;
7438
7957
  }
7439
7958
  createPair(e, t, n = {}) {
7440
7959
  return new Q(this.createNode(e, null, n), this.createNode(t, null, n));
7441
7960
  }
7442
7961
  delete(e) {
7443
- return _s(this.contents) ? this.contents.delete(e) : !1;
7962
+ return vs(this.contents) ? this.contents.delete(e) : !1;
7444
7963
  }
7445
7964
  deleteIn(e) {
7446
- return Da(e) ? this.contents != null && (this.contents = null, !0) : _s(this.contents) ? this.contents.deleteIn(e) : !1;
7965
+ return Oa(e) ? this.contents != null && (this.contents = null, !0) : vs(this.contents) ? this.contents.deleteIn(e) : !1;
7447
7966
  }
7448
7967
  get(e, t) {
7449
7968
  return J(this.contents) ? this.contents.get(e, t) : void 0;
7450
7969
  }
7451
7970
  getIn(e, t) {
7452
- return Da(e) ? !t && q(this.contents) ? this.contents.value : this.contents : J(this.contents) ? this.contents.getIn(e, t) : void 0;
7971
+ return Oa(e) ? !t && q(this.contents) ? this.contents.value : this.contents : J(this.contents) ? this.contents.getIn(e, t) : void 0;
7453
7972
  }
7454
7973
  has(e) {
7455
7974
  return J(this.contents) ? this.contents.has(e) : !1;
7456
7975
  }
7457
7976
  hasIn(e) {
7458
- return Da(e) ? this.contents !== void 0 : J(this.contents) ? this.contents.hasIn(e) : !1;
7977
+ return Oa(e) ? this.contents !== void 0 : J(this.contents) ? this.contents.hasIn(e) : !1;
7459
7978
  }
7460
7979
  set(e, t) {
7461
- this.contents == null ? this.contents = Ea(this.schema, [e], t) : _s(this.contents) && this.contents.set(e, t);
7980
+ this.contents == null ? this.contents = Da(this.schema, [e], t) : vs(this.contents) && this.contents.set(e, t);
7462
7981
  }
7463
7982
  setIn(e, t) {
7464
- Da(e) ? this.contents = t : this.contents == null ? this.contents = Ea(this.schema, Array.from(e), t) : _s(this.contents) && this.contents.setIn(e, t);
7983
+ Oa(e) ? this.contents = t : this.contents == null ? this.contents = Da(this.schema, Array.from(e), t) : vs(this.contents) && this.contents.setIn(e, t);
7465
7984
  }
7466
7985
  setSchema(e, t = {}) {
7467
7986
  typeof e == "number" && (e = String(e));
7468
7987
  let n;
7469
7988
  switch (e) {
7470
7989
  case "1.1":
7471
- this.directives ? this.directives.yaml.version = "1.1" : this.directives = new fa({ version: "1.1" }), n = {
7990
+ this.directives ? this.directives.yaml.version = "1.1" : this.directives = new pa({ version: "1.1" }), n = {
7472
7991
  resolveKnownTags: !1,
7473
7992
  schema: "yaml-1.1"
7474
7993
  };
7475
7994
  break;
7476
7995
  case "1.2":
7477
7996
  case "next":
7478
- this.directives ? this.directives.yaml.version = e : this.directives = new fa({ version: e }), n = {
7997
+ this.directives ? this.directives.yaml.version = e : this.directives = new pa({ version: e }), n = {
7479
7998
  resolveKnownTags: !0,
7480
7999
  schema: "core"
7481
8000
  };
@@ -7489,7 +8008,7 @@ var gs = class e {
7489
8008
  }
7490
8009
  }
7491
8010
  if (t.schema instanceof Object) this.schema = t.schema;
7492
- else if (n) this.schema = new ms(Object.assign(n, t));
8011
+ else if (n) this.schema = new hs(Object.assign(n, t));
7493
8012
  else throw Error("With a null YAML version, the { schema: Schema } option is required");
7494
8013
  }
7495
8014
  toJS({ json: e, jsonArg: t, mapAsMap: n, maxAliasCount: r, onAnchor: i, reviver: a } = {}) {
@@ -7500,9 +8019,9 @@ var gs = class e {
7500
8019
  mapAsMap: n === !0,
7501
8020
  mapKeyWarned: !1,
7502
8021
  maxAliasCount: typeof r == "number" ? r : 100
7503
- }, s = va(this.contents, t ?? "", o);
8022
+ }, s = ya(this.contents, t ?? "", o);
7504
8023
  if (typeof i == "function") for (let { count: e, res: t } of o.anchors.values()) i(t, e);
7505
- return typeof a == "function" ? _a(a, { "": s }, "", s) : s;
8024
+ return typeof a == "function" ? va(a, { "": s }, "", s) : s;
7506
8025
  }
7507
8026
  toJSON(e, t) {
7508
8027
  return this.toJS({
@@ -7518,28 +8037,28 @@ var gs = class e {
7518
8037
  let t = JSON.stringify(e.indent);
7519
8038
  throw Error(`"indent" option must be a positive integer, not ${t}`);
7520
8039
  }
7521
- return hs(this, e);
8040
+ return gs(this, e);
7522
8041
  }
7523
8042
  };
7524
- function _s(e) {
8043
+ function vs(e) {
7525
8044
  if (J(e)) return !0;
7526
8045
  throw Error("Expected a YAML collection as document contents");
7527
8046
  }
7528
8047
  //#endregion
7529
8048
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/errors.js
7530
- var vs = class extends Error {
8049
+ var ys = class extends Error {
7531
8050
  constructor(e, t, n, r) {
7532
8051
  super(), this.name = e, this.code = n, this.message = r, this.pos = t;
7533
8052
  }
7534
- }, ys = class extends vs {
8053
+ }, bs = class extends ys {
7535
8054
  constructor(e, t, n) {
7536
8055
  super("YAMLParseError", e, t, n);
7537
8056
  }
7538
- }, bs = class extends vs {
8057
+ }, xs = class extends ys {
7539
8058
  constructor(e, t, n) {
7540
8059
  super("YAMLWarning", e, t, n);
7541
8060
  }
7542
- }, xs = (e, t) => (n) => {
8061
+ }, Ss = (e, t) => (n) => {
7543
8062
  if (n.pos[0] === -1) return;
7544
8063
  n.linePos = n.pos.map((e) => t.linePos(e));
7545
8064
  let { line: r, col: i } = n.linePos[0];
@@ -7562,7 +8081,7 @@ var vs = class extends Error {
7562
8081
  };
7563
8082
  //#endregion
7564
8083
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-props.js
7565
- function Ss(e, { flow: t, indicator: n, next: r, offset: i, onError: a, parentIndent: o, startOnNewline: s }) {
8084
+ function Cs(e, { flow: t, indicator: n, next: r, offset: i, onError: a, parentIndent: o, startOnNewline: s }) {
7566
8085
  let c = !1, l = s, u = s, d = "", f = "", p = !1, m = !1, h = null, g = null, _ = null, v = null, y = null, b = null, x = null;
7567
8086
  for (let i of e) switch (m &&= (i.type !== "space" && i.type !== "newline" && i.type !== "comma" && a(i.offset, "MISSING_CHAR", "Tags and anchors must be separated from the next token by white space"), !1), h &&= (l && i.type !== "comment" && i.type !== "newline" && a(h, "TAB_AS_INDENT", "Tabs are not allowed as indentation"), null), i.type) {
7568
8087
  case "space":
@@ -7608,7 +8127,7 @@ function Ss(e, { flow: t, indicator: n, next: r, offset: i, onError: a, parentIn
7608
8127
  }
7609
8128
  //#endregion
7610
8129
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-contains-newline.js
7611
- function Cs(e) {
8130
+ function ws(e) {
7612
8131
  if (!e) return null;
7613
8132
  switch (e.type) {
7614
8133
  case "alias":
@@ -7626,7 +8145,7 @@ function Cs(e) {
7626
8145
  if (t.sep) {
7627
8146
  for (let e of t.sep) if (e.type === "newline") return !0;
7628
8147
  }
7629
- if (Cs(t.key) || Cs(t.value)) return !0;
8148
+ if (ws(t.key) || ws(t.value)) return !0;
7630
8149
  }
7631
8150
  return !1;
7632
8151
  default: return !0;
@@ -7634,15 +8153,15 @@ function Cs(e) {
7634
8153
  }
7635
8154
  //#endregion
7636
8155
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js
7637
- function ws(e, t, n) {
8156
+ function Ts(e, t, n) {
7638
8157
  if (t?.type === "flow-collection") {
7639
8158
  let r = t.end[0];
7640
- r.indent === e && (r.source === "]" || r.source === "}") && Cs(t) && n(r, "BAD_INDENT", "Flow end indicator should be more indented than parent", !0);
8159
+ r.indent === e && (r.source === "]" || r.source === "}") && ws(t) && n(r, "BAD_INDENT", "Flow end indicator should be more indented than parent", !0);
7641
8160
  }
7642
8161
  }
7643
8162
  //#endregion
7644
8163
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-map-includes.js
7645
- function Ts(e, t, n) {
8164
+ function Es(e, t, n) {
7646
8165
  let { uniqueKeys: r } = e.options;
7647
8166
  if (r === !1) return !1;
7648
8167
  let i = typeof r == "function" ? r : (e, t) => e === t || q(e) && q(t) && e.value === t.value;
@@ -7650,13 +8169,13 @@ function Ts(e, t, n) {
7650
8169
  }
7651
8170
  //#endregion
7652
8171
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-map.js
7653
- var Es = "All mapping items must start at the same column";
7654
- function Ds({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
8172
+ var Ds = "All mapping items must start at the same column";
8173
+ function Os({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7655
8174
  let o = new ((a?.nodeClass) ?? $)(n.schema);
7656
8175
  n.atRoot &&= !1;
7657
8176
  let s = r.offset, c = null;
7658
8177
  for (let a of r.items) {
7659
- let { start: l, key: u, sep: d, value: f } = a, p = Ss(l, {
8178
+ let { start: l, key: u, sep: d, value: f } = a, p = Cs(l, {
7660
8179
  indicator: "explicit-key-ind",
7661
8180
  next: u ?? d?.[0],
7662
8181
  offset: s,
@@ -7665,16 +8184,16 @@ function Ds({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7665
8184
  startOnNewline: !0
7666
8185
  }), m = !p.found;
7667
8186
  if (m) {
7668
- if (u && (u.type === "block-seq" ? i(s, "BLOCK_AS_IMPLICIT_KEY", "A block sequence may not be used as an implicit map key") : "indent" in u && u.indent !== r.indent && i(s, "BAD_INDENT", Es)), !p.anchor && !p.tag && !d) {
8187
+ if (u && (u.type === "block-seq" ? i(s, "BLOCK_AS_IMPLICIT_KEY", "A block sequence may not be used as an implicit map key") : "indent" in u && u.indent !== r.indent && i(s, "BAD_INDENT", Ds)), !p.anchor && !p.tag && !d) {
7669
8188
  c = p.end, p.comment && (o.comment ? o.comment += "\n" + p.comment : o.comment = p.comment);
7670
8189
  continue;
7671
8190
  }
7672
- (p.newlineAfterProp || Cs(u)) && i(u ?? l[l.length - 1], "MULTILINE_IMPLICIT_KEY", "Implicit keys need to be on a single line");
7673
- } else p.found?.indent !== r.indent && i(s, "BAD_INDENT", Es);
8191
+ (p.newlineAfterProp || ws(u)) && i(u ?? l[l.length - 1], "MULTILINE_IMPLICIT_KEY", "Implicit keys need to be on a single line");
8192
+ } else p.found?.indent !== r.indent && i(s, "BAD_INDENT", Ds);
7674
8193
  n.atKey = !0;
7675
8194
  let h = p.end, g = u ? e(n, u, p, i) : t(n, h, l, null, p, i);
7676
- n.schema.compat && ws(r.indent, u, i), n.atKey = !1, Ts(n, o.items, g) && i(h, "DUPLICATE_KEY", "Map keys must be unique");
7677
- let _ = Ss(d ?? [], {
8195
+ n.schema.compat && Ts(r.indent, u, i), n.atKey = !1, Es(n, o.items, g) && i(h, "DUPLICATE_KEY", "Map keys must be unique");
8196
+ let _ = Cs(d ?? [], {
7678
8197
  indicator: "map-value-ind",
7679
8198
  next: f,
7680
8199
  offset: g.range[2],
@@ -7685,7 +8204,7 @@ function Ds({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7685
8204
  if (s = _.end, _.found) {
7686
8205
  m && (f?.type === "block-map" && !_.hasNewline && i(s, "BLOCK_AS_IMPLICIT_KEY", "Nested mappings are not allowed in compact mappings"), n.options.strict && p.start < _.found.offset - 1024 && i(g.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));
7687
8206
  let c = f ? e(n, f, _, i) : t(n, s, d, null, _, i);
7688
- n.schema.compat && ws(r.indent, f, i), s = c.range[2];
8207
+ n.schema.compat && Ts(r.indent, f, i), s = c.range[2];
7689
8208
  let l = new Q(g, c);
7690
8209
  n.options.keepSourceTokens && (l.srcToken = a), o.items.push(l);
7691
8210
  } else {
@@ -7702,12 +8221,12 @@ function Ds({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7702
8221
  }
7703
8222
  //#endregion
7704
8223
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-seq.js
7705
- function Os({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7706
- let o = new ((a?.nodeClass) ?? ho)(n.schema);
8224
+ function ks({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
8225
+ let o = new ((a?.nodeClass) ?? go)(n.schema);
7707
8226
  n.atRoot &&= !1, n.atKey &&= !1;
7708
8227
  let s = r.offset, c = null;
7709
8228
  for (let { start: a, value: l } of r.items) {
7710
- let u = Ss(a, {
8229
+ let u = Cs(a, {
7711
8230
  indicator: "seq-item-ind",
7712
8231
  next: l,
7713
8232
  offset: s,
@@ -7723,7 +8242,7 @@ function Os({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7723
8242
  }
7724
8243
  }
7725
8244
  let d = l ? e(n, l, u, i) : t(n, u.end, a, null, u, i);
7726
- n.schema.compat && ws(r.indent, l, i), s = d.range[2], o.items.push(d);
8245
+ n.schema.compat && Ts(r.indent, l, i), s = d.range[2], o.items.push(d);
7727
8246
  }
7728
8247
  return o.range = [
7729
8248
  r.offset,
@@ -7733,7 +8252,7 @@ function Os({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7733
8252
  }
7734
8253
  //#endregion
7735
8254
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-end.js
7736
- function ks(e, t, n, r) {
8255
+ function As(e, t, n, r) {
7737
8256
  let i = "";
7738
8257
  if (e) {
7739
8258
  let a = !1, o = "";
@@ -7764,15 +8283,15 @@ function ks(e, t, n, r) {
7764
8283
  }
7765
8284
  //#endregion
7766
8285
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js
7767
- var As = "Block collections are not allowed within flow collections", js = (e) => e && (e.type === "block-map" || e.type === "block-seq");
7768
- function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7769
- let o = r.start.source === "{", s = o ? "flow map" : "flow sequence", c = new ((a?.nodeClass) ?? (o ? $ : ho))(n.schema);
8286
+ var js = "Block collections are not allowed within flow collections", Ms = (e) => e && (e.type === "block-map" || e.type === "block-seq");
8287
+ function Ns({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
8288
+ let o = r.start.source === "{", s = o ? "flow map" : "flow sequence", c = new ((a?.nodeClass) ?? (o ? $ : go))(n.schema);
7770
8289
  c.flow = !0;
7771
8290
  let l = n.atRoot;
7772
8291
  l && (n.atRoot = !1), n.atKey &&= !1;
7773
8292
  let u = r.offset + r.start.source.length;
7774
8293
  for (let a = 0; a < r.items.length; ++a) {
7775
- let l = r.items[a], { start: d, key: f, sep: p, value: m } = l, h = Ss(d, {
8294
+ let l = r.items[a], { start: d, key: f, sep: p, value: m } = l, h = Cs(d, {
7776
8295
  flow: s,
7777
8296
  indicator: "explicit-key-ind",
7778
8297
  next: f ?? p?.[0],
@@ -7786,7 +8305,7 @@ function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7786
8305
  a === 0 && h.comma ? i(h.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${s}`) : a < r.items.length - 1 && i(h.start, "UNEXPECTED_TOKEN", `Unexpected empty item in ${s}`), h.comment && (c.comment ? c.comment += "\n" + h.comment : c.comment = h.comment), u = h.end;
7787
8306
  continue;
7788
8307
  }
7789
- !o && n.options.strict && Cs(f) && i(f, "MULTILINE_IMPLICIT_KEY", "Implicit keys of flow sequence pairs need to be on a single line");
8308
+ !o && n.options.strict && ws(f) && i(f, "MULTILINE_IMPLICIT_KEY", "Implicit keys of flow sequence pairs need to be on a single line");
7790
8309
  }
7791
8310
  if (a === 0) h.comma && i(h.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${s}`);
7792
8311
  else if (h.comma || i(h.start, "MISSING_CHAR", `Missing , between ${s} items`), h.comment) {
@@ -7806,12 +8325,12 @@ function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7806
8325
  }
7807
8326
  if (!o && !p && !h.found) {
7808
8327
  let r = m ? e(n, m, h, i) : t(n, h.end, p, null, h, i);
7809
- c.items.push(r), u = r.range[2], js(m) && i(r.range, "BLOCK_IN_FLOW", As);
8328
+ c.items.push(r), u = r.range[2], Ms(m) && i(r.range, "BLOCK_IN_FLOW", js);
7810
8329
  } else {
7811
8330
  n.atKey = !0;
7812
8331
  let a = h.end, g = f ? e(n, f, h, i) : t(n, a, d, null, h, i);
7813
- js(f) && i(g.range, "BLOCK_IN_FLOW", As), n.atKey = !1;
7814
- let _ = Ss(p ?? [], {
8332
+ Ms(f) && i(g.range, "BLOCK_IN_FLOW", js), n.atKey = !1;
8333
+ let _ = Cs(p ?? [], {
7815
8334
  flow: s,
7816
8335
  indicator: "map-value-ind",
7817
8336
  next: m,
@@ -7833,11 +8352,11 @@ function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7833
8352
  }
7834
8353
  } else m && ("source" in m && m.source?.[0] === ":" ? i(m, "MISSING_CHAR", `Missing space after : in ${s}`) : i(_.start, "MISSING_CHAR", `Missing , or : between ${s} items`));
7835
8354
  let v = m ? e(n, m, _, i) : _.found ? t(n, _.end, p, null, _, i) : null;
7836
- v ? js(m) && i(v.range, "BLOCK_IN_FLOW", As) : _.comment && (g.comment ? g.comment += "\n" + _.comment : g.comment = _.comment);
8355
+ v ? Ms(m) && i(v.range, "BLOCK_IN_FLOW", js) : _.comment && (g.comment ? g.comment += "\n" + _.comment : g.comment = _.comment);
7837
8356
  let y = new Q(g, v);
7838
8357
  if (n.options.keepSourceTokens && (y.srcToken = l), o) {
7839
8358
  let e = c;
7840
- Ts(n, e.items, g) && i(a, "DUPLICATE_KEY", "Map keys must be unique"), e.items.push(y);
8359
+ Es(n, e.items, g) && i(a, "DUPLICATE_KEY", "Map keys must be unique"), e.items.push(y);
7841
8360
  } else {
7842
8361
  let e = new $(n.schema);
7843
8362
  e.flow = !0, e.items.push(y);
@@ -7858,7 +8377,7 @@ function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7858
8377
  i(u, l ? "MISSING_CHAR" : "BAD_INDENT", t), f && f.source.length !== 1 && p.unshift(f);
7859
8378
  }
7860
8379
  if (p.length > 0) {
7861
- let e = ks(p, m, n.options.strict, i);
8380
+ let e = As(p, m, n.options.strict, i);
7862
8381
  e.comment && (c.comment ? c.comment += "\n" + e.comment : c.comment = e.comment), c.range = [
7863
8382
  r.offset,
7864
8383
  m,
@@ -7873,31 +8392,31 @@ function Ms({ composeNode: e, composeEmptyNode: t }, n, r, i, a) {
7873
8392
  }
7874
8393
  //#endregion
7875
8394
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-collection.js
7876
- function Ns(e, t, n, r, i, a) {
7877
- let o = n.type === "block-map" ? Ds(e, t, n, r, a) : n.type === "block-seq" ? Os(e, t, n, r, a) : Ms(e, t, n, r, a), s = o.constructor;
8395
+ function Ps(e, t, n, r, i, a) {
8396
+ let o = n.type === "block-map" ? Os(e, t, n, r, a) : n.type === "block-seq" ? ks(e, t, n, r, a) : Ns(e, t, n, r, a), s = o.constructor;
7878
8397
  return i === "!" || i === s.tagName ? (o.tag = s.tagName, o) : (i && (o.tag = i), o);
7879
8398
  }
7880
- function Ps(e, t, n, r, i) {
8399
+ function Fs(e, t, n, r, i) {
7881
8400
  let a = r.tag, o = a ? t.directives.tagName(a.source, (e) => i(a, "TAG_RESOLVE_FAILED", e)) : null;
7882
8401
  if (n.type === "block-seq") {
7883
8402
  let { anchor: e, newlineAfterProp: t } = r, n = e && a ? e.offset > a.offset ? e : a : e ?? a;
7884
8403
  n && (!t || t.offset < n.offset) && i(n, "MISSING_CHAR", "Missing newline after block sequence props");
7885
8404
  }
7886
8405
  let s = n.type === "block-map" ? "map" : n.type === "block-seq" ? "seq" : n.start.source === "{" ? "map" : "seq";
7887
- if (!a || !o || o === "!" || o === $.tagName && s === "map" || o === ho.tagName && s === "seq") return Ns(e, t, n, i, o);
8406
+ if (!a || !o || o === "!" || o === $.tagName && s === "map" || o === go.tagName && s === "seq") return Ps(e, t, n, i, o);
7888
8407
  let c = t.schema.tags.find((e) => e.tag === o && e.collection === s);
7889
8408
  if (!c) {
7890
8409
  let r = t.schema.knownTags[o];
7891
8410
  if (r?.collection === s) t.schema.tags.push(Object.assign({}, r, { default: !1 })), c = r;
7892
- else return r ? i(a, "BAD_COLLECTION_TYPE", `${r.tag} used for ${s} collection, but expects ${r.collection ?? "scalar"}`, !0) : i(a, "TAG_RESOLVE_FAILED", `Unresolved tag: ${o}`, !0), Ns(e, t, n, i, o);
8411
+ else return r ? i(a, "BAD_COLLECTION_TYPE", `${r.tag} used for ${s} collection, but expects ${r.collection ?? "scalar"}`, !0) : i(a, "TAG_RESOLVE_FAILED", `Unresolved tag: ${o}`, !0), Ps(e, t, n, i, o);
7893
8412
  }
7894
- let l = Ns(e, t, n, i, o, c), u = c.resolve?.(l, (e) => i(a, "TAG_RESOLVE_FAILED", e), t.options) ?? l, d = Y(u) ? u : new Z(u);
8413
+ let l = Ps(e, t, n, i, o, c), u = c.resolve?.(l, (e) => i(a, "TAG_RESOLVE_FAILED", e), t.options) ?? l, d = Y(u) ? u : new Z(u);
7895
8414
  return d.range = l.range, d.tag = o, c?.format && (d.format = c.format), d;
7896
8415
  }
7897
8416
  //#endregion
7898
8417
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js
7899
- function Fs(e, t, n) {
7900
- let r = t.offset, i = Is(t, e.options.strict, n);
8418
+ function Is(e, t, n) {
8419
+ let r = t.offset, i = Ls(t, e.options.strict, n);
7901
8420
  if (!i) return {
7902
8421
  value: "",
7903
8422
  type: null,
@@ -7908,7 +8427,7 @@ function Fs(e, t, n) {
7908
8427
  r
7909
8428
  ]
7910
8429
  };
7911
- let a = i.mode === ">" ? Z.BLOCK_FOLDED : Z.BLOCK_LITERAL, o = t.source ? Ls(t.source) : [], s = o.length;
8430
+ let a = i.mode === ">" ? Z.BLOCK_FOLDED : Z.BLOCK_LITERAL, o = t.source ? Rs(t.source) : [], s = o.length;
7912
8431
  for (let e = o.length - 1; e >= 0; --e) {
7913
8432
  let t = o[e][1];
7914
8433
  if (t === "" || t === "\r") s = e;
@@ -7971,7 +8490,7 @@ function Fs(e, t, n) {
7971
8490
  ]
7972
8491
  };
7973
8492
  }
7974
- function Is({ offset: e, props: t }, n, r) {
8493
+ function Ls({ offset: e, props: t }, n, r) {
7975
8494
  /* istanbul ignore if should not happen */
7976
8495
  if (t[0].type !== "block-scalar-header") return r(t[0], "IMPOSSIBLE", "Block scalar header not found"), null;
7977
8496
  let { source: i } = t[0], a = i[0], o = 0, s = "", c = -1;
@@ -8014,24 +8533,24 @@ function Is({ offset: e, props: t }, n, r) {
8014
8533
  length: d
8015
8534
  };
8016
8535
  }
8017
- function Ls(e) {
8536
+ function Rs(e) {
8018
8537
  let t = e.split(/\n( *)/), n = t[0], r = n.match(/^( *)/), i = [r?.[1] ? [r[1], n.slice(r[1].length)] : ["", n]];
8019
8538
  for (let e = 1; e < t.length; e += 2) i.push([t[e], t[e + 1]]);
8020
8539
  return i;
8021
8540
  }
8022
8541
  //#endregion
8023
8542
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js
8024
- function Rs(e, t, n) {
8543
+ function zs(e, t, n) {
8025
8544
  let { offset: r, type: i, source: a, end: o } = e, s, c, l = (e, t, i) => n(r + e, t, i);
8026
8545
  switch (i) {
8027
8546
  case "scalar":
8028
- s = Z.PLAIN, c = zs(a, l);
8547
+ s = Z.PLAIN, c = Bs(a, l);
8029
8548
  break;
8030
8549
  case "single-quoted-scalar":
8031
- s = Z.QUOTE_SINGLE, c = Bs(a, l);
8550
+ s = Z.QUOTE_SINGLE, c = Vs(a, l);
8032
8551
  break;
8033
8552
  case "double-quoted-scalar":
8034
- s = Z.QUOTE_DOUBLE, c = Hs(a, l);
8553
+ s = Z.QUOTE_DOUBLE, c = Us(a, l);
8035
8554
  break;
8036
8555
  /* istanbul ignore next should not happen */
8037
8556
  default: return n(e, "UNEXPECTED_TOKEN", `Expected a flow scalar value, but found: ${i}`), {
@@ -8045,7 +8564,7 @@ function Rs(e, t, n) {
8045
8564
  ]
8046
8565
  };
8047
8566
  }
8048
- let u = r + a.length, d = ks(o, u, t, n);
8567
+ let u = r + a.length, d = As(o, u, t, n);
8049
8568
  return {
8050
8569
  value: c,
8051
8570
  type: s,
@@ -8057,7 +8576,7 @@ function Rs(e, t, n) {
8057
8576
  ]
8058
8577
  };
8059
8578
  }
8060
- function zs(e, t) {
8579
+ function Bs(e, t) {
8061
8580
  let n = "";
8062
8581
  switch (e[0]) {
8063
8582
  /* istanbul ignore next should not happen */
@@ -8077,12 +8596,12 @@ function zs(e, t) {
8077
8596
  case "@":
8078
8597
  case "`": n = `reserved character ${e[0]}`;
8079
8598
  }
8080
- return n && t(0, "BAD_SCALAR_START", `Plain value cannot start with ${n}`), Vs(e);
8599
+ return n && t(0, "BAD_SCALAR_START", `Plain value cannot start with ${n}`), Hs(e);
8081
8600
  }
8082
- function Bs(e, t) {
8083
- return (e[e.length - 1] !== "'" || e.length === 1) && t(e.length, "MISSING_CHAR", "Missing closing 'quote"), Vs(e.slice(1, -1)).replace(/''/g, "'");
8601
+ function Vs(e, t) {
8602
+ return (e[e.length - 1] !== "'" || e.length === 1) && t(e.length, "MISSING_CHAR", "Missing closing 'quote"), Hs(e.slice(1, -1)).replace(/''/g, "'");
8084
8603
  }
8085
- function Vs(e) {
8604
+ function Hs(e) {
8086
8605
  let t, n;
8087
8606
  try {
8088
8607
  t = /* @__PURE__ */ RegExp("(.*?)(?<![ ])[ ]*\r?\n", "sy"), n = /* @__PURE__ */ RegExp("[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?\n", "sy");
@@ -8096,22 +8615,22 @@ function Vs(e) {
8096
8615
  let s = /[ \t]*(.*)/sy;
8097
8616
  return s.lastIndex = o, r = s.exec(e), i + a + (r?.[1] ?? "");
8098
8617
  }
8099
- function Hs(e, t) {
8618
+ function Us(e, t) {
8100
8619
  let n = "";
8101
8620
  for (let r = 1; r < e.length - 1; ++r) {
8102
8621
  let i = e[r];
8103
8622
  if (i !== "\r" || e[r + 1] !== "\n") {
8104
8623
  if (i === "\n") {
8105
- let { fold: t, offset: i } = Us(e, r);
8624
+ let { fold: t, offset: i } = Ws(e, r);
8106
8625
  n += t, r = i;
8107
8626
  } else if (i === "\\") {
8108
- let i = e[++r], a = Ws[i];
8627
+ let i = e[++r], a = Gs[i];
8109
8628
  if (a) n += a;
8110
8629
  else if (i === "\n") for (i = e[r + 1]; i === " " || i === " ";) i = e[++r + 1];
8111
8630
  else if (i === "\r" && e[r + 1] === "\n") for (i = e[++r + 1]; i === " " || i === " ";) i = e[++r + 1];
8112
8631
  else if (i === "x" || i === "u" || i === "U") {
8113
8632
  let a = i === "x" ? 2 : i === "u" ? 4 : 8;
8114
- n += Gs(e, r + 1, a, t), r += a;
8633
+ n += Ks(e, r + 1, a, t), r += a;
8115
8634
  } else {
8116
8635
  let i = e.substr(r - 1, 2);
8117
8636
  t(r - 1, "BAD_DQ_ESCAPE", `Invalid escape sequence ${i}`), n += i;
@@ -8125,7 +8644,7 @@ function Hs(e, t) {
8125
8644
  }
8126
8645
  return (e[e.length - 1] !== "\"" || e.length === 1) && t(e.length, "MISSING_CHAR", "Missing closing \"quote"), n;
8127
8646
  }
8128
- function Us(e, t) {
8647
+ function Ws(e, t) {
8129
8648
  let n = "", r = e[t + 1];
8130
8649
  for (; (r === " " || r === " " || r === "\n" || r === "\r") && (r !== "\r" || e[t + 2] === "\n");) r === "\n" && (n += "\n"), t += 1, r = e[t + 1];
8131
8650
  return n ||= " ", {
@@ -8133,7 +8652,7 @@ function Us(e, t) {
8133
8652
  offset: t
8134
8653
  };
8135
8654
  }
8136
- var Ws = {
8655
+ var Gs = {
8137
8656
  0: "\0",
8138
8657
  a: "\x07",
8139
8658
  b: "\b",
@@ -8153,7 +8672,7 @@ var Ws = {
8153
8672
  "\\": "\\",
8154
8673
  " ": " "
8155
8674
  };
8156
- function Gs(e, t, n, r) {
8675
+ function Ks(e, t, n, r) {
8157
8676
  let i = e.substr(t, n), a = i.length === n && /^[0-9a-fA-F]+$/.test(i) ? parseInt(i, 16) : NaN;
8158
8677
  try {
8159
8678
  return String.fromCodePoint(a);
@@ -8164,9 +8683,9 @@ function Gs(e, t, n, r) {
8164
8683
  }
8165
8684
  //#endregion
8166
8685
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-scalar.js
8167
- function Ks(e, t, n, r) {
8168
- let { value: i, type: a, comment: o, range: s } = t.type === "block-scalar" ? Fs(e, t, r) : Rs(t, e.options.strict, r), c = n ? e.directives.tagName(n.source, (e) => r(n, "TAG_RESOLVE_FAILED", e)) : null, l;
8169
- l = e.options.stringKeys && e.atKey ? e.schema[Ji] : c ? qs(e.schema, i, c, n, r) : t.type === "scalar" ? Js(e, i, t, r) : e.schema[Ji];
8686
+ function qs(e, t, n, r) {
8687
+ let { value: i, type: a, comment: o, range: s } = t.type === "block-scalar" ? Is(e, t, r) : zs(t, e.options.strict, r), c = n ? e.directives.tagName(n.source, (e) => r(n, "TAG_RESOLVE_FAILED", e)) : null, l;
8688
+ l = e.options.stringKeys && e.atKey ? e.schema[Yi] : c ? Js(e.schema, i, c, n, r) : t.type === "scalar" ? Ys(e, i, t, r) : e.schema[Yi];
8170
8689
  let u;
8171
8690
  try {
8172
8691
  let a = l.resolve(i, (e) => r(n ?? t, "TAG_RESOLVE_FAILED", e), e.options);
@@ -8177,8 +8696,8 @@ function Ks(e, t, n, r) {
8177
8696
  }
8178
8697
  return u.range = s, u.source = i, a && (u.type = a), c && (u.tag = c), l.format && (u.format = l.format), o && (u.comment = o), u;
8179
8698
  }
8180
- function qs(e, t, n, r, i) {
8181
- if (n === "!") return e[Ji];
8699
+ function Js(e, t, n, r, i) {
8700
+ if (n === "!") return e[Yi];
8182
8701
  let a = [];
8183
8702
  for (let t of e.tags) if (!t.collection && t.tag === n) {
8184
8703
  if (t.default && t.test) a.push(t);
@@ -8189,19 +8708,19 @@ function qs(e, t, n, r, i) {
8189
8708
  return o && !o.collection ? (e.tags.push(Object.assign({}, o, {
8190
8709
  default: !1,
8191
8710
  test: void 0
8192
- })), o) : (i(r, "TAG_RESOLVE_FAILED", `Unresolved tag: ${n}`, n !== "tag:yaml.org,2002:str"), e[Ji]);
8711
+ })), o) : (i(r, "TAG_RESOLVE_FAILED", `Unresolved tag: ${n}`, n !== "tag:yaml.org,2002:str"), e[Yi]);
8193
8712
  }
8194
- function Js({ atKey: e, directives: t, schema: n }, r, i, a) {
8195
- let o = n.tags.find((t) => (t.default === !0 || e && t.default === "key") && t.test?.test(r)) || n[Ji];
8713
+ function Ys({ atKey: e, directives: t, schema: n }, r, i, a) {
8714
+ let o = n.tags.find((t) => (t.default === !0 || e && t.default === "key") && t.test?.test(r)) || n[Yi];
8196
8715
  if (n.compat) {
8197
- let e = n.compat.find((e) => e.default && e.test?.test(r)) ?? n[Ji];
8716
+ let e = n.compat.find((e) => e.default && e.test?.test(r)) ?? n[Yi];
8198
8717
  o.tag !== e.tag && a(i, "TAG_RESOLVE_FAILED", `Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`, !0);
8199
8718
  }
8200
8719
  return o;
8201
8720
  }
8202
8721
  //#endregion
8203
8722
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js
8204
- function Ys(e, t, n) {
8723
+ function Xs(e, t, n) {
8205
8724
  if (t) {
8206
8725
  n ??= t.length;
8207
8726
  for (let r = n - 1; r >= 0; --r) {
@@ -8221,48 +8740,48 @@ function Ys(e, t, n) {
8221
8740
  }
8222
8741
  //#endregion
8223
8742
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-node.js
8224
- var Xs = {
8225
- composeNode: Zs,
8226
- composeEmptyNode: Qs
8743
+ var Zs = {
8744
+ composeNode: Qs,
8745
+ composeEmptyNode: $s
8227
8746
  };
8228
- function Zs(e, t, n, r) {
8747
+ function Qs(e, t, n, r) {
8229
8748
  let i = e.atKey, { spaceBefore: a, comment: o, anchor: s, tag: c } = n, l, u = !0;
8230
8749
  switch (t.type) {
8231
8750
  case "alias":
8232
- l = $s(e, t, r), (s || c) && r(t, "ALIAS_PROPS", "An alias node must not specify any properties");
8751
+ l = ec(e, t, r), (s || c) && r(t, "ALIAS_PROPS", "An alias node must not specify any properties");
8233
8752
  break;
8234
8753
  case "scalar":
8235
8754
  case "single-quoted-scalar":
8236
8755
  case "double-quoted-scalar":
8237
8756
  case "block-scalar":
8238
- l = Ks(e, t, c, r), s && (l.anchor = s.source.substring(1));
8757
+ l = qs(e, t, c, r), s && (l.anchor = s.source.substring(1));
8239
8758
  break;
8240
8759
  case "block-map":
8241
8760
  case "block-seq":
8242
8761
  case "flow-collection":
8243
8762
  try {
8244
- l = Ps(Xs, e, t, n, r), s && (l.anchor = s.source.substring(1));
8763
+ l = Fs(Zs, e, t, n, r), s && (l.anchor = s.source.substring(1));
8245
8764
  } catch (e) {
8246
8765
  r(t, "RESOURCE_EXHAUSTION", e instanceof Error ? e.message : String(e));
8247
8766
  }
8248
8767
  break;
8249
8768
  default: r(t, "UNEXPECTED_TOKEN", t.type === "error" ? t.message : `Unsupported token (type: ${t.type})`), u = !1;
8250
8769
  }
8251
- return l ??= Qs(e, t.offset, void 0, null, n, r), s && l.anchor === "" && r(s, "BAD_ALIAS", "Anchor cannot be an empty string"), i && e.options.stringKeys && (!q(l) || typeof l.value != "string" || l.tag && l.tag !== "tag:yaml.org,2002:str") && r(c ?? t, "NON_STRING_KEY", "With stringKeys, all keys must be strings"), a && (l.spaceBefore = !0), o && (t.type === "scalar" && t.source === "" ? l.comment = o : l.commentBefore = o), e.options.keepSourceTokens && u && (l.srcToken = t), l;
8770
+ return l ??= $s(e, t.offset, void 0, null, n, r), s && l.anchor === "" && r(s, "BAD_ALIAS", "Anchor cannot be an empty string"), i && e.options.stringKeys && (!q(l) || typeof l.value != "string" || l.tag && l.tag !== "tag:yaml.org,2002:str") && r(c ?? t, "NON_STRING_KEY", "With stringKeys, all keys must be strings"), a && (l.spaceBefore = !0), o && (t.type === "scalar" && t.source === "" ? l.comment = o : l.commentBefore = o), e.options.keepSourceTokens && u && (l.srcToken = t), l;
8252
8771
  }
8253
- function Qs(e, t, n, r, { spaceBefore: i, comment: a, anchor: o, tag: s, end: c }, l) {
8254
- let u = Ks(e, {
8772
+ function $s(e, t, n, r, { spaceBefore: i, comment: a, anchor: o, tag: s, end: c }, l) {
8773
+ let u = qs(e, {
8255
8774
  type: "scalar",
8256
- offset: Ys(t, n, r),
8775
+ offset: Xs(t, n, r),
8257
8776
  indent: -1,
8258
8777
  source: ""
8259
8778
  }, s, l);
8260
8779
  return o && (u.anchor = o.source.substring(1), u.anchor === "" && l(o, "BAD_ALIAS", "Anchor cannot be an empty string")), i && (u.spaceBefore = !0), a && (u.comment = a, u.range[2] = c), u;
8261
8780
  }
8262
- function $s({ options: e }, { offset: t, source: n, end: r }, i) {
8263
- let a = new ba(n.substring(1));
8781
+ function ec({ options: e }, { offset: t, source: n, end: r }, i) {
8782
+ let a = new xa(n.substring(1));
8264
8783
  a.source === "" && i(t, "BAD_ALIAS", "Alias cannot be an empty string"), a.source.endsWith(":") && i(t + n.length - 1, "BAD_ALIAS", "Alias ending in : is ambiguous", !0);
8265
- let o = t + n.length, s = ks(r, o, e.strict, i);
8784
+ let o = t + n.length, s = As(r, o, e.strict, i);
8266
8785
  return a.range = [
8267
8786
  t,
8268
8787
  o,
@@ -8271,14 +8790,14 @@ function $s({ options: e }, { offset: t, source: n, end: r }, i) {
8271
8790
  }
8272
8791
  //#endregion
8273
8792
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/compose-doc.js
8274
- function ec(e, t, { offset: n, start: r, value: i, end: a }, o) {
8275
- let s = new gs(void 0, Object.assign({ _directives: t }, e)), c = {
8793
+ function tc(e, t, { offset: n, start: r, value: i, end: a }, o) {
8794
+ let s = new _s(void 0, Object.assign({ _directives: t }, e)), c = {
8276
8795
  atKey: !1,
8277
8796
  atRoot: !0,
8278
8797
  directives: s.directives,
8279
8798
  options: s.options,
8280
8799
  schema: s.schema
8281
- }, l = Ss(r, {
8800
+ }, l = Cs(r, {
8282
8801
  indicator: "doc-start",
8283
8802
  next: i ?? a?.[0],
8284
8803
  offset: n,
@@ -8286,8 +8805,8 @@ function ec(e, t, { offset: n, start: r, value: i, end: a }, o) {
8286
8805
  parentIndent: 0,
8287
8806
  startOnNewline: !0
8288
8807
  });
8289
- l.found && (s.directives.docStart = !0, i && (i.type === "block-map" || i.type === "block-seq") && !l.hasNewline && o(l.end, "MISSING_CHAR", "Block collection cannot start on same line with directives-end marker")), s.contents = i ? Zs(c, i, l, o) : Qs(c, l.end, r, null, l, o);
8290
- let u = s.contents.range[2], d = ks(a, u, !1, o);
8808
+ l.found && (s.directives.docStart = !0, i && (i.type === "block-map" || i.type === "block-seq") && !l.hasNewline && o(l.end, "MISSING_CHAR", "Block collection cannot start on same line with directives-end marker")), s.contents = i ? Qs(c, i, l, o) : $s(c, l.end, r, null, l, o);
8809
+ let u = s.contents.range[2], d = As(a, u, !1, o);
8291
8810
  return d.comment && (s.comment = d.comment), s.range = [
8292
8811
  n,
8293
8812
  u,
@@ -8296,13 +8815,13 @@ function ec(e, t, { offset: n, start: r, value: i, end: a }, o) {
8296
8815
  }
8297
8816
  //#endregion
8298
8817
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/compose/composer.js
8299
- function tc(e) {
8818
+ function nc(e) {
8300
8819
  if (typeof e == "number") return [e, e + 1];
8301
8820
  if (Array.isArray(e)) return e.length === 2 ? e : [e[0], e[1]];
8302
8821
  let { offset: t, source: n } = e;
8303
8822
  return [t, t + (typeof n == "string" ? n.length : 1)];
8304
8823
  }
8305
- function nc(e) {
8824
+ function rc(e) {
8306
8825
  let t = "", n = !1, r = !1;
8307
8826
  for (let i = 0; i < e.length; ++i) {
8308
8827
  let a = e[i];
@@ -8321,15 +8840,15 @@ function nc(e) {
8321
8840
  afterEmptyLine: r
8322
8841
  };
8323
8842
  }
8324
- var rc = class {
8843
+ var ic = class {
8325
8844
  constructor(e = {}) {
8326
8845
  this.doc = null, this.atDirectives = !1, this.prelude = [], this.errors = [], this.warnings = [], this.onError = (e, t, n, r) => {
8327
- let i = tc(e);
8328
- r ? this.warnings.push(new bs(i, t, n)) : this.errors.push(new ys(i, t, n));
8329
- }, this.directives = new fa({ version: e.version || "1.2" }), this.options = e;
8846
+ let i = nc(e);
8847
+ r ? this.warnings.push(new xs(i, t, n)) : this.errors.push(new bs(i, t, n));
8848
+ }, this.directives = new pa({ version: e.version || "1.2" }), this.options = e;
8330
8849
  }
8331
8850
  decorate(e, t) {
8332
- let { comment: n, afterEmptyLine: r } = nc(this.prelude);
8851
+ let { comment: n, afterEmptyLine: r } = rc(this.prelude);
8333
8852
  if (n) {
8334
8853
  let i = e.contents;
8335
8854
  if (t) e.comment = e.comment ? `${e.comment}\n${n}` : n;
@@ -8352,7 +8871,7 @@ var rc = class {
8352
8871
  }
8353
8872
  streamInfo() {
8354
8873
  return {
8355
- comment: nc(this.prelude).comment,
8874
+ comment: rc(this.prelude).comment,
8356
8875
  directives: this.directives,
8357
8876
  errors: this.errors,
8358
8877
  warnings: this.warnings
@@ -8366,12 +8885,12 @@ var rc = class {
8366
8885
  switch (e.type) {
8367
8886
  case "directive":
8368
8887
  this.directives.add(e.source, (t, n, r) => {
8369
- let i = tc(e);
8888
+ let i = nc(e);
8370
8889
  i[0] += t, this.onError(i, "BAD_DIRECTIVE", n, r);
8371
8890
  }), this.prelude.push(e.source), this.atDirectives = !0;
8372
8891
  break;
8373
8892
  case "document": {
8374
- let t = ec(this.options, this.directives, e, this.onError);
8893
+ let t = tc(this.options, this.directives, e, this.onError);
8375
8894
  this.atDirectives && !t.directives.docStart && this.onError(e, "MISSING_CHAR", "Missing directives-end/doc-start indicator line"), this.decorate(t, !1), this.doc && (yield this.doc), this.doc = t, this.atDirectives = !1;
8376
8895
  break;
8377
8896
  }
@@ -8382,17 +8901,17 @@ var rc = class {
8382
8901
  this.prelude.push(e.source);
8383
8902
  break;
8384
8903
  case "error": {
8385
- let t = e.source ? `${e.message}: ${JSON.stringify(e.source)}` : e.message, n = new ys(tc(e), "UNEXPECTED_TOKEN", t);
8904
+ let t = e.source ? `${e.message}: ${JSON.stringify(e.source)}` : e.message, n = new bs(nc(e), "UNEXPECTED_TOKEN", t);
8386
8905
  this.atDirectives || !this.doc ? this.errors.push(n) : this.doc.errors.push(n);
8387
8906
  break;
8388
8907
  }
8389
8908
  case "doc-end": {
8390
8909
  if (!this.doc) {
8391
- this.errors.push(new ys(tc(e), "UNEXPECTED_TOKEN", "Unexpected doc-end without preceding document"));
8910
+ this.errors.push(new bs(nc(e), "UNEXPECTED_TOKEN", "Unexpected doc-end without preceding document"));
8392
8911
  break;
8393
8912
  }
8394
8913
  this.doc.directives.docEnd = !0;
8395
- let t = ks(e.end, e.offset + e.source.length, this.doc.options.strict, this.onError);
8914
+ let t = As(e.end, e.offset + e.source.length, this.doc.options.strict, this.onError);
8396
8915
  if (this.decorate(this.doc, !0), t.comment) {
8397
8916
  let e = this.doc.comment;
8398
8917
  this.doc.comment = e ? `${e}\n${t.comment}` : t.comment;
@@ -8400,13 +8919,13 @@ var rc = class {
8400
8919
  this.doc.range[2] = t.offset;
8401
8920
  break;
8402
8921
  }
8403
- default: this.errors.push(new ys(tc(e), "UNEXPECTED_TOKEN", `Unsupported token ${e.type}`));
8922
+ default: this.errors.push(new bs(nc(e), "UNEXPECTED_TOKEN", `Unsupported token ${e.type}`));
8404
8923
  }
8405
8924
  }
8406
8925
  *end(e = !1, t = -1) {
8407
8926
  if (this.doc) this.decorate(this.doc, !0), yield this.doc, this.doc = null;
8408
8927
  else if (e) {
8409
- let e = new gs(void 0, Object.assign({ _directives: this.directives }, this.options));
8928
+ let e = new _s(void 0, Object.assign({ _directives: this.directives }, this.options));
8410
8929
  this.atDirectives && this.onError(t, "MISSING_CHAR", "Missing directives-end indicator line"), e.range = [
8411
8930
  0,
8412
8931
  t,
@@ -8417,24 +8936,24 @@ var rc = class {
8417
8936
  };
8418
8937
  //#endregion
8419
8938
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/cst-scalar.js
8420
- function ic(e, t = !0, n) {
8939
+ function ac(e, t = !0, n) {
8421
8940
  if (e) {
8422
8941
  let r = (e, t, r) => {
8423
8942
  let i = typeof e == "number" ? e : Array.isArray(e) ? e[0] : e.offset;
8424
8943
  if (n) n(i, t, r);
8425
- else throw new ys([i, i + 1], t, r);
8944
+ else throw new bs([i, i + 1], t, r);
8426
8945
  };
8427
8946
  switch (e.type) {
8428
8947
  case "scalar":
8429
8948
  case "single-quoted-scalar":
8430
- case "double-quoted-scalar": return Rs(e, t, r);
8431
- case "block-scalar": return Fs({ options: { strict: t } }, e, r);
8949
+ case "double-quoted-scalar": return zs(e, t, r);
8950
+ case "block-scalar": return Is({ options: { strict: t } }, e, r);
8432
8951
  }
8433
8952
  }
8434
8953
  return null;
8435
8954
  }
8436
- function ac(e, t) {
8437
- let { implicitKey: n = !1, indent: r, inFlow: i = !1, offset: a = -1, type: o = "PLAIN" } = t, s = Ka({
8955
+ function oc(e, t) {
8956
+ let { implicitKey: n = !1, indent: r, inFlow: i = !1, offset: a = -1, type: o = "PLAIN" } = t, s = qa({
8438
8957
  type: o,
8439
8958
  value: e
8440
8959
  }, {
@@ -8460,7 +8979,7 @@ function ac(e, t) {
8460
8979
  indent: r,
8461
8980
  source: t
8462
8981
  }];
8463
- return cc(i, c) || i.push({
8982
+ return lc(i, c) || i.push({
8464
8983
  type: "newline",
8465
8984
  offset: -1,
8466
8985
  indent: r,
@@ -8496,7 +9015,7 @@ function ac(e, t) {
8496
9015
  };
8497
9016
  }
8498
9017
  }
8499
- function oc(e, t, n = {}) {
9018
+ function sc(e, t, n = {}) {
8500
9019
  let { afterKey: r = !1, implicitKey: i = !1, inFlow: a = !1, type: o } = n, s = "indent" in e ? e.indent : null;
8501
9020
  if (r && typeof s == "number" && (s += 2), !o) switch (e.type) {
8502
9021
  case "single-quoted-scalar":
@@ -8513,7 +9032,7 @@ function oc(e, t, n = {}) {
8513
9032
  }
8514
9033
  default: o = "PLAIN";
8515
9034
  }
8516
- let c = Ka({
9035
+ let c = qa({
8517
9036
  type: o,
8518
9037
  value: t
8519
9038
  }, {
@@ -8528,18 +9047,18 @@ function oc(e, t, n = {}) {
8528
9047
  switch (c[0]) {
8529
9048
  case "|":
8530
9049
  case ">":
8531
- sc(e, c);
9050
+ cc(e, c);
8532
9051
  break;
8533
9052
  case "\"":
8534
- lc(e, c, "double-quoted-scalar");
9053
+ uc(e, c, "double-quoted-scalar");
8535
9054
  break;
8536
9055
  case "'":
8537
- lc(e, c, "single-quoted-scalar");
9056
+ uc(e, c, "single-quoted-scalar");
8538
9057
  break;
8539
- default: lc(e, c, "scalar");
9058
+ default: uc(e, c, "scalar");
8540
9059
  }
8541
9060
  }
8542
- function sc(e, t) {
9061
+ function cc(e, t) {
8543
9062
  let n = t.indexOf("\n"), r = t.substring(0, n), i = t.substring(n + 1) + "\n";
8544
9063
  if (e.type === "block-scalar") {
8545
9064
  let t = e.props[0];
@@ -8552,7 +9071,7 @@ function sc(e, t) {
8552
9071
  indent: n,
8553
9072
  source: r
8554
9073
  }];
8555
- cc(a, "end" in e ? e.end : void 0) || a.push({
9074
+ lc(a, "end" in e ? e.end : void 0) || a.push({
8556
9075
  type: "newline",
8557
9076
  offset: -1,
8558
9077
  indent: n,
@@ -8567,7 +9086,7 @@ function sc(e, t) {
8567
9086
  });
8568
9087
  }
8569
9088
  }
8570
- function cc(e, t) {
9089
+ function lc(e, t) {
8571
9090
  if (t) for (let n of t) switch (n.type) {
8572
9091
  case "space":
8573
9092
  case "comment":
@@ -8577,7 +9096,7 @@ function cc(e, t) {
8577
9096
  }
8578
9097
  return !1;
8579
9098
  }
8580
- function lc(e, t, n) {
9099
+ function uc(e, t, n) {
8581
9100
  switch (e.type) {
8582
9101
  case "scalar":
8583
9102
  case "double-quoted-scalar":
@@ -8624,28 +9143,28 @@ function lc(e, t, n) {
8624
9143
  }
8625
9144
  //#endregion
8626
9145
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/cst-stringify.js
8627
- var uc = (e) => "type" in e ? dc(e) : fc(e);
8628
- function dc(e) {
9146
+ var dc = (e) => "type" in e ? fc(e) : pc(e);
9147
+ function fc(e) {
8629
9148
  switch (e.type) {
8630
9149
  case "block-scalar": {
8631
9150
  let t = "";
8632
- for (let n of e.props) t += dc(n);
9151
+ for (let n of e.props) t += fc(n);
8633
9152
  return t + e.source;
8634
9153
  }
8635
9154
  case "block-map":
8636
9155
  case "block-seq": {
8637
9156
  let t = "";
8638
- for (let n of e.items) t += fc(n);
9157
+ for (let n of e.items) t += pc(n);
8639
9158
  return t;
8640
9159
  }
8641
9160
  case "flow-collection": {
8642
9161
  let t = e.start.source;
8643
- for (let n of e.items) t += fc(n);
9162
+ for (let n of e.items) t += pc(n);
8644
9163
  for (let n of e.end) t += n.source;
8645
9164
  return t;
8646
9165
  }
8647
9166
  case "document": {
8648
- let t = fc(e);
9167
+ let t = pc(e);
8649
9168
  if (e.end) for (let n of e.end) t += n.source;
8650
9169
  return t;
8651
9170
  }
@@ -8656,22 +9175,22 @@ function dc(e) {
8656
9175
  }
8657
9176
  }
8658
9177
  }
8659
- function fc({ start: e, key: t, sep: n, value: r }) {
9178
+ function pc({ start: e, key: t, sep: n, value: r }) {
8660
9179
  let i = "";
8661
9180
  for (let t of e) i += t.source;
8662
- if (t && (i += dc(t)), n) for (let e of n) i += e.source;
8663
- return r && (i += dc(r)), i;
9181
+ if (t && (i += fc(t)), n) for (let e of n) i += e.source;
9182
+ return r && (i += fc(r)), i;
8664
9183
  }
8665
9184
  //#endregion
8666
9185
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/cst-visit.js
8667
- var pc = Symbol("break visit"), mc = Symbol("skip children"), hc = Symbol("remove item");
8668
- function gc(e, t) {
9186
+ var mc = Symbol("break visit"), hc = Symbol("skip children"), gc = Symbol("remove item");
9187
+ function _c(e, t) {
8669
9188
  "type" in e && e.type === "document" && (e = {
8670
9189
  start: e.start,
8671
9190
  value: e.value
8672
- }), _c(Object.freeze([]), e, t);
9191
+ }), vc(Object.freeze([]), e, t);
8673
9192
  }
8674
- gc.BREAK = pc, gc.SKIP = mc, gc.REMOVE = hc, gc.itemAtPath = (e, t) => {
9193
+ _c.BREAK = mc, _c.SKIP = hc, _c.REMOVE = gc, _c.itemAtPath = (e, t) => {
8675
9194
  let n = e;
8676
9195
  for (let [e, r] of t) {
8677
9196
  let t = n?.[e];
@@ -8679,22 +9198,22 @@ gc.BREAK = pc, gc.SKIP = mc, gc.REMOVE = hc, gc.itemAtPath = (e, t) => {
8679
9198
  else return;
8680
9199
  }
8681
9200
  return n;
8682
- }, gc.parentCollection = (e, t) => {
8683
- let n = gc.itemAtPath(e, t.slice(0, -1)), r = t[t.length - 1][0], i = n?.[r];
9201
+ }, _c.parentCollection = (e, t) => {
9202
+ let n = _c.itemAtPath(e, t.slice(0, -1)), r = t[t.length - 1][0], i = n?.[r];
8684
9203
  if (i && "items" in i) return i;
8685
9204
  throw Error("Parent collection not found");
8686
9205
  };
8687
- function _c(e, t, n) {
9206
+ function vc(e, t, n) {
8688
9207
  let r = n(t, e);
8689
9208
  if (typeof r == "symbol") return r;
8690
9209
  for (let i of ["key", "value"]) {
8691
9210
  let a = t[i];
8692
9211
  if (a && "items" in a) {
8693
9212
  for (let t = 0; t < a.items.length; ++t) {
8694
- let r = _c(Object.freeze(e.concat([[i, t]])), a.items[t], n);
9213
+ let r = vc(Object.freeze(e.concat([[i, t]])), a.items[t], n);
8695
9214
  if (typeof r == "number") t = r - 1;
8696
- else if (r === pc) return pc;
8697
- else r === hc && (a.items.splice(t, 1), --t);
9215
+ else if (r === mc) return mc;
9216
+ else r === gc && (a.items.splice(t, 1), --t);
8698
9217
  }
8699
9218
  typeof r == "function" && i === "key" && (r = r(t, e));
8700
9219
  }
@@ -8703,23 +9222,23 @@ function _c(e, t, n) {
8703
9222
  }
8704
9223
  //#endregion
8705
9224
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/cst.js
8706
- var vc = /* @__PURE__ */ v({
9225
+ var yc = /* @__PURE__ */ v({
8707
9226
  BOM: () => "",
8708
9227
  DOCUMENT: () => "",
8709
9228
  FLOW_END: () => "",
8710
9229
  SCALAR: () => "",
8711
- createScalarToken: () => ac,
8712
- isCollection: () => yc,
8713
- isScalar: () => bc,
8714
- prettyToken: () => xc,
8715
- resolveAsScalar: () => ic,
8716
- setScalarValue: () => oc,
8717
- stringify: () => uc,
8718
- tokenType: () => Sc,
8719
- visit: () => gc
8720
- }), yc = (e) => !!e && "items" in e, bc = (e) => !!e && (e.type === "scalar" || e.type === "single-quoted-scalar" || e.type === "double-quoted-scalar" || e.type === "block-scalar");
9230
+ createScalarToken: () => oc,
9231
+ isCollection: () => bc,
9232
+ isScalar: () => xc,
9233
+ prettyToken: () => Sc,
9234
+ resolveAsScalar: () => ac,
9235
+ setScalarValue: () => sc,
9236
+ stringify: () => dc,
9237
+ tokenType: () => Cc,
9238
+ visit: () => _c
9239
+ }), bc = (e) => !!e && "items" in e, xc = (e) => !!e && (e.type === "scalar" || e.type === "single-quoted-scalar" || e.type === "double-quoted-scalar" || e.type === "block-scalar");
8721
9240
  /* istanbul ignore next */
8722
- function xc(e) {
9241
+ function Sc(e) {
8723
9242
  switch (e) {
8724
9243
  case "": return "<BOM>";
8725
9244
  case "": return "<DOC>";
@@ -8728,7 +9247,7 @@ function xc(e) {
8728
9247
  default: return JSON.stringify(e);
8729
9248
  }
8730
9249
  }
8731
- function Sc(e) {
9250
+ function Cc(e) {
8732
9251
  switch (e) {
8733
9252
  case "": return "byte-order-mark";
8734
9253
  case "": return "doc-mode";
@@ -8765,7 +9284,7 @@ function Sc(e) {
8765
9284
  }
8766
9285
  //#endregion
8767
9286
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/lexer.js
8768
- function Cc(e) {
9287
+ function wc(e) {
8769
9288
  switch (e) {
8770
9289
  case void 0:
8771
9290
  case " ":
@@ -8775,7 +9294,7 @@ function Cc(e) {
8775
9294
  default: return !1;
8776
9295
  }
8777
9296
  }
8778
- var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */ new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"), Ec = /* @__PURE__ */ new Set(",[]{}"), Dc = /* @__PURE__ */ new Set(" ,[]{}\n\r "), Oc = (e) => !e || Dc.has(e), kc = class {
9297
+ var Tc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Ec = /* @__PURE__ */ new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"), Dc = /* @__PURE__ */ new Set(",[]{}"), Oc = /* @__PURE__ */ new Set(" ,[]{}\n\r "), kc = (e) => !e || Oc.has(e), Ac = class {
8779
9298
  constructor() {
8780
9299
  this.atEnd = !1, this.blockScalarIndent = -1, this.blockScalarKeep = !1, this.buffer = "", this.flowKey = !1, this.flowLevel = 0, this.indentNext = 0, this.indentValue = 0, this.lineEndPos = null, this.next = null, this.pos = 0;
8781
9300
  }
@@ -8809,7 +9328,7 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8809
9328
  }
8810
9329
  if (t === "-" || t === ".") {
8811
9330
  let t = this.buffer.substr(e, 3);
8812
- if ((t === "---" || t === "...") && Cc(this.buffer[e + 3])) return -1;
9331
+ if ((t === "---" || t === "...") && wc(this.buffer[e + 3])) return -1;
8813
9332
  }
8814
9333
  return e;
8815
9334
  }
@@ -8871,14 +9390,14 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8871
9390
  if (e === "-" || e === ".") {
8872
9391
  if (!this.atEnd && !this.hasChars(4)) return this.setNext("line-start");
8873
9392
  let e = this.peek(3);
8874
- if ((e === "---" || e === "...") && Cc(this.charAt(3))) return yield* this.pushCount(3), this.indentValue = 0, this.indentNext = 0, e === "---" ? "doc" : "stream";
9393
+ if ((e === "---" || e === "...") && wc(this.charAt(3))) return yield* this.pushCount(3), this.indentValue = 0, this.indentNext = 0, e === "---" ? "doc" : "stream";
8875
9394
  }
8876
- return this.indentValue = yield* this.pushSpaces(!1), this.indentNext > this.indentValue && !Cc(this.charAt(1)) && (this.indentNext = this.indentValue), yield* this.parseBlockStart();
9395
+ return this.indentValue = yield* this.pushSpaces(!1), this.indentNext > this.indentValue && !wc(this.charAt(1)) && (this.indentNext = this.indentValue), yield* this.parseBlockStart();
8877
9396
  }
8878
9397
  *parseBlockStart() {
8879
9398
  let [e, t] = this.peek(2);
8880
9399
  if (!t && !this.atEnd) return this.setNext("block-start");
8881
- if ((e === "-" || e === "?" || e === ":") && Cc(t)) {
9400
+ if ((e === "-" || e === "?" || e === ":") && wc(t)) {
8882
9401
  let e = (yield* this.pushCount(1)) + (yield* this.pushSpaces(!0));
8883
9402
  return this.indentNext = this.indentValue + 1, this.indentValue += e, "block-start";
8884
9403
  }
@@ -8896,7 +9415,7 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8896
9415
  case "[": return yield* this.pushCount(1), this.flowKey = !1, this.flowLevel = 1, "flow";
8897
9416
  case "}":
8898
9417
  case "]": return yield* this.pushCount(1), "doc";
8899
- case "*": return yield* this.pushUntil(Oc), "doc";
9418
+ case "*": return yield* this.pushUntil(kc), "doc";
8900
9419
  case "\"":
8901
9420
  case "'": return yield* this.parseQuotedScalar();
8902
9421
  case "|":
@@ -8911,7 +9430,7 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8911
9430
  while (e + t > 0);
8912
9431
  let r = this.getLine();
8913
9432
  if (r === null) return this.setNext("flow");
8914
- if ((n !== -1 && n < this.indentNext && r[0] !== "#" || n === 0 && (r.startsWith("---") || r.startsWith("...")) && Cc(r[3])) && (n !== this.indentNext - 1 || this.flowLevel !== 1 || r[0] !== "]" && r[0] !== "}")) return this.flowLevel = 0, yield "", yield* this.parseLineStart();
9433
+ if ((n !== -1 && n < this.indentNext && r[0] !== "#" || n === 0 && (r.startsWith("---") || r.startsWith("...")) && wc(r[3])) && (n !== this.indentNext - 1 || this.flowLevel !== 1 || r[0] !== "]" && r[0] !== "}")) return this.flowLevel = 0, yield "", yield* this.parseLineStart();
8915
9434
  let i = 0;
8916
9435
  for (; r[i] === ",";) i += yield* this.pushCount(1), i += yield* this.pushSpaces(!0), this.flowKey = !1;
8917
9436
  switch (i += yield* this.pushIndicators(), r[i]) {
@@ -8921,12 +9440,12 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8921
9440
  case "[": return yield* this.pushCount(1), this.flowKey = !1, this.flowLevel += 1, "flow";
8922
9441
  case "}":
8923
9442
  case "]": return yield* this.pushCount(1), this.flowKey = !0, --this.flowLevel, this.flowLevel ? "flow" : "doc";
8924
- case "*": return yield* this.pushUntil(Oc), "flow";
9443
+ case "*": return yield* this.pushUntil(kc), "flow";
8925
9444
  case "\"":
8926
9445
  case "'": return this.flowKey = !0, yield* this.parseQuotedScalar();
8927
9446
  case ":": {
8928
9447
  let e = this.charAt(1);
8929
- if (this.flowKey || Cc(e) || e === ",") return this.flowKey = !1, yield* this.pushCount(1), yield* this.pushSpaces(!0), "flow";
9448
+ if (this.flowKey || wc(e) || e === ",") return this.flowKey = !1, yield* this.pushCount(1), yield* this.pushSpaces(!0), "flow";
8930
9449
  }
8931
9450
  default: return this.flowKey = !1, yield* this.parsePlainScalar();
8932
9451
  }
@@ -8964,7 +9483,7 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
8964
9483
  else if (t > "0" && t <= "9") this.blockScalarIndent = Number(t) - 1;
8965
9484
  else if (t !== "-") break;
8966
9485
  }
8967
- return yield* this.pushUntil((e) => Cc(e) || e === "#");
9486
+ return yield* this.pushUntil((e) => wc(e) || e === "#");
8968
9487
  }
8969
9488
  *parseBlockScalar() {
8970
9489
  let e = this.pos - 1, t = 0, n;
@@ -9014,18 +9533,18 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
9014
9533
  let e = this.flowLevel > 0, t = this.pos - 1, n = this.pos - 1, r;
9015
9534
  for (; r = this.buffer[++n];) if (r === ":") {
9016
9535
  let r = this.buffer[n + 1];
9017
- if (Cc(r) || e && Ec.has(r)) break;
9536
+ if (wc(r) || e && Dc.has(r)) break;
9018
9537
  t = n;
9019
- } else if (Cc(r)) {
9538
+ } else if (wc(r)) {
9020
9539
  let i = this.buffer[n + 1];
9021
- if (r === "\r" && (i === "\n" ? (n += 1, r = "\n", i = this.buffer[n + 1]) : t = n), i === "#" || e && Ec.has(i)) break;
9540
+ if (r === "\r" && (i === "\n" ? (n += 1, r = "\n", i = this.buffer[n + 1]) : t = n), i === "#" || e && Dc.has(i)) break;
9022
9541
  if (r === "\n") {
9023
9542
  let e = this.continueScalar(n + 1);
9024
9543
  if (e === -1) break;
9025
9544
  n = Math.max(n, e - 2);
9026
9545
  }
9027
9546
  } else {
9028
- if (e && Ec.has(r)) break;
9547
+ if (e && Dc.has(r)) break;
9029
9548
  t = n;
9030
9549
  }
9031
9550
  return !r && !this.atEnd ? this.setNext("plain-scalar") : (yield "", yield* this.pushToIndex(t + 1, !0), e ? "flow" : "doc");
@@ -9045,13 +9564,13 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
9045
9564
  e += yield* this.pushTag(), e += yield* this.pushSpaces(!0);
9046
9565
  continue loop;
9047
9566
  case "&":
9048
- e += yield* this.pushUntil(Oc), e += yield* this.pushSpaces(!0);
9567
+ e += yield* this.pushUntil(kc), e += yield* this.pushSpaces(!0);
9049
9568
  continue loop;
9050
9569
  case "-":
9051
9570
  case "?":
9052
9571
  case ":": {
9053
9572
  let t = this.flowLevel > 0, n = this.charAt(1);
9054
- if (Cc(n) || t && Ec.has(n)) {
9573
+ if (wc(n) || t && Dc.has(n)) {
9055
9574
  t ? this.flowKey &&= !1 : this.indentNext = this.indentValue + 1, e += yield* this.pushCount(1), e += yield* this.pushSpaces(!0);
9056
9575
  continue loop;
9057
9576
  }
@@ -9064,13 +9583,13 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
9064
9583
  *pushTag() {
9065
9584
  if (this.charAt(1) === "<") {
9066
9585
  let e = this.pos + 2, t = this.buffer[e];
9067
- for (; !Cc(t) && t !== ">";) t = this.buffer[++e];
9586
+ for (; !wc(t) && t !== ">";) t = this.buffer[++e];
9068
9587
  return yield* this.pushToIndex(t === ">" ? e + 1 : e, !1);
9069
9588
  }
9070
9589
  {
9071
9590
  let e = this.pos + 1, t = this.buffer[e];
9072
- for (; t;) if (Tc.has(t)) t = this.buffer[++e];
9073
- else if (t === "%" && wc.has(this.buffer[e + 1]) && wc.has(this.buffer[e + 2])) t = this.buffer[e += 3];
9591
+ for (; t;) if (Ec.has(t)) t = this.buffer[++e];
9592
+ else if (t === "%" && Tc.has(this.buffer[e + 1]) && Tc.has(this.buffer[e + 2])) t = this.buffer[e += 3];
9074
9593
  else break;
9075
9594
  return yield* this.pushToIndex(e, !1);
9076
9595
  }
@@ -9092,7 +9611,7 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
9092
9611
  for (; !e(n);) n = this.buffer[++t];
9093
9612
  return yield* this.pushToIndex(t, !1);
9094
9613
  }
9095
- }, Ac = class {
9614
+ }, jc = class {
9096
9615
  constructor() {
9097
9616
  this.lineStarts = [], this.addNewLine = (e) => this.lineStarts.push(e), this.linePos = (e) => {
9098
9617
  let t = 0, n = this.lineStarts.length;
@@ -9118,11 +9637,11 @@ var wc = /* @__PURE__ */ new Set("0123456789ABCDEFabcdef"), Tc = /* @__PURE__ */
9118
9637
  };
9119
9638
  //#endregion
9120
9639
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/parse/parser.js
9121
- function jc(e, t) {
9640
+ function Mc(e, t) {
9122
9641
  for (let n = 0; n < e.length; ++n) if (e[n].type === t) return !0;
9123
9642
  return !1;
9124
9643
  }
9125
- function Mc(e) {
9644
+ function Nc(e) {
9126
9645
  for (let t = 0; t < e.length; ++t) switch (e[t].type) {
9127
9646
  case "space":
9128
9647
  case "comment":
@@ -9131,7 +9650,7 @@ function Mc(e) {
9131
9650
  }
9132
9651
  return -1;
9133
9652
  }
9134
- function Nc(e) {
9653
+ function Pc(e) {
9135
9654
  switch (e?.type) {
9136
9655
  case "alias":
9137
9656
  case "scalar":
@@ -9141,7 +9660,7 @@ function Nc(e) {
9141
9660
  default: return !1;
9142
9661
  }
9143
9662
  }
9144
- function Pc(e) {
9663
+ function Fc(e) {
9145
9664
  switch (e.type) {
9146
9665
  case "document": return e.start;
9147
9666
  case "block-map": {
@@ -9153,7 +9672,7 @@ function Pc(e) {
9153
9672
  default: return [];
9154
9673
  }
9155
9674
  }
9156
- function Fc(e) {
9675
+ function Ic(e) {
9157
9676
  if (e.length === 0) return [];
9158
9677
  let t = e.length;
9159
9678
  loop: for (; --t >= 0;) switch (e[t].type) {
@@ -9166,16 +9685,16 @@ function Fc(e) {
9166
9685
  for (; e[++t]?.type === "space";);
9167
9686
  return e.splice(t, e.length);
9168
9687
  }
9169
- function Ic(e, t) {
9688
+ function Lc(e, t) {
9170
9689
  if (t.length < 1e5) Array.prototype.push.apply(e, t);
9171
9690
  else for (let n = 0; n < t.length; ++n) e.push(t[n]);
9172
9691
  }
9173
- function Lc(e) {
9174
- if (e.start.type === "flow-seq-start") for (let t of e.items) t.sep && !t.value && !jc(t.start, "explicit-key-ind") && !jc(t.sep, "map-value-ind") && (t.key && (t.value = t.key), delete t.key, Nc(t.value) ? t.value.end ? Ic(t.value.end, t.sep) : t.value.end = t.sep : Ic(t.start, t.sep), delete t.sep);
9692
+ function Rc(e) {
9693
+ if (e.start.type === "flow-seq-start") for (let t of e.items) t.sep && !t.value && !Mc(t.start, "explicit-key-ind") && !Mc(t.sep, "map-value-ind") && (t.key && (t.value = t.key), delete t.key, Pc(t.value) ? t.value.end ? Lc(t.value.end, t.sep) : t.value.end = t.sep : Lc(t.start, t.sep), delete t.sep);
9175
9694
  }
9176
- var Rc = class {
9695
+ var zc = class {
9177
9696
  constructor(e) {
9178
- this.atNewLine = !0, this.atScalar = !1, this.indent = 0, this.offset = 0, this.onKeyLine = !1, this.stack = [], this.source = "", this.type = "", this.lexer = new kc(), this.onNewLine = e;
9697
+ this.atNewLine = !0, this.atScalar = !1, this.indent = 0, this.offset = 0, this.onKeyLine = !1, this.stack = [], this.source = "", this.type = "", this.lexer = new Ac(), this.onNewLine = e;
9179
9698
  }
9180
9699
  *parse(e, t = !1) {
9181
9700
  this.onNewLine && this.offset === 0 && this.onNewLine(0);
@@ -9187,7 +9706,7 @@ var Rc = class {
9187
9706
  this.atScalar = !1, yield* this.step(), this.offset += e.length;
9188
9707
  return;
9189
9708
  }
9190
- let t = Sc(e);
9709
+ let t = Cc(e);
9191
9710
  if (!t) {
9192
9711
  let t = `Not a YAML token: ${e}`;
9193
9712
  yield* this.pop({
@@ -9270,7 +9789,7 @@ var Rc = class {
9270
9789
  else if (this.stack.length === 0) yield t;
9271
9790
  else {
9272
9791
  let e = this.peek(1);
9273
- switch (t.type === "block-scalar" ? t.indent = "indent" in e ? e.indent : 0 : t.type === "flow-collection" && e.type === "document" && (t.indent = 0), t.type === "flow-collection" && Lc(t), e.type) {
9792
+ switch (t.type === "block-scalar" ? t.indent = "indent" in e ? e.indent : 0 : t.type === "flow-collection" && e.type === "document" && (t.indent = 0), t.type === "flow-collection" && Rc(t), e.type) {
9274
9793
  case "document":
9275
9794
  e.value = t;
9276
9795
  break;
@@ -9322,7 +9841,7 @@ var Rc = class {
9322
9841
  }
9323
9842
  if ((e.type === "document" || e.type === "block-map" || e.type === "block-seq") && (t.type === "block-map" || t.type === "block-seq")) {
9324
9843
  let n = t.items[t.items.length - 1];
9325
- n && !n.sep && !n.value && n.start.length > 0 && Mc(n.start) === -1 && (t.indent === 0 || n.start.every((e) => e.type !== "comment" || e.indent < t.indent)) && (e.type === "document" ? e.end = n.start : e.items.push({ start: n.start }), t.items.splice(-1, 1));
9844
+ n && !n.sep && !n.value && n.start.length > 0 && Nc(n.start) === -1 && (t.indent === 0 || n.start.every((e) => e.type !== "comment" || e.indent < t.indent)) && (e.type === "document" ? e.end = n.start : e.items.push({ start: n.start }), t.items.splice(-1, 1));
9326
9845
  }
9327
9846
  }
9328
9847
  }
@@ -9363,7 +9882,7 @@ var Rc = class {
9363
9882
  if (e.value) return yield* this.lineEnd(e);
9364
9883
  switch (this.type) {
9365
9884
  case "doc-start":
9366
- Mc(e.start) === -1 ? e.start.push(this.sourceToken) : (yield* this.pop(), yield* this.step());
9885
+ Nc(e.start) === -1 ? e.start.push(this.sourceToken) : (yield* this.pop(), yield* this.step());
9367
9886
  return;
9368
9887
  case "anchor":
9369
9888
  case "tag":
@@ -9383,7 +9902,7 @@ var Rc = class {
9383
9902
  }
9384
9903
  *scalar(e) {
9385
9904
  if (this.type === "map-value-ind") {
9386
- let t = Fc(Pc(this.peek(2))), n;
9905
+ let t = Ic(Fc(this.peek(2))), n;
9387
9906
  e.end ? (n = e.end, n.push(this.sourceToken), delete e.end) : n = [this.sourceToken];
9388
9907
  let r = {
9389
9908
  type: "block-map",
@@ -9433,7 +9952,7 @@ var Rc = class {
9433
9952
  if (this.atIndentedComment(t.start, e.indent)) {
9434
9953
  let n = e.items[e.items.length - 2]?.value?.end;
9435
9954
  if (Array.isArray(n)) {
9436
- Ic(n, t.start), n.push(this.sourceToken), e.items.pop();
9955
+ Lc(n, t.start), n.push(this.sourceToken), e.items.pop();
9437
9956
  return;
9438
9957
  }
9439
9958
  }
@@ -9482,12 +10001,12 @@ var Rc = class {
9482
10001
  case "map-value-ind":
9483
10002
  if (t.explicitKey) {
9484
10003
  if (!t.sep) {
9485
- if (jc(t.start, "newline")) Object.assign(t, {
10004
+ if (Mc(t.start, "newline")) Object.assign(t, {
9486
10005
  key: null,
9487
10006
  sep: [this.sourceToken]
9488
10007
  });
9489
10008
  else {
9490
- let e = Fc(t.start);
10009
+ let e = Ic(t.start);
9491
10010
  this.stack.push({
9492
10011
  type: "block-map",
9493
10012
  offset: this.offset,
@@ -9504,7 +10023,7 @@ var Rc = class {
9504
10023
  key: null,
9505
10024
  sep: [this.sourceToken]
9506
10025
  });
9507
- else if (jc(t.sep, "map-value-ind")) this.stack.push({
10026
+ else if (Mc(t.sep, "map-value-ind")) this.stack.push({
9508
10027
  type: "block-map",
9509
10028
  offset: this.offset,
9510
10029
  indent: this.indent,
@@ -9514,8 +10033,8 @@ var Rc = class {
9514
10033
  sep: [this.sourceToken]
9515
10034
  }]
9516
10035
  });
9517
- else if (Nc(t.key) && !jc(t.sep, "newline")) {
9518
- let e = Fc(t.start), n = t.key, r = t.sep;
10036
+ else if (Pc(t.key) && !Mc(t.sep, "newline")) {
10037
+ let e = Ic(t.start), n = t.key, r = t.sep;
9519
10038
  r.push(this.sourceToken), delete t.key, delete t.sep, this.stack.push({
9520
10039
  type: "block-map",
9521
10040
  offset: this.offset,
@@ -9531,7 +10050,7 @@ var Rc = class {
9531
10050
  start: i,
9532
10051
  key: null,
9533
10052
  sep: [this.sourceToken]
9534
- }) : jc(t.sep, "map-value-ind") ? this.stack.push({
10053
+ }) : Mc(t.sep, "map-value-ind") ? this.stack.push({
9535
10054
  type: "block-map",
9536
10055
  offset: this.offset,
9537
10056
  indent: this.indent,
@@ -9565,7 +10084,7 @@ var Rc = class {
9565
10084
  let r = this.startBlockValue(e);
9566
10085
  if (r) {
9567
10086
  if (r.type === "block-seq") {
9568
- if (!t.explicitKey && t.sep && !jc(t.sep, "newline")) {
10087
+ if (!t.explicitKey && t.sep && !Mc(t.sep, "newline")) {
9569
10088
  yield* this.pop({
9570
10089
  type: "error",
9571
10090
  offset: this.offset,
@@ -9599,7 +10118,7 @@ var Rc = class {
9599
10118
  if (this.atIndentedComment(t.start, e.indent)) {
9600
10119
  let n = e.items[e.items.length - 2]?.value?.end;
9601
10120
  if (Array.isArray(n)) {
9602
- Ic(n, t.start), n.push(this.sourceToken), e.items.pop();
10121
+ Lc(n, t.start), n.push(this.sourceToken), e.items.pop();
9603
10122
  return;
9604
10123
  }
9605
10124
  }
@@ -9613,7 +10132,7 @@ var Rc = class {
9613
10132
  return;
9614
10133
  case "seq-item-ind":
9615
10134
  if (this.indent !== e.indent) break;
9616
- t.value || jc(t.start, "seq-item-ind") ? e.items.push({ start: [this.sourceToken] }) : t.start.push(this.sourceToken);
10135
+ t.value || Mc(t.start, "seq-item-ind") ? e.items.push({ start: [this.sourceToken] }) : t.start.push(this.sourceToken);
9617
10136
  return;
9618
10137
  }
9619
10138
  if (this.indent > e.indent) {
@@ -9682,8 +10201,8 @@ var Rc = class {
9682
10201
  let t = this.peek(2);
9683
10202
  if (t.type === "block-map" && (this.type === "map-value-ind" && t.indent === e.indent || this.type === "newline" && !t.items[t.items.length - 1].sep)) yield* this.pop(), yield* this.step();
9684
10203
  else if (this.type === "map-value-ind" && t.type !== "flow-collection") {
9685
- let n = Fc(Pc(t));
9686
- Lc(e);
10204
+ let n = Ic(Fc(t));
10205
+ Rc(e);
9687
10206
  let r = e.end.splice(1, e.end.length);
9688
10207
  r.push(this.sourceToken);
9689
10208
  let i = {
@@ -9742,7 +10261,7 @@ var Rc = class {
9742
10261
  };
9743
10262
  case "explicit-key-ind": {
9744
10263
  this.onKeyLine = !0;
9745
- let t = Fc(Pc(e));
10264
+ let t = Ic(Fc(e));
9746
10265
  return t.push(this.sourceToken), {
9747
10266
  type: "block-map",
9748
10267
  offset: this.offset,
@@ -9755,7 +10274,7 @@ var Rc = class {
9755
10274
  }
9756
10275
  case "map-value-ind": {
9757
10276
  this.onKeyLine = !0;
9758
- let t = Fc(Pc(e));
10277
+ let t = Ic(Fc(e));
9759
10278
  return {
9760
10279
  type: "block-map",
9761
10280
  offset: this.offset,
@@ -9793,39 +10312,39 @@ var Rc = class {
9793
10312
  };
9794
10313
  //#endregion
9795
10314
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/dist/public-api.js
9796
- function zc(e) {
10315
+ function Bc(e) {
9797
10316
  let t = e.prettyErrors !== !1;
9798
10317
  return {
9799
- lineCounter: e.lineCounter || t && new Ac() || null,
10318
+ lineCounter: e.lineCounter || t && new jc() || null,
9800
10319
  prettyErrors: t
9801
10320
  };
9802
10321
  }
9803
- function Bc(e, t = {}) {
9804
- let { lineCounter: n, prettyErrors: r } = zc(t), i = new Rc(n?.addNewLine), a = new rc(t), o = Array.from(a.compose(i.parse(e)));
9805
- if (r && n) for (let t of o) t.errors.forEach(xs(e, n)), t.warnings.forEach(xs(e, n));
10322
+ function Vc(e, t = {}) {
10323
+ let { lineCounter: n, prettyErrors: r } = Bc(t), i = new zc(n?.addNewLine), a = new ic(t), o = Array.from(a.compose(i.parse(e)));
10324
+ if (r && n) for (let t of o) t.errors.forEach(Ss(e, n)), t.warnings.forEach(Ss(e, n));
9806
10325
  return o.length > 0 ? o : Object.assign([], { empty: !0 }, a.streamInfo());
9807
10326
  }
9808
- function Vc(e, t = {}) {
9809
- let { lineCounter: n, prettyErrors: r } = zc(t), i = new Rc(n?.addNewLine), a = new rc(t), o = null;
10327
+ function Hc(e, t = {}) {
10328
+ let { lineCounter: n, prettyErrors: r } = Bc(t), i = new zc(n?.addNewLine), a = new ic(t), o = null;
9810
10329
  for (let t of a.compose(i.parse(e), !0, e.length)) if (!o) o = t;
9811
10330
  else if (o.options.logLevel !== "silent") {
9812
- o.errors.push(new ys(t.range.slice(0, 2), "MULTIPLE_DOCS", "Source contains multiple documents; please use YAML.parseAllDocuments()"));
10331
+ o.errors.push(new bs(t.range.slice(0, 2), "MULTIPLE_DOCS", "Source contains multiple documents; please use YAML.parseAllDocuments()"));
9813
10332
  break;
9814
10333
  }
9815
- return r && n && (o.errors.forEach(xs(e, n)), o.warnings.forEach(xs(e, n))), o;
10334
+ return r && n && (o.errors.forEach(Ss(e, n)), o.warnings.forEach(Ss(e, n))), o;
9816
10335
  }
9817
- function Hc(e, t, n) {
10336
+ function Uc(e, t, n) {
9818
10337
  let r;
9819
10338
  typeof t == "function" ? r = t : n === void 0 && t && typeof t == "object" && (n = t);
9820
- let i = Vc(e, n);
10339
+ let i = Hc(e, n);
9821
10340
  if (!i) return null;
9822
- if (i.warnings.forEach((e) => Qa(i.options.logLevel, e)), i.errors.length > 0) {
10341
+ if (i.warnings.forEach((e) => $a(i.options.logLevel, e)), i.errors.length > 0) {
9823
10342
  if (i.options.logLevel !== "silent") throw i.errors[0];
9824
10343
  i.errors = [];
9825
10344
  }
9826
10345
  return i.toJS(Object.assign({ reviver: r }, n));
9827
10346
  }
9828
- function Uc(e, t, n) {
10347
+ function Wc(e, t, n) {
9829
10348
  let r = null;
9830
10349
  if (typeof t == "function" || Array.isArray(t) ? r = t : n === void 0 && t && (n = t), typeof n == "string" && (n = n.length), typeof n == "number") {
9831
10350
  let e = Math.round(n);
@@ -9835,41 +10354,41 @@ function Uc(e, t, n) {
9835
10354
  let { keepUndefined: e } = n ?? t ?? {};
9836
10355
  if (!e) return;
9837
10356
  }
9838
- return Zi(e) && !r ? e.toString(n) : new gs(e, r, n).toString(n);
10357
+ return Qi(e) && !r ? e.toString(n) : new _s(e, r, n).toString(n);
9839
10358
  }
9840
10359
  //#endregion
9841
10360
  //#region node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/browser/index.js
9842
- var Wc = /* @__PURE__ */ v({
9843
- Alias: () => ba,
9844
- CST: () => vc,
9845
- Composer: () => rc,
9846
- Document: () => gs,
9847
- Lexer: () => kc,
9848
- LineCounter: () => Ac,
10361
+ var Gc = /* @__PURE__ */ v({
10362
+ Alias: () => xa,
10363
+ CST: () => yc,
10364
+ Composer: () => ic,
10365
+ Document: () => _s,
10366
+ Lexer: () => Ac,
10367
+ LineCounter: () => jc,
9849
10368
  Pair: () => Q,
9850
- Parser: () => Rc,
10369
+ Parser: () => zc,
9851
10370
  Scalar: () => Z,
9852
- Schema: () => ms,
9853
- YAMLError: () => vs,
10371
+ Schema: () => hs,
10372
+ YAMLError: () => ys,
9854
10373
  YAMLMap: () => $,
9855
- YAMLParseError: () => ys,
9856
- YAMLSeq: () => ho,
9857
- YAMLWarning: () => bs,
9858
- isAlias: () => Xi,
10374
+ YAMLParseError: () => bs,
10375
+ YAMLSeq: () => go,
10376
+ YAMLWarning: () => xs,
10377
+ isAlias: () => Zi,
9859
10378
  isCollection: () => J,
9860
- isDocument: () => Zi,
9861
- isMap: () => Qi,
10379
+ isDocument: () => Qi,
10380
+ isMap: () => $i,
9862
10381
  isNode: () => Y,
9863
10382
  isPair: () => K,
9864
10383
  isScalar: () => q,
9865
- isSeq: () => $i,
9866
- parse: () => Hc,
9867
- parseAllDocuments: () => Bc,
9868
- parseDocument: () => Vc,
9869
- stringify: () => Uc,
9870
- visit: () => ra,
9871
- visitAsync: () => aa
9872
- }), Gc = [
10384
+ isSeq: () => ea,
10385
+ parse: () => Uc,
10386
+ parseAllDocuments: () => Vc,
10387
+ parseDocument: () => Hc,
10388
+ stringify: () => Wc,
10389
+ visit: () => ia,
10390
+ visitAsync: () => oa
10391
+ }), Kc = [
9873
10392
  {
9874
10393
  version: "001_add_workflow_enabled",
9875
10394
  async apply() {
@@ -9889,18 +10408,18 @@ var Wc = /* @__PURE__ */ v({
9889
10408
  }
9890
10409
  }
9891
10410
  ];
9892
- async function Kc() {
10411
+ async function qc() {
9893
10412
  await C.exec("\n CREATE TABLE IF NOT EXISTS schema_migrations (\n version TEXT PRIMARY KEY,\n applied_at DATETIME DEFAULT CURRENT_TIMESTAMP\n )\n ");
9894
10413
  let e = new Set((await C.all("SELECT version FROM schema_migrations")).map((e) => e.version));
9895
- for (let t of Gc) e.has(t.version) || (await t.apply(), await C.run("INSERT INTO schema_migrations (version) VALUES (?)", [t.version]));
10414
+ for (let t of Kc) e.has(t.version) || (await t.apply(), await C.run("INSERT INTO schema_migrations (version) VALUES (?)", [t.version]));
9896
10415
  }
9897
- function qc(e) {
10416
+ function Jc(e) {
9898
10417
  let t = String(e || "").toLowerCase().replace(/[^a-z0-9]/g, "-").replace(/^-+|-+$/g, "");
9899
10418
  if (!t) throw Error("Workflow requires a name or id");
9900
10419
  return t;
9901
10420
  }
9902
- function Jc(e) {
9903
- let t = Wc.parse(e);
10421
+ function Yc(e) {
10422
+ let t = Gc.parse(e);
9904
10423
  if (!t || typeof t != "object" || Array.isArray(t)) throw Error("Workflow must be a YAML object");
9905
10424
  if (t.includes) throw Error("includes is not supported for database workflows");
9906
10425
  if (typeof t.name != "string" || !t.name.trim()) throw Error("Workflow name is required");
@@ -9927,7 +10446,7 @@ function Jc(e) {
9927
10446
  if (a && a.paths.some((e) => typeof e != "string" || !e.trim())) throw Error("artifacts.paths must contain non-empty strings");
9928
10447
  if (o && (typeof o.key != "string" || !o.key.trim() || o.paths.some((e) => typeof e != "string" || !e.trim()))) throw Error("cache requires a non-empty key and paths");
9929
10448
  return [{
9930
- id: qc(t.id || t.name),
10449
+ id: Jc(t.id || t.name),
9931
10450
  name: t.name,
9932
10451
  matrix: t.matrix,
9933
10452
  on: {
@@ -9946,12 +10465,12 @@ function Jc(e) {
9946
10465
  tags: Array.isArray(t.tags) ? [...new Set(t.tags.filter((e) => typeof e == "string").map((e) => e.trim()).filter(Boolean))] : void 0
9947
10466
  }];
9948
10467
  }
9949
- var Yc = class {
10468
+ var Xc = class {
9950
10469
  async init() {
9951
- await C.exec("\n CREATE TABLE IF NOT EXISTS workflows (\n id TEXT PRIMARY KEY, name TEXT NOT NULL, source_yaml TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'draft', active_revision INTEGER, enabled INTEGER NOT NULL DEFAULT 1,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n );\n CREATE TABLE IF NOT EXISTS workflow_revisions (\n workflow_id TEXT NOT NULL, revision INTEGER NOT NULL, source_yaml TEXT NOT NULL,\n normalized_json TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, revision)\n );\n CREATE TABLE IF NOT EXISTS scheduled_runs (\n workflow_id TEXT NOT NULL, trigger_id TEXT NOT NULL, scheduled_for TEXT NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, trigger_id, scheduled_for)\n );\n "), await Kc();
10470
+ await C.exec("\n CREATE TABLE IF NOT EXISTS workflows (\n id TEXT PRIMARY KEY, name TEXT NOT NULL, source_yaml TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'draft', active_revision INTEGER, enabled INTEGER NOT NULL DEFAULT 1,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n );\n CREATE TABLE IF NOT EXISTS workflow_revisions (\n workflow_id TEXT NOT NULL, revision INTEGER NOT NULL, source_yaml TEXT NOT NULL,\n normalized_json TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, revision)\n );\n CREATE TABLE IF NOT EXISTS scheduled_runs (\n workflow_id TEXT NOT NULL, trigger_id TEXT NOT NULL, scheduled_for TEXT NOT NULL,\n created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n PRIMARY KEY (workflow_id, trigger_id, scheduled_for)\n );\n "), await qc();
9952
10471
  }
9953
10472
  validate(e) {
9954
- let t = Jc(e);
10473
+ let t = Yc(e);
9955
10474
  for (let e of t) {
9956
10475
  for (let t of e.schedule || []) if (typeof t.cron != "string" || t.cron.trim().split(/\s+/).length !== 5) throw Error("schedule.cron must have five fields");
9957
10476
  for (let t of e.solar || []) if (!t.event || !Number.isFinite(t.latitude) || !Number.isFinite(t.longitude)) throw Error("solar triggers require event, latitude, and longitude");
@@ -9961,7 +10480,7 @@ var Yc = class {
9961
10480
  async saveDraft(e, t, n = !0) {
9962
10481
  let r = this.validate(t);
9963
10482
  if (r.length !== 1) throw Error("Workflow must contain exactly one definition");
9964
- let i = qc(e);
10483
+ let i = Jc(e);
9965
10484
  r[0].id = i;
9966
10485
  let a = await C.get("SELECT COALESCE(MAX(revision), 0) AS revision FROM workflow_revisions WHERE workflow_id = ?", [i]), o = Number(a?.revision || 0) + 1;
9967
10486
  return await C.run("INSERT INTO workflows (id, name, source_yaml, status, enabled) VALUES (?, ?, ?, 'draft', ?)\n ON CONFLICT(id) DO UPDATE SET name = excluded.name, source_yaml = excluded.source_yaml, status = 'draft', enabled = excluded.enabled, updated_at = CURRENT_TIMESTAMP", [
@@ -10052,10 +10571,10 @@ var Yc = class {
10052
10571
  n
10053
10572
  ]);
10054
10573
  }
10055
- }, Xc = 50, Zc = 500, Qc = class e {
10574
+ }, Zc = 50, Qc = 500, $c = class e {
10056
10575
  server;
10057
10576
  preprocessors = /* @__PURE__ */ new Map();
10058
- workflows = new Yc();
10577
+ workflows = new Xc();
10059
10578
  secretRepository = new er();
10060
10579
  queue;
10061
10580
  secrets;
@@ -10093,10 +10612,14 @@ var Yc = class {
10093
10612
  "Content-Type": "text/html; charset=utf-8",
10094
10613
  "Cache-Control": "no-store"
10095
10614
  }), t.end(Vi(n.searchParams.get("embed") === "1"));
10615
+ if (e.method === "GET" && n.pathname === "/api") return t.writeHead(200, {
10616
+ "Cache-Control": "no-store",
10617
+ "Content-Type": "application/json; charset=utf-8"
10618
+ }), t.end(JSON.stringify(Hi));
10096
10619
  if (e.method === "GET" && n.pathname === "/workflows") return this.requireAdmin(e, t) ? (t.writeHead(200, {
10097
10620
  "Content-Type": "text/html; charset=utf-8",
10098
10621
  "Cache-Control": "no-store"
10099
- }), t.end(Ui("list"))) : void 0;
10622
+ }), t.end(Wi("list"))) : void 0;
10100
10623
  let r = n.pathname.match(/^\/workflows\/(new|[a-z0-9-]+)$/);
10101
10624
  if (e.method === "GET" && r) {
10102
10625
  if (!this.requireAdmin(e, t)) return;
@@ -10106,11 +10629,11 @@ var Yc = class {
10106
10629
  "Cache-Control": "no-store"
10107
10630
  });
10108
10631
  let a = n.searchParams.get("revision"), o = a === null ? void 0 : Number(a), s = o !== void 0 && Number.isSafeInteger(o) && o > 0 ? o : void 0;
10109
- return t.end(Ui("editor", i, s));
10632
+ return t.end(Wi("editor", i, s));
10110
10633
  }
10111
10634
  if (e.method === "GET" && n.pathname === "/api/jobs") {
10112
- let e = n.searchParams.get("afterId"), r = n.searchParams.get("beforeId"), i = n.searchParams.get("limit"), a = n.searchParams.get("filter")?.trim() || void 0, o = e === null ? void 0 : Number(e), s = r === null ? void 0 : Number(r), c = i === null ? Xc : Number(i);
10113
- return o !== void 0 && (!Number.isSafeInteger(o) || o < 0) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "afterId must be a non-negative integer" }))) : s !== void 0 && (!Number.isSafeInteger(s) || s < 1) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "beforeId must be a positive integer" }))) : !Number.isSafeInteger(c) || c < 1 || c > Zc ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: `limit must be an integer from 1 to ${Zc}` }))) : a && a.length > 200 ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "filter must be at most 200 characters" }))) : this.renderDashboardJobs(t, c, o, s, a);
10635
+ let e = n.searchParams.get("afterId"), r = n.searchParams.get("beforeId"), i = n.searchParams.get("limit"), a = n.searchParams.get("filter")?.trim() || void 0, o = e === null ? void 0 : Number(e), s = r === null ? void 0 : Number(r), c = i === null ? Zc : Number(i);
10636
+ return o !== void 0 && (!Number.isSafeInteger(o) || o < 0) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "afterId must be a non-negative integer" }))) : s !== void 0 && (!Number.isSafeInteger(s) || s < 1) ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "beforeId must be a positive integer" }))) : !Number.isSafeInteger(c) || c < 1 || c > Qc ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: `limit must be an integer from 1 to ${Qc}` }))) : a && a.length > 200 ? (t.writeHead(400, { "Content-Type": "application/json; charset=utf-8" }), t.end(JSON.stringify({ error: "filter must be at most 200 characters" }))) : this.renderDashboardJobs(t, c, o, s, a);
10114
10637
  }
10115
10638
  if (e.method === "GET" && n.pathname === "/api/events") return this.events.subscribe(e, t);
10116
10639
  if (e.method === "GET" && n.pathname === "/api/push/public-key") return this.handlePushPublicKey(t);
@@ -10409,7 +10932,7 @@ var Yc = class {
10409
10932
  }
10410
10933
  }
10411
10934
  async renderDashboard(e) {
10412
- let t = await this.queue.listJobs(51), n = _e(t.slice(0, Xc)), r = await this.redactText(ve(n, t.length > Xc));
10935
+ let t = await this.queue.listJobs(51), n = _e(t.slice(0, Zc)), r = await this.redactText(ve(n, t.length > Zc));
10413
10936
  e.writeHead(200, { "Content-Type": "text/html; charset=utf-8" }), e.end(r);
10414
10937
  }
10415
10938
  async renderDashboardJobs(e, t, n, r, i) {
@@ -10498,7 +11021,7 @@ var Yc = class {
10498
11021
  });
10499
11022
  });
10500
11023
  }
10501
- }, $c = c(m), el = class {
11024
+ }, el = c(m), tl = class {
10502
11025
  name = "systemd";
10503
11026
  async isSupported() {
10504
11027
  try {
@@ -10622,7 +11145,7 @@ var Yc = class {
10622
11145
  cancel: async () => {
10623
11146
  f = !0;
10624
11147
  try {
10625
- t.image && await $c(`docker stop -t 2 ${s}`).catch(() => {}), await $c(`systemctl stop ${s}.service`).catch(() => {});
11148
+ t.image && await el(`docker stop -t 2 ${s}`).catch(() => {}), await el(`systemctl stop ${s}.service`).catch(() => {});
10626
11149
  } catch {}
10627
11150
  },
10628
11151
  logFilePath: o
@@ -10632,7 +11155,7 @@ var Yc = class {
10632
11155
  let t = await g(e, "utf-8"), n = t.includes("Running as unit: ") ? t.indexOf("\n") + 1 : 0, r = t.includes("Finished with result: ") ? t.lastIndexOf("Finished with result: ") : t.length;
10633
11156
  return t.slice(n, r);
10634
11157
  }
10635
- }, tl = class {
11158
+ }, nl = class {
10636
11159
  name = "standard-process";
10637
11160
  async isSupported() {
10638
11161
  return !0;
@@ -10748,19 +11271,19 @@ var Yc = class {
10748
11271
  };
10749
11272
  //#endregion
10750
11273
  //#region src/drivers/index.ts
10751
- async function nl() {
10752
- let e = new el();
10753
- return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new tl());
11274
+ async function rl() {
11275
+ let e = new tl();
11276
+ return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new nl());
10754
11277
  }
10755
11278
  //#endregion
10756
11279
  //#region src/signals.ts
10757
- async function rl(e) {
11280
+ async function il(e) {
10758
11281
  let t = !1;
10759
11282
  async function n(n) {
10760
11283
  if (!t) {
10761
11284
  t = !0, console.log(`\n🛑 Received ${n}. Initiating graceful shutdown...`);
10762
11285
  try {
10763
- ll(), e.length > 0 && (console.log("⚙️ Waiting for active worker jobs to drain..."), await Promise.allSettled(e)), console.log("✨ Engine stopped cleanly. Goodbye!"), process.exit(0);
11286
+ ul(), e.length > 0 && (console.log("⚙️ Waiting for active worker jobs to drain..."), await Promise.allSettled(e)), console.log("✨ Engine stopped cleanly. Goodbye!"), process.exit(0);
10764
11287
  } catch (e) {
10765
11288
  console.error("❌ Error during graceful shutdown:", e.message), process.exit(1);
10766
11289
  }
@@ -10770,7 +11293,7 @@ async function rl(e) {
10770
11293
  }
10771
11294
  //#endregion
10772
11295
  //#region src/plugins/manager.ts
10773
- var il = class {
11296
+ var al = class {
10774
11297
  plugins;
10775
11298
  constructor(e = []) {
10776
11299
  this.plugins = e;
@@ -10792,38 +11315,38 @@ var il = class {
10792
11315
  console.error(`[Plugin Error] ${n.name}.onWorkflowFinish:`, e);
10793
11316
  }
10794
11317
  }
10795
- }, al = { isStopping: !1 }, ol = /* @__PURE__ */ new Set(), sl = null, cl = null;
10796
- function ll() {
10797
- al.isStopping = !0, sl?.abort(), cl?.();
11318
+ }, ol = { isStopping: !1 }, sl = /* @__PURE__ */ new Set(), cl = null, ll = null;
11319
+ function ul() {
11320
+ ol.isStopping = !0, cl?.abort(), ll?.();
10798
11321
  }
10799
- function ul(e, t, n, r) {
10800
- al.isStopping = !1;
10801
- let i = [dl(e, t, n, r)];
10802
- return rl(i), i;
11322
+ function dl(e, t, n, r) {
11323
+ ol.isStopping = !1;
11324
+ let i = [fl(e, t, n, r)];
11325
+ return il(i), i;
10803
11326
  }
10804
- async function dl(e, t, n, r) {
10805
- let i = await nl(), a = new Yc(), o = /* @__PURE__ */ new Set(), s = 0, c = null, l = () => {
11327
+ async function fl(e, t, n, r) {
11328
+ let i = await rl(), a = new Xc(), o = /* @__PURE__ */ new Set(), s = 0, c = null, l = () => {
10806
11329
  s++, c?.();
10807
11330
  };
10808
- cl = l, sl = new AbortController();
10809
- let u = fl(r, sl.signal, l);
10810
- for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !al.isStopping;) {
11331
+ ll = l, cl = new AbortController();
11332
+ let u = pl(r, cl.signal, l);
11333
+ for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !ol.isStopping;) {
10811
11334
  let n = s;
10812
11335
  try {
10813
- for (; o.size < e && !al.isStopping;) {
11336
+ for (; o.size < e && !ol.isStopping;) {
10814
11337
  let e = await t.claimNextJob(r.tags);
10815
11338
  if (!e) break;
10816
- if (al.isStopping) {
11339
+ if (ol.isStopping) {
10817
11340
  await t.releaseJob(e.id);
10818
11341
  break;
10819
11342
  }
10820
11343
  let n = process.env.WORKER_NAME || "cli", s;
10821
11344
  s = (async () => {
10822
- hl(r, e.id);
11345
+ gl(r, e.id);
10823
11346
  let o = await a.getRevision(e.workflow_id, e.workflow_revision);
10824
11347
  if (!o) throw await t.finishJob(e.id, "failed"), Error(`Workflow ${e.workflow_id} revision ${e.workflow_revision} was not found`);
10825
11348
  let s = new me();
10826
- s.replace(await gl(r, n, e.id)), await _l({
11349
+ s.replace(await _l(r, n, e.id)), await vl({
10827
11350
  workerId: n,
10828
11351
  job: e,
10829
11352
  queue: t,
@@ -10833,17 +11356,17 @@ async function dl(e, t, n, r) {
10833
11356
  workflow: o
10834
11357
  });
10835
11358
  })().catch((e) => console.error(`[${n}] ⚠️ Worker execution error:`, e)).finally(() => {
10836
- o.delete(s), hl(r, e.id), l();
11359
+ o.delete(s), gl(r, e.id), l();
10837
11360
  }), o.add(s);
10838
11361
  }
10839
11362
  } catch (e) {
10840
11363
  console.error("⚠️ Worker scheduler claim error:", e), setTimeout(l, 5e3).unref();
10841
11364
  }
10842
- !al.isStopping && s === n && (await pl(n, () => s, (e) => c = e), c = null);
11365
+ !ol.isStopping && s === n && (await ml(n, () => s, (e) => c = e), c = null);
10843
11366
  }
10844
- sl.abort(), await Promise.allSettled(o), await u, cl = null, console.log("🛑 Worker scheduler stopped cleanly.");
11367
+ cl.abort(), await Promise.allSettled(o), await u, ll = null, console.log("🛑 Worker scheduler stopped cleanly.");
10845
11368
  }
10846
- async function fl(e, t, n) {
11369
+ async function pl(e, t, n) {
10847
11370
  let r = 1e3;
10848
11371
  for (; !t.aborted;) {
10849
11372
  try {
@@ -10854,10 +11377,10 @@ async function fl(e, t, n) {
10854
11377
  if (t.aborted || e?.name === "AbortError") break;
10855
11378
  console.error(`⚠️ Worker event stream disconnected: ${e.message}`);
10856
11379
  }
10857
- await ml(r, t), r = Math.min(r * 2, 3e4);
11380
+ await hl(r, t), r = Math.min(r * 2, 3e4);
10858
11381
  }
10859
11382
  }
10860
- function pl(e, t, n) {
11383
+ function ml(e, t, n) {
10861
11384
  return new Promise((r) => {
10862
11385
  if (t() !== e) return r();
10863
11386
  let i = setTimeout(r, 6e4);
@@ -10866,7 +11389,7 @@ function pl(e, t, n) {
10866
11389
  });
10867
11390
  });
10868
11391
  }
10869
- function ml(e, t) {
11392
+ function hl(e, t) {
10870
11393
  return new Promise((n) => {
10871
11394
  if (t.aborted) return n();
10872
11395
  let r = () => {
@@ -10877,7 +11400,7 @@ function ml(e, t) {
10877
11400
  t.addEventListener("abort", r, { once: !0 });
10878
11401
  });
10879
11402
  }
10880
- async function hl(e, t) {
11403
+ async function gl(e, t) {
10881
11404
  if (e.workerToken) try {
10882
11405
  let n = await fetch(new URL("/api/events", e.serverUrl), {
10883
11406
  method: "POST",
@@ -10893,7 +11416,7 @@ async function hl(e, t) {
10893
11416
  Jn("Failed to publish job status event:", e);
10894
11417
  }
10895
11418
  }
10896
- async function gl(e, t, n) {
11419
+ async function _l(e, t, n) {
10897
11420
  if (!e.workerToken) return {};
10898
11421
  try {
10899
11422
  let r = await fetch(new URL(`/api/jobs/${n}/secrets`, e.serverUrl), {
@@ -10909,7 +11432,7 @@ async function gl(e, t, n) {
10909
11432
  throw console.error(`Unable to retrieve secrets for job ${n}:`, e), e;
10910
11433
  }
10911
11434
  }
10912
- async function _l(e) {
11435
+ async function vl(e) {
10913
11436
  let { workerId: t, job: n, config: r, secrets: a, queue: o } = e;
10914
11437
  console.log(`\n[${t}] 📦 Claimed Job #${n.id} (Workflow: ${n.workflow_id})`);
10915
11438
  let s = typeof n.payload == "string" ? JSON.parse(n.payload) : n.payload;
@@ -10934,10 +11457,10 @@ async function _l(e) {
10934
11457
  durationMs: 0,
10935
11458
  outputs: {},
10936
11459
  logContent: ""
10937
- })), b = jl(n, "running", p, f, _.env, y, s);
10938
- await o.saveReport(n.id, b), hl(r, n.id);
11460
+ })), b = Ml(n, "running", p, f, _.env, y, s);
11461
+ await o.saveReport(n.id, b), gl(r, n.id);
10939
11462
  try {
10940
- Object.assign(_.env, await xl(l.env, _)), Ol(l.secretFiles, a.getAll(), g), v = l.cache ? String(await Zn.evaluateValue(l.cache.key, _)) : "", v && l.cache && await Dl(o, "cache", `${n.workflow_id}:${v}`, l.cache.paths, g), await o.saveReport(n.id, b);
11463
+ Object.assign(_.env, await Sl(l.env, _)), kl(l.secretFiles, a.getAll(), g), v = l.cache ? String(await Zn.evaluateValue(l.cache.key, _)) : "", v && l.cache && await Ol(o, "cache", `${n.workflow_id}:${v}`, l.cache.paths, g), await o.saveReport(n.id, b);
10941
11464
  } catch (e) {
10942
11465
  b.status = "failed", b.finishedAt = (/* @__PURE__ */ new Date()).toISOString(), b.durationMs = Date.now() - p;
10943
11466
  let r = {
@@ -10950,31 +11473,31 @@ async function _l(e) {
10950
11473
  await o.completeJob(n.id, "failed", r), console.error(`[${t}] ❌ Job setup failed:`, e);
10951
11474
  return;
10952
11475
  }
10953
- let x = new il(r.plugins), S = {
11476
+ let x = new al(r.plugins), S = {
10954
11477
  jobId: String(n.id),
10955
11478
  workflowName: l.name,
10956
11479
  inputs: f,
10957
11480
  runUrl: new URL(`/runs/${n.id}`, r.serverUrl).toString()
10958
11481
  };
10959
11482
  await x.triggerWorkflowStart(S);
10960
- let { cancelled: ee, failed: te } = await vl({
11483
+ let { cancelled: ee, failed: te } = await yl({
10961
11484
  payload: s,
10962
11485
  steps: d,
10963
11486
  executionContext: _,
10964
11487
  ...u
10965
11488
  }, b), ne = ee ? "cancelled" : te ? "failed" : "success";
10966
11489
  if (ne === "success") try {
10967
- let e = l.artifacts ? await El(l.artifacts.paths, g) : [];
11490
+ let e = l.artifacts ? await Dl(l.artifacts.paths, g) : [];
10968
11491
  if (e.length && (await o.saveStoredFiles("artifact", String(n.id), e), b.artifacts = e.map((e) => e.path)), v && l.cache) {
10969
- let e = await El(l.cache.paths, g);
11492
+ let e = await Dl(l.cache.paths, g);
10970
11493
  e.length && await o.saveStoredFiles("cache", `${n.workflow_id}:${v}`, e);
10971
11494
  }
10972
11495
  } catch (e) {
10973
11496
  console.error(`[${t}] ⚠️ Failed to store workflow files:`, e), ne = "failed";
10974
11497
  }
10975
- b.status = ne, b.durationMs = Date.now() - p, b.finishedAt = (/* @__PURE__ */ new Date()).toISOString(), await o.completeJob(n.id, ne, b), hl(r, n.id), console.log(`[${t}] ✅ Job #${n.id} completed as: ${ne}`), await x.triggerWorkflowFinish(S, ne);
11498
+ b.status = ne, b.durationMs = Date.now() - p, b.finishedAt = (/* @__PURE__ */ new Date()).toISOString(), await o.completeJob(n.id, ne, b), gl(r, n.id), console.log(`[${t}] ✅ Job #${n.id} completed as: ${ne}`), await x.triggerWorkflowFinish(S, ne);
10976
11499
  }
10977
- async function vl(e, t) {
11500
+ async function yl(e, t) {
10978
11501
  let { driver: n, workerId: r, queue: i, config: a, job: o, payload: s, steps: c, executionContext: l } = e, u = t.steps, d = !1, f = !1, p = 0;
10979
11502
  try {
10980
11503
  for (let s = 0; s < c.length; s++) {
@@ -10989,14 +11512,14 @@ async function vl(e, t) {
10989
11512
  logContent: "",
10990
11513
  startedAt: h,
10991
11514
  finishedAt: void 0
10992
- }, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), hl(a, o.id);
11515
+ }, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), gl(a, o.id);
10993
11516
  let g = {
10994
11517
  failed: !0,
10995
11518
  skipped: !1,
10996
11519
  cancelled: !1,
10997
11520
  report: null
10998
11521
  }, _ = e.workflow?.retries ?? 0;
10999
- for (let e = 1; e <= _ + 1 && (g = await yl({
11522
+ for (let e = 1; e <= _ + 1 && (g = await bl({
11000
11523
  workerId: r,
11001
11524
  jobId: o.id,
11002
11525
  step: m,
@@ -11024,7 +11547,7 @@ async function vl(e, t) {
11024
11547
  exitCode: 1,
11025
11548
  error: "Step failed before execution started",
11026
11549
  finishedAt: (/* @__PURE__ */ new Date()).toISOString()
11027
- }, p = s + 1, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), hl(a, o.id), g.skipped) break;
11550
+ }, p = s + 1, t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), gl(a, o.id), g.skipped) break;
11028
11551
  if (g.cancelled) {
11029
11552
  f = !0, d = !0;
11030
11553
  break;
@@ -11037,13 +11560,13 @@ async function vl(e, t) {
11037
11560
  } catch (e) {
11038
11561
  console.log("🛑 Step failed", e), d = !0;
11039
11562
  }
11040
- return p < c.length && (Al(c, p, u), t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), hl(a, o.id)), {
11563
+ return p < c.length && (jl(c, p, u), t.durationMs = Date.now() - Date.parse(t.startedAt), await i.saveReport(o.id, t), gl(a, o.id)), {
11041
11564
  failed: d,
11042
11565
  cancelled: f,
11043
11566
  stepReports: u
11044
11567
  };
11045
11568
  }
11046
- async function yl(e) {
11569
+ async function bl(e) {
11047
11570
  let { step: t, stepIndex: n, executionContext: r } = e;
11048
11571
  if (t.id ||= `step-${n}`, t.name ||= t.id, t.if && !await Zn.evaluateConditions(t.if, r)) return Jn(`⏩ Skipped step ${t.id} based on condition: ${t.if}`, r), {
11049
11572
  failed: !1,
@@ -11052,7 +11575,7 @@ async function yl(e) {
11052
11575
  report: null
11053
11576
  };
11054
11577
  try {
11055
- let n = await xl(t.env, r), i = {
11578
+ let n = await Sl(t.env, r), i = {
11056
11579
  jobId: String(e.jobId),
11057
11580
  step: t,
11058
11581
  command: t.run,
@@ -11069,10 +11592,10 @@ async function yl(e) {
11069
11592
  WORKING_DIR: r.workingDir
11070
11593
  }
11071
11594
  };
11072
- return t.eval ? bl({
11595
+ return t.eval ? xl({
11073
11596
  ...e,
11074
11597
  stepContext: i
11075
- }) : kl({
11598
+ }) : Al({
11076
11599
  ...e,
11077
11600
  stepContext: i
11078
11601
  });
@@ -11095,7 +11618,7 @@ async function yl(e) {
11095
11618
  };
11096
11619
  }
11097
11620
  }
11098
- async function bl(e) {
11621
+ async function xl(e) {
11099
11622
  let { queue: t, stepContext: n, executionContext: r } = e, { jobId: i, step: a } = n, o = Date.now(), s = a.id, c = a.name, l;
11100
11623
  try {
11101
11624
  let e = new Promise((e, t) => {
@@ -11145,7 +11668,7 @@ async function bl(e) {
11145
11668
  l && clearTimeout(l);
11146
11669
  }
11147
11670
  }
11148
- async function xl(e, t) {
11671
+ async function Sl(e, t) {
11149
11672
  let n = {};
11150
11673
  if (e) for (let [r, i] of Object.entries(e)) n[r] = String(await Zn.evaluateValue(i, {
11151
11674
  ...t,
@@ -11156,18 +11679,18 @@ async function xl(e, t) {
11156
11679
  }));
11157
11680
  return n;
11158
11681
  }
11159
- var Sl = 52428800;
11160
- function Cl(e, t) {
11682
+ var Cl = 52428800;
11683
+ function wl(e, t) {
11161
11684
  let n = i.resolve(e), r = i.resolve(n, t);
11162
11685
  if (r !== n && !r.startsWith(`${n}${i.sep}`)) throw Error(`Stored file path escapes workspace: ${t}`);
11163
11686
  return r;
11164
11687
  }
11165
- function wl(e, t) {
11688
+ function Tl(e, t) {
11166
11689
  let n = "^";
11167
11690
  for (let e = 0; e < t.length; e++) t[e] === "*" && t[e + 1] === "*" ? (n += ".*", e++) : t[e] === "*" ? n += "[^/]*" : n += t[e].replace(/[|\\{}()[\]^$+?.]/g, "\\$&");
11168
11691
  return RegExp(`${n}$`).test(e);
11169
11692
  }
11170
- function Tl(t, n) {
11693
+ function El(t, n) {
11171
11694
  let r = i.resolve(n), a = [], o = (t) => {
11172
11695
  for (let n of e.readdirSync(t, { withFileTypes: !0 })) {
11173
11696
  let e = i.join(t, n.name);
@@ -11175,42 +11698,42 @@ function Tl(t, n) {
11175
11698
  }
11176
11699
  };
11177
11700
  return o(r), a.filter((r) => t.some((t) => {
11178
- let i = Cl(n, t);
11701
+ let i = wl(n, t);
11179
11702
  if (e.existsSync(i)) {
11180
11703
  let n = e.statSync(i);
11181
11704
  if (n.isFile()) return r === t;
11182
11705
  if (n.isDirectory()) return r === t || r.startsWith(`${t.replace(/\/$/, "")}/`);
11183
11706
  }
11184
- return wl(r, t);
11707
+ return Tl(r, t);
11185
11708
  }));
11186
11709
  }
11187
- async function El(t, n) {
11188
- let r = Tl(t, n), i = 0;
11710
+ async function Dl(t, n) {
11711
+ let r = El(t, n), i = 0;
11189
11712
  return r.map((t) => {
11190
- let r = e.readFileSync(Cl(n, t));
11191
- if (r.byteLength > Sl || (i += r.byteLength) > Sl) throw Error(`Stored files exceed ${Sl} bytes`);
11713
+ let r = e.readFileSync(wl(n, t));
11714
+ if (r.byteLength > Cl || (i += r.byteLength) > Cl) throw Error(`Stored files exceed ${Cl} bytes`);
11192
11715
  return {
11193
11716
  path: t,
11194
11717
  content: r.toString("base64")
11195
11718
  };
11196
11719
  });
11197
11720
  }
11198
- async function Dl(t, n, r, a, o) {
11721
+ async function Ol(t, n, r, a, o) {
11199
11722
  for (let s of await t.getStoredFiles(n, r)) {
11200
- if (!a.some((e) => s.path === e || s.path.startsWith(`${e.replace(/\/$/, "")}/`) || wl(s.path, e))) continue;
11201
- let t = Cl(o, s.path);
11723
+ if (!a.some((e) => s.path === e || s.path.startsWith(`${e.replace(/\/$/, "")}/`) || Tl(s.path, e))) continue;
11724
+ let t = wl(o, s.path);
11202
11725
  e.mkdirSync(i.dirname(t), { recursive: !0 }), e.writeFileSync(t, Buffer.from(s.content, "base64"));
11203
11726
  }
11204
11727
  }
11205
- function Ol(t, n, r) {
11728
+ function kl(t, n, r) {
11206
11729
  for (let [a, o] of Object.entries(t || {})) {
11207
11730
  let t = n[o];
11208
11731
  if (t === void 0) throw Error(`Secret '${o}' is not available for file '${a}'`);
11209
- let s = Cl(r, a);
11732
+ let s = wl(r, a);
11210
11733
  e.mkdirSync(i.dirname(s), { recursive: !0 }), e.writeFileSync(s, t, { mode: 384 }), e.chmodSync(s, 384);
11211
11734
  }
11212
11735
  }
11213
- async function kl(t) {
11736
+ async function Al(t) {
11214
11737
  let { workerId: n, jobId: r, stepContext: i, executionContext: a, driver: o, queue: s } = t, { step: c } = i, l = c.id, u = c.name, d;
11215
11738
  try {
11216
11739
  d = o.execute(i);
@@ -11225,11 +11748,11 @@ async function kl(t) {
11225
11748
  logFilePath: ""
11226
11749
  };
11227
11750
  }
11228
- ol.add(d);
11751
+ sl.add(d);
11229
11752
  let f = !1, p = setInterval(async () => {
11230
11753
  await s.isCancelled(r) && (console.log(`[${n}] 🛑 Job #${r} was cancelled! Halting execution.`), f = !0, clearInterval(p), await d.cancel());
11231
11754
  }, 3e3), m = await d.done;
11232
- if (clearInterval(p), ol.delete(d), d.logFilePath && e.existsSync(d.logFilePath)) try {
11755
+ if (clearInterval(p), sl.delete(d), d.logFilePath && e.existsSync(d.logFilePath)) try {
11233
11756
  let e = await o.readLog(d.logFilePath);
11234
11757
  await s.saveStepLog(r, l, e);
11235
11758
  } catch (e) {
@@ -11256,7 +11779,7 @@ async function kl(t) {
11256
11779
  }
11257
11780
  };
11258
11781
  }
11259
- function Al(e, t, n) {
11782
+ function jl(e, t, n) {
11260
11783
  for (let r = t; r < e.length; r++) {
11261
11784
  let t = e[r], i = t.id || `step-${r}`;
11262
11785
  n[r] = {
@@ -11270,7 +11793,7 @@ function Al(e, t, n) {
11270
11793
  };
11271
11794
  }
11272
11795
  }
11273
- function jl(e, t, n, r, i, a, o) {
11796
+ function Ml(e, t, n, r, i, a, o) {
11274
11797
  return {
11275
11798
  jobId: String(e.id),
11276
11799
  parentId: String(e.parentId || ""),
@@ -11291,7 +11814,7 @@ function jl(e, t, n, r, i, a, o) {
11291
11814
  }
11292
11815
  //#endregion
11293
11816
  //#region src/scheduler.ts
11294
- function Ml(e, t, n, r) {
11817
+ function Nl(e, t, n, r) {
11295
11818
  return e.split(",").some((e) => {
11296
11819
  let [i, a] = e.split("/"), o = a ? Number(a) : 1;
11297
11820
  if (!Number.isInteger(o) || o < 1) return !1;
@@ -11299,7 +11822,7 @@ function Ml(e, t, n, r) {
11299
11822
  return Number.isInteger(l) && Number.isInteger(u) && t >= l && t <= u && (t - l) % o === 0;
11300
11823
  });
11301
11824
  }
11302
- function Nl(e, t, n = "UTC") {
11825
+ function Pl(e, t, n = "UTC") {
11303
11826
  let r = e.trim().split(/\s+/);
11304
11827
  if (r.length !== 5) return !1;
11305
11828
  let i = new Intl.DateTimeFormat("en-US", {
@@ -11321,16 +11844,16 @@ function Nl(e, t, n = "UTC") {
11321
11844
  "Thu",
11322
11845
  "Fri",
11323
11846
  "Sat"
11324
- ].indexOf(i.weekday), o = Ml(r[2], Number(i.day), 1, 31), s = Ml(r[4].replace(/7/g, "0"), a, 0, 6);
11325
- return Ml(r[0], Number(i.minute), 0, 59) && Ml(r[1], Number(i.hour), 0, 23) && Ml(r[3], Number(i.month), 1, 12) && (r[2] === "*" || r[4] === "*" ? o && s : o || s);
11847
+ ].indexOf(i.weekday), o = Nl(r[2], Number(i.day), 1, 31), s = Nl(r[4].replace(/7/g, "0"), a, 0, 6);
11848
+ return Nl(r[0], Number(i.minute), 0, 59) && Nl(r[1], Number(i.hour), 0, 23) && Nl(r[3], Number(i.month), 1, 12) && (r[2] === "*" || r[4] === "*" ? o && s : o || s);
11326
11849
  }
11327
- function Pl(e) {
11850
+ function Fl(e) {
11328
11851
  if (!e) return 0;
11329
11852
  let t = e.match(/^([+-]?)(\d+)(m|h)$/);
11330
11853
  if (!t) throw Error(`Invalid solar offset: ${e}`);
11331
11854
  return (t[1] === "-" ? -1 : 1) * Number(t[2]) * (t[3] === "h" ? 36e5 : 6e4);
11332
11855
  }
11333
- function Fl(e, t) {
11856
+ function Il(e, t) {
11334
11857
  let n = t.latitude, r = t.longitude, i = Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()), a = Math.floor((i - Date.UTC(e.getUTCFullYear(), 0, 0)) / 864e5), o = r / 15, s = a + ((t.event === "sunrise" ? 6 : 18) - o) / 24, c = .9856 * s - 3.289, l = c + 1.916 * Math.sin(c * Math.PI / 180) + .02 * Math.sin(2 * c * Math.PI / 180) + 282.634;
11335
11858
  l = (l + 360) % 360;
11336
11859
  let u = Math.atan(.91764 * Math.tan(l * Math.PI / 180)) * 180 / Math.PI;
@@ -11338,9 +11861,9 @@ function Fl(e, t) {
11338
11861
  let d = .39782 * Math.sin(l * Math.PI / 180), f = Math.cos(Math.asin(d)), p = (Math.cos(90.833 * Math.PI / 180) - d * Math.sin(n * Math.PI / 180)) / (f * Math.cos(n * Math.PI / 180));
11339
11862
  if (p > 1 || p < -1) return null;
11340
11863
  let m = (t.event === "sunrise" ? 360 - Math.acos(p) * 180 / Math.PI : Math.acos(p) * 180 / Math.PI) / 15;
11341
- return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 + Pl(t.offset));
11864
+ return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 + Fl(t.offset));
11342
11865
  }
11343
- var Il = class {
11866
+ var Ll = class {
11344
11867
  queue;
11345
11868
  workflows;
11346
11869
  config;
@@ -11357,9 +11880,9 @@ var Il = class {
11357
11880
  async tick(e = /* @__PURE__ */ new Date()) {
11358
11881
  let t = /* @__PURE__ */ new Date(Math.floor(e.getTime() / 6e4) * 6e4);
11359
11882
  for (let { definition: e, revision: n } of await this.workflows.published()) {
11360
- for (let [r, i] of (e.schedule || []).entries()) Nl(i.cron, t, i.timezone || "UTC") && await this.enqueue(e, n, i, `cron-${r}`, t);
11883
+ for (let [r, i] of (e.schedule || []).entries()) Pl(i.cron, t, i.timezone || "UTC") && await this.enqueue(e, n, i, `cron-${r}`, t);
11361
11884
  for (let [r, i] of (e.solar || []).entries()) {
11362
- let a = Fl(t, i);
11885
+ let a = Il(t, i);
11363
11886
  a && Math.floor(a.getTime() / 6e4) === t.getTime() / 6e4 && await this.enqueue(e, n, i, `solar-${r}`, t);
11364
11887
  }
11365
11888
  }
@@ -11385,7 +11908,7 @@ var Il = class {
11385
11908
  };
11386
11909
  //#endregion
11387
11910
  //#region src/logger.ts
11388
- function Ll() {
11911
+ function Rl() {
11389
11912
  for (let e of [
11390
11913
  "log",
11391
11914
  "info",
@@ -11400,7 +11923,7 @@ function Ll() {
11400
11923
  }
11401
11924
  //#endregion
11402
11925
  //#region src/plugins/github-status.plugin.ts
11403
- var Rl = class {
11926
+ var zl = class {
11404
11927
  name = "github-commit-status";
11405
11928
  token;
11406
11929
  apiUrl;
@@ -11442,14 +11965,14 @@ var Rl = class {
11442
11965
  };
11443
11966
  //#endregion
11444
11967
  //#region src/index.ts
11445
- async function zl() {
11446
- Ll();
11968
+ async function Bl() {
11969
+ Rl();
11447
11970
  let { config: e, command: t } = await ce();
11448
11971
  e || process.exit(1);
11449
11972
  let n = new me(), r = new pe(process.env.WORKER_NAME || "cli");
11450
11973
  switch (t) {
11451
11974
  case "start-server":
11452
- console.log("🌐 Starting Ingress Gateway..."), await r.init(), await Qc.withPort({
11975
+ console.log("🌐 Starting Ingress Gateway..."), await r.init(), await $c.withPort({
11453
11976
  config: e,
11454
11977
  queue: r,
11455
11978
  secrets: n,
@@ -11458,13 +11981,13 @@ async function zl() {
11458
11981
  });
11459
11982
  break;
11460
11983
  case "start-workers":
11461
- console.log(`⚙️ Starting worker scheduler with ${e.workers} concurrent slot(s)...`), await r.init(), ul(e.workers, r, n, e);
11984
+ console.log(`⚙️ Starting worker scheduler with ${e.workers} concurrent slot(s)...`), await r.init(), dl(e.workers, r, n, e);
11462
11985
  break;
11463
11986
  case "start-scheduler": {
11464
11987
  console.log("Starting workflow scheduler..."), await r.init();
11465
- let t = new Yc();
11988
+ let t = new Xc();
11466
11989
  await t.init();
11467
- let n = new Il(r, t, e);
11990
+ let n = new Ll(r, t, e);
11468
11991
  n.start();
11469
11992
  let i = () => {
11470
11993
  n.stop(), process.exit(0);
@@ -11475,6 +11998,6 @@ async function zl() {
11475
11998
  default: console.error(`❌ Unknown command: '${t}'`), se(), process.exit(1);
11476
11999
  }
11477
12000
  }
11478
- zl().catch(console.error);
12001
+ Bl().catch(console.error);
11479
12002
  //#endregion
11480
- export { Rl as GitHubStatusPlugin };
12003
+ export { zl as GitHubStatusPlugin };