@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 +1320 -797
- package/dist/server.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/on.js
CHANGED
|
@@ -5586,93 +5586,612 @@ function Vi(e = !1) {
|
|
|
5586
5586
|
</body>
|
|
5587
5587
|
</html>`;
|
|
5588
5588
|
}
|
|
5589
|
-
|
|
5590
|
-
|
|
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
|
|
5595
|
-
return
|
|
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
|
|
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
|
|
5603
|
-
case
|
|
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
|
|
5610
|
-
case
|
|
5611
|
-
case
|
|
5612
|
-
case
|
|
6128
|
+
case Gi:
|
|
6129
|
+
case qi:
|
|
6130
|
+
case Yi:
|
|
6131
|
+
case Xi: return !0;
|
|
5613
6132
|
}
|
|
5614
6133
|
return !1;
|
|
5615
6134
|
}
|
|
5616
|
-
var
|
|
5617
|
-
function
|
|
5618
|
-
let n =
|
|
5619
|
-
|
|
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
|
-
|
|
5622
|
-
function
|
|
5623
|
-
let i =
|
|
5624
|
-
if (Y(i) || K(i)) return
|
|
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 =
|
|
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 ===
|
|
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 =
|
|
6155
|
+
let e = aa("key", t.key, n, r);
|
|
5637
6156
|
if (e === X) return X;
|
|
5638
|
-
e ===
|
|
5639
|
-
let i =
|
|
6157
|
+
e === ra && (t.key = null);
|
|
6158
|
+
let i = aa("value", t.value, n, r);
|
|
5640
6159
|
if (i === X) return X;
|
|
5641
|
-
i ===
|
|
6160
|
+
i === ra && (t.value = null);
|
|
5642
6161
|
}
|
|
5643
6162
|
}
|
|
5644
6163
|
return i;
|
|
5645
6164
|
}
|
|
5646
|
-
async function
|
|
5647
|
-
let n =
|
|
5648
|
-
|
|
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
|
-
|
|
5651
|
-
async function
|
|
5652
|
-
let i = await
|
|
5653
|
-
if (Y(i) || K(i)) return
|
|
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
|
|
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 ===
|
|
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
|
|
6184
|
+
let e = await sa("key", t.key, n, r);
|
|
5666
6185
|
if (e === X) return X;
|
|
5667
|
-
e ===
|
|
5668
|
-
let i = await
|
|
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 ===
|
|
6189
|
+
i === ra && (t.value = null);
|
|
5671
6190
|
}
|
|
5672
6191
|
}
|
|
5673
6192
|
return i;
|
|
5674
6193
|
}
|
|
5675
|
-
function
|
|
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
|
|
6209
|
+
function la(e, t, n, r) {
|
|
5691
6210
|
if (typeof n == "function") return n(e, t, r);
|
|
5692
|
-
if (
|
|
5693
|
-
if (
|
|
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 (
|
|
6215
|
+
if (Zi(t)) return n.Alias?.(e, t, r);
|
|
5697
6216
|
}
|
|
5698
|
-
function
|
|
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 (
|
|
6221
|
+
else if (Qi(r)) r.contents = n;
|
|
5703
6222
|
else {
|
|
5704
|
-
let e =
|
|
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
|
|
6229
|
+
var da = {
|
|
5711
6230
|
"!": "%21",
|
|
5712
6231
|
",": "%2C",
|
|
5713
6232
|
"[": "%5B",
|
|
5714
6233
|
"]": "%5D",
|
|
5715
6234
|
"{": "%7B",
|
|
5716
6235
|
"}": "%7D"
|
|
5717
|
-
},
|
|
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 +
|
|
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
|
-
|
|
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
|
-
|
|
6314
|
+
pa.defaultYaml = {
|
|
5796
6315
|
explicit: !1,
|
|
5797
6316
|
version: "1.2"
|
|
5798
|
-
},
|
|
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
|
|
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
|
|
6327
|
+
function ha(e) {
|
|
5809
6328
|
let t = /* @__PURE__ */ new Set();
|
|
5810
|
-
return
|
|
6329
|
+
return ia(e, { Value(e, n) {
|
|
5811
6330
|
n.anchor && t.add(n.anchor);
|
|
5812
6331
|
} }), t;
|
|
5813
6332
|
}
|
|
5814
|
-
function
|
|
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
|
|
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 ??=
|
|
5825
|
-
let a =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
5867
|
-
if (Array.isArray(e)) return e.map((e, t) =>
|
|
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 || !
|
|
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
|
|
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 (!
|
|
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 =
|
|
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" ?
|
|
6423
|
+
return typeof i == "function" ? va(i, { "": o }, "", o) : o;
|
|
5905
6424
|
}
|
|
5906
|
-
},
|
|
6425
|
+
}, xa = class extends ba {
|
|
5907
6426
|
constructor(e) {
|
|
5908
|
-
super(
|
|
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 = [],
|
|
5916
|
-
(
|
|
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 ||= (
|
|
5935
|
-
if (i >= 0 && (o.count += 1, o.aliasCount === 0 && (o.aliasCount =
|
|
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 (
|
|
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
|
|
5951
|
-
if (
|
|
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 =
|
|
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 =
|
|
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
|
|
6490
|
+
var Ca = (e) => !e || typeof e != "function" && typeof e != "object", Z = class extends ba {
|
|
5972
6491
|
constructor(e) {
|
|
5973
|
-
super(
|
|
6492
|
+
super(Yi), this.value = e;
|
|
5974
6493
|
}
|
|
5975
6494
|
toJSON(e, t) {
|
|
5976
|
-
return t?.keep ? this.value :
|
|
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
|
|
5986
|
-
function
|
|
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
|
|
5995
|
-
if (
|
|
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[
|
|
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
|
|
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 =
|
|
6010
|
-
let l =
|
|
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[
|
|
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
|
|
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
|
|
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
|
|
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 (
|
|
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,
|
|
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,
|
|
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
|
-
},
|
|
6100
|
-
function
|
|
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
|
|
6104
|
-
function
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
}),
|
|
6174
|
-
function
|
|
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
|
|
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 || (
|
|
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 :
|
|
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 =
|
|
6760
|
+
if (n === !1) r = Va;
|
|
6242
6761
|
else {
|
|
6243
6762
|
let t = e.includes("\""), i = e.includes("'");
|
|
6244
|
-
r = t && !i ?
|
|
6763
|
+
r = t && !i ? Ha : i && !t ? Va : n ? Ha : Va;
|
|
6245
6764
|
}
|
|
6246
6765
|
return r(e, t);
|
|
6247
6766
|
}
|
|
6248
|
-
var
|
|
6767
|
+
var Wa;
|
|
6249
6768
|
try {
|
|
6250
|
-
|
|
6769
|
+
Wa = /* @__PURE__ */ RegExp("(^|(?<!\n))\n+(?!\n|$)", "g");
|
|
6251
6770
|
} catch {
|
|
6252
|
-
|
|
6771
|
+
Wa = /\n+(?!\n|$)/g;
|
|
6253
6772
|
}
|
|
6254
|
-
function
|
|
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
|
|
6257
|
-
let l = r.indent || (r.forceBlockIndent ||
|
|
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(
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
6289
|
-
if (/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a)) return s || u || !a.includes("\n") ?
|
|
6290
|
-
if (!s && !u && i !== Z.PLAIN && a.includes("\n")) return
|
|
6291
|
-
if (
|
|
6292
|
-
if (c === "") return t.forceBlockIndent = !0,
|
|
6293
|
-
if (s && c === l) return
|
|
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
|
|
6817
|
+
if (r.some(e) || n?.some(e)) return Ua(a, t);
|
|
6299
6818
|
}
|
|
6300
|
-
return s ? d :
|
|
6819
|
+
return s ? d : Ia(d, c, Na, Ra(t, !1));
|
|
6301
6820
|
}
|
|
6302
|
-
function
|
|
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 ?
|
|
6309
|
-
case Z.QUOTE_DOUBLE: return
|
|
6310
|
-
case Z.QUOTE_SINGLE: return
|
|
6311
|
-
case Z.PLAIN: return
|
|
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
|
|
6842
|
+
function Ja(e, t) {
|
|
6324
6843
|
let n = Object.assign({
|
|
6325
6844
|
blockQuote: !0,
|
|
6326
|
-
commentString:
|
|
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
|
|
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
|
|
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 &&
|
|
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
|
|
6910
|
+
function Za(e, t, n, r) {
|
|
6392
6911
|
if (K(e)) return e.toString(t, n, r);
|
|
6393
|
-
if (
|
|
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 ??=
|
|
6400
|
-
let o =
|
|
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) ?
|
|
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
|
|
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 =
|
|
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 +=
|
|
6427
|
-
m && (f = null), p ? (f && (g +=
|
|
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 &&
|
|
6430
|
-
let b = !1, x =
|
|
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${
|
|
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 +=
|
|
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
|
|
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
|
|
6458
|
-
identify: (e) => e ===
|
|
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(
|
|
6463
|
-
stringify: () =>
|
|
6464
|
-
},
|
|
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 =
|
|
6473
|
-
if (
|
|
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
|
|
6484
|
-
return e &&
|
|
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
|
|
7007
|
+
function oo(e, t, { key: n, value: r }) {
|
|
6489
7008
|
if (Y(n) && n.addToJSMap) n.addToJSMap(e, t, r);
|
|
6490
|
-
else if (
|
|
7009
|
+
else if (no(e, n)) ro(e, t, r);
|
|
6491
7010
|
else {
|
|
6492
|
-
let i =
|
|
6493
|
-
if (t instanceof Map) t.set(i,
|
|
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 =
|
|
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
|
|
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 =
|
|
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) + "...\""),
|
|
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
|
|
6527
|
-
return new Q(
|
|
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:
|
|
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
|
|
7057
|
+
return oo(t, t?.mapAsMap ? /* @__PURE__ */ new Map() : {}, this);
|
|
6539
7058
|
}
|
|
6540
7059
|
toString(e, t, n) {
|
|
6541
|
-
return e?.doc ?
|
|
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
|
|
6547
|
-
return (t.inFlow ?? e.flow ?
|
|
7065
|
+
function lo(e, t, n) {
|
|
7066
|
+
return (t.inFlow ?? e.flow ? fo : uo)(e, t, n);
|
|
6548
7067
|
}
|
|
6549
|
-
function
|
|
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(""),
|
|
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(""),
|
|
7078
|
+
e && (!d && e.spaceBefore && f.push(""), po(n, f, e.commentBefore, d));
|
|
6560
7079
|
}
|
|
6561
7080
|
d = !1;
|
|
6562
|
-
let s =
|
|
6563
|
-
o && (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" +
|
|
7093
|
+
return e ? (p += "\n" + ja(l(e), c), s && s()) : d && o && o(), p;
|
|
6575
7094
|
}
|
|
6576
|
-
function
|
|
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(""),
|
|
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(""),
|
|
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 =
|
|
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 +=
|
|
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
|
|
7129
|
+
function po({ indent: e, options: { commentString: t } }, n, r, i) {
|
|
6611
7130
|
if (r && i && (r = r.replace(/^\n+/, "")), r) {
|
|
6612
|
-
let i =
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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) &&
|
|
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 =
|
|
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 =
|
|
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 !!
|
|
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)
|
|
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 })),
|
|
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
|
-
},
|
|
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
|
|
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
|
-
},
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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) &&
|
|
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(
|
|
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 ?
|
|
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(
|
|
7271
|
+
i.items.push(Ea(a, void 0, n));
|
|
6753
7272
|
}
|
|
6754
7273
|
}
|
|
6755
7274
|
return i;
|
|
6756
7275
|
}
|
|
6757
7276
|
};
|
|
6758
|
-
function
|
|
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
|
|
7283
|
+
var vo = {
|
|
6765
7284
|
collection: "seq",
|
|
6766
7285
|
default: !0,
|
|
6767
|
-
nodeClass:
|
|
7286
|
+
nodeClass: go,
|
|
6768
7287
|
tag: "tag:yaml.org,2002:seq",
|
|
6769
7288
|
resolve(e, t) {
|
|
6770
|
-
return
|
|
7289
|
+
return ea(e) || t("Expected a sequence for this tag"), e;
|
|
6771
7290
|
},
|
|
6772
|
-
createNode: (e, t, n) =>
|
|
6773
|
-
},
|
|
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),
|
|
7298
|
+
return t = Object.assign({ actualString: !0 }, t), qa(e, t, n, r);
|
|
6780
7299
|
}
|
|
6781
|
-
},
|
|
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" &&
|
|
6789
|
-
},
|
|
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 &&
|
|
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
|
|
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
|
|
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:
|
|
6823
|
-
},
|
|
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() :
|
|
7351
|
+
return isFinite(t) ? t.toExponential() : So(e);
|
|
6833
7352
|
}
|
|
6834
|
-
},
|
|
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:
|
|
6844
|
-
},
|
|
6845
|
-
function
|
|
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
|
|
7366
|
+
return Eo(r) && r >= 0 ? n + r.toString(t) : So(e);
|
|
6848
7367
|
}
|
|
6849
|
-
var
|
|
6850
|
-
identify: (e) =>
|
|
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) =>
|
|
6856
|
-
stringify: (e) =>
|
|
6857
|
-
},
|
|
6858
|
-
identify:
|
|
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) =>
|
|
6863
|
-
stringify:
|
|
6864
|
-
},
|
|
6865
|
-
identify: (e) =>
|
|
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) =>
|
|
6871
|
-
stringify: (e) =>
|
|
6872
|
-
},
|
|
6873
|
-
|
|
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
|
-
|
|
7396
|
+
xo,
|
|
6879
7397
|
ko,
|
|
6880
7398
|
Ao,
|
|
6881
|
-
|
|
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
|
|
7406
|
+
function No(e) {
|
|
6888
7407
|
return typeof e == "bigint" || Number.isInteger(e);
|
|
6889
7408
|
}
|
|
6890
|
-
var
|
|
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:
|
|
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:
|
|
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:
|
|
7432
|
+
stringify: Po
|
|
6914
7433
|
},
|
|
6915
7434
|
{
|
|
6916
|
-
identify:
|
|
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 }) =>
|
|
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:
|
|
7448
|
+
stringify: Po
|
|
6930
7449
|
}
|
|
6931
|
-
],
|
|
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
|
-
}),
|
|
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
|
|
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
|
|
6973
|
-
if (
|
|
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 (
|
|
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
|
|
6992
|
-
let { replacer: r } = n, i = new
|
|
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(
|
|
7525
|
+
i.items.push(co(o, s, n));
|
|
7007
7526
|
}
|
|
7008
7527
|
return i;
|
|
7009
7528
|
}
|
|
7010
|
-
var
|
|
7529
|
+
var Bo = {
|
|
7011
7530
|
collection: "seq",
|
|
7012
7531
|
default: !1,
|
|
7013
7532
|
tag: "tag:yaml.org,2002:pairs",
|
|
7014
|
-
resolve:
|
|
7015
|
-
createNode:
|
|
7016
|
-
},
|
|
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 =
|
|
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 =
|
|
7551
|
+
let r = zo(e, t, n), i = new this();
|
|
7033
7552
|
return i.items = r.items, i;
|
|
7034
7553
|
}
|
|
7035
7554
|
};
|
|
7036
|
-
|
|
7037
|
-
var
|
|
7555
|
+
Vo.tag = "tag:yaml.org,2002:omap";
|
|
7556
|
+
var Ho = {
|
|
7038
7557
|
collection: "seq",
|
|
7039
7558
|
identify: (e) => e instanceof Map,
|
|
7040
|
-
nodeClass:
|
|
7559
|
+
nodeClass: Vo,
|
|
7041
7560
|
default: !1,
|
|
7042
7561
|
tag: "tag:yaml.org,2002:omap",
|
|
7043
7562
|
resolve(e, t) {
|
|
7044
|
-
let n =
|
|
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
|
|
7565
|
+
return Object.assign(new Vo(), n);
|
|
7047
7566
|
},
|
|
7048
|
-
createNode: (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
|
|
7053
|
-
return t && (e ?
|
|
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
|
|
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:
|
|
7062
|
-
},
|
|
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:
|
|
7069
|
-
},
|
|
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:
|
|
7076
|
-
},
|
|
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() :
|
|
7604
|
+
return isFinite(t) ? t.toExponential() : So(e);
|
|
7086
7605
|
}
|
|
7087
|
-
},
|
|
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:
|
|
7101
|
-
},
|
|
7102
|
-
function
|
|
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
|
|
7639
|
+
function Zo(e, t, n) {
|
|
7121
7640
|
let { value: r } = e;
|
|
7122
|
-
if (
|
|
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
|
|
7645
|
+
return So(e);
|
|
7127
7646
|
}
|
|
7128
|
-
var
|
|
7129
|
-
identify:
|
|
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) =>
|
|
7135
|
-
stringify: (e) =>
|
|
7136
|
-
},
|
|
7137
|
-
identify:
|
|
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) =>
|
|
7143
|
-
stringify: (e) =>
|
|
7144
|
-
},
|
|
7145
|
-
identify:
|
|
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) =>
|
|
7150
|
-
stringify:
|
|
7151
|
-
},
|
|
7152
|
-
identify:
|
|
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) =>
|
|
7158
|
-
stringify: (e) =>
|
|
7159
|
-
},
|
|
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),
|
|
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 =
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
7191
|
-
var
|
|
7709
|
+
ns.tag = "tag:yaml.org,2002:set";
|
|
7710
|
+
var rs = {
|
|
7192
7711
|
collection: "map",
|
|
7193
7712
|
identify: (e) => e instanceof Set,
|
|
7194
|
-
nodeClass:
|
|
7713
|
+
nodeClass: ns,
|
|
7195
7714
|
default: !1,
|
|
7196
7715
|
tag: "tag:yaml.org,2002:set",
|
|
7197
|
-
createNode: (e, t, n) =>
|
|
7716
|
+
createNode: (e, t, n) => ns.from(e, t, n),
|
|
7198
7717
|
resolve(e, t) {
|
|
7199
|
-
if (
|
|
7200
|
-
if (e.hasAllNullValues(!0)) return Object.assign(new
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 }) =>
|
|
7228
|
-
stringify:
|
|
7229
|
-
},
|
|
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) =>
|
|
7236
|
-
stringify:
|
|
7237
|
-
},
|
|
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(
|
|
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 =
|
|
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
|
-
},
|
|
7254
|
-
|
|
7255
|
-
_o,
|
|
7772
|
+
}, ls = [
|
|
7773
|
+
ho,
|
|
7256
7774
|
vo,
|
|
7257
7775
|
yo,
|
|
7258
|
-
|
|
7776
|
+
bo,
|
|
7259
7777
|
Wo,
|
|
7260
|
-
|
|
7778
|
+
Go,
|
|
7261
7779
|
Qo,
|
|
7262
7780
|
$o,
|
|
7263
7781
|
es,
|
|
7264
|
-
|
|
7782
|
+
ts,
|
|
7265
7783
|
Ko,
|
|
7266
7784
|
qo,
|
|
7267
|
-
|
|
7268
|
-
|
|
7269
|
-
|
|
7270
|
-
|
|
7271
|
-
|
|
7272
|
-
|
|
7785
|
+
Jo,
|
|
7786
|
+
Lo,
|
|
7787
|
+
to,
|
|
7788
|
+
Ho,
|
|
7789
|
+
Bo,
|
|
7790
|
+
rs,
|
|
7273
7791
|
os,
|
|
7274
|
-
ss
|
|
7275
|
-
|
|
7276
|
-
|
|
7792
|
+
ss,
|
|
7793
|
+
cs
|
|
7794
|
+
], us = /* @__PURE__ */ new Map([
|
|
7795
|
+
["core", Mo],
|
|
7277
7796
|
["failsafe", [
|
|
7278
|
-
|
|
7279
|
-
|
|
7280
|
-
|
|
7797
|
+
ho,
|
|
7798
|
+
vo,
|
|
7799
|
+
yo
|
|
7281
7800
|
]],
|
|
7282
|
-
["json",
|
|
7283
|
-
["yaml11",
|
|
7284
|
-
["yaml-1.1",
|
|
7285
|
-
]),
|
|
7286
|
-
binary:
|
|
7287
|
-
bool:
|
|
7288
|
-
float:
|
|
7289
|
-
floatExp:
|
|
7290
|
-
floatNaN:
|
|
7291
|
-
floatTime:
|
|
7292
|
-
int:
|
|
7293
|
-
intHex:
|
|
7294
|
-
intOct:
|
|
7295
|
-
intTime:
|
|
7296
|
-
map:
|
|
7297
|
-
merge:
|
|
7298
|
-
null:
|
|
7299
|
-
omap:
|
|
7300
|
-
pairs:
|
|
7301
|
-
seq:
|
|
7302
|
-
set:
|
|
7303
|
-
timestamp:
|
|
7304
|
-
},
|
|
7305
|
-
"tag:yaml.org,2002:binary":
|
|
7306
|
-
"tag:yaml.org,2002:merge":
|
|
7307
|
-
"tag:yaml.org,2002:omap":
|
|
7308
|
-
"tag:yaml.org,2002:pairs":
|
|
7309
|
-
"tag:yaml.org,2002:set":
|
|
7310
|
-
"tag:yaml.org,2002:timestamp":
|
|
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
|
|
7313
|
-
let r =
|
|
7314
|
-
if (r && !e) return n && !r.includes(
|
|
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(
|
|
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(
|
|
7326
|
-
let n = typeof t == "string" ?
|
|
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(
|
|
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
|
|
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) ?
|
|
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
|
|
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 =
|
|
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(
|
|
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(
|
|
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 =
|
|
7370
|
-
s && (c +=
|
|
7371
|
-
} else n.push(
|
|
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(
|
|
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(
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
-
|
|
7928
|
+
vs(this.contents) && this.contents.add(e);
|
|
7410
7929
|
}
|
|
7411
7930
|
addIn(e, t) {
|
|
7412
|
-
|
|
7931
|
+
vs(this.contents) && this.contents.addIn(e, t);
|
|
7413
7932
|
}
|
|
7414
7933
|
createAlias(e, t) {
|
|
7415
7934
|
if (!e.anchor) {
|
|
7416
|
-
let n =
|
|
7417
|
-
e.anchor = !t || n.has(t) ?
|
|
7935
|
+
let n = ha(this);
|
|
7936
|
+
e.anchor = !t || n.has(t) ? ga(t || "a", n) : t;
|
|
7418
7937
|
}
|
|
7419
|
-
return new
|
|
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 } =
|
|
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 =
|
|
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
|
|
7962
|
+
return vs(this.contents) ? this.contents.delete(e) : !1;
|
|
7444
7963
|
}
|
|
7445
7964
|
deleteIn(e) {
|
|
7446
|
-
return
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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" ?
|
|
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
|
|
8040
|
+
return gs(this, e);
|
|
7522
8041
|
}
|
|
7523
8042
|
};
|
|
7524
|
-
function
|
|
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
|
|
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
|
-
},
|
|
8053
|
+
}, bs = class extends ys {
|
|
7535
8054
|
constructor(e, t, n) {
|
|
7536
8055
|
super("YAMLParseError", e, t, n);
|
|
7537
8056
|
}
|
|
7538
|
-
},
|
|
8057
|
+
}, xs = class extends ys {
|
|
7539
8058
|
constructor(e, t, n) {
|
|
7540
8059
|
super("YAMLWarning", e, t, n);
|
|
7541
8060
|
}
|
|
7542
|
-
},
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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 === "}") &&
|
|
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
|
|
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
|
|
7654
|
-
function
|
|
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 =
|
|
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",
|
|
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 ||
|
|
7673
|
-
} else p.found?.indent !== r.indent && i(s, "BAD_INDENT",
|
|
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 &&
|
|
7677
|
-
let _ =
|
|
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 &&
|
|
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
|
|
7706
|
-
let o = new ((a?.nodeClass) ??
|
|
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 =
|
|
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 &&
|
|
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
|
|
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
|
|
7768
|
-
function
|
|
7769
|
-
let o = r.start.source === "{", s = o ? "flow map" : "flow sequence", c = new ((a?.nodeClass) ?? (o ? $ :
|
|
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 =
|
|
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 &&
|
|
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],
|
|
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
|
-
|
|
7814
|
-
let _ =
|
|
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 ?
|
|
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
|
-
|
|
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 =
|
|
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
|
|
7877
|
-
let o = n.type === "block-map" ?
|
|
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
|
|
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 ===
|
|
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),
|
|
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 =
|
|
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
|
|
7900
|
-
let r = t.offset, i =
|
|
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 ?
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
8547
|
+
s = Z.PLAIN, c = Bs(a, l);
|
|
8029
8548
|
break;
|
|
8030
8549
|
case "single-quoted-scalar":
|
|
8031
|
-
s = Z.QUOTE_SINGLE, c =
|
|
8550
|
+
s = Z.QUOTE_SINGLE, c = Vs(a, l);
|
|
8032
8551
|
break;
|
|
8033
8552
|
case "double-quoted-scalar":
|
|
8034
|
-
s = Z.QUOTE_DOUBLE, c =
|
|
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 =
|
|
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
|
|
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}`),
|
|
8599
|
+
return n && t(0, "BAD_SCALAR_START", `Plain value cannot start with ${n}`), Hs(e);
|
|
8081
8600
|
}
|
|
8082
|
-
function
|
|
8083
|
-
return (e[e.length - 1] !== "'" || e.length === 1) && t(e.length, "MISSING_CHAR", "Missing closing 'quote"),
|
|
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
|
|
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
|
|
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 } =
|
|
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 =
|
|
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 +=
|
|
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
|
|
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
|
|
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
|
|
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
|
|
8168
|
-
let { value: i, type: a, comment: o, range: s } = t.type === "block-scalar" ?
|
|
8169
|
-
l = e.options.stringKeys && e.atKey ? e.schema[
|
|
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
|
|
8181
|
-
if (n === "!") return e[
|
|
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[
|
|
8711
|
+
})), o) : (i(r, "TAG_RESOLVE_FAILED", `Unresolved tag: ${n}`, n !== "tag:yaml.org,2002:str"), e[Yi]);
|
|
8193
8712
|
}
|
|
8194
|
-
function
|
|
8195
|
-
let o = n.tags.find((t) => (t.default === !0 || e && t.default === "key") && t.test?.test(r)) || n[
|
|
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[
|
|
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
|
|
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
|
|
8225
|
-
composeNode:
|
|
8226
|
-
composeEmptyNode:
|
|
8743
|
+
var Zs = {
|
|
8744
|
+
composeNode: Qs,
|
|
8745
|
+
composeEmptyNode: $s
|
|
8227
8746
|
};
|
|
8228
|
-
function
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 ??=
|
|
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
|
|
8254
|
-
let u =
|
|
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:
|
|
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
|
|
8263
|
-
let a = new
|
|
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 =
|
|
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
|
|
8275
|
-
let s = new
|
|
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 =
|
|
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 ?
|
|
8290
|
-
let u = s.contents.range[2], d =
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
8328
|
-
r ? this.warnings.push(new
|
|
8329
|
-
}, this.directives = new
|
|
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 } =
|
|
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:
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
8431
|
-
case "block-scalar": return
|
|
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
|
|
8437
|
-
let { implicitKey: n = !1, indent: r, inFlow: i = !1, offset: a = -1, type: o = "PLAIN" } = t, s =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
-
|
|
9050
|
+
cc(e, c);
|
|
8532
9051
|
break;
|
|
8533
9052
|
case "\"":
|
|
8534
|
-
|
|
9053
|
+
uc(e, c, "double-quoted-scalar");
|
|
8535
9054
|
break;
|
|
8536
9055
|
case "'":
|
|
8537
|
-
|
|
9056
|
+
uc(e, c, "single-quoted-scalar");
|
|
8538
9057
|
break;
|
|
8539
|
-
default:
|
|
9058
|
+
default: uc(e, c, "scalar");
|
|
8540
9059
|
}
|
|
8541
9060
|
}
|
|
8542
|
-
function
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
8628
|
-
function
|
|
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 +=
|
|
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 +=
|
|
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 +=
|
|
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 =
|
|
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
|
|
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 +=
|
|
8663
|
-
return 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
|
|
8668
|
-
function
|
|
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
|
-
}),
|
|
9191
|
+
}), vc(Object.freeze([]), e, t);
|
|
8673
9192
|
}
|
|
8674
|
-
|
|
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
|
-
},
|
|
8683
|
-
let n =
|
|
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
|
|
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 =
|
|
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 ===
|
|
8697
|
-
else r ===
|
|
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
|
|
9225
|
+
var yc = /* @__PURE__ */ v({
|
|
8707
9226
|
BOM: () => "",
|
|
8708
9227
|
DOCUMENT: () => "",
|
|
8709
9228
|
FLOW_END: () => "",
|
|
8710
9229
|
SCALAR: () => "",
|
|
8711
|
-
createScalarToken: () =>
|
|
8712
|
-
isCollection: () =>
|
|
8713
|
-
isScalar: () =>
|
|
8714
|
-
prettyToken: () =>
|
|
8715
|
-
resolveAsScalar: () =>
|
|
8716
|
-
setScalarValue: () =>
|
|
8717
|
-
stringify: () =>
|
|
8718
|
-
tokenType: () =>
|
|
8719
|
-
visit: () =>
|
|
8720
|
-
}),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 === "...") &&
|
|
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 === "...") &&
|
|
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 && !
|
|
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 === ":") &&
|
|
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(
|
|
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("...")) &&
|
|
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(
|
|
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 ||
|
|
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) =>
|
|
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 (
|
|
9536
|
+
if (wc(r) || e && Dc.has(r)) break;
|
|
9018
9537
|
t = n;
|
|
9019
|
-
} else if (
|
|
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 &&
|
|
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 &&
|
|
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(
|
|
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 (
|
|
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 (; !
|
|
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 (
|
|
9073
|
-
else if (t === "%" &&
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
9174
|
-
if (e.start.type === "flow-seq-start") for (let t of e.items) t.sep && !t.value && !
|
|
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
|
|
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
|
|
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 =
|
|
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" &&
|
|
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 &&
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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 (
|
|
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 =
|
|
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 (
|
|
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 (
|
|
9518
|
-
let e =
|
|
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
|
-
}) :
|
|
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 && !
|
|
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
|
-
|
|
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 ||
|
|
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(
|
|
9686
|
-
|
|
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(
|
|
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(
|
|
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
|
|
10315
|
+
function Bc(e) {
|
|
9797
10316
|
let t = e.prettyErrors !== !1;
|
|
9798
10317
|
return {
|
|
9799
|
-
lineCounter: e.lineCounter || t && new
|
|
10318
|
+
lineCounter: e.lineCounter || t && new jc() || null,
|
|
9800
10319
|
prettyErrors: t
|
|
9801
10320
|
};
|
|
9802
10321
|
}
|
|
9803
|
-
function
|
|
9804
|
-
let { lineCounter: n, prettyErrors: r } =
|
|
9805
|
-
if (r && n) for (let t of o) t.errors.forEach(
|
|
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
|
|
9809
|
-
let { lineCounter: n, prettyErrors: r } =
|
|
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
|
|
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(
|
|
10334
|
+
return r && n && (o.errors.forEach(Ss(e, n)), o.warnings.forEach(Ss(e, n))), o;
|
|
9816
10335
|
}
|
|
9817
|
-
function
|
|
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 =
|
|
10339
|
+
let i = Hc(e, n);
|
|
9821
10340
|
if (!i) return null;
|
|
9822
|
-
if (i.warnings.forEach((e) =>
|
|
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
|
|
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
|
|
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
|
|
9843
|
-
Alias: () =>
|
|
9844
|
-
CST: () =>
|
|
9845
|
-
Composer: () =>
|
|
9846
|
-
Document: () =>
|
|
9847
|
-
Lexer: () =>
|
|
9848
|
-
LineCounter: () =>
|
|
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: () =>
|
|
10369
|
+
Parser: () => zc,
|
|
9851
10370
|
Scalar: () => Z,
|
|
9852
|
-
Schema: () =>
|
|
9853
|
-
YAMLError: () =>
|
|
10371
|
+
Schema: () => hs,
|
|
10372
|
+
YAMLError: () => ys,
|
|
9854
10373
|
YAMLMap: () => $,
|
|
9855
|
-
YAMLParseError: () =>
|
|
9856
|
-
YAMLSeq: () =>
|
|
9857
|
-
YAMLWarning: () =>
|
|
9858
|
-
isAlias: () =>
|
|
10374
|
+
YAMLParseError: () => bs,
|
|
10375
|
+
YAMLSeq: () => go,
|
|
10376
|
+
YAMLWarning: () => xs,
|
|
10377
|
+
isAlias: () => Zi,
|
|
9859
10378
|
isCollection: () => J,
|
|
9860
|
-
isDocument: () =>
|
|
9861
|
-
isMap: () =>
|
|
10379
|
+
isDocument: () => Qi,
|
|
10380
|
+
isMap: () => $i,
|
|
9862
10381
|
isNode: () => Y,
|
|
9863
10382
|
isPair: () => K,
|
|
9864
10383
|
isScalar: () => q,
|
|
9865
|
-
isSeq: () =>
|
|
9866
|
-
parse: () =>
|
|
9867
|
-
parseAllDocuments: () =>
|
|
9868
|
-
parseDocument: () =>
|
|
9869
|
-
stringify: () =>
|
|
9870
|
-
visit: () =>
|
|
9871
|
-
visitAsync: () =>
|
|
9872
|
-
}),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
9903
|
-
let t =
|
|
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:
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
-
},
|
|
10574
|
+
}, Zc = 50, Qc = 500, $c = class e {
|
|
10056
10575
|
server;
|
|
10057
10576
|
preprocessors = /* @__PURE__ */ new Map();
|
|
10058
|
-
workflows = new
|
|
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(
|
|
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(
|
|
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 ?
|
|
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 >
|
|
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,
|
|
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
|
-
},
|
|
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
|
|
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
|
-
},
|
|
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
|
|
10752
|
-
let e = new
|
|
10753
|
-
return await e.isSupported() ? (console.log("⚡ Selected Execution Driver: Systemd (cgroups enabled)"), e) : (console.log("📦 Selected Execution Driver: Standard Process (Fallback)"), new
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
},
|
|
10796
|
-
function
|
|
10797
|
-
|
|
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
|
|
10800
|
-
|
|
10801
|
-
let i = [
|
|
10802
|
-
return
|
|
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
|
|
10805
|
-
let i = await
|
|
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
|
-
|
|
10809
|
-
let u =
|
|
10810
|
-
for (console.log(`🚀 Worker scheduler started. Driver: ${i.name}. Concurrency: ${e}. Tags: ${r.tags.join(", ") || "(none)"}`); !
|
|
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 && !
|
|
11336
|
+
for (; o.size < e && !ol.isStopping;) {
|
|
10814
11337
|
let e = await t.claimNextJob(r.tags);
|
|
10815
11338
|
if (!e) break;
|
|
10816
|
-
if (
|
|
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
|
-
|
|
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
|
|
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),
|
|
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
|
-
!
|
|
11365
|
+
!ol.isStopping && s === n && (await ml(n, () => s, (e) => c = e), c = null);
|
|
10843
11366
|
}
|
|
10844
|
-
|
|
11367
|
+
cl.abort(), await Promise.allSettled(o), await u, ll = null, console.log("🛑 Worker scheduler stopped cleanly.");
|
|
10845
11368
|
}
|
|
10846
|
-
async function
|
|
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
|
|
11380
|
+
await hl(r, t), r = Math.min(r * 2, 3e4);
|
|
10858
11381
|
}
|
|
10859
11382
|
}
|
|
10860
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
10938
|
-
await o.saveReport(n.id, b),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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),
|
|
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
|
|
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),
|
|
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
|
|
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),
|
|
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 && (
|
|
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
|
|
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
|
|
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 ?
|
|
11595
|
+
return t.eval ? xl({
|
|
11073
11596
|
...e,
|
|
11074
11597
|
stepContext: i
|
|
11075
|
-
}) :
|
|
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
|
|
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
|
|
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
|
|
11160
|
-
function
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
11707
|
+
return Tl(r, t);
|
|
11185
11708
|
}));
|
|
11186
11709
|
}
|
|
11187
|
-
async function
|
|
11188
|
-
let r =
|
|
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(
|
|
11191
|
-
if (r.byteLength >
|
|
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
|
|
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(/\/$/, "")}/`) ||
|
|
11201
|
-
let t =
|
|
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
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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),
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
11325
|
-
return
|
|
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
|
|
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
|
|
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 +
|
|
11864
|
+
return m = (m + u - .06571 * s - 6.622 - o + 24) % 24, new Date(i + m * 36e5 + Fl(t.offset));
|
|
11342
11865
|
}
|
|
11343
|
-
var
|
|
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())
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
11446
|
-
|
|
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
|
|
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(),
|
|
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
|
|
11988
|
+
let t = new Xc();
|
|
11466
11989
|
await t.init();
|
|
11467
|
-
let n = new
|
|
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
|
-
|
|
12001
|
+
Bl().catch(console.error);
|
|
11479
12002
|
//#endregion
|
|
11480
|
-
export {
|
|
12003
|
+
export { zl as GitHubStatusPlugin };
|