house-lights 1.0.1 → 1.2.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/README.md +7 -3
- package/cli.mjs +3 -2
- package/package.json +4 -3
- package/skills/back-of-napkin/assets/player.html +1 -1
- package/skills/back-of-napkin/scripts/contract.mjs +1 -1
- package/skills/back-of-napkin/scripts/pptx.mjs +1 -1
- package/skills/cast-list/assets/VERSION +2 -0
- package/skills/cast-list/assets/lesson.html +182 -0
- package/skills/cast-list/assets/map.html +244 -0
- package/skills/cast-list/examples/LICENSE-microsoft-skills-for-copilot-studio +21 -0
- package/skills/cast-list/examples/NOTICE.md +27 -0
- package/skills/cast-list/examples/agents/bodega-cupons/actions/ConsultarCuponsAtivos.mcs.yml +34 -0
- package/skills/cast-list/examples/agents/bodega-cupons/actions/EnviarCupomEmail.mcs.yml +34 -0
- package/skills/cast-list/examples/agents/bodega-cupons/actions/PromocoesMCP.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-cupons/agent.mcs.yml +27 -0
- package/skills/cast-list/examples/agents/bodega-cupons/connectionreferences.mcs.yml +17 -0
- package/skills/cast-list/examples/agents/bodega-cupons/knowledge/RegulamentoCupons.knowledge.mcs.yml +7 -0
- package/skills/cast-list/examples/agents/bodega-cupons/settings.mcs.yml +13 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/ConsultarRegulamentoCupons.topic.mcs.yml +56 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/Escalate.topic.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/Fallback.topic.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/OnError.topic.mcs.yml +48 -0
- package/skills/cast-list/examples/agents/bodega-cupons/topics/RecebimentoOrquestrador.topic.mcs.yml +16 -0
- package/skills/cast-list/examples/agents/bodega-cupons/variables/CategoriaSolicitacao.mcs.yml +10 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/actions/AbrirSolicitacaoDevolucao.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/agent.mcs.yml +26 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/connectionreferences.mcs.yml +6 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/knowledge/PoliticaTrocasDevolucoes.knowledge.mcs.yml +7 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/settings.mcs.yml +13 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/ConsultarPoliticaDevolucoes.topic.mcs.yml +56 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/Escalate.topic.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/Fallback.topic.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/OnError.topic.mcs.yml +48 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/topics/RecebimentoOrquestrador.topic.mcs.yml +16 -0
- package/skills/cast-list/examples/agents/bodega-devolucoes/variables/CategoriaSolicitacao.mcs.yml +10 -0
- package/skills/cast-list/examples/agents/bodega-frete/actions/EnviarOpcoesFrete.mcs.yml +34 -0
- package/skills/cast-list/examples/agents/bodega-frete/agent.mcs.yml +26 -0
- package/skills/cast-list/examples/agents/bodega-frete/connectionreferences.mcs.yml +6 -0
- package/skills/cast-list/examples/agents/bodega-frete/knowledge/TabelaFreteEntregas.knowledge.mcs.yml +7 -0
- package/skills/cast-list/examples/agents/bodega-frete/settings.mcs.yml +13 -0
- package/skills/cast-list/examples/agents/bodega-frete/topics/ConsultarTabelaFrete.topic.mcs.yml +56 -0
- package/skills/cast-list/examples/agents/bodega-frete/topics/Fallback.topic.mcs.yml +31 -0
- package/skills/cast-list/examples/agents/bodega-frete/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-frete/topics/OnError.topic.mcs.yml +48 -0
- package/skills/cast-list/examples/agents/bodega-frete/topics/RecebimentoOrquestrador.topic.mcs.yml +16 -0
- package/skills/cast-list/examples/agents/bodega-frete/variables/CategoriaSolicitacao.mcs.yml +10 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/actions/EnviarInstrucoesRetirada.mcs.yml +34 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/agent.mcs.yml +27 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/connectionreferences.mcs.yml +6 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/knowledge/GuiaLojaFisica.knowledge.mcs.yml +8 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/settings.mcs.yml +13 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/ConsultarGuiaLojaFisica.topic.mcs.yml +56 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/Escalate.topic.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/Fallback.topic.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/OnError.topic.mcs.yml +43 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/topics/RecebimentoOrquestrador.topic.mcs.yml +16 -0
- package/skills/cast-list/examples/agents/bodega-loja-fisica/variables/CategoriaSolicitacao.mcs.yml +10 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/actions/AgenteCupons.mcs.yml +24 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/actions/AgenteDevolucoes.mcs.yml +24 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/actions/AgenteFrete.mcs.yml +24 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/actions/AgenteLojaFisica.mcs.yml +24 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/actions/AgentePedidos.mcs.yml +24 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/agent.mcs.yml +35 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/agents/SobreBodegaAzul/agent.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/settings.mcs.yml +12 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/topics/ClassificarSolicitacao.topic.mcs.yml +35 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/topics/Escalate.topic.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/topics/Fallback.topic.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/topics/OnError.topic.mcs.yml +48 -0
- package/skills/cast-list/examples/agents/bodega-orquestrador/variables/CategoriaSolicitacao.mcs.yml +9 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/actions/EnviarResumoPedido.mcs.yml +34 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/agent.mcs.yml +26 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/connectionreferences.mcs.yml +6 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/knowledge/PoliticasPedidos.knowledge.mcs.yml +7 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/settings.mcs.yml +13 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/ConsultarPoliticasPedidos.topic.mcs.yml +56 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/Escalate.topic.mcs.yml +20 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/Fallback.topic.mcs.yml +32 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/Greeting.topic.mcs.yml +14 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/OnError.topic.mcs.yml +48 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/topics/RecebimentoOrquestrador.topic.mcs.yml +16 -0
- package/skills/cast-list/examples/agents/bodega-pedidos/variables/CategoriaSolicitacao.mcs.yml +10 -0
- package/skills/cast-list/examples/demo.cast.yaml +10 -0
- package/skills/cast-list/examples/profile.cast.yaml +15 -0
- package/skills/cast-list/references/format.md +50 -0
- package/skills/cast-list/references/keys.md +107 -0
- package/skills/cast-list/references/profile.md +32 -0
- package/skills/cast-list/scripts/browser.mjs +198 -0
- package/skills/cast-list/scripts/build.mjs +179 -0
- package/skills/cast-list/scripts/engine.mjs +155 -0
- package/skills/cast-list/scripts/page.mjs +15 -0
- package/skills/cast-list/scripts/read-xlsx.mjs +67 -0
- package/skills/cast-list/vendor/microsoft/LICENSE +21 -0
- package/skills/cast-list/vendor/microsoft/NOTICE +9 -0
- package/skills/cast-list/vendor/microsoft/package.json +1 -0
- package/skills/cast-list/vendor/microsoft/reference/bot.schema.yaml-authoring.json +27605 -0
- package/skills/cast-list/vendor/microsoft/scripts/schema-lookup.bundle.js +3495 -0
- package/skills/chalk-talk/assets/VERSION +1 -1
- package/skills/chalk-talk/assets/player.html +1 -1
- package/skills/chalk-talk/scripts/contract.mjs +1 -1
- package/skills/chalk-talk/scripts/mermaid.mjs +1 -1
- package/skills/chalk-talk/scripts/pptx.mjs +1 -1
- package/skills/dress-rehearsal/assets/drill.html +1 -1
- package/skills/gates-and-handoffs/assets/VERSION +1 -1
- package/skills/gates-and-handoffs/assets/lesson.html +1 -1
- package/skills/gates-and-handoffs/assets/map.html +36 -24
- package/skills/gates-and-handoffs/examples/feature-delivery.way.yaml +8 -1
- package/skills/gates-and-handoffs/references/format.schema.json +25 -1
- package/skills/gates-and-handoffs/references/questions.md +2 -1
- package/skills/gates-and-handoffs/scripts/engine.mjs +83 -83
- package/skills/service-blueprint/assets/VERSION +1 -1
- package/skills/service-blueprint/assets/lesson.html +1 -1
- package/skills/service-blueprint/assets/map.html +1 -1
- package/skills/service-blueprint/scripts/engine.mjs +1 -1
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
// GENERATED by tools/assets.mjs from the way engine v0.
|
|
1
|
+
// GENERATED by tools/assets.mjs from the way engine v0.259.0. Do not edit.
|
|
2
2
|
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);
|
|
3
|
-
var
|
|
4
|
-
`)}};
|
|
5
|
-
`)?
|
|
3
|
+
var yl=Object.create;var Yi=Object.defineProperty;var bl=Object.getOwnPropertyDescriptor;var wl=Object.getOwnPropertyNames;var kl=Object.getPrototypeOf,vl=Object.prototype.hasOwnProperty;var Ut=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,s)=>(typeof require<"u"?require:e)[s]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var L=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Sl=(t,e,s,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of wl(e))!vl.call(t,i)&&i!==s&&Yi(t,i,{get:()=>e[i],enumerable:!(n=bl(e,i))||n.enumerable});return t};var $l=(t,e,s)=>(s=t!=null?yl(kl(t)):{},Sl(e||!t||!t.__esModule?Yi(s,"default",{value:t,enumerable:!0}):s,t));var F=L(X=>{"use strict";var Zs=Symbol.for("yaml.alias"),zi=Symbol.for("yaml.document"),Yt=Symbol.for("yaml.map"),Vi=Symbol.for("yaml.pair"),en=Symbol.for("yaml.scalar"),zt=Symbol.for("yaml.seq"),me=Symbol.for("yaml.node.type"),Ol=t=>!!t&&typeof t=="object"&&t[me]===Zs,Al=t=>!!t&&typeof t=="object"&&t[me]===zi,El=t=>!!t&&typeof t=="object"&&t[me]===Yt,Nl=t=>!!t&&typeof t=="object"&&t[me]===Vi,Gi=t=>!!t&&typeof t=="object"&&t[me]===en,xl=t=>!!t&&typeof t=="object"&&t[me]===zt;function Ji(t){if(t&&typeof t=="object")switch(t[me]){case Yt:case zt:return!0}return!1}function ql(t){if(t&&typeof t=="object")switch(t[me]){case Zs:case Yt:case en:case zt:return!0}return!1}var Cl=t=>(Gi(t)||Ji(t))&&!!t.anchor;X.ALIAS=Zs;X.DOC=zi;X.MAP=Yt;X.NODE_TYPE=me;X.PAIR=Vi;X.SCALAR=en;X.SEQ=zt;X.hasAnchor=Cl;X.isAlias=Ol;X.isCollection=Ji;X.isDocument=Al;X.isMap=El;X.isNode=ql;X.isPair=Nl;X.isScalar=Gi;X.isSeq=xl});var lt=L(tn=>{"use strict";var J=F(),ee=Symbol("break visit"),Xi=Symbol("skip children"),ue=Symbol("remove node");function Vt(t,e){let s=Hi(e);J.isDocument(t)?Ue(null,t.contents,s,Object.freeze([t]))===ue&&(t.contents=null):Ue(null,t,s,Object.freeze([]))}Vt.BREAK=ee;Vt.SKIP=Xi;Vt.REMOVE=ue;function Ue(t,e,s,n){let i=Qi(t,e,s,n);if(J.isNode(i)||J.isPair(i))return Zi(t,n,i),Ue(t,i,s,n);if(typeof i!="symbol"){if(J.isCollection(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=Ue(r,e.items[r],s,n);if(typeof o=="number")r=o-1;else{if(o===ee)return ee;o===ue&&(e.items.splice(r,1),r-=1)}}}else if(J.isPair(e)){n=Object.freeze(n.concat(e));let r=Ue("key",e.key,s,n);if(r===ee)return ee;r===ue&&(e.key=null);let o=Ue("value",e.value,s,n);if(o===ee)return ee;o===ue&&(e.value=null)}}return i}async function Gt(t,e){let s=Hi(e);J.isDocument(t)?await Ye(null,t.contents,s,Object.freeze([t]))===ue&&(t.contents=null):await Ye(null,t,s,Object.freeze([]))}Gt.BREAK=ee;Gt.SKIP=Xi;Gt.REMOVE=ue;async function Ye(t,e,s,n){let i=await Qi(t,e,s,n);if(J.isNode(i)||J.isPair(i))return Zi(t,n,i),Ye(t,i,s,n);if(typeof i!="symbol"){if(J.isCollection(e)){n=Object.freeze(n.concat(e));for(let r=0;r<e.items.length;++r){let o=await Ye(r,e.items[r],s,n);if(typeof o=="number")r=o-1;else{if(o===ee)return ee;o===ue&&(e.items.splice(r,1),r-=1)}}}else if(J.isPair(e)){n=Object.freeze(n.concat(e));let r=await Ye("key",e.key,s,n);if(r===ee)return ee;r===ue&&(e.key=null);let o=await Ye("value",e.value,s,n);if(o===ee)return ee;o===ue&&(e.value=null)}}return i}function Hi(t){return typeof t=="object"&&(t.Collection||t.Node||t.Value)?Object.assign({Alias:t.Node,Map:t.Node,Scalar:t.Node,Seq:t.Node},t.Value&&{Map:t.Value,Scalar:t.Value,Seq:t.Value},t.Collection&&{Map:t.Collection,Seq:t.Collection},t):t}function Qi(t,e,s,n){if(typeof s=="function")return s(t,e,n);if(J.isMap(e))return s.Map?.(t,e,n);if(J.isSeq(e))return s.Seq?.(t,e,n);if(J.isPair(e))return s.Pair?.(t,e,n);if(J.isScalar(e))return s.Scalar?.(t,e,n);if(J.isAlias(e))return s.Alias?.(t,e,n)}function Zi(t,e,s){let n=e[e.length-1];if(J.isCollection(n))n.items[t]=s;else if(J.isPair(n))t==="key"?n.key=s:n.value=s;else if(J.isDocument(n))n.contents=s;else{let i=J.isAlias(n)?"alias":"scalar";throw new Error(`Cannot replace node with ${i} parent`)}}tn.visit=Vt;tn.visitAsync=Gt});var sn=L(tr=>{"use strict";var er=F(),Ll=lt(),Tl={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Il=t=>t.replace(/[!,[\]{}]/g,e=>Tl[e]),ct=class t{constructor(e,s){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},t.defaultYaml,e),this.tags=Object.assign({},t.defaultTags,s)}clone(){let e=new t(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new t(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:t.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},t.defaultTags);break}return e}add(e,s){this.atNextDocument&&(this.yaml={explicit:t.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},t.defaultTags),this.atNextDocument=!1);let n=e.trim().split(/[ \t]+/),i=n.shift();switch(i){case"%TAG":{if(n.length!==2&&(s(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[r,o]=n;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return s(0,"%YAML directive should contain exactly one part"),!1;let[r]=n;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\d+\.\d+$/.test(r);return s(6,`Unsupported YAML version ${r}`,o),!1}}default:return s(0,`Unknown directive ${i}`,!0),!1}}tagName(e,s){if(e==="!")return"!";if(e[0]!=="!")return s(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(s(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&s("Verbatim tags must end with a >"),o)}let[,n,i]=e.match(/^(.*!)([^!]*)$/s);i||s(`The ${e} tag has no suffix`);let r=this.tags[n];if(r)try{return r+decodeURIComponent(i)}catch(o){return s(String(o)),null}return n==="!"?e:(s(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[s,n]of Object.entries(this.tags))if(e.startsWith(n))return s+Il(e.substring(n.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let s=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),i;if(e&&n.length>0&&er.isNode(e.contents)){let r={};Ll.visit(e.contents,(o,a)=>{er.isNode(a)&&a.tag&&(r[a.tag]=!0)}),i=Object.keys(r)}else i=[];for(let[r,o]of n)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||i.some(a=>a.startsWith(o)))&&s.push(`%TAG ${r} ${o}`);return s.join(`
|
|
4
|
+
`)}};ct.defaultYaml={explicit:!1,version:"1.2"};ct.defaultTags={"!!":"tag:yaml.org,2002:"};tr.Directives=ct});var Jt=L(ut=>{"use strict";var sr=F(),Pl=lt();function Ml(t){if(/[\x00-\x19\s,[\]{}]/.test(t)){let s=`Anchor must not contain whitespace or control characters: ${JSON.stringify(t)}`;throw new Error(s)}return!0}function nr(t){let e=new Set;return Pl.visit(t,{Value(s,n){n.anchor&&e.add(n.anchor)}}),e}function ir(t,e){for(let s=1;;++s){let n=`${t}${s}`;if(!e.has(n))return n}}function Dl(t,e){let s=[],n=new Map,i=null;return{onAnchor:r=>{s.push(r),i??(i=nr(t));let o=ir(e,i);return i.add(o),o},setAnchors:()=>{for(let r of s){let o=n.get(r);if(typeof o=="object"&&o.anchor&&(sr.isScalar(o.node)||sr.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:n}}ut.anchorIsValid=Ml;ut.anchorNames=nr;ut.createNodeAnchors=Dl;ut.findNewAnchor=ir});var nn=L(rr=>{"use strict";function ft(t,e,s,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let i=0,r=n.length;i<r;++i){let o=n[i],a=ft(t,n,String(i),o);a===void 0?delete n[i]:a!==o&&(n[i]=a)}else if(n instanceof Map)for(let i of Array.from(n.keys())){let r=n.get(i),o=ft(t,n,i,r);o===void 0?n.delete(i):o!==r&&n.set(i,o)}else if(n instanceof Set)for(let i of Array.from(n)){let r=ft(t,n,i,i);r===void 0?n.delete(i):r!==i&&(n.delete(i),n.add(r))}else for(let[i,r]of Object.entries(n)){let o=ft(t,n,i,r);o===void 0?delete n[i]:o!==r&&(n[i]=o)}return t.call(e,s,n)}rr.applyReviver=ft});var we=L(ar=>{"use strict";var Wl=F();function or(t,e,s){if(Array.isArray(t))return t.map((n,i)=>or(n,String(i),s));if(t&&typeof t.toJSON=="function"){if(!s||!Wl.hasAnchor(t))return t.toJSON(e,s);let n={aliasCount:0,count:1,res:void 0};s.anchors.set(t,n),s.onCreate=r=>{n.res=r,delete s.onCreate};let i=t.toJSON(e,s);return s.onCreate&&s.onCreate(i),i}return typeof t=="bigint"&&!s?.keep?Number(t):t}ar.toJS=or});var Xt=L(cr=>{"use strict";var _l=nn(),lr=F(),Fl=we(),rn=class{constructor(e){Object.defineProperty(this,lr.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:s,maxAliasCount:n,onAnchor:i,reviver:r}={}){if(!lr.isDocument(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:s===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=Fl.toJS(this,"",o);if(typeof i=="function")for(let{count:l,res:c}of o.anchors.values())i(c,l);return typeof r=="function"?_l.applyReviver(r,{"":a},"",a):a}};cr.NodeBase=rn});var pt=L(ur=>{"use strict";var jl=Jt(),Rl=lt(),ze=F(),Bl=Xt(),Kl=we(),on=class extends Bl.NodeBase{constructor(e){super(ze.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e,s){if(s?.maxAliasCount===0)throw new ReferenceError("Alias resolution is disabled");let n;s?.aliasResolveCache?n=s.aliasResolveCache:(n=[],Rl.visit(e,{Node:(r,o)=>{(ze.isAlias(o)||ze.hasAnchor(o))&&n.push(o)}}),s&&(s.aliasResolveCache=n));let i;for(let r of n){if(r===this)break;r.anchor===this.source&&(i=r)}if(i&&s){let{anchors:r,doc:o,maxAliasCount:a}=s,l=r.get(i);if(l||(Kl.toJS(i,null,s),l=r.get(i)),l?.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(a>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=Ht(o,i,r)),l.count*l.aliasCount>a)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}}return i}toJSON(e,s){if(!s)return{source:this.source};let n=this.resolve(s.doc,s);if(!n){let i=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(i)}return s.anchors.get(n).res}toString(e,s,n){let i=`*${this.source}`;if(e){if(jl.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 Ht(t,e,s){if(ze.isAlias(e)){let n=e.resolve(t),i=s&&n&&s.get(n);return i?i.count*i.aliasCount:0}else if(ze.isCollection(e)){let n=0;for(let i of e.items){let r=Ht(t,i,s);r>n&&(n=r)}return n}else if(ze.isPair(e)){let n=Ht(t,e.key,s),i=Ht(t,e.value,s);return Math.max(n,i)}return 1}ur.Alias=on});var V=L(an=>{"use strict";var Ul=F(),Yl=Xt(),zl=we(),Vl=t=>!t||typeof t!="function"&&typeof t!="object",ke=class extends Yl.NodeBase{constructor(e){super(Ul.SCALAR),this.value=e}toJSON(e,s){return s?.keep?this.value:zl.toJS(this.value,e,s)}toString(){return String(this.value)}};ke.BLOCK_FOLDED="BLOCK_FOLDED";ke.BLOCK_LITERAL="BLOCK_LITERAL";ke.PLAIN="PLAIN";ke.QUOTE_DOUBLE="QUOTE_DOUBLE";ke.QUOTE_SINGLE="QUOTE_SINGLE";an.Scalar=ke;an.isScalarValue=Vl});var dt=L(pr=>{"use strict";var Gl=pt(),Te=F(),fr=V(),Jl="tag:yaml.org,2002:";function Xl(t,e,s){if(e){let n=s.filter(r=>r.tag===e),i=n.find(r=>!r.format)??n[0];if(!i)throw new Error(`Tag ${e} not found`);return i}return s.find(n=>n.identify?.(t)&&!n.format)}function Hl(t,e,s){if(Te.isDocument(t)&&(t=t.contents),Te.isNode(t))return t;if(Te.isPair(t)){let f=s.schema[Te.MAP].createNode?.(s.schema,null,s);return f.items.push(t),f}(t instanceof String||t instanceof Number||t instanceof Boolean||typeof BigInt<"u"&&t instanceof BigInt)&&(t=t.valueOf());let{aliasDuplicateObjects:n,onAnchor:i,onTagObj:r,schema:o,sourceObjects:a}=s,l;if(n&&t&&typeof t=="object"){if(l=a.get(t),l)return l.anchor??(l.anchor=i(t)),new Gl.Alias(l.anchor);l={anchor:null,node:null},a.set(t,l)}e?.startsWith("!!")&&(e=Jl+e.slice(2));let c=Xl(t,e,o.tags);if(!c){if(t&&typeof t.toJSON=="function"&&(t=t.toJSON()),!t||typeof t!="object"){let f=new fr.Scalar(t);return l&&(l.node=f),f}c=t instanceof Map?o[Te.MAP]:Symbol.iterator in Object(t)?o[Te.SEQ]:o[Te.MAP]}r&&(r(c),delete s.onTagObj);let p=c?.createNode?c.createNode(s.schema,t,s):typeof c?.nodeClass?.from=="function"?c.nodeClass.from(s.schema,t,s):new fr.Scalar(t);return e?p.tag=e:c.default||(p.tag=c.tag),l&&(l.node=p),p}pr.createNode=Hl});var Zt=L(Qt=>{"use strict";var Ql=dt(),fe=F(),Zl=Xt();function ln(t,e,s){let n=s;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]=n,n=o}else n=new Map([[r,n]])}return Ql.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:t,sourceObjects:new Map})}var dr=t=>t==null||typeof t=="object"&&!!t[Symbol.iterator]().next().done,cn=class extends Zl.NodeBase{constructor(e,s){super(e),Object.defineProperty(this,"schema",{value:s,configurable:!0,enumerable:!1,writable:!0})}clone(e){let s=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(s.schema=e),s.items=s.items.map(n=>fe.isNode(n)||fe.isPair(n)?n.clone(e):n),this.range&&(s.range=this.range.slice()),s}addIn(e,s){if(dr(e))this.add(s);else{let[n,...i]=e,r=this.get(n,!0);if(fe.isCollection(r))r.addIn(i,s);else if(r===void 0&&this.schema)this.set(n,ln(this.schema,i,s));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}deleteIn(e){let[s,...n]=e;if(n.length===0)return this.delete(s);let i=this.get(s,!0);if(fe.isCollection(i))return i.deleteIn(n);throw new Error(`Expected YAML collection at ${s}. Remaining path: ${n}`)}getIn(e,s){let[n,...i]=e,r=this.get(n,!0);return i.length===0?!s&&fe.isScalar(r)?r.value:r:fe.isCollection(r)?r.getIn(i,s):void 0}hasAllNullValues(e){return this.items.every(s=>{if(!fe.isPair(s))return!1;let n=s.value;return n==null||e&&fe.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[s,...n]=e;if(n.length===0)return this.has(s);let i=this.get(s,!0);return fe.isCollection(i)?i.hasIn(n):!1}setIn(e,s){let[n,...i]=e;if(i.length===0)this.set(n,s);else{let r=this.get(n,!0);if(fe.isCollection(r))r.setIn(i,s);else if(r===void 0&&this.schema)this.set(n,ln(this.schema,i,s));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${i}`)}}};Qt.Collection=cn;Qt.collectionFromPath=ln;Qt.isEmptyPath=dr});var ht=L(es=>{"use strict";var ec=t=>t.replace(/^(?!$)(?: $)?/gm,"#");function un(t,e){return/^\n+$/.test(t)?t.substring(1):e?t.replace(/^(?! *$)/gm,e):t}var tc=(t,e,s)=>t.endsWith(`
|
|
5
|
+
`)?un(s,e):s.includes(`
|
|
6
6
|
`)?`
|
|
7
|
-
`+
|
|
8
|
-
`)s===
|
|
7
|
+
`+un(s,e):(t.endsWith(" ")?"":" ")+s;es.indentComment=un;es.lineComment=tc;es.stringifyComment=ec});var mr=L(mt=>{"use strict";var sc="flow",fn="block",ts="quoted";function nc(t,e,s="flow",{indentAtStart:n,lineWidth:i=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!i||i<0)return t;i<r&&(r=0);let l=Math.max(1+r,1+i-e.length);if(t.length<=l)return t;let c=[],p={},f=i-e.length;typeof n=="number"&&(n>i-Math.max(2,r)?c.push(0):f=i-n);let u,y,$=!1,m=-1,w=-1,h=-1;s===fn&&(m=hr(t,m,e.length),m!==-1&&(f=m+l));for(let g;g=t[m+=1];){if(s===ts&&g==="\\"){switch(w=m,t[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}h=m}if(g===`
|
|
8
|
+
`)s===fn&&(m=hr(t,m,e.length)),f=m+e.length+l,u=void 0;else{if(g===" "&&y&&y!==" "&&y!==`
|
|
9
9
|
`&&y!==" "){let A=t[m+1];A&&A!==" "&&A!==`
|
|
10
|
-
`&&A!==" "&&(u=m)}if(m>=f)if(u)c.push(u),f=u+l,u=void 0;else if(s===
|
|
11
|
-
${e}${t.slice(0,E)}`:(s===
|
|
12
|
-
${e}${t.slice(A+1,E)}`)}return b}function
|
|
13
|
-
`);n=e,i=e+1,r=t[i]}return n}
|
|
14
|
-
`){if(r-o>n)return!0;if(o=r+1,i-o<=n)return!1}return!0}function
|
|
10
|
+
`&&A!==" "&&(u=m)}if(m>=f)if(u)c.push(u),f=u+l,u=void 0;else if(s===ts){for(;y===" "||y===" ";)y=g,g=t[m+=1],$=!0;let A=m>h+1?m-2:w-1;if(p[A])return t;c.push(A),p[A]=!0,f=A+l,u=void 0}else $=!0}y=g}if($&&a&&a(),c.length===0)return t;o&&o();let b=t.slice(0,c[0]);for(let g=0;g<c.length;++g){let A=c[g],E=c[g+1]||t.length;A===0?b=`
|
|
11
|
+
${e}${t.slice(0,E)}`:(s===ts&&p[A]&&(b+=`${t[A]}\\`),b+=`
|
|
12
|
+
${e}${t.slice(A+1,E)}`)}return b}function hr(t,e,s){let n=e,i=e+1,r=t[i];for(;r===" "||r===" ";)if(e<i+s)r=t[++e];else{do r=t[++e];while(r&&r!==`
|
|
13
|
+
`);n=e,i=e+1,r=t[i]}return n}mt.FOLD_BLOCK=fn;mt.FOLD_FLOW=sc;mt.FOLD_QUOTED=ts;mt.foldFlowLines=nc});var yt=L(gr=>{"use strict";var ae=V(),ve=mr(),ns=(t,e)=>({indentAtStart:e?t.indent.length:t.indentAtStart,lineWidth:t.options.lineWidth,minContentWidth:t.options.minContentWidth}),is=t=>/^(%|---|\.\.\.)/m.test(t);function ic(t,e,s){if(!e||e<0)return!1;let n=e-s,i=t.length;if(i<=n)return!1;for(let r=0,o=0;r<i;++r)if(t[r]===`
|
|
14
|
+
`){if(r-o>n)return!0;if(o=r+1,i-o<=n)return!1}return!0}function gt(t,e){let s=JSON.stringify(t);if(e.options.doubleQuotedAsJSON)return s;let{implicitKey:n}=e,i=e.options.doubleQuotedMinMultiLineLength,r=e.indent||(is(t)?" ":""),o="",a=0;for(let l=0,c=s[l];c;c=s[++l])if(c===" "&&s[l+1]==="\\"&&s[l+2]==="n"&&(o+=s.slice(a,l)+"\\ ",l+=1,a=l,c="\\"),c==="\\")switch(s[l+1]){case"u":{o+=s.slice(a,l);let p=s.substr(l+2,4);switch(p){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:p.substr(0,2)==="00"?o+="\\x"+p.substr(2):o+=s.substr(l,6)}l+=5,a=l+1}break;case"n":if(n||s[l+2]==='"'||s.length<i)l+=1;else{for(o+=s.slice(a,l)+`
|
|
15
15
|
|
|
16
16
|
`;s[l+2]==="\\"&&s[l+3]==="n"&&s[l+4]!=='"';)o+=`
|
|
17
|
-
`,l+=2;o+=r,s[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+s.slice(a):s,n?o:
|
|
18
|
-
`)||/[ \t]\n|\n[ \t]/.test(t))return
|
|
19
|
-
${s}`)+"'";return e.implicitKey?n:
|
|
17
|
+
`,l+=2;o+=r,s[l+2]===" "&&(o+="\\"),l+=1,a=l+1}break;default:l+=1}return o=a?o+s.slice(a):s,n?o:ve.foldFlowLines(o,r,ve.FOLD_QUOTED,ns(e,!1))}function pn(t,e){if(e.options.singleQuote===!1||e.implicitKey&&t.includes(`
|
|
18
|
+
`)||/[ \t]\n|\n[ \t]/.test(t))return gt(t,e);let s=e.indent||(is(t)?" ":""),n="'"+t.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
19
|
+
${s}`)+"'";return e.implicitKey?n:ve.foldFlowLines(n,s,ve.FOLD_FLOW,ns(e,!1))}function Ve(t,e){let{singleQuote:s}=e.options,n;if(s===!1)n=gt;else{let i=t.includes('"'),r=t.includes("'");i&&!r?n=pn:r&&!i?n=gt:n=s?pn:gt}return n(t,e)}var dn;try{dn=new RegExp(`(^|(?<!
|
|
20
20
|
))
|
|
21
21
|
+(?!
|
|
22
|
-
|$)`,"g")}catch{
|
|
22
|
+
|$)`,"g")}catch{dn=/\n+(?!\n|$)/g}function ss({comment:t,type:e,value:s},n,i,r){let{blockQuote:o,commentString:a,lineWidth:l}=n.options;if(!o||/\n[\t ]+$/.test(s))return Ve(s,n);let c=n.indent||(n.forceBlockIndent||is(s)?" ":""),p=o==="literal"?!0:o==="folded"||e===ae.Scalar.BLOCK_FOLDED?!1:e===ae.Scalar.BLOCK_LITERAL?!0:!ic(s,l,c.length);if(!s)return p?`|
|
|
23
23
|
`:`>
|
|
24
24
|
`;let f,u;for(u=s.length;u>0;--u){let E=s[u-1];if(E!==`
|
|
25
25
|
`&&E!==" "&&E!==" ")break}let y=s.substring(u),$=y.indexOf(`
|
|
26
26
|
`);$===-1?f="-":s===y||$!==y.length-1?(f="+",r&&r()):f="",y&&(s=s.slice(0,-y.length),y[y.length-1]===`
|
|
27
|
-
`&&(y=y.slice(0,-1)),y=y.replace(
|
|
28
|
-
`)h=w;else break}let b=s.substring(0,h<w?h+1:w);b&&(s=s.substring(b.length),b=b.replace(/\n+/g,`$&${c}`));let A=(m?c?"2":"1":"")+f;if(t&&(A+=" "+a(t.replace(/ ?[\r\n]+/g," ")),i&&i()),!
|
|
29
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),x=!1,
|
|
27
|
+
`&&(y=y.slice(0,-1)),y=y.replace(dn,`$&${c}`));let m=!1,w,h=-1;for(w=0;w<s.length;++w){let E=s[w];if(E===" ")m=!0;else if(E===`
|
|
28
|
+
`)h=w;else break}let b=s.substring(0,h<w?h+1:w);b&&(s=s.substring(b.length),b=b.replace(/\n+/g,`$&${c}`));let A=(m?c?"2":"1":"")+f;if(t&&(A+=" "+a(t.replace(/ ?[\r\n]+/g," ")),i&&i()),!p){let E=s.replace(/\n+/g,`
|
|
29
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${c}`),x=!1,I=ns(n,!0);o!=="folded"&&e!==ae.Scalar.BLOCK_FOLDED&&(I.onOverflow=()=>{x=!0});let k=ve.foldFlowLines(`${b}${E}${y}`,c,ve.FOLD_BLOCK,I);if(!x)return`>${A}
|
|
30
30
|
${c}${k}`}return s=s.replace(/\n+/g,`$&${c}`),`|${A}
|
|
31
|
-
${c}${b}${s}${y}`}function
|
|
32
|
-
`)||
|
|
33
|
-
`)?
|
|
34
|
-
`))return
|
|
35
|
-
${l}`);if(o){let u=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(f),{compat:y,tags:$}=e.doc.schema;if($.some(u)||y?.some(u))return
|
|
36
|
-
${e.indent}${a}`:a}
|
|
37
|
-
${a}:`):(w=`${w}:`,u&&(w+=
|
|
38
|
-
`:"",b){let
|
|
39
|
-
${
|
|
31
|
+
${c}${b}${s}${y}`}function rc(t,e,s,n){let{type:i,value:r}=t,{actualString:o,implicitKey:a,indent:l,indentStep:c,inFlow:p}=e;if(a&&r.includes(`
|
|
32
|
+
`)||p&&/[[\]{},]/.test(r))return Ve(r,e);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(r))return a||p||!r.includes(`
|
|
33
|
+
`)?Ve(r,e):ss(t,e,s,n);if(!a&&!p&&i!==ae.Scalar.PLAIN&&r.includes(`
|
|
34
|
+
`))return ss(t,e,s,n);if(is(r)){if(l==="")return e.forceBlockIndent=!0,ss(t,e,s,n);if(a&&l===c)return Ve(r,e)}let f=r.replace(/\n+/g,`$&
|
|
35
|
+
${l}`);if(o){let u=m=>m.default&&m.tag!=="tag:yaml.org,2002:str"&&m.test?.test(f),{compat:y,tags:$}=e.doc.schema;if($.some(u)||y?.some(u))return Ve(r,e)}return a?f:ve.foldFlowLines(f,l,ve.FOLD_FLOW,ns(e,!1))}function oc(t,e,s,n){let{implicitKey:i,inFlow:r}=e,o=typeof t.value=="string"?t:Object.assign({},t,{value:String(t.value)}),{type:a}=t;a!==ae.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=ae.Scalar.QUOTE_DOUBLE);let l=p=>{switch(p){case ae.Scalar.BLOCK_FOLDED:case ae.Scalar.BLOCK_LITERAL:return i||r?Ve(o.value,e):ss(o,e,s,n);case ae.Scalar.QUOTE_DOUBLE:return gt(o.value,e);case ae.Scalar.QUOTE_SINGLE:return pn(o.value,e);case ae.Scalar.PLAIN:return rc(o,e,s,n);default:return null}},c=l(a);if(c===null){let{defaultKeyType:p,defaultStringType:f}=e.options,u=i&&p||f;if(c=l(u),c===null)throw new Error(`Unsupported default string type ${u}`)}return c}gr.stringifyString=oc});var bt=L(hn=>{"use strict";var ac=Jt(),Se=F(),lc=ht(),cc=yt();function uc(t,e){let s=Object.assign({blockQuote:!0,commentString:lc.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},t.schema.toStringOptions,e),n;switch(s.collectionStyle){case"block":n=!1;break;case"flow":n=!0;break;default:n=null}return{anchors:new Set,doc:t,flowCollectionPadding:s.flowCollectionPadding?" ":"",indent:"",indentStep:typeof s.indent=="number"?" ".repeat(s.indent):" ",inFlow:n,options:s}}function fc(t,e){if(e.tag){let i=t.filter(r=>r.tag===e.tag);if(i.length>0)return i.find(r=>r.format===e.format)??i[0]}let s,n;if(Se.isScalar(e)){n=e.value;let i=t.filter(r=>r.identify?.(n));if(i.length>1){let r=i.filter(o=>o.test);r.length>0&&(i=r)}s=i.find(r=>r.format===e.format)??i.find(r=>!r.format)}else n=e,s=t.find(i=>i.nodeClass&&n instanceof i.nodeClass);if(!s){let i=n?.constructor?.name??(n===null?"null":typeof n);throw new Error(`Tag not resolved for ${i} value`)}return s}function pc(t,e,{anchors:s,doc:n}){if(!n.directives)return"";let i=[],r=(Se.isScalar(t)||Se.isCollection(t))&&t.anchor;r&&ac.anchorIsValid(r)&&(s.add(r),i.push(`&${r}`));let o=t.tag??(e.default?null:e.tag);return o&&i.push(n.directives.tagString(o)),i.join(" ")}function dc(t,e,s,n){if(Se.isPair(t))return t.toString(e,s,n);if(Se.isAlias(t)){if(e.doc.directives)return t.toString(e);if(e.resolvedAliases?.has(t))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(t):e.resolvedAliases=new Set([t]),t=t.resolve(e.doc)}let i,r=Se.isNode(t)?t:e.doc.createNode(t,{onTagObj:l=>i=l});i??(i=fc(e.doc.schema.tags,r));let o=pc(r,i,e);o.length>0&&(e.indentAtStart=(e.indentAtStart??0)+o.length+1);let a=typeof i.stringify=="function"?i.stringify(r,e,s,n):Se.isScalar(r)?cc.stringifyString(r,e,s,n):r.toString(e,s,n);return o?Se.isScalar(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
|
36
|
+
${e.indent}${a}`:a}hn.createStringifyContext=uc;hn.stringify=dc});var kr=L(wr=>{"use strict";var ge=F(),yr=V(),br=bt(),wt=ht();function hc({key:t,value:e},s,n,i){let{allNullValues:r,doc:o,indent:a,indentStep:l,options:{commentString:c,indentSeq:p,simpleKeys:f}}=s,u=ge.isNode(t)&&t.comment||null;if(f){if(u)throw new Error("With simple keys, key nodes cannot have comments");if(ge.isCollection(t)||!ge.isNode(t)&&typeof t=="object"){let I="With simple keys, collection cannot be used as a key value";throw new Error(I)}}let y=!f&&(!t||u&&e==null&&!s.inFlow||ge.isCollection(t)||(ge.isScalar(t)?t.type===yr.Scalar.BLOCK_FOLDED||t.type===yr.Scalar.BLOCK_LITERAL:typeof t=="object"));s=Object.assign({},s,{allNullValues:!1,implicitKey:!y&&(f||!r),indent:a+l});let $=!1,m=!1,w=br.stringify(t,s,()=>$=!0,()=>m=!0);if(!y&&!s.inFlow&&w.length>1024){if(f)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=!0}if(s.inFlow){if(r||e==null)return $&&n&&n(),w===""?"?":y?`? ${w}`:w}else if(r&&!f||e==null&&y)return w=`? ${w}`,u&&!$?w+=wt.lineComment(w,s.indent,c(u)):m&&i&&i(),w;$&&(u=null),y?(u&&(w+=wt.lineComment(w,s.indent,c(u))),w=`? ${w}
|
|
37
|
+
${a}:`):(w=`${w}:`,u&&(w+=wt.lineComment(w,s.indent,c(u))));let h,b,g;ge.isNode(e)?(h=!!e.spaceBefore,b=e.commentBefore,g=e.comment):(h=!1,b=null,g=null,e&&typeof e=="object"&&(e=o.createNode(e))),s.implicitKey=!1,!y&&!u&&ge.isScalar(e)&&(s.indentAtStart=w.length+1),m=!1,!p&&l.length>=2&&!s.inFlow&&!y&&ge.isSeq(e)&&!e.flow&&!e.tag&&!e.anchor&&(s.indent=s.indent.substring(2));let A=!1,E=br.stringify(e,s,()=>A=!0,()=>m=!0),x=" ";if(u||h||b){if(x=h?`
|
|
38
|
+
`:"",b){let I=c(b);x+=`
|
|
39
|
+
${wt.indentComment(I,s.indent)}`}E===""&&!s.inFlow?x===`
|
|
40
40
|
`&&g&&(x=`
|
|
41
41
|
|
|
42
42
|
`):x+=`
|
|
43
|
-
${s.indent}`}else if(!y&&
|
|
44
|
-
`),
|
|
43
|
+
${s.indent}`}else if(!y&&ge.isCollection(e)){let I=E[0],k=E.indexOf(`
|
|
44
|
+
`),P=k!==-1,R=s.inFlow??e.flow??e.items.length===0;if(P||!R){let q=!1;if(P&&(I==="&"||I==="!")){let N=E.indexOf(" ");I==="&"&&N!==-1&&N<k&&E[N+1]==="!"&&(N=E.indexOf(" ",N+1)),(N===-1||k<N)&&(q=!0)}q||(x=`
|
|
45
45
|
${s.indent}`)}}else(E===""||E[0]===`
|
|
46
|
-
`)&&(x="");return w+=x+E,s.inFlow?A&&n&&n():g&&!A?w+=
|
|
46
|
+
`)&&(x="");return w+=x+E,s.inFlow?A&&n&&n():g&&!A?w+=wt.lineComment(w,s.indent,c(g)):m&&i&&i(),w}wr.stringifyPair=hc});var gn=L(mn=>{"use strict";var vr=Ut("process");function mc(t,...e){t==="debug"&&console.log(...e)}function gc(t,e){(t==="debug"||t==="warn")&&(typeof vr.emitWarning=="function"?vr.emitWarning(e):console.warn(e))}mn.debug=mc;mn.warn=gc});var cs=L(ls=>{"use strict";var as=F(),Sr=V(),rs="<<",os={identify:t=>t===rs||typeof t=="symbol"&&t.description===rs,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new Sr.Scalar(Symbol(rs)),{addToJSMap:$r}),stringify:()=>rs},yc=(t,e)=>(os.identify(e)||as.isScalar(e)&&(!e.type||e.type===Sr.Scalar.PLAIN)&&os.identify(e.value))&&t?.doc.schema.tags.some(s=>s.tag===os.tag&&s.default);function $r(t,e,s){let n=Or(t,s);if(as.isSeq(n))for(let i of n.items)yn(t,e,i);else if(Array.isArray(n))for(let i of n)yn(t,e,i);else yn(t,e,n)}function yn(t,e,s){let n=Or(t,s);if(!as.isMap(n))throw new Error("Merge sources must be maps or map aliases");let i=n.toJSON(null,t,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 Or(t,e){return t&&as.isAlias(e)?e.resolve(t.doc,t):e}ls.addMergeToJSMap=$r;ls.isMergeKey=yc;ls.merge=os});var wn=L(Nr=>{"use strict";var bc=gn(),Ar=cs(),wc=bt(),Er=F(),bn=we();function kc(t,e,{key:s,value:n}){if(Er.isNode(s)&&s.addToJSMap)s.addToJSMap(t,e,n);else if(Ar.isMergeKey(t,s))Ar.addMergeToJSMap(t,e,n);else{let i=bn.toJS(s,"",t);if(e instanceof Map)e.set(i,bn.toJS(n,i,t));else if(e instanceof Set)e.add(i);else{let r=vc(s,i,t),o=bn.toJS(n,r,t);r in e?Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0}):e[r]=o}}return e}function vc(t,e,s){if(e===null)return"";if(typeof e!="object")return String(e);if(Er.isNode(t)&&s?.doc){let n=wc.createStringifyContext(s.doc,{});n.anchors=new Set;for(let r of s.anchors.keys())n.anchors.add(r.anchor);n.inFlow=!0,n.inStringifyKey=!0;let i=t.toString(n);if(!s.mapKeyWarned){let r=JSON.stringify(i);r.length>40&&(r=r.substring(0,36)+'..."'),bc.warn(s.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${r}. Set mapAsMap: true to use object keys.`),s.mapKeyWarned=!0}return i}return JSON.stringify(e)}Nr.addPairToJSMap=kc});var $e=L(kn=>{"use strict";var xr=dt(),Sc=kr(),$c=wn(),us=F();function Oc(t,e,s){let n=xr.createNode(t,void 0,s),i=xr.createNode(e,void 0,s);return new fs(n,i)}var fs=class t{constructor(e,s=null){Object.defineProperty(this,us.NODE_TYPE,{value:us.PAIR}),this.key=e,this.value=s}clone(e){let{key:s,value:n}=this;return us.isNode(s)&&(s=s.clone(e)),us.isNode(n)&&(n=n.clone(e)),new t(s,n)}toJSON(e,s){let n=s?.mapAsMap?new Map:{};return $c.addPairToJSMap(s,n,this)}toString(e,s,n){return e?.doc?Sc.stringifyPair(this,e,s,n):JSON.stringify(this)}};kn.Pair=fs;kn.createPair=Oc});var vn=L(Cr=>{"use strict";var Ie=F(),qr=bt(),ps=ht();function Ac(t,e,s){return(e.inFlow??t.flow?Nc:Ec)(t,e,s)}function Ec({comment:t,items:e},s,{blockItemPrefix:n,flowChars:i,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:l,options:{commentString:c}}=s,p=Object.assign({},s,{indent:r,type:null}),f=!1,u=[];for(let $=0;$<e.length;++$){let m=e[$],w=null;if(Ie.isNode(m))!f&&m.spaceBefore&&u.push(""),ds(s,u,m.commentBefore,f),m.comment&&(w=m.comment);else if(Ie.isPair(m)){let b=Ie.isNode(m.key)?m.key:null;b&&(!f&&b.spaceBefore&&u.push(""),ds(s,u,b.commentBefore,f))}f=!1;let h=qr.stringify(m,p,()=>w=null,()=>f=!0);w&&(h+=ps.lineComment(h,r,c(w))),f&&w&&(f=!1),u.push(n+h)}let y;if(u.length===0)y=i.start+i.end;else{y=u[0];for(let $=1;$<u.length;++$){let m=u[$];y+=m?`
|
|
47
47
|
${l}${m}`:`
|
|
48
48
|
`}}return t?(y+=`
|
|
49
|
-
`+
|
|
50
|
-
`)),$<t.length-1?h+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=f.reduce((b,g)=>b+g.length+2,2)+(h.length+2)>e.options.lineWidth)),c&&(h+=",")),w&&(h+=
|
|
49
|
+
`+ps.indentComment(c(t),l),a&&a()):f&&o&&o(),y}function Nc({items:t},e,{flowChars:s,itemIndent:n}){let{indent:i,indentStep:r,flowCollectionPadding:o,options:{commentString:a}}=e;n+=r;let l=Object.assign({},e,{indent:n,inFlow:!0,type:null}),c=!1,p=0,f=[];for(let $=0;$<t.length;++$){let m=t[$],w=null;if(Ie.isNode(m))m.spaceBefore&&f.push(""),ds(e,f,m.commentBefore,!1),m.comment&&(w=m.comment);else if(Ie.isPair(m)){let b=Ie.isNode(m.key)?m.key:null;b&&(b.spaceBefore&&f.push(""),ds(e,f,b.commentBefore,!1),b.comment&&(c=!0));let g=Ie.isNode(m.value)?m.value:null;g?(g.comment&&(w=g.comment),g.commentBefore&&(c=!0)):m.value==null&&b?.comment&&(w=b.comment)}w&&(c=!0);let h=qr.stringify(m,l,()=>w=null);c||(c=f.length>p||h.includes(`
|
|
50
|
+
`)),$<t.length-1?h+=",":e.options.trailingComma&&(e.options.lineWidth>0&&(c||(c=f.reduce((b,g)=>b+g.length+2,2)+(h.length+2)>e.options.lineWidth)),c&&(h+=",")),w&&(h+=ps.lineComment(h,n,a(w))),f.push(h),p=f.length}let{start:u,end:y}=s;if(f.length===0)return u+y;if(!c){let $=f.reduce((m,w)=>m+w.length+2,2);c=e.options.lineWidth>0&&$>e.options.lineWidth}if(c){let $=u;for(let m of f)$+=m?`
|
|
51
51
|
${r}${i}${m}`:`
|
|
52
52
|
`;return`${$}
|
|
53
|
-
${i}${y}`}else return`${u}${o}${f.join(" ")}${o}${y}`}function
|
|
54
|
-
`:" ")}return
|
|
53
|
+
${i}${y}`}else return`${u}${o}${f.join(" ")}${o}${y}`}function ds({indent:t,options:{commentString:e}},s,n,i){if(n&&i&&(n=n.replace(/^\n+/,"")),n){let r=ps.indentComment(e(n),t);s.push(r.trimStart())}}Cr.stringifyCollection=Ac});var Ae=L($n=>{"use strict";var xc=vn(),qc=wn(),Cc=Zt(),Oe=F(),hs=$e(),Lc=V();function kt(t,e){let s=Oe.isScalar(e)?e.value:e;for(let n of t)if(Oe.isPair(n)&&(n.key===e||n.key===s||Oe.isScalar(n.key)&&n.key.value===s))return n}var Sn=class extends Cc.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Oe.MAP,e),this.items=[]}static from(e,s,n){let{keepUndefined:i,replacer:r}=n,o=new this(e),a=(l,c)=>{if(typeof r=="function")c=r.call(s,l,c);else if(Array.isArray(r)&&!r.includes(l))return;(c!==void 0||i)&&o.items.push(hs.createPair(l,c,n))};if(s instanceof Map)for(let[l,c]of s)a(l,c);else if(s&&typeof s=="object")for(let l of Object.keys(s))a(l,s[l]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,s){let n;Oe.isPair(e)?n=e:!e||typeof e!="object"||!("key"in e)?n=new hs.Pair(e,e?.value):n=new hs.Pair(e.key,e.value);let i=kt(this.items,n.key),r=this.schema?.sortMapEntries;if(i){if(!s)throw new Error(`Key ${n.key} already set`);Oe.isScalar(i.value)&&Lc.isScalarValue(n.value)?i.value.value=n.value:i.value=n.value}else if(r){let o=this.items.findIndex(a=>r(n,a)<0);o===-1?this.items.push(n):this.items.splice(o,0,n)}else this.items.push(n)}delete(e){let s=kt(this.items,e);return s?this.items.splice(this.items.indexOf(s),1).length>0:!1}get(e,s){let i=kt(this.items,e)?.value;return(!s&&Oe.isScalar(i)?i.value:i)??void 0}has(e){return!!kt(this.items,e)}set(e,s){this.add(new hs.Pair(e,s),!0)}toJSON(e,s,n){let i=n?new n:s?.mapAsMap?new Map:{};s?.onCreate&&s.onCreate(i);for(let r of this.items)qc.addPairToJSMap(s,i,r);return i}toString(e,s,n){if(!e)return JSON.stringify(this);for(let i of this.items)if(!Oe.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})),xc.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:n,onComment:s})}};$n.YAMLMap=Sn;$n.findPair=kt});var Ge=L(Tr=>{"use strict";var Tc=F(),Lr=Ae(),Ic={collection:"map",default:!0,nodeClass:Lr.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(t,e){return Tc.isMap(t)||e("Expected a mapping for this tag"),t},createNode:(t,e,s)=>Lr.YAMLMap.from(t,e,s)};Tr.map=Ic});var Ee=L(Ir=>{"use strict";var Pc=dt(),Mc=vn(),Dc=Zt(),gs=F(),Wc=V(),_c=we(),On=class extends Dc.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(gs.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let s=ms(e);return typeof s!="number"?!1:this.items.splice(s,1).length>0}get(e,s){let n=ms(e);if(typeof n!="number")return;let i=this.items[n];return!s&&gs.isScalar(i)?i.value:i}has(e){let s=ms(e);return typeof s=="number"&&s<this.items.length}set(e,s){let n=ms(e);if(typeof n!="number")throw new Error(`Expected a valid index, not ${e}.`);let i=this.items[n];gs.isScalar(i)&&Wc.isScalarValue(s)?i.value=s:this.items[n]=s}toJSON(e,s){let n=[];s?.onCreate&&s.onCreate(n);let i=0;for(let r of this.items)n.push(_c.toJS(r,String(i++),s));return n}toString(e,s,n){return e?Mc.stringifyCollection(this,e,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(e.indent||"")+" ",onChompKeep:n,onComment:s}):JSON.stringify(this)}static from(e,s,n){let{replacer:i}=n,r=new this(e);if(s&&Symbol.iterator in Object(s)){let o=0;for(let a of s){if(typeof i=="function"){let l=s instanceof Set?a:String(o++);a=i.call(s,l,a)}r.items.push(Pc.createNode(a,void 0,n))}}return r}};function ms(t){let e=gs.isScalar(t)?t.value:t;return e&&typeof e=="string"&&(e=Number(e)),typeof e=="number"&&Number.isInteger(e)&&e>=0?e:null}Ir.YAMLSeq=On});var Je=L(Mr=>{"use strict";var Fc=F(),Pr=Ee(),jc={collection:"seq",default:!0,nodeClass:Pr.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(t,e){return Fc.isSeq(t)||e("Expected a sequence for this tag"),t},createNode:(t,e,s)=>Pr.YAMLSeq.from(t,e,s)};Mr.seq=jc});var vt=L(Dr=>{"use strict";var Rc=yt(),Bc={identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify(t,e,s,n){return e=Object.assign({actualString:!0},e),Rc.stringifyString(t,e,s,n)}};Dr.string=Bc});var ys=L(Fr=>{"use strict";var Wr=V(),_r={identify:t=>t==null,createNode:()=>new Wr.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new Wr.Scalar(null),stringify:({source:t},e)=>typeof t=="string"&&_r.test.test(t)?t:e.options.nullStr};Fr.nullTag=_r});var An=L(Rr=>{"use strict";var Kc=V(),jr={identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:t=>new Kc.Scalar(t[0]==="t"||t[0]==="T"),stringify({source:t,value:e},s){if(t&&jr.test.test(t)){let n=t[0]==="t"||t[0]==="T";if(e===n)return t}return e?s.options.trueStr:s.options.falseStr}};Rr.boolTag=jr});var Xe=L(Br=>{"use strict";function Uc({format:t,minFractionDigits:e,tag:s,value:n}){if(typeof n=="bigint")return String(n);let i=typeof n=="number"?n:Number(n);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let r=Object.is(n,-0)?"-0":JSON.stringify(n);if(!t&&e&&(!s||s==="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}Br.stringifyNumber=Uc});var Nn=L(bs=>{"use strict";var Yc=V(),En=Xe(),zc={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:En.stringifyNumber},Vc={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():En.stringifyNumber(t)}},Gc={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(t){let e=new Yc.Scalar(parseFloat(t)),s=t.indexOf(".");return s!==-1&&t[t.length-1]==="0"&&(e.minFractionDigits=t.length-s-1),e},stringify:En.stringifyNumber};bs.float=Gc;bs.floatExp=Vc;bs.floatNaN=zc});var qn=L(ks=>{"use strict";var Kr=Xe(),ws=t=>typeof t=="bigint"||Number.isInteger(t),xn=(t,e,s,{intAsBigInt:n})=>n?BigInt(t):parseInt(t.substring(e),s);function Ur(t,e,s){let{value:n}=t;return ws(n)&&n>=0?s+n.toString(e):Kr.stringifyNumber(t)}var Jc={identify:t=>ws(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(t,e,s)=>xn(t,2,8,s),stringify:t=>Ur(t,8,"0o")},Xc={identify:ws,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(t,e,s)=>xn(t,0,10,s),stringify:Kr.stringifyNumber},Hc={identify:t=>ws(t)&&t>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(t,e,s)=>xn(t,2,16,s),stringify:t=>Ur(t,16,"0x")};ks.int=Xc;ks.intHex=Hc;ks.intOct=Jc});var zr=L(Yr=>{"use strict";var Qc=Ge(),Zc=ys(),eu=Je(),tu=vt(),su=An(),Cn=Nn(),Ln=qn(),nu=[Qc.map,eu.seq,tu.string,Zc.nullTag,su.boolTag,Ln.intOct,Ln.int,Ln.intHex,Cn.floatNaN,Cn.floatExp,Cn.float];Yr.schema=nu});var Jr=L(Gr=>{"use strict";var iu=V(),ru=Ge(),ou=Je();function Vr(t){return typeof t=="bigint"||Number.isInteger(t)}var vs=({value:t})=>JSON.stringify(t),au=[{identify:t=>typeof t=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:t=>t,stringify:vs},{identify:t=>t==null,createNode:()=>new iu.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:vs},{identify:t=>typeof t=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:t=>t==="true",stringify:vs},{identify:Vr,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(t,e,{intAsBigInt:s})=>s?BigInt(t):parseInt(t,10),stringify:({value:t})=>Vr(t)?t.toString():JSON.stringify(t)},{identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:t=>parseFloat(t),stringify:vs}],lu={default:!0,tag:"",test:/^/,resolve(t,e){return e(`Unresolved plain scalar ${JSON.stringify(t)}`),t}},cu=[ru.map,ou.seq].concat(au,lu);Gr.schema=cu});var In=L(Xr=>{"use strict";var St=Ut("buffer"),Tn=V(),uu=yt(),fu={identify:t=>t instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(t,e){if(typeof St.Buffer=="function")return St.Buffer.from(t,"base64");if(typeof atob=="function"){let s=atob(t.replace(/[\n\r]/g,"")),n=new Uint8Array(s.length);for(let i=0;i<s.length;++i)n[i]=s.charCodeAt(i);return n}else return e("This environment does not support reading binary tags; either Buffer or atob is required"),t},stringify({comment:t,type:e,value:s},n,i,r){if(!s)return"";let o=s,a;if(typeof St.Buffer=="function")a=o instanceof St.Buffer?o.toString("base64"):St.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=Tn.Scalar.BLOCK_LITERAL),e!==Tn.Scalar.QUOTE_DOUBLE){let l=Math.max(n.options.lineWidth-n.indent.length,n.options.minContentWidth),c=Math.ceil(a.length/l),p=new Array(c);for(let f=0,u=0;f<c;++f,u+=l)p[f]=a.substr(u,l);a=p.join(e===Tn.Scalar.BLOCK_LITERAL?`
|
|
54
|
+
`:" ")}return uu.stringifyString({comment:t,type:e,value:a},n,i,r)}};Xr.binary=fu});var Os=L($s=>{"use strict";var Ss=F(),Pn=$e(),pu=V(),du=Ee();function Hr(t,e){if(Ss.isSeq(t))for(let s=0;s<t.items.length;++s){let n=t.items[s];if(!Ss.isPair(n)){if(Ss.isMap(n)){n.items.length>1&&e("Each pair must have its own sequence indicator");let i=n.items[0]||new Pn.Pair(new pu.Scalar(null));if(n.commentBefore&&(i.key.commentBefore=i.key.commentBefore?`${n.commentBefore}
|
|
55
55
|
${i.key.commentBefore}`:n.commentBefore),n.comment){let r=i.value??i.key;r.comment=r.comment?`${n.comment}
|
|
56
|
-
${r.comment}`:n.comment}n=i}t.items[s]=ks.isPair(n)?n:new Tn.Pair(n)}}else e("Expected a sequence for this tag");return t}function Xr(t,e,s){let{replacer:n}=s,i=new uu.YAMLSeq(t);i.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.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(Tn.createPair(a,l,s))}return i}var fu={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Jr,createNode:Xr};Ss.createPairs=Xr;Ss.pairs=fu;Ss.resolvePairs=Jr});var Mn=q(In=>{"use strict";var Hr=_(),Ln=ge(),St=ve(),du=$e(),Qr=vs(),Le=class t extends du.YAMLSeq{constructor(){super(),this.add=St.YAMLMap.prototype.add.bind(this),this.delete=St.YAMLMap.prototype.delete.bind(this),this.get=St.YAMLMap.prototype.get.bind(this),this.has=St.YAMLMap.prototype.has.bind(this),this.set=St.YAMLMap.prototype.set.bind(this),this.tag=t.tag}toJSON(e,s){if(!s)return super.toJSON(e);let n=new Map;s?.onCreate&&s.onCreate(n);for(let i of this.items){let r,o;if(Hr.isPair(i)?(r=Ln.toJS(i.key,"",s),o=Ln.toJS(i.value,r,s)):r=Ln.toJS(i,"",s),n.has(r))throw new Error("Ordered maps must not include duplicate keys");n.set(r,o)}return n}static from(e,s,n){let i=Qr.createPairs(e,s,n),r=new this;return r.items=i.items,r}};Le.tag="tag:yaml.org,2002:omap";var pu={collection:"seq",identify:t=>t instanceof Map,nodeClass:Le,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let s=Qr.resolvePairs(t,e),n=[];for(let{key:i}of s.items)Hr.isScalar(i)&&(n.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):n.push(i.value));return Object.assign(new Le,s)},createNode:(t,e,s)=>Le.from(t,e,s)};In.YAMLOMap=Le;In.omap=pu});var no=q(Pn=>{"use strict";var Zr=V();function eo({value:t,source:e},s){return e&&(t?to:so).test.test(e)?e:t?s.options.trueStr:s.options.falseStr}var to={identify:t=>t===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new Zr.Scalar(!0),stringify:eo},so={identify:t=>t===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new Zr.Scalar(!1),stringify:eo};Pn.falseTag=so;Pn.trueTag=to});var io=q($s=>{"use strict";var hu=V(),Dn=Ge(),mu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Dn.stringifyNumber},gu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():Dn.stringifyNumber(t)}},yu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){let e=new hu.Scalar(parseFloat(t.replace(/_/g,""))),s=t.indexOf(".");if(s!==-1){let n=t.substring(s+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Dn.stringifyNumber};$s.float=yu;$s.floatExp=gu;$s.floatNaN=mu});var oo=q($t=>{"use strict";var ro=Ge(),vt=t=>typeof t=="bigint"||Number.isInteger(t);function Os(t,e,s,{intAsBigInt:n}){let i=t[0];if((i==="-"||i==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),n){switch(s){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}let o=BigInt(t);return i==="-"?BigInt(-1)*o:o}let r=parseInt(t,s);return i==="-"?-1*r:r}function _n(t,e,s){let{value:n}=t;if(vt(n)){let i=n.toString(e);return n<0?"-"+s+i.substr(1):s+i}return ro.stringifyNumber(t)}var bu={identify:vt,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,s)=>Os(t,2,2,s),stringify:t=>_n(t,2,"0b")},wu={identify:vt,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,s)=>Os(t,1,8,s),stringify:t=>_n(t,8,"0")},ku={identify:vt,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,s)=>Os(t,0,10,s),stringify:ro.stringifyNumber},Su={identify:vt,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,s)=>Os(t,2,16,s),stringify:t=>_n(t,16,"0x")};$t.int=ku;$t.intBin=bu;$t.intHex=Su;$t.intOct=wu});var Fn=q(Wn=>{"use strict";var Ns=_(),As=ke(),Es=ve(),Ie=class t extends Es.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let s;Ns.isPair(e)?s=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?s=new As.Pair(e.key,null):s=new As.Pair(e,null),Es.findPair(this.items,s.key)||this.items.push(s)}get(e,s){let n=Es.findPair(this.items,e);return!s&&Ns.isPair(n)?Ns.isScalar(n.key)?n.key.value:n.key:n}set(e,s){if(typeof s!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof s}`);let n=Es.findPair(this.items,e);n&&!s?this.items.splice(this.items.indexOf(n),1):!n&&s&&this.items.push(new As.Pair(e))}toJSON(e,s){return super.toJSON(e,s,Set)}toString(e,s,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),s,n);throw new Error("Set items must all have null values")}static from(e,s,n){let{replacer:i}=n,r=new this(e);if(s&&Symbol.iterator in Object(s))for(let o of s)typeof i=="function"&&(o=i.call(s,o,o)),r.items.push(As.createPair(o,null,n));return r}};Ie.tag="tag:yaml.org,2002:set";var vu={collection:"map",identify:t=>t instanceof Set,nodeClass:Ie,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,s)=>Ie.from(t,e,s),resolve(t,e){if(Ns.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new Ie,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};Wn.YAMLSet=Ie;Wn.set=vu});var jn=q(xs=>{"use strict";var $u=Ge();function Rn(t,e){let s=t[0],n=s==="-"||s==="+"?t.substring(1):t,i=o=>e?BigInt(o):Number(o),r=n.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return s==="-"?i(-1)*r:r}function ao(t){let{value:e}=t,s=o=>o;if(typeof e=="bigint")s=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return $u.stringifyNumber(t);let n="";e<0&&(n="-",e*=s(-1));let i=s(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))),n+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Ou={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:s})=>Rn(t,s),stringify:ao},Au={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>Rn(t,!1),stringify:ao},lo={identify:t=>t 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(t){let e=t.match(lo.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,s,n,i,r,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(s,n-1,i,r||0,o||0,a||0,l),d=e[8];if(d&&d!=="Z"){let f=Rn(d,!1);Math.abs(f)<30&&(f*=60),c-=6e4*f}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};xs.floatTime=Au;xs.intTime=Ou;xs.timestamp=lo});var fo=q(uo=>{"use strict";var Eu=ze(),Nu=ms(),xu=Ve(),qu=wt(),Cu=Cn(),co=no(),Bn=io(),qs=oo(),Tu=as(),Lu=Mn(),Iu=vs(),Mu=Fn(),Kn=jn(),Pu=[Eu.map,xu.seq,qu.string,Nu.nullTag,co.trueTag,co.falseTag,qs.intBin,qs.intOct,qs.int,qs.intHex,Bn.floatNaN,Bn.floatExp,Bn.float,Cu.binary,Tu.merge,Lu.omap,Iu.pairs,Mu.set,Kn.intTime,Kn.floatTime,Kn.timestamp];uo.schema=Pu});var vo=q(zn=>{"use strict";var go=ze(),Du=ms(),yo=Ve(),_u=wt(),Wu=vn(),Un=On(),Yn=En(),Fu=Ur(),Ru=Vr(),bo=Cn(),Ot=as(),wo=Mn(),ko=vs(),po=fo(),So=Fn(),Cs=jn(),ho=new Map([["core",Fu.schema],["failsafe",[go.map,yo.seq,_u.string]],["json",Ru.schema],["yaml11",po.schema],["yaml-1.1",po.schema]]),mo={binary:bo.binary,bool:Wu.boolTag,float:Un.float,floatExp:Un.floatExp,floatNaN:Un.floatNaN,floatTime:Cs.floatTime,int:Yn.int,intHex:Yn.intHex,intOct:Yn.intOct,intTime:Cs.intTime,map:go.map,merge:Ot.merge,null:Du.nullTag,omap:wo.omap,pairs:ko.pairs,seq:yo.seq,set:So.set,timestamp:Cs.timestamp},ju={"tag:yaml.org,2002:binary":bo.binary,"tag:yaml.org,2002:merge":Ot.merge,"tag:yaml.org,2002:omap":wo.omap,"tag:yaml.org,2002:pairs":ko.pairs,"tag:yaml.org,2002:set":So.set,"tag:yaml.org,2002:timestamp":Cs.timestamp};function Bu(t,e,s){let n=ho.get(e);if(n&&!t)return s&&!n.includes(Ot.merge)?n.concat(Ot.merge):n.slice();let i=n;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from(ho.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(t))for(let r of t)i=i.concat(r);else typeof t=="function"&&(i=t(i.slice()));return s&&(i=i.concat(Ot.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?mo[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(mo).map(d=>JSON.stringify(d)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}zn.coreKnownTags=ju;zn.getTags=Bu});var Jn=q($o=>{"use strict";var Vn=_(),Ku=ze(),Uu=Ve(),Yu=wt(),Ts=vo(),zu=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Gn=class t{constructor({compat:e,customTags:s,merge:n,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Ts.getTags(e,"compat"):e?Ts.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?Ts.coreKnownTags:{},this.tags=Ts.getTags(s,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Vn.MAP,{value:Ku.map}),Object.defineProperty(this,Vn.SCALAR,{value:Yu.string}),Object.defineProperty(this,Vn.SEQ,{value:Uu.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?zu:null}clone(){let e=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};$o.Schema=Gn});var Ao=q(Oo=>{"use strict";var Vu=_(),Xn=gt(),At=dt();function Gu(t,e){let s=[],n=e.directives===!0;if(e.directives!==!1&&t.directives){let l=t.directives.toString(t);l?(s.push(l),n=!0):t.directives.docStart&&(n=!0)}n&&s.push("---");let i=Xn.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){s.length!==1&&s.unshift("");let l=r(t.commentBefore);s.unshift(At.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(Vu.isNode(t.contents)){if(t.contents.spaceBefore&&n&&s.push(""),t.contents.commentBefore){let d=r(t.contents.commentBefore);s.push(At.indentComment(d,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=Xn.stringify(t.contents,i,()=>a=null,l);a&&(c+=At.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&s[s.length-1]==="---"?s[s.length-1]=`--- ${c}`:s.push(c)}else s.push(Xn.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
|
|
57
|
-
`)?(s.push("..."),s.push(
|
|
56
|
+
${r.comment}`:n.comment}n=i}t.items[s]=Ss.isPair(n)?n:new Pn.Pair(n)}}else e("Expected a sequence for this tag");return t}function Qr(t,e,s){let{replacer:n}=s,i=new du.YAMLSeq(t);i.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof n=="function"&&(o=n.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(Pn.createPair(a,l,s))}return i}var hu={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Hr,createNode:Qr};$s.createPairs=Qr;$s.pairs=hu;$s.resolvePairs=Hr});var Wn=L(Dn=>{"use strict";var Zr=F(),Mn=we(),$t=Ae(),mu=Ee(),eo=Os(),Pe=class t extends mu.YAMLSeq{constructor(){super(),this.add=$t.YAMLMap.prototype.add.bind(this),this.delete=$t.YAMLMap.prototype.delete.bind(this),this.get=$t.YAMLMap.prototype.get.bind(this),this.has=$t.YAMLMap.prototype.has.bind(this),this.set=$t.YAMLMap.prototype.set.bind(this),this.tag=t.tag}toJSON(e,s){if(!s)return super.toJSON(e);let n=new Map;s?.onCreate&&s.onCreate(n);for(let i of this.items){let r,o;if(Zr.isPair(i)?(r=Mn.toJS(i.key,"",s),o=Mn.toJS(i.value,r,s)):r=Mn.toJS(i,"",s),n.has(r))throw new Error("Ordered maps must not include duplicate keys");n.set(r,o)}return n}static from(e,s,n){let i=eo.createPairs(e,s,n),r=new this;return r.items=i.items,r}};Pe.tag="tag:yaml.org,2002:omap";var gu={collection:"seq",identify:t=>t instanceof Map,nodeClass:Pe,default:!1,tag:"tag:yaml.org,2002:omap",resolve(t,e){let s=eo.resolvePairs(t,e),n=[];for(let{key:i}of s.items)Zr.isScalar(i)&&(n.includes(i.value)?e(`Ordered maps must not include duplicate keys: ${i.value}`):n.push(i.value));return Object.assign(new Pe,s)},createNode:(t,e,s)=>Pe.from(t,e,s)};Dn.YAMLOMap=Pe;Dn.omap=gu});var ro=L(_n=>{"use strict";var to=V();function so({value:t,source:e},s){return e&&(t?no:io).test.test(e)?e:t?s.options.trueStr:s.options.falseStr}var no={identify:t=>t===!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:so},io={identify:t=>t===!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:so};_n.falseTag=io;_n.trueTag=no});var oo=L(As=>{"use strict";var yu=V(),Fn=Xe(),bu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:t=>t.slice(-3).toLowerCase()==="nan"?NaN:t[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:Fn.stringifyNumber},wu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:t=>parseFloat(t.replace(/_/g,"")),stringify(t){let e=Number(t.value);return isFinite(e)?e.toExponential():Fn.stringifyNumber(t)}},ku={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(t){let e=new yu.Scalar(parseFloat(t.replace(/_/g,""))),s=t.indexOf(".");if(s!==-1){let n=t.substring(s+1).replace(/_/g,"");n[n.length-1]==="0"&&(e.minFractionDigits=n.length)}return e},stringify:Fn.stringifyNumber};As.float=ku;As.floatExp=wu;As.floatNaN=bu});var lo=L(At=>{"use strict";var ao=Xe(),Ot=t=>typeof t=="bigint"||Number.isInteger(t);function Es(t,e,s,{intAsBigInt:n}){let i=t[0];if((i==="-"||i==="+")&&(e+=1),t=t.substring(e).replace(/_/g,""),n){switch(s){case 2:t=`0b${t}`;break;case 8:t=`0o${t}`;break;case 16:t=`0x${t}`;break}let o=BigInt(t);return i==="-"?BigInt(-1)*o:o}let r=parseInt(t,s);return i==="-"?-1*r:r}function jn(t,e,s){let{value:n}=t;if(Ot(n)){let i=n.toString(e);return n<0?"-"+s+i.substr(1):s+i}return ao.stringifyNumber(t)}var vu={identify:Ot,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(t,e,s)=>Es(t,2,2,s),stringify:t=>jn(t,2,"0b")},Su={identify:Ot,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(t,e,s)=>Es(t,1,8,s),stringify:t=>jn(t,8,"0")},$u={identify:Ot,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(t,e,s)=>Es(t,0,10,s),stringify:ao.stringifyNumber},Ou={identify:Ot,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(t,e,s)=>Es(t,2,16,s),stringify:t=>jn(t,16,"0x")};At.int=$u;At.intBin=vu;At.intHex=Ou;At.intOct=Su});var Bn=L(Rn=>{"use strict";var qs=F(),Ns=$e(),xs=Ae(),Me=class t extends xs.YAMLMap{constructor(e){super(e),this.tag=t.tag}add(e){let s;qs.isPair(e)?s=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?s=new Ns.Pair(e.key,null):s=new Ns.Pair(e,null),xs.findPair(this.items,s.key)||this.items.push(s)}get(e,s){let n=xs.findPair(this.items,e);return!s&&qs.isPair(n)?qs.isScalar(n.key)?n.key.value:n.key:n}set(e,s){if(typeof s!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof s}`);let n=xs.findPair(this.items,e);n&&!s?this.items.splice(this.items.indexOf(n),1):!n&&s&&this.items.push(new Ns.Pair(e))}toJSON(e,s){return super.toJSON(e,s,Set)}toString(e,s,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),s,n);throw new Error("Set items must all have null values")}static from(e,s,n){let{replacer:i}=n,r=new this(e);if(s&&Symbol.iterator in Object(s))for(let o of s)typeof i=="function"&&(o=i.call(s,o,o)),r.items.push(Ns.createPair(o,null,n));return r}};Me.tag="tag:yaml.org,2002:set";var Au={collection:"map",identify:t=>t instanceof Set,nodeClass:Me,default:!1,tag:"tag:yaml.org,2002:set",createNode:(t,e,s)=>Me.from(t,e,s),resolve(t,e){if(qs.isMap(t)){if(t.hasAllNullValues(!0))return Object.assign(new Me,t);e("Set items must all have null values")}else e("Expected a mapping for this tag");return t}};Rn.YAMLSet=Me;Rn.set=Au});var Un=L(Cs=>{"use strict";var Eu=Xe();function Kn(t,e){let s=t[0],n=s==="-"||s==="+"?t.substring(1):t,i=o=>e?BigInt(o):Number(o),r=n.replace(/_/g,"").split(":").reduce((o,a)=>o*i(60)+i(a),i(0));return s==="-"?i(-1)*r:r}function co(t){let{value:e}=t,s=o=>o;if(typeof e=="bigint")s=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return Eu.stringifyNumber(t);let n="";e<0&&(n="-",e*=s(-1));let i=s(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))),n+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Nu={identify:t=>typeof t=="bigint"||Number.isInteger(t),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(t,e,{intAsBigInt:s})=>Kn(t,s),stringify:co},xu={identify:t=>typeof t=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:t=>Kn(t,!1),stringify:co},uo={identify:t=>t 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(t){let e=t.match(uo.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,s,n,i,r,o,a]=e.map(Number),l=e[7]?Number((e[7]+"00").substr(1,3)):0,c=Date.UTC(s,n-1,i,r||0,o||0,a||0,l),p=e[8];if(p&&p!=="Z"){let f=Kn(p,!1);Math.abs(f)<30&&(f*=60),c-=6e4*f}return new Date(c)},stringify:({value:t})=>t?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Cs.floatTime=xu;Cs.intTime=Nu;Cs.timestamp=uo});var ho=L(po=>{"use strict";var qu=Ge(),Cu=ys(),Lu=Je(),Tu=vt(),Iu=In(),fo=ro(),Yn=oo(),Ls=lo(),Pu=cs(),Mu=Wn(),Du=Os(),Wu=Bn(),zn=Un(),_u=[qu.map,Lu.seq,Tu.string,Cu.nullTag,fo.trueTag,fo.falseTag,Ls.intBin,Ls.intOct,Ls.int,Ls.intHex,Yn.floatNaN,Yn.floatExp,Yn.float,Iu.binary,Pu.merge,Mu.omap,Du.pairs,Wu.set,zn.intTime,zn.floatTime,zn.timestamp];po.schema=_u});var Oo=L(Jn=>{"use strict";var bo=Ge(),Fu=ys(),wo=Je(),ju=vt(),Ru=An(),Vn=Nn(),Gn=qn(),Bu=zr(),Ku=Jr(),ko=In(),Et=cs(),vo=Wn(),So=Os(),mo=ho(),$o=Bn(),Ts=Un(),go=new Map([["core",Bu.schema],["failsafe",[bo.map,wo.seq,ju.string]],["json",Ku.schema],["yaml11",mo.schema],["yaml-1.1",mo.schema]]),yo={binary:ko.binary,bool:Ru.boolTag,float:Vn.float,floatExp:Vn.floatExp,floatNaN:Vn.floatNaN,floatTime:Ts.floatTime,int:Gn.int,intHex:Gn.intHex,intOct:Gn.intOct,intTime:Ts.intTime,map:bo.map,merge:Et.merge,null:Fu.nullTag,omap:vo.omap,pairs:So.pairs,seq:wo.seq,set:$o.set,timestamp:Ts.timestamp},Uu={"tag:yaml.org,2002:binary":ko.binary,"tag:yaml.org,2002:merge":Et.merge,"tag:yaml.org,2002:omap":vo.omap,"tag:yaml.org,2002:pairs":So.pairs,"tag:yaml.org,2002:set":$o.set,"tag:yaml.org,2002:timestamp":Ts.timestamp};function Yu(t,e,s){let n=go.get(e);if(n&&!t)return s&&!n.includes(Et.merge)?n.concat(Et.merge):n.slice();let i=n;if(!i)if(Array.isArray(t))i=[];else{let r=Array.from(go.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(t))for(let r of t)i=i.concat(r);else typeof t=="function"&&(i=t(i.slice()));return s&&(i=i.concat(Et.merge)),i.reduce((r,o)=>{let a=typeof o=="string"?yo[o]:o;if(!a){let l=JSON.stringify(o),c=Object.keys(yo).map(p=>JSON.stringify(p)).join(", ");throw new Error(`Unknown custom tag ${l}; use one of ${c}`)}return r.includes(a)||r.push(a),r},[])}Jn.coreKnownTags=Uu;Jn.getTags=Yu});var Qn=L(Ao=>{"use strict";var Xn=F(),zu=Ge(),Vu=Je(),Gu=vt(),Is=Oo(),Ju=(t,e)=>t.key<e.key?-1:t.key>e.key?1:0,Hn=class t{constructor({compat:e,customTags:s,merge:n,resolveKnownTags:i,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(e)?Is.getTags(e,"compat"):e?Is.getTags(null,e):null,this.name=typeof r=="string"&&r||"core",this.knownTags=i?Is.coreKnownTags:{},this.tags=Is.getTags(s,this.name,n),this.toStringOptions=a??null,Object.defineProperty(this,Xn.MAP,{value:zu.map}),Object.defineProperty(this,Xn.SCALAR,{value:Gu.string}),Object.defineProperty(this,Xn.SEQ,{value:Vu.seq}),this.sortMapEntries=typeof o=="function"?o:o===!0?Ju:null}clone(){let e=Object.create(t.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};Ao.Schema=Hn});var No=L(Eo=>{"use strict";var Xu=F(),Zn=bt(),Nt=ht();function Hu(t,e){let s=[],n=e.directives===!0;if(e.directives!==!1&&t.directives){let l=t.directives.toString(t);l?(s.push(l),n=!0):t.directives.docStart&&(n=!0)}n&&s.push("---");let i=Zn.createStringifyContext(t,e),{commentString:r}=i.options;if(t.commentBefore){s.length!==1&&s.unshift("");let l=r(t.commentBefore);s.unshift(Nt.indentComment(l,""))}let o=!1,a=null;if(t.contents){if(Xu.isNode(t.contents)){if(t.contents.spaceBefore&&n&&s.push(""),t.contents.commentBefore){let p=r(t.contents.commentBefore);s.push(Nt.indentComment(p,""))}i.forceBlockIndent=!!t.comment,a=t.contents.comment}let l=a?void 0:()=>o=!0,c=Zn.stringify(t.contents,i,()=>a=null,l);a&&(c+=Nt.lineComment(c,"",r(a))),(c[0]==="|"||c[0]===">")&&s[s.length-1]==="---"?s[s.length-1]=`--- ${c}`:s.push(c)}else s.push(Zn.stringify(t.contents,i));if(t.directives?.docEnd)if(t.comment){let l=r(t.comment);l.includes(`
|
|
57
|
+
`)?(s.push("..."),s.push(Nt.indentComment(l,""))):s.push(`... ${l}`)}else s.push("...");else{let l=t.comment;l&&o&&(l=l.replace(/^\n+/,"")),l&&((!o||a)&&s[s.length-1]!==""&&s.push(""),s.push(Nt.indentComment(r(l),"")))}return s.join(`
|
|
58
58
|
`)+`
|
|
59
|
-
`}
|
|
59
|
+
`}Eo.stringifyDocument=Hu});var xt=L(xo=>{"use strict";var Qu=pt(),He=Zt(),re=F(),Zu=$e(),ef=we(),tf=Qn(),sf=No(),ei=Jt(),nf=nn(),rf=dt(),ti=sn(),si=class t{constructor(e,s,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,re.NODE_TYPE,{value:re.DOC});let i=null;typeof s=="function"||Array.isArray(s)?i=s:n===void 0&&s&&(n=s,s=void 0);let r=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},n);this.options=r;let{version:o}=r;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new ti.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,i,n)}clone(){let e=Object.create(t.prototype,{[re.NODE_TYPE]:{value:re.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=re.isNode(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){Qe(this.contents)&&this.contents.add(e)}addIn(e,s){Qe(this.contents)&&this.contents.addIn(e,s)}createAlias(e,s){if(!e.anchor){let n=ei.anchorNames(this);e.anchor=!s||n.has(s)?ei.findNewAnchor(s||"a",n):s}return new Qu.Alias(e.anchor)}createNode(e,s,n){let i;if(typeof s=="function")e=s.call({"":e},"",e),i=s;else if(Array.isArray(s)){let w=b=>typeof b=="number"||b instanceof String||b instanceof Number,h=s.filter(w).map(String);h.length>0&&(s=s.concat(h)),i=s}else n===void 0&&s&&(n=s,s=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:a,keepUndefined:l,onTagObj:c,tag:p}=n??{},{onAnchor:f,setAnchors:u,sourceObjects:y}=ei.createNodeAnchors(this,o||"a"),$={aliasDuplicateObjects:r??!0,keepUndefined:l??!1,onAnchor:f,onTagObj:c,replacer:i,schema:this.schema,sourceObjects:y},m=rf.createNode(e,p,$);return a&&re.isCollection(m)&&(m.flow=!0),u(),m}createPair(e,s,n={}){let i=this.createNode(e,null,n),r=this.createNode(s,null,n);return new Zu.Pair(i,r)}delete(e){return Qe(this.contents)?this.contents.delete(e):!1}deleteIn(e){return He.isEmptyPath(e)?this.contents==null?!1:(this.contents=null,!0):Qe(this.contents)?this.contents.deleteIn(e):!1}get(e,s){return re.isCollection(this.contents)?this.contents.get(e,s):void 0}getIn(e,s){return He.isEmptyPath(e)?!s&&re.isScalar(this.contents)?this.contents.value:this.contents:re.isCollection(this.contents)?this.contents.getIn(e,s):void 0}has(e){return re.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return He.isEmptyPath(e)?this.contents!==void 0:re.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,s){this.contents==null?this.contents=He.collectionFromPath(this.schema,[e],s):Qe(this.contents)&&this.contents.set(e,s)}setIn(e,s){He.isEmptyPath(e)?this.contents=s:this.contents==null?this.contents=He.collectionFromPath(this.schema,Array.from(e),s):Qe(this.contents)&&this.contents.setIn(e,s)}setSchema(e,s={}){typeof e=="number"&&(e=String(e));let n;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new ti.Directives({version:"1.1"}),n={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new ti.Directives({version:e}),n={resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,n=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(s.schema instanceof Object)this.schema=s.schema;else if(n)this.schema=new tf.Schema(Object.assign(n,s));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:s,mapAsMap:n,maxAliasCount:i,onAnchor:r,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=ef.toJS(this.contents,s??"",a);if(typeof r=="function")for(let{count:c,res:p}of a.anchors.values())r(p,c);return typeof o=="function"?nf.applyReviver(o,{"":l},"",l):l}toJSON(e,s){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:s})}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 s=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${s}`)}return sf.stringifyDocument(this,e)}};function Qe(t){if(re.isCollection(t))return!0;throw new Error("Expected a YAML collection as document contents")}xo.Document=si});var Lt=L(Ct=>{"use strict";var qt=class extends Error{constructor(e,s,n,i){super(),this.name=e,this.code=n,this.message=i,this.pos=s}},ni=class extends qt{constructor(e,s,n){super("YAMLParseError",e,s,n)}},ii=class extends qt{constructor(e,s,n){super("YAMLWarning",e,s,n)}},of=(t,e)=>s=>{if(s.pos[0]===-1)return;s.linePos=s.pos.map(a=>e.linePos(a));let{line:n,col:i}=s.linePos[0];s.message+=` at line ${n}, column ${i}`;let r=i-1,o=t.substring(e.lineStarts[n-1],e.lineStarts[n]).replace(/[\n\r]+$/,"");if(r>=60&&o.length>80){let a=Math.min(r-39,o.length-79);o="\u2026"+o.substring(a),r-=a-1}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),n>1&&/^ *$/.test(o.substring(0,r))){let a=t.substring(e.lineStarts[n-2],e.lineStarts[n-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
|
60
60
|
`),o=a+o}if(/[^ ]/.test(o)){let a=1,l=s.linePos[1];l?.line===n&&l.col>i&&(a=Math.max(1,Math.min(l.col-i,80-r)));let c=" ".repeat(r)+"^".repeat(a);s.message+=`:
|
|
61
61
|
|
|
62
62
|
${o}
|
|
63
63
|
${c}
|
|
64
|
-
`}};
|
|
65
|
-
`))return!0;if(t.end){for(let e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of t.items){for(let s of e.start)if(s.type==="newline")return!0;if(e.sep){for(let s of e.sep)if(s.type==="newline")return!0}if(
|
|
66
|
-
`+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||
|
|
67
|
-
`+g.comment:b.comment=g.comment);let A=new
|
|
68
|
-
`+x.comment:c.comment=x.comment),f=x.end;continue}!o&&s.options.strict&&
|
|
69
|
-
`+
|
|
70
|
-
`+
|
|
71
|
-
`+w.comment:c.comment=w.comment),c.range=[n.offset,m,w.offset]}else c.range=[n.offset,m,m];return c}
|
|
72
|
-
`.repeat(Math.max(1,o.length-1)):"",w=n+i.length;return e.source&&(w+=e.source.length),{value:m,type:r,comment:i.comment,range:[n,w,w]}}let l=e.indent+i.indent,c=e.offset+i.length,
|
|
73
|
-
`;for(let m=
|
|
64
|
+
`}};Ct.YAMLError=qt;Ct.YAMLParseError=ni;Ct.YAMLWarning=ii;Ct.prettifyError=of});var Tt=L(qo=>{"use strict";function af(t,{flow:e,indicator:s,next:n,offset:i,onError:r,parentIndent:o,startOnNewline:a}){let l=!1,c=a,p=a,f="",u="",y=!1,$=!1,m=null,w=null,h=null,b=null,g=null,A=null,E=null;for(let k of t)switch($&&(k.type!=="space"&&k.type!=="newline"&&k.type!=="comma"&&r(k.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),$=!1),m&&(c&&k.type!=="comment"&&k.type!=="newline"&&r(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),m=null),k.type){case"space":!e&&(s!=="doc-start"||n?.type!=="flow-collection")&&k.source.includes(" ")&&(m=k),p=!0;break;case"comment":{p||r(k,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let P=k.source.substring(1)||" ";f?f+=u+P:f=P,u="",c=!1;break}case"newline":c?f?f+=k.source:(!A||s!=="seq-item-ind")&&(l=!0):u+=k.source,c=!0,y=!0,(w||h)&&(b=k),p=!0;break;case"anchor":w&&r(k,"MULTIPLE_ANCHORS","A node can have at most one anchor"),k.source.endsWith(":")&&r(k.offset+k.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),w=k,E??(E=k.offset),c=!1,p=!1,$=!0;break;case"tag":{h&&r(k,"MULTIPLE_TAGS","A node can have at most one tag"),h=k,E??(E=k.offset),c=!1,p=!1,$=!0;break}case s:(w||h)&&r(k,"BAD_PROP_ORDER",`Anchors and tags must be after the ${k.source} indicator`),A&&r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.source} in ${e??"collection"}`),A=k,c=s==="seq-item-ind"||s==="explicit-key-ind",p=!1;break;case"comma":if(e){g&&r(k,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),g=k,c=!1,p=!1;break}default:r(k,"UNEXPECTED_TOKEN",`Unexpected ${k.type} token`),c=!1,p=!1}let x=t[t.length-1],I=x?x.offset+x.source.length:i;return $&&n&&n.type!=="space"&&n.type!=="newline"&&n.type!=="comma"&&(n.type!=="scalar"||n.source!=="")&&r(n.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),m&&(c&&m.indent<=o||n?.type==="block-map"||n?.type==="block-seq")&&r(m,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:g,found:A,spaceBefore:l,comment:f,hasNewline:y,anchor:w,tag:h,newlineAfterProp:b,end:I,start:E??I}}qo.resolveProps=af});var Ps=L(Co=>{"use strict";function ri(t){if(!t)return null;switch(t.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(t.source.includes(`
|
|
65
|
+
`))return!0;if(t.end){for(let e of t.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of t.items){for(let s of e.start)if(s.type==="newline")return!0;if(e.sep){for(let s of e.sep)if(s.type==="newline")return!0}if(ri(e.key)||ri(e.value))return!0}return!1;default:return!0}}Co.containsNewline=ri});var oi=L(Lo=>{"use strict";var lf=Ps();function cf(t,e,s){if(e?.type==="flow-collection"){let n=e.end[0];n.indent===t&&(n.source==="]"||n.source==="}")&&lf.containsNewline(e)&&s(n,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}Lo.flowIndentCheck=cf});var ai=L(Io=>{"use strict";var To=F();function uf(t,e,s){let{uniqueKeys:n}=t.options;if(n===!1)return!1;let i=typeof n=="function"?n:(r,o)=>r===o||To.isScalar(r)&&To.isScalar(o)&&r.value===o.value;return e.some(r=>i(r.key,s))}Io.mapIncludes=uf});var Fo=L(_o=>{"use strict";var Po=$e(),ff=Ae(),Mo=Tt(),pf=Ps(),Do=oi(),df=ai(),Wo="All mapping items must start at the same column";function hf({composeNode:t,composeEmptyNode:e},s,n,i,r){let o=r?.nodeClass??ff.YAMLMap,a=new o(s.schema);s.atRoot&&(s.atRoot=!1);let l=n.offset,c=null;for(let p of n.items){let{start:f,key:u,sep:y,value:$}=p,m=Mo.resolveProps(f,{indicator:"explicit-key-ind",next:u??y?.[0],offset:l,onError:i,parentIndent:n.indent,startOnNewline:!0}),w=!m.found;if(w){if(u&&(u.type==="block-seq"?i(l,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in u&&u.indent!==n.indent&&i(l,"BAD_INDENT",Wo)),!m.anchor&&!m.tag&&!y){c=m.end,m.comment&&(a.comment?a.comment+=`
|
|
66
|
+
`+m.comment:a.comment=m.comment);continue}(m.newlineAfterProp||pf.containsNewline(u))&&i(u??f[f.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else m.found?.indent!==n.indent&&i(l,"BAD_INDENT",Wo);s.atKey=!0;let h=m.end,b=u?t(s,u,m,i):e(s,h,f,null,m,i);s.schema.compat&&Do.flowIndentCheck(n.indent,u,i),s.atKey=!1,df.mapIncludes(s,a.items,b)&&i(h,"DUPLICATE_KEY","Map keys must be unique");let g=Mo.resolveProps(y??[],{indicator:"map-value-ind",next:$,offset:b.range[2],onError:i,parentIndent:n.indent,startOnNewline:!u||u.type==="block-scalar"});if(l=g.end,g.found){w&&($?.type==="block-map"&&!g.hasNewline&&i(l,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),s.options.strict&&m.start<g.found.offset-1024&&i(b.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let A=$?t(s,$,g,i):e(s,l,y,null,g,i);s.schema.compat&&Do.flowIndentCheck(n.indent,$,i),l=A.range[2];let E=new Po.Pair(b,A);s.options.keepSourceTokens&&(E.srcToken=p),a.items.push(E)}else{w&&i(b.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),g.comment&&(b.comment?b.comment+=`
|
|
67
|
+
`+g.comment:b.comment=g.comment);let A=new Po.Pair(b);s.options.keepSourceTokens&&(A.srcToken=p),a.items.push(A)}}return c&&c<l&&i(c,"IMPOSSIBLE","Map comment with trailing content"),a.range=[n.offset,l,c??l],a}_o.resolveBlockMap=hf});var Ro=L(jo=>{"use strict";var mf=Ee(),gf=Tt(),yf=oi();function bf({composeNode:t,composeEmptyNode:e},s,n,i,r){let o=r?.nodeClass??mf.YAMLSeq,a=new o(s.schema);s.atRoot&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let l=n.offset,c=null;for(let{start:p,value:f}of n.items){let u=gf.resolveProps(p,{indicator:"seq-item-ind",next:f,offset:l,onError:i,parentIndent:n.indent,startOnNewline:!0});if(!u.found)if(u.anchor||u.tag||f)f?.type==="block-seq"?i(u.end,"BAD_INDENT","All sequence items must start at the same column"):i(l,"MISSING_CHAR","Sequence item without - indicator");else{c=u.end,u.comment&&(a.comment=u.comment);continue}let y=f?t(s,f,u,i):e(s,u.end,p,null,u,i);s.schema.compat&&yf.flowIndentCheck(n.indent,f,i),l=y.range[2],a.items.push(y)}return a.range=[n.offset,l,c??l],a}jo.resolveBlockSeq=bf});var Ze=L(Bo=>{"use strict";function wf(t,e,s,n){let i="";if(t){let r=!1,o="";for(let a of t){let{source:l,type:c}=a;switch(c){case"space":r=!0;break;case"comment":{s&&!r&&n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let p=l.substring(1)||" ";i?i+=o+p:i=p,o="";break}case"newline":i&&(o+=l),r=!0;break;default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${c} at node end`)}e+=l.length}}return{comment:i,offset:e}}Bo.resolveEnd=wf});var zo=L(Yo=>{"use strict";var kf=F(),vf=$e(),Ko=Ae(),Sf=Ee(),$f=Ze(),Uo=Tt(),Of=Ps(),Af=ai(),li="Block collections are not allowed within flow collections",ci=t=>t&&(t.type==="block-map"||t.type==="block-seq");function Ef({composeNode:t,composeEmptyNode:e},s,n,i,r){let o=n.start.source==="{",a=o?"flow map":"flow sequence",l=r?.nodeClass??(o?Ko.YAMLMap:Sf.YAMLSeq),c=new l(s.schema);c.flow=!0;let p=s.atRoot;p&&(s.atRoot=!1),s.atKey&&(s.atKey=!1);let f=n.offset+n.start.source.length;for(let w=0;w<n.items.length;++w){let h=n.items[w],{start:b,key:g,sep:A,value:E}=h,x=Uo.resolveProps(b,{flow:a,indicator:"explicit-key-ind",next:g??A?.[0],offset:f,onError:i,parentIndent:n.indent,startOnNewline:!1});if(!x.found){if(!x.anchor&&!x.tag&&!A&&!E){w===0&&x.comma?i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):w<n.items.length-1&&i(x.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),x.comment&&(c.comment?c.comment+=`
|
|
68
|
+
`+x.comment:c.comment=x.comment),f=x.end;continue}!o&&s.options.strict&&Of.containsNewline(g)&&i(g,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(w===0)x.comma&&i(x.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(x.comma||i(x.start,"MISSING_CHAR",`Missing , between ${a} items`),x.comment){let I="";e:for(let k of b)switch(k.type){case"comma":case"space":break;case"comment":I=k.source.substring(1);break e;default:break e}if(I){let k=c.items[c.items.length-1];kf.isPair(k)&&(k=k.value??k.key),k.comment?k.comment+=`
|
|
69
|
+
`+I:k.comment=I,x.comment=x.comment.substring(I.length+1)}}if(!o&&!A&&!x.found){let I=E?t(s,E,x,i):e(s,x.end,A,null,x,i);c.items.push(I),f=I.range[2],ci(E)&&i(I.range,"BLOCK_IN_FLOW",li)}else{s.atKey=!0;let I=x.end,k=g?t(s,g,x,i):e(s,I,b,null,x,i);ci(g)&&i(k.range,"BLOCK_IN_FLOW",li),s.atKey=!1;let P=Uo.resolveProps(A??[],{flow:a,indicator:"map-value-ind",next:E,offset:k.range[2],onError:i,parentIndent:n.indent,startOnNewline:!1});if(P.found){if(!o&&!x.found&&s.options.strict){if(A)for(let N of A){if(N===P.found)break;if(N.type==="newline"){i(N,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}x.start<P.found.offset-1024&&i(P.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else E&&("source"in E&&E.source?.[0]===":"?i(E,"MISSING_CHAR",`Missing space after : in ${a}`):i(P.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let R=E?t(s,E,P,i):P.found?e(s,P.end,A,null,P,i):null;R?ci(E)&&i(R.range,"BLOCK_IN_FLOW",li):P.comment&&(k.comment?k.comment+=`
|
|
70
|
+
`+P.comment:k.comment=P.comment);let q=new vf.Pair(k,R);if(s.options.keepSourceTokens&&(q.srcToken=h),o){let N=c;Af.mapIncludes(s,N.items,k)&&i(I,"DUPLICATE_KEY","Map keys must be unique"),N.items.push(q)}else{let N=new Ko.YAMLMap(s.schema);N.flow=!0,N.items.push(q);let d=(R??k).range;N.range=[k.range[0],d[1],d[2]],c.items.push(N)}f=R?R.range[2]:P.end}}let u=o?"}":"]",[y,...$]=n.end,m=f;if(y?.source===u)m=y.offset+y.source.length;else{let w=a[0].toUpperCase()+a.substring(1),h=p?`${w} must end with a ${u}`:`${w} in block collection must be sufficiently indented and end with a ${u}`;i(f,p?"MISSING_CHAR":"BAD_INDENT",h),y&&y.source.length!==1&&$.unshift(y)}if($.length>0){let w=$f.resolveEnd($,m,s.options.strict,i);w.comment&&(c.comment?c.comment+=`
|
|
71
|
+
`+w.comment:c.comment=w.comment),c.range=[n.offset,m,w.offset]}else c.range=[n.offset,m,m];return c}Yo.resolveFlowCollection=Ef});var Go=L(Vo=>{"use strict";var Nf=F(),xf=V(),qf=Ae(),Cf=Ee(),Lf=Fo(),Tf=Ro(),If=zo();function ui(t,e,s,n,i,r){let o=s.type==="block-map"?Lf.resolveBlockMap(t,e,s,n,r):s.type==="block-seq"?Tf.resolveBlockSeq(t,e,s,n,r):If.resolveFlowCollection(t,e,s,n,r),a=o.constructor;return i==="!"||i===a.tagName?(o.tag=a.tagName,o):(i&&(o.tag=i),o)}function Pf(t,e,s,n,i){let r=n.tag,o=r?e.directives.tagName(r.source,u=>i(r,"TAG_RESOLVE_FAILED",u)):null;if(s.type==="block-seq"){let{anchor:u,newlineAfterProp:y}=n,$=u&&r?u.offset>r.offset?u:r:u??r;$&&(!y||y.offset<$.offset)&&i($,"MISSING_CHAR","Missing newline after block sequence props")}let a=s.type==="block-map"?"map":s.type==="block-seq"?"seq":s.start.source==="{"?"map":"seq";if(!r||!o||o==="!"||o===qf.YAMLMap.tagName&&a==="map"||o===Cf.YAMLSeq.tagName&&a==="seq")return ui(t,e,s,i,o);let l=e.schema.tags.find(u=>u.tag===o&&u.collection===a);if(!l){let u=e.schema.knownTags[o];if(u?.collection===a)e.schema.tags.push(Object.assign({},u,{default:!1})),l=u;else return u?i(r,"BAD_COLLECTION_TYPE",`${u.tag} used for ${a} collection, but expects ${u.collection??"scalar"}`,!0):i(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,!0),ui(t,e,s,i,o)}let c=ui(t,e,s,i,o,l),p=l.resolve?.(c,u=>i(r,"TAG_RESOLVE_FAILED",u),e.options)??c,f=Nf.isNode(p)?p:new xf.Scalar(p);return f.range=c.range,f.tag=o,l?.format&&(f.format=l.format),f}Vo.composeCollection=Pf});var pi=L(Jo=>{"use strict";var fi=V();function Mf(t,e,s){let n=e.offset,i=Df(e,t.options.strict,s);if(!i)return{value:"",type:null,comment:"",range:[n,n,n]};let r=i.mode===">"?fi.Scalar.BLOCK_FOLDED:fi.Scalar.BLOCK_LITERAL,o=e.source?Wf(e.source):[],a=o.length;for(let m=o.length-1;m>=0;--m){let w=o[m][1];if(w===""||w==="\r")a=m;else break}if(a===0){let m=i.chomp==="+"&&o.length>0?`
|
|
72
|
+
`.repeat(Math.max(1,o.length-1)):"",w=n+i.length;return e.source&&(w+=e.source.length),{value:m,type:r,comment:i.comment,range:[n,w,w]}}let l=e.indent+i.indent,c=e.offset+i.length,p=0;for(let m=0;m<a;++m){let[w,h]=o[m];if(h===""||h==="\r")i.indent===0&&w.length>l&&(l=w.length);else{w.length<l&&s(c+w.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),i.indent===0&&(l=w.length),p=m,l===0&&!t.atRoot&&s(c,"BAD_INDENT","Block scalar values in collections must be indented");break}c+=w.length+h.length+1}for(let m=o.length-1;m>=a;--m)o[m][0].length>l&&(a=m+1);let f="",u="",y=!1;for(let m=0;m<p;++m)f+=o[m][0].slice(l)+`
|
|
73
|
+
`;for(let m=p;m<a;++m){let[w,h]=o[m];c+=w.length+h.length+1;let b=h[h.length-1]==="\r";if(b&&(h=h.slice(0,-1)),h&&w.length<l){let A=`Block scalar lines must not be less indented than their ${i.indent?"explicit indentation indicator":"first line"}`;s(c-h.length-(b?2:1),"BAD_INDENT",A),w=""}r===fi.Scalar.BLOCK_LITERAL?(f+=u+w.slice(l)+h,u=`
|
|
74
74
|
`):w.length>l||h[0]===" "?(u===" "?u=`
|
|
75
75
|
`:!y&&u===`
|
|
76
76
|
`&&(u=`
|
|
@@ -83,74 +83,74 @@ ${c}
|
|
|
83
83
|
`+o[m][0].slice(l);f[f.length-1]!==`
|
|
84
84
|
`&&(f+=`
|
|
85
85
|
`);break;default:f+=`
|
|
86
|
-
`}let $=n+i.length+e.source.length;return{value:f,type:r,comment:i.comment,range:[n,$,$]}}function
|
|
86
|
+
`}let $=n+i.length+e.source.length;return{value:f,type:r,comment:i.comment,range:[n,$,$]}}function Df({offset:t,props:e},s,n){if(e[0].type!=="block-scalar-header")return n(e[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:i}=e[0],r=i[0],o=0,a="",l=-1;for(let u=1;u<i.length;++u){let y=i[u];if(!a&&(y==="-"||y==="+"))a=y;else{let $=Number(y);!o&&$?o=$:l===-1&&(l=t+u)}}l!==-1&&n(l,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${i}`);let c=!1,p="",f=i.length;for(let u=1;u<e.length;++u){let y=e[u];switch(y.type){case"space":c=!0;case"newline":f+=y.source.length;break;case"comment":s&&!c&&n(y,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),f+=y.source.length,p=y.source.substring(1);break;case"error":n(y,"UNEXPECTED_TOKEN",y.message),f+=y.source.length;break;default:{let $=`Unexpected token in block scalar header: ${y.type}`;n(y,"UNEXPECTED_TOKEN",$);let m=y.source;m&&typeof m=="string"&&(f+=m.length)}}}return{mode:r,indent:o,chomp:a,comment:p,length:f}}function Wf(t){let e=t.split(/\n( *)/),s=e[0],n=s.match(/^( *)/),r=[n?.[1]?[n[1],s.slice(n[1].length)]:["",s]];for(let o=1;o<e.length;o+=2)r.push([e[o],e[o+1]]);return r}Jo.resolveBlockScalar=Mf});var hi=L(Ho=>{"use strict";var di=V(),_f=Ze();function Ff(t,e,s){let{offset:n,type:i,source:r,end:o}=t,a,l,c=(u,y,$)=>s(n+u,y,$);switch(i){case"scalar":a=di.Scalar.PLAIN,l=jf(r,c);break;case"single-quoted-scalar":a=di.Scalar.QUOTE_SINGLE,l=Rf(r,c);break;case"double-quoted-scalar":a=di.Scalar.QUOTE_DOUBLE,l=Bf(r,c);break;default:return s(t,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${i}`),{value:"",type:null,comment:"",range:[n,n+r.length,n+r.length]}}let p=n+r.length,f=_f.resolveEnd(o,p,e,s);return{value:l,type:a,comment:f.comment,range:[n,p,f.offset]}}function jf(t,e){let s="";switch(t[0]){case" ":s="a tab character";break;case",":s="flow indicator character ,";break;case"%":s="directive indicator character %";break;case"|":case">":{s=`block scalar indicator ${t[0]}`;break}case"@":case"`":{s=`reserved character ${t[0]}`;break}}return s&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${s}`),Xo(t)}function Rf(t,e){return(t[t.length-1]!=="'"||t.length===1)&&e(t.length,"MISSING_CHAR","Missing closing 'quote"),Xo(t.slice(1,-1)).replace(/''/g,"'")}function Xo(t){let e=/(.*?)\r?\n/sy,s=e.exec(t);if(!s)return t;let n,i;try{n=new RegExp("(?<![ ])[ ]+$"),i=new RegExp("^[ ]+|(?<![ ])[ ]+$","g")}catch{n=/[ \t]+$/,i=/^[ \t]+|[ \t]+$/g}let r=s[1].replace(n,""),o=" ",a=e.lastIndex;for(;s=e.exec(t);){let c=s[1].replace(i,"");c===""?o===`
|
|
87
87
|
`?r+=o:o=`
|
|
88
|
-
`:(r+=o+c,o=" "),a=e.lastIndex}let l=/[ \t]*(.*)/sy;return l.lastIndex=a,s=l.exec(t),r+o+(s?.[1]??"")}function
|
|
88
|
+
`:(r+=o+c,o=" "),a=e.lastIndex}let l=/[ \t]*(.*)/sy;return l.lastIndex=a,s=l.exec(t),r+o+(s?.[1]??"")}function Bf(t,e){let s="";for(let n=1;n<t.length-1;++n){let i=t[n];if(!(i==="\r"&&t[n+1]===`
|
|
89
89
|
`))if(i===`
|
|
90
|
-
`){let{fold:r,offset:o}=
|
|
90
|
+
`){let{fold:r,offset:o}=Kf(t,n);s+=r,n=o}else if(i==="\\"){let r=t[++n],o=Uf[r];if(o)s+=o;else if(r===`
|
|
91
91
|
`)for(r=t[n+1];r===" "||r===" ";)r=t[++n+1];else if(r==="\r"&&t[n+1]===`
|
|
92
|
-
`)for(r=t[++n+1];r===" "||r===" ";)r=t[++n+1];else if(r==="x"||r==="u"||r==="U"){let a=r==="x"?2:r==="u"?4:8;s+=
|
|
92
|
+
`)for(r=t[++n+1];r===" "||r===" ";)r=t[++n+1];else if(r==="x"||r==="u"||r==="U"){let a=r==="x"?2:r==="u"?4:8;s+=Yf(t,n+1,a,e),n+=a}else{let a=t.substr(n-1,2);e(n-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),s+=a}}else if(i===" "||i===" "){let r=n,o=t[n+1];for(;o===" "||o===" ";)o=t[++n+1];o!==`
|
|
93
93
|
`&&!(o==="\r"&&t[n+2]===`
|
|
94
|
-
`)&&(s+=n>r?t.slice(r,n+1):i)}else s+=i}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),s}function
|
|
94
|
+
`)&&(s+=n>r?t.slice(r,n+1):i)}else s+=i}return(t[t.length-1]!=='"'||t.length===1)&&e(t.length,"MISSING_CHAR",'Missing closing "quote'),s}function Kf(t,e){let s="",n=t[e+1];for(;(n===" "||n===" "||n===`
|
|
95
95
|
`||n==="\r")&&!(n==="\r"&&t[e+2]!==`
|
|
96
96
|
`);)n===`
|
|
97
97
|
`&&(s+=`
|
|
98
|
-
`),e+=1,n=t[e+1];return s||(s=" "),{fold:s,offset:e}}var
|
|
99
|
-
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function
|
|
98
|
+
`),e+=1,n=t[e+1];return s||(s=" "),{fold:s,offset:e}}var Uf={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
99
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function Yf(t,e,s,n){let i=t.substr(e,s),o=i.length===s&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(o)}catch{let a=t.substr(e-2,s+2);return n(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}}Ho.resolveFlowScalar=Ff});var ea=L(Zo=>{"use strict";var De=F(),Qo=V(),zf=pi(),Vf=hi();function Gf(t,e,s,n){let{value:i,type:r,comment:o,range:a}=e.type==="block-scalar"?zf.resolveBlockScalar(t,e,n):Vf.resolveFlowScalar(e,t.options.strict,n),l=s?t.directives.tagName(s.source,f=>n(s,"TAG_RESOLVE_FAILED",f)):null,c;t.options.stringKeys&&t.atKey?c=t.schema[De.SCALAR]:l?c=Jf(t.schema,i,l,s,n):e.type==="scalar"?c=Xf(t,i,e,n):c=t.schema[De.SCALAR];let p;try{let f=c.resolve(i,u=>n(s??e,"TAG_RESOLVE_FAILED",u),t.options);p=De.isScalar(f)?f:new Qo.Scalar(f)}catch(f){let u=f instanceof Error?f.message:String(f);n(s??e,"TAG_RESOLVE_FAILED",u),p=new Qo.Scalar(i)}return p.range=a,p.source=i,r&&(p.type=r),l&&(p.tag=l),c.format&&(p.format=c.format),o&&(p.comment=o),p}function Jf(t,e,s,n,i){if(s==="!")return t[De.SCALAR];let r=[];for(let a of t.tags)if(!a.collection&&a.tag===s)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=t.knownTags[s];return o&&!o.collection?(t.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${s}`,s!=="tag:yaml.org,2002:str"),t[De.SCALAR])}function Xf({atKey:t,directives:e,schema:s},n,i,r){let o=s.tags.find(a=>(a.default===!0||t&&a.default==="key")&&a.test?.test(n))||s[De.SCALAR];if(s.compat){let a=s.compat.find(l=>l.default&&l.test?.test(n))??s[De.SCALAR];if(o.tag!==a.tag){let l=e.tagString(o.tag),c=e.tagString(a.tag),p=`Value may be parsed as either ${l} or ${c}`;r(i,"TAG_RESOLVE_FAILED",p,!0)}}return o}Zo.composeScalar=Gf});var sa=L(ta=>{"use strict";function Hf(t,e,s){if(e){s??(s=e.length);for(let n=s-1;n>=0;--n){let i=e[n];switch(i.type){case"space":case"comment":case"newline":t-=i.source.length;continue}for(i=e[++n];i?.type==="space";)t+=i.source.length,i=e[++n];break}}return t}ta.emptyScalarPosition=Hf});var ra=L(gi=>{"use strict";var Qf=pt(),Zf=F(),ep=Go(),na=ea(),tp=Ze(),sp=sa(),np={composeNode:ia,composeEmptyNode:mi};function ia(t,e,s,n){let i=t.atKey,{spaceBefore:r,comment:o,anchor:a,tag:l}=s,c,p=!0;switch(e.type){case"alias":c=ip(t,e,n),(a||l)&&n(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=na.composeScalar(t,e,l,n),a&&(c.anchor=a.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":try{c=ep.composeCollection(np,t,e,s,n),a&&(c.anchor=a.source.substring(1))}catch(f){let u=f instanceof Error?f.message:String(f);n(e,"RESOURCE_EXHAUSTION",u)}break;default:{let f=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;n(e,"UNEXPECTED_TOKEN",f),p=!1}}return c??(c=mi(t,e.offset,void 0,null,s,n)),a&&c.anchor===""&&n(a,"BAD_ALIAS","Anchor cannot be an empty string"),i&&t.options.stringKeys&&(!Zf.isScalar(c)||typeof c.value!="string"||c.tag&&c.tag!=="tag:yaml.org,2002:str")&&n(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),t.options.keepSourceTokens&&p&&(c.srcToken=e),c}function mi(t,e,s,n,{spaceBefore:i,comment:r,anchor:o,tag:a,end:l},c){let p={type:"scalar",offset:sp.emptyScalarPosition(e,s,n),indent:-1,source:""},f=na.composeScalar(t,p,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:t},{offset:e,source:s,end:n},i){let r=new Qf.Alias(s.substring(1));r.source===""&&i(e,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&i(e+s.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+s.length,a=tp.resolveEnd(n,o,t.strict,i);return r.range=[e,o,a.offset],a.comment&&(r.comment=a.comment),r}gi.composeEmptyNode=mi;gi.composeNode=ia});var la=L(aa=>{"use strict";var rp=xt(),oa=ra(),op=Ze(),ap=Tt();function lp(t,e,{offset:s,start:n,value:i,end:r},o){let a=Object.assign({_directives:e},t),l=new rp.Document(void 0,a),c={atKey:!1,atRoot:!0,directives:l.directives,options:l.options,schema:l.schema},p=ap.resolveProps(n,{indicator:"doc-start",next:i??r?.[0],offset:s,onError:o,parentIndent:0,startOnNewline:!0});p.found&&(l.directives.docStart=!0,i&&(i.type==="block-map"||i.type==="block-seq")&&!p.hasNewline&&o(p.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),l.contents=i?oa.composeNode(c,i,p,o):oa.composeEmptyNode(c,p.end,n,null,p,o);let f=l.contents.range[2],u=op.resolveEnd(r,f,!1,o);return u.comment&&(l.comment=u.comment),l.range=[s,f,u.offset],l}aa.composeDoc=lp});var bi=L(fa=>{"use strict";var cp=Ut("process"),up=sn(),fp=xt(),It=Lt(),ca=F(),pp=la(),dp=Ze();function Pt(t){if(typeof t=="number")return[t,t+1];if(Array.isArray(t))return t.length===2?t:[t[0],t[1]];let{offset:e,source:s}=t;return[e,e+(typeof s=="string"?s.length:1)]}function ua(t){let e="",s=!1,n=!1;for(let i=0;i<t.length;++i){let r=t[i];switch(r[0]){case"#":e+=(e===""?"":n?`
|
|
100
100
|
|
|
101
101
|
`:`
|
|
102
|
-
`)+(r.substring(1)||" "),s=!0,n=!1;break;case"%":t[i+1]?.[0]!=="#"&&(i+=1),s=!1;break;default:s||(n=!0),s=!1}}return{comment:e,afterEmptyLine:n}}var
|
|
103
|
-
${n}`:n;else if(i||e.directives.docStart||!r)e.commentBefore=n;else if(
|
|
102
|
+
`)+(r.substring(1)||" "),s=!0,n=!1;break;case"%":t[i+1]?.[0]!=="#"&&(i+=1),s=!1;break;default:s||(n=!0),s=!1}}return{comment:e,afterEmptyLine:n}}var yi=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(s,n,i,r)=>{let o=Pt(s);r?this.warnings.push(new It.YAMLWarning(o,n,i)):this.errors.push(new It.YAMLParseError(o,n,i))},this.directives=new up.Directives({version:e.version||"1.2"}),this.options=e}decorate(e,s){let{comment:n,afterEmptyLine:i}=ua(this.prelude);if(n){let r=e.contents;if(s)e.comment=e.comment?`${e.comment}
|
|
103
|
+
${n}`:n;else if(i||e.directives.docStart||!r)e.commentBefore=n;else if(ca.isCollection(r)&&!r.flow&&r.items.length>0){let o=r.items[0];ca.isPair(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${n}
|
|
104
104
|
${a}`:n}else{let o=r.commentBefore;r.commentBefore=o?`${n}
|
|
105
|
-
${o}`:n}}if(s){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:
|
|
106
|
-
${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.push(new
|
|
105
|
+
${o}`:n}}if(s){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:ua(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,s=!1,n=-1){for(let i of e)yield*this.next(i);yield*this.end(s,n)}*next(e){switch(cp.env.LOG_STREAM&&console.dir(e,{depth:null}),e.type){case"directive":this.directives.add(e.source,(s,n,i)=>{let r=Pt(e);r[0]+=s,this.onError(r,"BAD_DIRECTIVE",n,i)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let s=pp.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!s.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(s,!1),this.doc&&(yield this.doc),this.doc=s,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let s=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new It.YAMLParseError(Pt(e),"UNEXPECTED_TOKEN",s);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case"doc-end":{if(!this.doc){let n="Unexpected doc-end without preceding document";this.errors.push(new It.YAMLParseError(Pt(e),"UNEXPECTED_TOKEN",n));break}this.doc.directives.docEnd=!0;let s=dp.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),s.comment){let n=this.doc.comment;this.doc.comment=n?`${n}
|
|
106
|
+
${s.comment}`:s.comment}this.doc.range[2]=s.offset;break}default:this.errors.push(new It.YAMLParseError(Pt(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,s=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let n=Object.assign({_directives:this.directives},this.options),i=new fp.Document(void 0,n);this.atDirectives&&this.onError(s,"MISSING_CHAR","Missing directives-end indicator line"),i.range=[0,s,s],this.decorate(i,!1),yield i}}};fa.Composer=yi});var ha=L(Ms=>{"use strict";var hp=pi(),mp=hi(),gp=Lt(),pa=yt();function yp(t,e=!0,s){if(t){let n=(i,r,o)=>{let a=typeof i=="number"?i:Array.isArray(i)?i[0]:i.offset;if(s)s(a,r,o);else throw new gp.YAMLParseError([a,a+1],r,o)};switch(t.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return mp.resolveFlowScalar(t,e,n);case"block-scalar":return hp.resolveBlockScalar({options:{strict:e}},t,n)}}return null}function bp(t,e){let{implicitKey:s=!1,indent:n,inFlow:i=!1,offset:r=-1,type:o="PLAIN"}=e,a=pa.stringifyString({type:o,value:t},{implicitKey:s,indent:n>0?" ".repeat(n):"",inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),l=e.end??[{type:"newline",offset:-1,indent:n,source:`
|
|
107
107
|
`}];switch(a[0]){case"|":case">":{let c=a.indexOf(`
|
|
108
|
-
`),
|
|
109
|
-
`,u=[{type:"block-scalar-header",offset:r,indent:n,source:
|
|
110
|
-
`}),{type:"block-scalar",offset:r,indent:n,props:u,source:f}}case'"':return{type:"double-quoted-scalar",offset:r,indent:n,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:r,indent:n,source:a,end:l};default:return{type:"scalar",offset:r,indent:n,source:a,end:l}}}function
|
|
108
|
+
`),p=a.substring(0,c),f=a.substring(c+1)+`
|
|
109
|
+
`,u=[{type:"block-scalar-header",offset:r,indent:n,source:p}];return da(u,l)||u.push({type:"newline",offset:-1,indent:n,source:`
|
|
110
|
+
`}),{type:"block-scalar",offset:r,indent:n,props:u,source:f}}case'"':return{type:"double-quoted-scalar",offset:r,indent:n,source:a,end:l};case"'":return{type:"single-quoted-scalar",offset:r,indent:n,source:a,end:l};default:return{type:"scalar",offset:r,indent:n,source:a,end:l}}}function wp(t,e,s={}){let{afterKey:n=!1,implicitKey:i=!1,inFlow:r=!1,type:o}=s,a="indent"in t?t.indent:null;if(n&&typeof a=="number"&&(a+=2),!o)switch(t.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let c=t.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=pa.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">":kp(t,l);break;case'"':wi(t,l,"double-quoted-scalar");break;case"'":wi(t,l,"single-quoted-scalar");break;default:wi(t,l,"scalar")}}function kp(t,e){let s=e.indexOf(`
|
|
111
111
|
`),n=e.substring(0,s),i=e.substring(s+1)+`
|
|
112
|
-
`;if(t.type==="block-scalar"){let r=t.props[0];if(r.type!=="block-scalar-header")throw new Error("Invalid block scalar header");r.source=n,t.source=i}else{let{offset:r}=t,o="indent"in t?t.indent:-1,a=[{type:"block-scalar-header",offset:r,indent:o,source:n}];
|
|
113
|
-
`});for(let l of Object.keys(t))l!=="type"&&l!=="offset"&&delete t[l];Object.assign(t,{type:"block-scalar",indent:o,props:a,source:i})}}function
|
|
114
|
-
`};delete t.items,Object.assign(t,{type:s,source:e,end:[i]});break}default:{let n="indent"in t?t.indent:-1,i="end"in t&&Array.isArray(t.end)?t.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(t))r!=="type"&&r!=="offset"&&delete t[r];Object.assign(t,{type:s,indent:n,source:e,end:i})}}}
|
|
112
|
+
`;if(t.type==="block-scalar"){let r=t.props[0];if(r.type!=="block-scalar-header")throw new Error("Invalid block scalar header");r.source=n,t.source=i}else{let{offset:r}=t,o="indent"in t?t.indent:-1,a=[{type:"block-scalar-header",offset:r,indent:o,source:n}];da(a,"end"in t?t.end:void 0)||a.push({type:"newline",offset:-1,indent:o,source:`
|
|
113
|
+
`});for(let l of Object.keys(t))l!=="type"&&l!=="offset"&&delete t[l];Object.assign(t,{type:"block-scalar",indent:o,props:a,source:i})}}function da(t,e){if(e)for(let s of e)switch(s.type){case"space":case"comment":t.push(s);break;case"newline":return t.push(s),!0}return!1}function wi(t,e,s){switch(t.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":t.type=s,t.source=e;break;case"block-scalar":{let n=t.props.slice(1),i=e.length;t.props[0].type==="block-scalar-header"&&(i-=t.props[0].source.length);for(let r of n)r.offset+=i;delete t.props,Object.assign(t,{type:s,source:e,end:n});break}case"block-map":case"block-seq":{let i={type:"newline",offset:t.offset+e.length,indent:t.indent,source:`
|
|
114
|
+
`};delete t.items,Object.assign(t,{type:s,source:e,end:[i]});break}default:{let n="indent"in t?t.indent:-1,i="end"in t&&Array.isArray(t.end)?t.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(t))r!=="type"&&r!=="offset"&&delete t[r];Object.assign(t,{type:s,indent:n,source:e,end:i})}}}Ms.createScalarToken=bp;Ms.resolveAsScalar=yp;Ms.setScalarValue=wp});var ga=L(ma=>{"use strict";var vp=t=>"type"in t?Ws(t):Ds(t);function Ws(t){switch(t.type){case"block-scalar":{let e="";for(let s of t.props)e+=Ws(s);return e+t.source}case"block-map":case"block-seq":{let e="";for(let s of t.items)e+=Ds(s);return e}case"flow-collection":{let e=t.start.source;for(let s of t.items)e+=Ds(s);for(let s of t.end)e+=s.source;return e}case"document":{let e=Ds(t);if(t.end)for(let s of t.end)e+=s.source;return e}default:{let e=t.source;if("end"in t&&t.end)for(let s of t.end)e+=s.source;return e}}}function Ds({start:t,key:e,sep:s,value:n}){let i="";for(let r of t)i+=r.source;if(e&&(i+=Ws(e)),s)for(let r of s)i+=r.source;return n&&(i+=Ws(n)),i}ma.stringify=vp});var ka=L(wa=>{"use strict";var ki=Symbol("break visit"),Sp=Symbol("skip children"),ya=Symbol("remove item");function We(t,e){"type"in t&&t.type==="document"&&(t={start:t.start,value:t.value}),ba(Object.freeze([]),t,e)}We.BREAK=ki;We.SKIP=Sp;We.REMOVE=ya;We.itemAtPath=(t,e)=>{let s=t;for(let[n,i]of e){let r=s?.[n];if(r&&"items"in r)s=r.items[i];else return}return s};We.parentCollection=(t,e)=>{let s=We.itemAtPath(t,e.slice(0,-1)),n=e[e.length-1][0],i=s?.[n];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function ba(t,e,s){let n=s(e,t);if(typeof n=="symbol")return n;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=ba(Object.freeze(t.concat([[i,o]])),r.items[o],s);if(typeof a=="number")o=a-1;else{if(a===ki)return ki;a===ya&&(r.items.splice(o,1),o-=1)}}typeof n=="function"&&i==="key"&&(n=n(e,t))}}return typeof n=="function"?n(e,t):n}wa.visit=We});var _s=L(te=>{"use strict";var vi=ha(),$p=ga(),Op=ka(),Si="\uFEFF",$i="",Oi="",Ai="",Ap=t=>!!t&&"items"in t,Ep=t=>!!t&&(t.type==="scalar"||t.type==="single-quoted-scalar"||t.type==="double-quoted-scalar"||t.type==="block-scalar");function Np(t){switch(t){case Si:return"<BOM>";case $i:return"<DOC>";case Oi:return"<FLOW_END>";case Ai:return"<SCALAR>";default:return JSON.stringify(t)}}function xp(t){switch(t){case Si:return"byte-order-mark";case $i:return"doc-mode";case Oi:return"flow-error-end";case Ai:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
115
115
|
`:case`\r
|
|
116
|
-
`: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(t[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}te.createScalarToken=
|
|
117
|
-
`:case"\r":case" ":return!0;default:return!1}}var
|
|
118
|
-
\r `)
|
|
116
|
+
`: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(t[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}te.createScalarToken=vi.createScalarToken;te.resolveAsScalar=vi.resolveAsScalar;te.setScalarValue=vi.setScalarValue;te.stringify=$p.stringify;te.visit=Op.visit;te.BOM=Si;te.DOCUMENT=$i;te.FLOW_END=Oi;te.SCALAR=Ai;te.isCollection=Ap;te.isScalar=Ep;te.prettyToken=Np;te.tokenType=xp});var xi=L(Sa=>{"use strict";var Mt=_s();function le(t){switch(t){case void 0:case" ":case`
|
|
117
|
+
`:case"\r":case" ":return!0;default:return!1}}var va=new Set("0123456789ABCDEFabcdef"),qp=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Fs=new Set(",[]{}"),Cp=new Set(` ,[]{}
|
|
118
|
+
\r `),Ei=t=>!t||Cp.has(t),Ni=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,s=!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=!s;let n=this.next??"stream";for(;n&&(s||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,s=this.buffer[e];for(;s===" "||s===" ";)s=this.buffer[++e];return!s||s==="#"||s===`
|
|
119
119
|
`?!0:s==="\r"?this.buffer[e+1]===`
|
|
120
120
|
`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let s=this.buffer[e];if(this.indentNext>0){let n=0;for(;s===" ";)s=this.buffer[++n+e];if(s==="\r"){let i=this.buffer[n+e+1];if(i===`
|
|
121
121
|
`||!i&&!this.atEnd)return e+n+1}return s===`
|
|
122
|
-
`||n>=this.indentNext||!s&&!this.atEnd?e+n:-1}if(s==="-"||s==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&
|
|
123
|
-
`,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]===
|
|
122
|
+
`||n>=this.indentNext||!s&&!this.atEnd?e+n:-1}if(s==="-"||s==="."){let n=this.buffer.substr(e,3);if((n==="---"||n==="...")&&le(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(`
|
|
123
|
+
`,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]===Mt.BOM&&(yield*this.pushCount(1),e=e.substring(1)),e[0]==="%"){let s=e.length,n=e.indexOf("#");for(;n!==-1;){let r=e[n-1];if(r===" "||r===" "){s=n-1;break}else n=e.indexOf("#",n+1)}for(;;){let r=e[s-1];if(r===" "||r===" ")s-=1;else break}let i=(yield*this.pushCount(s))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-i),this.pushNewline(),"stream"}if(this.atLineEnd()){let s=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-s),yield*this.pushNewline(),"stream"}return yield Mt.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 s=this.peek(3);if((s==="---"||s==="...")&&le(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,s==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!le(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,s]=this.peek(2);if(!s&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&le(s)){let n=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=n,"block-start"}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext("doc");let s=yield*this.pushIndicators();switch(e[s]){case"#":yield*this.pushCount(e.length-s);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(Ei),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return s+=yield*this.parseBlockScalarHeader(),s+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-s),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,s,n=-1;do e=yield*this.pushNewline(),e>0?(s=yield*this.pushSpaces(!1),this.indentValue=n=s):s=0,s+=yield*this.pushSpaces(!0);while(e+s>0);let i=this.getLine();if(i===null)return this.setNext("flow");if((n!==-1&&n<this.indentNext&&i[0]!=="#"||n===0&&(i.startsWith("---")||i.startsWith("..."))&&le(i[3]))&&!(n===this.indentNext-1&&this.flowLevel===1&&(i[0]==="]"||i[0]==="}")))return this.flowLevel=0,yield Mt.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(Ei),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let o=this.charAt(1);if(this.flowKey||le(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),s=this.buffer.indexOf(e,this.pos+1);if(e==="'")for(;s!==-1&&this.buffer[s+1]==="'";)s=this.buffer.indexOf("'",s+2);else for(;s!==-1;){let r=0;for(;this.buffer[s-1-r]==="\\";)r+=1;if(r%2===0)break;s=this.buffer.indexOf('"',s+1)}let n=this.buffer.substring(0,s),i=n.indexOf(`
|
|
124
124
|
`,this.pos);if(i!==-1){for(;i!==-1;){let r=this.continueScalar(i+1);if(r===-1)break;i=n.indexOf(`
|
|
125
|
-
`,r)}i!==-1&&(s=i-(n[i-1]==="\r"?2:1))}if(s===-1){if(!this.atEnd)return this.setNext("quoted-scalar");s=this.buffer.length}return yield*this.pushToIndex(s+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let s=this.buffer[++e];if(s==="+")this.blockScalarKeep=!0;else if(s>"0"&&s<="9")this.blockScalarIndent=Number(s)-1;else if(s!=="-")break}return yield*this.pushUntil(s=>
|
|
125
|
+
`,r)}i!==-1&&(s=i-(n[i-1]==="\r"?2:1))}if(s===-1){if(!this.atEnd)return this.setNext("quoted-scalar");s=this.buffer.length}return yield*this.pushToIndex(s+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let s=this.buffer[++e];if(s==="+")this.blockScalarKeep=!0;else if(s>"0"&&s<="9")this.blockScalarIndent=Number(s)-1;else if(s!=="-")break}return yield*this.pushUntil(s=>le(s)||s==="#")}*parseBlockScalar(){let e=this.pos-1,s=0,n;e:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case" ":s+=1;break;case`
|
|
126
126
|
`:e=r,s=0;break;case"\r":{let o=this.buffer[r+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
|
127
127
|
`)break}default:break e}if(!n&&!this.atEnd)return this.setNext("block-scalar");if(s>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=s: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(`
|
|
128
128
|
`,r)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}let i=e+1;for(n=this.buffer[i];n===" ";)n=this.buffer[++i];if(n===" "){for(;n===" "||n===" "||n==="\r"||n===`
|
|
129
129
|
`;)n=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===`
|
|
130
|
-
`&&r>=this.pos&&r+1+s>a)e=r;else break}while(!0);return yield
|
|
130
|
+
`&&r>=this.pos&&r+1+s>a)e=r;else break}while(!0);return yield Mt.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,s=this.pos-1,n=this.pos-1,i;for(;i=this.buffer[++n];)if(i===":"){let r=this.buffer[n+1];if(le(r)||e&&Fs.has(r))break;s=n}else if(le(i)){let r=this.buffer[n+1];if(i==="\r"&&(r===`
|
|
131
131
|
`?(n+=1,i=`
|
|
132
|
-
`,r=this.buffer[n+1]):s=n),r==="#"||e&&
|
|
133
|
-
`){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&
|
|
132
|
+
`,r=this.buffer[n+1]):s=n),r==="#"||e&&Fs.has(r))break;if(i===`
|
|
133
|
+
`){let o=this.continueScalar(n+1);if(o===-1)break;n=Math.max(n,o-2)}}else{if(e&&Fs.has(i))break;s=n}return!i&&!this.atEnd?this.setNext("plain-scalar"):(yield Mt.SCALAR,yield*this.pushToIndex(s+1,!0),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,s){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(s&&(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(Ei),e+=yield*this.pushSpaces(!0);continue e;case"-":case"?":case":":{let s=this.flowLevel>0,n=this.charAt(1);if(le(n)||s&&Fs.has(n)){s?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,s=this.buffer[e];for(;!le(s)&&s!==">";)s=this.buffer[++e];return yield*this.pushToIndex(s===">"?e+1:e,!1)}else{let e=this.pos+1,s=this.buffer[e];for(;s;)if(qp.has(s))s=this.buffer[++e];else if(s==="%"&&va.has(this.buffer[e+1])&&va.has(this.buffer[e+2]))s=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
|
|
134
134
|
`?yield*this.pushCount(1):e==="\r"&&this.charAt(1)===`
|
|
135
|
-
`?yield*this.pushCount(2):0}*pushSpaces(e){let s=this.pos-1,n;do n=this.buffer[++s];while(n===" "||e&&n===" ");let i=s-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=s),i}*pushUntil(e){let s=this.pos,n=this.buffer[s];for(;!e(n);)n=this.buffer[++s];return yield*this.pushToIndex(s,!1)}};
|
|
135
|
+
`?yield*this.pushCount(2):0}*pushSpaces(e){let s=this.pos-1,n;do n=this.buffer[++s];while(n===" "||e&&n===" ");let i=s-this.pos;return i>0&&(yield this.buffer.substr(this.pos,i),this.pos=s),i}*pushUntil(e){let s=this.pos,n=this.buffer[s];for(;!e(n);)n=this.buffer[++s];return yield*this.pushToIndex(s,!1)}};Sa.Lexer=Ni});var Ci=L($a=>{"use strict";var qi=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let s=0,n=this.lineStarts.length;for(;s<n;){let r=s+n>>1;this.lineStarts[r]<e?s=r+1:n=r}if(this.lineStarts[s]===e)return{line:s+1,col:1};if(s===0)return{line:0,col:e};let i=this.lineStarts[s-1];return{line:s,col:e-i+1}}}};$a.LineCounter=qi});var Ti=L(xa=>{"use strict";var Lp=Ut("process"),Oa=_s(),Tp=xi();function Ne(t,e){for(let s=0;s<t.length;++s)if(t[s].type===e)return!0;return!1}function Aa(t){for(let e=0;e<t.length;++e)switch(t[e].type){case"space":case"comment":case"newline":break;default:return e}return-1}function Na(t){switch(t?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function js(t){switch(t.type){case"document":return t.start;case"block-map":{let e=t.items[t.items.length-1];return e.sep??e.start}case"block-seq":return t.items[t.items.length-1].start;default:return[]}}function et(t){if(t.length===0)return[];let e=t.length;e:for(;--e>=0;)switch(t[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;t[++e]?.type==="space";);return t.splice(e,t.length)}function Rs(t,e){if(e.length<1e5)Array.prototype.push.apply(t,e);else for(let s=0;s<e.length;++s)t.push(e[s])}function Ea(t){if(t.start.type==="flow-seq-start")for(let e of t.items)e.sep&&!e.value&&!Ne(e.start,"explicit-key-ind")&&!Ne(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Na(e.value)?e.value.end?Rs(e.value.end,e.sep):e.value.end=e.sep:Rs(e.start,e.sep),delete e.sep)}var Li=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 Tp.Lexer,this.onNewLine=e}*parse(e,s=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,s))yield*this.next(n);s||(yield*this.end())}*next(e){if(this.source=e,Lp.env.LOG_TOKENS&&console.log("|",Oa.prettyToken(e)),this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let s=Oa.tokenType(e);if(s)if(s==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=s,yield*this.step(),s){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 n=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:n,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 s=e??this.stack.pop();if(!s)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield s;else{let n=this.peek(1);switch(s.type==="block-scalar"?s.indent="indent"in n?n.indent:0:s.type==="flow-collection"&&n.type==="document"&&(s.indent=0),s.type==="flow-collection"&&Ea(s),n.type){case"document":n.value=s;break;case"block-scalar":n.props.push(s);break;case"block-map":{let i=n.items[n.items.length-1];if(i.value){n.items.push({start:[],key:s,sep:[]}),this.onKeyLine=!0;return}else if(i.sep)i.value=s;else{Object.assign(i,{key:s,sep:[]}),this.onKeyLine=!i.explicitKey;return}break}case"block-seq":{let i=n.items[n.items.length-1];i.value?n.items.push({start:[],value:s}):i.value=s;break}case"flow-collection":{let i=n.items[n.items.length-1];!i||i.value?n.items.push({start:[],key:s,sep:[]}):i.sep?i.value=s:Object.assign(i,{key:s,sep:[]});return}default:yield*this.pop(),yield*this.pop(s)}if((n.type==="document"||n.type==="block-map"||n.type==="block-seq")&&(s.type==="block-map"||s.type==="block-seq")){let i=s.items[s.items.length-1];i&&!i.sep&&!i.value&&i.start.length>0&&Aa(i.start)===-1&&(s.indent===0||i.start.every(r=>r.type!=="comment"||r.indent<s.indent))&&(n.type==="document"?n.end=i.start:n.items.push({start:i.start}),s.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":{Aa(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 s=this.startBlockValue(e);s?this.stack.push(s):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 s=js(this.peek(2)),n=et(s),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:n,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 s=this.source.indexOf(`
|
|
136
136
|
`)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
|
|
137
|
-
`,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let s=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){let n="end"in s.value?s.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)e.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){
|
|
137
|
+
`,s)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let s=e.items[e.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,s.value){let n="end"in s.value?s.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)e.items.push({start:[this.sourceToken]});else if(s.sep)s.sep.push(this.sourceToken);else{if(this.atIndentedComment(s.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Rs(i,s.start),i.push(this.sourceToken),e.items.pop();return}}s.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,i=n&&(s.sep||s.explicitKey)&&this.type!=="seq-item-ind",r=[];if(i&&s.sep&&!s.value){let o=[];for(let a=0;a<s.sep.length;++a){let l=s.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=s.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":i||s.value?(r.push(this.sourceToken),e.items.push({start:r}),this.onKeyLine=!0):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"explicit-key-ind":!s.sep&&!s.explicitKey?(s.start.push(this.sourceToken),s.explicitKey=!0):i||s.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(s.explicitKey)if(s.sep)if(s.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ne(s.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(Na(s.key)&&!Ne(s.sep,"newline")){let o=et(s.start),a=s.key,l=s.sep;l.push(this.sourceToken),delete s.key,delete s.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:l}]})}else r.length>0?s.sep=s.sep.concat(r,this.sourceToken):s.sep.push(this.sourceToken);else if(Ne(s.start,"newline"))Object.assign(s,{key:null,sep:[this.sourceToken]});else{let o=et(s.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else s.sep?s.value||i?e.items.push({start:r,key:null,sep:[this.sourceToken]}):Ne(s.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):s.sep.push(this.sourceToken):Object.assign(s,{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||s.value?(e.items.push({start:r,key:o,sep:[]}),this.onKeyLine=!0):s.sep?this.stack.push(o):(Object.assign(s,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){if(o.type==="block-seq"){if(!s.explicitKey&&s.sep&&!Ne(s.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 n&&e.items.push({start:r});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let s=e.items[e.items.length-1];switch(this.type){case"newline":if(s.value){let n="end"in s.value?s.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else s.start.push(this.sourceToken);return;case"space":case"comment":if(s.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(s.start,e.indent)){let i=e.items[e.items.length-2]?.value?.end;if(Array.isArray(i)){Rs(i,s.start),i.push(this.sourceToken),e.items.pop();return}}s.start.push(this.sourceToken)}return;case"anchor":case"tag":if(s.value||this.indent<=e.indent)break;s.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;s.value||Ne(s.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let s=e.items[e.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n?.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!s||s.sep?e.items.push({start:[this.sourceToken]}):s.start.push(this.sourceToken);return;case"map-value-ind":!s||s.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):Object.assign(s,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!s||s.value?e.items.push({start:[this.sourceToken]}):s.sep?s.sep.push(this.sourceToken):s.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let i=this.flowScalar(this.type);!s||s.value?e.items.push({start:[],key:i,sep:[]}):s.sep?this.stack.push(i):Object.assign(s,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===e.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let i=js(n),r=et(i);Ea(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 s=this.source.indexOf(`
|
|
138
138
|
`)+1;for(;s!==0;)this.onNewLine(this.offset+s),s=this.source.indexOf(`
|
|
139
|
-
`,s)+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 s=Ws(e),n=Qe(s);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let s=Ws(e),n=Qe(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,s){return this.type!=="comment"||this.indent<=s?!1:e.every(n=>n.type==="newline"||n.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;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};Ea.Parser=xi});var Ta=q(Pt=>{"use strict";var Na=mi(),Cd=Et(),Mt=qt(),Td=pn(),Ld=_(),Id=Ni(),xa=qi();function qa(t){let e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new Id.LineCounter||null,prettyErrors:e}}function Md(t,e={}){let{lineCounter:s,prettyErrors:n}=qa(e),i=new xa.Parser(s?.addNewLine),r=new Na.Composer(e),o=Array.from(r.compose(i.parse(t)));if(n&&s)for(let a of o)a.errors.forEach(Mt.prettifyError(t,s)),a.warnings.forEach(Mt.prettifyError(t,s));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function Ca(t,e={}){let{lineCounter:s,prettyErrors:n}=qa(e),i=new xa.Parser(s?.addNewLine),r=new Na.Composer(e),o=null;for(let a of r.compose(i.parse(t),!0,t.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Mt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&s&&(o.errors.forEach(Mt.prettifyError(t,s)),o.warnings.forEach(Mt.prettifyError(t,s))),o}function Pd(t,e,s){let n;typeof e=="function"?n=e:s===void 0&&e&&typeof e=="object"&&(s=e);let i=Ca(t,s);if(!i)return null;if(i.warnings.forEach(r=>Td.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:n},s))}function Dd(t,e,s){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:s===void 0&&e&&(s=e),typeof s=="string"&&(s=s.length),typeof s=="number"){let i=Math.round(s);s=i<1?void 0:i>8?{indent:8}:{indent:i}}if(t===void 0){let{keepUndefined:i}=s??e??{};if(!i)return}return Ld.isDocument(t)&&!n?t.toString(s):new Cd.Document(t,n,s).toString(s)}Pt.parse=Pd;Pt.parseAllDocuments=Md;Pt.parseDocument=Ca;Pt.stringify=Dd});var Ia=q(W=>{"use strict";var _d=mi(),Wd=Et(),Fd=Jn(),Ci=qt(),Rd=ut(),Ae=_(),jd=ke(),Bd=V(),Kd=ve(),Ud=$e(),Yd=Ds(),zd=Ai(),Vd=Ni(),Gd=qi(),Rs=Ta(),La=ot();W.Composer=_d.Composer;W.Document=Wd.Document;W.Schema=Fd.Schema;W.YAMLError=Ci.YAMLError;W.YAMLParseError=Ci.YAMLParseError;W.YAMLWarning=Ci.YAMLWarning;W.Alias=Rd.Alias;W.isAlias=Ae.isAlias;W.isCollection=Ae.isCollection;W.isDocument=Ae.isDocument;W.isMap=Ae.isMap;W.isNode=Ae.isNode;W.isPair=Ae.isPair;W.isScalar=Ae.isScalar;W.isSeq=Ae.isSeq;W.Pair=jd.Pair;W.Scalar=Bd.Scalar;W.YAMLMap=Kd.YAMLMap;W.YAMLSeq=Ud.YAMLSeq;W.CST=Yd;W.Lexer=zd.Lexer;W.LineCounter=Vd.LineCounter;W.Parser=Gd.Parser;W.parse=Rs.parse;W.parseAllDocuments=Rs.parseAllDocuments;W.parseDocument=Rs.parseDocument;W.stringify=Rs.stringify;W.visit=La.visit;W.visitAsync=La.visitAsync});var ue=kl(Ia());var Dt="_next";function ae(t,e){let s=t.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,34)||"item",n=new Set(e);if(!n.has(s))return s;for(let i=2;;i++)if(!n.has(`${s}-${i}`))return`${s}-${i}`}function Ma(t,e){let s=t.stages.find(a=>a.id===e);if(!s||t.stages.length<2)return t;let n=new Set((s.outputs??[]).map(a=>a.id)),i=(t.links??[]).filter(a=>a.target===e&&a.kind==="next").map(a=>a.source),r=(t.links??[]).filter(a=>a.source===e&&a.kind==="next").map(a=>a.target),o=new Set((t.kpis??[]).filter(a=>a.stage===e).map(a=>a.id));return{...t,kpis:(t.kpis??[]).filter(a=>!o.has(a.id)).map(a=>a.since===e?{...a,since:null}:a),stages:t.stages.filter(a=>a.id!==e),gates:(t.gates??[]).filter(a=>a.after!==e).map(a=>({...a,on_fail:a.on_fail===e?null:a.on_fail,criteria:(a.criteria??[]).map(l=>l.kind==="outputs"?{...l,outputs:l.outputs.filter(c=>!n.has(c))}:l.kind==="kpis"?{...l,kpis:l.kpis.filter(c=>!o.has(c))}:l).filter(l=>!(l.kind==="outputs"&&!l.outputs.length)&&!(l.kind==="activities"&&l.stage===e)&&!(l.kind==="kpis"&&!l.kpis.length))})),links:[...(t.links??[]).filter(a=>a.source!==e&&a.target!==e),...i.flatMap(a=>r.filter(l=>l!==a).map(l=>({source:a,target:l,kind:"next",label:""})))],triggers:(t.triggers??[]).filter(a=>a.stage!==e).map(a=>({...a,activities:a.activities.filter(l=>l.stage!==e)})).filter(a=>a.activities.length),next:t.next&&n.has(t.next.per)?null:t.next,suggested:(t.suggested??[]).filter(a=>a!==e&&!(t.gates??[]).some(l=>l.id===a&&l.after===e))}}var Pa=(t,e)=>({...t,gates:(t.gates??[]).filter(s=>s.id!==e),suggested:(t.suggested??[]).filter(s=>s!==e)});function Da(t,e){return{...t,roles:(t.roles??[]).filter(s=>s.id!==e),stages:t.stages.map(s=>({...s,roles:(s.roles??[]).filter(n=>n!==e),outputs:(s.outputs??[]).map(n=>n.by===e?{...n,by:null}:n)})),gates:(t.gates??[]).map(s=>({...s,approver:s.approver===e?null:s.approver,roles:(s.roles??[]).filter(n=>n!==e)}))}}var Jd=/^[a-z0-9-]{1,40}$/,P=(t,e)=>(Array.isArray(t)?t.map(String).join(" \xB7 "):t==null?"":String(t)).slice(0,e),Ee=(t,e,s)=>(Array.isArray(t)?t:t==null?[]:[t]).map(n=>P(n,e)).filter(Boolean).slice(0,s),Xd=t=>t.split(/[\s/·-]+/).filter(e=>e.length>2||/^[A-Z]/.test(e)).map(e=>e[0].toUpperCase()).join("").slice(0,8)||t.slice(0,20);function Hd(t){let e=(t.lanes??[]).slice(0,8);return{...t,lanes:e.map(s=>({...s,id:P(s.id,60),name:P(s.name,80)||P(s.id,80),sub:P(s.sub,140)})),roles:(t.roles??[]).slice(0,30).map(s=>{let n=P(s.acronym,200),i=n.length>20;return{...s,id:P(s.id,60),acronym:i?Xd(n):n||"X",name:P(s.name,140)||(i?n.slice(0,140):""),lane:P(s.lane,60)}}),phases:(t.phases??[]).slice(0,8).map(s=>({...s,id:P(s.id,60),name:P(s.name,80)||P(s.id,80)})),stages:(t.stages??[]).slice(0,30).map(s=>({...s,id:P(s.id,60),name:P(s.name,80)||P(s.id,80),description:P(s.description,2e3),question:P(s.question,140),inputs:Ee(s.inputs,140,12),outside:Ee(s.outside,140,12),metrics:Ee(s.metrics,140,8),roles:Ee(s.roles,60,20),outputs:(s.outputs??[]).slice(0,12).map(n=>({...n,name:P(n.name,120)||P(n.id,120),description:P(n.description,140)})),activities:(s.activities??[]).slice(0,20).map(n=>({...n,name:P(n.name,120)||P(n.id,120)})),fields:(s.fields??[]).slice(0,12).map(n=>({...n,name:P(n.name,80)||P(n.id,80),kind:"text"})),copilot:{instructions:P(s.copilot?.instructions,2e3),actions:Ee(s.copilot?.actions,80,8)}})),gates:(t.gates??[]).slice(0,12).map(s=>({...s,name:P(s.name,80)||P(s.id,80),description:P(s.description,2e3),metrics:Ee(s.metrics,140,8),roles:Ee(s.roles,60,20),outputs:(s.outputs??[]).slice(0,12).map(n=>({...n,name:P(n.name,120)||P(n.id,120),description:P(n.description,140)})),results:(s.results??[]).slice(0,6).map(n=>({...n,label:P(n.label,40)||P(n.id,40)})),criteria:(s.criteria??[]).slice(0,6)})),work_types:(t.work_types??[]).slice(0,12).map(s=>({...s,name:P(s.name,40)||P(s.id,40),parents:Ee(s.parents,60,6)})),triggers:(t.triggers??[]).slice(0,12).map(s=>({...s,question:P(s.question,200),activities:(s.activities??[]).slice(0,12).map(n=>({...n,name:P(n.name,120)||P(n.id,120)}))})),links:(t.links??[]).slice(0,40),subitem:t.subitem&&{...t.subitem,name:P(t.subitem.name,40),plural:P(t.subitem.plural,40),results:(t.subitem.results??[]).slice(0,8).map(s=>({...s,label:P(s.label,40)||P(s.id,40)}))},en:{}}}function _a(t){let e=Hd(t),s=(h,b=[])=>{let g=[...b],A=new Map;for(let E of h){let x=Jd.test(E)&&!g.includes(E)?E:ae(E.slice(0,34),g);g.push(x),A.has(E)||A.set(E,x)}return A},n=s(e.lanes.map(h=>h.id)),i=s((e.roles??[]).map(h=>h.id)),r=s(e.phases.map(h=>h.id)),o=s(e.stages.map(h=>h.id)),a=s((e.gates??[]).map(h=>h.id)),l=s((e.work_types??[]).map(h=>h.id)),c=s([...e.stages.flatMap(h=>[...(h.outputs??[]).map(b=>b.id),...(h.activities??[]).map(b=>b.id)]),...(e.gates??[]).flatMap(h=>(h.outputs??[]).map(b=>b.id)),...(e.triggers??[]).flatMap(h=>h.activities.map(b=>b.id))]),d=s((e.subitem?.results??[]).map(h=>h.id)),f=(h,b)=>b!=null&&h.has(b)?h.get(b):null,u=(h,b)=>(b??[]).filter(g=>h.has(g)).map(g=>h.get(g)),y=e.lanes[0]?n.get(e.lanes[0].id):"",$=e.phases[0]?r.get(e.phases[0].id):"",m=new Set(e.stages.flatMap(h=>(h.outputs??[]).map(b=>b.id))),w=new Set((e.kpis??[]).filter(h=>o.has(h.stage)).map(h=>h.id));return{...e,lanes:e.lanes.map(h=>({...h,id:n.get(h.id)})),roles:(e.roles??[]).map(h=>({...h,id:i.get(h.id),lane:f(n,h.lane)??y})),phases:e.phases.map(h=>({...h,id:r.get(h.id)})),subitem:e.subitem&&{...e.subitem,results:e.subitem.results.map(h=>({...h,id:d.get(h.id)}))},work_types:(e.work_types??[]).map(h=>({...h,id:l.get(h.id),parents:u(l,h.parents)})),stages:e.stages.map(h=>({...h,id:o.get(h.id),phase:f(r,h.phase)??$,lane:f(n,h.lane)??y,roles:u(i,h.roles),work_type:f(l,h.work_type),outputs:(h.outputs??[]).map(b=>({...b,id:c.get(b.id),by:f(i,b.by)})),activities:(h.activities??[]).map(b=>({...b,id:c.get(b.id)})),fields:[...s((h.fields??[]).map(b=>b.id))].map(([,b],g)=>({...(h.fields??[])[g],id:b})),scope:h.scope==="subitem"&&!e.subitem?"initiative":h.scope})),gates:(e.gates??[]).filter(h=>o.has(h.after)).map(h=>({...h,id:a.get(h.id),after:o.get(h.after),on_fail:f(o,h.on_fail),approver:f(i,h.approver),roles:u(i,h.roles),outputs:(h.outputs??[]).map(b=>({...b,id:c.get(b.id),by:f(i,b.by)})),results:[...s(h.results.map(b=>b.id))].map(([,b],g)=>({...h.results[g],id:b})),criteria:(h.criteria??[]).map(b=>b.kind==="outputs"?{...b,outputs:b.outputs.filter(g=>m.has(g)).map(g=>c.get(g))}:b.kind==="activities"?{...b,stage:f(o,b.stage)??""}:b.kind==="kpis"?{...b,kpis:b.kpis.filter(g=>w.has(g))}:{...b,result:f(d,b.result)??""}).filter(b=>b.kind==="outputs"?b.outputs.length>0:b.kind==="activities"?!!b.stage:b.kind==="kpis"?b.kpis.length>0:!!b.result)})),links:(e.links??[]).filter(h=>o.has(h.source)&&o.has(h.target)).map(h=>({...h,source:o.get(h.source),target:o.get(h.target)})),triggers:(e.triggers??[]).filter(h=>o.has(h.stage)).map(h=>({...h,stage:o.get(h.stage),activities:h.activities.filter(b=>o.has(b.stage)).map(b=>({...b,id:c.get(b.id),stage:o.get(b.stage)}))})).filter(h=>h.activities.length),next:e.next&&m.has(e.next.per)?{...e.next,per:c.get(e.next.per)}:null,suggested:(e.suggested??[]).map(h=>o.get(h)??a.get(h)).filter(h=>!!h),kpis:(e.kpis??[]).filter(h=>o.has(h.stage)).map(h=>({...h,stage:o.get(h.stage),since:f(o,h.since)}))}}var Wa="hubs.way/v1",Li="stage-door/v1",Qd=new Set([Wa,Li]);function Zd(t,e,s,n=Wa){let{en:i,...r}=e,o=n===Li?ep(r):r,a={format:n,name:t,...o};return s==="json"?JSON.stringify(a,null,2)+`
|
|
140
|
-
`:(0,ue.stringify)(a,{lineWidth:0})}function ep(t){let{suggested:e,...s}=t,n=tp(s);return Ti({...s,stages:s.stages.map(({copilot:i,fields:r,col:o,outside:a,...l})=>({...l,inputs:(l.inputs??[]).map(c=>a?.includes(c)?{name:c}:n.has(c)?{from:n.get(c)}:c)}))})}function tp(t){let e=new Map;for(let s of[...t.stages.flatMap(n=>n.outputs??[]),...(t.gates??[]).flatMap(n=>n.outputs??[])])e.has(s.name)||e.set(s.name,s.id);return e}var Ti=t=>Array.isArray(t)?t.map(Ti):Ze(t)?Object.fromEntries(Object.entries(t).map(([e,s])=>[e,Ti(s)]).filter(([,e])=>e!=null&&e!==""&&!(Array.isArray(e)&&!e.length))):t,Ze=t=>!!t&&typeof t=="object"&&!Array.isArray(t),K=t=>typeof t=="string"?t.trim():"";function sp(t){let e=new ue.LineCounter,s=(0,ue.parseDocument)(t,{lineCounter:e,prettyErrors:!1}),n=O=>{let p=s.getIn(O,!0);return p?.range?e.linePos(p.range[0]).line:1},i={lanes:0,phases:0,stages:0,gates:0,outputs:0};if(s.errors.length){let O=s.errors[0];return{name:"",problems:[{line:e.linePos(O.pos[0]).line,key:"syntax",detail:O.code}],fatal:!0,summary:i}}let r=s.toJS();if(!Ze(r)||!Qd.has(String(r.format))||!(0,ue.isMap)(s.contents))return{name:"",problems:[{line:n(["format"]),key:"format"}],fatal:!0,summary:i};let o=[],a=O=>{let p=r[O];return p==null?[]:!Array.isArray(p)||!(0,ue.isSeq)(s.getIn([O],!0))?(o.push({line:n([O]),key:"shape",what:O}),[]):p.map((v,N)=>{if(Ze(v)&&K(v.id))return v;o.push({line:n([O,N]),key:"shape",what:`${O}[${N}]`})}).filter(v=>!!v)},l=a("lanes"),c=a("phases"),d=a("stages"),f=a("gates");if(!l.length)return{name:K(r.name),problems:[...o,{line:n(["lanes"]),key:"noLanes"}],fatal:!0,summary:i};let u=(O,p)=>{let v=new Set;return p.filter(N=>{let T=K(N.id);return v.has(T)?(o.push({line:n([O,r[O].indexOf(N),"id"]),key:"duplicate",what:O,id:T}),!1):(v.add(T),!0)})},y=u("lanes",l),$=u("phases",c),m=new Set(y.map(O=>K(O.id))),w=new Set($.map(O=>K(O.id))),h=u("stages",d).filter(O=>{let p=r.stages.indexOf(O);return m.has(K(O.lane))?$.length&&!w.has(K(O.phase))?(o.push({line:n(["stages",p,"phase"]),key:"phaseUnknown",stage:K(O.id),phase:K(O.phase),phases:[...w].join(", ")}),!1):!0:(o.push({line:n(["stages",p,"lane"]),key:"laneUnknown",stage:K(O.id),lane:K(O.lane),lanes:[...m].join(", ")}),!1)}),b=new Map([...d,...f].flatMap(O=>Array.isArray(O.outputs)?O.outputs:[]).filter(Ze).map(O=>[K(O.id),K(O.name)])),g=h.map(O=>{if(!Array.isArray(O.inputs))return O;let p=r.stages.indexOf(O),v=[],N=[];return O.inputs.forEach((T,F)=>{if(typeof T=="string"&&T.trim())v.push(T.trim());else if(Ze(T)&&K(T.from)){let U=b.get(K(T.from));U?v.push(U):o.push({line:n(["stages",p,"inputs",F]),key:"inputUnknown",stage:K(O.id),from:K(T.from)})}else Ze(T)&&K(T.name)?(v.push(K(T.name)),N.push(K(T.name))):o.push({line:n(["stages",p,"inputs",F]),key:"shape",what:`stages[${p}].inputs[${F}]`})}),{...O,inputs:v,...N.length?{outside:N}:{}}}),A=new Set(h.map(O=>K(O.id))),E=u("gates",f).filter(O=>A.has(K(O.after))?!0:(o.push({line:n(["gates",r.gates.indexOf(O),"after"]),key:"gateUnknown",gate:K(O.id),after:K(O.after)}),!1)),{format:x,name:L,...k}=r,I=_a({...k,lanes:y,phases:$,stages:g,gates:E.map(O=>({...O,results:O.results??[]})),en:{}}),B={lanes:I.lanes.length,phases:I.phases.length,stages:I.stages.length,gates:(I.gates??[]).length,outputs:I.stages.reduce((O,p)=>O+(p.outputs??[]).length,0)};return{name:K(r.name),def:I,problems:o,fatal:!1,summary:B}}var np={way:["order","subitem","next","discard"],lane:["name","sub","inside"],role:["acronym","name","lane"],phase:["name"],stage:["name","lane","phase","roles","description","where","inputs","outside","outputs","activities","fields","question","copilot","metrics","scope","work_type","optional","wip"],gate:["name","after","approver","on_fail","criteria","results","description","roles","metrics","outputs"],kpi:["name","unit","stage","source","since"],link:[]},Ba={lane:"lanes",role:"roles",phase:"phases",stage:"stages",gate:"gates",kpi:"kpis"},me=(t,e)=>t[Ba[e]]??[],Mi=(t,e,s)=>({...t,[Ba[e]]:s}),_t=t=>`${t.source}>${t.target}>${t.kind}`,Wt=t=>{let e=new Map;for(let s of t.links??[])s.source!==Dt&&s.target!==Dt&&!e.has(_t(s))&&e.set(_t(s),s);return e};function et(t){if(!(t==null||t==="")){if(Array.isArray(t)){let e=t.map(et).filter(s=>s!==void 0);return e.length?e:void 0}if(typeof t=="object"){let e=Object.entries(t).map(([s,n])=>[s,et(n)]).filter(([,s])=>s!==void 0);return e.length?Object.fromEntries(e.sort(([s],[n])=>s.localeCompare(n))):void 0}return t}}var Ii=(t,e)=>JSON.stringify(et(t))===JSON.stringify(et(e)),Fa=t=>t.stages.map((e,s)=>({s:e,k:e.col??s,i:s})).sort((e,s)=>e.k-s.k||e.i-s.i).map(e=>e.s.id);var Ra={lane:6,role:30,phase:6,stage:30,gate:12,kpi:8};function Pi(t){let e=[];for(let o of["lane","role","phase","stage","gate","kpi"]){let a=me(t,o);a.length>Ra[o]&&e.push({key:"limit",item:o,max:Ra[o]});let l=new Set;for(let c of a)l.has(c.id)&&e.push({key:"duplicate",item:o,id:c.id}),l.add(c.id)}for(let o of["lane","phase","stage"])me(t,o).length||e.push({key:"empty",item:o});(t.links??[]).length>40&&e.push({key:"limit",item:"link",max:40});let s=(o,a)=>me(t,o).some(l=>l.id===a),n=new Set(t.stages.flatMap(o=>(o.outputs??[]).map(a=>a.id))),i=(o,a,l,c,d)=>{o||e.push({key:"missing",item:a,id:l,field:c,to:d})};for(let o of t.roles??[])i(s("lane",o.lane),"role",o.id,"lane",o.lane);for(let o of t.stages){i(s("lane",o.lane),"stage",o.id,"lane",o.lane),i(s("phase",o.phase),"stage",o.id,"phase",o.phase);for(let a of o.roles??[])i(s("role",a),"stage",o.id,"roles",a);for(let a of o.outputs??[])a.by&&i(s("role",a.by),"stage",o.id,"outputs",a.by)}let r=new Set;for(let o of t.gates??[]){i(s("stage",o.after),"gate",o.id,"after",o.after),r.has(o.after)&&e.push({key:"twoGates",stage:o.after}),r.add(o.after),o.approver&&i(s("role",o.approver),"gate",o.id,"approver",o.approver),o.on_fail&&i(s("stage",o.on_fail),"gate",o.id,"on_fail",o.on_fail);for(let a of o.roles??[])i(s("role",a),"gate",o.id,"roles",a);for(let a of o.criteria??[]){if(a.kind==="outputs")for(let l of a.outputs)i(n.has(l),"gate",o.id,"criteria",l);if(a.kind==="kpis")for(let l of a.kpis)i(s("kpi",l),"gate",o.id,"criteria",l);a.kind==="activities"&&i(s("stage",a.stage),"gate",o.id,"criteria",a.stage)}}for(let o of t.kpis??[])i(s("stage",o.stage),"kpi",o.id,"stage",o.stage),o.since&&i(s("stage",o.since),"kpi",o.id,"since",o.since);for(let o of Wt(t).values())i(s("stage",o.source),"link",_t(o),"source",o.source),i(s("stage",o.target),"link",_t(o),"target",o.target);return e}var Di=t=>t.key==="duplicate"?`${t.item} ${t.id} is repeated`:t.key==="missing"?`${t.item} ${t.id} \xB7 ${t.field}: "${t.to}" does not exist`:t.key==="twoGates"?`two gates after stage ${t.stage} (one per stage)`:t.key==="limit"?`more than ${t.max} ${t.item}s`:`no ${t.item} left`;function ip(t,e,s){return e==="stage"?Ma(t,s):e==="role"?Da(t,s):e==="gate"?Pa(t,s):e==="kpi"?{...t,kpis:(t.kpis??[]).filter(n=>n.id!==s),gates:(t.gates??[]).map(n=>({...n,criteria:(n.criteria??[]).map(i=>i.kind==="kpis"?{...i,kpis:i.kpis.filter(r=>r!==s)}:i).filter(i=>!(i.kind==="kpis"&&!i.kpis.length))}))}:e==="link"?{...t,links:(t.links??[]).filter(n=>_t(n)!==s)}:e==="way"?t:Mi(t,e,me(t,e).filter(n=>n.id!==s))}var rp={lane:{inside:!0},stage:{scope:"initiative",optional:!1}},ja=(t,e,s)=>e[s]??rp[t]?.[s];function op(t,e,s={}){let n=[],i=Fa(t),r=Fa(e),o=(u,y)=>u.filter($=>y.includes($)),a=(u,y)=>{let $=u.stages.findIndex(m=>m.id===y);return u.stages[$].col??$};(o(i,r).some(u=>a(t,u)!==a(e,u))||!Ii(o(i,r),o(r,i)))&&n.push({key:"way::order",item:"way",id:"",field:"order",kind:"set",before:i,after:r,risky:!1});for(let u of["subitem","next","discard"])Ii(t[u],e[u])||n.push({key:`way::${u}`,item:"way",id:"",field:u,kind:"set",before:t[u],after:e[u],risky:!1});for(let u of["lane","role","phase","stage","gate","kpi"]){let y=new Map(me(t,u).map(m=>[m.id,m])),$=new Map(me(e,u).map(m=>[m.id,m]));for(let[m,w]of $){let h=y.get(m);if(!h){n.push({key:`${u}:${m}`,item:u,id:m,kind:"add",after:w,risky:!1});continue}for(let b of np[u])Ii(ja(u,h,b),ja(u,w,b))||n.push({key:`${u}:${m}:${b}`,item:u,id:m,field:b,kind:"set",before:h[b],after:w[b],risky:u==="gate"&&(b==="approver"&&!!et(h[b])||b==="criteria")})}for(let[m,w]of y)if(!$.has(m)){let h=u==="stage"&&$.has(s[m])?s[m]:void 0;n.push({key:`${u}:${m}`,item:u,id:m,kind:"remove",before:w,risky:!h,...h&&{into:h}})}}let c=Wt(t),d=Wt(e);for(let[u,y]of d)c.has(u)||n.push({key:`link:${u}`,item:"link",id:u,kind:"add",after:y,risky:!1});let f=new Set(t.stages.filter(u=>!e.stages.some(y=>y.id===u.id)).map(u=>u.id));for(let[u,y]of c)!d.has(u)&&!f.has(y.source)&&!f.has(y.target)&&n.push({key:`link:${u}`,item:"link",id:u,kind:"remove",before:y,risky:!0});return n}function ap(t,e,s){let n=structuredClone(t),i={add:0,set:1,remove:2},r=["lane","role","phase","stage","gate","kpi","link","way"],o=[...s].sort((a,l)=>i[a.kind]-i[l.kind]||r.indexOf(a.item)-r.indexOf(l.item));for(let a of o)if(a.kind==="remove")n=ip(n,a.item,a.id);else if(a.item==="link")a.kind==="add"&&!Wt(n).has(a.id)&&(n={...n,links:[...n.links??[],a.after]});else if(a.item==="way")if(a.field==="order"){let l=new Map(e.stages.map((c,d)=>[c.id,c.col??d]));n={...n,stages:n.stages.map(c=>l.has(c.id)?{...c,col:l.get(c.id)}:c)}}else n={...n,[a.field]:a.after};else a.kind==="add"?n=Mi(n,a.item,[...me(n,a.item),structuredClone(a.after)]):n=Mi(n,a.item,me(n,a.item).map(l=>l.id===a.id?{...l,[a.field]:structuredClone(a.after)}:l));return{...n,links:[...(n.links??[]).filter(a=>a.source===Dt||a.target===Dt),...Wt(n).values()]}}var lp={"stage.lane":"lane","stage.phase":"phase","stage.roles":"role","role.lane":"lane","gate.after":"stage","gate.approver":"role","gate.on_fail":"stage","gate.roles":"role","kpi.stage":"stage","kpi.since":"stage","way.order":"stage"};function cp(t,e,s,n,i){if(et(s)===void 0)return i.empty;let r=lp[`${t}.${e}`],o=a=>{for(let l of n){let c=r==="role"?(l.roles??[]).find(d=>d.id===a)?.acronym:r==="lane"?l.lanes.find(d=>d.id===a)?.name:r==="phase"?l.phases.find(d=>d.id===a)?.name:r==="stage"?l.stages.find(d=>d.id===a)?.name:void 0;if(c)return c}return a};return r?Array.isArray(s)?s.map(a=>o(String(a))).join(e==="order"?" \u2192 ":", "):o(String(s)):typeof s=="boolean"?s?i.yes:i.no:e==="criteria"?s.map(i.criteria).join(" \xB7 "):e==="copilot"?s.instructions||s.actions?.join(", ")||i.empty:e==="subitem"?s.plural:e==="next"?s.way:Array.isArray(s)?s.map(a=>String(typeof a=="object"&&a?a.name??a.label??"":a)).join(", "):String(s)}function up(t,e){let s=t.after??t.before,n=r=>e.map(o=>r(o)?.find(a=>a.id===t.id)).find(Boolean);if(t.item==="way")return"";if(t.item==="link"){let[r,o]=t.id.split(">"),a=l=>e.map(c=>c.stages.find(d=>d.id===l)?.name).find(Boolean)??l;return`${a(r)} \u2192 ${a(o)}`}return t.item==="role"?s?.acronym??n(r=>r.roles)?.acronym??t.id:n(r=>me(r,t.item))?.name??s?.name??t.id}var Ka=/\b(medir|medi[çc][ãa]o|medida|resultado|meta|measur\w*|outcome|kpi)\b/i;function tt(t){let e=t.gates??[],s=new Map;t.stages.forEach((a,l)=>s.set(a.id,2*l));for(let a of e)s.set(a.id,(s.get(a.after)??0)+1);let n=[...t.stages.flatMap(a=>(a.outputs??[]).map(l=>({at:s.get(a.id),by:a.id,kind:"stage",output:l}))),...e.flatMap(a=>(a.outputs??[]).map(l=>({at:s.get(a.id),by:a.id,kind:"gate",output:l})))].sort((a,l)=>a.at-l.at),i={},r={},o=(a,l)=>{(r[a]??=[]).includes(l)||r[a].push(l)};for(let a of t.stages){let l=s.get(a.id);i[a.id]=(a.inputs??[]).map(c=>{if((a.outside??[]).includes(c))return{name:c,kind:"outside"};let d=n.filter(y=>y.output.name.trim().toLowerCase()===c.trim().toLowerCase()),f=d.filter(y=>y.at<l).at(-1),u=f??d[0];return u?(o(u.output.id,a.id),{name:c,kind:u.kind,from:u.by,output:u.output.id,...f?{}:{late:!0}}):{name:c,kind:"nowhere"}})}for(let a of e)for(let l of a.criteria??[])if(l.kind==="outputs")for(let c of l.outputs)o(c,a.id);for(let a of Object.keys(r))r[a].sort((l,c)=>(s.get(l)??0)-(s.get(c)??0));return{uses:t.stages.some(a=>(a.inputs??[]).length),inputs:i,receivers:r}}var Ua=/^(dev|desenvolvimento|qa|hml|homolog(a[çc][ãa]o)?|staging|stage|uat|prd|prod|produ[çc][ãa]o|production|sandbox)$/i,fp=/(^|\s)(daily|dailies|planning|planejamento|refinement|refinamento|grooming|retro|retrospectiva|retrospective|sprint review|review da sprint|stand-?up)(\s|$)/i,dp=/(^|\s)(owner|lead|leader|manager|master|analyst|engineer|developer|designer|tester|architect|director|head|coordinator|specialist|team|squad|gerente|l[ií]der|analista|engenheir[oa]|desenvolvedor[a]?|arquitet[oa]|diretor[a]?|coordenador[a]?|especialista|time|equipe|comit[êe]|qualidade|produto|neg[óo]cio|dono|respons[áa]vel)(\s|$)/i,pp=/^[A-ZÀ-Ý][a-zà-ÿ]+(\s+(da|de|do|dos|das|e)?\s*[A-ZÀ-Ý][a-zà-ÿ]+){1,2}$/;function _i(t){let e=[],s=t.stages,n=t.gates??[],i=t.roles??[],r=c=>s.find(d=>d.id===c)?.name??c;for(let c of s.slice(0,-1))(c.outputs??[]).length||c.optional||e.push({key:"outputs",at:{stage:c.id},en:`\xAB${c.name}\xBB delivers nothing: what comes out of it?`,pt:`\xAB${c.name}\xBB n\xE3o entrega nada: o que sai dela?`});s.length>1&&!n.length&&e.push({key:"noGate",en:"No gate: where does someone decide the work goes on?",pt:"Nenhum gate: onde algu\xE9m decide que o trabalho segue?"});let o=new Set(i.map(c=>c.acronym.toLowerCase()).concat(i.map(c=>c.id.toLowerCase()))),a=(c,d)=>!!d&&(d===c.id||d.toLowerCase()===c.acronym.toLowerCase());for(let c of n)c.approver?i.length&&!o.has(c.approver.toLowerCase())&&e.push({key:"unknownApprover",at:{gate:c.id},en:`The gate \xAB${c.name}\xBB is approved by \xAB${c.approver}\xBB, which is not one of the roles`,pt:`O gate \xAB${c.name}\xBB \xE9 aprovado por \xAB${c.approver}\xBB, que n\xE3o \xE9 um dos pap\xE9is`}):e.push({key:"approver",at:{gate:c.id},en:`Nobody approves the gate \xAB${c.name}\xBB`,pt:`Ningu\xE9m aprova o gate \xAB${c.name}\xBB`}),(c.criteria??[]).length||e.push({key:"criteria",at:{gate:c.id},en:`The gate \xAB${c.name}\xBB (after \xAB${r(c.after)}\xBB) says nothing about what must be ready`,pt:`O gate \xAB${c.name}\xBB (depois de \xAB${r(c.after)}\xBB) n\xE3o diz o que precisa estar pronto`});for(let c of t.phases){if(Ua.test(c.name.trim())||Ua.test(c.id)){e.push({key:"environment",at:{phase:c.id},en:`The phase \xAB${c.name}\xBB is an environment: it is where stages happen (their \xABwhere\xBB), not a milestone`,pt:`A fase \xAB${c.name}\xBB \xE9 um ambiente: \xE9 onde as etapas acontecem (\xABonde\xBB), n\xE3o um marco`});continue}let d=s.filter(f=>f.phase===c.id);t.phases.length>1&&d.length&&!d.some(f=>(f.outputs??[]).length||n.some(u=>u.after===f.id))&&e.push({key:"phase",at:{phase:c.id},en:`The phase \xAB${c.name}\xBB has no deliverable and no gate closes it`,pt:`A fase \xAB${c.name}\xBB n\xE3o tem entrega e nenhum gate a fecha`})}s.length>=3&&!s.some(c=>Ka.test(c.name)||(c.outputs??[]).some(d=>d.kpi))&&e.push({key:"measure",en:"No stage measures the result: what number shows it worked, and where is it measured?",pt:"Nenhuma etapa mede o resultado: que n\xFAmero mostra que deu certo, e onde se mede?"});for(let c of s)fp.test(c.name)&&e.push({key:"ritual",at:{stage:c.id},en:`\xAB${c.name}\xBB is a ritual (it has a cadence): it stays out of the flow`,pt:`\xAB${c.name}\xBB \xE9 um ritual (tem cad\xEAncia): fica fora do fluxo`});for(let c of t.lanes)s.length&&!s.some(d=>d.lane===c.id)&&e.push({key:"lane",at:{lane:c.id},en:`No stage is led by \xAB${c.name}\xBB`,pt:`Nenhuma etapa \xE9 liderada por \xAB${c.name}\xBB`});for(let c of i){let d=(c.name??"").trim();d&&pp.test(d)&&!dp.test(d)&&e.push({key:"person",at:{role:c.id},en:`\xAB${d}\xBB reads as a person: a role is a function (who does it is a lane's \xABsub\xBB)`,pt:`\xAB${d}\xBB parece uma pessoa: papel \xE9 uma fun\xE7\xE3o (quem faz fica no \xABsub\xBB da raia)`});let f=s.some(u=>(u.roles??[]).some(y=>a(c,y)))||n.some(u=>a(c,u.approver));s.length&&!f&&e.push({key:"idleRole",at:{role:c.id},en:`The role \xAB${c.acronym}\xBB takes part in no stage and approves no gate`,pt:`O papel \xAB${c.acronym}\xBB n\xE3o participa de nenhuma etapa nem aprova gate`})}let l=tt(t);if(l.uses){let c=d=>s.find(f=>f.id===d)?.name??n.find(f=>f.id===d)?.name??d??"";for(let d of s)for(let f of l.inputs[d.id]??[])f.kind==="nowhere"?e.push({key:"inputNowhere",at:{stage:d.id},en:`\xAB${d.name}\xBB receives \xAB${f.name}\xBB and nothing before it delivers that: does it come from outside?`,pt:`\xAB${d.name}\xBB recebe \xAB${f.name}\xBB e nada antes dela entrega isso: vem de fora?`}):f.late&&e.push({key:"lateInput",at:{stage:d.id},en:`\xAB${d.name}\xBB receives \xAB${f.name}\xBB, which only \xAB${c(f.from)}\xBB delivers, at or after it`,pt:`\xAB${d.name}\xBB recebe \xAB${f.name}\xBB, que s\xF3 \xAB${c(f.from)}\xBB entrega, nela ou depois dela`});for(let d of s.slice(0,-1))for(let f of d.outputs??[])!f.kpi&&!(l.receivers[f.id]??[]).length&&e.push({key:"unusedOutput",at:{stage:d.id,output:f.id},en:`\xAB${f.name}\xBB comes out of \xAB${d.name}\xBB and no stage or gate receives it: who is it for?`,pt:`\xAB${f.name}\xBB sai de \xAB${d.name}\xBB e nenhuma etapa nem gate o recebe: \xE9 para quem?`});for(let d of n)(d.outputs??[]).length||e.push({key:"gateNoOutputs",at:{gate:d.id},en:`The gate \xAB${d.name}\xBB says nothing about what comes out of it (the decision, what was approved)`,pt:`O gate \xAB${d.name}\xBB n\xE3o diz o que sai dele (a decis\xE3o, o que foi aprovado)`})}return e}var hp={prod:"DCE6FF",tech:"DDF3E6",qa:"FFE9D1",forge:"ECE0FF",slate:"E8EAED",coral:"FFE0DA"},Ya=["prod","tech","qa","forge","slate","coral"],za={en:{summary:"Summary",stages:"Stages",gates:"Gates",roles:"Roles (RACI)",outputs:"Outputs",kpis:"KPIs",checklist:"Gate checklist",way:"Way of working",phases:"Phases",nStages:"Stages",nGates:"Gates",nRoles:"Roles",look:"To look at",none:"Nothing to look at",raci:"R leads (the stage\u2019s lane) \xB7 C takes part \xB7 A approves the gate after it",id:"id",order:"#",phase:"Phase",stage:"Stage",lane:"Led by",roles2:"Take part",question:"Key question",inputs:"Comes in",delivers:"Delivers",activities:"Activities",where:"Where",wip:"Limit",gate:"Gate",after:"After",approver:"Approves",criteria:"Criteria",onFail:"If it fails",results:"Results",role:"Role",name:"Name",output:"Output",description:"Description",by:"By",kpi:"KPI",unit:"Unit",source:"Source",since:"Since",check:"What must be ready",ok:"OK?",note:"Note",who:"Who confirms",yes:"yes",outputsOf:t=>`Outputs: ${t}`,activitiesOf:t=>`Activities of \xAB${t}\xBB done`,subitems:(t,e)=>`At least ${t} sub-items \xAB${e}\xBB`,kpisOf:t=>`KPIs: ${t}`,metrics:"Metrics",gateOut:"What comes out",thread:"Thread",fromCol:"From",toCol:"To",outsideWord:"from outside",nobody:"nobody"},pt:{summary:"Resumo",stages:"Etapas",gates:"Gates",roles:"Pap\xE9is (RACI)",outputs:"Entregas",kpis:"KPIs",checklist:"Checklist de gate",way:"Jeito de trabalhar",phases:"Fases",nStages:"Etapas",nGates:"Gates",nRoles:"Pap\xE9is",look:"Para olhar",none:"Nada para olhar",raci:"R lidera (a raia da etapa) \xB7 C participa \xB7 A aprova o gate depois dela",id:"id",order:"#",phase:"Fase",stage:"Etapa",lane:"Lidera",roles2:"Participam",question:"Pergunta-chave",inputs:"Entra",delivers:"Entrega",activities:"Atividades",where:"Onde",wip:"Limite",gate:"Gate",after:"Depois de",approver:"Quem aprova",criteria:"Crit\xE9rios",onFail:"Se n\xE3o passar",results:"Resultados",role:"Papel",name:"Nome",output:"Entrega",description:"Descri\xE7\xE3o",by:"Por",kpi:"KPI",unit:"Unidade",source:"Fonte",since:"Desde",check:"O que precisa estar pronto",ok:"OK?",note:"Nota",who:"Quem confirma",yes:"sim",outputsOf:t=>`Entregas: ${t}`,activitiesOf:t=>`Atividades de \xAB${t}\xBB feitas`,subitems:(t,e)=>`Pelo menos ${t} subitens \xAB${e}\xBB`,kpisOf:t=>`KPIs: ${t}`,metrics:"M\xE9tricas",gateOut:"O que sai",thread:"Fio",fromCol:"De",toCol:"Para",outsideWord:"de fora",nobody:"ningu\xE9m"}},js=za,mp={bold:!0,fill:"E8EEF7"},De=t=>t.map(e=>({v:e,...mp})),_e=t=>(t??[]).filter(Boolean).join("; ");function gp(t,e,s="pt"){let n=za[s],i=p=>{let v=e.lanes.findIndex(T=>T.id===p),N=e.lanes[v];return N?hp[N.color??Ya[v%Ya.length]]:void 0},r=p=>e.lanes.find(v=>v.id===p)?.name??p,o=p=>e.phases.find(v=>v.id===p)?.name??p,a=p=>p?e.stages.find(v=>v.id===p)?.name??p:"",l=p=>e.stages.flatMap(v=>v.outputs??[]).find(v=>v.id===p)?.name??p,c=p=>(e.kpis??[]).find(v=>v.id===p)?.name??p,d=p=>p?(e.roles??[]).find(v=>v.id===p)?.acronym??p:"",f=p=>p.kind==="outputs"?n.outputsOf(p.outputs.map(l).join(", ")):p.kind==="activities"?n.activitiesOf(a(p.stage)):p.kind==="subitems"?n.subitems(p.min,p.result):n.kpisOf(p.kpis.map(c).join(", ")),u=e.gates??[],y=e.roles??[],$=_i(e),m=tt(e),w=p=>e.stages.find(v=>v.id===p)?.name??u.find(v=>v.id===p)?.name??"",h=p=>(m.inputs[p]??[]).map(v=>v.kind==="outside"?`${v.name} (${n.outsideWord})`:v.from?`${v.name} (${w(v.from)})`:v.name),b={key:"summary",name:n.summary,header:!1,columns:[{title:"",width:26},{title:"",width:90}],rows:[[{v:n.way,bold:!0},{v:t,bold:!0}],[n.phases,e.phases.map(p=>p.name).join(" \u2192 ")],[n.nStages,e.stages.length],[n.nGates,u.length],[n.nRoles,y.map(p=>p.acronym).join(", ")],[],[{v:n.look,bold:!0},$.length?"":n.none],...$.map(p=>["",{v:p[s],wrap:!0}])]},g={key:"stages",name:n.stages,header:!0,columns:[{title:n.order,width:5},{title:n.id,width:14},{title:n.phase,width:14},{title:n.stage,width:22},{title:n.lane,width:16},{title:n.roles2,width:16},{title:n.question,width:32},{title:n.inputs,width:30},{title:n.delivers,width:34},{title:n.metrics,width:30},{title:n.activities,width:30},{title:n.where,width:10},{title:n.wip,width:8},{title:n.description,width:40}],rows:[]};g.rows=[De(g.columns.map(p=>p.title)),...e.stages.map((p,v)=>[v+1,p.id,o(p.phase),{v:p.name,bold:!0},{v:r(p.lane),fill:i(p.lane)},(p.roles??[]).map(d).join(", "),{v:p.question??"",wrap:!0},{v:_e(h(p.id)),wrap:!0},{v:_e((p.outputs??[]).map(N=>N.name)),wrap:!0},{v:_e(p.metrics),wrap:!0},{v:_e((p.activities??[]).map(N=>N.name)),wrap:!0},p.where??"",p.wip??"",{v:p.description??"",wrap:!0}])];let A={key:"gates",name:n.gates,header:!0,columns:[{title:n.id,width:16},{title:n.gate,width:26},{title:n.after,width:20},{title:n.approver,width:12},{title:n.criteria,width:46},{title:n.onFail,width:20},{title:n.gateOut,width:34},{title:n.metrics,width:30},{title:n.results,width:20}],rows:[]};A.rows=[De(A.columns.map(p=>p.title)),...u.map(p=>[p.id,{v:p.name,bold:!0},a(p.after),d(p.approver),{v:(p.criteria??[]).map(f).join(`
|
|
141
|
-
`),wrap:!0},a(
|
|
139
|
+
`,s)+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 s=js(e),n=et(s);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let s=js(e),n=et(s);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,s){return this.type!=="comment"||this.indent<=s?!1:e.every(n=>n.type==="newline"||n.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;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};xa.Parser=Li});var Ia=L(Wt=>{"use strict";var qa=bi(),Ip=xt(),Dt=Lt(),Pp=gn(),Mp=F(),Dp=Ci(),Ca=Ti();function La(t){let e=t.prettyErrors!==!1;return{lineCounter:t.lineCounter||e&&new Dp.LineCounter||null,prettyErrors:e}}function Wp(t,e={}){let{lineCounter:s,prettyErrors:n}=La(e),i=new Ca.Parser(s?.addNewLine),r=new qa.Composer(e),o=Array.from(r.compose(i.parse(t)));if(n&&s)for(let a of o)a.errors.forEach(Dt.prettifyError(t,s)),a.warnings.forEach(Dt.prettifyError(t,s));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function Ta(t,e={}){let{lineCounter:s,prettyErrors:n}=La(e),i=new Ca.Parser(s?.addNewLine),r=new qa.Composer(e),o=null;for(let a of r.compose(i.parse(t),!0,t.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Dt.YAMLParseError(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&s&&(o.errors.forEach(Dt.prettifyError(t,s)),o.warnings.forEach(Dt.prettifyError(t,s))),o}function _p(t,e,s){let n;typeof e=="function"?n=e:s===void 0&&e&&typeof e=="object"&&(s=e);let i=Ta(t,s);if(!i)return null;if(i.warnings.forEach(r=>Pp.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:n},s))}function Fp(t,e,s){let n=null;if(typeof e=="function"||Array.isArray(e)?n=e:s===void 0&&e&&(s=e),typeof s=="string"&&(s=s.length),typeof s=="number"){let i=Math.round(s);s=i<1?void 0:i>8?{indent:8}:{indent:i}}if(t===void 0){let{keepUndefined:i}=s??e??{};if(!i)return}return Mp.isDocument(t)&&!n?t.toString(s):new Ip.Document(t,n,s).toString(s)}Wt.parse=_p;Wt.parseAllDocuments=Wp;Wt.parseDocument=Ta;Wt.stringify=Fp});var Ma=L(j=>{"use strict";var jp=bi(),Rp=xt(),Bp=Qn(),Ii=Lt(),Kp=pt(),xe=F(),Up=$e(),Yp=V(),zp=Ae(),Vp=Ee(),Gp=_s(),Jp=xi(),Xp=Ci(),Hp=Ti(),Bs=Ia(),Pa=lt();j.Composer=jp.Composer;j.Document=Rp.Document;j.Schema=Bp.Schema;j.YAMLError=Ii.YAMLError;j.YAMLParseError=Ii.YAMLParseError;j.YAMLWarning=Ii.YAMLWarning;j.Alias=Kp.Alias;j.isAlias=xe.isAlias;j.isCollection=xe.isCollection;j.isDocument=xe.isDocument;j.isMap=xe.isMap;j.isNode=xe.isNode;j.isPair=xe.isPair;j.isScalar=xe.isScalar;j.isSeq=xe.isSeq;j.Pair=Up.Pair;j.Scalar=Yp.Scalar;j.YAMLMap=zp.YAMLMap;j.YAMLSeq=Vp.YAMLSeq;j.CST=Gp;j.Lexer=Jp.Lexer;j.LineCounter=Xp.LineCounter;j.Parser=Hp.Parser;j.parse=Bs.parse;j.parseAllDocuments=Bs.parseAllDocuments;j.parseDocument=Bs.parseDocument;j.stringify=Bs.stringify;j.visit=Pa.visit;j.visitAsync=Pa.visitAsync});var pe=$l(Ma());var _t="_next";var se=t=>t.approvals?.length?t.approvals:t.approver?[{by:t.approver}]:[],Da=(t,e)=>{let s=se(t).find(n=>n.by===e);return s?s.when??null:void 0};function ce(t,e){let s=t.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,34)||"item",n=new Set(e);if(!n.has(s))return s;for(let i=2;;i++)if(!n.has(`${s}-${i}`))return`${s}-${i}`}function Wa(t,e){let s=t.stages.find(a=>a.id===e);if(!s||t.stages.length<2)return t;let n=new Set((s.outputs??[]).map(a=>a.id)),i=(t.links??[]).filter(a=>a.target===e&&a.kind==="next").map(a=>a.source),r=(t.links??[]).filter(a=>a.source===e&&a.kind==="next").map(a=>a.target),o=new Set((t.kpis??[]).filter(a=>a.stage===e).map(a=>a.id));return{...t,kpis:(t.kpis??[]).filter(a=>!o.has(a.id)).map(a=>a.since===e?{...a,since:null}:a),stages:t.stages.filter(a=>a.id!==e),gates:(t.gates??[]).filter(a=>a.after!==e).map(a=>({...a,on_fail:a.on_fail===e?null:a.on_fail,criteria:(a.criteria??[]).map(l=>l.kind==="outputs"?{...l,outputs:l.outputs.filter(c=>!n.has(c))}:l.kind==="kpis"?{...l,kpis:l.kpis.filter(c=>!o.has(c))}:l).filter(l=>!(l.kind==="outputs"&&!l.outputs.length)&&!(l.kind==="activities"&&l.stage===e)&&!(l.kind==="kpis"&&!l.kpis.length))})),links:[...(t.links??[]).filter(a=>a.source!==e&&a.target!==e),...i.flatMap(a=>r.filter(l=>l!==a).map(l=>({source:a,target:l,kind:"next",label:""})))],triggers:(t.triggers??[]).filter(a=>a.stage!==e).map(a=>({...a,activities:a.activities.filter(l=>l.stage!==e)})).filter(a=>a.activities.length),next:t.next&&n.has(t.next.per)?null:t.next,suggested:(t.suggested??[]).filter(a=>a!==e&&!(t.gates??[]).some(l=>l.id===a&&l.after===e))}}var _a=(t,e)=>({...t,gates:(t.gates??[]).filter(s=>s.id!==e),suggested:(t.suggested??[]).filter(s=>s!==e)});function Fa(t,e){return{...t,roles:(t.roles??[]).filter(s=>s.id!==e),stages:t.stages.map(s=>({...s,roles:(s.roles??[]).filter(n=>n!==e),outputs:(s.outputs??[]).map(n=>n.by===e?{...n,by:null}:n)})),gates:(t.gates??[]).map(s=>{let n=s.approvals?.filter(i=>i.by!==e);return{...s,approver:s.approver===e?null:s.approver,roles:(s.roles??[]).filter(i=>i!==e),approvals:n?.length?n:void 0}})}}var Qp=/^[a-z0-9-]{1,40}$/,W=(t,e)=>(Array.isArray(t)?t.map(String).join(" \xB7 "):t==null?"":String(t)).slice(0,e),qe=(t,e,s)=>(Array.isArray(t)?t:t==null?[]:[t]).map(n=>W(n,e)).filter(Boolean).slice(0,s),Zp=t=>t.split(/[\s/·-]+/).filter(e=>e.length>2||/^[A-Z]/.test(e)).map(e=>e[0].toUpperCase()).join("").slice(0,8)||t.slice(0,20);function ed(t){let e=(t.lanes??[]).slice(0,8);return{...t,lanes:e.map(s=>({...s,id:W(s.id,60),name:W(s.name,80)||W(s.id,80),sub:W(s.sub,140)})),roles:(t.roles??[]).slice(0,30).map(s=>{let n=W(s.acronym,200),i=n.length>20;return{...s,id:W(s.id,60),acronym:i?Zp(n):n||"X",name:W(s.name,140)||(i?n.slice(0,140):""),lane:W(s.lane,60)}}),phases:(t.phases??[]).slice(0,8).map(s=>({...s,id:W(s.id,60),name:W(s.name,80)||W(s.id,80)})),stages:(t.stages??[]).slice(0,30).map(s=>({...s,id:W(s.id,60),name:W(s.name,80)||W(s.id,80),description:W(s.description,2e3),question:W(s.question,140),inputs:qe(s.inputs,140,12),outside:qe(s.outside,140,12),metrics:qe(s.metrics,140,8),roles:qe(s.roles,60,20),outputs:(s.outputs??[]).slice(0,12).map(n=>({...n,name:W(n.name,120)||W(n.id,120),description:W(n.description,140)})),activities:(s.activities??[]).slice(0,20).map(n=>({...n,name:W(n.name,120)||W(n.id,120)})),fields:(s.fields??[]).slice(0,12).map(n=>({...n,name:W(n.name,80)||W(n.id,80),kind:"text"})),copilot:{instructions:W(s.copilot?.instructions,2e3),actions:qe(s.copilot?.actions,80,8)}})),gates:(t.gates??[]).slice(0,12).map(s=>({...s,name:W(s.name,80)||W(s.id,80),description:W(s.description,2e3),metrics:qe(s.metrics,140,8),roles:qe(s.roles,60,20),outputs:(s.outputs??[]).slice(0,12).map(n=>({...n,name:W(n.name,120)||W(n.id,120),description:W(n.description,140)})),results:(s.results??[]).slice(0,6).map(n=>({...n,label:W(n.label,40)||W(n.id,40)})),criteria:(s.criteria??[]).slice(0,6)})),work_types:(t.work_types??[]).slice(0,12).map(s=>({...s,name:W(s.name,40)||W(s.id,40),parents:qe(s.parents,60,6)})),triggers:(t.triggers??[]).slice(0,12).map(s=>({...s,question:W(s.question,200),activities:(s.activities??[]).slice(0,12).map(n=>({...n,name:W(n.name,120)||W(n.id,120)}))})),links:(t.links??[]).slice(0,40),subitem:t.subitem&&{...t.subitem,name:W(t.subitem.name,40),plural:W(t.subitem.plural,40),results:(t.subitem.results??[]).slice(0,8).map(s=>({...s,label:W(s.label,40)||W(s.id,40)}))},en:{}}}function ja(t){let e=ed(t),s=(h,b=[])=>{let g=[...b],A=new Map;for(let E of h){let x=Qp.test(E)&&!g.includes(E)?E:ce(E.slice(0,34),g);g.push(x),A.has(E)||A.set(E,x)}return A},n=s(e.lanes.map(h=>h.id)),i=s((e.roles??[]).map(h=>h.id)),r=s(e.phases.map(h=>h.id)),o=s(e.stages.map(h=>h.id)),a=s((e.gates??[]).map(h=>h.id)),l=s((e.work_types??[]).map(h=>h.id)),c=s([...e.stages.flatMap(h=>[...(h.outputs??[]).map(b=>b.id),...(h.activities??[]).map(b=>b.id)]),...(e.gates??[]).flatMap(h=>(h.outputs??[]).map(b=>b.id)),...(e.triggers??[]).flatMap(h=>h.activities.map(b=>b.id))]),p=s((e.subitem?.results??[]).map(h=>h.id)),f=(h,b)=>b!=null&&h.has(b)?h.get(b):null,u=(h,b)=>(b??[]).filter(g=>h.has(g)).map(g=>h.get(g)),y=e.lanes[0]?n.get(e.lanes[0].id):"",$=e.phases[0]?r.get(e.phases[0].id):"",m=new Set(e.stages.flatMap(h=>(h.outputs??[]).map(b=>b.id))),w=new Set((e.kpis??[]).filter(h=>o.has(h.stage)).map(h=>h.id));return{...e,lanes:e.lanes.map(h=>({...h,id:n.get(h.id)})),roles:(e.roles??[]).map(h=>({...h,id:i.get(h.id),lane:f(n,h.lane)??y})),phases:e.phases.map(h=>({...h,id:r.get(h.id)})),subitem:e.subitem&&{...e.subitem,results:e.subitem.results.map(h=>({...h,id:p.get(h.id)}))},work_types:(e.work_types??[]).map(h=>({...h,id:l.get(h.id),parents:u(l,h.parents)})),stages:e.stages.map(h=>({...h,id:o.get(h.id),phase:f(r,h.phase)??$,lane:f(n,h.lane)??y,roles:u(i,h.roles),work_type:f(l,h.work_type),outputs:(h.outputs??[]).map(b=>({...b,id:c.get(b.id),by:f(i,b.by)})),activities:(h.activities??[]).map(b=>({...b,id:c.get(b.id)})),fields:[...s((h.fields??[]).map(b=>b.id))].map(([,b],g)=>({...(h.fields??[])[g],id:b})),scope:h.scope==="subitem"&&!e.subitem?"initiative":h.scope})),gates:(e.gates??[]).filter(h=>o.has(h.after)).map(h=>({...h,id:a.get(h.id),after:o.get(h.after),on_fail:f(o,h.on_fail),approver:f(i,h.approver),approvals:h.approvals?.filter(b=>i.has(b.by)).map(b=>({...b,by:i.get(b.by)})),roles:u(i,h.roles),outputs:(h.outputs??[]).map(b=>({...b,id:c.get(b.id),by:f(i,b.by)})),results:[...s(h.results.map(b=>b.id))].map(([,b],g)=>({...h.results[g],id:b})),criteria:(h.criteria??[]).map(b=>b.kind==="outputs"?{...b,outputs:b.outputs.filter(g=>m.has(g)).map(g=>c.get(g))}:b.kind==="activities"?{...b,stage:f(o,b.stage)??""}:b.kind==="kpis"?{...b,kpis:b.kpis.filter(g=>w.has(g))}:{...b,result:f(p,b.result)??""}).filter(b=>b.kind==="outputs"?b.outputs.length>0:b.kind==="activities"?!!b.stage:b.kind==="kpis"?b.kpis.length>0:!!b.result)})),links:(e.links??[]).filter(h=>o.has(h.source)&&o.has(h.target)).map(h=>({...h,source:o.get(h.source),target:o.get(h.target)})),triggers:(e.triggers??[]).filter(h=>o.has(h.stage)).map(h=>({...h,stage:o.get(h.stage),activities:h.activities.filter(b=>o.has(b.stage)).map(b=>({...b,id:c.get(b.id),stage:o.get(b.stage)}))})).filter(h=>h.activities.length),next:e.next&&m.has(e.next.per)?{...e.next,per:c.get(e.next.per)}:null,suggested:(e.suggested??[]).map(h=>o.get(h)??a.get(h)).filter(h=>!!h),kpis:(e.kpis??[]).filter(h=>o.has(h.stage)).map(h=>({...h,stage:o.get(h.stage),since:f(o,h.since)}))}}var Ra="hubs.way/v1",Mi="stage-door/v1",td=new Set([Ra,Mi]);function sd(t,e,s,n=Ra){let{en:i,...r}=e,o=n===Mi?nd(r):r,a={format:n,name:t,...o};return s==="json"?JSON.stringify(a,null,2)+`
|
|
140
|
+
`:(0,pe.stringify)(a,{lineWidth:0})}function nd(t){let{suggested:e,...s}=t,n=id(s);return Pi({...s,stages:s.stages.map(({copilot:i,fields:r,col:o,outside:a,...l})=>({...l,inputs:(l.inputs??[]).map(c=>a?.includes(c)?{name:c}:n.has(c)?{from:n.get(c)}:c)}))})}function id(t){let e=new Map;for(let s of[...t.stages.flatMap(n=>n.outputs??[]),...(t.gates??[]).flatMap(n=>n.outputs??[])])e.has(s.name)||e.set(s.name,s.id);return e}var Pi=t=>Array.isArray(t)?t.map(Pi):tt(t)?Object.fromEntries(Object.entries(t).map(([e,s])=>[e,Pi(s)]).filter(([,e])=>e!=null&&e!==""&&!(Array.isArray(e)&&!e.length))):t,tt=t=>!!t&&typeof t=="object"&&!Array.isArray(t),U=t=>typeof t=="string"?t.trim():"";function rd(t){let e=new pe.LineCounter,s=(0,pe.parseDocument)(t,{lineCounter:e,prettyErrors:!1}),n=q=>{let N=s.getIn(q,!0);return N?.range?e.linePos(N.range[0]).line:1},i={lanes:0,phases:0,stages:0,gates:0,outputs:0};if(s.errors.length){let q=s.errors[0];return{name:"",problems:[{line:e.linePos(q.pos[0]).line,key:"syntax",detail:q.code}],fatal:!0,summary:i}}let r=s.toJS();if(!tt(r)||!td.has(String(r.format))||!(0,pe.isMap)(s.contents))return{name:"",problems:[{line:n(["format"]),key:"format"}],fatal:!0,summary:i};let o=[],a=q=>{let N=r[q];return N==null?[]:!Array.isArray(N)||!(0,pe.isSeq)(s.getIn([q],!0))?(o.push({line:n([q]),key:"shape",what:q}),[]):N.map((d,v)=>{if(tt(d)&&U(d.id))return d;o.push({line:n([q,v]),key:"shape",what:`${q}[${v}]`})}).filter(d=>!!d)},l=a("lanes"),c=a("phases"),p=a("stages"),f=a("gates");if(!l.length)return{name:U(r.name),problems:[...o,{line:n(["lanes"]),key:"noLanes"}],fatal:!0,summary:i};let u=(q,N)=>{let d=new Set;return N.filter(v=>{let O=U(v.id);return d.has(O)?(o.push({line:n([q,r[q].indexOf(v),"id"]),key:"duplicate",what:q,id:O}),!1):(d.add(O),!0)})},y=u("lanes",l),$=u("phases",c),m=new Set(y.map(q=>U(q.id))),w=new Set($.map(q=>U(q.id))),h=u("stages",p).filter(q=>{let N=r.stages.indexOf(q);return m.has(U(q.lane))?$.length&&!w.has(U(q.phase))?(o.push({line:n(["stages",N,"phase"]),key:"phaseUnknown",stage:U(q.id),phase:U(q.phase),phases:[...w].join(", ")}),!1):!0:(o.push({line:n(["stages",N,"lane"]),key:"laneUnknown",stage:U(q.id),lane:U(q.lane),lanes:[...m].join(", ")}),!1)}),b=new Map([...p,...f].flatMap(q=>Array.isArray(q.outputs)?q.outputs:[]).filter(tt).map(q=>[U(q.id),U(q.name)])),g=h.map(q=>{if(!Array.isArray(q.inputs))return q;let N=r.stages.indexOf(q),d=[],v=[];return q.inputs.forEach((O,C)=>{if(typeof O=="string"&&O.trim())d.push(O.trim());else if(tt(O)&&U(O.from)){let D=b.get(U(O.from));D?d.push(D):o.push({line:n(["stages",N,"inputs",C]),key:"inputUnknown",stage:U(q.id),from:U(O.from)})}else tt(O)&&U(O.name)?(d.push(U(O.name)),v.push(U(O.name))):o.push({line:n(["stages",N,"inputs",C]),key:"shape",what:`stages[${N}].inputs[${C}]`})}),{...q,inputs:d,...v.length?{outside:v}:{}}}),A=new Set(h.map(q=>U(q.id))),E=u("gates",f).filter(q=>A.has(U(q.after))?!0:(o.push({line:n(["gates",r.gates.indexOf(q),"after"]),key:"gateUnknown",gate:U(q.id),after:U(q.after)}),!1)),{format:x,name:I,...k}=r,P=ja({...k,lanes:y,phases:$,stages:g,gates:E.map(q=>({...q,results:q.results??[]})),en:{}}),R={lanes:P.lanes.length,phases:P.phases.length,stages:P.stages.length,gates:(P.gates??[]).length,outputs:P.stages.reduce((q,N)=>q+(N.outputs??[]).length,0)};return{name:U(r.name),def:P,problems:o,fatal:!1,summary:R}}var od={way:["order","subitem","next","discard"],lane:["name","sub","inside"],role:["acronym","name","lane"],phase:["name"],stage:["name","lane","phase","roles","description","where","inputs","outside","outputs","activities","fields","question","copilot","metrics","scope","work_type","optional","wip"],gate:["name","after","approver","approvals","on_fail","criteria","results","description","roles","metrics","outputs"],kpi:["name","unit","stage","source","since"],link:[]},Ya={lane:"lanes",role:"roles",phase:"phases",stage:"stages",gate:"gates",kpi:"kpis"},ye=(t,e)=>t[Ya[e]]??[],Wi=(t,e,s)=>({...t,[Ya[e]]:s}),Ft=t=>`${t.source}>${t.target}>${t.kind}`,jt=t=>{let e=new Map;for(let s of t.links??[])s.source!==_t&&s.target!==_t&&!e.has(Ft(s))&&e.set(Ft(s),s);return e};function st(t){if(!(t==null||t==="")){if(Array.isArray(t)){let e=t.map(st).filter(s=>s!==void 0);return e.length?e:void 0}if(typeof t=="object"){let e=Object.entries(t).map(([s,n])=>[s,st(n)]).filter(([,s])=>s!==void 0);return e.length?Object.fromEntries(e.sort(([s],[n])=>s.localeCompare(n))):void 0}return t}}var Di=(t,e)=>JSON.stringify(st(t))===JSON.stringify(st(e)),Ba=t=>t.stages.map((e,s)=>({s:e,k:e.col??s,i:s})).sort((e,s)=>e.k-s.k||e.i-s.i).map(e=>e.s.id);var Ka={lane:6,role:30,phase:6,stage:30,gate:12,kpi:8};function _i(t){let e=[];for(let o of["lane","role","phase","stage","gate","kpi"]){let a=ye(t,o);a.length>Ka[o]&&e.push({key:"limit",item:o,max:Ka[o]});let l=new Set;for(let c of a)l.has(c.id)&&e.push({key:"duplicate",item:o,id:c.id}),l.add(c.id)}for(let o of["lane","phase","stage"])ye(t,o).length||e.push({key:"empty",item:o});(t.links??[]).length>40&&e.push({key:"limit",item:"link",max:40});let s=(o,a)=>ye(t,o).some(l=>l.id===a),n=new Set(t.stages.flatMap(o=>(o.outputs??[]).map(a=>a.id))),i=(o,a,l,c,p)=>{o||e.push({key:"missing",item:a,id:l,field:c,to:p})};for(let o of t.roles??[])i(s("lane",o.lane),"role",o.id,"lane",o.lane);for(let o of t.stages){i(s("lane",o.lane),"stage",o.id,"lane",o.lane),i(s("phase",o.phase),"stage",o.id,"phase",o.phase);for(let a of o.roles??[])i(s("role",a),"stage",o.id,"roles",a);for(let a of o.outputs??[])a.by&&i(s("role",a.by),"stage",o.id,"outputs",a.by)}let r=new Set;for(let o of t.gates??[]){if(i(s("stage",o.after),"gate",o.id,"after",o.after),r.has(o.after)&&e.push({key:"twoGates",stage:o.after}),r.add(o.after),o.approver&&i(s("role",o.approver),"gate",o.id,"approver",o.approver),o.approvals?.length){o.approver&&e.push({key:"approvals",gate:o.id,why:"both"}),o.approvals.length>6&&e.push({key:"approvals",gate:o.id,why:"many"}),new Set(o.approvals.map(a=>a.by)).size<o.approvals.length&&e.push({key:"approvals",gate:o.id,why:"repeated"}),o.approvals.some(a=>(a.when??"").length>80)&&e.push({key:"approvals",gate:o.id,why:"when"});for(let a of new Set(o.approvals.map(l=>l.by)))i(s("role",a),"gate",o.id,"approvals",a)}o.on_fail&&i(s("stage",o.on_fail),"gate",o.id,"on_fail",o.on_fail);for(let a of o.roles??[])i(s("role",a),"gate",o.id,"roles",a);for(let a of o.criteria??[]){if(a.kind==="outputs")for(let l of a.outputs)i(n.has(l),"gate",o.id,"criteria",l);if(a.kind==="kpis")for(let l of a.kpis)i(s("kpi",l),"gate",o.id,"criteria",l);a.kind==="activities"&&i(s("stage",a.stage),"gate",o.id,"criteria",a.stage)}}for(let o of t.kpis??[])i(s("stage",o.stage),"kpi",o.id,"stage",o.stage),o.since&&i(s("stage",o.since),"kpi",o.id,"since",o.since);for(let o of jt(t).values())i(s("stage",o.source),"link",Ft(o),"source",o.source),i(s("stage",o.target),"link",Ft(o),"target",o.target);return e}var ad={both:"use approver or approvals, not both (put the approver in approvals)",many:"at most 6",repeated:"a role approves once",when:"a condition is at most 80 characters"},Fi=t=>t.key==="duplicate"?`${t.item} ${t.id} is repeated`:t.key==="missing"?`${t.item} ${t.id} \xB7 ${t.field}: "${t.to}" does not exist`:t.key==="twoGates"?`two gates after stage ${t.stage} (one per stage). Another approval on the same gate? use approvals:, with when: for the condition`:t.key==="approvals"?`gate ${t.gate} \xB7 approvals: ${ad[t.why]}`:t.key==="limit"?`more than ${t.max} ${t.item}s`:`no ${t.item} left`;function ld(t,e,s){return e==="stage"?Wa(t,s):e==="role"?Fa(t,s):e==="gate"?_a(t,s):e==="kpi"?{...t,kpis:(t.kpis??[]).filter(n=>n.id!==s),gates:(t.gates??[]).map(n=>({...n,criteria:(n.criteria??[]).map(i=>i.kind==="kpis"?{...i,kpis:i.kpis.filter(r=>r!==s)}:i).filter(i=>!(i.kind==="kpis"&&!i.kpis.length))}))}:e==="link"?{...t,links:(t.links??[]).filter(n=>Ft(n)!==s)}:e==="way"?t:Wi(t,e,ye(t,e).filter(n=>n.id!==s))}var cd={lane:{inside:!0},stage:{scope:"initiative",optional:!1}},Ua=(t,e,s)=>e[s]??cd[t]?.[s];function ud(t,e,s={}){let n=[],i=Ba(t),r=Ba(e),o=(u,y)=>u.filter($=>y.includes($)),a=(u,y)=>{let $=u.stages.findIndex(m=>m.id===y);return u.stages[$].col??$};(o(i,r).some(u=>a(t,u)!==a(e,u))||!Di(o(i,r),o(r,i)))&&n.push({key:"way::order",item:"way",id:"",field:"order",kind:"set",before:i,after:r,risky:!1});for(let u of["subitem","next","discard"])Di(t[u],e[u])||n.push({key:`way::${u}`,item:"way",id:"",field:u,kind:"set",before:t[u],after:e[u],risky:!1});for(let u of["lane","role","phase","stage","gate","kpi"]){let y=new Map(ye(t,u).map(m=>[m.id,m])),$=new Map(ye(e,u).map(m=>[m.id,m]));for(let[m,w]of $){let h=y.get(m);if(!h){n.push({key:`${u}:${m}`,item:u,id:m,kind:"add",after:w,risky:!1});continue}for(let b of od[u])Di(Ua(u,h,b),Ua(u,w,b))||n.push({key:`${u}:${m}:${b}`,item:u,id:m,field:b,kind:"set",before:h[b],after:w[b],risky:u==="gate"&&(b==="approver"&&!!st(h[b])||b==="criteria")})}for(let[m,w]of y)if(!$.has(m)){let h=u==="stage"&&$.has(s[m])?s[m]:void 0;n.push({key:`${u}:${m}`,item:u,id:m,kind:"remove",before:w,risky:!h,...h&&{into:h}})}}let c=jt(t),p=jt(e);for(let[u,y]of p)c.has(u)||n.push({key:`link:${u}`,item:"link",id:u,kind:"add",after:y,risky:!1});let f=new Set(t.stages.filter(u=>!e.stages.some(y=>y.id===u.id)).map(u=>u.id));for(let[u,y]of c)!p.has(u)&&!f.has(y.source)&&!f.has(y.target)&&n.push({key:`link:${u}`,item:"link",id:u,kind:"remove",before:y,risky:!0});return n}function fd(t,e,s){let n=structuredClone(t),i={add:0,set:1,remove:2},r=["lane","role","phase","stage","gate","kpi","link","way"],o=[...s].sort((a,l)=>i[a.kind]-i[l.kind]||r.indexOf(a.item)-r.indexOf(l.item));for(let a of o)if(a.kind==="remove")n=ld(n,a.item,a.id);else if(a.item==="link")a.kind==="add"&&!jt(n).has(a.id)&&(n={...n,links:[...n.links??[],a.after]});else if(a.item==="way")if(a.field==="order"){let l=new Map(e.stages.map((c,p)=>[c.id,c.col??p]));n={...n,stages:n.stages.map(c=>l.has(c.id)?{...c,col:l.get(c.id)}:c)}}else n={...n,[a.field]:a.after};else a.kind==="add"?n=Wi(n,a.item,[...ye(n,a.item),structuredClone(a.after)]):n=Wi(n,a.item,ye(n,a.item).map(l=>l.id===a.id?{...l,[a.field]:structuredClone(a.after)}:l));return{...n,links:[...(n.links??[]).filter(a=>a.source===_t||a.target===_t),...jt(n).values()]}}var pd={"stage.lane":"lane","stage.phase":"phase","stage.roles":"role","role.lane":"lane","gate.after":"stage","gate.approver":"role","gate.on_fail":"stage","gate.roles":"role","kpi.stage":"stage","kpi.since":"stage","way.order":"stage"};function dd(t,e,s,n,i){if(st(s)===void 0)return i.empty;let r=pd[`${t}.${e}`],o=a=>{for(let l of n){let c=r==="role"?(l.roles??[]).find(p=>p.id===a)?.acronym:r==="lane"?l.lanes.find(p=>p.id===a)?.name:r==="phase"?l.phases.find(p=>p.id===a)?.name:r==="stage"?l.stages.find(p=>p.id===a)?.name:void 0;if(c)return c}return a};if(r)return Array.isArray(s)?s.map(a=>o(String(a))).join(e==="order"?" \u2192 ":", "):o(String(s));if(typeof s=="boolean")return s?i.yes:i.no;if(e==="criteria")return s.map(i.criteria).join(" \xB7 ");if(e==="approvals"){let a=l=>n.map(c=>(c.roles??[]).find(p=>p.id===l)?.acronym).find(Boolean)??l;return s.map(l=>l.when?`${a(l.by)} (${l.when})`:a(l.by)).join(" \xB7 ")}return e==="copilot"?s.instructions||s.actions?.join(", ")||i.empty:e==="subitem"?s.plural:e==="next"?s.way:Array.isArray(s)?s.map(a=>String(typeof a=="object"&&a?a.name??a.label??"":a)).join(", "):String(s)}function hd(t,e){let s=t.after??t.before,n=r=>e.map(o=>r(o)?.find(a=>a.id===t.id)).find(Boolean);if(t.item==="way")return"";if(t.item==="link"){let[r,o]=t.id.split(">"),a=l=>e.map(c=>c.stages.find(p=>p.id===l)?.name).find(Boolean)??l;return`${a(r)} \u2192 ${a(o)}`}return t.item==="role"?s?.acronym??n(r=>r.roles)?.acronym??t.id:n(r=>ye(r,t.item))?.name??s?.name??t.id}var za=/\b(medir|medi[çc][ãa]o|medida|resultado|meta|measur\w*|outcome|kpi)\b/i;function nt(t){let e=t.gates??[],s=new Map;t.stages.forEach((a,l)=>s.set(a.id,2*l));for(let a of e)s.set(a.id,(s.get(a.after)??0)+1);let n=[...t.stages.flatMap(a=>(a.outputs??[]).map(l=>({at:s.get(a.id),by:a.id,kind:"stage",output:l}))),...e.flatMap(a=>(a.outputs??[]).map(l=>({at:s.get(a.id),by:a.id,kind:"gate",output:l})))].sort((a,l)=>a.at-l.at),i={},r={},o=(a,l)=>{(r[a]??=[]).includes(l)||r[a].push(l)};for(let a of t.stages){let l=s.get(a.id);i[a.id]=(a.inputs??[]).map(c=>{if((a.outside??[]).includes(c))return{name:c,kind:"outside"};let p=n.filter(y=>y.output.name.trim().toLowerCase()===c.trim().toLowerCase()),f=p.filter(y=>y.at<l).at(-1),u=f??p[0];return u?(o(u.output.id,a.id),{name:c,kind:u.kind,from:u.by,output:u.output.id,...f?{}:{late:!0}}):{name:c,kind:"nowhere"}})}for(let a of e)for(let l of a.criteria??[])if(l.kind==="outputs")for(let c of l.outputs)o(c,a.id);for(let a of Object.keys(r))r[a].sort((l,c)=>(s.get(l)??0)-(s.get(c)??0));return{uses:t.stages.some(a=>(a.inputs??[]).length),inputs:i,receivers:r}}var Va=/^(dev|desenvolvimento|qa|hml|homolog(a[çc][ãa]o)?|staging|stage|uat|prd|prod|produ[çc][ãa]o|production|sandbox)$/i,md=/(^|\s)(daily|dailies|planning|planejamento|refinement|refinamento|grooming|retro|retrospectiva|retrospective|sprint review|review da sprint|stand-?up)(\s|$)/i,gd=/(^|\s)(owner|lead|leader|manager|master|analyst|engineer|developer|designer|tester|architect|director|head|coordinator|specialist|team|squad|gerente|l[ií]der|analista|engenheir[oa]|desenvolvedor[a]?|arquitet[oa]|diretor[a]?|coordenador[a]?|especialista|time|equipe|comit[êe]|qualidade|produto|neg[óo]cio|dono|respons[áa]vel)(\s|$)/i,yd=/^[A-ZÀ-Ý][a-zà-ÿ]+(\s+(da|de|do|dos|das|e)?\s*[A-ZÀ-Ý][a-zà-ÿ]+){1,2}$/;function ji(t){let e=[],s=t.stages,n=t.gates??[],i=t.roles??[],r=c=>s.find(p=>p.id===c)?.name??c;for(let c of s.slice(0,-1))(c.outputs??[]).length||c.optional||e.push({key:"outputs",at:{stage:c.id},en:`\xAB${c.name}\xBB delivers nothing: what comes out of it?`,pt:`\xAB${c.name}\xBB n\xE3o entrega nada: o que sai dela?`});s.length>1&&!n.length&&e.push({key:"noGate",en:"No gate: where does someone decide the work goes on?",pt:"Nenhum gate: onde algu\xE9m decide que o trabalho segue?"});let o=new Set(i.map(c=>c.acronym.toLowerCase()).concat(i.map(c=>c.id.toLowerCase()))),a=(c,p)=>!!p&&(p===c.id||p.toLowerCase()===c.acronym.toLowerCase());for(let c of n){let p=se(c).map(f=>f.by);if(!p.length)e.push({key:"approver",at:{gate:c.id},en:`Nobody approves the gate \xAB${c.name}\xBB`,pt:`Ningu\xE9m aprova o gate \xAB${c.name}\xBB`});else for(let f of p.filter(u=>i.length&&!o.has(u.toLowerCase())))e.push({key:"unknownApprover",at:{gate:c.id},en:`The gate \xAB${c.name}\xBB is approved by \xAB${f}\xBB, which is not one of the roles`,pt:`O gate \xAB${c.name}\xBB \xE9 aprovado por \xAB${f}\xBB, que n\xE3o \xE9 um dos pap\xE9is`});(c.criteria??[]).length||e.push({key:"criteria",at:{gate:c.id},en:`The gate \xAB${c.name}\xBB (after \xAB${r(c.after)}\xBB) says nothing about what must be ready`,pt:`O gate \xAB${c.name}\xBB (depois de \xAB${r(c.after)}\xBB) n\xE3o diz o que precisa estar pronto`})}for(let c of t.phases){if(Va.test(c.name.trim())||Va.test(c.id)){e.push({key:"environment",at:{phase:c.id},en:`The phase \xAB${c.name}\xBB is an environment: it is where stages happen (their \xABwhere\xBB), not a milestone`,pt:`A fase \xAB${c.name}\xBB \xE9 um ambiente: \xE9 onde as etapas acontecem (\xABonde\xBB), n\xE3o um marco`});continue}let p=s.filter(f=>f.phase===c.id);t.phases.length>1&&p.length&&!p.some(f=>(f.outputs??[]).length||n.some(u=>u.after===f.id))&&e.push({key:"phase",at:{phase:c.id},en:`The phase \xAB${c.name}\xBB has no deliverable and no gate closes it`,pt:`A fase \xAB${c.name}\xBB n\xE3o tem entrega e nenhum gate a fecha`})}s.length>=3&&!s.some(c=>za.test(c.name)||(c.outputs??[]).some(p=>p.kpi))&&e.push({key:"measure",en:"No stage measures the result: what number shows it worked, and where is it measured?",pt:"Nenhuma etapa mede o resultado: que n\xFAmero mostra que deu certo, e onde se mede?"});for(let c of s)md.test(c.name)&&e.push({key:"ritual",at:{stage:c.id},en:`\xAB${c.name}\xBB is a ritual (it has a cadence): it stays out of the flow`,pt:`\xAB${c.name}\xBB \xE9 um ritual (tem cad\xEAncia): fica fora do fluxo`});for(let c of t.lanes)s.length&&!s.some(p=>p.lane===c.id)&&e.push({key:"lane",at:{lane:c.id},en:`No stage is led by \xAB${c.name}\xBB`,pt:`Nenhuma etapa \xE9 liderada por \xAB${c.name}\xBB`});for(let c of i){let p=(c.name??"").trim();p&&yd.test(p)&&!gd.test(p)&&e.push({key:"person",at:{role:c.id},en:`\xAB${p}\xBB reads as a person: a role is a function (who does it is a lane's \xABsub\xBB)`,pt:`\xAB${p}\xBB parece uma pessoa: papel \xE9 uma fun\xE7\xE3o (quem faz fica no \xABsub\xBB da raia)`});let f=s.some(u=>(u.roles??[]).some(y=>a(c,y)))||n.some(u=>se(u).some(y=>a(c,y.by)));s.length&&!f&&e.push({key:"idleRole",at:{role:c.id},en:`The role \xAB${c.acronym}\xBB takes part in no stage and approves no gate`,pt:`O papel \xAB${c.acronym}\xBB n\xE3o participa de nenhuma etapa nem aprova gate`})}let l=nt(t);if(l.uses){let c=p=>s.find(f=>f.id===p)?.name??n.find(f=>f.id===p)?.name??p??"";for(let p of s)for(let f of l.inputs[p.id]??[])f.kind==="nowhere"?e.push({key:"inputNowhere",at:{stage:p.id},en:`\xAB${p.name}\xBB receives \xAB${f.name}\xBB and nothing before it delivers that: does it come from outside?`,pt:`\xAB${p.name}\xBB recebe \xAB${f.name}\xBB e nada antes dela entrega isso: vem de fora?`}):f.late&&e.push({key:"lateInput",at:{stage:p.id},en:`\xAB${p.name}\xBB receives \xAB${f.name}\xBB, which only \xAB${c(f.from)}\xBB delivers, at or after it`,pt:`\xAB${p.name}\xBB recebe \xAB${f.name}\xBB, que s\xF3 \xAB${c(f.from)}\xBB entrega, nela ou depois dela`});for(let p of s.slice(0,-1))for(let f of p.outputs??[])!f.kpi&&!(l.receivers[f.id]??[]).length&&e.push({key:"unusedOutput",at:{stage:p.id,output:f.id},en:`\xAB${f.name}\xBB comes out of \xAB${p.name}\xBB and no stage or gate receives it: who is it for?`,pt:`\xAB${f.name}\xBB sai de \xAB${p.name}\xBB e nenhuma etapa nem gate o recebe: \xE9 para quem?`});for(let p of n)(p.outputs??[]).length||e.push({key:"gateNoOutputs",at:{gate:p.id},en:`The gate \xAB${p.name}\xBB says nothing about what comes out of it (the decision, what was approved)`,pt:`O gate \xAB${p.name}\xBB n\xE3o diz o que sai dele (a decis\xE3o, o que foi aprovado)`})}return e}var bd={prod:"DCE6FF",tech:"DDF3E6",qa:"FFE9D1",forge:"ECE0FF",slate:"E8EAED",coral:"FFE0DA"},Ga=["prod","tech","qa","forge","slate","coral"],Ja={en:{summary:"Summary",stages:"Stages",gates:"Gates",roles:"Roles (RACI)",outputs:"Outputs",kpis:"KPIs",checklist:"Gate checklist",way:"Way of working",phases:"Phases",nStages:"Stages",nGates:"Gates",nRoles:"Roles",look:"To look at",none:"Nothing to look at",raci:"R leads (the stage\u2019s lane) \xB7 C takes part \xB7 A approves the gate after it",id:"id",order:"#",phase:"Phase",stage:"Stage",lane:"Led by",roles2:"Take part",question:"Key question",inputs:"Comes in",delivers:"Delivers",activities:"Activities",where:"Where",wip:"Limit",gate:"Gate",after:"After",approver:"Approves",when:"When",ifWord:"if",okOf:(t,e)=>`Ok from ${t}, if ${e} (n/a when not)`,criteria:"Criteria",onFail:"If it fails",results:"Results",role:"Role",name:"Name",output:"Output",description:"Description",by:"By",kpi:"KPI",unit:"Unit",source:"Source",since:"Since",check:"What must be ready",ok:"OK?",note:"Note",who:"Who confirms",yes:"yes",outputsOf:t=>`Outputs: ${t}`,activitiesOf:t=>`Activities of \xAB${t}\xBB done`,subitems:(t,e)=>`At least ${t} sub-items \xAB${e}\xBB`,kpisOf:t=>`KPIs: ${t}`,metrics:"Metrics",gateOut:"What comes out",thread:"Thread",fromCol:"From",toCol:"To",outsideWord:"from outside",nobody:"nobody"},pt:{summary:"Resumo",stages:"Etapas",gates:"Gates",roles:"Pap\xE9is (RACI)",outputs:"Entregas",kpis:"KPIs",checklist:"Checklist de gate",way:"Jeito de trabalhar",phases:"Fases",nStages:"Etapas",nGates:"Gates",nRoles:"Pap\xE9is",look:"Para olhar",none:"Nada para olhar",raci:"R lidera (a raia da etapa) \xB7 C participa \xB7 A aprova o gate depois dela",id:"id",order:"#",phase:"Fase",stage:"Etapa",lane:"Lidera",roles2:"Participam",question:"Pergunta-chave",inputs:"Entra",delivers:"Entrega",activities:"Atividades",where:"Onde",wip:"Limite",gate:"Gate",after:"Depois de",approver:"Quem aprova",when:"Quando",ifWord:"se",okOf:(t,e)=>`Ok de ${t}, se ${e} (n.a. quando n\xE3o for)`,criteria:"Crit\xE9rios",onFail:"Se n\xE3o passar",results:"Resultados",role:"Papel",name:"Nome",output:"Entrega",description:"Descri\xE7\xE3o",by:"Por",kpi:"KPI",unit:"Unidade",source:"Fonte",since:"Desde",check:"O que precisa estar pronto",ok:"OK?",note:"Nota",who:"Quem confirma",yes:"sim",outputsOf:t=>`Entregas: ${t}`,activitiesOf:t=>`Atividades de \xAB${t}\xBB feitas`,subitems:(t,e)=>`Pelo menos ${t} subitens \xAB${e}\xBB`,kpisOf:t=>`KPIs: ${t}`,metrics:"M\xE9tricas",gateOut:"O que sai",thread:"Fio",fromCol:"De",toCol:"Para",outsideWord:"de fora",nobody:"ningu\xE9m"}},Ks=Ja,wd={bold:!0,fill:"E8EEF7"},_e=t=>t.map(e=>({v:e,...wd})),Fe=t=>(t??[]).filter(Boolean).join("; ");function kd(t,e,s="pt"){let n=Ja[s],i=d=>{let v=e.lanes.findIndex(C=>C.id===d),O=e.lanes[v];return O?bd[O.color??Ga[v%Ga.length]]:void 0},r=d=>e.lanes.find(v=>v.id===d)?.name??d,o=d=>e.phases.find(v=>v.id===d)?.name??d,a=d=>d?e.stages.find(v=>v.id===d)?.name??d:"",l=d=>e.stages.flatMap(v=>v.outputs??[]).find(v=>v.id===d)?.name??d,c=d=>(e.kpis??[]).find(v=>v.id===d)?.name??d,p=d=>d?(e.roles??[]).find(v=>v.id===d)?.acronym??d:"",f=d=>d.kind==="outputs"?n.outputsOf(d.outputs.map(l).join(", ")):d.kind==="activities"?n.activitiesOf(a(d.stage)):d.kind==="subitems"?n.subitems(d.min,d.result):n.kpisOf(d.kpis.map(c).join(", ")),u=e.gates??[],y=e.roles??[],$=ji(e),m=nt(e),w=d=>e.stages.find(v=>v.id===d)?.name??u.find(v=>v.id===d)?.name??"",h=d=>(m.inputs[d]??[]).map(v=>v.kind==="outside"?`${v.name} (${n.outsideWord})`:v.from?`${v.name} (${w(v.from)})`:v.name),b={key:"summary",name:n.summary,header:!1,columns:[{title:"",width:26},{title:"",width:90}],rows:[[{v:n.way,bold:!0},{v:t,bold:!0}],[n.phases,e.phases.map(d=>d.name).join(" \u2192 ")],[n.nStages,e.stages.length],[n.nGates,u.length],[n.nRoles,y.map(d=>d.acronym).join(", ")],[],[{v:n.look,bold:!0},$.length?"":n.none],...$.map(d=>["",{v:d[s],wrap:!0}])]},g={key:"stages",name:n.stages,header:!0,columns:[{title:n.order,width:5},{title:n.id,width:14},{title:n.phase,width:14},{title:n.stage,width:22},{title:n.lane,width:16},{title:n.roles2,width:16},{title:n.question,width:32},{title:n.inputs,width:30},{title:n.delivers,width:34},{title:n.metrics,width:30},{title:n.activities,width:30},{title:n.where,width:10},{title:n.wip,width:8},{title:n.description,width:40}],rows:[]};g.rows=[_e(g.columns.map(d=>d.title)),...e.stages.map((d,v)=>[v+1,d.id,o(d.phase),{v:d.name,bold:!0},{v:r(d.lane),fill:i(d.lane)},(d.roles??[]).map(p).join(", "),{v:d.question??"",wrap:!0},{v:Fe(h(d.id)),wrap:!0},{v:Fe((d.outputs??[]).map(O=>O.name)),wrap:!0},{v:Fe(d.metrics),wrap:!0},{v:Fe((d.activities??[]).map(O=>O.name)),wrap:!0},d.where??"",d.wip??"",{v:d.description??"",wrap:!0}])];let A=u.some(d=>se(d).some(v=>v.when)),E={key:"gates",name:n.gates,header:!0,columns:[{title:n.id,width:16},{title:n.gate,width:26},{title:n.after,width:20},{title:n.approver,width:12},...A?[{title:n.when,width:28}]:[],{title:n.criteria,width:46},{title:n.onFail,width:20},{title:n.gateOut,width:34},{title:n.metrics,width:30},{title:n.results,width:20}],rows:[]};E.rows=[_e(E.columns.map(d=>d.title)),...u.flatMap(d=>{let[v,...O]=se(d).length?se(d):[void 0],C=D=>A?[D?.when??""]:[];return[[d.id,{v:d.name,bold:!0},a(d.after),p(v?.by),...C(v),{v:(d.criteria??[]).map(f).join(`
|
|
141
|
+
`),wrap:!0},a(d.on_fail),{v:Fe((d.outputs??[]).map(D=>D.name)),wrap:!0},{v:Fe(d.metrics),wrap:!0},d.results.map(D=>D.label).join(" / ")],...O.map(D=>[d.id,"","",p(D.by),...C(D),"","","","",""])]})];let x=(d,v)=>{let O=[];(v.roles??[]).includes(d.id)&&O.push(d.lane===v.lane?"R":"C");for(let C of u.filter(D=>D.after===v.id)){let D=Da(C,d.id);D!==void 0&&O.push(D?`A (${n.ifWord} ${D})`:"A")}return O.join("/")},I={key:"roles",name:n.roles,header:!0,columns:[{title:n.role,width:10},{title:n.name,width:22},{title:n.lane,width:16},...e.stages.map(d=>({title:d.name,width:Math.max(9,Math.min(18,d.name.length+2))}))],rows:[]};I.rows=[_e(I.columns.map(d=>d.title)),...y.map(d=>[{v:d.acronym,bold:!0},d.name??"",{v:r(d.lane),fill:i(d.lane)},...e.stages.map(v=>({v:x(d,v),center:!0,bold:!0}))]),[],[{v:n.raci,color:"6B6B6B"}]];let k={key:"outputs",name:n.outputs,header:!0,columns:[{title:n.stage,width:20},{title:n.id,width:14},{title:n.output,width:32},{title:n.description,width:40},{title:n.by,width:10},{title:n.kpi,width:8}],rows:[]};k.rows=[_e(k.columns.map(d=>d.title)),...e.stages.flatMap(d=>(d.outputs??[]).map(v=>[a(d.id),v.id,{v:v.name,bold:!0},{v:v.description??"",wrap:!0},p(v.by),v.kpi?n.yes:""]))];let P={key:"kpis",name:n.kpis,header:!0,columns:[{title:n.id,width:14},{title:n.name,width:30},{title:n.unit,width:12},{title:n.stage,width:20},{title:n.source,width:14},{title:n.since,width:20}],rows:[]};P.rows=[_e(P.columns.map(d=>d.title)),...(e.kpis??[]).map(d=>[d.id,{v:d.name,bold:!0},d.unit,a(d.stage),d.source,a(d.since)])];let R={key:"checklist",name:n.checklist,header:!0,columns:[{title:n.gate,width:26},{title:n.check,width:48},{title:n.who,width:14},{title:n.ok,width:8},{title:n.note,width:36}],rows:[]};R.rows=[_e(R.columns.map(d=>d.title))];for(let d of u){let v=(d.criteria??[]).flatMap(C=>C.kind==="outputs"?C.outputs.map(D=>l(D)):[f(C)]),O=se(d).filter(C=>!C.when).map(C=>p(C.by)).join(", ");R.rows.push(...(v.length?v:["\u2014"]).map((C,D)=>[D===0?{v:d.name,bold:!0}:"",`\u2610 ${C}`,O,"",""]));for(let C of se(d).filter(D=>D.when))R.rows.push(["",`\u2610 ${n.okOf(p(C.by),C.when)}`,p(C.by),"",""])}let q={key:"thread",name:n.thread,header:!0,columns:[{title:n.fromCol,width:26},{title:n.output,width:34},{title:n.toCol,width:40}],rows:[]},N=[...e.stages.flatMap(d=>[...(d.outputs??[]).map(v=>[d.id,v]),...u.filter(v=>v.after===d.id).flatMap(v=>(v.outputs??[]).map(O=>[v.id,O]))])];return q.rows=[_e(q.columns.map(d=>d.title)),...N.map(([d,v])=>[w(d),{v:v.name,bold:!0},{v:Fe((m.receivers[v.id]??[]).map(w))||`(${n.nobody})`,wrap:!0}]),...e.stages.flatMap(d=>(m.inputs[d.id]??[]).filter(v=>v.kind==="outside"||v.kind==="nowhere").map(v=>[`(${v.kind==="outside"?n.outsideWord:n.nobody})`,{v:v.name,bold:!0},d.name]))],[b,g,E,I,k,P,R,q]}var Xa=new TextEncoder,Ri=t=>t.replace(/[&<>"]/g,e=>({"&":"&","<":"<",">":">",'"':"""})[e]).replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g,""),Rt=t=>t<26?String.fromCharCode(65+t):Rt(Math.floor(t/26)-1)+String.fromCharCode(65+t%26),vd=t=>t.replace(/[:\\/?*[\]]/g," ").slice(0,31)||"Sheet";function Sd(t){let e=[{}],s=u=>JSON.stringify([u.bold??!1,u.fill??"",u.color??"",u.center??!1,u.wrap??!1]),n=new Map([[s({}),0]]);for(let u of t)for(let y of u.rows)for(let $ of y){if(typeof $!="object")continue;let{v:m,...w}=$,h=s(w);n.has(h)||(n.set(h,e.length),e.push(w))}let i=new Map([["|",0]]),r=new Map([["",0]]),o=u=>{let y=`${u.bold?"b":""}|${u.color??""}`;return i.has(y)||i.set(y,i.size),i.get(y)},a=u=>u.fill?(r.has(u.fill)||r.set(u.fill,r.size+1),r.get(u.fill)):0,l=e.map(u=>{let y=u.center||u.wrap?`<alignment${u.center?' horizontal="center"':""}${u.wrap?' wrapText="1"':""} vertical="top"/>`:'<alignment vertical="top"/>';return`<xf numFmtId="0" fontId="${o(u)}" fillId="${a(u)}" borderId="${u.fill||u.bold?1:0}" xfId="0" applyFont="1" applyFill="1" applyBorder="1" applyAlignment="1">${y}</xf>`}),c=[...i.keys()].map(u=>{let[y,$]=u.split("|");return`<font>${y?"<b/>":""}<sz val="11"/>${$?`<color rgb="FF${$}"/>`:""}<name val="Calibri"/><family val="2"/></font>`}),p=['<fill><patternFill patternType="none"/></fill>','<fill><patternFill patternType="gray125"/></fill>',...[...r.keys()].filter(Boolean).map(u=>`<fill><patternFill patternType="solid"><fgColor rgb="FF${u}"/><bgColor indexed="64"/></patternFill></fill>`)];return{xml:`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
142
142
|
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
143
143
|
<fonts count="${c.length}">${c.join("")}</fonts>
|
|
144
|
-
<fills count="${
|
|
144
|
+
<fills count="${p.length}">${p.join("")}</fills>
|
|
145
145
|
<borders count="2"><border><left/><right/><top/><bottom/><diagonal/></border><border><left style="thin"><color rgb="FFD0D7E2"/></left><right style="thin"><color rgb="FFD0D7E2"/></right><top style="thin"><color rgb="FFD0D7E2"/></top><bottom style="thin"><color rgb="FFD0D7E2"/></bottom><diagonal/></border></borders>
|
|
146
146
|
<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>
|
|
147
147
|
<cellXfs count="${l.length}">${l.join("")}</cellXfs>
|
|
148
148
|
<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>
|
|
149
|
-
</styleSheet>`,styleOf:u=>typeof u=="object"?n.get(s((({v:y,...$})=>$)(u)))??0:0}}function
|
|
149
|
+
</styleSheet>`,styleOf:u=>typeof u=="object"?n.get(s((({v:y,...$})=>$)(u)))??0:0}}function $d(t,e){let s=Math.max(t.columns.length,...t.rows.map(l=>l.length),1),n=t.rows.map((l,c)=>{let p=l.map((f,u)=>{let y=`${Rt(u)}${c+1}`,$=typeof f=="object"?f.v:f,m=e(f),w=m?` s="${m}"`:"";return $===""||$===void 0||$===null?m?`<c r="${y}"${w}/>`:"":typeof $=="number"?`<c r="${y}"${w}><v>${$}</v></c>`:`<c r="${y}"${w} t="inlineStr"><is><t xml:space="preserve">${Ri(String($))}</t></is></c>`}).join("");return`<row r="${c+1}">${p}</row>`}),i=`${Rt(s-1)}${Math.max(1,t.rows.length)}`,r=t.header?'<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/><selection pane="bottomLeft" activeCell="A2" sqref="A2"/>':"",o=t.columns.length?`<cols>${t.columns.map((l,c)=>`<col min="${c+1}" max="${c+1}" width="${l.width}" customWidth="1"/>`).join("")}</cols>`:"",a=t.header&&t.rows.length>1?`<autoFilter ref="A1:${Rt(Math.max(0,t.columns.length-1))}${t.rows.length}"/>`:"";return`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
150
150
|
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
151
151
|
<dimension ref="A1:${i}"/><sheetViews><sheetView workbookViewId="0">${r}</sheetView></sheetViews><sheetFormatPr defaultRowHeight="15"/>${o}<sheetData>${n.join("")}</sheetData>${a}
|
|
152
|
-
</worksheet>`}function
|
|
152
|
+
</worksheet>`}function Od(t){let{xml:e,styleOf:s}=Sd(t),n=t.map(o=>vd(o.name)),i=t.map((o,a)=>o.header&&o.rows.length>1?`<definedName name="_xlnm._FilterDatabase" localSheetId="${a}" hidden="1">'${Ri(n[a]).replace(/'/g,"''")}'!$A$1:$${Rt(Math.max(0,o.columns.length-1))}$${o.rows.length}</definedName>`:"").join(""),r=[["[Content_Types].xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
153
153
|
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>${t.map((o,a)=>`<Override PartName="/xl/worksheets/sheet${a+1}.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>`).join("")}</Types>`],["_rels/.rels",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
154
154
|
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>`],["xl/workbook.xml",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
155
|
-
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><bookViews><workbookView/></bookViews><sheets>${n.map((o,a)=>`<sheet name="${
|
|
156
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${t.map((o,a)=>`<Relationship Id="rId${a+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${a+1}.xml"/>`).join("")}<Relationship Id="rId${t.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`],["xl/styles.xml",e],...t.map((o,a)=>[`xl/worksheets/sheet${a+1}.xml`,wp(o,s)])];return $p(r.map(([o,a])=>[o,Va.encode(a)]))}var Sp=(()=>{let t=new Uint32Array(256);for(let e=0;e<256;e++){let s=e;for(let n=0;n<8;n++)s=s&1?3988292384^s>>>1:s>>>1;t[e]=s>>>0}return t})();function vp(t){let e=4294967295;for(let s=0;s<t.length;s++)e=Sp[(e^t[s])&255]^e>>>8;return(e^4294967295)>>>0}function $p(t){let e=[],s=[],n=0;for(let[c,d]of t){let f=Va.encode(c),u=vp(d),y=new DataView(new ArrayBuffer(30));y.setUint32(0,67324752,!0),y.setUint16(4,20,!0),y.setUint16(6,2048,!0),y.setUint16(8,0,!0),y.setUint32(14,u,!0),y.setUint32(18,d.length,!0),y.setUint32(22,d.length,!0),y.setUint16(26,f.length,!0),e.push(new Uint8Array(y.buffer),f,d);let $=new DataView(new ArrayBuffer(46));$.setUint32(0,33639248,!0),$.setUint16(4,20,!0),$.setUint16(6,20,!0),$.setUint16(8,2048,!0),$.setUint32(16,u,!0),$.setUint32(20,d.length,!0),$.setUint32(24,d.length,!0),$.setUint16(28,f.length,!0),$.setUint32(42,n,!0),s.push(new Uint8Array($.buffer),f),n+=30+f.length+d.length}let i=s.reduce((c,d)=>c+d.length,0),r=new DataView(new ArrayBuffer(22));r.setUint32(0,101010256,!0),r.setUint16(8,t.length,!0),r.setUint16(10,t.length,!0),r.setUint32(12,i,!0),r.setUint32(16,n,!0);let o=[...e,...s,new Uint8Array(r.buffer)],a=new Uint8Array(o.reduce((c,d)=>c+d.length,0)),l=0;for(let c of o)a.set(c,l),l+=c.length;return a}function Ga(t){let e=t.trim().toLowerCase();for(let s of Object.values(js))for(let n of["summary","stages","gates","roles","outputs","kpis","checklist","thread"])if(String(s[n]).toLowerCase().slice(0,31)===e)return n}var J=t=>t.normalize("NFD").replace(/[̀-ͯ]/g,"").trim().toLowerCase(),We=(t,e)=>(t??"").split(e).map(s=>s.trim()).filter(Boolean);function Op(t,e){let s=structuredClone(t),n=[],i=new Map(e.map(g=>[Ga(g.name),g])),r=(g,A)=>{if(!g?.rows.length)return;let E=Object.values(js).map(L=>J(String(L[A]))),x=g.rows[0].findIndex(L=>E.includes(J(L)));return x<0?void 0:L=>(L[x]??"").trim()},o=g=>(g?.rows.slice(1)??[]).filter(A=>A.some(E=>String(E??"").trim())),a=()=>[...s.lanes,...s.phases,...s.stages,...s.gates??[],...s.roles??[],...s.kpis??[]].map(g=>g.id),l=(g,A)=>g.find(E=>E.id===A||J(E.name??"")===J(A)),c=i.get("roles");if(c){let[g,A,E]=[r(c,"role"),r(c,"name"),r(c,"lane")];if(g){let x=[];for(let L of o(c)){let k=g(L);if(!k||k.length>12||/\s/.test(k))continue;let I=(s.roles??[]).find(p=>J(p.acronym)===J(k)),B=E?.(L)??"",O=B?l(s.lanes,B)?.id??f(B):I?.lane??s.lanes[0]?.id??"";x.push({...I??{id:ae(k,a()),acronym:k},acronym:k,name:A?.(L)||I?.name,lane:O})}s.roles=x}}let d=g=>{let A=(s.roles??[]).find(E=>J(E.acronym)===J(g)||E.id===g);return A||n.push(`\xAB${g}\xBB is not one of the roles`),A?.id};function f(g){let A=ae(g,a());return s.lanes.push({id:A,name:g}),A}function u(g){let A=ae(g,a());return s.phases.push({id:A,name:g}),A}let y=i.get("stages");if(y){let g=Object.fromEntries(["id","phase","stage","lane","roles2","question","inputs","delivers","metrics","activities","where","wip","description"].map(A=>[A,r(y,A)]));if(g.stage){let A=new Set(Object.values(js).map(k=>J(k.outsideWord))),E=new Set([...t.stages.map(k=>k.name),...(t.gates??[]).map(k=>k.name),...o(y).map(k=>g.stage(k))].map(J)),x=k=>{let I=k.match(/^(.*\S)\s*\(([^()]+)\)$/);return I?A.has(J(I[2]))?{name:I[1],outside:!0}:E.has(J(I[2]))?{name:I[1],outside:!1}:{name:k,outside:!1}:{name:k,outside:!1}},L=[];for(let k of o(y)){let I=g.stage(k);if(!I)continue;let B=g.id?.(k)||"",O=t.stages.find(T=>T.id===B),p=g.phase?.(k)??"",v=g.lane?.(k)??"",N={...O??{id:ae(I,[...a(),...L.map(T=>T.id)])},name:I,phase:p?l(s.phases,p)?.id??u(p):O?.phase??s.phases[0].id,lane:v?l(s.lanes,v)?.id??f(v):O?.lane??s.lanes[0].id};if(g.roles2&&(N.roles=We(g.roles2(k),/[,;]/).map(d).filter(T=>!!T)),g.question&&(N.question=g.question(k)||void 0),g.inputs){let T=We(g.inputs(k),/;|\n/).map(x);N.inputs=T.map(F=>F.name),N.outside=T.filter(F=>F.outside).map(F=>F.name)}if(g.metrics&&(N.metrics=We(g.metrics(k),/;|\n/)),g.description&&(N.description=g.description(k)||void 0),g.where&&(N.where=g.where(k)||void 0),g.wip){let T=Number(g.wip(k));N.wip=g.wip(k)&&Number.isFinite(T)?T:void 0}if(g.delivers){let T=t.stages.flatMap(F=>F.outputs??[]);N.outputs=We(g.delivers(k),/;|\n/).map(F=>T.find(U=>J(U.name)===J(F))??{id:ae(F,[...a(),...T.map(U=>U.id)]),name:F})}if(g.activities){let T=t.stages.flatMap(F=>F.activities??[]);N.activities=We(g.activities(k),/;|\n/).map(F=>T.find(U=>J(U.name)===J(F))??{id:ae(F,T.map(U=>U.id)),name:F})}for(let T of["question","where","wip","description"])N[T]===void 0&&delete N[T];for(let T of["roles","inputs","outside","outputs","metrics","activities"])!N[T]?.length&&!O?.[T]&&delete N[T];L.push(N)}s.stages=L}}let $=g=>{if(!g)return;let A=l(s.stages,g)?.id??l(t.stages,g)?.id,E=s.stages.find(x=>x.id===A);return E||n.push(`\xAB${g}\xBB is not one of the stages`),E?.id},m=i.get("gates");if(m){let g=Object.fromEntries(["id","gate","after","approver","onFail","gateOut","metrics"].map(A=>[A,r(m,A)]));if(g.gate){let A=[];for(let E of o(m)){let x=g.gate(E);if(!x)continue;let L=g.id?.(E)||"",k=(t.gates??[]).find(v=>v.id===L),I=$(g.after?.(E)??"")??k?.after;if(!I)continue;let B=g.approver?.(E),O=g.onFail?.(E),p={...k??{id:ae(x,[...a(),...A.map(v=>v.id)]),results:[{id:"ok",label:"OK",ok:!0},{id:"no",label:"\xD7"}]},name:x,after:I,approver:B?d(B)??null:null,on_fail:O?$(O)??null:null};if(g.gateOut){let v=(t.gates??[]).flatMap(N=>N.outputs??[]);p.outputs=We(g.gateOut(E),/;|\n/).map(N=>v.find(T=>J(T.name)===J(N))??{id:ae(N,[...a(),...v.map(T=>T.id)]),name:N})}g.metrics&&(p.metrics=We(g.metrics(E),/;|\n/));for(let v of["outputs","metrics"])!p[v]?.length&&!k?.[v]&&delete p[v];A.push(p)}s.gates=A}}let w=i.get("outputs");if(w){let[g,A,E,x]=[r(w,"id"),r(w,"description"),r(w,"by"),r(w,"kpi")];for(let L of o(w)){let k=s.stages.flatMap(I=>I.outputs??[]).find(I=>I.id===g?.(L));if(k){A&&(k.description=A(L)||void 0),E&&(k.by=E(L)?d(E(L))??null:null),x&&(k.kpi=!!x(L)||void 0);for(let I of["description","kpi"])k[I]===void 0&&delete k[I];k.by===null&&delete k.by}}}let h=i.get("kpis");if(h&&s.kpis){let[g,A,E]=[r(h,"id"),r(h,"name"),r(h,"stage")],x=[];for(let L of o(h)){let k=s.kpis.find(I=>I.id===g?.(L));k&&x.push({...k,name:A?.(L)||k.name,stage:$(E?.(L)??"")??k.stage})}s.kpis=x}let b=new Set(s.stages.flatMap(g=>(g.outputs??[]).map(A=>A.id)));return s.gates=(s.gates??[]).filter(g=>s.stages.some(A=>A.id===g.after)).map(g=>({...g,criteria:(g.criteria??[]).map(A=>A.kind==="outputs"?{...A,outputs:A.outputs.filter(E=>b.has(E))}:A).filter(A=>A.kind!=="outputs"||A.outputs.length)})),s.links=(s.links??[]).filter(g=>[g.source,g.target].every(A=>s.stages.some(E=>E.id===A)||!t.stages.some(E=>E.id===A))),{way:s,problems:[...new Set([...n,...Pi(s).map(Di)])]}}var st="#8C8578";var nt="#C8442C";var Ja=t=>Math.round(t*10)/10,Fe=t=>[Ja(t[0]),Ja(t[1])],Ne=(t,e,s=22,n="start",i)=>({type:"text",at:Fe(t),text:e,size:s,anchor:n,...i?{style:{color:i}}:{}}),Fi=(t,e,s)=>({type:"line",from:Fe(t),to:Fe(e),...s?{style:s}:{}}),Rt=(t,e,s)=>({type:"arrow",from:Fe(t),to:Fe(e),...s?{style:s}:{}}),Ri=(t,e)=>({type:"polygon",points:t.map(Fe),...e?{style:e}:{}}),Bs=(t,e)=>({type:"polyline",points:t.map(Fe),...e?{style:e}:{}});var Xa=(t,e,s,n,i)=>Ri([[t,e],[t+s,e],[t+s,e+n],[t,e+n]],i),Ap=(t,e)=>t.length*e*.48;function ji(t,e,s){let n=[],i="";for(let r of t.split(/\s+/).filter(Boolean)){let o=i?`${i} ${r}`:r;i&&Ap(o,e)>s?(n.push(i),i=r):i=o}return i&&n.push(i),n.length?n:[""]}var Ks=["#2F5BEA","#2E8F62","#C77700","#7B4FC9","#5E5A52","#C8442C"];function Ep(t,e,s="pt"){let n=s==="pt"?{approves:"aprova",no:"n\xE3o",yes:"sim",delivers:"Entrega",receives:"Recebe",outside:"de fora"}:{approves:"approves",no:"no",yes:"yes",delivers:"Delivers",receives:"Receives",outside:"from outside"},i=tt(e),r=O=>e.stages.find(p=>p.id===O)?.name??(e.gates??[]).find(p=>p.id===O)?.name??"",o=e.gates??[],a=new Map((e.roles??[]).map(O=>[O.id,O.acronym])),l=e.lanes.filter(O=>e.stages.some(p=>p.lane===O.id)),c=[];for(let O of e.stages){c.push({kind:"stage",id:O.id,w:150});let p=o.find(v=>v.after===O.id);p&&c.push({kind:"gate",id:p.id,w:110})}let d=130,f=Math.max(900,d+c.reduce((O,p)=>O+p.w,0)+30),u=150,y=O=>d+c.slice(0,O).reduce((p,v)=>p+v.w,0),$=O=>Math.max(0,l.findIndex(p=>p.id===O)),m=O=>ji(O.name,19,116),w=O=>Math.max(64,26+m(O).length*22),h=O=>ji(O.name,16,104),b=l.map(O=>Math.max(150,...e.stages.filter(p=>p.lane===O.id).map(p=>{let v=o.find(T=>T.after===p.id),N=30+w(p)+30;return v?Math.max(N,30+w(p)/2+30+24+h(v).length*18+(v.approver?18:0)+14):N}))),g=O=>u+b.slice(0,O).reduce((p,v)=>p+v,0),A=Math.min(f*.8,g(l.length)+50),E=[Ne([40,60],t,36)];l.forEach((O,p)=>{let[v,N]=[g(p),b[p]];E.push(Fi([30,v+N],[f-20,v+N],{color:st,dashed:!0})),E.push(Ne([36,v+N/2+8],O.name,22,"start",Ks[e.lanes.indexOf(O)%Ks.length]))}),E.push(Fi([30,u],[f-20,u],{color:st,dashed:!0}));let x=new Map,L,k;c.forEach((O,p)=>{let v=y(p);if(O.kind==="stage"){let N=e.stages.find(Y=>Y.id===O.id),T=$(N.lane),F=Ks[e.lanes.findIndex(Y=>Y.id===N.lane)%Ks.length],U=m(N),R={x:v+12,y:g(T)+30,w:O.w-24,h:w(N)};x.set(N.id,R);let fe=[];if(N.phase!==L){L=N.phase;let Y=c.slice(p).findIndex((je,dl)=>dl>0&&je.kind==="stage"&&e.stages.find(pl=>pl.id===je.id).phase!==L),de=Y<0?c.length:p+Y,[Gs,Js]=[v+6,y(de)-6],fl=Ne([(Gs+Js)/2,u-50],e.phases.find(je=>je.id===N.phase)?.name??N.phase,26,"middle",st);fe.push({...fl,chapter:e.phases.find(je=>je.id===N.phase)?.name??N.phase},Bs([[Gs,u-30],[Gs,u-38],[Js,u-38],[Js,u-30]],{color:st}))}k&&fe.push(...B(k,R));let xe=(i.inputs[N.id]??[]).map(Y=>`\xAB${Y.name}\xBB${Y.kind==="outside"?` (${n.outside})`:Y.from?` (${r(Y.from)})`:""}`),se=[N.question??(N.outputs?.length?`${n.delivers}: ${N.outputs.map(Y=>Y.name).join(", ")}`:""),xe.length?`${n.receives} ${xe.join(", ")}.`:""].filter(Boolean).join(" ")||void 0,qe={...Xa(R.x,R.y,R.w,R.h,{color:F,fill:"#FFFFFF"}),...se?{say:se}:{}};fe.push(qe,...U.map((Y,de)=>Ne([R.x+R.w/2,R.y+R.h/2+7-(U.length-1)*22/2+de*22],Y,19,"middle"))),E.push(...fe),k=R}else{let N=o.find(qe=>qe.id===O.id),T=x.get(N.after),F=T.y+T.h/2,U=v+O.w/2,R={x:U-30,y:F-30,w:60,h:60},fe=N.approver?`${a.get(N.approver)??N.approver} ${n.approves}`:"",xe=[Rt([T.x+T.w,F],[R.x,F]),{...Ri([[U,R.y],[R.x+R.w,F],[U,R.y+R.h],[R.x,F]],{color:nt,fill:"#FFF0EC"}),say:`${N.name}${fe?` \u2014 ${fe}`:""}`}],Vs=h(N);Vs.forEach((qe,Y)=>xe.push(Ne([U,R.y+R.h+22+Y*18],qe,16,"middle",nt))),fe&&xe.push(Ne([U,R.y+R.h+24+Vs.length*18],fe,15,"middle",st));let se=N.on_fail?x.get(N.on_fail):void 0;if(se){let qe=[...x.values()].filter(de=>de.x+de.w>se.x&&de.x<U).map(de=>de.y),Y=Math.min(se.y,R.y,...qe)-18;xe.push(Bs([[U,R.y],[U,Y],[se.x+se.w/2,Y]],{color:nt,dashed:!0}),Rt([se.x+se.w/2,Y],[se.x+se.w/2,se.y],{color:nt,dashed:!0}),Ne([U+6,(R.y+Y)/2+5],n.no,15,"start",nt))}E.push(...xe),k=R}});let I=E.findIndex(O=>O.chapter);return I>0&&(E[0].chapter=E[I].chapter,delete E[I].chapter),{id:t.toLowerCase().normalize("NFD").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)||"way",title:t,width:f,height:Math.round(A),background:"plain",locale:s==="pt"?"pt-BR":"en-US",steps:E};function B(O,p){let[v,N]=[[O.x+O.w,O.y+O.h/2],[p.x,p.y+p.h/2]];if(Math.abs(v[1]-N[1])<2)return[Rt(v,N)];let T=(v[0]+N[0])/2;return[Bs([v,[T,v[1]],[T,N[1]]]),Rt([T,N[1]],N)]}}var Ha=["and","or","not"];var Bi=["person","person-pointing","person-sitting","house","car","bus","coin","phone","document","server","bank","cloud","queue","desk","computer","clock","lock","money-arrow","tree","school","hospital","factory","truck","cart","safe","bulb","gear","database","robot","ship","container","warehouse","box","pallet","shop","shelf","field","cup","function","api-gateway","cache","cluster","board","book","pencil"],Us={pessoa:"person","pessoa-apontando":"person-pointing","pessoa-sentada":"person-sitting",casa:"house",carro:"car",onibus:"bus",moeda:"coin",celular:"phone",documento:"document",servidor:"server",banco:"bank",nuvem:"cloud",fila:"queue",mesa:"desk",computador:"computer",relogio:"clock",cadeado:"lock","seta-dinheiro":"money-arrow"},Ys=t=>Bi.includes(t)?t:typeof t=="string"&&Object.hasOwn(Us,t)?Us[t]:void 0;var Za=t=>Ys(t)!==void 0,S={skin:"#E8C6A5",shirt:"#A9BCC3",wood:"#D8C29C",gold:"#F2C94C",paper:"#FFFFFF",screen:"#DCE8F0",device:"#5B6B7C",roof:"#D9785F",wall:"#F3E3C3",car:"#7FA7C9",bus:"#E9C46A",green:"#7DBE8A",dark:"#4A4A4A",metal:"#C9D3DD",board:"#2F4F3F",chalk:"#F2EFE6"},C=(t,e,s,n,i,r)=>({kind:"polygon",points:[[t,e],[t+s,e],[t+s,e+n],[t,e+n]],fill:i,main:r}),M=(...t)=>({kind:"polyline",points:t});function el(t){return[{kind:"polygon",points:[[-.15,-.72],[.15,-.72],[.19,-.38],[-.19,-.38]],fill:S.shirt,main:!0},{kind:"circle",c:[0,-.87],r:.11,fill:S.skin},...t,M([-.08,-.38],[-.1,0]),M([.08,-.38],[.1,0])]}var Qa=el([M([-.15,-.7],[-.25,-.42]),M([.15,-.7],[.25,-.42])]);function Np(t,e,s){let n=([i,r])=>[s+i*e,r*e];return t.map(i=>i.kind==="circle"?{...i,c:n(i.c),r:i.r*e}:{...i,points:i.points.map(n)})}function xp(){let t=[[-.28,-.3,.18],[-.06,-.45,.25],[.2,-.4,.21],[.37,-.27,.13]],e=[];for(let s=0;s<=24;s++){let n=-.46+.96*s/24,i=t.filter(([r,,o])=>Math.abs(n-r)<=o).map(([r,o,a])=>o-Math.sqrt(Math.max(0,a*a-(n-r)**2)));i.length&&e.push([n,Math.min(...i)])}return[...e,[.42,-.12],[-.4,-.12]]}var Em={person:Qa,"person-pointing":el([M([-.15,-.7],[-.25,-.42]),M([.15,-.69],[.47,-.73])]),"person-sitting":[M([-.3,-.8],[-.27,-.4]),M([-.32,-.4],[.2,-.4]),M([-.27,-.4],[-.27,0]),M([.16,-.4],[.16,0]),{kind:"polygon",points:[[-.22,-.77],[.04,-.77],[.06,-.44],[-.22,-.44]],fill:S.shirt,main:!0},{kind:"circle",c:[-.08,-.9],r:.1,fill:S.skin},M([-.1,-.44],[.3,-.44],[.32,0]),M([0,-.74],[.18,-.55],[.3,-.58])],house:[C(-.4,-.6,.8,.6,S.wall,!0),{kind:"polygon",points:[[-.5,-.58],[0,-1],[.5,-.58]],fill:S.roof},C(-.08,-.32,.16,.32,S.wood),C(.16,-.46,.16,.14,S.screen)],car:[{kind:"polygon",fill:S.car,main:!0,points:[[-.5,-.14],[-.5,-.32],[-.3,-.36],[-.18,-.56],[.2,-.56],[.32,-.36],[.5,-.32],[.5,-.14]]},{kind:"polygon",points:[[-.14,-.51],[.17,-.51],[.25,-.37],[-.22,-.37]],fill:S.screen},{kind:"circle",c:[-.28,-.12],r:.1,fill:S.dark},{kind:"circle",c:[.28,-.12],r:.1,fill:S.dark}],bus:[C(-.5,-.66,1,.52,S.bus,!0),...[-.42,-.21,0,.21].map(t=>C(t,-.6,.15,.16,S.screen)),M([-.5,-.3],[.5,-.3]),{kind:"circle",c:[-.3,-.12],r:.1,fill:S.dark},{kind:"circle",c:[.3,-.12],r:.1,fill:S.dark}],coin:[{kind:"circle",c:[0,-.42],r:.4,fill:S.gold,main:!0},{kind:"circle",c:[0,-.42],r:.3},{kind:"curve",points:[[.1,-.56],[-.08,-.57],[-.09,-.46],[.08,-.39],[.08,-.29],[-.11,-.28]]},M([0,-.64],[0,-.2])],phone:[C(-.26,-1,.52,1,S.device,!0),C(-.2,-.92,.4,.76,S.screen),{kind:"circle",c:[0,-.08],r:.035,fill:S.paper}],document:[{kind:"polygon",points:[[-.36,-1],[.16,-1],[.36,-.8],[.36,0],[-.36,0]],fill:S.paper,main:!0},M([.16,-1],[.16,-.8],[.36,-.8]),...[-.66,-.5,-.34,-.18].map(t=>M([-.22,t],[.22,t]))],server:[-1,-.66,-.32].flatMap(t=>[C(-.36,t,.72,.3,S.metal,!0),M([-.26,t+.15],[.06,t+.15]),{kind:"circle",c:[.22,t+.15],r:.035,fill:S.green}]),bank:[{kind:"polygon",points:[[-.5,-.74],[0,-1],[.5,-.74]],fill:S.wall,main:!0},C(-.45,-.74,.9,.08,S.wall),...[-.33,-.11,.11,.33].map(t=>C(t-.04,-.66,.08,.56,S.paper)),C(-.5,-.1,1,.1,S.wall)],cloud:[{kind:"polygon",points:xp(),fill:S.paper,main:!0}],queue:[-.32,0,.32].flatMap(t=>Np(Qa,.7,t)),desk:[C(-.5,-.5,1,.07,S.wood,!0),M([-.42,-.43],[-.42,0]),M([.42,-.43],[.42,0])],computer:[C(-.45,-1,.9,.6,S.device,!0),C(-.39,-.94,.78,.48,S.screen),{kind:"polygon",points:[[-.06,-.4],[.06,-.4],[.1,-.1],[-.1,-.1]],fill:S.device},C(-.25,-.1,.5,.08,S.device)],clock:[{kind:"circle",c:[0,-.48],r:.45,fill:S.paper,main:!0},...[[0,-.9,0,-.82],[.42,-.48,.34,-.48],[0,-.06,0,-.14],[-.42,-.48,-.34,-.48]].map(([t,e,s,n])=>M([t,e],[s,n])),M([0,-.48],[0,-.78]),M([0,-.48],[.2,-.48])],lock:[{kind:"curve",points:[[-.22,-.52],[-.22,-.76],[0,-.96],[.22,-.76],[.22,-.52]]},C(-.36,-.54,.72,.54,S.bus,!0),{kind:"circle",c:[0,-.32],r:.06,fill:S.dark},M([0,-.28],[0,-.14])],"money-arrow":[{kind:"polygon",fill:S.green,main:!0,points:[[-.5,-.4],[.12,-.4],[.12,-.56],[.5,-.3],[.12,-.04],[.12,-.2],[-.5,-.2]]},{kind:"circle",c:[-.2,-.3],r:.16,fill:S.gold},M([-.2,-.4],[-.2,-.2])],tree:[C(-.07,-.36,.14,.36,S.wood),{kind:"circle",c:[0,-.64],r:.3,fill:S.green,main:!0}],school:[C(-.45,-.6,.9,.6,S.wall,!0),{kind:"polygon",points:[[-.5,-.6],[0,-.82],[.5,-.6]],fill:S.roof},C(-.08,-.28,.16,.28,S.wood),C(-.36,-.48,.16,.12,S.screen),C(.2,-.48,.16,.12,S.screen),M([0,-.82],[0,-1]),{kind:"polygon",points:[[0,-1],[.17,-.95],[0,-.9]],fill:S.roof}],hospital:[C(-.4,-.8,.8,.8,S.paper,!0),C(-.045,-.7,.09,.26,"#C8442C"),C(-.13,-.615,.26,.09,"#C8442C"),C(-.1,-.24,.2,.24,S.metal)],factory:[{kind:"polygon",points:[[-.5,0],[-.5,-.5],[-.25,-.65],[-.25,-.5],[0,-.65],[0,-.5],[.25,-.65],[.25,-.5],[.5,-.5],[.5,0]],fill:S.wall,main:!0},C(.3,-.95,.12,.3,S.dark),C(-.38,-.32,.16,.12,S.screen),C(-.08,-.32,.16,.12,S.screen),C(.22,-.32,.16,.12,S.screen)],truck:[C(-.5,-.62,.62,.46,S.metal,!0),{kind:"polygon",points:[[.12,-.16],[.12,-.5],[.34,-.5],[.48,-.32],[.48,-.16]],fill:S.bus},{kind:"polygon",points:[[.18,-.46],[.32,-.46],[.42,-.33],[.18,-.33]],fill:S.screen},{kind:"circle",c:[-.3,-.1],r:.1,fill:S.dark},{kind:"circle",c:[.3,-.1],r:.1,fill:S.dark}],cart:[M([-.48,-.78],[-.4,-.62]),{kind:"polygon",points:[[-.4,-.62],[.42,-.62],[.32,-.26],[-.3,-.26]],fill:S.metal,main:!0},M([-.3,-.26],[-.3,-.14],[.32,-.14]),{kind:"circle",c:[-.22,-.07],r:.06,fill:S.dark},{kind:"circle",c:[.24,-.07],r:.06,fill:S.dark}],safe:[C(-.4,-.82,.8,.82,S.device,!0),C(-.3,-.72,.6,.62,S.metal),{kind:"circle",c:[0,-.41],r:.13,fill:S.paper},M([0,-.41],[.08,-.47])],bulb:[{kind:"circle",c:[0,-.62],r:.3,fill:S.gold,main:!0},C(-.13,-.33,.26,.2,S.metal),{kind:"curve",points:[[-.09,-.52],[0,-.66],[.09,-.52]]},M([-.08,-.08],[.08,-.08])],gear:[{kind:"polygon",points:[[.42,-.5],[.296,-.378],[.297,-.203],[.122,-.204],[0,-.08],[-.122,-.204],[-.297,-.203],[-.296,-.378],[-.42,-.5],[-.296,-.622],[-.297,-.797],[-.122,-.796],[-0,-.92],[.122,-.796],[.297,-.797],[.296,-.622]],fill:S.metal,main:!0},{kind:"circle",c:[0,-.5],r:.12,fill:S.paper}],database:[{kind:"polygon",points:[[-.35,-.8],[.35,-.8],[.35,-.16],[-.35,-.16]],fill:S.screen,main:!0},{kind:"polygon",points:[[.35,-.8],[.303,-.755],[.175,-.722],[0,-.71],[-.175,-.722],[-.303,-.755],[-.35,-.8],[-.303,-.845],[-.175,-.878],[-0,-.89],[.175,-.878],[.303,-.845]],fill:S.metal},{kind:"curve",points:[[-.35,-.16],[0,-.06],[.35,-.16]]},{kind:"curve",points:[[-.35,-.58],[0,-.48],[.35,-.58]]},{kind:"curve",points:[[-.35,-.37],[0,-.27],[.35,-.37]]}],robot:[M([0,-.95],[0,-1]),C(-.22,-.95,.44,.3,S.metal),{kind:"circle",c:[-.09,-.81],r:.045,fill:S.screen},{kind:"circle",c:[.09,-.81],r:.045,fill:S.screen},C(-.28,-.62,.56,.42,S.metal,!0),M([-.28,-.55],[-.42,-.35]),M([.28,-.55],[.42,-.35]),C(-.2,-.2,.12,.2,S.device),C(.08,-.2,.12,.2,S.device)],ship:[{kind:"polygon",points:[[-.48,-.3],[.48,-.3],[.36,-.04],[-.4,-.04]],fill:S.car,main:!0},C(-.42,-.62,.14,.32,S.wall),C(-.24,-.5,.2,.2,S.roof),C(-.02,-.5,.2,.2,S.bus),C(.2,-.5,.2,.2,S.green),{kind:"curve",points:[[-.5,0],[-.3,-.04],[-.1,0],[.1,-.04],[.3,0],[.5,-.04]]}],container:[C(-.46,-.52,.92,.52,S.roof,!0),...[-.3,-.15,0,.15,.3].map(t=>M([t,-.48],[t,-.04]))],warehouse:[{kind:"polygon",points:[[-.46,0],[.46,0],[.46,-.55],[0,-.82],[-.46,-.55]],fill:S.wall,main:!0},C(-.2,-.38,.4,.38,S.metal),M([-.2,-.26],[.2,-.26]),M([-.2,-.13],[.2,-.13])],box:[C(-.36,-.5,.52,.5,S.wood,!0),{kind:"polygon",points:[[-.36,-.5],[.16,-.5],[.36,-.64],[-.16,-.64]],fill:S.wood},{kind:"polygon",points:[[.16,0],[.36,-.14],[.36,-.64],[.16,-.5]],fill:S.wood},M([-.1,-.5],[.1,-.64])],pallet:[C(-.46,-.12,.92,.06,S.wood),...[-.42,-.05,.32].map(t=>C(t,-.06,.1,.06,S.wood)),C(-.42,-.5,.4,.38,S.wood,!0),C(.02,-.5,.4,.38,S.wood),C(-.2,-.82,.4,.32,S.wood)],shop:[C(-.42,-.6,.84,.6,S.wall,!0),{kind:"polygon",points:[[-.48,-.6],[.48,-.6],[.42,-.78],[-.42,-.78]],fill:S.roof},C(-.34,-.48,.34,.26,S.screen),C(.08,-.42,.24,.42,S.wood)],shelf:[C(-.4,-.92,.8,.92,S.paper,!0),M([-.4,-.62],[.4,-.62]),M([-.4,-.32],[.4,-.32]),C(-.32,-.8,.16,.18,S.roof),C(-.1,-.78,.14,.16,S.bus),C(.1,-.5,.22,.18,S.green),C(-.3,-.2,.24,.2,S.wood)],field:[M([-.48,0],[.48,0]),...[-.3,0,.3].flatMap(t=>[{kind:"curve",points:[[t,0],[t-.02,-.25],[t,-.5]]},{kind:"circle",c:[t-.08,-.32],r:.07,fill:S.green,main:!0},{kind:"circle",c:[t+.08,-.42],r:.07,fill:S.green,main:!0},{kind:"circle",c:[t,-.52],r:.06,fill:S.roof}])],cup:[{kind:"polygon",points:[[-.26,-.52],[.26,-.52],[.2,-.1],[-.2,-.1]],fill:S.paper,main:!0},{kind:"curve",points:[[.24,-.44],[.4,-.38],[.22,-.2]]},{kind:"polygon",points:[[-.46,-.1],[.46,-.1],[.36,0],[-.36,0]],fill:S.paper},{kind:"curve",points:[[-.08,-.62],[-.02,-.72],[-.08,-.84]]},{kind:"curve",points:[[.08,-.62],[.14,-.72],[.08,-.84]]}],function:[C(-.38,-.72,.76,.62,S.screen,!0),M([-.14,-.62],[0,-.62],[.14,-.2]),M([.02,-.42],[-.14,-.2])],"api-gateway":[C(-.12,-.8,.24,.8,S.metal,!0),M([-.48,-.55],[-.16,-.55]),M([-.24,-.62],[-.16,-.55],[-.24,-.48]),M([.16,-.3],[.48,-.3]),M([.4,-.37],[.48,-.3],[.4,-.23])],cache:[C(-.34,-.66,.68,.66,S.metal,!0),{kind:"polygon",points:[[.04,-.58],[-.12,-.3],[0,-.3],[-.06,-.08],[.14,-.38],[.02,-.38]],fill:S.gold}],cluster:[{kind:"curve",points:[[-.4,-.8],[0,-.86],[.4,-.8],[.48,-.45],[.4,-.1],[0,-.04],[-.4,-.1],[-.48,-.45],[-.4,-.8]]},C(-.3,-.7,.24,.2,S.screen,!0),C(.06,-.7,.24,.2,S.screen,!0),C(-.12,-.38,.24,.2,S.screen,!0)],board:[C(-.48,-.9,.96,.6,S.board,!0),C(-.34,-.76,.42,.03,S.chalk),C(-.34,-.62,.58,.03,S.chalk),C(-.34,-.48,.3,.03,S.chalk),M([-.3,-.3],[-.36,0]),M([.3,-.3],[.36,0])],book:[{kind:"polygon",points:[[0,-.62],[-.46,-.7],[-.46,-.1],[0,-.04]],fill:S.paper,main:!0},{kind:"polygon",points:[[0,-.62],[.46,-.7],[.46,-.1],[0,-.04]],fill:S.paper,main:!0},M([-.36,-.52],[-.1,-.48]),M([-.36,-.38],[-.1,-.34]),M([.1,-.48],[.36,-.52]),M([.1,-.34],[.36,-.38])],pencil:[{kind:"polygon",points:[[-.38,-.12],[.22,-.72],[.34,-.6],[-.26,0]],fill:S.bus,main:!0},{kind:"polygon",points:[[.22,-.72],[.34,-.6],[.44,-.86]],fill:S.wood},{kind:"polygon",points:[[-.38,-.12],[-.26,0],[-.46,-.02]],fill:S.roof}]},tl=["happy","sad","surprised","worried","idea"],qp={person:[0,-.87,.11],"person-pointing":[0,-.87,.11],"person-sitting":[-.08,-.9,.1]},sl=t=>{let e=Ys(t);return!!e&&e in qp};var nl=["spin","drive","steam","talk","pulse","float"],Cp=["lesson","pitch","arch","decision","data","timeline","story"],il=8,rl=6,ol=2e5,al=6e5,ll=24;var ul=["card","line","arrow","polyline","polygon","curve","circle","ellipse","plot","text","highlight","pause","prop","repeat","when","move","link","counter","row","column","grid","axis","timeline","balloon","brace","note","table","bars","chain","animate","lottie"],it=["text","prop","card","counter","circle","ellipse"],cl=["row","column","grid","chain"],Tp=50;function z(t,e){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`${e}: expected an object.`)}function j(t,e){if(typeof t!="string"||!t.trim()||t.length>2e3)throw new Error(`${e}: expected text of 1 to 2000 characters.`)}function D(t,e,s=-1e4,n=1e4){if(typeof t!="number"||!Number.isFinite(t)||t<s||t>n)throw new Error(`${e}: expected a number between ${s} and ${n}.`)}function Q(t,e){if(typeof t=="string"){if(j(t,e),t.length>300)throw new Error(`${e}: expression too long.`)}else D(t,e)}function H(t,e){if(!Array.isArray(t)||t.length!==2)throw new Error(`${e}: expected [x, y].`);t.forEach((s,n)=>Q(s,`${e}[${n}]`))}function ie(t,e){t!==void 0&&j(t,e)}function Z(t,e,s){if(t!==void 0&&(typeof t!="string"||!e.includes(t)))throw new Error(`${s}: choose one of ${e.join(", ")}.`)}function zs(t){if(!/^[A-Za-z_][A-Za-z_0-9]*$/.test(t)||["__proto__","constructor","prototype",...Ha].includes(t))throw new Error(`Invalid variable name: "${t}".`)}var rt=(t,e)=>e.includes("{")||t.exact.has(e)||[...t.repeated].some(s=>e.startsWith(`${s}-`)&&/^\d+$/.test(e.slice(s.length+1)));function Re(t,e,s,n){n&&t[e]===void 0&&(t[e]=[0,0]),H(t[e],`${s}.${e}`)}function jt(t,e,s,n,i=!1){if(z(t,e),++s.count>500)throw new Error(`${e}: a recipe draws at most 500 steps, counting those inside repeat and when.`);if(n){for(let a of["chapter","say","duration"])if(t[a]!==void 0)throw new Error(`${e}.${a}: put it on the ${n} step itself, not on a step inside it.`);if(t.type==="pause")throw new Error(`${e}: a pause cannot go inside ${n}.`);if(t.type==="repeat"&&n==="repeat")throw new Error(`${e}: a repeat cannot go inside another repeat.`);if(cl.includes(n)&&t.place!==void 0)throw new Error(`${e}.place: the ${n} places the steps inside it.`)}if(!ul.includes(t.type))throw new Error(`${e}: unknown type "${t.type}".`);for(let a of["id","say","chapter"])ie(t[a],`${e}.${a}`);if(t.duration!==void 0&&D(t.duration,`${e}.duration`,0,3e4),t.nudge!==void 0){if(["pause","move","link","animate"].includes(t.type))throw new Error(`${e}.nudge: a ${t.type} has no place of its own to move.`);if(!Array.isArray(t.nudge)||t.nudge.length!==2)throw new Error(`${e}.nudge: use [dx, dy].`);t.nudge.forEach((a,l)=>D(a,`${e}.nudge[${l}]`,-900,900))}let r=n!==null&&cl.includes(n)||i;if(t.place!==void 0){if(!it.includes(t.type))throw new Error(`${e}.place: only ${it.join(", ")} can be placed.`);if(z(t.place,`${e}.place`),j(t.place.to,`${e}.place.to`),!rt(s,String(t.place.to)))throw new Error(`${e}.place.to: no earlier step has the id "${t.place.to}".`);if(!["below","above","left","right"].includes(t.place.side))throw new Error(`${e}.place.side: choose one of below, above, left, right.`);t.place.gap!==void 0&&D(t.place.gap,`${e}.place.gap`,-200,400),Z(t.place.align,["center","start","end"],`${e}.place.align`)}let o=r||t.place!==void 0;if(t.style!==void 0){z(t.style,`${e}.style`);for(let a of["color","fill"]){let l=t.style[a];if(l!==void 0&&(typeof l!="string"||!/^(#[\da-f]{3,8}|[a-z]+)$/i.test(l)))throw new Error(`${e}.style.${a}: use a hex colour or a colour name, no URLs.`)}for(let a of["width","roughness","bowing"])t.style[a]!==void 0&&D(t.style[a],`${e}.style.${a}`,0,20);if(t.style.opacity!==void 0&&D(t.style.opacity,`${e}.style.opacity`,0,1),t.style.dashed!==void 0&&typeof t.style.dashed!="boolean")throw new Error(`${e}: dashed must be a boolean.`);Z(t.style.fillStyle,["hachure","solid","zigzag","cross-hatch","dots"],`${e}.style.fillStyle`)}switch(t.type){case"line":case"arrow":case"highlight":H(t.from,`${e}.from`),H(t.to,`${e}.to`),t.thickness!==void 0&&D(t.thickness,`${e}.thickness`,1,200);break;case"polyline":case"polygon":case"curve":if(!Array.isArray(t.points)||t.points.length<(t.type==="polygon"?3:2)||t.points.length>500)throw new Error(`${e}: points needs ${t.type==="polygon"?3:2} to 500 points.`);t.points.forEach((a,l)=>H(a,`${e}.points[${l}]`));break;case"circle":case"ellipse":Re(t,"center",e,o);for(let a of t.type==="circle"?["r"]:["rx","ry"])Q(t[a],`${e}.${a}`),typeof t[a]=="number"&&D(t[a],`${e}.${a}`,0);break;case"text":Re(t,"at",e,o),j(t.text,`${e}.text`),t.size!==void 0&&D(t.size,`${e}.size`,1,200),t.rotate!==void 0&&D(t.rotate,`${e}.rotate`,-360,360),Z(t.font,["hand","body"],`${e}.font`),Z(t.anchor,["start","middle","end"],`${e}.anchor`);break;case"card":Re(t,"at",e,o),Q(t.w,`${e}.w`),Q(t.h,`${e}.h`);for(let a of["w","h"])typeof t[a]=="number"&&D(t[a],`${e}.${a}`,40);if(j(t.title,`${e}.title`),t.lines!==void 0){if(!Array.isArray(t.lines)||t.lines.length>6)throw new Error(`${e}: at most 6 lines per card.`);t.lines.forEach((a,l)=>j(a,`${e}.lines[${l}]`))}break;case"plot":j(t.fn,`${e}.fn`),t.var!==void 0&&(j(t.var,`${e}.var`),zs(String(t.var))),H(t.domain,`${e}.domain`),H(t.range,`${e}.range`),z(t.box,`${e}.box`);for(let a of["x","y","w","h"])Q(t.box[a],`${e}.box.${a}`);if(t.samples!==void 0&&(D(t.samples,`${e}.samples`,2,1e3),!Number.isInteger(t.samples)))throw new Error(`${e}: samples must be an integer.`);break;case"pause":D(t.ms,`${e}.ms`,0,3e4),ie(t.ask,`${e}.ask`);break;case"prop":if(!Za(t.name)&&!s.figures.has(String(t.name))){let a=s.figures.size?`, or one the recipe defines (${[...s.figures].join(", ")})`:"";throw new Error(`${e}.name: unknown prop "${String(t.name)}"; use one of ${Bi.join(", ")}${a}.`)}if(Re(t,"at",e,o),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&D(t.size,`${e}.size`,10,1e3)),ie(t.label,`${e}.label`),t.flip!==void 0&&typeof t.flip!="boolean")throw new Error(`${e}.flip: expected true or false.`);if(t.mood!==void 0){if(!sl(t.name))throw new Error(`${e}.mood: only a person (person, person-pointing, person-sitting) has a face.`);Z(t.mood,tl,`${e}.mood`)}break;case"repeat":if(Q(t.times,`${e}.times`),typeof t.times=="number"&&(D(t.times,`${e}.times`,0,Tp),!Number.isInteger(t.times)))throw new Error(`${e}.times: expected a whole number.`);jt(t.step,`${e}.step`,s,"repeat",r);break;case"when":if(Q(t.if,`${e}.if`),!Array.isArray(t.steps)||t.steps.length===0||t.steps.length>50)throw new Error(`${e}.steps: expected 1 to 50 steps.`);t.steps.forEach((a,l)=>jt(a,`${e}.steps[${l}]`,s,n??"when"));break;case"move":if(j(t.target,`${e}.target`),!rt(s,String(t.target)))throw new Error(`${e}.target: no earlier step has the id "${t.target}".`);H(t.to,`${e}.to`),Z(t.along,["line","curve"],`${e}.along`),t.ms!==void 0&&D(t.ms,`${e}.ms`,200,5e3);break;case"lottie":if(j(t.src,`${e}.src`),H(t.at,`${e}.at`),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&D(t.size,`${e}.size`,24,1e3)),t.loop!==void 0&&typeof t.loop!="boolean")throw new Error(`${e}.loop: expected true or false.`);break;case"animate":if(j(t.target,`${e}.target`),!rt(s,String(t.target)))throw new Error(`${e}.target: no earlier step has the id "${t.target}".`);if(Z(t.effect,[...nl,"stop"],`${e}.effect`),t.effect===void 0)throw new Error(`${e}.effect: choose one of ${[...nl,"stop"].join(", ")}.`);Z(t.speed,["slow","fast"],`${e}.speed`);break;case"link":for(let a of["from","to"])if(j(t[a],`${e}.${a}`),!rt(s,String(t[a])))throw new Error(`${e}.${a}: no earlier step has the id "${t[a]}".`);ie(t.label,`${e}.label`);break;case"counter":if(Re(t,"at",e,o),Q(t.value,`${e}.value`),t.format!==void 0&&(j(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "R$ {v:0}".`);t.size!==void 0&&D(t.size,`${e}.size`,1,200),Z(t.anchor,["start","middle","end"],`${e}.anchor`);break;case"row":case"column":case"grid":if(r)throw new Error(`${e}: a ${t.type} cannot go inside another ${n}.`);if(Re(t,"at",e,!1),t.gap!==void 0&&D(t.gap,`${e}.gap`,0,400),t.type==="grid"){if(D(t.columns,`${e}.columns`,1,12),!Number.isInteger(t.columns))throw new Error(`${e}.columns: expected a whole number.`)}else Z(t.align,["center","start","end"],`${e}.align`);if(!Array.isArray(t.steps)||t.steps.length===0||t.steps.length>50)throw new Error(`${e}.steps: expected 1 to 50 steps.`);t.steps.forEach((a,l)=>{z(a,`${e}.steps[${l}]`);let c=a.type==="repeat"?a.step?.type:a.type;if(!it.includes(c))throw new Error(`${e}.steps[${l}]: a ${t.type} holds only ${it.join(", ")} (or a repeat of one).`);jt(a,`${e}.steps[${l}]`,s,t.type)});break;case"chain":if(r)throw new Error(`${e}: a chain cannot go inside a ${n}.`);if(Re(t,"at",e,!1),t.gap!==void 0&&t.gap!=="auto"&&D(t.gap,`${e}.gap`,0,400),Z(t.direction,["right","down"],`${e}.direction`),t.wrap!==void 0&&typeof t.wrap!="boolean")throw new Error(`${e}.wrap: expected true or false.`);if(ie(t.forward,`${e}.forward`),ie(t.back,`${e}.back`),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&D(t.size,`${e}.size`,10,1e3)),!Array.isArray(t.steps)||t.steps.length<2||t.steps.length>12)throw new Error(`${e}.steps: a chain joins 2 to 12 pieces.`);t.steps.forEach((a,l)=>{if(z(a,`${e}.steps[${l}]`),!it.includes(a.type))throw new Error(`${e}.steps[${l}]: a chain holds only ${it.join(", ")}.`);jt(a,`${e}.steps[${l}]`,s,"chain")});break;case"axis":case"timeline":if(H(t.from,`${e}.from`),H(t.to,`${e}.to`),H(t.domain,`${e}.domain`),t.type==="axis"){if(t.ticks!==void 0){if(Array.isArray(t.ticks)){if(t.ticks.length>30)throw new Error(`${e}.ticks: at most 30 marks.`);t.ticks.forEach((a,l)=>D(a,`${e}.ticks[${l}]`))}else if(D(t.ticks,`${e}.ticks`,0,30),!Number.isInteger(t.ticks))throw new Error(`${e}.ticks: expected a whole number.`)}if(ie(t.label,`${e}.label`),t.format!==void 0&&(j(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "{v} km".`)}else{if(!Array.isArray(t.marks)||t.marks.length===0||t.marks.length>20)throw new Error(`${e}.marks: expected 1 to 20 marks.`);t.marks.forEach((a,l)=>{z(a,`${e}.marks[${l}]`),Q(a.at,`${e}.marks[${l}].at`),ie(a.label,`${e}.marks[${l}].label`),ie(a.text,`${e}.marks[${l}].text`)})}break;case"balloon":if(j(t.to,`${e}.to`),!rt(s,String(t.to)))throw new Error(`${e}.to: no earlier step has the id "${t.to}".`);if(j(t.text,`${e}.text`),String(t.text).length>300)throw new Error(`${e}.text: keep a balloon under 300 characters.`);Z(t.side,["below","above","left","right"],`${e}.side`),Z(t.kind,["speech","thought"],`${e}.kind`),t.width!==void 0&&D(t.width,`${e}.width`,80,600),t.size!==void 0&&D(t.size,`${e}.size`,12,60);break;case"brace":if(H(t.from,`${e}.from`),H(t.to,`${e}.to`),ie(t.label,`${e}.label`),t.flip!==void 0&&typeof t.flip!="boolean")throw new Error(`${e}.flip: expected true or false.`);break;case"note":if(H(t.at,`${e}.at`),j(t.text,`${e}.text`),t.to===void 0==(t.point===void 0))throw new Error(`${e}: a note points either to an element (to) or to a point (point).`);if(t.to!==void 0){if(j(t.to,`${e}.to`),!rt(s,String(t.to)))throw new Error(`${e}.to: no earlier step has the id "${t.to}".`)}else H(t.point,`${e}.point`);t.size!==void 0&&D(t.size,`${e}.size`,12,60);break;case"table":if(H(t.at,`${e}.at`),!Array.isArray(t.rows)||t.rows.length===0||t.rows.length>12)throw new Error(`${e}.rows: expected 1 to 12 rows.`);if(t.rows.forEach((a,l)=>{if(!Array.isArray(a)||a.length===0||a.length>6)throw new Error(`${e}.rows[${l}]: expected 1 to 6 cells.`);a.forEach((c,d)=>{if(typeof c!="string"||c.length>120)throw new Error(`${e}.rows[${l}][${d}]: expected text of up to 120 characters.`)})}),t.header!==void 0&&typeof t.header!="boolean")throw new Error(`${e}.header: expected true or false.`);t.size!==void 0&&D(t.size,`${e}.size`,12,40);break;case"bars":z(t.box,`${e}.box`);for(let a of["x","y","w","h"])Q(t.box[a],`${e}.box.${a}`);if(!Array.isArray(t.values)||t.values.length===0||t.values.length>12)throw new Error(`${e}.values: expected 1 to 12 values.`);if(t.values.forEach((a,l)=>Q(a,`${e}.values[${l}]`)),t.labels!==void 0){if(!Array.isArray(t.labels)||t.labels.length>t.values.length)throw new Error(`${e}.labels: at most one label per value.`);t.labels.forEach((a,l)=>j(a,`${e}.labels[${l}]`))}if(t.max!==void 0&&Q(t.max,`${e}.max`),t.format!==void 0&&(j(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "{v}%".`);break}typeof t.id=="string"&&(n==="repeat"?s.repeated:s.exact).add(t.id)}function Lp(t,e){let s=`defs.${t}`;if(!/^[a-z][a-z0-9-]{1,30}$/.test(t))throw new Error(`${s}: a figure's name is 2 to 31 lowercase letters, digits or -, starting with a letter.`);if(Ys(t)||Object.hasOwn(Us,t)||ul.includes(t)||["define","title","param","switch","var"].includes(t))throw new Error(`${s}: "${t}" is already a prop or a step; choose another name.`);if(z(e,s),!Array.isArray(e.shapes)||e.shapes.length===0||e.shapes.length>ll)throw new Error(`${s}.shapes: expected 1 to ${ll} shapes.`);let n=(i,r)=>{if(typeof i!="number"||!Number.isInteger(i)||i<0||i>100)throw new Error(`${r}: expected a whole number from 0 to 100 (the figure's grid, y down; it stands at 50,100).`)};e.shapes.forEach((i,r)=>{let o=`${s}.shapes[${r}]`;if(z(i,o),i.fill!==void 0&&(typeof i.fill!="string"||!/^(#[0-9a-fA-F]{3,8}|[a-z]{3,20})$/.test(i.fill)))throw new Error(`${o}.fill: a colour, as hex or a plain name.`);if(i.kind==="circle"){if(!Array.isArray(i.c)||i.c.length!==2)throw new Error(`${o}.c: expected [x, y].`);i.c.forEach((l,c)=>n(l,`${o}.c[${c}]`)),n(i.r,`${o}.r`);return}if(!["polygon","polyline","curve"].includes(i.kind))throw new Error(`${o}.kind: choose one of polygon, polyline, curve, circle.`);let a=i.kind==="polygon"?3:2;if(!Array.isArray(i.points)||i.points.length<a||i.points.length>40)throw new Error(`${o}.points: a ${i.kind} takes ${a} to 40 points.`);i.points.forEach((l,c)=>{if(!Array.isArray(l)||l.length!==2)throw new Error(`${o}.points[${c}]: expected [x, y].`);l.forEach((d,f)=>n(d,`${o}.points[${c}][${f}]`))})})}function Ip(t,e){let s=`lottie "${t}"`;z(e,s);let n=JSON.stringify(e).length;if(n>ol)throw new Error(`${s}: ${Math.round(n/1e3)} KB; an animation can have at most ${ol/1e3} KB.`);for(let r of["fr","ip","op","w","h"])D(e[r],`${s}.${r}`,0,1e5);if(typeof e.v!="string"||!Array.isArray(e.layers))throw new Error(`${s}: not a Lottie animation (it needs v and layers).`);let i=(r,o)=>{if(Array.isArray(r))return r.forEach((a,l)=>i(a,`${o}[${l}]`));if(!(!r||typeof r!="object"))for(let[a,l]of Object.entries(r)){if(a==="x"&&typeof l=="string")throw new Error(`${s}: the animation has an expression (code inside it, at ${o}); only animations without expressions play.`);i(l,`${o}.${a}`)}};i(e.layers,"layers");for(let r of Array.isArray(e.assets)?e.assets:[]){let o=r?.p;if(typeof o=="string"&&o&&!o.startsWith("data:")&&!Array.isArray(r.layers))throw new Error(`${s}: an image from outside the animation ("${o.slice(0,40)}"); only images inside it (data:) are kept.`)}return n}function Mp(t){z(t,"The recipe");let e=t;D(e.width,"width",100,4e3),D(e.height,"height",100,4e3);for(let i of["id","title","category"])ie(e[i],i);if(e.locale!==void 0&&!(typeof e.locale=="string"&&/^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$/.test(e.locale)&&Intl.NumberFormat.supportedLocalesOf([e.locale]).length>0))throw new Error('locale: expected a language tag such as "en-US" or "pt-BR".');if(Z(e.background,["dots","grid","plain"],"background"),Z(e.kind,Cp,"kind"),ie(e.source,"source"),e.quiz!==void 0&&e.kind!==void 0&&e.kind!=="lesson")throw new Error(`quiz: only a lesson has a quiz (this drawing is a ${e.kind}).`);if(Z(e.theme,["paper","chalkboard"],"theme"),e.quiz!==void 0){if(z(e.quiz,"quiz"),j(e.quiz.question,"quiz.question"),!Array.isArray(e.quiz.options)||e.quiz.options.length<2||e.quiz.options.length>4)throw new Error("quiz.options: expected 2 to 4 options.");if(e.quiz.options.forEach((i,r)=>{if(z(i,`quiz.options[${r}]`),j(i.text,`quiz.options[${r}].text`),j(i.why,`quiz.options[${r}].why`),typeof i.right!="boolean")throw new Error(`quiz.options[${r}].right: expected true or false.`)}),e.quiz.options.filter(i=>i.right===!0).length!==1)throw new Error("quiz.options: exactly one option is right.")}if(e.learning!==void 0){z(e.learning,"learning");for(let i of["goal","question","answer","caveat"])j(e.learning[i],`learning.${i}`)}if(e.params!==void 0){z(e.params,"params");for(let[i,r]of Object.entries(e.params))if(zs(i),z(r,`params.${i}`),j(r.label,`params.${i}.label`),D(r.min,`${i}.min`),D(r.max,`${i}.max`),D(r.step,`${i}.step`,1e-6),D(r.value,`${i}.value`,r.min,r.max),r.max<=r.min)throw new Error(`${i}: max must be greater than min.`)}if(e.vars!==void 0){z(e.vars,"vars");for(let[i,r]of Object.entries(e.vars))zs(i),Q(r,`vars.${i}`)}if(e.switches!==void 0){z(e.switches,"switches");let i=Object.entries(e.switches);if(i.length>8)throw new Error("switches: at most 8.");for(let[r,o]of i){if(zs(r),Object.hasOwn(e.params??{},r)||Object.hasOwn(e.vars??{},r))throw new Error(`switches.${r}: the name is already a param or a var.`);if(z(o,`switches.${r}`),j(o.label,`switches.${r}.label`),typeof o.on!="boolean")throw new Error(`switches.${r}.on: expected true or false.`)}}if(!Array.isArray(e.steps)||e.steps.length===0||e.steps.length>250)throw new Error("A recipe needs 1 to 250 steps.");let s=new Set;if(e.defs!==void 0){z(e.defs,"defs");let i=Object.entries(e.defs);if(i.length>il)throw new Error(`defs: at most ${il} figures.`);for(let[r,o]of i)Lp(r,o),s.add(r)}if(e.lotties!==void 0){z(e.lotties,"lotties");let i=Object.entries(e.lotties);if(i.length>rl)throw new Error(`lotties: at most ${rl} animations.`);let r=i.reduce((o,[a,l])=>o+Ip(a,l),0);if(r>al)throw new Error(`lotties: ${Math.round(r/1e3)} KB in all; at most ${al/1e3} KB.`)}if(e.credits!==void 0){if(!Array.isArray(e.credits)||e.credits.length>5)throw new Error("credits: at most 5 lines.");e.credits.forEach((i,r)=>j(i,`credits[${r}]`))}let n={exact:new Set,repeated:new Set,count:0,figures:s};return e.steps.forEach((i,r)=>jt(i,`Step ${r+1}`,n,null)),{...e,id:e.id??"pasted",title:e.title??"",background:e.background??"dots"}}export{Li as STAGE_DOOR,ap as applyRows,Pi as checkWay,Zd as exportWay,Op as fromSheets,up as itemName,Di as problemText,sp as readWay,_i as reviewWay,Ga as sheetKeyOf,cp as show,Mp as validateScene,op as wayDiff,Ep as wayLesson,gp as workbookOf,kp as xlsx};
|
|
155
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"><bookViews><workbookView/></bookViews><sheets>${n.map((o,a)=>`<sheet name="${Ri(o)}" sheetId="${a+1}" r:id="rId${a+1}"/>`).join("")}</sheets>${i?`<definedNames>${i}</definedNames>`:""}</workbook>`],["xl/_rels/workbook.xml.rels",`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
156
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">${t.map((o,a)=>`<Relationship Id="rId${a+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet${a+1}.xml"/>`).join("")}<Relationship Id="rId${t.length+1}" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>`],["xl/styles.xml",e],...t.map((o,a)=>[`xl/worksheets/sheet${a+1}.xml`,$d(o,s)])];return Nd(r.map(([o,a])=>[o,Xa.encode(a)]))}var Ad=(()=>{let t=new Uint32Array(256);for(let e=0;e<256;e++){let s=e;for(let n=0;n<8;n++)s=s&1?3988292384^s>>>1:s>>>1;t[e]=s>>>0}return t})();function Ed(t){let e=4294967295;for(let s=0;s<t.length;s++)e=Ad[(e^t[s])&255]^e>>>8;return(e^4294967295)>>>0}function Nd(t){let e=[],s=[],n=0;for(let[c,p]of t){let f=Xa.encode(c),u=Ed(p),y=new DataView(new ArrayBuffer(30));y.setUint32(0,67324752,!0),y.setUint16(4,20,!0),y.setUint16(6,2048,!0),y.setUint16(8,0,!0),y.setUint32(14,u,!0),y.setUint32(18,p.length,!0),y.setUint32(22,p.length,!0),y.setUint16(26,f.length,!0),e.push(new Uint8Array(y.buffer),f,p);let $=new DataView(new ArrayBuffer(46));$.setUint32(0,33639248,!0),$.setUint16(4,20,!0),$.setUint16(6,20,!0),$.setUint16(8,2048,!0),$.setUint32(16,u,!0),$.setUint32(20,p.length,!0),$.setUint32(24,p.length,!0),$.setUint16(28,f.length,!0),$.setUint32(42,n,!0),s.push(new Uint8Array($.buffer),f),n+=30+f.length+p.length}let i=s.reduce((c,p)=>c+p.length,0),r=new DataView(new ArrayBuffer(22));r.setUint32(0,101010256,!0),r.setUint16(8,t.length,!0),r.setUint16(10,t.length,!0),r.setUint32(12,i,!0),r.setUint32(16,n,!0);let o=[...e,...s,new Uint8Array(r.buffer)],a=new Uint8Array(o.reduce((c,p)=>c+p.length,0)),l=0;for(let c of o)a.set(c,l),l+=c.length;return a}function Ha(t){let e=t.trim().toLowerCase();for(let s of Object.values(Ks))for(let n of["summary","stages","gates","roles","outputs","kpis","checklist","thread"])if(String(s[n]).toLowerCase().slice(0,31)===e)return n}var G=t=>t.normalize("NFD").replace(/[̀-ͯ]/g,"").trim().toLowerCase(),je=(t,e)=>(t??"").split(e).map(s=>s.trim()).filter(Boolean);function xd(t,e){let s=structuredClone(t),n=[],i=new Map(e.map(g=>[Ha(g.name),g])),r=(g,A)=>{if(!g?.rows.length)return;let E=Object.values(Ks).map(I=>G(String(I[A]))),x=g.rows[0].findIndex(I=>E.includes(G(I)));return x<0?void 0:I=>(I[x]??"").trim()},o=g=>(g?.rows.slice(1)??[]).filter(A=>A.some(E=>String(E??"").trim())),a=()=>[...s.lanes,...s.phases,...s.stages,...s.gates??[],...s.roles??[],...s.kpis??[]].map(g=>g.id),l=(g,A)=>g.find(E=>E.id===A||G(E.name??"")===G(A)),c=i.get("roles");if(c){let[g,A,E]=[r(c,"role"),r(c,"name"),r(c,"lane")];if(g){let x=[];for(let I of o(c)){let k=g(I);if(!k||k.length>12||/\s/.test(k))continue;let P=(s.roles??[]).find(N=>G(N.acronym)===G(k)),R=E?.(I)??"",q=R?l(s.lanes,R)?.id??f(R):P?.lane??s.lanes[0]?.id??"";x.push({...P??{id:ce(k,a()),acronym:k},acronym:k,name:A?.(I)||P?.name,lane:q})}s.roles=x}}let p=g=>{let A=(s.roles??[]).find(E=>G(E.acronym)===G(g)||E.id===g);return A||n.push(`\xAB${g}\xBB is not one of the roles`),A?.id};function f(g){let A=ce(g,a());return s.lanes.push({id:A,name:g}),A}function u(g){let A=ce(g,a());return s.phases.push({id:A,name:g}),A}let y=i.get("stages");if(y){let g=Object.fromEntries(["id","phase","stage","lane","roles2","question","inputs","delivers","metrics","activities","where","wip","description"].map(A=>[A,r(y,A)]));if(g.stage){let A=new Set(Object.values(Ks).map(k=>G(k.outsideWord))),E=new Set([...t.stages.map(k=>k.name),...(t.gates??[]).map(k=>k.name),...o(y).map(k=>g.stage(k))].map(G)),x=k=>{let P=k.match(/^(.*\S)\s*\(([^()]+)\)$/);return P?A.has(G(P[2]))?{name:P[1],outside:!0}:E.has(G(P[2]))?{name:P[1],outside:!1}:{name:k,outside:!1}:{name:k,outside:!1}},I=[];for(let k of o(y)){let P=g.stage(k);if(!P)continue;let R=g.id?.(k)||"",q=t.stages.find(O=>O.id===R),N=g.phase?.(k)??"",d=g.lane?.(k)??"",v={...q??{id:ce(P,[...a(),...I.map(O=>O.id)])},name:P,phase:N?l(s.phases,N)?.id??u(N):q?.phase??s.phases[0].id,lane:d?l(s.lanes,d)?.id??f(d):q?.lane??s.lanes[0].id};if(g.roles2&&(v.roles=je(g.roles2(k),/[,;]/).map(p).filter(O=>!!O)),g.question&&(v.question=g.question(k)||void 0),g.inputs){let O=je(g.inputs(k),/;|\n/).map(x);v.inputs=O.map(C=>C.name),v.outside=O.filter(C=>C.outside).map(C=>C.name)}if(g.metrics&&(v.metrics=je(g.metrics(k),/;|\n/)),g.description&&(v.description=g.description(k)||void 0),g.where&&(v.where=g.where(k)||void 0),g.wip){let O=Number(g.wip(k));v.wip=g.wip(k)&&Number.isFinite(O)?O:void 0}if(g.delivers){let O=t.stages.flatMap(C=>C.outputs??[]);v.outputs=je(g.delivers(k),/;|\n/).map(C=>O.find(D=>G(D.name)===G(C))??{id:ce(C,[...a(),...O.map(D=>D.id)]),name:C})}if(g.activities){let O=t.stages.flatMap(C=>C.activities??[]);v.activities=je(g.activities(k),/;|\n/).map(C=>O.find(D=>G(D.name)===G(C))??{id:ce(C,O.map(D=>D.id)),name:C})}for(let O of["question","where","wip","description"])v[O]===void 0&&delete v[O];for(let O of["roles","inputs","outside","outputs","metrics","activities"])!v[O]?.length&&!q?.[O]&&delete v[O];I.push(v)}s.stages=I}}let $=g=>{if(!g)return;let A=l(s.stages,g)?.id??l(t.stages,g)?.id,E=s.stages.find(x=>x.id===A);return E||n.push(`\xAB${g}\xBB is not one of the stages`),E?.id},m=i.get("gates");if(m){let g=Object.fromEntries(["id","gate","after","approver","when","onFail","gateOut","metrics"].map(A=>[A,r(m,A)]));if(g.gate){let A=[];for(let E of o(m)){let x=g.gate(E),I=g.id?.(E)||"",k=A.find(O=>I?O.id===I:!!x&&G(O.name)===G(x));if(k){let O=g.approver?.(E)?p(g.approver(E)):void 0;O&&(k.approvals=[...se(k),{by:O,...g.when?.(E)&&{when:g.when(E)}}],delete k.approver);continue}if(!x)continue;let P=(t.gates??[]).find(O=>O.id===I),R=$(g.after?.(E)??"")??P?.after;if(!R)continue;let q=g.approver?.(E),N=g.onFail?.(E),d={...P??{id:ce(x,[...a(),...A.map(O=>O.id)]),results:[{id:"ok",label:"OK",ok:!0},{id:"no",label:"\xD7"}]},name:x,after:R,approver:q?p(q)??null:null,approvals:void 0,on_fail:N?$(N)??null:null};if(g.gateOut){let O=(t.gates??[]).flatMap(C=>C.outputs??[]);d.outputs=je(g.gateOut(E),/;|\n/).map(C=>O.find(D=>G(D.name)===G(C))??{id:ce(C,[...a(),...O.map(D=>D.id)]),name:C})}g.metrics&&(d.metrics=je(g.metrics(E),/;|\n/));let v=g.when?.(E);v&&d.approver&&(d.approvals=[{by:d.approver,when:v}],delete d.approver);for(let O of["outputs","metrics"])!d[O]?.length&&!P?.[O]&&delete d[O];A.push(d)}for(let E of A)E.approvals?.length===1&&!E.approvals[0].when&&(E.approver=E.approvals[0].by,delete E.approvals),E.approvals||delete E.approvals;s.gates=A}}let w=i.get("outputs");if(w){let[g,A,E,x]=[r(w,"id"),r(w,"description"),r(w,"by"),r(w,"kpi")];for(let I of o(w)){let k=s.stages.flatMap(P=>P.outputs??[]).find(P=>P.id===g?.(I));if(k){A&&(k.description=A(I)||void 0),E&&(k.by=E(I)?p(E(I))??null:null),x&&(k.kpi=!!x(I)||void 0);for(let P of["description","kpi"])k[P]===void 0&&delete k[P];k.by===null&&delete k.by}}}let h=i.get("kpis");if(h&&s.kpis){let[g,A,E]=[r(h,"id"),r(h,"name"),r(h,"stage")],x=[];for(let I of o(h)){let k=s.kpis.find(P=>P.id===g?.(I));k&&x.push({...k,name:A?.(I)||k.name,stage:$(E?.(I)??"")??k.stage})}s.kpis=x}let b=new Set(s.stages.flatMap(g=>(g.outputs??[]).map(A=>A.id)));return s.gates=(s.gates??[]).filter(g=>s.stages.some(A=>A.id===g.after)).map(g=>({...g,criteria:(g.criteria??[]).map(A=>A.kind==="outputs"?{...A,outputs:A.outputs.filter(E=>b.has(E))}:A).filter(A=>A.kind!=="outputs"||A.outputs.length)})),s.links=(s.links??[]).filter(g=>[g.source,g.target].every(A=>s.stages.some(E=>E.id===A)||!t.stages.some(E=>E.id===A))),{way:s,problems:[...new Set([...n,..._i(s).map(Fi)])]}}var it="#8C8578";var rt="#C8442C";var Qa=t=>Math.round(t*10)/10,Re=t=>[Qa(t[0]),Qa(t[1])],Ce=(t,e,s=22,n="start",i)=>({type:"text",at:Re(t),text:e,size:s,anchor:n,...i?{style:{color:i}}:{}}),Bi=(t,e,s)=>({type:"line",from:Re(t),to:Re(e),...s?{style:s}:{}}),Bt=(t,e,s)=>({type:"arrow",from:Re(t),to:Re(e),...s?{style:s}:{}}),Ki=(t,e)=>({type:"polygon",points:t.map(Re),...e?{style:e}:{}}),Us=(t,e)=>({type:"polyline",points:t.map(Re),...e?{style:e}:{}});var Za=(t,e,s,n,i)=>Ki([[t,e],[t+s,e],[t+s,e+n],[t,e+n]],i),qd=(t,e)=>t.length*e*.48;function Ys(t,e,s){let n=[],i="";for(let r of t.split(/\s+/).filter(Boolean)){let o=i?`${i} ${r}`:r;i&&qd(o,e)>s?(n.push(i),i=r):i=o}return i&&n.push(i),n.length?n:[""]}var zs=["#2F5BEA","#2E8F62","#C77700","#7B4FC9","#5E5A52","#C8442C"];function Cd(t,e,s="pt"){let n=s==="pt"?{approves:"aprova",alsoIf:"tamb\xE9m, se",no:"n\xE3o",yes:"sim",delivers:"Entrega",receives:"Recebe",outside:"de fora"}:{approves:"approves",alsoIf:"too, if",no:"no",yes:"yes",delivers:"Delivers",receives:"Receives",outside:"from outside"},i=nt(e),r=N=>e.stages.find(d=>d.id===N)?.name??(e.gates??[]).find(d=>d.id===N)?.name??"",o=e.gates??[],a=new Map((e.roles??[]).map(N=>[N.id,N.acronym])),l=e.lanes.filter(N=>e.stages.some(d=>d.lane===N.id)),c=[];for(let N of e.stages){c.push({kind:"stage",id:N.id,w:150});let d=o.find(v=>v.after===N.id);d&&c.push({kind:"gate",id:d.id,w:110})}let p=130,f=Math.max(900,p+c.reduce((N,d)=>N+d.w,0)+30),u=150,y=N=>p+c.slice(0,N).reduce((d,v)=>d+v.w,0),$=N=>Math.max(0,l.findIndex(d=>d.id===N)),m=N=>Ys(N.name,19,116),w=N=>Math.max(64,26+m(N).length*22),h=N=>Ys(N.name,16,104),b=N=>{let d=se(N),v=d.filter(C=>!C.when).map(C=>a.get(C.by)??C.by),O=d.filter(C=>C.when).map(C=>`${a.get(C.by)??C.by} ${n.alsoIf} ${C.when}`);return{say:[v.length?`${v.join(", ")} ${n.approves}`:"",...O].filter(Boolean).join("; "),lines:[...v.length?[`${v.join(", ")} ${n.approves}`]:[],...O.flatMap(C=>Ys(`+ ${C}`,15,104))]}},g=l.map(N=>Math.max(150,...e.stages.filter(d=>d.lane===N.id).map(d=>{let v=o.find(C=>C.after===d.id),O=30+w(d)+30;return v?Math.max(O,30+w(d)/2+30+24+h(v).length*18+b(v).lines.length*18+14):O}))),A=N=>u+g.slice(0,N).reduce((d,v)=>d+v,0),E=Math.min(f*.8,A(l.length)+50),x=[Ce([40,60],t,36)];l.forEach((N,d)=>{let[v,O]=[A(d),g[d]];x.push(Bi([30,v+O],[f-20,v+O],{color:it,dashed:!0})),x.push(Ce([36,v+O/2+8],N.name,22,"start",zs[e.lanes.indexOf(N)%zs.length]))}),x.push(Bi([30,u],[f-20,u],{color:it,dashed:!0}));let I=new Map,k,P;c.forEach((N,d)=>{let v=y(d);if(N.kind==="stage"){let O=e.stages.find(Y=>Y.id===N.id),C=$(O.lane),D=zs[e.lanes.findIndex(Y=>Y.id===O.lane)%zs.length],ie=m(O),B={x:v+12,y:A(C)+30,w:N.w-24,h:w(O)};I.set(O.id,B);let be=[];if(O.phase!==k){k=O.phase;let Y=c.slice(d).findIndex((Ke,ml)=>ml>0&&Ke.kind==="stage"&&e.stages.find(gl=>gl.id===Ke.id).phase!==k),he=Y<0?c.length:d+Y,[Hs,Qs]=[v+6,y(he)-6],hl=Ce([(Hs+Qs)/2,u-50],e.phases.find(Ke=>Ke.id===O.phase)?.name??O.phase,26,"middle",it);be.push({...hl,chapter:e.phases.find(Ke=>Ke.id===O.phase)?.name??O.phase},Us([[Hs,u-30],[Hs,u-38],[Qs,u-38],[Qs,u-30]],{color:it}))}P&&be.push(...q(P,B));let Le=(i.inputs[O.id]??[]).map(Y=>`\xAB${Y.name}\xBB${Y.kind==="outside"?` (${n.outside})`:Y.from?` (${r(Y.from)})`:""}`),ne=[O.question??(O.outputs?.length?`${n.delivers}: ${O.outputs.map(Y=>Y.name).join(", ")}`:""),Le.length?`${n.receives} ${Le.join(", ")}.`:""].filter(Boolean).join(" ")||void 0,de={...Za(B.x,B.y,B.w,B.h,{color:D,fill:"#FFFFFF"}),...ne?{say:ne}:{}};be.push(de,...ie.map((Y,he)=>Ce([B.x+B.w/2,B.y+B.h/2+7-(ie.length-1)*22/2+he*22],Y,19,"middle"))),x.push(...be),P=B}else{let O=o.find(de=>de.id===N.id),C=I.get(O.after),D=C.y+C.h/2,ie=v+N.w/2,B={x:ie-30,y:D-30,w:60,h:60},be=b(O),Le=[Bt([C.x+C.w,D],[B.x,D]),{...Ki([[ie,B.y],[B.x+B.w,D],[ie,B.y+B.h],[B.x,D]],{color:rt,fill:"#FFF0EC"}),say:`${O.name}${be.say?` \u2014 ${be.say}`:""}`}],Xs=h(O);Xs.forEach((de,Y)=>Le.push(Ce([ie,B.y+B.h+22+Y*18],de,16,"middle",rt))),be.lines.forEach((de,Y)=>Le.push(Ce([ie,B.y+B.h+24+(Xs.length+Y)*18],de,15,"middle",it)));let ne=O.on_fail?I.get(O.on_fail):void 0;if(ne){let de=[...I.values()].filter(he=>he.x+he.w>ne.x&&he.x<ie).map(he=>he.y),Y=Math.min(ne.y,B.y,...de)-18;Le.push(Us([[ie,B.y],[ie,Y],[ne.x+ne.w/2,Y]],{color:rt,dashed:!0}),Bt([ne.x+ne.w/2,Y],[ne.x+ne.w/2,ne.y],{color:rt,dashed:!0}),Ce([ie+6,(B.y+Y)/2+5],n.no,15,"start",rt))}x.push(...Le),P=B}});let R=x.findIndex(N=>N.chapter);return R>0&&(x[0].chapter=x[R].chapter,delete x[R].chapter),{id:t.toLowerCase().normalize("NFD").replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,60)||"way",title:t,width:f,height:Math.round(E),background:"plain",locale:s==="pt"?"pt-BR":"en-US",steps:x};function q(N,d){let[v,O]=[[N.x+N.w,N.y+N.h/2],[d.x,d.y+d.h/2]];if(Math.abs(v[1]-O[1])<2)return[Bt(v,O)];let C=(v[0]+O[0])/2;return[Us([v,[C,v[1]],[C,O[1]]]),Bt([C,O[1]],O)]}}var el=["and","or","not"];var Ui=["person","person-pointing","person-sitting","house","car","bus","coin","phone","document","server","bank","cloud","queue","desk","computer","clock","lock","money-arrow","tree","school","hospital","factory","truck","cart","safe","bulb","gear","database","robot","ship","container","warehouse","box","pallet","shop","shelf","field","cup","function","api-gateway","cache","cluster","board","book","pencil"],Vs={pessoa:"person","pessoa-apontando":"person-pointing","pessoa-sentada":"person-sitting",casa:"house",carro:"car",onibus:"bus",moeda:"coin",celular:"phone",documento:"document",servidor:"server",banco:"bank",nuvem:"cloud",fila:"queue",mesa:"desk",computador:"computer",relogio:"clock",cadeado:"lock","seta-dinheiro":"money-arrow"},Gs=t=>Ui.includes(t)?t:typeof t=="string"&&Object.hasOwn(Vs,t)?Vs[t]:void 0;var sl=t=>Gs(t)!==void 0,S={skin:"#E8C6A5",shirt:"#A9BCC3",wood:"#D8C29C",gold:"#F2C94C",paper:"#FFFFFF",screen:"#DCE8F0",device:"#5B6B7C",roof:"#D9785F",wall:"#F3E3C3",car:"#7FA7C9",bus:"#E9C46A",green:"#7DBE8A",dark:"#4A4A4A",metal:"#C9D3DD",board:"#2F4F3F",chalk:"#F2EFE6"},T=(t,e,s,n,i,r)=>({kind:"polygon",points:[[t,e],[t+s,e],[t+s,e+n],[t,e+n]],fill:i,main:r}),M=(...t)=>({kind:"polyline",points:t});function nl(t){return[{kind:"polygon",points:[[-.15,-.72],[.15,-.72],[.19,-.38],[-.19,-.38]],fill:S.shirt,main:!0},{kind:"circle",c:[0,-.87],r:.11,fill:S.skin},...t,M([-.08,-.38],[-.1,0]),M([.08,-.38],[.1,0])]}var tl=nl([M([-.15,-.7],[-.25,-.42]),M([.15,-.7],[.25,-.42])]);function Ld(t,e,s){let n=([i,r])=>[s+i*e,r*e];return t.map(i=>i.kind==="circle"?{...i,c:n(i.c),r:i.r*e}:{...i,points:i.points.map(n)})}function Td(){let t=[[-.28,-.3,.18],[-.06,-.45,.25],[.2,-.4,.21],[.37,-.27,.13]],e=[];for(let s=0;s<=24;s++){let n=-.46+.96*s/24,i=t.filter(([r,,o])=>Math.abs(n-r)<=o).map(([r,o,a])=>o-Math.sqrt(Math.max(0,a*a-(n-r)**2)));i.length&&e.push([n,Math.min(...i)])}return[...e,[.42,-.12],[-.4,-.12]]}var Pm={person:tl,"person-pointing":nl([M([-.15,-.7],[-.25,-.42]),M([.15,-.69],[.47,-.73])]),"person-sitting":[M([-.3,-.8],[-.27,-.4]),M([-.32,-.4],[.2,-.4]),M([-.27,-.4],[-.27,0]),M([.16,-.4],[.16,0]),{kind:"polygon",points:[[-.22,-.77],[.04,-.77],[.06,-.44],[-.22,-.44]],fill:S.shirt,main:!0},{kind:"circle",c:[-.08,-.9],r:.1,fill:S.skin},M([-.1,-.44],[.3,-.44],[.32,0]),M([0,-.74],[.18,-.55],[.3,-.58])],house:[T(-.4,-.6,.8,.6,S.wall,!0),{kind:"polygon",points:[[-.5,-.58],[0,-1],[.5,-.58]],fill:S.roof},T(-.08,-.32,.16,.32,S.wood),T(.16,-.46,.16,.14,S.screen)],car:[{kind:"polygon",fill:S.car,main:!0,points:[[-.5,-.14],[-.5,-.32],[-.3,-.36],[-.18,-.56],[.2,-.56],[.32,-.36],[.5,-.32],[.5,-.14]]},{kind:"polygon",points:[[-.14,-.51],[.17,-.51],[.25,-.37],[-.22,-.37]],fill:S.screen},{kind:"circle",c:[-.28,-.12],r:.1,fill:S.dark},{kind:"circle",c:[.28,-.12],r:.1,fill:S.dark}],bus:[T(-.5,-.66,1,.52,S.bus,!0),...[-.42,-.21,0,.21].map(t=>T(t,-.6,.15,.16,S.screen)),M([-.5,-.3],[.5,-.3]),{kind:"circle",c:[-.3,-.12],r:.1,fill:S.dark},{kind:"circle",c:[.3,-.12],r:.1,fill:S.dark}],coin:[{kind:"circle",c:[0,-.42],r:.4,fill:S.gold,main:!0},{kind:"circle",c:[0,-.42],r:.3},{kind:"curve",points:[[.1,-.56],[-.08,-.57],[-.09,-.46],[.08,-.39],[.08,-.29],[-.11,-.28]]},M([0,-.64],[0,-.2])],phone:[T(-.26,-1,.52,1,S.device,!0),T(-.2,-.92,.4,.76,S.screen),{kind:"circle",c:[0,-.08],r:.035,fill:S.paper}],document:[{kind:"polygon",points:[[-.36,-1],[.16,-1],[.36,-.8],[.36,0],[-.36,0]],fill:S.paper,main:!0},M([.16,-1],[.16,-.8],[.36,-.8]),...[-.66,-.5,-.34,-.18].map(t=>M([-.22,t],[.22,t]))],server:[-1,-.66,-.32].flatMap(t=>[T(-.36,t,.72,.3,S.metal,!0),M([-.26,t+.15],[.06,t+.15]),{kind:"circle",c:[.22,t+.15],r:.035,fill:S.green}]),bank:[{kind:"polygon",points:[[-.5,-.74],[0,-1],[.5,-.74]],fill:S.wall,main:!0},T(-.45,-.74,.9,.08,S.wall),...[-.33,-.11,.11,.33].map(t=>T(t-.04,-.66,.08,.56,S.paper)),T(-.5,-.1,1,.1,S.wall)],cloud:[{kind:"polygon",points:Td(),fill:S.paper,main:!0}],queue:[-.32,0,.32].flatMap(t=>Ld(tl,.7,t)),desk:[T(-.5,-.5,1,.07,S.wood,!0),M([-.42,-.43],[-.42,0]),M([.42,-.43],[.42,0])],computer:[T(-.45,-1,.9,.6,S.device,!0),T(-.39,-.94,.78,.48,S.screen),{kind:"polygon",points:[[-.06,-.4],[.06,-.4],[.1,-.1],[-.1,-.1]],fill:S.device},T(-.25,-.1,.5,.08,S.device)],clock:[{kind:"circle",c:[0,-.48],r:.45,fill:S.paper,main:!0},...[[0,-.9,0,-.82],[.42,-.48,.34,-.48],[0,-.06,0,-.14],[-.42,-.48,-.34,-.48]].map(([t,e,s,n])=>M([t,e],[s,n])),M([0,-.48],[0,-.78]),M([0,-.48],[.2,-.48])],lock:[{kind:"curve",points:[[-.22,-.52],[-.22,-.76],[0,-.96],[.22,-.76],[.22,-.52]]},T(-.36,-.54,.72,.54,S.bus,!0),{kind:"circle",c:[0,-.32],r:.06,fill:S.dark},M([0,-.28],[0,-.14])],"money-arrow":[{kind:"polygon",fill:S.green,main:!0,points:[[-.5,-.4],[.12,-.4],[.12,-.56],[.5,-.3],[.12,-.04],[.12,-.2],[-.5,-.2]]},{kind:"circle",c:[-.2,-.3],r:.16,fill:S.gold},M([-.2,-.4],[-.2,-.2])],tree:[T(-.07,-.36,.14,.36,S.wood),{kind:"circle",c:[0,-.64],r:.3,fill:S.green,main:!0}],school:[T(-.45,-.6,.9,.6,S.wall,!0),{kind:"polygon",points:[[-.5,-.6],[0,-.82],[.5,-.6]],fill:S.roof},T(-.08,-.28,.16,.28,S.wood),T(-.36,-.48,.16,.12,S.screen),T(.2,-.48,.16,.12,S.screen),M([0,-.82],[0,-1]),{kind:"polygon",points:[[0,-1],[.17,-.95],[0,-.9]],fill:S.roof}],hospital:[T(-.4,-.8,.8,.8,S.paper,!0),T(-.045,-.7,.09,.26,"#C8442C"),T(-.13,-.615,.26,.09,"#C8442C"),T(-.1,-.24,.2,.24,S.metal)],factory:[{kind:"polygon",points:[[-.5,0],[-.5,-.5],[-.25,-.65],[-.25,-.5],[0,-.65],[0,-.5],[.25,-.65],[.25,-.5],[.5,-.5],[.5,0]],fill:S.wall,main:!0},T(.3,-.95,.12,.3,S.dark),T(-.38,-.32,.16,.12,S.screen),T(-.08,-.32,.16,.12,S.screen),T(.22,-.32,.16,.12,S.screen)],truck:[T(-.5,-.62,.62,.46,S.metal,!0),{kind:"polygon",points:[[.12,-.16],[.12,-.5],[.34,-.5],[.48,-.32],[.48,-.16]],fill:S.bus},{kind:"polygon",points:[[.18,-.46],[.32,-.46],[.42,-.33],[.18,-.33]],fill:S.screen},{kind:"circle",c:[-.3,-.1],r:.1,fill:S.dark},{kind:"circle",c:[.3,-.1],r:.1,fill:S.dark}],cart:[M([-.48,-.78],[-.4,-.62]),{kind:"polygon",points:[[-.4,-.62],[.42,-.62],[.32,-.26],[-.3,-.26]],fill:S.metal,main:!0},M([-.3,-.26],[-.3,-.14],[.32,-.14]),{kind:"circle",c:[-.22,-.07],r:.06,fill:S.dark},{kind:"circle",c:[.24,-.07],r:.06,fill:S.dark}],safe:[T(-.4,-.82,.8,.82,S.device,!0),T(-.3,-.72,.6,.62,S.metal),{kind:"circle",c:[0,-.41],r:.13,fill:S.paper},M([0,-.41],[.08,-.47])],bulb:[{kind:"circle",c:[0,-.62],r:.3,fill:S.gold,main:!0},T(-.13,-.33,.26,.2,S.metal),{kind:"curve",points:[[-.09,-.52],[0,-.66],[.09,-.52]]},M([-.08,-.08],[.08,-.08])],gear:[{kind:"polygon",points:[[.42,-.5],[.296,-.378],[.297,-.203],[.122,-.204],[0,-.08],[-.122,-.204],[-.297,-.203],[-.296,-.378],[-.42,-.5],[-.296,-.622],[-.297,-.797],[-.122,-.796],[-0,-.92],[.122,-.796],[.297,-.797],[.296,-.622]],fill:S.metal,main:!0},{kind:"circle",c:[0,-.5],r:.12,fill:S.paper}],database:[{kind:"polygon",points:[[-.35,-.8],[.35,-.8],[.35,-.16],[-.35,-.16]],fill:S.screen,main:!0},{kind:"polygon",points:[[.35,-.8],[.303,-.755],[.175,-.722],[0,-.71],[-.175,-.722],[-.303,-.755],[-.35,-.8],[-.303,-.845],[-.175,-.878],[-0,-.89],[.175,-.878],[.303,-.845]],fill:S.metal},{kind:"curve",points:[[-.35,-.16],[0,-.06],[.35,-.16]]},{kind:"curve",points:[[-.35,-.58],[0,-.48],[.35,-.58]]},{kind:"curve",points:[[-.35,-.37],[0,-.27],[.35,-.37]]}],robot:[M([0,-.95],[0,-1]),T(-.22,-.95,.44,.3,S.metal),{kind:"circle",c:[-.09,-.81],r:.045,fill:S.screen},{kind:"circle",c:[.09,-.81],r:.045,fill:S.screen},T(-.28,-.62,.56,.42,S.metal,!0),M([-.28,-.55],[-.42,-.35]),M([.28,-.55],[.42,-.35]),T(-.2,-.2,.12,.2,S.device),T(.08,-.2,.12,.2,S.device)],ship:[{kind:"polygon",points:[[-.48,-.3],[.48,-.3],[.36,-.04],[-.4,-.04]],fill:S.car,main:!0},T(-.42,-.62,.14,.32,S.wall),T(-.24,-.5,.2,.2,S.roof),T(-.02,-.5,.2,.2,S.bus),T(.2,-.5,.2,.2,S.green),{kind:"curve",points:[[-.5,0],[-.3,-.04],[-.1,0],[.1,-.04],[.3,0],[.5,-.04]]}],container:[T(-.46,-.52,.92,.52,S.roof,!0),...[-.3,-.15,0,.15,.3].map(t=>M([t,-.48],[t,-.04]))],warehouse:[{kind:"polygon",points:[[-.46,0],[.46,0],[.46,-.55],[0,-.82],[-.46,-.55]],fill:S.wall,main:!0},T(-.2,-.38,.4,.38,S.metal),M([-.2,-.26],[.2,-.26]),M([-.2,-.13],[.2,-.13])],box:[T(-.36,-.5,.52,.5,S.wood,!0),{kind:"polygon",points:[[-.36,-.5],[.16,-.5],[.36,-.64],[-.16,-.64]],fill:S.wood},{kind:"polygon",points:[[.16,0],[.36,-.14],[.36,-.64],[.16,-.5]],fill:S.wood},M([-.1,-.5],[.1,-.64])],pallet:[T(-.46,-.12,.92,.06,S.wood),...[-.42,-.05,.32].map(t=>T(t,-.06,.1,.06,S.wood)),T(-.42,-.5,.4,.38,S.wood,!0),T(.02,-.5,.4,.38,S.wood),T(-.2,-.82,.4,.32,S.wood)],shop:[T(-.42,-.6,.84,.6,S.wall,!0),{kind:"polygon",points:[[-.48,-.6],[.48,-.6],[.42,-.78],[-.42,-.78]],fill:S.roof},T(-.34,-.48,.34,.26,S.screen),T(.08,-.42,.24,.42,S.wood)],shelf:[T(-.4,-.92,.8,.92,S.paper,!0),M([-.4,-.62],[.4,-.62]),M([-.4,-.32],[.4,-.32]),T(-.32,-.8,.16,.18,S.roof),T(-.1,-.78,.14,.16,S.bus),T(.1,-.5,.22,.18,S.green),T(-.3,-.2,.24,.2,S.wood)],field:[M([-.48,0],[.48,0]),...[-.3,0,.3].flatMap(t=>[{kind:"curve",points:[[t,0],[t-.02,-.25],[t,-.5]]},{kind:"circle",c:[t-.08,-.32],r:.07,fill:S.green,main:!0},{kind:"circle",c:[t+.08,-.42],r:.07,fill:S.green,main:!0},{kind:"circle",c:[t,-.52],r:.06,fill:S.roof}])],cup:[{kind:"polygon",points:[[-.26,-.52],[.26,-.52],[.2,-.1],[-.2,-.1]],fill:S.paper,main:!0},{kind:"curve",points:[[.24,-.44],[.4,-.38],[.22,-.2]]},{kind:"polygon",points:[[-.46,-.1],[.46,-.1],[.36,0],[-.36,0]],fill:S.paper},{kind:"curve",points:[[-.08,-.62],[-.02,-.72],[-.08,-.84]]},{kind:"curve",points:[[.08,-.62],[.14,-.72],[.08,-.84]]}],function:[T(-.38,-.72,.76,.62,S.screen,!0),M([-.14,-.62],[0,-.62],[.14,-.2]),M([.02,-.42],[-.14,-.2])],"api-gateway":[T(-.12,-.8,.24,.8,S.metal,!0),M([-.48,-.55],[-.16,-.55]),M([-.24,-.62],[-.16,-.55],[-.24,-.48]),M([.16,-.3],[.48,-.3]),M([.4,-.37],[.48,-.3],[.4,-.23])],cache:[T(-.34,-.66,.68,.66,S.metal,!0),{kind:"polygon",points:[[.04,-.58],[-.12,-.3],[0,-.3],[-.06,-.08],[.14,-.38],[.02,-.38]],fill:S.gold}],cluster:[{kind:"curve",points:[[-.4,-.8],[0,-.86],[.4,-.8],[.48,-.45],[.4,-.1],[0,-.04],[-.4,-.1],[-.48,-.45],[-.4,-.8]]},T(-.3,-.7,.24,.2,S.screen,!0),T(.06,-.7,.24,.2,S.screen,!0),T(-.12,-.38,.24,.2,S.screen,!0)],board:[T(-.48,-.9,.96,.6,S.board,!0),T(-.34,-.76,.42,.03,S.chalk),T(-.34,-.62,.58,.03,S.chalk),T(-.34,-.48,.3,.03,S.chalk),M([-.3,-.3],[-.36,0]),M([.3,-.3],[.36,0])],book:[{kind:"polygon",points:[[0,-.62],[-.46,-.7],[-.46,-.1],[0,-.04]],fill:S.paper,main:!0},{kind:"polygon",points:[[0,-.62],[.46,-.7],[.46,-.1],[0,-.04]],fill:S.paper,main:!0},M([-.36,-.52],[-.1,-.48]),M([-.36,-.38],[-.1,-.34]),M([.1,-.48],[.36,-.52]),M([.1,-.34],[.36,-.38])],pencil:[{kind:"polygon",points:[[-.38,-.12],[.22,-.72],[.34,-.6],[-.26,0]],fill:S.bus,main:!0},{kind:"polygon",points:[[.22,-.72],[.34,-.6],[.44,-.86]],fill:S.wood},{kind:"polygon",points:[[-.38,-.12],[-.26,0],[-.46,-.02]],fill:S.roof}]},il=["happy","sad","surprised","worried","idea"],Id={person:[0,-.87,.11],"person-pointing":[0,-.87,.11],"person-sitting":[-.08,-.9,.1]},rl=t=>{let e=Gs(t);return!!e&&e in Id};var ol=["spin","drive","steam","talk","pulse","float"],Pd=["lesson","pitch","arch","decision","data","timeline","story"],al=8,ll=6,cl=2e5,ul=6e5,fl=24;var dl=["card","line","arrow","polyline","polygon","curve","circle","ellipse","plot","text","highlight","pause","prop","repeat","when","move","link","counter","row","column","grid","axis","timeline","balloon","brace","note","table","bars","chain","animate","lottie"],ot=["text","prop","card","counter","circle","ellipse"],pl=["row","column","grid","chain"],Md=50;function z(t,e){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(`${e}: expected an object.`)}function K(t,e){if(typeof t!="string"||!t.trim()||t.length>2e3)throw new Error(`${e}: expected text of 1 to 2000 characters.`)}function _(t,e,s=-1e4,n=1e4){if(typeof t!="number"||!Number.isFinite(t)||t<s||t>n)throw new Error(`${e}: expected a number between ${s} and ${n}.`)}function Q(t,e){if(typeof t=="string"){if(K(t,e),t.length>300)throw new Error(`${e}: expression too long.`)}else _(t,e)}function H(t,e){if(!Array.isArray(t)||t.length!==2)throw new Error(`${e}: expected [x, y].`);t.forEach((s,n)=>Q(s,`${e}[${n}]`))}function oe(t,e){t!==void 0&&K(t,e)}function Z(t,e,s){if(t!==void 0&&(typeof t!="string"||!e.includes(t)))throw new Error(`${s}: choose one of ${e.join(", ")}.`)}function Js(t){if(!/^[A-Za-z_][A-Za-z_0-9]*$/.test(t)||["__proto__","constructor","prototype",...el].includes(t))throw new Error(`Invalid variable name: "${t}".`)}var at=(t,e)=>e.includes("{")||t.exact.has(e)||[...t.repeated].some(s=>e.startsWith(`${s}-`)&&/^\d+$/.test(e.slice(s.length+1)));function Be(t,e,s,n){n&&t[e]===void 0&&(t[e]=[0,0]),H(t[e],`${s}.${e}`)}function Kt(t,e,s,n,i=!1){if(z(t,e),++s.count>500)throw new Error(`${e}: a recipe draws at most 500 steps, counting those inside repeat and when.`);if(n){for(let a of["chapter","say","duration"])if(t[a]!==void 0)throw new Error(`${e}.${a}: put it on the ${n} step itself, not on a step inside it.`);if(t.type==="pause")throw new Error(`${e}: a pause cannot go inside ${n}.`);if(t.type==="repeat"&&n==="repeat")throw new Error(`${e}: a repeat cannot go inside another repeat.`);if(pl.includes(n)&&t.place!==void 0)throw new Error(`${e}.place: the ${n} places the steps inside it.`)}if(!dl.includes(t.type))throw new Error(`${e}: unknown type "${t.type}".`);for(let a of["id","say","chapter"])oe(t[a],`${e}.${a}`);if(t.duration!==void 0&&_(t.duration,`${e}.duration`,0,3e4),t.nudge!==void 0){if(["pause","move","link","animate"].includes(t.type))throw new Error(`${e}.nudge: a ${t.type} has no place of its own to move.`);if(!Array.isArray(t.nudge)||t.nudge.length!==2)throw new Error(`${e}.nudge: use [dx, dy].`);t.nudge.forEach((a,l)=>_(a,`${e}.nudge[${l}]`,-900,900))}let r=n!==null&&pl.includes(n)||i;if(t.place!==void 0){if(!ot.includes(t.type))throw new Error(`${e}.place: only ${ot.join(", ")} can be placed.`);if(z(t.place,`${e}.place`),K(t.place.to,`${e}.place.to`),!at(s,String(t.place.to)))throw new Error(`${e}.place.to: no earlier step has the id "${t.place.to}".`);if(!["below","above","left","right"].includes(t.place.side))throw new Error(`${e}.place.side: choose one of below, above, left, right.`);t.place.gap!==void 0&&_(t.place.gap,`${e}.place.gap`,-200,400),Z(t.place.align,["center","start","end"],`${e}.place.align`)}let o=r||t.place!==void 0;if(t.style!==void 0){z(t.style,`${e}.style`);for(let a of["color","fill"]){let l=t.style[a];if(l!==void 0&&(typeof l!="string"||!/^(#[\da-f]{3,8}|[a-z]+)$/i.test(l)))throw new Error(`${e}.style.${a}: use a hex colour or a colour name, no URLs.`)}for(let a of["width","roughness","bowing"])t.style[a]!==void 0&&_(t.style[a],`${e}.style.${a}`,0,20);if(t.style.opacity!==void 0&&_(t.style.opacity,`${e}.style.opacity`,0,1),t.style.dashed!==void 0&&typeof t.style.dashed!="boolean")throw new Error(`${e}: dashed must be a boolean.`);Z(t.style.fillStyle,["hachure","solid","zigzag","cross-hatch","dots"],`${e}.style.fillStyle`)}switch(t.type){case"line":case"arrow":case"highlight":H(t.from,`${e}.from`),H(t.to,`${e}.to`),t.thickness!==void 0&&_(t.thickness,`${e}.thickness`,1,200);break;case"polyline":case"polygon":case"curve":if(!Array.isArray(t.points)||t.points.length<(t.type==="polygon"?3:2)||t.points.length>500)throw new Error(`${e}: points needs ${t.type==="polygon"?3:2} to 500 points.`);t.points.forEach((a,l)=>H(a,`${e}.points[${l}]`));break;case"circle":case"ellipse":Be(t,"center",e,o);for(let a of t.type==="circle"?["r"]:["rx","ry"])Q(t[a],`${e}.${a}`),typeof t[a]=="number"&&_(t[a],`${e}.${a}`,0);break;case"text":Be(t,"at",e,o),K(t.text,`${e}.text`),t.size!==void 0&&_(t.size,`${e}.size`,1,200),t.rotate!==void 0&&_(t.rotate,`${e}.rotate`,-360,360),Z(t.font,["hand","body"],`${e}.font`),Z(t.anchor,["start","middle","end"],`${e}.anchor`);break;case"card":Be(t,"at",e,o),Q(t.w,`${e}.w`),Q(t.h,`${e}.h`);for(let a of["w","h"])typeof t[a]=="number"&&_(t[a],`${e}.${a}`,40);if(K(t.title,`${e}.title`),t.lines!==void 0){if(!Array.isArray(t.lines)||t.lines.length>6)throw new Error(`${e}: at most 6 lines per card.`);t.lines.forEach((a,l)=>K(a,`${e}.lines[${l}]`))}break;case"plot":K(t.fn,`${e}.fn`),t.var!==void 0&&(K(t.var,`${e}.var`),Js(String(t.var))),H(t.domain,`${e}.domain`),H(t.range,`${e}.range`),z(t.box,`${e}.box`);for(let a of["x","y","w","h"])Q(t.box[a],`${e}.box.${a}`);if(t.samples!==void 0&&(_(t.samples,`${e}.samples`,2,1e3),!Number.isInteger(t.samples)))throw new Error(`${e}: samples must be an integer.`);break;case"pause":_(t.ms,`${e}.ms`,0,3e4),oe(t.ask,`${e}.ask`);break;case"prop":if(!sl(t.name)&&!s.figures.has(String(t.name))){let a=s.figures.size?`, or one the recipe defines (${[...s.figures].join(", ")})`:"";throw new Error(`${e}.name: unknown prop "${String(t.name)}"; use one of ${Ui.join(", ")}${a}.`)}if(Be(t,"at",e,o),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&_(t.size,`${e}.size`,10,1e3)),oe(t.label,`${e}.label`),t.flip!==void 0&&typeof t.flip!="boolean")throw new Error(`${e}.flip: expected true or false.`);if(t.mood!==void 0){if(!rl(t.name))throw new Error(`${e}.mood: only a person (person, person-pointing, person-sitting) has a face.`);Z(t.mood,il,`${e}.mood`)}break;case"repeat":if(Q(t.times,`${e}.times`),typeof t.times=="number"&&(_(t.times,`${e}.times`,0,Md),!Number.isInteger(t.times)))throw new Error(`${e}.times: expected a whole number.`);Kt(t.step,`${e}.step`,s,"repeat",r);break;case"when":if(Q(t.if,`${e}.if`),!Array.isArray(t.steps)||t.steps.length===0||t.steps.length>50)throw new Error(`${e}.steps: expected 1 to 50 steps.`);t.steps.forEach((a,l)=>Kt(a,`${e}.steps[${l}]`,s,n??"when"));break;case"move":if(K(t.target,`${e}.target`),!at(s,String(t.target)))throw new Error(`${e}.target: no earlier step has the id "${t.target}".`);H(t.to,`${e}.to`),Z(t.along,["line","curve"],`${e}.along`),t.ms!==void 0&&_(t.ms,`${e}.ms`,200,5e3);break;case"lottie":if(K(t.src,`${e}.src`),H(t.at,`${e}.at`),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&_(t.size,`${e}.size`,24,1e3)),t.loop!==void 0&&typeof t.loop!="boolean")throw new Error(`${e}.loop: expected true or false.`);break;case"animate":if(K(t.target,`${e}.target`),!at(s,String(t.target)))throw new Error(`${e}.target: no earlier step has the id "${t.target}".`);if(Z(t.effect,[...ol,"stop"],`${e}.effect`),t.effect===void 0)throw new Error(`${e}.effect: choose one of ${[...ol,"stop"].join(", ")}.`);Z(t.speed,["slow","fast"],`${e}.speed`);break;case"link":for(let a of["from","to"])if(K(t[a],`${e}.${a}`),!at(s,String(t[a])))throw new Error(`${e}.${a}: no earlier step has the id "${t[a]}".`);oe(t.label,`${e}.label`);break;case"counter":if(Be(t,"at",e,o),Q(t.value,`${e}.value`),t.format!==void 0&&(K(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "R$ {v:0}".`);t.size!==void 0&&_(t.size,`${e}.size`,1,200),Z(t.anchor,["start","middle","end"],`${e}.anchor`);break;case"row":case"column":case"grid":if(r)throw new Error(`${e}: a ${t.type} cannot go inside another ${n}.`);if(Be(t,"at",e,!1),t.gap!==void 0&&_(t.gap,`${e}.gap`,0,400),t.type==="grid"){if(_(t.columns,`${e}.columns`,1,12),!Number.isInteger(t.columns))throw new Error(`${e}.columns: expected a whole number.`)}else Z(t.align,["center","start","end"],`${e}.align`);if(!Array.isArray(t.steps)||t.steps.length===0||t.steps.length>50)throw new Error(`${e}.steps: expected 1 to 50 steps.`);t.steps.forEach((a,l)=>{z(a,`${e}.steps[${l}]`);let c=a.type==="repeat"?a.step?.type:a.type;if(!ot.includes(c))throw new Error(`${e}.steps[${l}]: a ${t.type} holds only ${ot.join(", ")} (or a repeat of one).`);Kt(a,`${e}.steps[${l}]`,s,t.type)});break;case"chain":if(r)throw new Error(`${e}: a chain cannot go inside a ${n}.`);if(Be(t,"at",e,!1),t.gap!==void 0&&t.gap!=="auto"&&_(t.gap,`${e}.gap`,0,400),Z(t.direction,["right","down"],`${e}.direction`),t.wrap!==void 0&&typeof t.wrap!="boolean")throw new Error(`${e}.wrap: expected true or false.`);if(oe(t.forward,`${e}.forward`),oe(t.back,`${e}.back`),t.size!==void 0&&(Q(t.size,`${e}.size`),typeof t.size=="number"&&_(t.size,`${e}.size`,10,1e3)),!Array.isArray(t.steps)||t.steps.length<2||t.steps.length>12)throw new Error(`${e}.steps: a chain joins 2 to 12 pieces.`);t.steps.forEach((a,l)=>{if(z(a,`${e}.steps[${l}]`),!ot.includes(a.type))throw new Error(`${e}.steps[${l}]: a chain holds only ${ot.join(", ")}.`);Kt(a,`${e}.steps[${l}]`,s,"chain")});break;case"axis":case"timeline":if(H(t.from,`${e}.from`),H(t.to,`${e}.to`),H(t.domain,`${e}.domain`),t.type==="axis"){if(t.ticks!==void 0){if(Array.isArray(t.ticks)){if(t.ticks.length>30)throw new Error(`${e}.ticks: at most 30 marks.`);t.ticks.forEach((a,l)=>_(a,`${e}.ticks[${l}]`))}else if(_(t.ticks,`${e}.ticks`,0,30),!Number.isInteger(t.ticks))throw new Error(`${e}.ticks: expected a whole number.`)}if(oe(t.label,`${e}.label`),t.format!==void 0&&(K(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "{v} km".`)}else{if(!Array.isArray(t.marks)||t.marks.length===0||t.marks.length>20)throw new Error(`${e}.marks: expected 1 to 20 marks.`);t.marks.forEach((a,l)=>{z(a,`${e}.marks[${l}]`),Q(a.at,`${e}.marks[${l}].at`),oe(a.label,`${e}.marks[${l}].label`),oe(a.text,`${e}.marks[${l}].text`)})}break;case"balloon":if(K(t.to,`${e}.to`),!at(s,String(t.to)))throw new Error(`${e}.to: no earlier step has the id "${t.to}".`);if(K(t.text,`${e}.text`),String(t.text).length>300)throw new Error(`${e}.text: keep a balloon under 300 characters.`);Z(t.side,["below","above","left","right"],`${e}.side`),Z(t.kind,["speech","thought"],`${e}.kind`),t.width!==void 0&&_(t.width,`${e}.width`,80,600),t.size!==void 0&&_(t.size,`${e}.size`,12,60);break;case"brace":if(H(t.from,`${e}.from`),H(t.to,`${e}.to`),oe(t.label,`${e}.label`),t.flip!==void 0&&typeof t.flip!="boolean")throw new Error(`${e}.flip: expected true or false.`);break;case"note":if(H(t.at,`${e}.at`),K(t.text,`${e}.text`),t.to===void 0==(t.point===void 0))throw new Error(`${e}: a note points either to an element (to) or to a point (point).`);if(t.to!==void 0){if(K(t.to,`${e}.to`),!at(s,String(t.to)))throw new Error(`${e}.to: no earlier step has the id "${t.to}".`)}else H(t.point,`${e}.point`);t.size!==void 0&&_(t.size,`${e}.size`,12,60);break;case"table":if(H(t.at,`${e}.at`),!Array.isArray(t.rows)||t.rows.length===0||t.rows.length>12)throw new Error(`${e}.rows: expected 1 to 12 rows.`);if(t.rows.forEach((a,l)=>{if(!Array.isArray(a)||a.length===0||a.length>6)throw new Error(`${e}.rows[${l}]: expected 1 to 6 cells.`);a.forEach((c,p)=>{if(typeof c!="string"||c.length>120)throw new Error(`${e}.rows[${l}][${p}]: expected text of up to 120 characters.`)})}),t.header!==void 0&&typeof t.header!="boolean")throw new Error(`${e}.header: expected true or false.`);t.size!==void 0&&_(t.size,`${e}.size`,12,40);break;case"bars":z(t.box,`${e}.box`);for(let a of["x","y","w","h"])Q(t.box[a],`${e}.box.${a}`);if(!Array.isArray(t.values)||t.values.length===0||t.values.length>12)throw new Error(`${e}.values: expected 1 to 12 values.`);if(t.values.forEach((a,l)=>Q(a,`${e}.values[${l}]`)),t.labels!==void 0){if(!Array.isArray(t.labels)||t.labels.length>t.values.length)throw new Error(`${e}.labels: at most one label per value.`);t.labels.forEach((a,l)=>K(a,`${e}.labels[${l}]`))}if(t.max!==void 0&&Q(t.max,`${e}.max`),t.format!==void 0&&(K(t.format,`${e}.format`),!String(t.format).includes("{v")))throw new Error(`${e}.format: show the number as {v}, e.g. "{v}%".`);break}typeof t.id=="string"&&(n==="repeat"?s.repeated:s.exact).add(t.id)}function Dd(t,e){let s=`defs.${t}`;if(!/^[a-z][a-z0-9-]{1,30}$/.test(t))throw new Error(`${s}: a figure's name is 2 to 31 lowercase letters, digits or -, starting with a letter.`);if(Gs(t)||Object.hasOwn(Vs,t)||dl.includes(t)||["define","title","param","switch","var"].includes(t))throw new Error(`${s}: "${t}" is already a prop or a step; choose another name.`);if(z(e,s),!Array.isArray(e.shapes)||e.shapes.length===0||e.shapes.length>fl)throw new Error(`${s}.shapes: expected 1 to ${fl} shapes.`);let n=(i,r)=>{if(typeof i!="number"||!Number.isInteger(i)||i<0||i>100)throw new Error(`${r}: expected a whole number from 0 to 100 (the figure's grid, y down; it stands at 50,100).`)};e.shapes.forEach((i,r)=>{let o=`${s}.shapes[${r}]`;if(z(i,o),i.fill!==void 0&&(typeof i.fill!="string"||!/^(#[0-9a-fA-F]{3,8}|[a-z]{3,20})$/.test(i.fill)))throw new Error(`${o}.fill: a colour, as hex or a plain name.`);if(i.kind==="circle"){if(!Array.isArray(i.c)||i.c.length!==2)throw new Error(`${o}.c: expected [x, y].`);i.c.forEach((l,c)=>n(l,`${o}.c[${c}]`)),n(i.r,`${o}.r`);return}if(!["polygon","polyline","curve"].includes(i.kind))throw new Error(`${o}.kind: choose one of polygon, polyline, curve, circle.`);let a=i.kind==="polygon"?3:2;if(!Array.isArray(i.points)||i.points.length<a||i.points.length>40)throw new Error(`${o}.points: a ${i.kind} takes ${a} to 40 points.`);i.points.forEach((l,c)=>{if(!Array.isArray(l)||l.length!==2)throw new Error(`${o}.points[${c}]: expected [x, y].`);l.forEach((p,f)=>n(p,`${o}.points[${c}][${f}]`))})})}function Wd(t,e){let s=`lottie "${t}"`;z(e,s);let n=JSON.stringify(e).length;if(n>cl)throw new Error(`${s}: ${Math.round(n/1e3)} KB; an animation can have at most ${cl/1e3} KB.`);for(let r of["fr","ip","op","w","h"])_(e[r],`${s}.${r}`,0,1e5);if(typeof e.v!="string"||!Array.isArray(e.layers))throw new Error(`${s}: not a Lottie animation (it needs v and layers).`);let i=(r,o)=>{if(Array.isArray(r))return r.forEach((a,l)=>i(a,`${o}[${l}]`));if(!(!r||typeof r!="object"))for(let[a,l]of Object.entries(r)){if(a==="x"&&typeof l=="string")throw new Error(`${s}: the animation has an expression (code inside it, at ${o}); only animations without expressions play.`);i(l,`${o}.${a}`)}};i(e.layers,"layers");for(let r of Array.isArray(e.assets)?e.assets:[]){let o=r?.p;if(typeof o=="string"&&o&&!o.startsWith("data:")&&!Array.isArray(r.layers))throw new Error(`${s}: an image from outside the animation ("${o.slice(0,40)}"); only images inside it (data:) are kept.`)}return n}function _d(t){z(t,"The recipe");let e=t;_(e.width,"width",100,4e3),_(e.height,"height",100,4e3);for(let i of["id","title","category"])oe(e[i],i);if(e.locale!==void 0&&!(typeof e.locale=="string"&&/^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$/.test(e.locale)&&Intl.NumberFormat.supportedLocalesOf([e.locale]).length>0))throw new Error('locale: expected a language tag such as "en-US" or "pt-BR".');if(Z(e.background,["dots","grid","plain"],"background"),Z(e.kind,Pd,"kind"),oe(e.source,"source"),e.quiz!==void 0&&e.kind!==void 0&&e.kind!=="lesson")throw new Error(`quiz: only a lesson has a quiz (this drawing is a ${e.kind}).`);if(Z(e.theme,["paper","chalkboard"],"theme"),e.quiz!==void 0){if(z(e.quiz,"quiz"),K(e.quiz.question,"quiz.question"),!Array.isArray(e.quiz.options)||e.quiz.options.length<2||e.quiz.options.length>4)throw new Error("quiz.options: expected 2 to 4 options.");if(e.quiz.options.forEach((i,r)=>{if(z(i,`quiz.options[${r}]`),K(i.text,`quiz.options[${r}].text`),K(i.why,`quiz.options[${r}].why`),typeof i.right!="boolean")throw new Error(`quiz.options[${r}].right: expected true or false.`)}),e.quiz.options.filter(i=>i.right===!0).length!==1)throw new Error("quiz.options: exactly one option is right.")}if(e.learning!==void 0){z(e.learning,"learning");for(let i of["goal","question","answer","caveat"])K(e.learning[i],`learning.${i}`)}if(e.params!==void 0){z(e.params,"params");for(let[i,r]of Object.entries(e.params))if(Js(i),z(r,`params.${i}`),K(r.label,`params.${i}.label`),_(r.min,`${i}.min`),_(r.max,`${i}.max`),_(r.step,`${i}.step`,1e-6),_(r.value,`${i}.value`,r.min,r.max),r.max<=r.min)throw new Error(`${i}: max must be greater than min.`)}if(e.vars!==void 0){z(e.vars,"vars");for(let[i,r]of Object.entries(e.vars))Js(i),Q(r,`vars.${i}`)}if(e.switches!==void 0){z(e.switches,"switches");let i=Object.entries(e.switches);if(i.length>8)throw new Error("switches: at most 8.");for(let[r,o]of i){if(Js(r),Object.hasOwn(e.params??{},r)||Object.hasOwn(e.vars??{},r))throw new Error(`switches.${r}: the name is already a param or a var.`);if(z(o,`switches.${r}`),K(o.label,`switches.${r}.label`),typeof o.on!="boolean")throw new Error(`switches.${r}.on: expected true or false.`)}}if(!Array.isArray(e.steps)||e.steps.length===0||e.steps.length>250)throw new Error("A recipe needs 1 to 250 steps.");let s=new Set;if(e.defs!==void 0){z(e.defs,"defs");let i=Object.entries(e.defs);if(i.length>al)throw new Error(`defs: at most ${al} figures.`);for(let[r,o]of i)Dd(r,o),s.add(r)}if(e.lotties!==void 0){z(e.lotties,"lotties");let i=Object.entries(e.lotties);if(i.length>ll)throw new Error(`lotties: at most ${ll} animations.`);let r=i.reduce((o,[a,l])=>o+Wd(a,l),0);if(r>ul)throw new Error(`lotties: ${Math.round(r/1e3)} KB in all; at most ${ul/1e3} KB.`)}if(e.credits!==void 0){if(!Array.isArray(e.credits)||e.credits.length>5)throw new Error("credits: at most 5 lines.");e.credits.forEach((i,r)=>K(i,`credits[${r}]`))}let n={exact:new Set,repeated:new Set,count:0,figures:s};return e.steps.forEach((i,r)=>Kt(i,`Step ${r+1}`,n,null)),{...e,id:e.id??"pasted",title:e.title??"",background:e.background??"dots"}}export{Mi as STAGE_DOOR,fd as applyRows,_i as checkWay,sd as exportWay,xd as fromSheets,hd as itemName,Fi as problemText,rd as readWay,ji as reviewWay,Ha as sheetKeyOf,dd as show,_d as validateScene,ud as wayDiff,Cd as wayLesson,kd as workbookOf,Od as xlsx};
|