@bovinphang/frontend-craft 2.8.0 → 2.9.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/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +378 -339
- package/CHANGELOG.zh-CN.md +377 -338
- package/CONTRIBUTING.md +371 -361
- package/CONTRIBUTING.zh-CN.md +371 -361
- package/README.md +545 -493
- package/README.openclaw.md +359 -320
- package/README.openclaw.zh-CN.md +359 -320
- package/README.zh-CN.md +545 -493
- package/agents/fec-code-reviewer.md +24 -3
- package/agents/fec-debugger.md +1 -1
- package/agents/fec-doc-updater.md +1 -1
- package/agents/fec-e2e-runner.md +1 -1
- package/agents/fec-figma-implementer.md +1 -1
- package/agents/fec-performance-optimizer.md +1 -1
- package/agents/fec-refactor-cleaner.md +4 -1
- package/agents/fec-refactoring-expert.md +81 -0
- package/agents/fec-security-reviewer.md +17 -1
- package/agents/fec-test-planner.md +1 -1
- package/agents/fec-typescript-reviewer.md +24 -8
- package/agents/fec-ui-checker.md +11 -11
- package/commands/fec-debug.md +1 -1
- package/commands/fec-refactor-plan.md +17 -0
- package/commands/fec-refactor.md +18 -0
- package/commands/fec-review.md +40 -10
- package/commands/fec-scaffold.md +1 -1
- package/commands/fec-smell.md +17 -0
- package/commands/fec-tdd.md +6 -2
- package/dist/bin/frontend-craft.js +190 -38
- package/dist/hooks/fec-run-tests.js +5 -1
- package/dist/hooks/fec-session-start.js +1 -1
- package/docs/example-prompts.md +157 -140
- package/docs/ja-JP/README.md +534 -493
- package/docs/ko-KR/README.md +534 -493
- package/docs/project-structure.md +151 -131
- package/docs/refactoring/README.md +50 -0
- package/docs/refactoring/catalog.md +105 -0
- package/docs/refactoring/smell-refactoring-matrix.md +41 -0
- package/docs/review-and-diagram-workflows.md +39 -0
- package/docs/runtimes/antigravity.md +18 -10
- package/docs/runtimes/augment.md +18 -10
- package/docs/runtimes/claude.md +191 -177
- package/docs/runtimes/claude.zh-CN.md +189 -175
- package/docs/runtimes/cline.md +18 -10
- package/docs/runtimes/codebuddy.md +18 -10
- package/docs/runtimes/codex.md +18 -10
- package/docs/runtimes/compatibility.md +27 -0
- package/docs/runtimes/copilot.md +18 -10
- package/docs/runtimes/cursor.md +18 -10
- package/docs/runtimes/gemini.md +18 -10
- package/docs/runtimes/kilo.md +18 -10
- package/docs/runtimes/openclaw.md +18 -10
- package/docs/runtimes/opencode.md +18 -10
- package/docs/runtimes/qoder.md +18 -19
- package/docs/runtimes/trae.md +18 -10
- package/docs/runtimes/windsurf.md +18 -10
- package/docs/superpowers/plans/2026-09-26-content-integrity.md +145 -0
- package/docs/superpowers/plans/2026-09-26-diagram-quality.md +170 -0
- package/docs/superpowers/specs/2026-09-26-diagram-quality-design.md +77 -0
- package/docs/superpowers/specs/2026-09-26-project-optimization-design.md +95 -0
- package/docs/zh-CN/example-prompts.md +157 -140
- package/docs/zh-CN/project-structure.md +148 -128
- package/docs/zh-CN/review-and-diagram-workflows.md +39 -0
- package/docs/zh-TW/README.md +534 -493
- package/localized/zh-CN/agents/fec-code-reviewer.md +22 -3
- package/localized/zh-CN/agents/fec-refactor-cleaner.md +3 -0
- package/localized/zh-CN/agents/fec-refactoring-expert.md +53 -0
- package/localized/zh-CN/agents/fec-security-reviewer.md +16 -0
- package/localized/zh-CN/agents/fec-typescript-reviewer.md +23 -7
- package/localized/zh-CN/commands/fec-refactor-plan.md +15 -0
- package/localized/zh-CN/commands/fec-refactor.md +14 -0
- package/localized/zh-CN/commands/fec-review.md +40 -9
- package/localized/zh-CN/commands/fec-smell.md +13 -0
- package/localized/zh-CN/commands/fec-tdd.md +4 -0
- package/localized/zh-CN/skills/eval_queries.json +244 -0
- package/localized/zh-CN/skills/fec-code-review/SKILL.md +20 -1
- package/localized/zh-CN/skills/fec-code-review/references/report-template.md +11 -1
- package/localized/zh-CN/skills/fec-code-smells/SKILL.md +33 -0
- package/localized/zh-CN/skills/fec-code-smells/references/detection-guide.md +25 -0
- package/localized/zh-CN/skills/fec-code-smells/references/smell-catalog.md +817 -0
- package/localized/zh-CN/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
- package/localized/zh-CN/skills/fec-image-generation/SKILL.md +31 -1
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
- package/localized/zh-CN/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
- package/localized/zh-CN/skills/fec-image-generation/references/diagram-workflows.md +10 -3
- package/localized/zh-CN/skills/fec-image-generation/references/html-technical-diagrams.md +8 -1
- package/localized/zh-CN/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
- package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/export-diagram.mjs +48 -80
- package/localized/zh-CN/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
- package/localized/zh-CN/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
- package/localized/zh-CN/skills/fec-image-generation/scripts/tech-diagram-render.mjs +193 -53
- package/localized/zh-CN/skills/fec-refactor-clean/SKILL.md +3 -0
- package/localized/zh-CN/skills/fec-refactoring/SKILL.md +83 -0
- package/localized/zh-CN/skills/fec-refactoring/references/principles.md +43 -0
- package/localized/zh-CN/skills/fec-refactoring/references/refactoring-vs-feature-change.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring/references/when-to-refactor.md +17 -0
- package/localized/zh-CN/skills/fec-refactoring/references/workflow.md +59 -0
- package/localized/zh-CN/skills/fec-refactoring-api/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/SKILL.md +21 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
- package/localized/zh-CN/skills/fec-refactoring-catalog/references/selection-guide.md +41 -0
- package/localized/zh-CN/skills/fec-refactoring-control/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
- package/localized/zh-CN/skills/fec-refactoring-data/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
- package/localized/zh-CN/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
- package/localized/zh-CN/skills/fec-refactoring-functions/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
- package/localized/zh-CN/skills/fec-refactoring-inheritance/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
- package/localized/zh-CN/skills/fec-refactoring-move-features/SKILL.md +25 -0
- package/localized/zh-CN/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/SKILL.md +52 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/references/behavior-preservation.md +15 -0
- package/localized/zh-CN/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +25 -0
- package/localized/zh-CN/skills/fec-security-review/SKILL.md +16 -0
- package/localized/zh-CN/skills/fec-security-review/references/report-template.md +10 -0
- package/localized/zh-CN/skills/fec-tdd-workflow/SKILL.md +3 -0
- package/localized/zh-CN/skills/metadata.json +408 -50
- package/localized/zh-CN/skills/relations.json +271 -3
- package/localized/zh-CN/templates/shared/rules/fec-agent-workflow.md +1 -0
- package/openclaw.plugin.json +2 -3
- package/package.json +27 -17
- package/skills/eval_queries.json +244 -0
- package/skills/fec-code-review/SKILL.md +20 -1
- package/skills/fec-code-review/references/report-template.md +11 -1
- package/skills/fec-code-smells/SKILL.md +33 -0
- package/skills/fec-code-smells/references/detection-guide.md +25 -0
- package/skills/fec-code-smells/references/smell-catalog.md +861 -0
- package/skills/fec-code-smells/references/smell-to-refactoring-map.md +265 -0
- package/skills/fec-data-fetching/SKILL.md +1 -1
- package/skills/fec-image-generation/SKILL.md +31 -1
- package/skills/fec-image-generation/assets/quality-examples/README.md +14 -0
- package/skills/fec-image-generation/assets/quality-examples/architecture.json +121 -0
- package/skills/fec-image-generation/assets/quality-examples/invalid-explicit.json +41 -0
- package/skills/fec-image-generation/assets/quality-examples/sequence.json +53 -0
- package/skills/fec-image-generation/assets/quality-examples/sequence.mmd +21 -0
- package/skills/fec-image-generation/assets/quality-examples/workflow.json +98 -0
- package/skills/fec-image-generation/assets/quality-examples/workflow.mmd +7 -0
- package/skills/fec-image-generation/references/diagram-workflows.md +10 -3
- package/skills/fec-image-generation/references/html-technical-diagrams.md +8 -1
- package/skills/fec-image-generation/references/png-qa-autofix.md +9 -2
- package/skills/fec-image-generation/scripts/diagram-browser.mjs +90 -0
- package/skills/fec-image-generation/scripts/diagram-layout.mjs +176 -0
- package/skills/fec-image-generation/scripts/export-diagram.mjs +48 -80
- package/skills/fec-image-generation/scripts/mermaid-render.mjs +64 -0
- package/skills/fec-image-generation/scripts/png-qa.mjs +35 -4
- package/skills/fec-image-generation/scripts/tech-diagram-render.mjs +193 -53
- package/skills/fec-legacy-web-standard/SKILL.md +1 -1
- package/skills/fec-refactor-clean/SKILL.md +3 -0
- package/skills/fec-refactoring/SKILL.md +83 -0
- package/skills/fec-refactoring/references/principles.md +60 -0
- package/skills/fec-refactoring/references/refactoring-vs-feature-change.md +27 -0
- package/skills/fec-refactoring/references/when-to-refactor.md +31 -0
- package/skills/fec-refactoring/references/workflow.md +90 -0
- package/skills/fec-refactoring-api/SKILL.md +25 -0
- package/skills/fec-refactoring-api/references/api-refactorings.md +496 -0
- package/skills/fec-refactoring-catalog/SKILL.md +28 -0
- package/skills/fec-refactoring-catalog/references/catalog-index.md +99 -0
- package/skills/fec-refactoring-catalog/references/composition-guide.md +49 -0
- package/skills/fec-refactoring-catalog/references/selection-guide.md +47 -0
- package/skills/fec-refactoring-control/SKILL.md +25 -0
- package/skills/fec-refactoring-control/references/conditional-refactorings.md +299 -0
- package/skills/fec-refactoring-data/SKILL.md +25 -0
- package/skills/fec-refactoring-data/references/data-refactorings.md +248 -0
- package/skills/fec-refactoring-encapsulation/SKILL.md +25 -0
- package/skills/fec-refactoring-encapsulation/references/encapsulation-refactorings.md +452 -0
- package/skills/fec-refactoring-functions/SKILL.md +25 -0
- package/skills/fec-refactoring-functions/references/function-refactorings.md +567 -0
- package/skills/fec-refactoring-inheritance/SKILL.md +25 -0
- package/skills/fec-refactoring-inheritance/references/inheritance-refactorings.md +550 -0
- package/skills/fec-refactoring-move-features/SKILL.md +25 -0
- package/skills/fec-refactoring-move-features/references/moving-refactorings.md +453 -0
- package/skills/fec-refactoring-validation/SKILL.md +59 -0
- package/skills/fec-refactoring-validation/references/behavior-preservation.md +53 -0
- package/skills/fec-refactoring-validation/references/refactoring-test-checklist.md +42 -0
- package/skills/fec-security-review/SKILL.md +16 -0
- package/skills/fec-security-review/references/report-template.md +10 -0
- package/skills/fec-tdd-workflow/SKILL.md +5 -1
- package/skills/metadata.json +434 -71
- package/skills/relations.json +264 -0
- package/templates/shared/rules/fec-agent-workflow.md +1 -0
- package/docs/superpowers/plans/2026-05-29-fec-debug.md +0 -491
- package/docs/superpowers/specs/2026-05-29-fec-debug-design.md +0 -340
|
@@ -1,52 +1,204 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { createRequire as __fecCreateRequire } from "node:module"; const require = __fecCreateRequire(import.meta.url);
|
|
3
|
+
var fc=Object.create;var lr=Object.defineProperty;var dc=Object.getOwnPropertyDescriptor;var pc=Object.getOwnPropertyNames;var hc=Object.getPrototypeOf,mc=Object.prototype.hasOwnProperty;var Ut=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var y=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var gc=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of pc(e))!mc.call(n,i)&&i!==t&&lr(n,i,{get:()=>e[i],enumerable:!(s=dc(e,i))||s.enumerable});return n};var yc=(n,e,t)=>(t=n!=null?fc(hc(n)):{},gc(e||!n||!n.__esModule?lr(t,"default",{value:n,enumerable:!0}):t,n));var L=y(Y=>{"use strict";var us=Symbol.for("yaml.alias"),vr=Symbol.for("yaml.document"),Jt=Symbol.for("yaml.map"),kr=Symbol.for("yaml.pair"),fs=Symbol.for("yaml.scalar"),Vt=Symbol.for("yaml.seq"),pe=Symbol.for("yaml.node.type"),Nc=n=>!!n&&typeof n=="object"&&n[pe]===us,Ic=n=>!!n&&typeof n=="object"&&n[pe]===vr,Ac=n=>!!n&&typeof n=="object"&&n[pe]===Jt,Oc=n=>!!n&&typeof n=="object"&&n[pe]===kr,Cr=n=>!!n&&typeof n=="object"&&n[pe]===fs,Ec=n=>!!n&&typeof n=="object"&&n[pe]===Vt;function Nr(n){if(n&&typeof n=="object")switch(n[pe]){case Jt:case Vt:return!0}return!1}function Lc(n){if(n&&typeof n=="object")switch(n[pe]){case us:case Jt:case fs:case Vt:return!0}return!1}var jc=n=>(Cr(n)||Nr(n))&&!!n.anchor;Y.ALIAS=us;Y.DOC=vr;Y.MAP=Jt;Y.NODE_TYPE=pe;Y.PAIR=kr;Y.SCALAR=fs;Y.SEQ=Vt;Y.hasAnchor=jc;Y.isAlias=Nc;Y.isCollection=Nr;Y.isDocument=Ic;Y.isMap=Ac;Y.isNode=Lc;Y.isPair=Oc;Y.isScalar=Cr;Y.isSeq=Ec});var lt=y(ds=>{"use strict";var B=L(),H=Symbol("break visit"),Ir=Symbol("skip children"),ce=Symbol("remove node");function Wt(n,e){let t=Ar(e);B.isDocument(n)?Ue(null,n.contents,t,Object.freeze([n]))===ce&&(n.contents=null):Ue(null,n,t,Object.freeze([]))}Wt.BREAK=H;Wt.SKIP=Ir;Wt.REMOVE=ce;function Ue(n,e,t,s){let i=Or(n,e,t,s);if(B.isNode(i)||B.isPair(i))return Er(n,s,i),Ue(n,i,t,s);if(typeof i!="symbol"){if(B.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=Ue(r,e.items[r],t,s);if(typeof o=="number")r=o-1;else{if(o===H)return H;o===ce&&(e.items.splice(r,1),r-=1)}}}else if(B.isPair(e)){s=Object.freeze(s.concat(e));let r=Ue("key",e.key,t,s);if(r===H)return H;r===ce&&(e.key=null);let o=Ue("value",e.value,t,s);if(o===H)return H;o===ce&&(e.value=null)}}return i}async function Ht(n,e){let t=Ar(e);B.isDocument(n)?await Ke(null,n.contents,t,Object.freeze([n]))===ce&&(n.contents=null):await Ke(null,n,t,Object.freeze([]))}Ht.BREAK=H;Ht.SKIP=Ir;Ht.REMOVE=ce;async function Ke(n,e,t,s){let i=await Or(n,e,t,s);if(B.isNode(i)||B.isPair(i))return Er(n,s,i),Ke(n,i,t,s);if(typeof i!="symbol"){if(B.isCollection(e)){s=Object.freeze(s.concat(e));for(let r=0;r<e.items.length;++r){let o=await Ke(r,e.items[r],t,s);if(typeof o=="number")r=o-1;else{if(o===H)return H;o===ce&&(e.items.splice(r,1),r-=1)}}}else if(B.isPair(e)){s=Object.freeze(s.concat(e));let r=await Ke("key",e.key,t,s);if(r===H)return H;r===ce&&(e.key=null);let o=await Ke("value",e.value,t,s);if(o===H)return H;o===ce&&(e.value=null)}}return i}function Ar(n){return typeof n=="object"&&(n.Collection||n.Node||n.Value)?Object.assign({Alias:n.Node,Map:n.Node,Scalar:n.Node,Seq:n.Node},n.Value&&{Map:n.Value,Scalar:n.Value,Seq:n.Value},n.Collection&&{Map:n.Collection,Seq:n.Collection},n):n}function Or(n,e,t,s){if(typeof t=="function")return t(n,e,s);if(B.isMap(e))return t.Map?.(n,e,s);if(B.isSeq(e))return t.Seq?.(n,e,s);if(B.isPair(e))return t.Pair?.(n,e,s);if(B.isScalar(e))return t.Scalar?.(n,e,s);if(B.isAlias(e))return t.Alias?.(n,e,s)}function Er(n,e,t){let s=e[e.length-1];if(B.isCollection(s))s.items[n]=t;else if(B.isPair(s))n==="key"?s.key=t:s.value=t;else if(B.isDocument(s))s.contents=t;else{let i=B.isAlias(s)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}ds.visit=Wt;ds.visitAsync=Ht});var ps=y(jr=>{"use strict";var Lr=L(),Tc=lt(),$c={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},qc=n=>n.replace(/[!,[\]{}]/g,e=>$c[e]),ct=class n{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},n.defaultYaml,e),this.tags=Object.assign({},n.defaultTags,t)}clone(){let e=new n(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new n(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=!1);let s=e.trim().split(/[ \t]+/),i=s.shift();switch(i){case"%TAG":{if(s.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),s.length<2))return!1;let[r,o]=s;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,s.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=s;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,o),!1}}default:return t(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,s,i]=e.match(/^(.*!)([^!]*)$/s);i||t(`The ${e} tag has no suffix`);let r=this.tags[s];if(r)try{return r+decodeURIComponent(i)}catch(o){return t(String(o)),null}return s==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,s]of Object.entries(this.tags))if(e.startsWith(s))return t+qc(e.substring(s.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],s=Object.entries(this.tags),i;if(e&&s.length>0&&Lr.isNode(e.contents)){let r={};Tc.visit(e.contents,(o,a)=>{Lr.isNode(a)&&a.tag&&(r[a.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of s)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&t.push(`%TAG ${r} ${o}`);return t.join(`
|
|
4
|
+
`)}};ct.defaultYaml={explicit:!1,version:"1.2"};ct.defaultTags={"!!":"tag:yaml.org,2002:"};jr.Directives=ct});var zt=y(ut=>{"use strict";var Tr=L(),Mc=lt();function Dc(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(t)}return!0}function $r(n){let e=new Set;return Mc.visit(n,{Value(t,s){s.anchor&&e.add(s.anchor)}}),e}function qr(n,e){for(let t=1;;++t){let s=`${n}${t}`;if(!e.has(s))return s}}function Pc(n,e){let t=[],s=new Map,i=null;return{onAnchor:r=>{t.push(r),i??(i=$r(n));let o=qr(e,i);return i.add(o),o},setAnchors:()=>{for(let r of t){let o=s.get(r);if(typeof o=="object"&&o.anchor&&(Tr.isScalar(o.node)||Tr.isCollection(o.node)))o.node.anchor=o.anchor;else{let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:s}}ut.anchorIsValid=Dc;ut.anchorNames=$r;ut.createNodeAnchors=Pc;ut.findNewAnchor=qr});var hs=y(Mr=>{"use strict";function ft(n,e,t,s){if(s&&typeof s=="object")if(Array.isArray(s))for(let i=0,r=s.length;i<r;++i){let o=s[i],a=ft(n,s,String(i),o);a===void 0?delete s[i]:a!==o&&(s[i]=a)}else if(s instanceof Map)for(let i of Array.from(s.keys())){let r=s.get(i),o=ft(n,s,i,r);o===void 0?s.delete(i):o!==r&&s.set(i,o)}else if(s instanceof Set)for(let i of Array.from(s)){let r=ft(n,s,i,i);r===void 0?s.delete(i):r!==i&&(s.delete(i),s.add(r))}else for(let[i,r]of Object.entries(s)){let o=ft(n,s,i,r);o===void 0?delete s[i]:o!==r&&(s[i]=o)}return n.call(e,t,s)}Mr.applyReviver=ft});var ye=y(Pr=>{"use strict";var _c=L();function Dr(n,e,t){if(Array.isArray(n))return n.map((s,i)=>Dr(s,String(i),t));if(n&&typeof n.toJSON=="function"){if(!t||!_c.hasAnchor(n))return n.toJSON(e,t);let s={aliasCount:0,count:1,res:void 0};t.anchors.set(n,s),t.onCreate=r=>{s.res=r,delete t.onCreate};let i=n.toJSON(e,t);return t.onCreate&&t.onCreate(i),i}return typeof n=="bigint"&&!t?.keep?Number(n):n}Pr.toJS=Dr});var Qt=y(xr=>{"use strict";var xc=hs(),_r=L(),Rc=ye(),ms=class{constructor(e){Object.defineProperty(this,_r.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:s,onAnchor:i,reviver:r}={}){if(!_r.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof s=="number"?s:100},a=Rc.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?xc.applyReviver(r,{"":a},"",a):a}};xr.NodeBase=ms});var dt=y(Rr=>{"use strict";var Fc=zt(),Bc=lt(),Ge=L(),Uc=Qt(),Kc=ye(),gs=class extends Uc.NodeBase{constructor(e){super(Ge.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,t){if(t?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let s;t?.aliasResolveCache?s=t.aliasResolveCache:(s=[],Bc.visit(e,{Node:(r,o)=>{(Ge.isAlias(o)||Ge.hasAnchor(o))&&s.push(o)}}),t&&(t.aliasResolveCache=s));let i;for(let r of s){if(r===this)break;r.anchor===this.source&&(i=r)}return i}toJSON(e,t){if(!t)return{source:this.source};let{anchors:s,doc:i,maxAliasCount:r}=t,o=this.resolve(i,t);if(!o){let l=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(l)}let a=s.get(o);if(a||(Kc.toJS(o,null,t),a=s.get(o)),a?.res===void 0){let l="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(l)}if(r>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=Xt(i,o,s)),a.count*a.aliasCount>r)){let l="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(l)}return a.res}toString(e,t,s){let i=`*${this.source}`;if(e){if(Fc.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${i} `}return i}};function Xt(n,e,t){if(Ge.isAlias(e)){let s=e.resolve(n),i=t&&s&&t.get(s);return i?i.count*i.aliasCount:0}else if(Ge.isCollection(e)){let s=0;for(let i of e.items){let r=Xt(n,i,t);r>s&&(s=r)}return s}else if(Ge.isPair(e)){let s=Xt(n,e.key,t),i=Xt(n,e.value,t);return Math.max(s,i)}return 1}Rr.Alias=gs});var R=y(ys=>{"use strict";var Gc=L(),Yc=Qt(),Jc=ye(),Vc=n=>!n||typeof n!="function"&&typeof n!="object",be=class extends Yc.NodeBase{constructor(e){super(Gc.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:Jc.toJS(this.value,e,t)}toString(){return String(this.value)}};be.BLOCK_FOLDED="BLOCK_FOLDED";be.BLOCK_LITERAL="BLOCK_LITERAL";be.PLAIN="PLAIN";be.QUOTE_DOUBLE="QUOTE_DOUBLE";be.QUOTE_SINGLE="QUOTE_SINGLE";ys.Scalar=be;ys.isScalarValue=Vc});var pt=y(Br=>{"use strict";var Wc=dt(),$e=L(),Fr=R(),Hc="tag:yaml.org,2002:";function zc(n,e,t){if(e){let s=t.filter(r=>r.tag===e),i=s.find(r=>!r.format)??s[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return t.find(s=>s.identify?.(n)&&!s.format)}function Qc(n,e,t){if($e.isDocument(n)&&(n=n.contents),$e.isNode(n))return n;if($e.isPair(n)){let f=t.schema[$e.MAP].createNode?.(t.schema,null,t);return f.items.push(n),f}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:s,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=t,l;if(s&&n&&typeof n=="object"){if(l=a.get(n),l)return l.anchor??(l.anchor=i(n)),new Wc.Alias(l.anchor);l={anchor:null,node:null},a.set(n,l)}e?.startsWith("!!")&&(e=Hc+e.slice(2));let c=zc(n,e,o.tags);if(!c){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let f=new Fr.Scalar(n);return l&&(l.node=f),f}c=n instanceof Map?o[$e.MAP]:Symbol.iterator in Object(n)?o[$e.SEQ]:o[$e.MAP]}r&&(r(c),delete t.onTagObj);let u=c?.createNode?c.createNode(t.schema,n,t):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(t.schema,n,t):new Fr.Scalar(n);return e?u.tag=e:c.default||(u.tag=c.tag),l&&(l.node=u),u}Br.createNode=Qc});var en=y(Zt=>{"use strict";var Xc=pt(),ue=L(),Zc=Qt();function bs(n,e,t){let s=t;for(let i=e.length-1;i>=0;--i){let r=e[i];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=s,s=o}else s=new Map([[r,s]])}return Xc.createNode(s,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var Ur=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,Ss=class extends Zc.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(s=>ue.isNode(s)||ue.isPair(s)?s.clone(e):s),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Ur(e))this.add(t);else{let[s,...i]=e,r=this.get(s,!0);if(ue.isCollection(r))r.addIn(i,t);else if(r===void 0&&this.schema)this.set(s,bs(this.schema,i,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}deleteIn(e){let[t,...s]=e;if(s.length===0)return this.delete(t);let i=this.get(t,!0);if(ue.isCollection(i))return i.deleteIn(s);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${s}`)}getIn(e,t){let[s,...i]=e,r=this.get(s,!0);return i.length===0?!t&&ue.isScalar(r)?r.value:r:ue.isCollection(r)?r.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!ue.isPair(t))return!1;let s=t.value;return s==null||e&&ue.isScalar(s)&&s.value==null&&!s.commentBefore&&!s.comment&&!s.tag})}hasIn(e){let[t,...s]=e;if(s.length===0)return this.has(t);let i=this.get(t,!0);return ue.isCollection(i)?i.hasIn(s):!1}setIn(e,t){let[s,...i]=e;if(i.length===0)this.set(s,t);else{let r=this.get(s,!0);if(ue.isCollection(r))r.setIn(i,t);else if(r===void 0&&this.schema)this.set(s,bs(this.schema,i,t));else throw new Error(`Expected YAML collection at ${s}. Remaining path: ${i}`)}}};Zt.Collection=Ss;Zt.collectionFromPath=bs;Zt.isEmptyPath=Ur});var ht=y(tn=>{"use strict";var eu=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function ws(n,e){return/^\n+$/.test(n)?n.substring(1):e?n.replace(/^(?! *$)/gm,e):n}var tu=(n,e,t)=>n.endsWith(`
|
|
5
|
+
`)?ws(t,e):t.includes(`
|
|
6
|
+
`)?`
|
|
7
|
+
`+ws(t,e):(n.endsWith(" ")?"":" ")+t;tn.indentComment=ws;tn.lineComment=tu;tn.stringifyComment=eu});var Gr=y(mt=>{"use strict";var nu="flow",vs="block",nn="quoted";function su(n,e,t="flow",{indentAtStart:s,lineWidth:i=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return n;i<r&&(r=0);let l=Math.max(1+r,1+i-e.length);if(n.length<=l)return n;let c=[],u={},f=i-e.length;typeof s=="number"&&(s>i-Math.max(2,r)?c.push(0):f=i-s);let d,h,g=!1,p=-1,m=-1,S=-1;t===vs&&(p=Kr(n,p,e.length),p!==-1&&(f=p+l));for(let k;k=n[p+=1];){if(t===nn&&k==="\\"){switch(m=p,n[p+1]){case"x":p+=3;break;case"u":p+=5;break;case"U":p+=9;break;default:p+=1}S=p}if(k===`
|
|
8
|
+
`)t===vs&&(p=Kr(n,p,e.length)),f=p+e.length+l,d=void 0;else{if(k===" "&&h&&h!==" "&&h!==`
|
|
9
|
+
`&&h!==" "){let C=n[p+1];C&&C!==" "&&C!==`
|
|
10
|
+
`&&C!==" "&&(d=p)}if(p>=f)if(d)c.push(d),f=d+l,d=void 0;else if(t===nn){for(;h===" "||h===" ";)h=k,k=n[p+=1],g=!0;let C=p>S+1?p-2:m-1;if(u[C])return n;c.push(C),u[C]=!0,f=C+l,d=void 0}else g=!0}h=k}if(g&&a&&a(),c.length===0)return n;o&&o();let v=n.slice(0,c[0]);for(let k=0;k<c.length;++k){let C=c[k],N=c[k+1]||n.length;C===0?v=`
|
|
11
|
+
${e}${n.slice(0,N)}`:(t===nn&&u[C]&&(v+=`${n[C]}\\`),v+=`
|
|
12
|
+
${e}${n.slice(C+1,N)}`)}return v}function Kr(n,e,t){let s=e,i=e+1,r=n[i];for(;r===" "||r===" ";)if(e<i+t)r=n[++e];else{do r=n[++e];while(r&&r!==`
|
|
13
|
+
`);s=e,i=e+1,r=n[i]}return s}mt.FOLD_BLOCK=vs;mt.FOLD_FLOW=nu;mt.FOLD_QUOTED=nn;mt.foldFlowLines=su});var yt=y(Yr=>{"use strict";var ie=R(),Se=Gr(),rn=(n,e)=>({indentAtStart:e?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),on=n=>/^(%|---|\.\.\.)/m.test(n);function iu(n,e,t){if(!e||e<0)return!1;let s=e-t,i=n.length;if(i<=s)return!1;for(let r=0,o=0;r<i;++r)if(n[r]===`
|
|
14
|
+
`){if(r-o>s)return!0;if(o=r+1,i-o<=s)return!1}return!0}function gt(n,e){let t=JSON.stringify(n);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:s}=e,i=e.options.doubleQuotedMinMultiLineLength,r=e.indent||(on(n)?" ":""),o="",a=0;for(let l=0,c=t[l];c;c=t[++l])if(c===" "&&t[l+1]==="\\"&&t[l+2]==="n"&&(o+=t.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(t[l+1]){case"u":{o+=t.slice(a,l);let u=t.substr(l+2,4);switch(u){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:u.substr(0,2)==="00"?o+="\\x"+u.substr(2):o+=t.substr(l,6)}l+=5,a=l+1}break;case"n":if(s||t[l+2]==='"'||t.length<i)l+=1;else{for(o+=t.slice(a,l)+`
|
|
5
15
|
|
|
6
|
-
|
|
7
|
-
|
|
16
|
+
`;t[l+2]==="\\"&&t[l+3]==="n"&&t[l+4]!=='"';)o+=`
|
|
17
|
+
`,l+=2;o+=r,t[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+t.slice(a):t,s?o:Se.foldFlowLines(o,r,Se.FOLD_QUOTED,rn(e,!1))}function ks(n,e){if(e.options.singleQuote===!1||e.implicitKey&&n.includes(`
|
|
18
|
+
`)||/[ \t]\n|\n[ \t]/.test(n))return gt(n,e);let t=e.indent||(on(n)?" ":""),s="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
19
|
+
${t}`)+"'";return e.implicitKey?s:Se.foldFlowLines(s,t,Se.FOLD_FLOW,rn(e,!1))}function Ye(n,e){let{singleQuote:t}=e.options,s;if(t===!1)s=gt;else{let i=n.includes('"'),r=n.includes("'");i&&!r?s=ks:r&&!i?s=gt:s=t?ks:gt}return s(n,e)}var Cs;try{Cs=new RegExp(`(^|(?<!
|
|
20
|
+
))
|
|
21
|
+
+(?!
|
|
22
|
+
|$)`,"g")}catch{Cs=/\n+(?!\n|$)/g}function sn({comment:n,type:e,value:t},s,i,r){let{blockQuote:o,commentString:a,lineWidth:l}=s.options;if(!o||/\n[\t ]+$/.test(t))return Ye(t,s);let c=s.indent||(s.forceBlockIndent||on(t)?" ":""),u=o==="literal"?!0:o==="folded"||e===ie.Scalar.BLOCK_FOLDED?!1:e===ie.Scalar.BLOCK_LITERAL?!0:!iu(t,l,c.length);if(!t)return u?`|
|
|
23
|
+
`:`>
|
|
24
|
+
`;let f,d;for(d=t.length;d>0;--d){let N=t[d-1];if(N!==`
|
|
25
|
+
`&&N!==" "&&N!==" ")break}let h=t.substring(d),g=h.indexOf(`
|
|
26
|
+
`);g===-1?f="-":t===h||g!==h.length-1?(f="+",r&&r()):f="",h&&(t=t.slice(0,-h.length),h[h.length-1]===`
|
|
27
|
+
`&&(h=h.slice(0,-1)),h=h.replace(Cs,`$&${c}`));let p=!1,m,S=-1;for(m=0;m<t.length;++m){let N=t[m];if(N===" ")p=!0;else if(N===`
|
|
28
|
+
`)S=m;else break}let v=t.substring(0,S<m?S+1:m);v&&(t=t.substring(v.length),v=v.replace(/\n+/g,`$&${c}`));let C=(p?c?"2":"1":"")+f;if(n&&(C+=" "+a(n.replace(/ ?[\r\n]+/g," ")),i&&i()),!u){let N=t.replace(/\n+/g,`
|
|
29
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),w=!1,I=rn(s,!0);o!=="folded"&&e!==ie.Scalar.BLOCK_FOLDED&&(I.onOverflow=()=>{w=!0});let b=Se.foldFlowLines(`${v}${N}${h}`,c,Se.FOLD_BLOCK,I);if(!w)return`>${C}
|
|
30
|
+
${c}${b}`}return t=t.replace(/\n+/g,`$&${c}`),`|${C}
|
|
31
|
+
${c}${v}${t}${h}`}function ru(n,e,t,s){let{type:i,value:r}=n,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:u}=e;if(a&&r.includes(`
|
|
32
|
+
`)||u&&/[[\]{},]/.test(r))return Ye(r,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(r))return a||u||!r.includes(`
|
|
33
|
+
`)?Ye(r,e):sn(n,e,t,s);if(!a&&!u&&i!==ie.Scalar.PLAIN&&r.includes(`
|
|
34
|
+
`))return sn(n,e,t,s);if(on(r)){if(l==="")return e.forceBlockIndent=!0,sn(n,e,t,s);if(a&&l===c)return Ye(r,e)}let f=r.replace(/\n+/g,`$&
|
|
35
|
+
${l}`);if(o){let d=p=>p.default&&p.tag!=="tag:yaml.org,2002:str"&&p.test?.test(f),{compat:h,tags:g}=e.doc.schema;if(g.some(d)||h?.some(d))return Ye(r,e)}return a?f:Se.foldFlowLines(f,l,Se.FOLD_FLOW,rn(e,!1))}function ou(n,e,t,s){let{implicitKey:i,inFlow:r}=e,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==ie.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ie.Scalar.QUOTE_DOUBLE);let l=u=>{switch(u){case ie.Scalar.BLOCK_FOLDED:case ie.Scalar.BLOCK_LITERAL:return i||r?Ye(o.value,e):sn(o,e,t,s);case ie.Scalar.QUOTE_DOUBLE:return gt(o.value,e);case ie.Scalar.QUOTE_SINGLE:return ks(o.value,e);case ie.Scalar.PLAIN:return ru(o,e,t,s);default:return null}},c=l(a);if(c===null){let{defaultKeyType:u,defaultStringType:f}=e.options,d=i&&u||f;if(c=l(d),c===null)throw new Error(`Unsupported default string type ${d}`)}return c}Yr.stringifyString=ou});var bt=y(Ns=>{"use strict";var au=zt(),we=L(),lu=ht(),cu=yt();function uu(n,e){let t=Object.assign({blockQuote:!0,commentString:lu.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:"true",verifyAliasOrder:!0},n.schema.toStringOptions,e),s;switch(t.collectionStyle){case"block":s=!1;break;case"flow":s=!0;break;default:s=null}return{anchors:new Set,doc:n,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:s,options:t}}function fu(n,e){if(e.tag){let i=n.filter(r=>r.tag===e.tag);if(i.length>0)return i.find(r=>r.format===e.format)??i[0]}let t,s;if(we.isScalar(e)){s=e.value;let i=n.filter(r=>r.identify?.(s));if(i.length>1){let r=i.filter(o=>o.test);r.length>0&&(i=r)}t=i.find(r=>r.format===e.format)??i.find(r=>!r.format)}else s=e,t=n.find(i=>i.nodeClass&&s instanceof i.nodeClass);if(!t){let i=s?.constructor?.name??(s===null?"null":typeof s);throw new Error(`Tag not resolved for ${i} value`)}return t}function du(n,e,{anchors:t,doc:s}){if(!s.directives)return"";let i=[],r=(we.isScalar(n)||we.isCollection(n))&&n.anchor;r&&au.anchorIsValid(r)&&(t.add(r),i.push(`&${r}`));let o=n.tag??(e.default?null:e.tag);return o&&i.push(s.directives.tagString(o)),i.join(" ")}function pu(n,e,t,s){if(we.isPair(n))return n.toString(e,t,s);if(we.isAlias(n)){if(e.doc.directives)return n.toString(e);if(e.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(n):e.resolvedAliases=new Set([n]),n=n.resolve(e.doc)}let i,r=we.isNode(n)?n:e.doc.createNode(n,{onTagObj:l=>i=l});i??(i=fu(e.doc.schema.tags,r));let o=du(r,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(r,e,t,s):we.isScalar(r)?cu.stringifyString(r,e,t,s):r.toString(e,t,s);return o?we.isScalar(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
36
|
+
${e.indent}${a}`:a}Ns.createStringifyContext=uu;Ns.stringify=pu});var Hr=y(Wr=>{"use strict";var he=L(),Jr=R(),Vr=bt(),St=ht();function hu({key:n,value:e},t,s,i){let{allNullValues:r,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:u,simpleKeys:f}}=t,d=he.isNode(n)&&n.comment||null;if(f){if(d)throw new Error("With simple keys, key nodes cannot have comments");if(he.isCollection(n)||!he.isNode(n)&&typeof n=="object"){let I="With simple keys, collection cannot be used as a key value";throw new Error(I)}}let h=!f&&(!n||d&&e==null&&!t.inFlow||he.isCollection(n)||(he.isScalar(n)?n.type===Jr.Scalar.BLOCK_FOLDED||n.type===Jr.Scalar.BLOCK_LITERAL:typeof n=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!h&&(f||!r),indent:a+l});let g=!1,p=!1,m=Vr.stringify(n,t,()=>g=!0,()=>p=!0);if(!h&&!t.inFlow&&m.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=!0}if(t.inFlow){if(r||e==null)return g&&s&&s(),m===""?"?":h?`? ${m}`:m}else if(r&&!f||e==null&&h)return m=`? ${m}`,d&&!g?m+=St.lineComment(m,t.indent,c(d)):p&&i&&i(),m;g&&(d=null),h?(d&&(m+=St.lineComment(m,t.indent,c(d))),m=`? ${m}
|
|
37
|
+
${a}:`):(m=`${m}:`,d&&(m+=St.lineComment(m,t.indent,c(d))));let S,v,k;he.isNode(e)?(S=!!e.spaceBefore,v=e.commentBefore,k=e.comment):(S=!1,v=null,k=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!h&&!d&&he.isScalar(e)&&(t.indentAtStart=m.length+1),p=!1,!u&&l.length>=2&&!t.inFlow&&!h&&he.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let C=!1,N=Vr.stringify(e,t,()=>C=!0,()=>p=!0),w=" ";if(d||S||v){if(w=S?`
|
|
38
|
+
`:"",v){let I=c(v);w+=`
|
|
39
|
+
${St.indentComment(I,t.indent)}`}N===""&&!t.inFlow?w===`
|
|
40
|
+
`&&k&&(w=`
|
|
8
41
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
"""
|
|
12
|
-
|
|
42
|
+
`):w+=`
|
|
43
|
+
${t.indent}`}else if(!h&&he.isCollection(e)){let I=N[0],b=N.indexOf(`
|
|
44
|
+
`),E=b!==-1,F=t.inFlow??e.flow??e.items.length===0;if(E||!F){let K=!1;if(E&&(I==="&"||I==="!")){let D=N.indexOf(" ");I==="&"&&D!==-1&&D<b&&N[D+1]==="!"&&(D=N.indexOf(" ",D+1)),(D===-1||b<D)&&(K=!0)}K||(w=`
|
|
45
|
+
${t.indent}`)}}else(N===""||N[0]===`
|
|
46
|
+
`)&&(w="");return m+=w+N,t.inFlow?C&&s&&s():k&&!C?m+=St.lineComment(m,t.indent,c(k)):p&&i&&i(),m}Wr.stringifyPair=hu});var As=y(Is=>{"use strict";var zr=Ut("process");function mu(n,...e){n==="debug"&&console.log(...e)}function gu(n,e){(n==="debug"||n==="warn")&&(typeof zr.emitWarning=="function"?zr.emitWarning(e):console.warn(e))}Is.debug=mu;Is.warn=gu});var fn=y(un=>{"use strict";var cn=L(),Qr=R(),an="<<",ln={identify:n=>n===an||typeof n=="symbol"&&n.description===an,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Qr.Scalar(Symbol(an)),{addToJSMap:Xr}),stringify:()=>an},yu=(n,e)=>(ln.identify(e)||cn.isScalar(e)&&(!e.type||e.type===Qr.Scalar.PLAIN)&&ln.identify(e.value))&&n?.doc.schema.tags.some(t=>t.tag===ln.tag&&t.default);function Xr(n,e,t){let s=Zr(n,t);if(cn.isSeq(s))for(let i of s.items)Os(n,e,i);else if(Array.isArray(s))for(let i of s)Os(n,e,i);else Os(n,e,s)}function Os(n,e,t){let s=Zr(n,t);if(!cn.isMap(s))throw new Error("Merge sources must be maps or map aliases");let i=s.toJSON(null,n,Map);for(let[r,o]of i)e instanceof Map?e.has(r)||e.set(r,o):e instanceof Set?e.add(r):Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function Zr(n,e){return n&&cn.isAlias(e)?e.resolve(n.doc,n):e}un.addMergeToJSMap=Xr;un.isMergeKey=yu;un.merge=ln});var Ls=y(no=>{"use strict";var bu=As(),eo=fn(),Su=bt(),to=L(),Es=ye();function wu(n,e,{key:t,value:s}){if(to.isNode(t)&&t.addToJSMap)t.addToJSMap(n,e,s);else if(eo.isMergeKey(n,t))eo.addMergeToJSMap(n,e,s);else{let i=Es.toJS(t,"",n);if(e instanceof Map)e.set(i,Es.toJS(s,i,n));else if(e instanceof Set)e.add(i);else{let r=vu(t,i,n),o=Es.toJS(s,r,n);r in e?Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[r]=o}}return e}function vu(n,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(to.isNode(n)&&t?.doc){let s=Su.createStringifyContext(t.doc,{});s.anchors=new Set;for(let r of t.anchors.keys())s.anchors.add(r.anchor);s.inFlow=!0,s.inStringifyKey=!0;let i=n.toString(s);if(!t.mapKeyWarned){let r=JSON.stringify(i);r.length>40&&(r=r.substring(0,36)+'..."'),bu.warn(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${r}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return i}return JSON.stringify(e)}no.addPairToJSMap=wu});var ve=y(js=>{"use strict";var so=pt(),ku=Hr(),Cu=Ls(),dn=L();function Nu(n,e,t){let s=so.createNode(n,void 0,t),i=so.createNode(e,void 0,t);return new pn(s,i)}var pn=class n{constructor(e,t=null){Object.defineProperty(this,dn.NODE_TYPE,{value:dn.PAIR}),this.key=e,this.value=t}clone(e){let{key:t,value:s}=this;return dn.isNode(t)&&(t=t.clone(e)),dn.isNode(s)&&(s=s.clone(e)),new n(t,s)}toJSON(e,t){let s=t?.mapAsMap?new Map:{};return Cu.addPairToJSMap(t,s,this)}toString(e,t,s){return e?.doc?ku.stringifyPair(this,e,t,s):JSON.stringify(this)}};js.Pair=pn;js.createPair=Nu});var Ts=y(ro=>{"use strict";var qe=L(),io=bt(),hn=ht();function Iu(n,e,t){return(e.inFlow??n.flow?Ou:Au)(n,e,t)}function Au({comment:n,items:e},t,{blockItemPrefix:s,flowChars:i,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=t,u=Object.assign({},t,{indent:r,type:null}),f=!1,d=[];for(let g=0;g<e.length;++g){let p=e[g],m=null;if(qe.isNode(p))!f&&p.spaceBefore&&d.push(""),mn(t,d,p.commentBefore,f),p.comment&&(m=p.comment);else if(qe.isPair(p)){let v=qe.isNode(p.key)?p.key:null;v&&(!f&&v.spaceBefore&&d.push(""),mn(t,d,v.commentBefore,f))}f=!1;let S=io.stringify(p,u,()=>m=null,()=>f=!0);m&&(S+=hn.lineComment(S,r,c(m))),f&&m&&(f=!1),d.push(s+S)}let h;if(d.length===0)h=i.start+i.end;else{h=d[0];for(let g=1;g<d.length;++g){let p=d[g];h+=p?`
|
|
47
|
+
${l}${p}`:`
|
|
48
|
+
`}}return n?(h+=`
|
|
49
|
+
`+hn.indentComment(c(n),l),a&&a()):f&&o&&o(),h}function Ou({items:n},e,{flowChars:t,itemIndent:s}){let{indent:i,indentStep:r,flowCollectionPadding:o,options:{commentString:a}}=e;s+=r;let l=Object.assign({},e,{indent:s,inFlow:!0,type:null}),c=!1,u=0,f=[];for(let g=0;g<n.length;++g){let p=n[g],m=null;if(qe.isNode(p))p.spaceBefore&&f.push(""),mn(e,f,p.commentBefore,!1),p.comment&&(m=p.comment);else if(qe.isPair(p)){let v=qe.isNode(p.key)?p.key:null;v&&(v.spaceBefore&&f.push(""),mn(e,f,v.commentBefore,!1),v.comment&&(c=!0));let k=qe.isNode(p.value)?p.value:null;k?(k.comment&&(m=k.comment),k.commentBefore&&(c=!0)):p.value==null&&v?.comment&&(m=v.comment)}m&&(c=!0);let S=io.stringify(p,l,()=>m=null);c||(c=f.length>u||S.includes(`
|
|
50
|
+
`)),g<n.length-1?S+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=f.reduce((v,k)=>v+k.length+2,2)+(S.length+2)>e.options.lineWidth)),c&&(S+=",")),m&&(S+=hn.lineComment(S,s,a(m))),f.push(S),u=f.length}let{start:d,end:h}=t;if(f.length===0)return d+h;if(!c){let g=f.reduce((p,m)=>p+m.length+2,2);c=e.options.lineWidth>0&&g>e.options.lineWidth}if(c){let g=d;for(let p of f)g+=p?`
|
|
51
|
+
${r}${i}${p}`:`
|
|
52
|
+
`;return`${g}
|
|
53
|
+
${i}${h}`}else return`${d}${o}${f.join(" ")}${o}${h}`}function mn({indent:n,options:{commentString:e}},t,s,i){if(s&&i&&(s=s.replace(/^\n+/,"")),s){let r=hn.indentComment(e(s),n);t.push(r.trimStart())}}ro.stringifyCollection=Iu});var Ce=y(qs=>{"use strict";var Eu=Ts(),Lu=Ls(),ju=en(),ke=L(),gn=ve(),Tu=R();function wt(n,e){let t=ke.isScalar(e)?e.value:e;for(let s of n)if(ke.isPair(s)&&(s.key===e||s.key===t||ke.isScalar(s.key)&&s.key.value===t))return s}var $s=class extends ju.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(ke.MAP,e),this.items=[]}static from(e,t,s){let{keepUndefined:i,replacer:r}=s,o=new this(e),a=(l,c)=>{if(typeof r=="function")c=r.call(t,l,c);else if(Array.isArray(r)&&!r.includes(l))return;(c!==void 0||i)&&o.items.push(gn.createPair(l,c,s))};if(t instanceof Map)for(let[l,c]of t)a(l,c);else if(t&&typeof t=="object")for(let l of Object.keys(t))a(l,t[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){let s;ke.isPair(e)?s=e:!e||typeof e!="object"||!("key"in e)?s=new gn.Pair(e,e?.value):s=new gn.Pair(e.key,e.value);let i=wt(this.items,s.key),r=this.schema?.sortMapEntries;if(i){if(!t)throw new Error(`Key ${s.key} already set`);ke.isScalar(i.value)&&Tu.isScalarValue(s.value)?i.value.value=s.value:i.value=s.value}else if(r){let o=this.items.findIndex(a=>r(s,a)<0);o===-1?this.items.push(s):this.items.splice(o,0,s)}else this.items.push(s)}delete(e){let t=wt(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let i=wt(this.items,e)?.value;return(!t&&ke.isScalar(i)?i.value:i)??void 0}has(e){return!!wt(this.items,e)}set(e,t){this.add(new gn.Pair(e,t),!0)}toJSON(e,t,s){let i=s?new s:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let r of this.items)Lu.addPairToJSMap(t,i,r);return i}toString(e,t,s){if(!e)return JSON.stringify(this);for(let i of this.items)if(!ke.isPair(i))throw new Error(`Map items must all be pairs; found ${JSON.stringify(i)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Eu.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:s,onComment:t})}};qs.YAMLMap=$s;qs.findPair=wt});var Je=y(ao=>{"use strict";var $u=L(),oo=Ce(),qu={collection:"map",default:!0,nodeClass:oo.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(n,e){return $u.isMap(n)||e("Expected a mapping for this tag"),n},createNode:(n,e,t)=>oo.YAMLMap.from(n,e,t)};ao.map=qu});var Ne=y(lo=>{"use strict";var Mu=pt(),Du=Ts(),Pu=en(),bn=L(),_u=R(),xu=ye(),Ms=class extends Pu.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(bn.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=yn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let s=yn(e);if(typeof s!="number")return;let i=this.items[s];return!t&&bn.isScalar(i)?i.value:i}has(e){let t=yn(e);return typeof t=="number"&&t<this.items.length}set(e,t){let s=yn(e);if(typeof s!="number")throw new Error(`Expected a valid index, not ${e}.`);let i=this.items[s];bn.isScalar(i)&&_u.isScalarValue(t)?i.value=t:this.items[s]=t}toJSON(e,t){let s=[];t?.onCreate&&t.onCreate(s);let i=0;for(let r of this.items)s.push(xu.toJS(r,String(i++),t));return s}toString(e,t,s){return e?Du.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:s,onComment:t}):JSON.stringify(this)}static from(e,t,s){let{replacer:i}=s,r=new this(e);if(t&&Symbol.iterator in Object(t)){let o=0;for(let a of t){if(typeof i=="function"){let l=t instanceof Set?a:String(o++);a=i.call(t,l,a)}r.items.push(Mu.createNode(a,void 0,s))}}return r}};function yn(n){let e=bn.isScalar(n)?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}lo.YAMLSeq=Ms});var Ve=y(uo=>{"use strict";var Ru=L(),co=Ne(),Fu={collection:"seq",default:!0,nodeClass:co.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(n,e){return Ru.isSeq(n)||e("Expected a sequence for this tag"),n},createNode:(n,e,t)=>co.YAMLSeq.from(n,e,t)};uo.seq=Fu});var vt=y(fo=>{"use strict";var Bu=yt(),Uu={identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,e,t,s){return e=Object.assign({actualString:!0},e),Bu.stringifyString(n,e,t,s)}};fo.string=Uu});var Sn=y(mo=>{"use strict";var po=R(),ho={identify:n=>n==null,createNode:()=>new po.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new po.Scalar(null),stringify:({source:n},e)=>typeof n=="string"&&ho.test.test(n)?n:e.options.nullStr};mo.nullTag=ho});var Ds=y(yo=>{"use strict";var Ku=R(),go={identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new Ku.Scalar(n[0]==="t"||n[0]==="T"),stringify({source:n,value:e},t){if(n&&go.test.test(n)){let s=n[0]==="t"||n[0]==="T";if(e===s)return n}return e?t.options.trueStr:t.options.falseStr}};yo.boolTag=go});var We=y(bo=>{"use strict";function Gu({format:n,minFractionDigits:e,tag:t,value:s}){if(typeof s=="bigint")return String(s);let i=typeof s=="number"?s:Number(s);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let r=Object.is(s,-0)?"-0":JSON.stringify(s);if(!n&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^-?\d/.test(r)&&!r.includes("e")){let o=r.indexOf(".");o<0&&(o=r.length,r+=".");let a=e-(r.length-o-1);for(;a-- >0;)r+="0"}return r}bo.stringifyNumber=Gu});var _s=y(wn=>{"use strict";var Yu=R(),Ps=We(),Ju={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Ps.stringifyNumber},Vu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Ps.stringifyNumber(n)}},Wu={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let e=new Yu.Scalar(parseFloat(n)),t=n.indexOf(".");return t!==-1&&n[n.length-1]==="0"&&(e.minFractionDigits=n.length-t-1),e},stringify:Ps.stringifyNumber};wn.float=Wu;wn.floatExp=Vu;wn.floatNaN=Ju});var Rs=y(kn=>{"use strict";var So=We(),vn=n=>typeof n=="bigint"||Number.isInteger(n),xs=(n,e,t,{intAsBigInt:s})=>s?BigInt(n):parseInt(n.substring(e),t);function wo(n,e,t){let{value:s}=n;return vn(s)&&s>=0?t+s.toString(e):So.stringifyNumber(n)}var Hu={identify:n=>vn(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,e,t)=>xs(n,2,8,t),stringify:n=>wo(n,8,"0o")},zu={identify:vn,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,e,t)=>xs(n,0,10,t),stringify:So.stringifyNumber},Qu={identify:n=>vn(n)&&n>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,e,t)=>xs(n,2,16,t),stringify:n=>wo(n,16,"0x")};kn.int=zu;kn.intHex=Qu;kn.intOct=Hu});var ko=y(vo=>{"use strict";var Xu=Je(),Zu=Sn(),ef=Ve(),tf=vt(),nf=Ds(),Fs=_s(),Bs=Rs(),sf=[Xu.map,ef.seq,tf.string,Zu.nullTag,nf.boolTag,Bs.intOct,Bs.int,Bs.intHex,Fs.floatNaN,Fs.floatExp,Fs.float];vo.schema=sf});var Io=y(No=>{"use strict";var rf=R(),of=Je(),af=Ve();function Co(n){return typeof n=="bigint"||Number.isInteger(n)}var Cn=({value:n})=>JSON.stringify(n),lf=[{identify:n=>typeof n=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:Cn},{identify:n=>n==null,createNode:()=>new rf.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Cn},{identify:n=>typeof n=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:Cn},{identify:Co,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,e,{intAsBigInt:t})=>t?BigInt(n):parseInt(n,10),stringify:({value:n})=>Co(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:Cn}],cf={default:!0,tag:"",test:/^/,resolve(n,e){return e(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},uf=[of.map,af.seq].concat(lf,cf);No.schema=uf});var Ks=y(Ao=>{"use strict";var kt=Ut("buffer"),Us=R(),ff=yt(),df={identify:n=>n instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(n,e){if(typeof kt.Buffer=="function")return kt.Buffer.from(n,"base64");if(typeof atob=="function"){let t=atob(n.replace(/[\n\r]/g,"")),s=new Uint8Array(t.length);for(let i=0;i<t.length;++i)s[i]=t.charCodeAt(i);return s}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),n},stringify({comment:n,type:e,value:t},s,i,r){if(!t)return"";let o=t,a;if(typeof kt.Buffer=="function")a=o instanceof kt.Buffer?o.toString("base64"):kt.Buffer.from(o.buffer).toString("base64");else if(typeof btoa=="function"){let l="";for(let c=0;c<o.length;++c)l+=String.fromCharCode(o[c]);a=btoa(l)}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(e??(e=Us.Scalar.BLOCK_LITERAL),e!==Us.Scalar.QUOTE_DOUBLE){let l=Math.max(s.options.lineWidth-s.indent.length,s.options.minContentWidth),c=Math.ceil(a.length/l),u=new Array(c);for(let f=0,d=0;f<c;++f,d+=l)u[f]=a.substr(d,l);a=u.join(e===Us.Scalar.BLOCK_LITERAL?`
|
|
54
|
+
`:" ")}return ff.stringifyString({comment:n,type:e,value:a},s,i,r)}};Ao.binary=df});var An=y(In=>{"use strict";var Nn=L(),Gs=ve(),pf=R(),hf=Ne();function Oo(n,e){if(Nn.isSeq(n))for(let t=0;t<n.items.length;++t){let s=n.items[t];if(!Nn.isPair(s)){if(Nn.isMap(s)){s.items.length>1&&e("Each pair must have its own sequence indicator");let i=s.items[0]||new Gs.Pair(new pf.Scalar(null));if(s.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${s.commentBefore}
|
|
55
|
+
${i.key.commentBefore}`:s.commentBefore),s.comment){let r=i.value??i.key;r.comment=r.comment?`${s.comment}
|
|
56
|
+
${r.comment}`:s.comment}s=i}n.items[t]=Nn.isPair(s)?s:new Gs.Pair(s)}}else e("Expected a sequence for this tag");return n}function Eo(n,e,t){let{replacer:s}=t,i=new hf.YAMLSeq(n);i.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof s=="function"&&(o=s.call(e,String(r++),o));let a,l;if(Array.isArray(o))if(o.length===2)a=o[0],l=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let c=Object.keys(o);if(c.length===1)a=c[0],l=o[a];else throw new TypeError(`Expected tuple with one key, not ${c.length} keys`)}else a=o;i.items.push(Gs.createPair(a,l,t))}return i}var mf={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Oo,createNode:Eo};In.createPairs=Eo;In.pairs=mf;In.resolvePairs=Oo});var Vs=y(Js=>{"use strict";var Lo=L(),Ys=ye(),Ct=Ce(),gf=Ne(),jo=An(),Me=class n extends gf.YAMLSeq{constructor(){super(),this.add=Ct.YAMLMap.prototype.add.bind(this),this.delete=Ct.YAMLMap.prototype.delete.bind(this),this.get=Ct.YAMLMap.prototype.get.bind(this),this.has=Ct.YAMLMap.prototype.has.bind(this),this.set=Ct.YAMLMap.prototype.set.bind(this),this.tag=n.tag}toJSON(e,t){if(!t)return super.toJSON(e);let s=new Map;t?.onCreate&&t.onCreate(s);for(let i of this.items){let r,o;if(Lo.isPair(i)?(r=Ys.toJS(i.key,"",t),o=Ys.toJS(i.value,r,t)):r=Ys.toJS(i,"",t),s.has(r))throw new Error("Ordered maps must not include duplicate keys");s.set(r,o)}return s}static from(e,t,s){let i=jo.createPairs(e,t,s),r=new this;return r.items=i.items,r}};Me.tag="tag:yaml.org,2002:omap";var yf={collection:"seq",identify:n=>n instanceof Map,nodeClass:Me,default:!1,tag:"tag:yaml.org,2002:omap",resolve(n,e){let t=jo.resolvePairs(n,e),s=[];for(let{key:i}of t.items)Lo.isScalar(i)&&(s.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):s.push(i.value));return Object.assign(new Me,t)},createNode:(n,e,t)=>Me.from(n,e,t)};Js.YAMLOMap=Me;Js.omap=yf});var Do=y(Ws=>{"use strict";var To=R();function $o({value:n,source:e},t){return e&&(n?qo:Mo).test.test(e)?e:n?t.options.trueStr:t.options.falseStr}var qo={identify:n=>n===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new To.Scalar(!0),stringify:$o},Mo={identify:n=>n===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new To.Scalar(!1),stringify:$o};Ws.falseTag=Mo;Ws.trueTag=qo});var Po=y(On=>{"use strict";var bf=R(),Hs=We(),Sf={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Hs.stringifyNumber},wf={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let e=Number(n.value);return isFinite(e)?e.toExponential():Hs.stringifyNumber(n)}},vf={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let e=new bf.Scalar(parseFloat(n.replace(/_/g,""))),t=n.indexOf(".");if(t!==-1){let s=n.substring(t+1).replace(/_/g,"");s[s.length-1]==="0"&&(e.minFractionDigits=s.length)}return e},stringify:Hs.stringifyNumber};On.float=vf;On.floatExp=wf;On.floatNaN=Sf});var xo=y(It=>{"use strict";var _o=We(),Nt=n=>typeof n=="bigint"||Number.isInteger(n);function En(n,e,t,{intAsBigInt:s}){let i=n[0];if((i==="-"||i==="+")&&(e+=1),n=n.substring(e).replace(/_/g,""),s){switch(t){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return i==="-"?BigInt(-1)*o:o}let r=parseInt(n,t);return i==="-"?-1*r:r}function zs(n,e,t){let{value:s}=n;if(Nt(s)){let i=s.toString(e);return s<0?"-"+t+i.substr(1):t+i}return _o.stringifyNumber(n)}var kf={identify:Nt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,e,t)=>En(n,2,2,t),stringify:n=>zs(n,2,"0b")},Cf={identify:Nt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,e,t)=>En(n,1,8,t),stringify:n=>zs(n,8,"0")},Nf={identify:Nt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,e,t)=>En(n,0,10,t),stringify:_o.stringifyNumber},If={identify:Nt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,e,t)=>En(n,2,16,t),stringify:n=>zs(n,16,"0x")};It.int=Nf;It.intBin=kf;It.intHex=If;It.intOct=Cf});var Xs=y(Qs=>{"use strict";var Tn=L(),Ln=ve(),jn=Ce(),De=class n extends jn.YAMLMap{constructor(e){super(e),this.tag=n.tag}add(e){let t;Tn.isPair(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new Ln.Pair(e.key,null):t=new Ln.Pair(e,null),jn.findPair(this.items,t.key)||this.items.push(t)}get(e,t){let s=jn.findPair(this.items,e);return!t&&Tn.isPair(s)?Tn.isScalar(s.key)?s.key.value:s.key:s}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let s=jn.findPair(this.items,e);s&&!t?this.items.splice(this.items.indexOf(s),1):!s&&t&&this.items.push(new Ln.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,s){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,s);throw new Error("Set items must all have null values")}static from(e,t,s){let{replacer:i}=s,r=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof i=="function"&&(o=i.call(t,o,o)),r.items.push(Ln.createPair(o,null,s));return r}};De.tag="tag:yaml.org,2002:set";var Af={collection:"map",identify:n=>n instanceof Set,nodeClass:De,default:!1,tag:"tag:yaml.org,2002:set",createNode:(n,e,t)=>De.from(n,e,t),resolve(n,e){if(Tn.isMap(n)){if(n.hasAllNullValues(!0))return Object.assign(new De,n);e("Set items must all have null values")}else e("Expected a mapping for this tag");return n}};Qs.YAMLSet=De;Qs.set=Af});var ei=y($n=>{"use strict";var Of=We();function Zs(n,e){let t=n[0],s=t==="-"||t==="+"?n.substring(1):n,i=o=>e?BigInt(o):Number(o),r=s.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return t==="-"?i(-1)*r:r}function Ro(n){let{value:e}=n,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Of.stringifyNumber(n);let s="";e<0&&(s="-",e*=t(-1));let i=t(60),r=[e%i];return e<60?r.unshift(0):(e=(e-r[0])/i,r.unshift(e%i),e>=60&&(e=(e-r[0])/i,r.unshift(e))),s+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Ef={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,e,{intAsBigInt:t})=>Zs(n,t),stringify:Ro},Lf={identify:n=>typeof n=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Zs(n,!1),stringify:Ro},Fo={identify:n=>n instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",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})?))?)?$"),resolve(n){let e=n.match(Fo.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,s,i,r,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(t,s-1,i,r||0,o||0,a||0,l),u=e[8];if(u&&u!=="Z"){let f=Zs(u,!1);Math.abs(f)<30&&(f*=60),c-=6e4*f}return new Date(c)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};$n.floatTime=Lf;$n.intTime=Ef;$n.timestamp=Fo});var Ko=y(Uo=>{"use strict";var jf=Je(),Tf=Sn(),$f=Ve(),qf=vt(),Mf=Ks(),Bo=Do(),ti=Po(),qn=xo(),Df=fn(),Pf=Vs(),_f=An(),xf=Xs(),ni=ei(),Rf=[jf.map,$f.seq,qf.string,Tf.nullTag,Bo.trueTag,Bo.falseTag,qn.intBin,qn.intOct,qn.int,qn.intHex,ti.floatNaN,ti.floatExp,ti.float,Mf.binary,Df.merge,Pf.omap,_f.pairs,xf.set,ni.intTime,ni.floatTime,ni.timestamp];Uo.schema=Rf});var Zo=y(ri=>{"use strict";var Vo=Je(),Ff=Sn(),Wo=Ve(),Bf=vt(),Uf=Ds(),si=_s(),ii=Rs(),Kf=ko(),Gf=Io(),Ho=Ks(),At=fn(),zo=Vs(),Qo=An(),Go=Ko(),Xo=Xs(),Mn=ei(),Yo=new Map([["core",Kf.schema],["failsafe",[Vo.map,Wo.seq,Bf.string]],["json",Gf.schema],["yaml11",Go.schema],["yaml-1.1",Go.schema]]),Jo={binary:Ho.binary,bool:Uf.boolTag,float:si.float,floatExp:si.floatExp,floatNaN:si.floatNaN,floatTime:Mn.floatTime,int:ii.int,intHex:ii.intHex,intOct:ii.intOct,intTime:Mn.intTime,map:Vo.map,merge:At.merge,null:Ff.nullTag,omap:zo.omap,pairs:Qo.pairs,seq:Wo.seq,set:Xo.set,timestamp:Mn.timestamp},Yf={"tag:yaml.org,2002:binary":Ho.binary,"tag:yaml.org,2002:merge":At.merge,"tag:yaml.org,2002:omap":zo.omap,"tag:yaml.org,2002:pairs":Qo.pairs,"tag:yaml.org,2002:set":Xo.set,"tag:yaml.org,2002:timestamp":Mn.timestamp};function Jf(n,e,t){let s=Yo.get(e);if(s&&!n)return t&&!s.includes(At.merge)?s.concat(At.merge):s.slice();let i=s;if(!i)if(Array.isArray(n))i=[];else{let r=Array.from(Yo.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${r} or define customTags array`)}if(Array.isArray(n))for(let r of n)i=i.concat(r);else typeof n=="function"&&(i=n(i.slice()));return t&&(i=i.concat(At.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?Jo[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(Jo).map(u=>JSON.stringify(u)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}ri.coreKnownTags=Yf;ri.getTags=Jf});var li=y(ea=>{"use strict";var oi=L(),Vf=Je(),Wf=Ve(),Hf=vt(),Dn=Zo(),zf=(n,e)=>n.key<e.key?-1:n.key>e.key?1:0,ai=class n{constructor({compat:e,customTags:t,merge:s,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Dn.getTags(e,"compat"):e?Dn.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?Dn.coreKnownTags:{},this.tags=Dn.getTags(t,this.name,s),this.toStringOptions=a??null,Object.defineProperty(this,oi.MAP,{value:Vf.map}),Object.defineProperty(this,oi.SCALAR,{value:Hf.string}),Object.defineProperty(this,oi.SEQ,{value:Wf.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?zf:null}clone(){let e=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};ea.Schema=ai});var na=y(ta=>{"use strict";var Qf=L(),ci=bt(),Ot=ht();function Xf(n,e){let t=[],s=e.directives===!0;if(e.directives!==!1&&n.directives){let l=n.directives.toString(n);l?(t.push(l),s=!0):n.directives.docStart&&(s=!0)}s&&t.push("---");let i=ci.createStringifyContext(n,e),{commentString:r}=i.options;if(n.commentBefore){t.length!==1&&t.unshift("");let l=r(n.commentBefore);t.unshift(Ot.indentComment(l,""))}let o=!1,a=null;if(n.contents){if(Qf.isNode(n.contents)){if(n.contents.spaceBefore&&s&&t.push(""),n.contents.commentBefore){let u=r(n.contents.commentBefore);t.push(Ot.indentComment(u,""))}i.forceBlockIndent=!!n.comment,a=n.contents.comment}let l=a?void 0:()=>o=!0,c=ci.stringify(n.contents,i,()=>a=null,l);a&&(c+=Ot.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${c}`:t.push(c)}else t.push(ci.stringify(n.contents,i));if(n.directives?.docEnd)if(n.comment){let l=r(n.comment);l.includes(`
|
|
57
|
+
`)?(t.push("..."),t.push(Ot.indentComment(l,""))):t.push(`... ${l}`)}else t.push("...");else{let l=n.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&t[t.length-1]!==""&&t.push(""),t.push(Ot.indentComment(r(l),"")))}return t.join(`
|
|
58
|
+
`)+`
|
|
59
|
+
`}ta.stringifyDocument=Xf});var Et=y(sa=>{"use strict";var Zf=dt(),He=en(),te=L(),ed=ve(),td=ye(),nd=li(),sd=na(),ui=zt(),id=hs(),rd=pt(),fi=ps(),di=class n{constructor(e,t,s){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,te.NODE_TYPE,{value:te.DOC});let i=null;typeof t=="function"||Array.isArray(t)?i=t:s===void 0&&t&&(s=t,t=void 0);let r=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},s);this.options=r;let{version:o}=r;s?._directives?(this.directives=s._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new fi.Directives({version:o}),this.setSchema(o,s),this.contents=e===void 0?null:this.createNode(e,i,s)}clone(){let e=Object.create(n.prototype,{[te.NODE_TYPE]:{value:te.DOC}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=te.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){ze(this.contents)&&this.contents.add(e)}addIn(e,t){ze(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let s=ui.anchorNames(this);e.anchor=!t||s.has(t)?ui.findNewAnchor(t||"a",s):t}return new Zf.Alias(e.anchor)}createNode(e,t,s){let i;if(typeof t=="function")e=t.call({"":e},"",e),i=t;else if(Array.isArray(t)){let m=v=>typeof v=="number"||v instanceof String||v instanceof Number,S=t.filter(m).map(String);S.length>0&&(t=t.concat(S)),i=t}else s===void 0&&t&&(s=t,t=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:u}=s??{},{onAnchor:f,setAnchors:d,sourceObjects:h}=ui.createNodeAnchors(this,o||"a"),g={aliasDuplicateObjects:r??!0,keepUndefined:l??!1,onAnchor:f,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:h},p=rd.createNode(e,u,g);return a&&te.isCollection(p)&&(p.flow=!0),d(),p}createPair(e,t,s={}){let i=this.createNode(e,null,s),r=this.createNode(t,null,s);return new ed.Pair(i,r)}delete(e){return ze(this.contents)?this.contents.delete(e):!1}deleteIn(e){return He.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):ze(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return te.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return He.isEmptyPath(e)?!t&&te.isScalar(this.contents)?this.contents.value:this.contents:te.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return te.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return He.isEmptyPath(e)?this.contents!==void 0:te.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=He.collectionFromPath(this.schema,[e],t):ze(this.contents)&&this.contents.set(e,t)}setIn(e,t){He.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=He.collectionFromPath(this.schema,Array.from(e),t):ze(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let s;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new fi.Directives({version:"1.1"}),s={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new fi.Directives({version:e}),s={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,s=null;break;default:{let i=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${i}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(s)this.schema=new nd.Schema(Object.assign(s,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:s,maxAliasCount:i,onAnchor:r,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=td.toJS(this.contents,t??"",a);if(typeof r=="function")for(let{count:c,res:u}of a.anchors.values())r(u,c);return typeof o=="function"?id.applyReviver(o,{"":l},"",l):l}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return sd.stringifyDocument(this,e)}};function ze(n){if(te.isCollection(n))return!0;throw new Error("Expected a YAML collection as document contents")}sa.Document=di});var Tt=y(jt=>{"use strict";var Lt=class extends Error{constructor(e,t,s,i){super(),this.name=e,this.code=s,this.message=i,this.pos=t}},pi=class extends Lt{constructor(e,t,s){super("YAMLParseError",e,t,s)}},hi=class extends Lt{constructor(e,t,s){super("YAMLWarning",e,t,s)}},od=(n,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(a=>e.linePos(a));let{line:s,col:i}=t.linePos[0];t.message+=` at line ${s}, column ${i}`;let r=i-1,o=n.substring(e.lineStarts[s-1],e.lineStarts[s]).replace(/[\n\r]+$/,"");if(r>=60&&o.length>80){let a=Math.min(r-39,o.length-79);o="…"+o.substring(a),r-=a-1}if(o.length>80&&(o=o.substring(0,79)+"…"),s>1&&/^ *$/.test(o.substring(0,r))){let a=n.substring(e.lineStarts[s-2],e.lineStarts[s-1]);a.length>80&&(a=a.substring(0,79)+`…
|
|
60
|
+
`),o=a+o}if(/[^ ]/.test(o)){let a=1,l=t.linePos[1];l?.line===s&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-r)));let c=" ".repeat(r)+"^".repeat(a);t.message+=`:
|
|
61
|
+
|
|
62
|
+
${o}
|
|
63
|
+
${c}
|
|
64
|
+
`}};jt.YAMLError=Lt;jt.YAMLParseError=pi;jt.YAMLWarning=hi;jt.prettifyError=od});var $t=y(ia=>{"use strict";function ad(n,{flow:e,indicator:t,next:s,offset:i,onError:r,parentIndent:o,startOnNewline:a}){let l=!1,c=a,u=a,f="",d="",h=!1,g=!1,p=null,m=null,S=null,v=null,k=null,C=null,N=null;for(let b of n)switch(g&&(b.type!=="space"&&b.type!=="newline"&&b.type!=="comma"&&r(b.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=!1),p&&(c&&b.type!=="comment"&&b.type!=="newline"&&r(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),p=null),b.type){case"space":!e&&(t!=="doc-start"||s?.type!=="flow-collection")&&b.source.includes(" ")&&(p=b),u=!0;break;case"comment":{u||r(b,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let E=b.source.substring(1)||" ";f?f+=d+E:f=E,d="",c=!1;break}case"newline":c?f?f+=b.source:(!C||t!=="seq-item-ind")&&(l=!0):d+=b.source,c=!0,h=!0,(m||S)&&(v=b),u=!0;break;case"anchor":m&&r(b,"MULTIPLE_ANCHORS","A node can have at most one anchor"),b.source.endsWith(":")&&r(b.offset+b.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=b,N??(N=b.offset),c=!1,u=!1,g=!0;break;case"tag":{S&&r(b,"MULTIPLE_TAGS","A node can have at most one tag"),S=b,N??(N=b.offset),c=!1,u=!1,g=!0;break}case t:(m||S)&&r(b,"BAD_PROP_ORDER",`Anchors and tags must be after the ${b.source} indicator`),C&&r(b,"UNEXPECTED_TOKEN",`Unexpected ${b.source} in ${e??"collection"}`),C=b,c=t==="seq-item-ind"||t==="explicit-key-ind",u=!1;break;case"comma":if(e){k&&r(b,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),k=b,c=!1,u=!1;break}default:r(b,"UNEXPECTED_TOKEN",`Unexpected ${b.type} token`),c=!1,u=!1}let w=n[n.length-1],I=w?w.offset+w.source.length:i;return g&&s&&s.type!=="space"&&s.type!=="newline"&&s.type!=="comma"&&(s.type!=="scalar"||s.source!=="")&&r(s.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p&&(c&&p.indent<=o||s?.type==="block-map"||s?.type==="block-seq")&&r(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:k,found:C,spaceBefore:l,comment:f,hasNewline:h,anchor:m,tag:S,newlineAfterProp:v,end:I,start:N??I}}ia.resolveProps=ad});var Pn=y(ra=>{"use strict";function mi(n){if(!n)return null;switch(n.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(n.source.includes(`
|
|
65
|
+
`))return!0;if(n.end){for(let e of n.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of n.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(mi(e.key)||mi(e.value))return!0}return!1;default:return!0}}ra.containsNewline=mi});var gi=y(oa=>{"use strict";var ld=Pn();function cd(n,e,t){if(e?.type==="flow-collection"){let s=e.end[0];s.indent===n&&(s.source==="]"||s.source==="}")&&ld.containsNewline(e)&&t(s,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}oa.flowIndentCheck=cd});var yi=y(la=>{"use strict";var aa=L();function ud(n,e,t){let{uniqueKeys:s}=n.options;if(s===!1)return!1;let i=typeof s=="function"?s:(r,o)=>r===o||aa.isScalar(r)&&aa.isScalar(o)&&r.value===o.value;return e.some(r=>i(r.key,t))}la.mapIncludes=ud});var ha=y(pa=>{"use strict";var ca=ve(),fd=Ce(),ua=$t(),dd=Pn(),fa=gi(),pd=yi(),da="All mapping items must start at the same column";function hd({composeNode:n,composeEmptyNode:e},t,s,i,r){let o=r?.nodeClass??fd.YAMLMap,a=new o(t.schema);t.atRoot&&(t.atRoot=!1);let l=s.offset,c=null;for(let u of s.items){let{start:f,key:d,sep:h,value:g}=u,p=ua.resolveProps(f,{indicator:"explicit-key-ind",next:d??h?.[0],offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0}),m=!p.found;if(m){if(d&&(d.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in d&&d.indent!==s.indent&&i(l,"BAD_INDENT",da)),!p.anchor&&!p.tag&&!h){c=p.end,p.comment&&(a.comment?a.comment+=`
|
|
66
|
+
`+p.comment:a.comment=p.comment);continue}(p.newlineAfterProp||dd.containsNewline(d))&&i(d??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else p.found?.indent!==s.indent&&i(l,"BAD_INDENT",da);t.atKey=!0;let S=p.end,v=d?n(t,d,p,i):e(t,S,f,null,p,i);t.schema.compat&&fa.flowIndentCheck(s.indent,d,i),t.atKey=!1,pd.mapIncludes(t,a.items,v)&&i(S,"DUPLICATE_KEY","Map keys must be unique");let k=ua.resolveProps(h??[],{indicator:"map-value-ind",next:g,offset:v.range[2],onError:i,parentIndent:s.indent,startOnNewline:!d||d.type==="block-scalar"});if(l=k.end,k.found){m&&(g?.type==="block-map"&&!k.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&p.start<k.found.offset-1024&&i(v.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let C=g?n(t,g,k,i):e(t,l,h,null,k,i);t.schema.compat&&fa.flowIndentCheck(s.indent,g,i),l=C.range[2];let N=new ca.Pair(v,C);t.options.keepSourceTokens&&(N.srcToken=u),a.items.push(N)}else{m&&i(v.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),k.comment&&(v.comment?v.comment+=`
|
|
67
|
+
`+k.comment:v.comment=k.comment);let C=new ca.Pair(v);t.options.keepSourceTokens&&(C.srcToken=u),a.items.push(C)}}return c&&c<l&&i(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[s.offset,l,c??l],a}pa.resolveBlockMap=hd});var ga=y(ma=>{"use strict";var md=Ne(),gd=$t(),yd=gi();function bd({composeNode:n,composeEmptyNode:e},t,s,i,r){let o=r?.nodeClass??md.YAMLSeq,a=new o(t.schema);t.atRoot&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let l=s.offset,c=null;for(let{start:u,value:f}of s.items){let d=gd.resolveProps(u,{indicator:"seq-item-ind",next:f,offset:l,onError:i,parentIndent:s.indent,startOnNewline:!0});if(!d.found)if(d.anchor||d.tag||f)f?.type==="block-seq"?i(d.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=d.end,d.comment&&(a.comment=d.comment);continue}let h=f?n(t,f,d,i):e(t,d.end,u,null,d,i);t.schema.compat&&yd.flowIndentCheck(s.indent,f,i),l=h.range[2],a.items.push(h)}return a.range=[s.offset,l,c??l],a}ma.resolveBlockSeq=bd});var Qe=y(ya=>{"use strict";function Sd(n,e,t,s){let i="";if(n){let r=!1,o="";for(let a of n){let{source:l,type:c}=a;switch(c){case"space":r=!0;break;case"comment":{t&&!r&&s(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let u=l.substring(1)||" ";i?i+=o+u:i=u,o="";break}case"newline":i&&(o+=l),r=!0;break;default:s(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}ya.resolveEnd=Sd});var va=y(wa=>{"use strict";var wd=L(),vd=ve(),ba=Ce(),kd=Ne(),Cd=Qe(),Sa=$t(),Nd=Pn(),Id=yi(),bi="Block collections are not allowed within flow collections",Si=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Ad({composeNode:n,composeEmptyNode:e},t,s,i,r){let o=s.start.source==="{",a=o?"flow map":"flow sequence",l=r?.nodeClass??(o?ba.YAMLMap:kd.YAMLSeq),c=new l(t.schema);c.flow=!0;let u=t.atRoot;u&&(t.atRoot=!1),t.atKey&&(t.atKey=!1);let f=s.offset+s.start.source.length;for(let m=0;m<s.items.length;++m){let S=s.items[m],{start:v,key:k,sep:C,value:N}=S,w=Sa.resolveProps(v,{flow:a,indicator:"explicit-key-ind",next:k??C?.[0],offset:f,onError:i,parentIndent:s.indent,startOnNewline:!1});if(!w.found){if(!w.anchor&&!w.tag&&!C&&!N){m===0&&w.comma?i(w.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):m<s.items.length-1&&i(w.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),w.comment&&(c.comment?c.comment+=`
|
|
68
|
+
`+w.comment:c.comment=w.comment),f=w.end;continue}!o&&t.options.strict&&Nd.containsNewline(k)&&i(k,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(m===0)w.comma&&i(w.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(w.comma||i(w.start,"MISSING_CHAR",`Missing , between ${a} items`),w.comment){let I="";e:for(let b of v)switch(b.type){case"comma":case"space":break;case"comment":I=b.source.substring(1);break e;default:break e}if(I){let b=c.items[c.items.length-1];wd.isPair(b)&&(b=b.value??b.key),b.comment?b.comment+=`
|
|
69
|
+
`+I:b.comment=I,w.comment=w.comment.substring(I.length+1)}}if(!o&&!C&&!w.found){let I=N?n(t,N,w,i):e(t,w.end,C,null,w,i);c.items.push(I),f=I.range[2],Si(N)&&i(I.range,"BLOCK_IN_FLOW",bi)}else{t.atKey=!0;let I=w.end,b=k?n(t,k,w,i):e(t,I,v,null,w,i);Si(k)&&i(b.range,"BLOCK_IN_FLOW",bi),t.atKey=!1;let E=Sa.resolveProps(C??[],{flow:a,indicator:"map-value-ind",next:N,offset:b.range[2],onError:i,parentIndent:s.indent,startOnNewline:!1});if(E.found){if(!o&&!w.found&&t.options.strict){if(C)for(let D of C){if(D===E.found)break;if(D.type==="newline"){i(D,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}w.start<E.found.offset-1024&&i(E.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else N&&("source"in N&&N.source?.[0]===":"?i(N,"MISSING_CHAR",`Missing space after : in ${a}`):i(E.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let F=N?n(t,N,E,i):E.found?e(t,E.end,C,null,E,i):null;F?Si(N)&&i(F.range,"BLOCK_IN_FLOW",bi):E.comment&&(b.comment?b.comment+=`
|
|
70
|
+
`+E.comment:b.comment=E.comment);let K=new vd.Pair(b,F);if(t.options.keepSourceTokens&&(K.srcToken=S),o){let D=c;Id.mapIncludes(t,D.items,b)&&i(I,"DUPLICATE_KEY","Map keys must be unique"),D.items.push(K)}else{let D=new ba.YAMLMap(t.schema);D.flow=!0,D.items.push(K);let ar=(F??b).range;D.range=[b.range[0],ar[1],ar[2]],c.items.push(D)}f=F?F.range[2]:E.end}}let d=o?"}":"]",[h,...g]=s.end,p=f;if(h?.source===d)p=h.offset+h.source.length;else{let m=a[0].toUpperCase()+a.substring(1),S=u?`${m} must end with a ${d}`:`${m} in block collection must be sufficiently indented and end with a ${d}`;i(f,u?"MISSING_CHAR":"BAD_INDENT",S),h&&h.source.length!==1&&g.unshift(h)}if(g.length>0){let m=Cd.resolveEnd(g,p,t.options.strict,i);m.comment&&(c.comment?c.comment+=`
|
|
71
|
+
`+m.comment:c.comment=m.comment),c.range=[s.offset,p,m.offset]}else c.range=[s.offset,p,p];return c}wa.resolveFlowCollection=Ad});var Ca=y(ka=>{"use strict";var Od=L(),Ed=R(),Ld=Ce(),jd=Ne(),Td=ha(),$d=ga(),qd=va();function wi(n,e,t,s,i,r){let o=t.type==="block-map"?Td.resolveBlockMap(n,e,t,s,r):t.type==="block-seq"?$d.resolveBlockSeq(n,e,t,s,r):qd.resolveFlowCollection(n,e,t,s,r),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function Md(n,e,t,s,i){let r=s.tag,o=r?e.directives.tagName(r.source,d=>i(r,"TAG_RESOLVE_FAILED",d)):null;if(t.type==="block-seq"){let{anchor:d,newlineAfterProp:h}=s,g=d&&r?d.offset>r.offset?d:r:d??r;g&&(!h||h.offset<g.offset)&&i(g,"MISSING_CHAR","Missing newline after block sequence props")}let a=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!r||!o||o==="!"||o===Ld.YAMLMap.tagName&&a==="map"||o===jd.YAMLSeq.tagName&&a==="seq")return wi(n,e,t,i,o);let l=e.schema.tags.find(d=>d.tag===o&&d.collection===a);if(!l){let d=e.schema.knownTags[o];if(d?.collection===a)e.schema.tags.push(Object.assign({},d,{default:!1})),l=d;else return d?i(r,"BAD_COLLECTION_TYPE",`${d.tag} used for ${a} collection, but expects ${d.collection??"scalar"}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),wi(n,e,t,i,o)}let c=wi(n,e,t,i,o,l),u=l.resolve?.(c,d=>i(r,"TAG_RESOLVE_FAILED",d),e.options)??c,f=Od.isNode(u)?u:new Ed.Scalar(u);return f.range=c.range,f.tag=o,l?.format&&(f.format=l.format),f}ka.composeCollection=Md});var ki=y(Na=>{"use strict";var vi=R();function Dd(n,e,t){let s=e.offset,i=Pd(e,n.options.strict,t);if(!i)return{value:"",type:null,comment:"",range:[s,s,s]};let r=i.mode===">"?vi.Scalar.BLOCK_FOLDED:vi.Scalar.BLOCK_LITERAL,o=e.source?_d(e.source):[],a=o.length;for(let p=o.length-1;p>=0;--p){let m=o[p][1];if(m===""||m==="\r")a=p;else break}if(a===0){let p=i.chomp==="+"&&o.length>0?`
|
|
72
|
+
`.repeat(Math.max(1,o.length-1)):"",m=s+i.length;return e.source&&(m+=e.source.length),{value:p,type:r,comment:i.comment,range:[s,m,m]}}let l=e.indent+i.indent,c=e.offset+i.length,u=0;for(let p=0;p<a;++p){let[m,S]=o[p];if(S===""||S==="\r")i.indent===0&&m.length>l&&(l=m.length);else{m.length<l&&t(c+m.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),i.indent===0&&(l=m.length),u=p,l===0&&!n.atRoot&&t(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=m.length+S.length+1}for(let p=o.length-1;p>=a;--p)o[p][0].length>l&&(a=p+1);let f="",d="",h=!1;for(let p=0;p<u;++p)f+=o[p][0].slice(l)+`
|
|
73
|
+
`;for(let p=u;p<a;++p){let[m,S]=o[p];c+=m.length+S.length+1;let v=S[S.length-1]==="\r";if(v&&(S=S.slice(0,-1)),S&&m.length<l){let C=`Block scalar lines must not be less indented than their ${i.indent?"explicit indentation indicator":"first line"}`;t(c-S.length-(v?2:1),"BAD_INDENT",C),m=""}r===vi.Scalar.BLOCK_LITERAL?(f+=d+m.slice(l)+S,d=`
|
|
74
|
+
`):m.length>l||S[0]===" "?(d===" "?d=`
|
|
75
|
+
`:!h&&d===`
|
|
76
|
+
`&&(d=`
|
|
77
|
+
|
|
78
|
+
`),f+=d+m.slice(l)+S,d=`
|
|
79
|
+
`,h=!0):S===""?d===`
|
|
80
|
+
`?f+=`
|
|
81
|
+
`:d=`
|
|
82
|
+
`:(f+=d+S,d=" ",h=!1)}switch(i.chomp){case"-":break;case"+":for(let p=a;p<o.length;++p)f+=`
|
|
83
|
+
`+o[p][0].slice(l);f[f.length-1]!==`
|
|
84
|
+
`&&(f+=`
|
|
85
|
+
`);break;default:f+=`
|
|
86
|
+
`}let g=s+i.length+e.source.length;return{value:f,type:r,comment:i.comment,range:[s,g,g]}}function Pd({offset:n,props:e},t,s){if(e[0].type!=="block-scalar-header")return s(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let d=1;d<i.length;++d){let h=i[d];if(!a&&(h==="-"||h==="+"))a=h;else{let g=Number(h);!o&&g?o=g:l===-1&&(l=n+d)}}l!==-1&&s(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,u="",f=i.length;for(let d=1;d<e.length;++d){let h=e[d];switch(h.type){case"space":c=!0;case"newline":f+=h.source.length;break;case"comment":t&&!c&&s(h,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=h.source.length,u=h.source.substring(1);break;case"error":s(h,"UNEXPECTED_TOKEN",h.message),f+=h.source.length;break;default:{let g=`Unexpected token in block scalar header: ${h.type}`;s(h,"UNEXPECTED_TOKEN",g);let p=h.source;p&&typeof p=="string"&&(f+=p.length)}}}return{mode:r,indent:o,chomp:a,comment:u,length:f}}function _d(n){let e=n.split(/\n( *)/),t=e[0],s=t.match(/^( *)/),r=[s?.[1]?[s[1],t.slice(s[1].length)]:["",t]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}Na.resolveBlockScalar=Dd});var Ni=y(Aa=>{"use strict";var Ci=R(),xd=Qe();function Rd(n,e,t){let{offset:s,type:i,source:r,end:o}=n,a,l,c=(d,h,g)=>t(s+d,h,g);switch(i){case"scalar":a=Ci.Scalar.PLAIN,l=Fd(r,c);break;case"single-quoted-scalar":a=Ci.Scalar.QUOTE_SINGLE,l=Bd(r,c);break;case"double-quoted-scalar":a=Ci.Scalar.QUOTE_DOUBLE,l=Ud(r,c);break;default:return t(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[s,s+r.length,s+r.length]}}let u=s+r.length,f=xd.resolveEnd(o,u,e,t);return{value:l,type:a,comment:f.comment,range:[s,u,f.offset]}}function Fd(n,e){let t="";switch(n[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${n[0]}`;break}case"@":case"`":{t=`reserved character ${n[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),Ia(n)}function Bd(n,e){return(n[n.length-1]!=="'"||n.length===1)&&e(n.length,"MISSING_CHAR","Missing closing 'quote"),Ia(n.slice(1,-1)).replace(/''/g,"'")}function Ia(n){let e,t;try{e=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
87
|
+
`,"sy"),t=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
88
|
+
`,"sy")}catch{e=/(.*?)[ \t]*\r?\n/sy,t=/[ \t]*(.*?)[ \t]*\r?\n/sy}let s=e.exec(n);if(!s)return n;let i=s[1],r=" ",o=e.lastIndex;for(t.lastIndex=o;s=t.exec(n);)s[1]===""?r===`
|
|
89
|
+
`?i+=r:r=`
|
|
90
|
+
`:(i+=r+s[1],r=" "),o=t.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,s=a.exec(n),i+r+(s?.[1]??"")}function Ud(n,e){let t="";for(let s=1;s<n.length-1;++s){let i=n[s];if(!(i==="\r"&&n[s+1]===`
|
|
91
|
+
`))if(i===`
|
|
92
|
+
`){let{fold:r,offset:o}=Kd(n,s);t+=r,s=o}else if(i==="\\"){let r=n[++s],o=Gd[r];if(o)t+=o;else if(r===`
|
|
93
|
+
`)for(r=n[s+1];r===" "||r===" ";)r=n[++s+1];else if(r==="\r"&&n[s+1]===`
|
|
94
|
+
`)for(r=n[++s+1];r===" "||r===" ";)r=n[++s+1];else if(r==="x"||r==="u"||r==="U"){let a=r==="x"?2:r==="u"?4:8;t+=Yd(n,s+1,a,e),s+=a}else{let a=n.substr(s-1,2);e(s-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),t+=a}}else if(i===" "||i===" "){let r=s,o=n[s+1];for(;o===" "||o===" ";)o=n[++s+1];o!==`
|
|
95
|
+
`&&!(o==="\r"&&n[s+2]===`
|
|
96
|
+
`)&&(t+=s>r?n.slice(r,s+1):i)}else t+=i}return(n[n.length-1]!=='"'||n.length===1)&&e(n.length,"MISSING_CHAR",'Missing closing "quote'),t}function Kd(n,e){let t="",s=n[e+1];for(;(s===" "||s===" "||s===`
|
|
97
|
+
`||s==="\r")&&!(s==="\r"&&n[e+2]!==`
|
|
98
|
+
`);)s===`
|
|
99
|
+
`&&(t+=`
|
|
100
|
+
`),e+=1,s=n[e+1];return t||(t=" "),{fold:t,offset:e}}var Gd={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
101
|
+
`,r:"\r",t:" ",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Yd(n,e,t,s){let i=n.substr(e,t),o=i.length===t&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{let a=n.substr(e-2,t+2);return s(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}Aa.resolveFlowScalar=Rd});var La=y(Ea=>{"use strict";var Pe=L(),Oa=R(),Jd=ki(),Vd=Ni();function Wd(n,e,t,s){let{value:i,type:r,comment:o,range:a}=e.type==="block-scalar"?Jd.resolveBlockScalar(n,e,s):Vd.resolveFlowScalar(e,n.options.strict,s),l=t?n.directives.tagName(t.source,f=>s(t,"TAG_RESOLVE_FAILED",f)):null,c;n.options.stringKeys&&n.atKey?c=n.schema[Pe.SCALAR]:l?c=Hd(n.schema,i,l,t,s):e.type==="scalar"?c=zd(n,i,e,s):c=n.schema[Pe.SCALAR];let u;try{let f=c.resolve(i,d=>s(t??e,"TAG_RESOLVE_FAILED",d),n.options);u=Pe.isScalar(f)?f:new Oa.Scalar(f)}catch(f){let d=f instanceof Error?f.message:String(f);s(t??e,"TAG_RESOLVE_FAILED",d),u=new Oa.Scalar(i)}return u.range=a,u.source=i,r&&(u.type=r),l&&(u.tag=l),c.format&&(u.format=c.format),o&&(u.comment=o),u}function Hd(n,e,t,s,i){if(t==="!")return n[Pe.SCALAR];let r=[];for(let a of n.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)r.push(a);else return a;for(let a of r)if(a.test?.test(e))return a;let o=n.knownTags[t];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(s,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),n[Pe.SCALAR])}function zd({atKey:n,directives:e,schema:t},s,i,r){let o=t.tags.find(a=>(a.default===!0||n&&a.default==="key")&&a.test?.test(s))||t[Pe.SCALAR];if(t.compat){let a=t.compat.find(l=>l.default&&l.test?.test(s))??t[Pe.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),u=`Value may be parsed as either ${l} or ${c}`;r(i,"TAG_RESOLVE_FAILED",u,!0)}}return o}Ea.composeScalar=Wd});var Ta=y(ja=>{"use strict";function Qd(n,e,t){if(e){t??(t=e.length);for(let s=t-1;s>=0;--s){let i=e[s];switch(i.type){case"space":case"comment":case"newline":n-=i.source.length;continue}for(i=e[++s];i?.type==="space";)n+=i.source.length,i=e[++s];break}}return n}ja.emptyScalarPosition=Qd});var Ma=y(Ai=>{"use strict";var Xd=dt(),Zd=L(),ep=Ca(),$a=La(),tp=Qe(),np=Ta(),sp={composeNode:qa,composeEmptyNode:Ii};function qa(n,e,t,s){let i=n.atKey,{spaceBefore:r,comment:o,anchor:a,tag:l}=t,c,u=!0;switch(e.type){case"alias":c=ip(n,e,s),(a||l)&&s(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":c=$a.composeScalar(n,e,l,s),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=ep.composeCollection(sp,n,e,t,s),a&&(c.anchor=a.source.substring(1))}catch(f){let d=f instanceof Error?f.message:String(f);s(e,"RESOURCE_EXHAUSTION",d)}break;default:{let f=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;s(e,"UNEXPECTED_TOKEN",f),u=!1}}return c??(c=Ii(n,e.offset,void 0,null,t,s)),a&&c.anchor===""&&s(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&n.options.stringKeys&&(!Zd.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&s(l??e,"NON_STRING_KEY","With stringKeys, all keys must be strings"),r&&(c.spaceBefore=!0),o&&(e.type==="scalar"&&e.source===""?c.comment=o:c.commentBefore=o),n.options.keepSourceTokens&&u&&(c.srcToken=e),c}function Ii(n,e,t,s,{spaceBefore:i,comment:r,anchor:o,tag:a,end:l},c){let u={type:"scalar",offset:np.emptyScalarPosition(e,t,s),indent:-1,source:""},f=$a.composeScalar(n,u,a,c);return o&&(f.anchor=o.source.substring(1),f.anchor===""&&c(o,"BAD_ALIAS","Anchor cannot be an empty string")),i&&(f.spaceBefore=!0),r&&(f.comment=r,f.range[2]=l),f}function ip({options:n},{offset:e,source:t,end:s},i){let r=new Xd.Alias(t.substring(1));r.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&i(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,a=tp.resolveEnd(s,o,n.strict,i);return r.range=[e,o,a.offset],a.comment&&(r.comment=a.comment),r}Ai.composeEmptyNode=Ii;Ai.composeNode=qa});var _a=y(Pa=>{"use strict";var rp=Et(),Da=Ma(),op=Qe(),ap=$t();function lp(n,e,{offset:t,start:s,value:i,end:r},o){let a=Object.assign({_directives:e},n),l=new rp.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},u=ap.resolveProps(s,{indicator:"doc-start",next:i??r?.[0],offset:t,onError:o,parentIndent:0,startOnNewline:!0});u.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!u.hasNewline&&o(u.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?Da.composeNode(c,i,u,o):Da.composeEmptyNode(c,u.end,s,null,u,o);let f=l.contents.range[2],d=op.resolveEnd(r,f,!1,o);return d.comment&&(l.comment=d.comment),l.range=[t,f,d.offset],l}Pa.composeDoc=lp});var Ei=y(Fa=>{"use strict";var cp=Ut("process"),up=ps(),fp=Et(),qt=Tt(),xa=L(),dp=_a(),pp=Qe();function Mt(n){if(typeof n=="number")return[n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:e,source:t}=n;return[e,e+(typeof t=="string"?t.length:1)]}function Ra(n){let e="",t=!1,s=!1;for(let i=0;i<n.length;++i){let r=n[i];switch(r[0]){case"#":e+=(e===""?"":s?`
|
|
102
|
+
|
|
103
|
+
`:`
|
|
104
|
+
`)+(r.substring(1)||" "),t=!0,s=!1;break;case"%":n[i+1]?.[0]!=="#"&&(i+=1),t=!1;break;default:t||(s=!0),t=!1}}return{comment:e,afterEmptyLine:s}}var Oi=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(t,s,i,r)=>{let o=Mt(t);r?this.warnings.push(new qt.YAMLWarning(o,s,i)):this.errors.push(new qt.YAMLParseError(o,s,i))},this.directives=new up.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:s,afterEmptyLine:i}=Ra(this.prelude);if(s){let r=e.contents;if(t)e.comment=e.comment?`${e.comment}
|
|
105
|
+
${s}`:s;else if(i||e.directives.docStart||!r)e.commentBefore=s;else if(xa.isCollection(r)&&!r.flow&&r.items.length>0){let o=r.items[0];xa.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${s}
|
|
106
|
+
${a}`:s}else{let o=r.commentBefore;r.commentBefore=o?`${s}
|
|
107
|
+
${o}`:s}}if(t){for(let r=0;r<this.errors.length;++r)e.errors.push(this.errors[r]);for(let r=0;r<this.warnings.length;++r)e.warnings.push(this.warnings[r])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:Ra(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,s=-1){for(let i of e)yield*this.next(i);yield*this.end(t,s)}*next(e){switch(cp.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(t,s,i)=>{let r=Mt(e);r[0]+=t,this.onError(r,"BAD_DIRECTIVE",s,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=dp.composeDoc(this.options,this.directives,e,this.onError);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;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,s=new qt.YAMLParseError(Mt(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(s):this.doc.errors.push(s);break}case"doc-end":{if(!this.doc){let s="Unexpected doc-end without preceding document";this.errors.push(new qt.YAMLParseError(Mt(e),"UNEXPECTED_TOKEN",s));break}this.doc.directives.docEnd=!0;let t=pp.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let s=this.doc.comment;this.doc.comment=s?`${s}
|
|
108
|
+
${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new qt.YAMLParseError(Mt(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let s=Object.assign({_directives:this.directives},this.options),i=new fp.Document(void 0,s);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,t,t],this.decorate(i,!1),yield i}}};Fa.Composer=Oi});var Ka=y(_n=>{"use strict";var hp=ki(),mp=Ni(),gp=Tt(),Ba=yt();function yp(n,e=!0,t){if(n){let s=(i,r,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(t)t(a,r,o);else throw new gp.YAMLParseError([a,a+1],r,o)};switch(n.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return mp.resolveFlowScalar(n,e,s);case"block-scalar":return hp.resolveBlockScalar({options:{strict:e}},n,s)}}return null}function bp(n,e){let{implicitKey:t=!1,indent:s,inFlow:i=!1,offset:r=-1,type:o="PLAIN"}=e,a=Ba.stringifyString({type:o,value:n},{implicitKey:t,indent:s>0?" ".repeat(s):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:s,source:`
|
|
109
|
+
`}];switch(a[0]){case"|":case">":{let c=a.indexOf(`
|
|
110
|
+
`),u=a.substring(0,c),f=a.substring(c+1)+`
|
|
111
|
+
`,d=[{type:"block-scalar-header",offset:r,indent:s,source:u}];return Ua(d,l)||d.push({type:"newline",offset:-1,indent:s,source:`
|
|
112
|
+
`}),{type:"block-scalar",offset:r,indent:s,props:d,source:f}}case'"':return{type:"double-quoted-scalar",offset:r,indent:s,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:r,indent:s,source:a,end:l};default:return{type:"scalar",offset:r,indent:s,source:a,end:l}}}function Sp(n,e,t={}){let{afterKey:s=!1,implicitKey:i=!1,inFlow:r=!1,type:o}=t,a="indent"in n?n.indent:null;if(s&&typeof a=="number"&&(a+=2),!o)switch(n.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=n.props[0];if(c.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=c.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let l=Ba.stringifyString({type:o,value:e},{implicitKey:i||a===null,indent:a!==null&&a>0?" ".repeat(a):"",inFlow:r,options:{blockQuote:!0,lineWidth:-1}});switch(l[0]){case"|":case">":wp(n,l);break;case'"':Li(n,l,"double-quoted-scalar");break;case"'":Li(n,l,"single-quoted-scalar");break;default:Li(n,l,"scalar")}}function wp(n,e){let t=e.indexOf(`
|
|
113
|
+
`),s=e.substring(0,t),i=e.substring(t+1)+`
|
|
114
|
+
`;if(n.type==="block-scalar"){let r=n.props[0];if(r.type!=="block-scalar-header")throw new Error("Invalid block scalar header");r.source=s,n.source=i}else{let{offset:r}=n,o="indent"in n?n.indent:-1,a=[{type:"block-scalar-header",offset:r,indent:o,source:s}];Ua(a,"end"in n?n.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
115
|
+
`});for(let l of Object.keys(n))l!=="type"&&l!=="offset"&&delete n[l];Object.assign(n,{type:"block-scalar",indent:o,props:a,source:i})}}function Ua(n,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":n.push(t);break;case"newline":return n.push(t),!0}return!1}function Li(n,e,t){switch(n.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":n.type=t,n.source=e;break;case"block-scalar":{let s=n.props.slice(1),i=e.length;n.props[0].type==="block-scalar-header"&&(i-=n.props[0].source.length);for(let r of s)r.offset+=i;delete n.props,Object.assign(n,{type:t,source:e,end:s});break}case"block-map":case"block-seq":{let i={type:"newline",offset:n.offset+e.length,indent:n.indent,source:`
|
|
116
|
+
`};delete n.items,Object.assign(n,{type:t,source:e,end:[i]});break}default:{let s="indent"in n?n.indent:-1,i="end"in n&&Array.isArray(n.end)?n.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(n))r!=="type"&&r!=="offset"&&delete n[r];Object.assign(n,{type:t,indent:s,source:e,end:i})}}}_n.createScalarToken=bp;_n.resolveAsScalar=yp;_n.setScalarValue=Sp});var Ya=y(Ga=>{"use strict";var vp=n=>"type"in n?Rn(n):xn(n);function Rn(n){switch(n.type){case"block-scalar":{let e="";for(let t of n.props)e+=Rn(t);return e+n.source}case"block-map":case"block-seq":{let e="";for(let t of n.items)e+=xn(t);return e}case"flow-collection":{let e=n.start.source;for(let t of n.items)e+=xn(t);for(let t of n.end)e+=t.source;return e}case"document":{let e=xn(n);if(n.end)for(let t of n.end)e+=t.source;return e}default:{let e=n.source;if("end"in n&&n.end)for(let t of n.end)e+=t.source;return e}}}function xn({start:n,key:e,sep:t,value:s}){let i="";for(let r of n)i+=r.source;if(e&&(i+=Rn(e)),t)for(let r of t)i+=r.source;return s&&(i+=Rn(s)),i}Ga.stringify=vp});var Ha=y(Wa=>{"use strict";var ji=Symbol("break visit"),kp=Symbol("skip children"),Ja=Symbol("remove item");function _e(n,e){"type"in n&&n.type==="document"&&(n={start:n.start,value:n.value}),Va(Object.freeze([]),n,e)}_e.BREAK=ji;_e.SKIP=kp;_e.REMOVE=Ja;_e.itemAtPath=(n,e)=>{let t=n;for(let[s,i]of e){let r=t?.[s];if(r&&"items"in r)t=r.items[i];else return}return t};_e.parentCollection=(n,e)=>{let t=_e.itemAtPath(n,e.slice(0,-1)),s=e[e.length-1][0],i=t?.[s];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function Va(n,e,t){let s=t(e,n);if(typeof s=="symbol")return s;for(let i of["key","value"]){let r=e[i];if(r&&"items"in r){for(let o=0;o<r.items.length;++o){let a=Va(Object.freeze(n.concat([[i,o]])),r.items[o],t);if(typeof a=="number")o=a-1;else{if(a===ji)return ji;a===Ja&&(r.items.splice(o,1),o-=1)}}typeof s=="function"&&i==="key"&&(s=s(e,n))}}return typeof s=="function"?s(e,n):s}Wa.visit=_e});var Fn=y(z=>{"use strict";var Ti=Ka(),Cp=Ya(),Np=Ha(),$i="\uFEFF",qi="",Mi="",Di="",Ip=n=>!!n&&"items"in n,Ap=n=>!!n&&(n.type==="scalar"||n.type==="single-quoted-scalar"||n.type==="double-quoted-scalar"||n.type==="block-scalar");function Op(n){switch(n){case $i:return"<BOM>";case qi:return"<DOC>";case Mi:return"<FLOW_END>";case Di:return"<SCALAR>";default:return JSON.stringify(n)}}function Ep(n){switch(n){case $i:return"byte-order-mark";case qi:return"doc-mode";case Mi:return"flow-error-end";case Di:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
117
|
+
`:case`\r
|
|
118
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(n[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}z.createScalarToken=Ti.createScalarToken;z.resolveAsScalar=Ti.resolveAsScalar;z.setScalarValue=Ti.setScalarValue;z.stringify=Cp.stringify;z.visit=Np.visit;z.BOM=$i;z.DOCUMENT=qi;z.FLOW_END=Mi;z.SCALAR=Di;z.isCollection=Ip;z.isScalar=Ap;z.prettyToken=Op;z.tokenType=Ep});var xi=y(Qa=>{"use strict";var Dt=Fn();function re(n){switch(n){case void 0:case" ":case`
|
|
119
|
+
`:case"\r":case" ":return!0;default:return!1}}var za=new Set("0123456789ABCDEFabcdef"),Lp=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Bn=new Set(",[]{}"),jp=new Set(` ,[]{}
|
|
120
|
+
\r `),Pi=n=>!n||jp.has(n),_i=class{constructor(){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}*lex(e,t=!1){if(e){if(typeof e!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let s=this.next??"stream";for(;s&&(t||this.hasChars(1));)s=yield*this.parseNext(s)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`
|
|
121
|
+
`?!0:t==="\r"?this.buffer[e+1]===`
|
|
122
|
+
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let s=0;for(;t===" ";)t=this.buffer[++s+e];if(t==="\r"){let i=this.buffer[s+e+1];if(i===`
|
|
123
|
+
`||!i&&!this.atEnd)return e+s+1}return t===`
|
|
124
|
+
`||s>=this.indentNext||!t&&!this.atEnd?e+s:-1}if(t==="-"||t==="."){let s=this.buffer.substr(e,3);if((s==="---"||s==="...")&&re(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
|
|
125
|
+
`,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]==="\r"&&(e-=1),this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext("stream");if(e[0]===Dt.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let t=e.length,s=e.indexOf("#");for(;s!==-1;){let r=e[s-1];if(r===" "||r===" "){t=s-1;break}else s=e.indexOf("#",s+1)}for(;;){let r=e[t-1];if(r===" "||r===" ")t-=1;else break}let i=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),"stream"}return yield Dt.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext("line-start");if(e==="-"||e==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let t=this.peek(3);if((t==="---"||t==="...")&&re(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,t==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!re(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&re(t)){let s=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=s,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(Pi),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,s=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=s=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((s!==-1&&s<this.indentNext&&i[0]!=="#"||s===0&&(i.startsWith("---")||i.startsWith("..."))&&re(i[3]))&&!(s===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield Dt.FLOW_END,yield*this.parseLineStart();let r=0;for(;i[r]===",";)r+=yield*this.pushCount(1),r+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(r+=yield*this.pushIndicators(),i[r]){case void 0:return"flow";case"#":return yield*this.pushCount(i.length-r),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(Pi),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||re(o)||o===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;t!==-1&&this.buffer[t+1]==="'";)t=this.buffer.indexOf("'",t+2);else for(;t!==-1;){let r=0;for(;this.buffer[t-1-r]==="\\";)r+=1;if(r%2===0)break;t=this.buffer.indexOf('"',t+1)}let s=this.buffer.substring(0,t),i=s.indexOf(`
|
|
126
|
+
`,this.pos);if(i!==-1){for(;i!==-1;){let r=this.continueScalar(i+1);if(r===-1)break;i=s.indexOf(`
|
|
127
|
+
`,r)}i!==-1&&(t=i-(s[i-1]==="\r"?2:1))}if(t===-1){if(!this.atEnd)return this.setNext("quoted-scalar");t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t==="+")this.blockScalarKeep=!0;else if(t>"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil(t=>re(t)||t==="#")}*parseBlockScalar(){let e=this.pos-1,t=0,s;e:for(let r=this.pos;s=this.buffer[r];++r)switch(s){case" ":t+=1;break;case`
|
|
128
|
+
`:e=r,t=0;break;case"\r":{let o=this.buffer[r+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
129
|
+
`)break}default:break e}if(!s&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let r=this.continueScalar(e+1);if(r===-1)break;e=this.buffer.indexOf(`
|
|
130
|
+
`,r)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let i=e+1;for(s=this.buffer[i];s===" ";)s=this.buffer[++i];if(s===" "){for(;s===" "||s===" "||s==="\r"||s===`
|
|
131
|
+
`;)s=this.buffer[++i];e=i-1}else if(!this.blockScalarKeep)do{let r=e-1,o=this.buffer[r];o==="\r"&&(o=this.buffer[--r]);let a=r;for(;o===" ";)o=this.buffer[--r];if(o===`
|
|
132
|
+
`&&r>=this.pos&&r+1+t>a)e=r;else break}while(!0);return yield Dt.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,s=this.pos-1,i;for(;i=this.buffer[++s];)if(i===":"){let r=this.buffer[s+1];if(re(r)||e&&Bn.has(r))break;t=s}else if(re(i)){let r=this.buffer[s+1];if(i==="\r"&&(r===`
|
|
133
|
+
`?(s+=1,i=`
|
|
134
|
+
`,r=this.buffer[s+1]):t=s),r==="#"||e&&Bn.has(r))break;if(i===`
|
|
135
|
+
`){let o=this.continueScalar(s+1);if(o===-1)break;s=Math.max(s,o-2)}}else{if(e&&Bn.has(i))break;t=s}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Dt.SCALAR,yield*this.pushToIndex(t+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let s=this.buffer.slice(this.pos,e);return s?(yield s,this.pos+=s.length,s.length):(t&&(yield""),0)}*pushIndicators(){let e=0;e:for(;;){switch(this.charAt(0)){case"!":e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue e;case"&":e+=yield*this.pushUntil(Pi),e+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{let t=this.flowLevel>0,s=this.charAt(1);if(re(s)||t&&Bn.has(s)){t?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue e}}}break e}return e}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!re(t)&&t!==">";)t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,!1)}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Lp.has(t))t=this.buffer[++e];else if(t==="%"&&za.has(this.buffer[e+1])&&za.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
136
|
+
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
137
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,s;do s=this.buffer[++t];while(s===" "||e&&s===" ");let i=t-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=t),i}*pushUntil(e){let t=this.pos,s=this.buffer[t];for(;!e(s);)s=this.buffer[++t];return yield*this.pushToIndex(t,!1)}};Qa.Lexer=_i});var Fi=y(Xa=>{"use strict";var Ri=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,s=this.lineStarts.length;for(;t<s;){let r=t+s>>1;this.lineStarts[r]<e?t=r+1:s=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let i=this.lineStarts[t-1];return{line:t,col:e-i+1}}}};Xa.LineCounter=Ri});var Ui=y(sl=>{"use strict";var Tp=Ut("process"),Za=Fn(),$p=xi();function Ie(n,e){for(let t=0;t<n.length;++t)if(n[t].type===e)return!0;return!1}function el(n){for(let e=0;e<n.length;++e)switch(n[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function nl(n){switch(n?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function Un(n){switch(n.type){case"document":return n.start;case"block-map":{let e=n.items[n.items.length-1];return e.sep??e.start}case"block-seq":return n.items[n.items.length-1].start;default:return[]}}function Xe(n){if(n.length===0)return[];let e=n.length;e:for(;--e>=0;)switch(n[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;n[++e]?.type==="space";);return n.splice(e,n.length)}function Kn(n,e){if(e.length<1e5)Array.prototype.push.apply(n,e);else for(let t=0;t<e.length;++t)n.push(e[t])}function tl(n){if(n.start.type==="flow-seq-start")for(let e of n.items)e.sep&&!e.value&&!Ie(e.start,"explicit-key-ind")&&!Ie(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,nl(e.value)?e.value.end?Kn(e.value.end,e.sep):e.value.end=e.sep:Kn(e.start,e.sep),delete e.sep)}var Bi=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new $p.Lexer,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let s of this.lexer.lex(e,t))yield*this.next(s);t||(yield*this.end())}*next(e){if(this.source=e,Tp.env.LOG_TOKENS&&console.log("|",Za.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Za.tokenType(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*this.step(),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let s=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:s,source:e}),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&e?.type!=="doc-end"){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let s=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in s?s.indent:0:t.type==="flow-collection"&&s.type==="document"&&(t.indent=0),t.type==="flow-collection"&&tl(t),s.type){case"document":s.value=t;break;case"block-scalar":s.props.push(t);break;case"block-map":{let i=s.items[s.items.length-1];if(i.value){s.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=t;else{Object.assign(i,{key:t,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=s.items[s.items.length-1];i.value?s.items.push({start:[],value:t}):i.value=t;break}case"flow-collection":{let i=s.items[s.items.length-1];!i||i.value?s.items.push({start:[],key:t,sep:[]}):i.sep?i.value=t:Object.assign(i,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((s.type==="document"||s.type==="block-map"||s.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let i=t.items[t.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&el(i.start)===-1&&(t.indent===0||i.start.every(r=>r.type!=="comment"||r.indent<t.indent))&&(s.type==="document"?s.end=i.start:s.items.push({start:i.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let e={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case"doc-start":{el(e.start)!==-1?(yield*this.pop(),yield*this.step()):e.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type==="map-value-ind"){let t=Un(this.peek(2)),s=Xe(t),i;e.end?(i=e.end,i.push(this.sourceToken),delete e.end):i=[this.sourceToken];let r={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:s,key:e,sep:i}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case"space":case"comment":case"newline":e.props.push(this.sourceToken);return;case"scalar":if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let t=this.source.indexOf(`
|
|
138
|
+
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
139
|
+
`,t)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Kn(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let s=!this.onKeyLine&&this.indent===e.indent,i=s&&(t.sep||t.explicitKey)&&this.type!=="seq-item-ind",r=[];if(i&&t.sep&&!t.value){let o=[];for(let a=0;a<t.sep.length;++a){let l=t.sep[a];switch(l.type){case"newline":o.push(a);break;case"space":break;case"comment":l.indent>e.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(r=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||t.value?(r.push(this.sourceToken),e.items.push({start:r}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):i||t.value?(r.push(this.sourceToken),e.items.push({start:r,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(t.explicitKey)if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ie(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]});else if(nl(t.key)&&!Ie(t.sep,"newline")){let o=Xe(t.start),a=t.key,l=t.sep;l.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:l}]})}else r.length>0?t.sep=t.sep.concat(r,this.sourceToken):t.sep.push(this.sourceToken);else if(Ie(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Xe(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||i?e.items.push({start:r,key:null,sep:[this.sourceToken]}):Ie(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);i||t.value?(e.items.push({start:r,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!t.explicitKey&&t.sep&&!Ie(t.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else s&&e.items.push({start:r});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let s="end"in t.value?t.value.end:void 0;(Array.isArray(s)?s[s.length-1]:void 0)?.type==="comment"?s?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Kn(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||Ie(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let s=this.startBlockValue(e);if(s){this.stack.push(s);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let s;do yield*this.pop(),s=this.peek(1);while(s?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:i,sep:[]}):t.sep?this.stack.push(i):Object.assign(t,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let s=this.startBlockValue(e);s?this.stack.push(s):(yield*this.pop(),yield*this.step())}else{let s=this.peek(2);if(s.type==="block-map"&&(this.type==="map-value-ind"&&s.indent===e.indent||this.type==="newline"&&!s.items[s.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&s.type!=="flow-collection"){let i=Un(s),r=Xe(i);tl(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:r,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`
|
|
140
|
+
`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`
|
|
141
|
+
`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Un(e),s=Xe(t);return s.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Un(e),s=Xe(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:s,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(s=>s.type==="newline"||s.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};sl.Parser=Bi});var ll=y(_t=>{"use strict";var il=Ei(),qp=Et(),Pt=Tt(),Mp=As(),Dp=L(),Pp=Fi(),rl=Ui();function ol(n){let e=n.prettyErrors!==!1;return{lineCounter:n.lineCounter||e&&new Pp.LineCounter||null,prettyErrors:e}}function _p(n,e={}){let{lineCounter:t,prettyErrors:s}=ol(e),i=new rl.Parser(t?.addNewLine),r=new il.Composer(e),o=Array.from(r.compose(i.parse(n)));if(s&&t)for(let a of o)a.errors.forEach(Pt.prettifyError(n,t)),a.warnings.forEach(Pt.prettifyError(n,t));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function al(n,e={}){let{lineCounter:t,prettyErrors:s}=ol(e),i=new rl.Parser(t?.addNewLine),r=new il.Composer(e),o=null;for(let a of r.compose(i.parse(n),!0,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Pt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return s&&t&&(o.errors.forEach(Pt.prettifyError(n,t)),o.warnings.forEach(Pt.prettifyError(n,t))),o}function xp(n,e,t){let s;typeof e=="function"?s=e:t===void 0&&e&&typeof e=="object"&&(t=e);let i=al(n,t);if(!i)return null;if(i.warnings.forEach(r=>Mp.warn(i.options.logLevel,r)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:s},t))}function Rp(n,e,t){let s=null;if(typeof e=="function"||Array.isArray(e)?s=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let i=Math.round(t);t=i<1?void 0:i>8?{indent:8}:{indent:i}}if(n===void 0){let{keepUndefined:i}=t??e??{};if(!i)return}return Dp.isDocument(n)&&!s?n.toString(t):new qp.Document(n,s,t).toString(t)}_t.parse=xp;_t.parseAllDocuments=_p;_t.parseDocument=al;_t.stringify=Rp});var ul=y(T=>{"use strict";var Fp=Ei(),Bp=Et(),Up=li(),Ki=Tt(),Kp=dt(),Ae=L(),Gp=ve(),Yp=R(),Jp=Ce(),Vp=Ne(),Wp=Fn(),Hp=xi(),zp=Fi(),Qp=Ui(),Gn=ll(),cl=lt();T.Composer=Fp.Composer;T.Document=Bp.Document;T.Schema=Up.Schema;T.YAMLError=Ki.YAMLError;T.YAMLParseError=Ki.YAMLParseError;T.YAMLWarning=Ki.YAMLWarning;T.Alias=Kp.Alias;T.isAlias=Ae.isAlias;T.isCollection=Ae.isCollection;T.isDocument=Ae.isDocument;T.isMap=Ae.isMap;T.isNode=Ae.isNode;T.isPair=Ae.isPair;T.isScalar=Ae.isScalar;T.isSeq=Ae.isSeq;T.Pair=Gp.Pair;T.Scalar=Yp.Scalar;T.YAMLMap=Jp.YAMLMap;T.YAMLSeq=Vp.YAMLSeq;T.CST=Wp;T.Lexer=Hp.Lexer;T.LineCounter=zp.LineCounter;T.Parser=Qp.Parser;T.parse=Gn.parse;T.parseAllDocuments=Gn.parseAllDocuments;T.parseDocument=Gn.parseDocument;T.stringify=Gn.stringify;T.visit=cl.visit;T.visitAsync=cl.visitAsync});import j from"node:fs";import O from"node:path";import qh from"node:os";import Mh from"node:readline";import M from"node:path";import Te from"node:fs";import P from"node:fs";import V from"node:path";import bc from"node:crypto";import Sc from"node:os";var G;function cr({baseDir:n,cwd:e=process.cwd(),mode:t,packageVersion:s,runtime:i,isGlobal:r,language:o}){let a=V.join(n,"frontend-craft.manifest.json");G={baseDir:V.resolve(n),cwd:V.resolve(e),homeDir:V.resolve(Sc.homedir()),mode:t,packageVersion:s,runtime:i,scope:r?"global":"local",language:o,manifestPath:a,previousFiles:wc(a),writtenFiles:new Map,skippedFiles:new Set,settingsHooks:[]}}function ur(){let n=G;if(G=void 0,!n)return;for(let[s,i]of n.previousFiles)n.writtenFiles.has(s)||n.writtenFiles.set(s,i);let e=[...n.writtenFiles.entries()].map(([s,i])=>as(s,i)).sort((s,i)=>s.path.localeCompare(i.path)),t={packageVersion:n.packageVersion,runtime:n.runtime,scope:n.scope,language:n.language,installedAt:new Date().toISOString(),files:e,...n.settingsHooks.length?{settingsHooks:n.settingsHooks}:{}};A(V.dirname(n.manifestPath)),P.writeFileSync(n.manifestPath,`${JSON.stringify(t,null,2)}
|
|
142
|
+
`,"utf8")}function fr(){G=void 0}function je(n){return V.join(n,"frontend-craft.manifest.json")}function rt(n){if(P.existsSync(n))try{let e=JSON.parse(P.readFileSync(n,"utf8"));return!e||!Array.isArray(e.files)||e.files.some(t=>!t||typeof t.path!="string"||!t.path||typeof t.hash!="string"||!t.hash||t.root!==void 0&&!["baseDir","cwd","home"].includes(t.root))?void 0:{...e,files:(e.files??[]).map(t=>({...t,path:os(t.path)}))}}catch{return}}function wc(n){let e=rt(n);if(P.existsSync(n)&&!e)throw new Error(`Cannot read ownership manifest: ${n}. Existing files were preserved; repair the manifest before installing or updating.`);return new Map((e?.files??[]).map(t=>[pr(t.root??"baseDir",os(t.path)),t.hash]))}function dr(n){return bc.createHash("sha256").update(n).digest("hex")}function Kt(n){return dr(P.readFileSync(n))}function ot(n){let e=G;if(!e)return;let t=V.resolve(n),s=[["baseDir",e.baseDir],["cwd",e.cwd],["home",e.homeDir]];for(let[i,r]of s){let o=V.relative(r,t);if(o&&!o.startsWith("..")&&!V.isAbsolute(o))return pr(i,os(o))}}function os(n){return n.split(V.sep).join("/")}function pr(n,e){return`${n}:${e}`}function as(n,e){let t=/^(baseDir|cwd|home):(.*)$/.exec(n);if(!t)return{path:n,hash:e};let s=t[1];return{...s==="baseDir"?{}:{root:s},path:t[2],hash:e}}function hr(n){let e=G,t=ot(n);if(!e||!t||e.mode!=="update"||!P.existsSync(n))return!1;let s=e.previousFiles.get(t);return!s||Kt(n)===s?!1:(e.skippedFiles.add(t),console.log(`Skipped modified file: ${as(t,s).path}`),!0)}function mr(n,e){let t=G,s=ot(n);!t||!s||t.writtenFiles.set(s,dr(e))}function A(n){P.existsSync(n)||P.mkdirSync(n,{recursive:!0})}function X(n,e){if(hr(e))return;A(V.dirname(e));let t=P.readFileSync(n);P.copyFileSync(n,e),mr(e,t)}function $(n,e,t={}){if(P.existsSync(n)){A(e);for(let s of P.readdirSync(n)){let i=V.join(n,s),r=s;if(t.filter&&!t.filter(r))continue;let o=V.join(e,s);P.statSync(i).isDirectory()?$(i,o,t):X(i,o)}}}function q(n){return P.readFileSync(n,"utf8")}function x(n,e){hr(n)||(A(V.dirname(n)),P.writeFileSync(n,e,"utf8"),mr(n,e))}function gr(n,e){A(V.dirname(n)),P.writeFileSync(n,e,"utf8"),ls(n)}function ls(n){let e=ot(n);G&&e&&(G.previousFiles.delete(e),G.writtenFiles.delete(e),G.skippedFiles.delete(e))}function yr(n,e){let t=ot(n);if(!G||!t)return;let{path:s,root:i}=as(t,"");G.settingsHooks.push({path:s,...i?{root:i}:{},hooks:e})}function de(n){let e=ot(n),t=e&&G?.previousFiles.get(e);if(!(!G||!e||!t)){if(P.existsSync(n)){if(!P.statSync(n).isFile()||Kt(n)!==t){console.log(`Preserved modified legacy file: ${n}`);return}P.unlinkSync(n)}G.previousFiles.delete(e),G.writtenFiles.delete(e)}}function br(n){let e=[];if(!P.existsSync(n))return e;for(let t of P.readdirSync(n)){let s=V.join(n,t);P.statSync(s).isDirectory()?e.push(...br(s)):e.push(s)}return e}function at(n){for(let e of br(n))de(e)}import vc from"node:fs";function le(n){return n!==null&&typeof n=="object"&&!Array.isArray(n)?n:{}}function ge(n){if(!vc.existsSync(n))return{};try{let e=JSON.parse(q(n));if(e===null||typeof e!="object"||Array.isArray(e))throw new Error("Expected an object");return e}catch{throw new Error(`Cannot read settings JSON: ${n}. Existing settings were preserved; repair the file before installing.`)}}function Gt(n,e){if(n.hooks!==void 0&&(n.hooks===null||typeof n.hooks!="object"||Array.isArray(n.hooks)))throw new Error("Invalid existing settings hooks; expected an object.");let t={...le(n.hooks)};for(let[s,i]of Object.entries(e)){if(!Array.isArray(i))throw new Error(`Invalid hook entries: ${s}`);if(t[s]!==void 0&&!Array.isArray(t[s]))throw new Error(`Invalid existing settings hooks: ${s}`);let r=[...t[s]??[]];for(let o of i){let a=le(o),l=cs(a),c=r.findIndex(u=>cs(le(u))===l);if(c<0)r.push(o);else{r[c]=o;for(let u=r.length-1;u>c;u--)cs(le(r[u]))===l&&r.splice(u,1)}}t[s]=r}return{...n,hooks:t}}function Sr(n,e){if(n.hooks!==void 0&&(n.hooks===null||typeof n.hooks!="object"||Array.isArray(n.hooks)))throw new Error("Invalid existing settings hooks; expected an object.");let t={...le(n.hooks)};for(let[s,i]of Object.entries(e)){if(!Array.isArray(i)||!Array.isArray(t[s]))continue;let r=new Set(i.map(o=>JSON.stringify(o)));t[s]=t[s].filter(o=>!r.has(JSON.stringify(o)))}return{...n,hooks:t}}function cs(n){return JSON.stringify([n.matcher??"",Array.isArray(n.hooks)?n.hooks.map(e=>le(e).command):n.hooks])}function Yt(n,e,t={}){gr(n,`${JSON.stringify(e,null,2)}
|
|
143
|
+
`),yr(n,Object.fromEntries(Object.entries(t).filter(s=>Array.isArray(s[1]))))}function kc(n,e){let t=M.resolve(n).split(M.sep).join("/");return e.replaceAll("${CLAUDE_PLUGIN_ROOT}",t).replaceAll("${FRONTEND_CRAFT_ROOT}",t)}function Cc(n){let e=M.join(n,"hooks","hooks.json"),t=q(e);return JSON.stringify(JSON.parse(t),(s,i)=>typeof i=="string"?kc(n,i):i,2)}async function wr(n){let{pluginRoot:e,contentRoot:t,baseDir:s,dryRun:i,cwd:r,isGlobal:o}=n;if(i){console.log(`[dry-run] would install Claude Code files into ${s}`);return}let a=M.join(s,"settings.json");ge(a),A(s),$(M.join(t,"skills"),M.join(s,"skills")),$(M.join(t,"agents"),M.join(s,"agents")),$(M.join(t,"commands"),M.join(s,"commands")),o||$(M.join(t,"templates","shared","rules"),M.join(s,"rules"));let l=M.join(t,"templates","claude");if(Te.existsSync(l))for(let f of Te.readdirSync(l)){let d=M.join(s,f);Te.existsSync(d)||X(M.join(l,f),d)}let c=le(JSON.parse(Cc(e)).hooks);if(Yt(a,Gt(ge(a),c),c),de(M.join(s,"hooks.json")),!o&&Te.existsSync(M.join(e,".mcp.json"))){let f=M.join(r,".mcp.json");Te.existsSync(f)||X(M.join(e,".mcp.json"),f)}let u=M.join(e,".claude-plugin","plugin.json");if(!o&&Te.existsSync(u)){A(M.join(r,".claude-plugin")),X(u,M.join(r,".claude-plugin","plugin.json"));let f=M.join(e,".claude-plugin","marketplace.json");Te.existsSync(f)&&X(f,M.join(r,".claude-plugin","marketplace.json"))}}import Z from"node:path";import et from"node:fs";import Zp from"node:os";import Xp from"node:path";var Ze=yc(ul(),1);function fl(n,e){let t=/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)([\s\S]*)$/.exec(n);if(!t)throw new Error(`${e}: missing frontmatter`);let s=new Ze.LineCounter,i=(0,Ze.parseDocument)(t[1],{lineCounter:s,uniqueKeys:!0,strict:!0});if(i.errors.length){let o=i.errors[0],a=s.linePos(o.pos[0]);throw new Error(`${e}: ${o.code} at line ${a.line+1}, column ${a.col}: ${o.message}`)}if(!(0,Ze.isMap)(i.contents))throw new Error(`${e}: frontmatter must be a mapping`);let r=i.toJS({maxAliasCount:10});if(!r||typeof r!="object"||Array.isArray(r))throw new Error(`${e}: frontmatter must be a mapping`);return{fields:r,body:t[2]}}function Yn(n,e,t){let s=n[e];if(typeof s!="string"||!s.trim())throw new Error(`${t}: ${e} must be a nonempty string`);return s}function dl(n,e,t){let s=Yn(n,"name",e);if(!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(s)||t!==void 0&&s!==t)throw new Error(`${e}: invalid or mismatched name ${s}`);return{name:s,description:Yn(n,"description",e)}}function pl(n,e,t){for(let s of Object.keys(n))if(!e.includes(s))throw new Error(`${t}: unknown field ${s}`)}function hl(n,e,t){let{fields:s,body:i}=fl(n,e);pl(s,["name","description","argument-hint"],e);let r=dl(s,e,t);return s["argument-hint"]!==void 0&&(r["argument-hint"]=Yn(s,"argument-hint",e)),{metadata:r,body:i}}function ml(n,e,t){let{fields:s,body:i}=fl(n,e);pl(s,["name","description","tools","model","permissionMode","maxTurns","skills","mcpServers"],e);let r=dl(s,e,t);for(let o of["tools","model"])s[o]!==void 0&&(r[o]=Yn(s,o,e));if(s.permissionMode!==void 0){if(s.permissionMode!=="default"&&s.permissionMode!=="acceptEdits")throw new Error(`${e}: invalid permissionMode`);r.permissionMode=s.permissionMode}if(s.maxTurns!==void 0){if(typeof s.maxTurns!="number"||!Number.isInteger(s.maxTurns)||s.maxTurns<1)throw new Error(`${e}: maxTurns must be a positive integer`);r.maxTurns=s.maxTurns}for(let o of["skills","mcpServers"]){let a=s[o];if(a!==void 0){if(!Array.isArray(a)||!a.length||!a.every(l=>typeof l=="string"&&l.trim().length>0)||new Set(a).size!==a.length)throw new Error(`${e}: ${o} must be a nonempty, unique string array`);r[o]=a}}return{metadata:r,body:i}}function gl(n,e){let t=ml(n,e,Xp.basename(e,".md")),s=t.body.trim().replace(/\.claude\/rules/g,".codex/rules").replace(/\bCLAUDE\.md\b/g,"AGENTS.md"),{name:i,description:r}=t.metadata,o=a=>JSON.stringify(a).replace(/[\u007f]/g,"\\u007f");return`name = ${o(i)}
|
|
144
|
+
description = ${o(r)}
|
|
145
|
+
|
|
146
|
+
developer_instructions = ${o(s)}
|
|
147
|
+
`}async function yl(n){let{contentRoot:e,baseDir:t,cwd:s,dryRun:i,isGlobal:r}=n,o=Z.join(e,"agents"),a=Z.join(t,"agents"),l=Z.join(t,"rules"),c=r?Z.join(Zp.homedir(),".agents","skills"):Z.join(s,".agents","skills");if(i){console.log(`[dry-run] codex: ${t}, agents -> ${a}, skills -> ${c}`);return}A(a),A(c);for(let g of et.readdirSync(o)){if(!g.endsWith(".md"))continue;let p=q(Z.join(o,g)),m=gl(p,g);x(Z.join(a,g.replace(/\.md$/,".toml")),m)}$(Z.join(e,"skills"),c);let u=Z.join(e,"templates","shared","rules");!r&&et.existsSync(u)&&$(u,l);let f=Z.join(e,"templates","codex","AGENTS.md"),d=Z.join(e,"templates","codex","config.toml");if(!r&&et.existsSync(f)){let g=Z.join(s,"AGENTS.md");et.existsSync(g)||X(f,g)}let h=Z.join(t,"config.toml");et.existsSync(d)&&!et.existsSync(h)&&X(d,h)}import tt from"node:path";import bl from"node:fs";async function Sl(n){let{contentRoot:e,baseDir:t,dryRun:s,isGlobal:i}=n;if(s){console.log(`[dry-run] cursor -> ${t}`);return}A(t);let r=tt.join(t,"skills");$(tt.join(e,"skills"),r);let o=tt.join(e,"templates","shared","rules"),a=tt.join(t,"rules");if(!i&&bl.existsSync(o)){A(a);for(let l of bl.readdirSync(o)){if(!l.endsWith(".md"))continue;let c=q(tt.join(o,l)),u=l.replace(/\.md$/,""),f=`---
|
|
13
148
|
description: Frontend Craft - ${u}
|
|
14
149
|
globs: "**/*.{ts,tsx,vue,js,jsx,css,scss,less,html}"
|
|
15
150
|
---
|
|
16
151
|
|
|
17
152
|
`+c+`
|
|
18
|
-
`;
|
|
153
|
+
`;x(tt.join(a,`${u}.mdc`),f)}}}import oe from"node:path";import Gi from"node:fs";async function wl(n){let{contentRoot:e,baseDir:t,dryRun:s,isGlobal:i}=n;if(s){console.log(`[dry-run] windsurf -> ${t}`);return}A(t);let r=oe.join(t,i?"global_workflows":"workflows"),o=oe.join(t,"rules");A(r);let a=oe.join(e,"commands");for(let c of Gi.readdirSync(a)){if(!c.endsWith(".md"))continue;let u=q(oe.join(a,c));x(oe.join(r,c),u),i&&de(oe.join(t,"workflows",c))}let l=oe.join(e,"templates","shared","rules");if(!i&&Gi.existsSync(l)){A(o);for(let c of Gi.readdirSync(l)){if(!c.endsWith(".md"))continue;let u=q(oe.join(l,c));x(oe.join(o,c),u)}}$(oe.join(e,"skills"),oe.join(t,"skills"))}import ae from"node:path";import xt from"node:fs";async function Jn(n){let{contentRoot:e,baseDir:t,dryRun:s}=n,i=ae.join(t,"commands");if(s){console.log(`[dry-run] opencode/kilo commands -> ${i}`);return}A(i);let r=ae.join(e,"commands");for(let c of xt.readdirSync(r)){if(!c.endsWith(".md"))continue;let u=q(ae.join(r,c));x(ae.join(i,c),u),de(ae.join(t,"command",c))}let o=ae.join(t,"skills");A(o);let a=ae.join(e,"skills");for(let c of xt.readdirSync(a)){let u=ae.join(a,c);if(!xt.statSync(u).isDirectory())continue;let f=ae.join(u,"SKILL.md");if(xt.existsSync(f)){let d=ae.join(o,c);$(u,d)}}let l=ae.join(t,"opencode.jsonc");n.runtime==="opencode"&&(!xt.existsSync(l)||eh(l))&&x(l,`{
|
|
19
154
|
"$schema": "https://opencode.ai/config.json",
|
|
20
|
-
"
|
|
155
|
+
"permission": { "bash": "allow" }
|
|
21
156
|
}
|
|
22
|
-
`)}async function
|
|
23
|
-
|
|
24
|
-
|
|
157
|
+
`)}function eh(n){try{let e=JSON.parse(q(n));return e.$schema==="https://opencode.ai/config.json"&&Object.keys(e).length===2&&JSON.stringify(e.permissions)==='{"bash":"allow"}'}catch{return!1}}async function vl(n){return Jn(n)}async function kl(n){return Jn(n)}import xe from"node:path";import Cl from"node:fs";async function Nl(n){let{contentRoot:e,baseDir:t,cwd:s,dryRun:i,isGlobal:r}=n;if(i){console.log(`[dry-run] gemini -> ${t}`);return}A(t),at(xe.join(t,"extensions","frontend-craft","skills")),$(xe.join(e,"skills"),xe.join(t,"skills")),$(xe.join(e,"templates","shared","rules"),xe.join(t,"rules"));let o=xe.join(e,"templates","claude","CLAUDE.md"),a=xe.join(r?t:s,"GEMINI.md");if(!Cl.existsSync(a)&&Cl.existsSync(o)){let l=r?"./rules/":"./.gemini/rules/",c=q(o).replaceAll(".claude/",".gemini/").replaceAll("CLAUDE.md","GEMINI.md").replaceAll("@./rules/",`@${l}`);x(a,c)}}import fe from"node:path";import Vn from"node:fs";async function Il(n){let{contentRoot:e,baseDir:t,dryRun:s,isGlobal:i}=n;if(s){console.log(`[dry-run] copilot -> ${t}`);return}A(t);let r=fe.join(t,"instructions"),o=fe.join(t,"prompts");{A(r);let l=fe.join(e,"templates","shared","rules"),c=[i?`# Frontend Craft - Copilot instructions
|
|
158
|
+
`:`---
|
|
159
|
+
applyTo: "**"
|
|
160
|
+
---
|
|
25
161
|
|
|
26
|
-
|
|
27
|
-
`];if(
|
|
28
|
-
## ${
|
|
162
|
+
# Frontend Craft - Copilot instructions
|
|
163
|
+
`];if(Vn.existsSync(l))for(let f of Vn.readdirSync(l))f.endsWith(".md")&&c.push(`
|
|
164
|
+
## ${f}
|
|
29
165
|
|
|
30
|
-
`,
|
|
31
|
-
|
|
166
|
+
`,q(fe.join(l,f)));let u=i?fe.join(t,"copilot-instructions.md"):fe.join(r,"frontend-craft.instructions.md");(!i||!Vn.existsSync(u))&&x(u,c.join(""))}if(i){console.log("Copilot global: installed CLI instructions; IDE prompt files require a local install.");return}A(o);let a=fe.join(e,"commands");for(let l of Vn.readdirSync(a))l.endsWith(".md")&&(x(fe.join(o,l.replace(/\.md$/,".prompt.md")),q(fe.join(a,l))),de(fe.join(o,l)))}import nt from"node:path";async function Al(n){let{contentRoot:e,baseDir:t,dryRun:s}=n;if(s)return console.log(`[dry-run] antigravity -> ${t}`);A(t),$(nt.join(e,"skills"),nt.join(t,"skills"))}async function Ol(n){let{contentRoot:e,baseDir:t,dryRun:s}=n;if(s)return console.log(`[dry-run] augment -> ${t}`);A(t),$(nt.join(e,"skills"),nt.join(t,"skills"))}async function El(n){let{contentRoot:e,baseDir:t,dryRun:s}=n;if(s)return console.log(`[dry-run] codebuddy -> ${t}`);A(t),$(nt.join(e,"skills"),nt.join(t,"skills"))}import Wn from"node:path";import Ll from"node:fs";async function jl(n){let{contentRoot:e,baseDir:t,dryRun:s,isGlobal:i}=n;if(s)return console.log(`[dry-run] trae -> ${t}`);let r=Wn.join(t,i?"user_rules":"rules");A(r);let o=Wn.join(e,"templates","shared","rules"),a=[`---
|
|
167
|
+
alwaysApply: true
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
# Frontend Craft - Trae rules bundle
|
|
171
|
+
`];if(Ll.existsSync(o))for(let l of Ll.readdirSync(o))l.endsWith(".md")&&a.push(`
|
|
172
|
+
## ${l}
|
|
173
|
+
|
|
174
|
+
`,q(Wn.join(o,l)));x(Wn.join(r,"frontend-craft.md"),a.join(""))}import Re from"node:path";import me from"node:fs";async function Tl(n){let{contentRoot:e,baseDir:t,dryRun:s,isGlobal:i}=n;if(s)return console.log(`[dry-run] cline -> ${Re.join(t,".clinerules")}`);let r=Re.join(e,"templates","shared","rules"),o=[`# Frontend Craft - Cline rules
|
|
175
|
+
`];if(me.existsSync(r))for(let l of me.readdirSync(r))l.endsWith(".md")&&o.push(`
|
|
32
176
|
## ${l}
|
|
33
177
|
|
|
34
|
-
`,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
178
|
+
`,q(Re.join(r,l)));let a=Re.join(t,i?"Rules":".clinerules");if(me.existsSync(a)&&!me.statSync(a).isDirectory()){let l=`${a}.frontend-craft-backup`;if(me.existsSync(l))throw new Error(`Cline legacy backup already exists: ${l}. Resolve it before retrying; the original rules were not changed.`);me.renameSync(a,l),me.mkdirSync(a),me.copyFileSync(l,Re.join(a,"legacy.md"),me.constants.COPYFILE_EXCL),ls(a),console.log(`Cline: migrated legacy rules to ${Re.join(a,"legacy.md")}; original retained at ${l}.`)}x(Re.join(a,"frontend-craft.md"),o.join(""))}import Oe from"node:path";import Ji from"node:fs";import Yi from"node:fs";import Hn from"node:path";function $l(n,e){if(Yi.existsSync(n))for(let t of Yi.readdirSync(n)){if(!t.endsWith(".md"))continue;let s=t.slice(0,-3);if(Yi.existsSync(Hn.join(n,"..","skills",s,"SKILL.md")))continue;let i=q(Hn.join(n,t)),{metadata:{description:r},body:o}=hl(i,Hn.join(n,t),s);x(Hn.join(e,s,"SKILL.md"),`---
|
|
179
|
+
name: ${s}
|
|
180
|
+
description: ${JSON.stringify(r)}
|
|
181
|
+
user-invocable: true
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
${o.trim()}
|
|
185
|
+
`)}}async function ql(n){let{contentRoot:e,baseDir:t,cwd:s,dryRun:i,isGlobal:r}=n;if(i)return console.log(`[dry-run] openclaw -> ${t}`);A(t);let o=Oe.join(r?t:s,"skills");if($(Oe.join(e,"skills"),o),$l(Oe.join(e,"commands"),o),at(Oe.join(t,"commands")),r)return;at(Oe.join(t,"skills"));let a=Oe.join(e,"templates","openclaw");if(Ji.existsSync(a))for(let l of Ji.readdirSync(a)){if(!l.endsWith(".md"))continue;let c=Oe.join(s,l);Ji.existsSync(c)||X(Oe.join(a,l),c)}}import W from"node:path";import th from"node:fs";var nh=["fec-security-check.js","fec-format-changed-file.js","fec-run-tests.js","fec-notify.js"];async function Dl(n){let{pluginRoot:e,contentRoot:t,baseDir:s,dryRun:i,isGlobal:r}=n;if(i){console.log(`[dry-run] qoder -> ${s}`);return}ge(W.join(s,"settings.json")),A(s),$(W.join(t,"skills"),W.join(s,"skills")),$(W.join(t,"commands"),W.join(s,"commands")),$(W.join(t,"agents"),W.join(s,"agents")),r||$(W.join(t,"templates","shared","rules"),W.join(s,"rules")),sh(e,W.join(s,"hooks"));let o=Ml(s,r),a=ge(W.join(s,"settings.json"));Yt(W.join(s,"settings.json"),Gt(r?Sr(a,Ml(s,!1)):a,o),o)}function sh(n,e){A(e);for(let t of nh){let s=W.join(n,"dist","hooks",t);if(!th.existsSync(s))throw new Error(`Missing built hook script: ${s}. Run "npm run build" before installing.`);X(s,W.join(e,t))}}function Ml(n,e){let t=s=>e?W.resolve(n,"hooks",s).split(W.sep).join("/"):`.qoder/hooks/${s}`;return{PreToolUse:[zn("Bash|Shell",t("fec-security-check.js"),"Checking command safety...")],PostToolUse:[zn("Write|Edit|MultiEdit",t("fec-format-changed-file.js"),"Running formatter...")],Stop:[zn(".*",t("fec-run-tests.js"),"Running final validation...")],Notification:[zn(".*",t("fec-notify.js"))]}}function zn(n,e,t){return{matcher:n,hooks:[{type:"command",command:`node "${e}"`,...t?{statusMessage:t}:{}}]}}var ne=["claude","codex","cursor","windsurf","opencode","kilo","gemini","copilot","antigravity","augment","trae","codebuddy","cline","openclaw","qoder"],Qn={claude:wr,codex:yl,cursor:Sl,windsurf:wl,opencode:vl,kilo:kl,gemini:Nl,copilot:Il,antigravity:Al,augment:Ol,trae:jl,codebuddy:El,cline:Tl,openclaw:ql,qoder:Dl};import ih from"node:fs";import rh from"node:os";import oh from"node:path";import es from"node:readline";import Xn from"node:os";import _ from"node:path";function U(n){return n&&(n.startsWith("~/")||n==="~"?_.join(Xn.homedir(),n.slice(1)):n)}function Zn(n){let e=Xn.homedir(),t=process.env;switch(n){case"claude":return t.CLAUDE_CONFIG_DIR?U(t.CLAUDE_CONFIG_DIR):_.join(e,".claude");case"cursor":return t.CURSOR_CONFIG_DIR?U(t.CURSOR_CONFIG_DIR):_.join(e,".cursor");case"gemini":return t.GEMINI_CONFIG_DIR?U(t.GEMINI_CONFIG_DIR):_.join(e,".gemini");case"codex":return t.CODEX_HOME?U(t.CODEX_HOME):_.join(e,".codex");case"copilot":return t.COPILOT_CONFIG_DIR?U(t.COPILOT_CONFIG_DIR):_.join(e,".copilot");case"antigravity":return t.ANTIGRAVITY_CONFIG_DIR?U(t.ANTIGRAVITY_CONFIG_DIR):_.join(e,".gemini","config");case"windsurf":return t.WINDSURF_CONFIG_DIR?U(t.WINDSURF_CONFIG_DIR):_.join(e,".codeium","windsurf");case"augment":return t.AUGMENT_CONFIG_DIR?U(t.AUGMENT_CONFIG_DIR):_.join(e,".augment");case"trae":return t.TRAE_CONFIG_DIR?U(t.TRAE_CONFIG_DIR):_.join(e,".trae");case"codebuddy":return t.CODEBUDDY_CONFIG_DIR?U(t.CODEBUDDY_CONFIG_DIR):_.join(e,".codebuddy");case"cline":return t.CLINE_CONFIG_DIR?U(t.CLINE_CONFIG_DIR):_.join(e,"Documents","Cline");case"opencode":return t.OPENCODE_CONFIG_DIR?U(t.OPENCODE_CONFIG_DIR):t.XDG_CONFIG_HOME?_.join(U(t.XDG_CONFIG_HOME),"opencode"):_.join(e,".config","opencode");case"kilo":return t.KILO_CONFIG_DIR?U(t.KILO_CONFIG_DIR):t.XDG_CONFIG_HOME?_.join(U(t.XDG_CONFIG_HOME),"kilo"):_.join(e,".config","kilo");case"openclaw":return t.OPENCLAW_STATE_DIR?U(t.OPENCLAW_STATE_DIR):t.OPENCLAW_CONFIG_DIR?U(t.OPENCLAW_CONFIG_DIR):_.join(e,".openclaw");case"qoder":return t.QODER_CONFIG_DIR?U(t.QODER_CONFIG_DIR):_.join(e,".qoder");default:return t.CLAUDE_CONFIG_DIR?U(t.CLAUDE_CONFIG_DIR):_.join(e,".claude")}}var Vi={claude:".claude",codex:".codex",cursor:".cursor",windsurf:".windsurf",opencode:".opencode",kilo:".kilo",gemini:".gemini",copilot:".github",antigravity:".agent",augment:".augment",trae:".trae",codebuddy:".codebuddy",cline:"",openclaw:".openclaw",qoder:".qoder"};function Ee({runtime:n,isGlobal:e,cwd:t}){if(e)return Zn(n);if(n==="cline")return t;let s=Vi[n]??".claude";return _.join(t,s)}function Pl(n){return n==="antigravity"&&!process.env.ANTIGRAVITY_CONFIG_DIR?[_.join(Xn.homedir(),".gemini","antigravity")]:n==="cline"&&!process.env.CLINE_CONFIG_DIR?[_.join(Xn.homedir(),".cline")]:[]}var ah={claude:"Claude Code",codex:"Codex",cursor:"Cursor",windsurf:"Windsurf",opencode:"OpenCode",kilo:"Kilo",gemini:"Gemini",copilot:"Copilot",antigravity:"Antigravity",augment:"Augment",trae:"Trae",codebuddy:"CodeBuddy",cline:"Cline",openclaw:"OpenClaw",qoder:"Qoder"};function xl(n){let e=rh.homedir();return n===e?"~":n.startsWith(`${e}${oh.sep}`)?`~${n.slice(e.length)}`:n}function lh(n){let e=Vi[n];return e?`./${e}`:"./"}var ts=ne.map((n,e)=>({choice:String(e+1),runtime:n,label:ah[n]??n})),ch=String(ts.length+1);function _l(n){return n.filter((e,t)=>n.indexOf(e)===t)}function uh(n,e,t){return Math.max(e,Math.min(t,n))}function fh(n){return!n||n.ctrl||n.meta?"":typeof n.sequence=="string"&&n.sequence.length===1&&n.sequence>=" "?n.sequence:typeof n.name=="string"&&n.name.length===1?n.name:""}function dh(){return ts.map(n=>{let e=xl(Zn(n.runtime));return{value:n.runtime,label:n.label,description:e,selectedSuffix:"selected"}})}function ph(n){let e=_l(n.map(s=>xl(Zn(s)))).join(", "),t=_l(n.map(s=>lh(s))).join(", ");return[{value:"global",label:"Global",description:`${e} - available in all projects`,selectedSuffix:"selected"},{value:"local",label:"Local",description:`${t} - this project only`,selectedSuffix:"selected"}]}function hh(){return[{value:"en",label:"English",description:"canonical default content",selectedSuffix:"selected"},{value:"zh-CN",label:"简体中文",description:"localized AI-facing content",selectedSuffix:"已选择"}]}function Hi({message:n,options:e,selected:t=[],multiple:s=!0,pageSize:i=15,validate:r=a=>a.length>0,transform:o=(a=>a)}){return{message:n,options:e,selected:t.filter((l,c)=>t.indexOf(l)===c),multiple:s,pageSize:i,search:"",cursor:0,error:"",visibleOptions(){let l=this.search.trim().toLowerCase();return l?this.options.filter(c=>c.label.toLowerCase().includes(l)||c.value.toLowerCase().includes(l)):this.options},move(l){let c=this.visibleOptions();this.cursor=uh(this.cursor+l,0,Math.max(0,c.length-1)),this.error=""},toggle(){let l=this.visibleOptions()[this.cursor];l&&(this.multiple?this.selected.includes(l.value)?this.selected=this.selected.filter(c=>c!==l.value):this.selected=[...this.selected,l.value]:this.selected=[l.value],this.error="")},backspace(){this.search.length>0?(this.search=this.search.slice(0,-1),this.cursor=0):this.selected.length>0&&(this.selected=this.selected.slice(0,-1)),this.error=""},type(l){this.search+=l,this.cursor=0,this.error=""},confirm(){let l=r(this.selected);if(l!==!0){this.error=typeof l=="string"?l:"Select at least one option";return}return o(this.selected)}}}function Rl(n={}){return Hi({message:`Which runtime(s) would you like to install for? (${ts.length} available)`,options:dh(),selected:["claude"],multiple:!0,pageSize:n.pageSize??15,transform:e=>e})}function Fl(n,e={}){return Hi({message:"Where would you like to install?",options:ph(n),selected:["global"],multiple:!1,pageSize:e.pageSize??15,transform:t=>t[0]!=="local"})}function Bl(n={}){return Hi({message:"Which language should frontend-craft install?",options:hh(),selected:["en"],multiple:!1,pageSize:n.pageSize??15,transform:e=>e[0]==="zh-CN"?"zh-CN":"en"})}function Rt(n){let e=n.visibleOptions(),t=new Set(n.selected),s=new Map(n.options.map(o=>[o.value,o])),i=n.selected.length?n.selected.map(o=>s.get(o)?.label??o).join(", "):"(none selected)",r=[`? ${n.message}`,` Selected: ${i}`,` Search: [${n.search||"type to filter"}]`," Up/Down navigate - Space toggle - Backspace remove - Enter confirm"];if(e.length===0)r.push(" No matches");else{let o=Math.max(0,Math.min(n.cursor-Math.floor(n.pageSize/2),e.length-n.pageSize)),a=Math.min(o+n.pageSize,e.length),l=e.slice(o,a);for(let c=0;c<l.length;c++){let u=l[c],d=o+c===n.cursor,h=t.has(u.value),g=d?">":" ",p=h?"[x]":"[ ]",m=u.description?` (${u.description})`:"",S=h?` (${u.selectedSuffix??"selected"})`:m;r.push(` ${g} ${p} ${u.label}${S}`)}if(e.length>n.pageSize){let c=Math.floor(n.cursor/n.pageSize)+1,u=Math.ceil(e.length/n.pageSize);r.push(` (${c}/${u})`)}}return n.error&&r.push(` ${n.error}`),r.join(`
|
|
186
|
+
`)}function mh(){return Rt(Rl())}function gh(n){let t=((n==null?"":String(n)).trim()||"1").split(/[\s,]+/).filter(Boolean);if(t.includes(ch))return ne.slice();let s=[],i=new Set,r=new Map(ts.map(o=>[o.choice,o.runtime]));for(let o of t){let a=r.get(o);!a||i.has(a)||(i.add(a),s.push(a))}return s.length?s:["claude"]}function yh(n){return Rt(Fl(n))}function bh(n){return((n==null?"":String(n)).trim()||"1")!=="2"}function Sh(){return Rt(Bl())}function wh(n){let e=(n==null?"":String(n)).trim()||"1";return e==="2"||e==="zh-CN"?"zh-CN":"en"}var Wi;function Ul(n){return process.stdout.write(n),Wi||(Wi=ih.readFileSync(0,"utf8").split(/\r?\n/)),Wi.shift()??""}function zi(n){return process.env.FRONTEND_CRAFT_FORCE_INTERACTIVE==="1"&&!process.stdin.isTTY?Promise.resolve(Ul(n)):new Promise(e=>{let t=es.createInterface({input:process.stdin,output:process.stdout});t.question(n,s=>{t.close(),e(s)}),t.on("close",()=>e(""))})}async function Qi(n){return process.env.FRONTEND_CRAFT_FORCE_INTERACTIVE==="1"&&!process.stdin.isTTY?Ul(`${Rt(n)}
|
|
187
|
+
`):new Promise(e=>{let t=process.stdin,s=process.stdout,i=t.isRaw,r=0;function o(){r>0&&(es.moveCursor(s,0,-r),es.clearScreenDown(s));let c=Rt(n);s.write(c),s.write(`
|
|
38
188
|
`),r=c.split(`
|
|
39
|
-
`).length}function
|
|
40
|
-
`),process.exitCode=130,
|
|
41
|
-
`),
|
|
42
|
-
`),
|
|
43
|
-
`),
|
|
44
|
-
`)}function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
`);for(let
|
|
48
|
-
`)}function
|
|
49
|
-
`)
|
|
189
|
+
`).length}function a(){t.off("keypress",l),t.isTTY&&t.setRawMode(!!i),t.pause()}function l(c,u){if(u?.ctrl&&u.name==="c"){a(),s.write(`
|
|
190
|
+
`),process.exitCode=130,e(void 0);return}if(u?.name==="return"||u?.name==="enter"){let f=n.confirm();o(),f!==void 0&&(a(),e(f));return}if(u?.name==="up")n.move(-1);else if(u?.name==="down")n.move(1);else if(u?.name==="space")n.toggle();else if(u?.name==="backspace")n.backspace();else{let f=fh(u);f&&n.type(f)}o()}es.emitKeypressEvents(t),t.isTTY&&t.setRawMode(!0),t.resume(),t.on("keypress",l),o()})}async function Kl(){if(process.stdin.isTTY){let n=await Qi(Rl());return Array.isArray(n)?n:["claude"]}return console.log(`${mh()}
|
|
191
|
+
`),gh(await zi("Choice [1]: "))}async function Gl(n){if(process.stdin.isTTY){let e=await Qi(Fl(n));return typeof e=="boolean"?e:!0}return console.log(`${yh(n)}
|
|
192
|
+
`),bh(await zi("Choice [1]: "))}async function Yl(){return process.stdin.isTTY?await Qi(Bl())==="zh-CN"?"zh-CN":"en":(console.log(`${Sh()}
|
|
193
|
+
`),wh(await zi("Choice [1]: ")))}import vh from"node:fs";import kh from"node:path";var Fe="en",ns=["en","zh-CN"];function Xi(n){return ns.includes(n)}function Ch(n){if(n!=null)return Xi(n)?n:void 0}function Jl(n){return Ch(n)??Fe}function Vl(n,e){if(e===Fe)return n;let t=kh.join(n,"localized",e);if(!vh.existsSync(t))throw new Error(`Missing localized content pack for language "${e}": ${t}`);return t}var ss={claude:{tier:"full",skills:!0,agents:!0,commands:!0,hooks:!0,rules:!0,templates:!0,mcp:!0,reports:!0,init:"native"},codex:{tier:"full",skills:!0,agents:!0,commands:!1,hooks:!1,rules:!0,templates:!0,mcp:!1,reports:!0,init:"native"},openclaw:{tier:"full",skills:!0,agents:!1,commands:!0,hooks:!1,rules:!1,templates:!0,mcp:!1,reports:!0,init:"native"},qoder:{tier:"full",skills:!0,agents:!0,commands:!0,hooks:!0,rules:!0,templates:!0,mcp:!1,reports:!0,init:"native"},opencode:{tier:"medium",skills:!0,agents:!1,commands:!0,hooks:!1,rules:!1,templates:!0,mcp:!1,reports:!0,init:"rules"},kilo:{tier:"medium",skills:!0,agents:!1,commands:!0,hooks:!1,rules:!1,templates:!1,mcp:!1,reports:!0,init:"rules"},cursor:{tier:"medium",skills:!0,agents:!1,commands:!1,hooks:!1,rules:!0,templates:!1,mcp:!1,reports:!0,init:"rules"},windsurf:{tier:"medium",skills:!0,agents:!1,commands:!0,hooks:!1,rules:!0,templates:!1,mcp:!1,reports:!0,init:"rules"},gemini:{tier:"medium",skills:!0,agents:!1,commands:!1,hooks:!1,rules:!1,templates:!0,mcp:!1,reports:!0,init:"rules"},copilot:{tier:"medium",skills:!1,agents:!1,commands:!0,hooks:!1,rules:!0,templates:!1,mcp:!1,reports:!0,init:"rules"},antigravity:{tier:"skills-rules-only",skills:!0,agents:!1,commands:!1,hooks:!1,rules:!1,templates:!1,mcp:!1,reports:!0,init:"none"},augment:{tier:"skills-rules-only",skills:!0,agents:!1,commands:!1,hooks:!1,rules:!1,templates:!1,mcp:!1,reports:!0,init:"none"},trae:{tier:"skills-rules-only",skills:!1,agents:!1,commands:!1,hooks:!1,rules:!0,templates:!1,mcp:!1,reports:!0,init:"none"},codebuddy:{tier:"skills-rules-only",skills:!0,agents:!1,commands:!1,hooks:!1,rules:!1,templates:!1,mcp:!1,reports:!0,init:"none"},cline:{tier:"skills-rules-only",skills:!1,agents:!1,commands:!1,hooks:!1,rules:!0,templates:!1,mcp:!1,reports:!0,init:"none"}};function Wl(n){let e=["Runtime","Tier","Skills","Agents","Commands","Hooks","Rules","Templates","MCP","Reports","Init"],t=n.map(r=>{let o=ss[r];if(!o)throw new Error(`Missing capability declaration for runtime: ${r}`);return[r,o.tier,Le(o.skills),Le(o.agents),Le(o.commands),Le(o.hooks),Le(o.rules),Le(o.templates),Le(o.mcp),Le(o.reports),o.init]}),s=e.map((r,o)=>Math.max(r.length,...t.map(a=>a[o].length))),i=r=>r.map((o,a)=>o.padEnd(s[a])).join(" ").trimEnd();return[i(e),...t.map(i)].join(`
|
|
194
|
+
`)}function Le(n){return n?"yes":"no"}import Hl from"node:fs";import st from"node:path";import{fileURLToPath as zl}from"node:url";function Ql(n=import.meta.url){let e=st.dirname(zl(n));for(;;){if(Hl.existsSync(st.join(e,"package.json"))&&Hl.existsSync(st.join(e,"skills")))return e;let t=st.dirname(e);if(t===e)return st.resolve(st.dirname(zl(n)),"../..");e=t}}import J from"node:fs";import Xl from"node:os";import se from"node:path";function Ft({cwd:n,runtimes:e=ne,scopes:t=["local","global"]}){let s=[],i=new Set;for(let r of e)for(let o of t){let a=[Ee({runtime:r,isGlobal:o==="global",cwd:n}),...o==="global"?Pl(r):[]];for(let l of a){let c=je(l),u=se.resolve(c);if(i.has(u))continue;i.add(u);let f=rt(c);f&&(f.runtime!==r||f.scope!==o||s.push({runtime:r,scope:o,baseDir:l,manifestPath:c,manifest:f}))}}return s}function Zl(n,e,t){if(t){console.log(`[dry-run] migrate ${n.baseDir} -> ${e}`);return}let s=je(e);if(J.existsSync(s))return;let i=n.manifest.files.filter(r=>!r.root||r.root==="baseDir");for(let r of i){let o=is({filePath:r.path,root:"baseDir",baseDir:n.baseDir,cwd:n.baseDir}),a=is({filePath:r.path,root:"baseDir",baseDir:e,cwd:e});!o||!a||!J.existsSync(o)||!J.statSync(o).isFile()||J.existsSync(a)||(J.mkdirSync(se.dirname(a),{recursive:!0}),J.copyFileSync(o,a,J.constants.COPYFILE_EXCL))}J.mkdirSync(e,{recursive:!0}),J.writeFileSync(s,`${JSON.stringify({...n.manifest,files:i},null,2)}
|
|
195
|
+
`,"utf8"),console.log(`Migrated install to ${e}; original files remain at ${n.baseDir}.`)}function Zi({install:n,cwd:e,dryRun:t,force:s}){let i={removed:[],skipped:[],missing:[]},r=new Set;for(let o of n.manifest.settingsHooks??[]){let a=is({filePath:o.path,root:o.root??"baseDir",baseDir:n.baseDir,cwd:e});if(!a||!J.existsSync(a))continue;let l=ge(a),c={...le(l.hooks)};for(let[u,f]of Object.entries(o.hooks)){if(!Array.isArray(c[u]))continue;let d=new Set(f.map(g=>JSON.stringify(g))),h=c[u].filter(g=>!d.has(JSON.stringify(g)));h.length?c[u]=h:delete c[u]}Object.keys(c).length?l.hooks=c:delete l.hooks,t||J.writeFileSync(a,`${JSON.stringify(l,null,2)}
|
|
196
|
+
`,"utf8")}for(let o of n.manifest.files){let a=is({filePath:o.path,root:o.root??"baseDir",baseDir:n.baseDir,cwd:e});if(!a)continue;if(!J.existsSync(a)){i.missing.push(o.path);continue}let l=Kt(a)!==o.hash;if(l&&!s){i.skipped.push(o.path);continue}i.removed.push({path:o.path,modified:l}),r.add(se.dirname(a)),t||J.rmSync(a,{force:!0})}return!t&&i.skipped.length===0&&(J.rmSync(n.manifestPath,{force:!0}),Nh([...r],[n.baseDir,e,Xl.homedir()])),i}function is({filePath:n,root:e,baseDir:t,cwd:s}){let i=e==="baseDir"?t:e==="cwd"?s:Xl.homedir(),r=se.resolve(i),o=se.resolve(r,n),a=se.relative(r,o);if(!(a.startsWith("..")||se.isAbsolute(a)))return o}function Nh(n,e){let t=e.map(s=>se.resolve(s));for(let s of n.sort((i,r)=>r.length-i.length)){let i=se.resolve(s);for(;Ih(i,t)&&!t.includes(i)&&!(!J.existsSync(i)||J.readdirSync(i).length>0);)J.rmdirSync(i),i=se.dirname(i)}}function Ih(n,e){return e.some(t=>{let s=se.relative(t,n);return s!==""&&!s.startsWith("..")&&!se.isAbsolute(s)})}import ee from"node:fs";import er from"node:os";import Q from"node:path";function tr({claudeConfigDir:n=sr(),currentVersion:e}){let t=Q.join(n,"plugins","cache","frontend-craft","frontend-craft"),s=Oh(n),i=Ah({cacheDir:t,currentInstallPaths:s.paths,currentVersion:e}),r=s.warning,o=!r&&s.paths.length>0;return{claudeConfigDir:n,cacheDir:t,currentInstallPaths:s.paths,entries:i.map(a=>({...a,shouldDelete:o&&a.shouldDelete,reasons:o?a.reasons:["metadata unavailable"]})),canDelete:o,warning:r}}function sc({claudeConfigDir:n=sr(),currentVersion:e,dryRun:t=!1}){let s=tr({claudeConfigDir:n,currentVersion:e}),i=[];if(s.canDelete)for(let r of s.entries)r.shouldDelete&&(t||ee.rmSync(r.path,{recursive:!0,force:!0}),t||i.push(r));return{...s,deleted:i}}function nr({claudeConfigDir:n=sr(),cwd:e=process.cwd()}={}){let t=Eh(n),s=[ec(Q.join(e,".claude","frontend-craft.manifest.json"),"local"),ec(Q.join(n,"frontend-craft.manifest.json"),"global")].filter(i=>i!==void 0);return{native:t,cli:s,hasMultipleActiveSources:t.length+s.length>1}}function Bt(n){let e=["install sources:"];if(n.native.length===0&&n.cli.length===0)return e.push(" none detected"),e.join(`
|
|
197
|
+
`);for(let t of n.native){let s=[t.version,t.scope].filter(Boolean).join(", ");e.push(` native plugin: ${s||"installed"}${t.installPath?` (${t.installPath})`:""}`)}for(let t of n.cli)e.push(` ${t.scope} CLI: ${t.packageVersion??"unknown"} (${t.manifestPath})`);return n.hasMultipleActiveSources&&e.push(" warning: multiple active sources detected; keep one Claude loader as the source of truth"),e.join(`
|
|
198
|
+
`)}function rs(n,e="report"){let t=["native cache:"];if(t.push(` current installs: ${n.currentInstallPaths.length?n.currentInstallPaths.join(", "):"unknown"}`),n.warning&&t.push(` warning: ${n.warning}`),n.entries.length===0)return t.push(" entries: none"),t.join(`
|
|
199
|
+
`);for(let s of n.entries){let i=s.isCurrent?"current install":s.reasons.length?s.reasons.join(", "):"healthy",r=e==="dry-run"&&s.shouldDelete?"would delete":e==="fix"&&s.shouldDelete?"delete":"keep";t.push(` ${r} ${s.version}: ${i}`)}return t.join(`
|
|
200
|
+
`)}function ic(n,e){if(e)return rs(n,"dry-run");let t=[rs(n,"fix")];for(let s of n.deleted)t.push(` deleted ${s.version}: ${s.path}`);return n.deleted.length===0&&t.push(" deleted: none"),t.join(`
|
|
201
|
+
`)}function sr(){return $h(process.env.CLAUDE_CONFIG_DIR??Q.join(er.homedir(),".claude"))}function Ah({cacheDir:n,currentInstallPaths:e,currentVersion:t}){if(!ee.existsSync(n))return[];let s=new Set(e.map(nc));return ee.readdirSync(n,{withFileTypes:!0}).filter(i=>i.isDirectory()).map(i=>{let r=Q.join(n,i.name),o=jh(r),a=ee.existsSync(Q.join(r,"dist")),l=ee.existsSync(Q.join(r,".orphaned_at")),c=s.has(nc(r)),u=[];return l&&u.push("orphaned"),a||u.push("missing dist"),o&&Th(o,t)<0&&u.push(`package ${o} < ${t}`),{version:i.name,path:r,isCurrent:c,hasDist:a,orphaned:l,packageVersion:o,reasons:u,shouldDelete:!c&&u.length>0}}).sort((i,r)=>i.version.localeCompare(r.version,void 0,{numeric:!0}))}function Oh(n){let e=Q.join(n,"plugins","installed_plugins.json");if(!ee.existsSync(e))return{paths:[],warning:`missing ${e}; refusing to delete cache entries`};try{let t=JSON.parse(ee.readFileSync(e,"utf8")),s=(t.plugins?.["frontend-craft@bovinphang/frontend-craft"]??t.plugins?.["frontend-craft@frontend-craft"]??[]).map(i=>i.installPath).filter(i=>typeof i=="string"&&i.length>0).map(i=>Q.resolve(i));return s.length===0?{paths:s,warning:`missing frontend-craft plugin entry in ${e}; refusing to delete cache entries`}:{paths:s}}catch{return{paths:[],warning:`invalid ${e}; refusing to delete cache entries`}}}function Eh(n){let e=Q.join(n,"plugins","installed_plugins.json");if(!ee.existsSync(e))return[];try{let t=JSON.parse(ee.readFileSync(e,"utf8"));return Object.entries(t.plugins??{}).flatMap(([s,i])=>Lh(s)?i.map(r=>({key:s,installPath:typeof r.installPath=="string"?Q.resolve(r.installPath):void 0,scope:typeof r.scope=="string"?r.scope:void 0,version:typeof r.version=="string"?r.version:void 0})):[])}catch{return[]}}function Lh(n){return n==="frontend-craft@bovinphang/frontend-craft"||n==="frontend-craft@frontend-craft"||n.startsWith("frontend-craft@")}function ec(n,e){if(ee.existsSync(n))try{let t=JSON.parse(ee.readFileSync(n,"utf8"));return t.runtime!=="claude"?void 0:{scope:e,manifestPath:n,packageVersion:typeof t.packageVersion=="string"?t.packageVersion:void 0}}catch{return{scope:e,manifestPath:n}}}function jh(n){let e=Q.join(n,"package.json");if(ee.existsSync(e))try{let t=JSON.parse(ee.readFileSync(e,"utf8"));return typeof t.version=="string"?t.version:void 0}catch{return}}function Th(n,e){let t=tc(n),s=tc(e);for(let i=0;i<3;i+=1)if(t[i]!==s[i])return t[i]-s[i];return 0}function tc(n){let e=n.match(/^(\d+)\.(\d+)\.(\d+)/);return e?[Number(e[1]),Number(e[2]),Number(e[3])]:[0,0,0]}function $h(n){return n==="~"?er.homedir():n.startsWith("~/")||n.startsWith("~\\")?Q.join(er.homedir(),n.slice(2)):n}function nc(n){let e=Q.resolve(n);return process.platform==="win32"?e.toLowerCase():e}function or(n){try{let e=O.join(n,"package.json");return JSON.parse(j.readFileSync(e,"utf8")).version??"0.0.0"}catch{return"0.0.0"}}function Dh(n){let e=null,t=!1,s=!1,i=!1,r=!1,o=!1,a,l=[];for(let c=0;c<n.length;c++){let u=n[c];u==="--global"||u==="-g"?(t=!0,e="global"):u==="--local"||u==="-l"?(s=!0,e="local"):u==="--dry-run"?i=!0:u==="--force"?r=!0:u==="--all"?o=!0:u==="--lang"?a=n[++c]??"":u.startsWith("--lang=")?a=u.slice(7):u.startsWith("-")||l.push(u)}return{runtime:l[0],installLocation:e,dryRun:i,force:r,all:o,hasGlobal:t,hasLocal:s,language:a}}function ir(){console.log(`frontend-craft - universal installer
|
|
50
202
|
|
|
51
203
|
Usage:
|
|
52
204
|
frontend-craft install <runtime> [options]
|
|
@@ -69,7 +221,7 @@ Usage:
|
|
|
69
221
|
Options:
|
|
70
222
|
--global, -g Install to tool global config directory
|
|
71
223
|
--local, -l Install to this project only
|
|
72
|
-
--lang <lang> Install content language: ${
|
|
224
|
+
--lang <lang> Install content language: ${ns.join(", ")} (default: ${Fe})
|
|
73
225
|
--dry-run Show actions without writing files
|
|
74
226
|
--force Uninstall: remove modified managed files (does not override Claude Marketplace)
|
|
75
227
|
--all Install for every supported runtime
|
|
@@ -82,6 +234,6 @@ Notes:
|
|
|
82
234
|
/fec-init is the in-assistant slash command; fec setup is the terminal CLI command.
|
|
83
235
|
|
|
84
236
|
Runtimes:
|
|
85
|
-
${
|
|
86
|
-
`)}function
|
|
87
|
-
`)}function
|
|
237
|
+
${ne.join(", ")}
|
|
238
|
+
`)}function rc(n){let e=n[0];return e==null||["--dry-run","--all","--global","-g","--local","-l","--lang"].includes(e)||e.startsWith("--lang=")}async function uc(n){let e=rc(n)?"install":n[0],t=rc(n)?n:n.slice(1),s=e==="setup",i=Ql(import.meta.url);if(e==="version"||e==="-v"||e==="--version"){console.log(or(i));return}if(e==="list"){ne.forEach(w=>console.log(w));return}if(e==="matrix"){console.log(Wl(ne));return}if(e==="doctor"){let w=t[0]??"claude",I=t.includes("--global")||t.includes("-g"),b=t.includes("--fix-cache"),E=t.includes("--dry-run"),F=process.cwd(),K=Ee({runtime:w,isGlobal:I,cwd:F}),D=ss[w];if(!D){console.error(`Unknown runtime: ${w}`),process.exitCode=1;return}console.log(Bh({runtime:w,baseDir:K,cwd:F,cap:D,pluginRoot:i,fixCache:b,dryRun:E,isGlobal:I}));return}if(e==="sync-metadata"){let w=t.includes("--check"),I=Vh(i);if(I.length>0){for(let b of I)console.error(b);process.exitCode=1;return}console.log(w?"metadata is synchronized":"metadata is synchronized; no changes needed");return}if(e==="help"||e==="-h"||e==="--help"){ir();return}let r=e==="update"||e==="upgrade"?"update":"install";if(e!=="install"&&e!=="setup"&&e!=="update"&&e!=="upgrade"&&e!=="uninstall"&&e!=="remove"){console.error(`Unknown command: ${e}`),ir(),process.exitCode=1;return}if(t.some(w=>w==="help"||w==="--help"||w==="-h")){ir();return}let o=Dh(t),a=o.runtime,l=o.all,{installLocation:c,dryRun:u,force:f,hasGlobal:d,hasLocal:h}=o,g=o.language;if(g!==void 0&&!Xi(g)){console.error(`Unsupported language: ${g||"(missing)"}. Supported languages: ${ns.join(", ")}`),process.exitCode=1;return}let p=g;s&&a==="all"&&(a=void 0,l=!0);let m=c??(s?"local":null);if(d&&h){console.error("--global and --local cannot be used together."),process.exitCode=1;return}let S=process.cwd();if(e==="uninstall"||e==="remove"){let w=lc(h,d),b=Ft({cwd:S,runtimes:a?[a]:l?ne:void 0,scopes:w});if(a&&!Qn[a]){console.error(`Unknown runtime: ${a}`),process.exitCode=1;return}if(b.length===0){console.log(cc("uninstall",a,w));return}for(let E of b){console.log(`Uninstalling frontend-craft for "${E.runtime}" -> ${E.baseDir}${E.scope==="global"?" (global)":""}`);let F=Zi({install:E,cwd:S,dryRun:u,force:f});for(let K of F.removed)console.log(`${u?"[dry-run] would remove":"Removed"}${K.modified?" modified file":" file"}: ${K.path}`);for(let K of F.skipped)console.log(`Skipped modified file: ${K}`);for(let K of F.missing)console.log(`Missing file: ${K}`);u&&F.skipped.length===0&&console.log(`[dry-run] would remove manifest: ${E.manifestPath}`)}return}let v=!!process.stdin.isTTY||process.env.FRONTEND_CRAFT_FORCE_INTERACTIVE==="1";if(r==="update"&&!a){let w=lc(h,d),I=Ft({cwd:S,runtimes:l?ne:void 0,scopes:w});if(I.length===0){console.log(cc("update",void 0,w));return}let b=new Set;for(let E of I){let F=`${E.runtime}:${E.scope}`;if(b.has(F))continue;b.add(F);let K=p??E.manifest.language??Fe;await oc({rt:E.runtime,mode:r,isGlobal:E.scope==="global",baseDir:Ee({runtime:E.runtime,isGlobal:E.scope==="global",cwd:S}),pluginRoot:i,cwd:S,dryRun:u,language:K})}return}let k=l?ne:a?[a]:[];k.length||(v?k=await Kl():(console.log("Non-interactive terminal detected, defaulting to claude runtime."),k=["claude"]));let C=p;!C&&r==="install"&&(v?C=await Yl():C=Fe);let N;if(m==="global"?N=!0:m==="local"?N=!1:v?N=await Gl(k):(console.log("Non-interactive terminal detected, defaulting to global install."),N=!0),!C&&r==="update"&&a){let w=Ee({runtime:a,isGlobal:N,cwd:S});C=rt(je(w))?.language??Fe}C??=Jl(p);for(let w of k){if(!Qn[w]){console.error(`Unknown runtime: ${w}`),process.exitCode=1;continue}let I=Ee({runtime:w,isGlobal:N,cwd:S});await oc({rt:w,mode:r,isGlobal:N,baseDir:I,pluginRoot:i,cwd:S,dryRun:u,force:f,canPrompt:v,language:C})}}async function oc({rt:n,mode:e,isGlobal:t,baseDir:s,pluginRoot:i,cwd:r,dryRun:o,force:a,canPrompt:l,language:c}){let u=await Ph({rt:n,mode:e,isGlobal:t,cwd:r,dryRun:o,force:!!a,canPrompt:!!l});if(!u)return;if(u.redirect&&(t=u.redirect.isGlobal,s=u.redirect.baseDir,e="update"),t&&!j.existsSync(je(s))){let d=Ft({cwd:r,runtimes:[n],scopes:["global"]}).find(h=>O.resolve(h.baseDir)!==O.resolve(s));d&&(Zl(d,s,o),e="update")}let f={pluginRoot:i,contentRoot:Vl(i,c),cwd:r,runtime:n,isGlobal:t,baseDir:s,dryRun:o,mode:e,language:c,capabilities:ss[n]};e==="install"?(console.log(`Installing frontend-craft for "${n}" -> ${s}${t?" (global)":""}`),!o&&j.existsSync(je(s))&&console.log(`Existing frontend-craft manifest found; use "frontend-craft update ${n}" to refresh managed files.`)):console.log(`Updating frontend-craft for "${n}" -> ${s}${t?" (global)":""}`),o||cr({baseDir:s,cwd:r,mode:e,packageVersion:or(i),runtime:n,isGlobal:t,language:c});try{await Qn[n](f),o||ur()}catch(d){throw o||fr(),d}}async function Ph({rt:n,isGlobal:e,cwd:t,dryRun:s,force:i,canPrompt:r}){if(n!=="claude")return{};let o=nr({cwd:t});if(o.native.length>0){console.log("Claude Code Marketplace install detected for frontend-craft."),console.log(Bt(o)),console.log("Update frontend-craft through Claude Code Marketplace. CLI install/update is disabled while Marketplace is active."),process.exitCode=1;return}let a=e?"cli-global":"cli-local",l=o.cli.filter(h=>rr(h)!==a);if(l.length===0)return o.hasMultipleActiveSources&&console.log(Bt(o)),{};let c=l[0],u=rr(c);if(console.log(`${Be(u)} install detected for frontend-craft.`),console.log(Bt(o)),s){console.log(`[dry-run] resolve the existing ${Be(u)} source before using ${Be(a)}.`),process.exitCode=1;return}if(!r){xh(u,a),process.exitCode=1;return}if(await Rh(u,a)==="switch"){if(!_h({installs:l,cwd:t,dryRun:s,force:i})){process.exitCode=1;return}return{}}let d=u==="cli-global";return{redirect:{isGlobal:d,baseDir:Ee({runtime:"claude",isGlobal:d,cwd:t})}}}function _h({installs:n,cwd:e,dryRun:t,force:s}){for(let i of n){let r=Ft({cwd:e,runtimes:["claude"],scopes:[i.scope]})[0];if(!r)continue;console.log(`Uninstalling existing ${Be(rr(i))} install before switching source.`);let o=Zi({install:r,cwd:e,dryRun:t,force:s});for(let a of o.removed)console.log(`${t?"[dry-run] would remove":"Removed"}${a.modified?" modified file":" file"}: ${a.path}`);for(let a of o.skipped)console.log(`Skipped modified file: ${a}`);for(let a of o.missing)console.log(`Missing file: ${a}`);if(o.skipped.length>0)return console.log("Resolve skipped modified files or rerun with --force before switching Claude CLI install source."),!1}return!0}function xh(n,e){let t=ac(n),s=ac(e);console.log(`Keep the existing source updated with: frontend-craft update claude ${t}`),console.log(`Or switch sources with: frontend-craft uninstall claude ${t} && frontend-craft install claude ${s}`)}async function Rh(n,e){return console.log("Choose how to resolve the Claude CLI install source conflict:"),console.log(` 1. Keep ${Be(n)} and update it`),console.log(` 2. Uninstall ${Be(n)} and install ${Be(e)}`),(await Fh("Choice [1]: ")).trim()==="2"?"switch":"keep"}function Fh(n){return process.env.FRONTEND_CRAFT_FORCE_INTERACTIVE==="1"&&!process.stdin.isTTY?(process.stdout.write(n),Promise.resolve(j.readFileSync(0,"utf8").split(/\r?\n/)[0]??"")):new Promise(e=>{let t=Mh.createInterface({input:process.stdin,output:process.stdout});t.question(n,s=>{t.close(),e(s)}),t.on("close",()=>e(""))})}function rr(n){return n.scope==="global"?"cli-global":"cli-local"}function Be(n){return n==="marketplace"?"Claude Code Marketplace":n==="cli-global"?"Claude CLI global":"Claude CLI local"}function ac(n){return n==="cli-global"?"--global":"--local"}function lc(n,e){return n?["local"]:e?["global"]:["local","global"]}function cc(n,e,t){return`No frontend-craft installs found${e?` for "${e}"`:""} to ${n} (${t.join(", ")}).`}function Bh({runtime:n,baseDir:e,cwd:t,cap:s,pluginRoot:i,fixCache:r,dryRun:o,isGlobal:a}){let l=[`frontend-craft doctor: ${n}`,`baseDir: ${e}`,`tier: ${s.tier}`];if(l.push(`skills: ${it(Uh(n,e,t,a),s.skills)}`),l.push(`agents: ${it(j.existsSync(O.join(e,"agents")),s.agents)}`),l.push(`commands: ${it(Kh(n,e,t,a),s.commands&&!(n==="copilot"&&a))}`),l.push(`hooks: ${it(Gh(n,e),s.hooks)}`),l.push(`rules: ${it(Yh(n,e,a),s.rules&&(!a||["copilot","cline","trae"].includes(n)))}`),l.push(`templates: ${it(Jh(n,e,t,a),s.templates&&!(n==="openclaw"&&a))}`),n==="claude"){let c=or(i);l.push(Bt(nr({cwd:t}))),r?l.push(ic(sc({currentVersion:c,dryRun:o}),o)):l.push(rs(tr({currentVersion:c})))}return l.join(`
|
|
239
|
+
`)}function it(n,e){return e?n?"ok":"missing":"not expected"}function Uh(n,e,t,s){return n==="codex"?j.existsSync(O.join(s?qh.homedir():t,".agents","skills","fec-react-project-standard","SKILL.md")):j.existsSync(O.join(n==="openclaw"&&!s?t:e,"skills","fec-react-project-standard","SKILL.md"))}function Kh(n,e,t,s){if(n==="openclaw")return j.existsSync(O.join(s?e:t,"skills","fec-init","SKILL.md"));let i=n==="windsurf"?O.join(e,s?"global_workflows":"workflows"):n==="opencode"||n==="kilo"?O.join(e,"commands"):n==="copilot"?O.join(e,"prompts"):O.join(e,"commands");return j.existsSync(O.join(i,n==="copilot"?"fec-init.prompt.md":"fec-init.md"))}function Gh(n,e){if(n==="claude")try{let t=JSON.parse(j.readFileSync(O.join(e,"settings.json"),"utf8"));return Array.isArray(t.hooks?.Stop)&&t.hooks.Stop.some(s=>JSON.stringify(s).includes("fec-run-tests.js"))}catch{return!1}return n==="qoder"?j.existsSync(O.join(e,"settings.json"))&&j.existsSync(O.join(e,"hooks","fec-security-check.js")):j.existsSync(O.join(e,"hooks.json"))}function Yh(n,e,t){return n==="copilot"?j.existsSync(t?O.join(e,"copilot-instructions.md"):O.join(e,"instructions","frontend-craft.instructions.md")):n==="cline"?j.existsSync(O.join(e,t?"Rules":".clinerules","frontend-craft.md")):n==="trae"&&t?j.existsSync(O.join(e,"user_rules","frontend-craft.md")):j.existsSync(O.join(e,"rules"))}function Jh(n,e,t,s){return n==="claude"?s?j.existsSync(O.join(e,"CLAUDE.md")):j.existsSync(O.join(t,".claude-plugin","plugin.json")):n==="codex"?j.existsSync(O.join(t,"AGENTS.md"))||j.existsSync(O.join(e,"config.toml")):n==="gemini"?j.existsSync(O.join(s?e:t,"GEMINI.md")):n==="openclaw"?j.existsSync(O.join(t,"AGENTS.md")):n==="qoder"?j.existsSync(O.join(e,"settings.json")):n==="opencode"?j.existsSync(O.join(e,"opencode.jsonc")):!1}function Vh(n){let e=[],t=JSON.parse(j.readFileSync(O.join(n,"package.json"),"utf8")),s=[[".claude-plugin/plugin.json","version"],[".claude-plugin/marketplace.json","plugins.0.version"],["openclaw.plugin.json","version"]];for(let[c,u]of s){let f=O.join(n,c),d=JSON.parse(j.readFileSync(f,"utf8")),h=u.split(".").reduce((g,p)=>g?.[Number.isNaN(Number(p))?p:Number(p)],d);h!==t.version&&e.push(`${c} ${u} is ${h}, expected ${t.version}`)}let i=JSON.parse(j.readFileSync(O.join(n,"skills","metadata.json"),"utf8"));for(let c of i)c.version!==t.version&&e.push(`skills/metadata.json ${c.id}.version is ${c.version}, expected ${t.version}`);let r=j.readdirSync(O.join(n,"commands")).filter(c=>c.endsWith(".md")).length,o=j.readdirSync(O.join(n,"skills"),{withFileTypes:!0}).filter(c=>c.isDirectory()).length,a=j.readdirSync(O.join(n,"agents")).filter(c=>c.endsWith(".md")).length,l=j.readFileSync(O.join(n,".claude-plugin","marketplace.json"),"utf8");return l.includes(`${a} agents`)||e.push(`marketplace description must mention ${a} agents`),l.includes(`${o} skills`)||e.push(`marketplace description must mention ${o} skills`),l.includes(`${r} commands`)||e.push(`marketplace description must mention ${r} commands`),e}uc(process.argv.slice(2)).catch(n=>{console.error(n),process.exit(1)});
|