UNPKG

directus-extension-ts-typegen

Version:

A directus extension to generate TypeScript types for your schema.

1 lines 1.56 MB
import{useApi as e,defineModule as t}from"@directus/extensions-sdk";import{shallowRef as n,shallowReadonly as r,getCurrentScope as a,onScopeDispose as o,toValue as i,watch as s,nextTick as _,isRef as l,ref as u,watchEffect as c,computed as p,unref as d,getCurrentInstance as m,onMounted as f,toRaw as h,defineComponent as y,withAsyncContext as g,onBeforeUnmount as b,resolveComponent as D,resolveDirective as v,openBlock as x,createElementBlock as w,createElementVNode as C,withDirectives as T,createBlock as S,withCtx as k,createVNode as E,Fragment as A,createTextVNode as F,createCommentVNode as P,Suspense as N,normalizeClass as B}from"vue";const I=[],$=[],j=new Set,O=new Map,M=new Map,L=e=>"string"==typeof e?new RegExp("^".concat(e,"$"),"i"):e,R=(e,t)=>"string"!=typeof t?e:e===t?t:e===e.toLowerCase()?t.toLowerCase():e===e.toUpperCase()?t.toUpperCase():e[0]===e[0].toUpperCase()?t.charAt(0).toUpperCase()+t.substr(1).toLowerCase():t.toLowerCase(),J=(e,t,n)=>{if(!e.length||j.has(e))return t;let{length:r}=n;for(;r--;){const e=n[r];if(e[0].test(t))return t.replace(e[0],(function(){for(var n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];const[o,i]=r,s=e[1].replace(/\$(\d{1,2})/g,((e,t)=>r[t]||""));return R(""===o?t[i-1]:o,s)}))}return t},q=(e,t,n,r)=>{const a=e.toLowerCase();return n.has(a)?R(e,a):t.has(a)?R(e,t.get(a)):J(a,e,r)},U=(e,t,n,r)=>{const a=e.toLowerCase();return!!n.has(a)||!t.has(a)&&J(a,a,r)===a},z=(e,t,n)=>{const r=1===t?z.singular(e):z.plural(e);return n?"".concat(t," ").concat(r):r};z.plural=e=>q(e,M,O,I),z.singular=e=>q(e,O,M,$),z.addPluralRule=(e,t)=>{I.push([L(e),t])},z.addSingularRule=(e,t)=>{$.push([L(e),t])},z.addIrregularRule=(e,t)=>{const n=t.toLowerCase(),r=e.toLowerCase();M.set(r,n),O.set(n,r)},z.addUncountableRule=e=>{"string"!=typeof e?(z.addPluralRule(e,"$0"),z.addSingularRule(e,"$0")):j.add(e.toLowerCase())},z.isPlural=e=>U(e,M,O,I),z.isSingular=e=>U(e,O,M,$);const G=[["I","we"],["me","us"],["he","they"],["she","they"],["them","them"],["myself","ourselves"],["yourself","yourselves"],["itself","themselves"],["herself","themselves"],["himself","themselves"],["themself","themselves"],["is","are"],["was","were"],["has","have"],["this","these"],["that","those"],["my","our"],["its","their"],["his","their"],["her","their"],["echo","echoes"],["dingo","dingoes"],["volcano","volcanoes"],["tornado","tornadoes"],["torpedo","torpedoes"],["genus","genera"],["viscus","viscera"],["stigma","stigmata"],["stoma","stomata"],["dogma","dogmata"],["lemma","lemmata"],["schema","schemata"],["anathema","anathemata"],["ox","oxen"],["axe","axes"],["die","dice"],["yes","yeses"],["foot","feet"],["eave","eaves"],["goose","geese"],["tooth","teeth"],["quiz","quizzes"],["human","humans"],["proof","proofs"],["carve","carves"],["valve","valves"],["looey","looies"],["thief","thieves"],["groove","grooves"],["pickaxe","pickaxes"],["passerby","passersby"],["canvas","canvases"]],K=[[/s?$/i,"s"],[/[^\u0000-\u007F]$/i,"$0"],[/([^aeiou]ese)$/i,"$1"],[/(ax|test)is$/i,"$1es"],[/(alias|[^aou]us|t[lm]as|gas|ris)$/i,"$1es"],[/(e[mn]u)s?$/i,"$1s"],[/([^l]ias|[aeiou]las|[ejzr]as|[iu]am)$/i,"$1"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1i"],[/(alumn|alg|vertebr)(?:a|ae)$/i,"$1ae"],[/(seraph|cherub)(?:im)?$/i,"$1im"],[/(her|at|gr)o$/i,"$1oes"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|automat|quor)(?:a|um)$/i,"$1a"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)(?:a|on)$/i,"$1a"],[/sis$/i,"ses"],[/(?:(kni|wi|li)fe|(ar|l|ea|eo|oa|hoo)f)$/i,"$1$2ves"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/([^ch][ieo][ln])ey$/i,"$1ies"],[/(x|ch|ss|sh|zz)$/i,"$1es"],[/(matr|cod|mur|sil|vert|ind|append)(?:ix|ex)$/i,"$1ices"],[/\b((?:tit)?m|l)(?:ice|ouse)$/i,"$1ice"],[/(pe)(?:rson|ople)$/i,"$1ople"],[/(child)(?:ren)?$/i,"$1ren"],[/eaux$/i,"$0"],[/m[ae]n$/i,"men"],["thou","you"]],W=[[/s$/i,""],[/(ss)$/i,"$1"],[/(wi|kni|(?:after|half|high|low|mid|non|night|[^\w]|^)li)ves$/i,"$1fe"],[/(ar|(?:wo|[ae])l|[eo][ao])ves$/i,"$1f"],[/ies$/i,"y"],[/(dg|ss|ois|lk|ok|wn|mb|th|ch|ec|oal|is|ck|ix|sser|ts|wb)ies$/i,"$1ie"],[/\b(l|(?:neck|cross|hog|aun)?t|coll|faer|food|gen|goon|group|hipp|junk|vegg|(?:pork)?p|charl|calor|cut)ies$/i,"$1ie"],[/\b(mon|smil)ies$/i,"$1ey"],[/\b((?:tit)?m|l)ice$/i,"$1ouse"],[/(seraph|cherub)im$/i,"$1"],[/(x|ch|ss|sh|zz|tto|go|cho|alias|[^aou]us|t[lm]as|gas|(?:her|at|gr)o|[aeiou]ris)(?:es)?$/i,"$1"],[/(analy|diagno|parenthe|progno|synop|the|empha|cri|ne)(?:sis|ses)$/i,"$1sis"],[/(movie|twelve|abuse|e[mn]u)s$/i,"$1"],[/(test)(?:is|es)$/i,"$1is"],[/(alumn|syllab|vir|radi|nucle|fung|cact|stimul|termin|bacill|foc|uter|loc|strat)(?:us|i)$/i,"$1us"],[/(agend|addend|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi|curricul|quor)a$/i,"$1um"],[/(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|hedr|automat)a$/i,"$1on"],[/(alumn|alg|vertebr)ae$/i,"$1a"],[/(cod|mur|sil|vert|ind)ices$/i,"$1ex"],[/(matr|append)ices$/i,"$1ix"],[/(pe)(rson|ople)$/i,"$1rson"],[/(child)ren$/i,"$1"],[/(eau)x?$/i,"$1"],[/men$/i,"man"]],X=["adulthood","advice","agenda","aid","aircraft","alcohol","ammo","analytics","anime","athletics","audio","bison","blood","bream","buffalo","butter","carp","cash","chassis","chess","clothing","cod","commerce","cooperation","corps","debris","diabetes","digestion","elk","energy","equipment","excretion","expertise","firmware","flounder","fun","gallows","garbage","graffiti","hardware","headquarters","health","herpes","highjinks","homework","housework","information","jeans","justice","kudos","labour","literature","machinery","mackerel","mail","media","mews","moose","music","mud","manga","news","only","personnel","pike","plankton","pliers","police","pollution","premises","rain","research","rice","salmon","scissors","series","sewage","shambles","shrimp","software","staff","swine","tennis","traffic","transportation","trout","tuna","wealth","welfare","whiting","wildebeest","wildlife","you",/pok[eé]mon$/i,/[^aeiou]ese$/i,/deer$/i,/fish$/i,/measles$/i,/o[iu]s$/i,/pox$/i,/sheep$/i];for(const[e,t]of G)z.addIrregularRule(e,t);for(const[e,t]of K)z.addPluralRule(e,t);for(const[e,t]of W)z.addSingularRule(e,t);for(const e of X)z.addUncountableRule(e);const V="Schema",H="Custom",Q={directus_users:"DirectusUser",directus_roles:"DirectusRole",directus_permissions:"DirectusPermission",directus_settings:"DirectusSettings",directus_files:"DirectusFile",directus_folders:"DirectusFolder",directus_activity:"DirectusActivity",directus_notifications:"DirectusNotification",directus_shares:"DirectusShare",directus_flows:"DirectusFlow",directus_operations:"DirectusOperation",directus_panels:"DirectusPanel",directus_dashboards:"DirectusDashboard",directus_translations:"DirectusTranslation",directus_versions:"DirectusVersion",directus_revisions:"DirectusRevision",directus_webhooks:"DirectusWebhook",directus_presets:"DirectusPreset",directus_relations:"DirectusRelation",directus_fields:"DirectusField",directus_collections:"DirectusCollection"};const Y=(e,t,n)=>("type"===n?.typeStyle?`export type ${e} =`:`export interface ${e}`)+` {\n${t.map((({name:e,type:t})=>((e,t)=>` ${e}: ${t};`)(e,t))).join("\n")}\n}`,Z=e=>`// GeoJSON Types\n\n${"type"===e?.typeStyle?"export type GeoJSONPoint =":"export interface GeoJSONPoint"} {\n type: "Point";\n coordinates: [number, number];\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONLineString =":"export interface GeoJSONLineString"} {\n type: "LineString";\n coordinates: Array<[number, number]>;\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONPolygon =":"export interface GeoJSONPolygon"} {\n type: "Polygon";\n coordinates: Array<Array<[number, number]>>;\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONMultiPoint =":"export interface GeoJSONMultiPoint"} {\n type: "MultiPoint";\n coordinates: Array<[number, number]>;\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONMultiLineString =":"export interface GeoJSONMultiLineString"} {\n type: "MultiLineString";\n coordinates: Array<Array<[number, number]>>;\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONMultiPolygon =":"export interface GeoJSONMultiPolygon"} {\n type: "MultiPolygon";\n coordinates: Array<Array<Array<[number, number]>>>;\n}\n\n${"type"===e?.typeStyle?"export type GeoJSONGeometryCollection =":"export interface GeoJSONGeometryCollection"} {\n type: "GeometryCollection";\n geometries: Array<\n | GeoJSONPoint\n | GeoJSONLineString\n | GeoJSONPolygon\n | GeoJSONMultiPoint\n | GeoJSONMultiLineString\n | GeoJSONMultiPolygon\n >;\n}\n`,ee=Symbol("pkey");function te(e,t,{requiredNotNullable:n}={}){return{kind:"primitive",name:e.name,nullable:_e(e,n),type:e.type,system:e.system,relation:re(e,t)}}function ne(e,t){const n=re(e,t);return null==n?null:{kind:"alias",name:e.name,system:e.system,relation:n}}function re(e,t){const n=e.relation;if(null==n)return null;if(e.collection===n.manyCollection&&e.name===n.manyField&&null!=n.oneCollection&&null!=n.oneKeyColumn){return null==t[n.oneCollection]||null==t[n.oneCollection].fields[n.oneKeyColumn]?null:{kind:"m2o",relatedField:n.oneKeyColumn,relatedCollection:n.oneCollection}}if(e.collection===n.oneCollection&&e.name===n.oneField&&null!=n.manyCollection&&null!=n.manyField){return null==t[n.manyCollection]||null==t[n.manyCollection].fields[n.manyField]?null:{kind:"o2m",relatedField:n.manyField,relatedCollection:n.manyCollection}}if(e.collection===n.manyCollection&&null!=n.oneAllowedCollections){const r=n.oneAllowedCollections.map((e=>({collection:e,field:t[e]?.fields[ee]?.name}))).filter((e=>null!=e.field&&null!=t[e.collection]&&null!=t[e.collection].fields[e.field]));if(e.name===n.manyField)return{kind:"m2a",relatedCollections:r};if(e.name===n.oneCollectionField)return{kind:"m2a-discriminator",relatedCollections:n.oneAllowedCollections}}return null}function ae(e,{requiredNotNullable:t}={}){switch(e.interface?.name){case"list":{const n=t=>({collection:e.collection,dataType:t.type,name:t.name,interface:{name:t.meta.interface,options:t.meta.options},nullable:!t.meta.required,primaryKey:null,relation:null,system:!1,type:t.type,required:t.meta.required??!1}),r=e=>{const r=n(e);return{name:e.name,type:se(r)?ae(r,{requiredNotNullable:t}):e.type}};return{kind:"structured",name:e.name,nullable:_e(e,t),type:"list",fields:e.interface.options.fields.map(r),system:e.system}}case"select-multiple-checkbox":return{kind:"structured",name:e.name,nullable:_e(e,t),type:"select-multiple-checkbox",choices:e.interface.options.choices,allowOther:e.interface.options.allowOther||!1,system:e.system};case"select-multiple-checkbox-tree":{const n=e=>[{value:e.value},...e.children?.flatMap(n)??[]];return{kind:"structured",name:e.name,nullable:_e(e,t),type:"select-multiple-checkbox-tree",choices:e.interface.options.choices.flatMap(n),system:e.system}}case"select-dropdown":return{kind:"structured",name:e.name,nullable:_e(e,t),type:"select-dropdown",fieldType:e.type,choices:e.interface.options.choices,allowOther:e.interface.options.allowOther||!1,allowNone:e.interface.options.allowNone||!1,system:e.system};case"select-multiple-dropdown":return{kind:"structured",name:e.name,nullable:_e(e,t),type:"select-multiple-dropdown",choices:e.interface.options.choices,allowOther:e.interface.options.allowOther||!1,allowNone:e.interface.options.allowNone||!1,system:e.system};case"select-radio":return{kind:"structured",name:e.name,nullable:_e(e,t),type:"select-radio",fieldType:e.type,choices:e.interface.options.choices,system:e.system};case"tags":return{kind:"structured",name:e.name,nullable:_e(e,t),type:"tags",presets:e.interface.options?.presets??[],allowCustom:e.interface.options?.allowCustom??!0,system:e.system};default:return{kind:"structured",name:e.name,nullable:_e(e,t),fieldType:e.type,type:"unknown",system:e.system}}}function oe(e){return e.interface?.name.startsWith("presentation")||e.interface?.name.startsWith("group")}const ie=["select-multiple-checkbox-tree","select-dropdown","select-multiple-dropdown","select-multiple-checkbox","select-radio","list","tags"];function se(e){return"json"===e.type||"csv"===e.type||ie.includes(e.interface?.name??"")}function _e(e,t=!1){return t?!e.required&&!!e.nullable:!!e.nullable}function le(e){return e.system}function ue(e){return"alias"===e.type}function ce(e,t){const n=function(e,t){let n={};for(const r in e){n[r]={name:r,singleton:e[r].singleton,system:e[r].system,fields:{}};for(const a in e[r].fields){const o=e[r].fields[a];if(!oe(o)&&!le(o))if(se(o))n[r].fields[a]=ae(o,t);else if(ue(o)){const t=ne(o,e);null!=t&&(n[r].fields[a]=t)}else n[r].fields[a]=te(o,e,t)}}return n}(function({collections:e,fields:t,relations:n}){let r={};for(const t of e)null!=t.schema&&(r[t.collection]={name:t.collection,singleton:t.meta?.singleton||!1,system:t.meta?.system||!1,fields:{}});for(const e of t){const t={name:e.field,collection:e.collection,type:e.type,dataType:e.schema?.data_type??null,primaryKey:e.schema?.is_primary_key??null,nullable:e.schema?.is_nullable??null,required:e.meta?.required||!1,interface:null!=e.meta?.interface?{name:e.meta.interface,options:e.meta.options}:null,relation:null,system:e.meta?.system||!1};r[e.collection].fields[e.field]=t,t.primaryKey&&(r[e.collection].fields[ee]=t)}for(const e of n){const t={manyCollection:e.meta?.many_collection??null,manyField:e.meta?.many_field??null,oneCollection:e.meta?.one_collection??null,oneField:e.meta?.one_field??null,oneKeyColumn:e.schema?.foreign_key_column??null,oneCollectionField:e.meta?.one_collection_field??null,oneAllowedCollections:e.meta?.one_allowed_collections??null};t.manyCollection&&t.manyField&&null!=r[t.manyCollection].fields[t.manyField]&&(r[t.manyCollection].fields[t.manyField].relation=t,t.oneCollectionField&&(r[t.manyCollection].fields[t.oneCollectionField].relation=t)),t.oneCollection&&t.oneField&&null!=r[t.oneCollection].fields[t.oneField]&&(r[t.oneCollection].fields[t.oneField].relation=t)}return r}(e),{requiredNotNullable:t?.requiredNotNullable}),r=function(e,t={}){const{typePrefix:n="",typeSuffix:r="",typeStyle:a="interface",schemaTypeName:o=V,systemCollectionPrefix:i=H}=t;let s="";s+=function(){const t=new Set;for(const n in e)if(!e[n].system)for(const r in e[n].fields){const a=e[n].fields[r];"primitive"!==a.kind&&"alias"!==a.kind||"m2o"!==a.relation?.kind&&"o2m"!==a.relation?.kind||!e[a.relation.relatedCollection]?.system||t.add(a.relation.relatedCollection)}const n=Array.from(t.values()).map((e=>Q[e]));return 0===n.length?"":`import type { ${n.join(", ")} } from "@directus/sdk"\n\n`}(),s+=function(e){const t=Object.values(e).filter((e=>!e.system||Object.values(e.fields).some((e=>"system"in e&&!e.system))));return Y("Schema",t.map((e=>({name:e.name,type:`${(e.system?i:"")+m(e)}${e.singleton||e.system?"":"[]"}`}))),{typeStyle:a})}(e),s+="\n\n";for(const t in e){const n=e[t];0!=Object.keys(n.fields).length&&(s+=_(n,e),s+="\n\n")}return s+=Z({typeStyle:a}),s;function _(e,t){return Y((e.system?i:"")+m(e),Object.entries(e.fields).map((([e,n])=>({name:e,type:`${"structured"===n.kind?d(n):"alias"===n.kind?u(n,t):l(n,t)}${"nullable"in n&&n.nullable?" | null":""}`}))),{typeStyle:a})}function l(e,t){const n=c(e.type);return null==e.relation?n:`${n} | ${p(e.relation,t)}`}function u(e,t){const n=p(e.relation,t);if("m2o"===e.relation.kind||"o2m"===e.relation.kind){const{relatedCollection:r,relatedField:a}=e.relation,o=t[r].fields[a];return"primitive"!==o.kind?"unknown":`${c(o.type)}${"o2m"===e.relation.kind?"[]":""} | ${n}`}return"unknown"}function c(e){switch(e){case"string":case"text":case"uuid":case"hash":return"string";case"date":case"time":case"dateTime":case"timestamp":return'"datetime"';case"integer":case"bigInteger":case"float":case"decimal":return"number";case"boolean":return"boolean";case"geometry":return"GeoJSONGeometryCollection";case"geometry.Point":return"GeoJSONPoint";case"geometry.LineString":return"GeoJSONLineString";case"geometry.Polygon":return"GeoJSONPolygon";case"geometry.MultiPoint":return"GeoJSONMultiPoint";case"geometry.MultiLineString":return"GeoJSONMultiLineString";case"geometry.MultiPolygon":return"GeoJSONMultiPolygon";default:return"unknown"}}function p(e,t){if("m2a"===e.kind){const n=e.relatedCollections.map((({collection:e})=>{const n=t[e];return n.system?m(n)+`<${o}>`:m(n)}));return n.join(" | ")}if("m2a-discriminator"===e.kind)return e.relatedCollections.map((e=>`"${e}"`)).join(" | ");const n=t[e.relatedCollection],r=m(n);return n.system?"m2o"===e.kind?`${r}<${o}>`:`${r}<${o}>[]`:"m2o"===e.kind?r:`${r}[]`}function d(e){switch(e.type){case"list":return"Array<{ "+e.fields.map((({name:e,type:t})=>`${function(e){return/[\$:]/.test(e)?`"${e}"`:e}(e)}: ${"string"==typeof t?c(t):`${d(t)}${t.nullable?" | null":""}`}`)).join("; ")+" }>";case"select-multiple-checkbox":case"select-multiple-dropdown":return"Array<"+e.choices.map((({value:e})=>`"${e}"`)).concat(e.allowOther?["string"]:[]).join(" | ")+">";case"select-multiple-checkbox-tree":return"Array<"+e.choices.flatMap((({value:e})=>`"${e}"`)).join(" | ")+">";case"select-dropdown":{const t=c(e.fieldType);return e.choices.map((({value:e})=>"string"===t?`"${e}"`:`${e}`)).concat(e.allowOther?[t]:[]).join(" | ")}case"select-radio":{const t=c(e.fieldType);return e.choices.map((({value:e})=>"string"===t?`"${e}"`:`${e}`)).join(" | ")}case"tags":return"Array<"+(e.presets??[]).map((e=>`"${e}"`)).concat(e.allowCustom?["string"]:[]).join(" | ")+">";default:return"unknown"}}function m(e){return e.name in Q?Q[e.name]:(n??"")+function(e){return e.replace(/[^A-Za-z0-9_]/g,"_")}(e.name).split("_").map((t=>e.singleton||t.toLowerCase().endsWith("data")?t:z.singular(t))).map((e=>e.slice(0,1).toLocaleUpperCase()+e.slice(1))).join("")+r}}(n,{typePrefix:t?.typePrefix,typeSuffix:t?.typeSuffix,typeStyle:t?.typeStyle});return r}function pe(e){return!!a()&&(o(e),!0)}const de="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const me=Object.prototype.toString,fe=()=>{};function he(e,t=!1,n="Timeout"){return new Promise(((r,a)=>{t?setTimeout((()=>a(n)),e):setTimeout(r,e)}))}function ye(e){return Array.isArray(e)?e:[e]}function ge(e,t=!1){function n(n,{flush:r="sync",deep:a=!1,timeout:o,throwOnTimeout:l}={}){let u=null;const c=new Promise((o=>{u=s(e,(e=>{n(e)!==t&&(u?u():_((()=>null==u?void 0:u())),o(e))}),{flush:r,deep:a,immediate:!0})})),p=[c];return null!=o&&p.push(he(o,l).then((()=>i(e))).finally((()=>null==u?void 0:u()))),Promise.race(p)}function r(r,a){if(!l(r))return n((e=>e===r),a);const{flush:o="sync",deep:u=!1,timeout:c,throwOnTimeout:p}=null!=a?a:{};let d=null;const m=new Promise((n=>{d=s([e,r],(([e,r])=>{t!==(e===r)&&(d?d():_((()=>null==d?void 0:d())),n(e))}),{flush:o,deep:u,immediate:!0})})),f=[m];return null!=c&&f.push(he(c,p).then((()=>i(e))).finally((()=>(null==d||d(),i(e))))),Promise.race(f)}function a(e){return o(1,e)}function o(e=1,t){let r=-1;return n((()=>(r+=1,r>=e)),t)}if(Array.isArray(i(e))){const r={toMatch:n,toContains:function(e,t){return n((t=>{const n=Array.from(t);return n.includes(e)||n.includes(i(e))}),t)},changed:a,changedTimes:o,get not(){return ge(e,!t)}};return r}{const i={toMatch:n,toBe:r,toBeTruthy:function(e){return n((e=>Boolean(e)),e)},toBeNull:function(e){return r(null,e)},toBeNaN:function(e){return n(Number.isNaN,e)},toBeUndefined:function(e){return r(void 0,e)},changed:a,changedTimes:o,get not(){return ge(e,!t)}};return i}}function be(e){return ge(e)}const De=de?window:void 0,ve=de?window.navigator:void 0;function xe(...e){const t=[],n=()=>{t.forEach((e=>e())),t.length=0},r=p((()=>{const t=ye(i(e[0])).filter((e=>null!=e));return t.every((e=>"string"!=typeof e))?t:void 0})),a=function(e,t,n){return s(e,t,{...n,immediate:!0})}((()=>{var t,n;return[null!=(n=null==(t=r.value)?void 0:t.map((e=>function(e){var t;const n=i(e);return null!=(t=null==n?void 0:n.$el)?t:n}(e))))?n:[De].filter((e=>null!=e)),ye(i(r.value?e[1]:e[0])),ye(d(r.value?e[2]:e[1])),i(r.value?e[3]:e[2])]}),(([e,r,a,o])=>{if(n(),!(null==e?void 0:e.length)||!(null==r?void 0:r.length)||!(null==a?void 0:a.length))return;const i=(s=o,"[object Object]"===me.call(s)?{...o}:o);var s;t.push(...e.flatMap((e=>r.flatMap((t=>a.map((n=>((e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)))(e,t,n,i))))))))}),{flush:"post"});return pe(n),()=>{a(),n()}}function we(e){const t=function(){const e=n(!1),t=m();return t&&f((()=>{e.value=!0}),t),e}();return p((()=>(t.value,Boolean(e()))))}function Ce(e,t,r){const{immediate:a=!0,delay:o=0,onError:i=fe,onSuccess:s=fe,resetOnExecute:_=!0,shallow:l=!0,throwError:c}=null!=r?r:{},p=l?n(t):u(t),d=n(!1),m=n(!1),f=n(void 0);async function h(n=0,...r){_&&(p.value=t),f.value=void 0,d.value=!1,m.value=!0,n>0&&await he(n);const a="function"==typeof e?e(...r):e;try{const e=await a;p.value=e,d.value=!0,s(e)}catch(e){if(f.value=e,i(e),c)throw e}finally{m.value=!1}return p.value}a&&h(o);const y={state:p,isReady:d,isLoading:m,error:f,execute:h};return{...y,then:(e,t)=>new Promise(((e,t)=>{be(m).toBe(!1).then((()=>e(y))).catch(t)})).then(e,t)}}function Te(e,t={}){const{controls:r=!1,navigator:a=ve}=t,o=we((()=>a&&"permissions"in a)),i=n(),s="string"==typeof e?{name:e}:e,_=n(),l=()=>{var e,t;_.value=null!=(t=null==(e=i.value)?void 0:e.state)?t:"prompt"};xe(i,"change",l,{passive:!0});const u=function(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const e=t;t=void 0,e&&await e},n}((async()=>{if(o.value){if(!i.value)try{i.value=await a.permissions.query(s)}catch(e){i.value=void 0}finally{l()}return r?h(i.value):void 0}}));return u(),r?{state:_,isSupported:o,query:u}:_}function Se(e={}){const{navigator:t=ve,read:a=!1,source:o,copiedDuring:s=1500,legacy:_=!1}=e,l=we((()=>t&&"clipboard"in t)),u=Te("clipboard-read"),c=Te("clipboard-write"),d=p((()=>l.value||_)),m=n(""),f=n(!1),h=function(e,t,a={}){const{immediate:o=!0,immediateCallback:s=!1}=a,_=n(!1);let l=null;function u(){l&&(clearTimeout(l),l=null)}function c(){_.value=!1,u()}function p(...n){s&&e(),u(),_.value=!0,l=setTimeout((()=>{_.value=!1,l=null,e(...n)}),i(t))}return o&&(_.value=!0,de&&p()),pe(c),{isPending:r(_),start:p,stop:c}}((()=>f.value=!1),s,{immediate:!1});function y(e){return"granted"===e||"prompt"===e}return d.value&&a&&xe(["copy","cut"],(async function(){let e=!(l.value&&y(u.value));if(!e)try{m.value=await t.clipboard.readText()}catch(t){e=!0}e&&(m.value=function(){var e,t,n;return null!=(n=null==(t=null==(e=null==document?void 0:document.getSelection)?void 0:e.call(document))?void 0:t.toString())?n:""}())}),{passive:!0}),{isSupported:d,text:m,copied:f,copy:async function(e=i(o)){if(d.value&&null!=e){let n=!(l.value&&y(c.value));if(!n)try{await t.clipboard.writeText(e)}catch(e){n=!0}n&&function(e){const t=document.createElement("textarea");t.value=null!=e?e:"",t.style.position="absolute",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),t.remove()}(e),m.value=e,f.value=!0,h.start()}}}}var ke=Object.create,Ee=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,Fe=Object.getOwnPropertyNames,Pe=Object.getPrototypeOf,Ne=Object.prototype.hasOwnProperty,Be=e=>{throw TypeError(e)},Ie=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$e=(e,t)=>{for(var n in t)Ee(e,n,{get:t[n],enumerable:!0})},je=(e,t,n)=>(n=null!=e?ke(Pe(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of Fe(t))!Ne.call(e,a)&&a!==n&&Ee(e,a,{get:()=>t[a],enumerable:!(r=Ae(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:Ee(n,"default",{value:e,enumerable:!0}),e)),Oe=(e,t,n)=>(((e,t,n)=>{t.has(e)||Be("Cannot "+n)})(e,t,"access private method"),n),Me=Ie(((e,t)=>{var n=new Proxy(String,{get:()=>n});t.exports=n})),Le=Ie((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=/\r\n|[\n\r\u2028\u2029]/;e.codeFrameColumns=function(e,n,r={}){let a=new Proxy({},{get:()=>e=>e}),o=e.split(t),{start:i,end:s,markerLines:_}=function(e,t,n){let r=Object.assign({column:0,line:-1},e.start),a=Object.assign({},r,e.end),{linesAbove:o=2,linesBelow:i=3}=n||{},s=r.line,_=r.column,l=a.line,u=a.column,c=Math.max(s-(o+1),0),p=Math.min(t.length,l+i);-1===s&&(c=0),-1===l&&(p=t.length);let d=l-s,m={};if(d)for(let e=0;e<=d;e++){let n=e+s;if(_)if(0===e){let e=t[n-1].length;m[n]=[_,e-_+1]}else if(e===d)m[n]=[0,u];else{let r=t[n-e].length;m[n]=[0,r]}else m[n]=!0}else m[s]=_===u?!_||[_,0]:[_,u-_];return{start:c,end:p,markerLines:m}}(n,o,r),l=n.start&&"number"==typeof n.start.column,u=String(s).length,c=e.split(t,s).slice(i,s).map(((e,t)=>{let n=i+1+t,o=` ${` ${n}`.slice(-u)} |`,s=_[n],l=!_[n+1];if(s){let t="";if(Array.isArray(s)){let n=e.slice(0,Math.max(s[0]-1,0)).replace(/[^\t]/g," "),i=s[1]||1;t=["\n ",a.gutter(o.replace(/\d/g," "))," ",n,a.marker("^").repeat(i)].join(""),l&&r.message&&(t+=" "+a.message(r.message))}return[a.marker(">"),a.gutter(o),e.length>0?` ${e}`:"",t].join("")}return` ${a.gutter(o)}${e.length>0?` ${e}`:""}`})).join("\n");return r.message&&!l&&(c=`${" ".repeat(u+1)}${r.message}\n${c}`),c}}));$e({},{__debug:()=>Ha,check:()=>Xa,doc:()=>Ca,format:()=>Wa,formatWithCursor:()=>Ka,getSupportInfo:()=>Va,util:()=>Aa,version:()=>Ea});var Re=(e,t,n,r)=>{if(!e||null!=t)return t.replaceAll?t.replaceAll(n,r):n.global?t.replace(n,r):t.split(n).join(r)};function Je(){}function qe(e,t,n,r,a){for(var o,i=[];t;)i.push(t),o=t.previousComponent,delete t.previousComponent,t=o;i.reverse();for(var s=0,_=i.length,l=0,u=0;s<_;s++){var c=i[s];if(c.removed)c.value=e.join(r.slice(u,u+c.count)),u+=c.count;else{if(!c.added&&a){var p=n.slice(l,l+c.count);p=p.map((function(e,t){var n=r[u+t];return n.length>e.length?n:e})),c.value=e.join(p)}else c.value=e.join(n.slice(l,l+c.count));l+=c.count,c.added||(u+=c.count)}}return i}function Ue(e,t){var n;for(n=0;n<e.length&&n<t.length;n++)if(e[n]!=t[n])return e.slice(0,n);return e.slice(0,n)}function ze(e,t){var n;if(!e||!t||e[e.length-1]!=t[t.length-1])return"";for(n=0;n<e.length&&n<t.length;n++)if(e[e.length-(n+1)]!=t[t.length-(n+1)])return e.slice(-n);return e.slice(-n)}function Ge(e,t,n){if(e.slice(0,t.length)!=t)throw Error("string ".concat(JSON.stringify(e)," doesn't start with prefix ").concat(JSON.stringify(t),"; this is a bug"));return n+e.slice(t.length)}function Ke(e,t,n){if(!t)return e+n;if(e.slice(-t.length)!=t)throw Error("string ".concat(JSON.stringify(e)," doesn't end with suffix ").concat(JSON.stringify(t),"; this is a bug"));return e.slice(0,-t.length)+n}function We(e,t){return Ge(e,t,"")}function Xe(e,t){return Ke(e,t,"")}function Ve(e,t){return t.slice(0,function(e,t){var n=0;e.length>t.length&&(n=e.length-t.length);var r=t.length;e.length<t.length&&(r=e.length);var a=Array(r),o=0;a[0]=0;for(var i=1;i<r;i++){for(t[i]==t[o]?a[i]=a[o]:a[i]=o;o>0&&t[i]!=t[o];)o=a[o];t[i]==t[o]&&o++}o=0;for(var s=n;s<e.length;s++){for(;o>0&&e[s]!=t[o];)o=a[o];e[s]==t[o]&&o++}return o}(e,t))}Je.prototype={diff:function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=r.callback;"function"==typeof r&&(a=r,r={});var o=this;function i(e){return e=o.postProcess(e,r),a?(setTimeout((function(){a(e)}),0),!0):e}e=this.castInput(e,r),t=this.castInput(t,r),e=this.removeEmpty(this.tokenize(e,r));var s=(t=this.removeEmpty(this.tokenize(t,r))).length,_=e.length,l=1,u=s+_;null!=r.maxEditLength&&(u=Math.min(u,r.maxEditLength));var c=null!==(n=r.timeout)&&void 0!==n?n:1/0,p=Date.now()+c,d=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(d[0],t,e,0,r);if(d[0].oldPos+1>=_&&m+1>=s)return i(qe(o,d[0].lastComponent,t,e,o.useLongestToken));var f=-1/0,h=1/0;function y(){for(var n=Math.max(f,-l);n<=Math.min(h,l);n+=2){var a=void 0,u=d[n-1],c=d[n+1];u&&(d[n-1]=void 0);var p=!1;if(c){var y=c.oldPos-n;p=c&&0<=y&&y<s}var g=u&&u.oldPos+1<_;if(p||g){if(a=!g||p&&u.oldPos<c.oldPos?o.addToPath(c,!0,!1,0,r):o.addToPath(u,!1,!0,1,r),m=o.extractCommon(a,t,e,n,r),a.oldPos+1>=_&&m+1>=s)return i(qe(o,a.lastComponent,t,e,o.useLongestToken));d[n]=a,a.oldPos+1>=_&&(h=Math.min(h,n-1)),m+1>=s&&(f=Math.max(f,n+1))}else d[n]=void 0}l++}if(a)!function e(){setTimeout((function(){if(l>u||Date.now()>p)return a();y()||e()}),0)}();else for(;l<=u&&Date.now()<=p;){var g=y();if(g)return g}},addToPath:function(e,t,n,r,a){var o=e.lastComponent;return o&&!a.oneChangePerToken&&o.added===t&&o.removed===n?{oldPos:e.oldPos+r,lastComponent:{count:o.count+1,added:t,removed:n,previousComponent:o.previousComponent}}:{oldPos:e.oldPos+r,lastComponent:{count:1,added:t,removed:n,previousComponent:o}}},extractCommon:function(e,t,n,r,a){for(var o=t.length,i=n.length,s=e.oldPos,_=s-r,l=0;_+1<o&&s+1<i&&this.equals(n[s+1],t[_+1],a);)_++,s++,l++,a.oneChangePerToken&&(e.lastComponent={count:1,previousComponent:e.lastComponent,added:!1,removed:!1});return l&&!a.oneChangePerToken&&(e.lastComponent={count:l,previousComponent:e.lastComponent,added:!1,removed:!1}),e.oldPos=s,_},equals:function(e,t,n){return n.comparator?n.comparator(e,t):e===t||n.ignoreCase&&e.toLowerCase()===t.toLowerCase()},removeEmpty:function(e){for(var t=[],n=0;n<e.length;n++)e[n]&&t.push(e[n]);return t},castInput:function(e){return e},tokenize:function(e){return Array.from(e)},join:function(e){return e.join("")},postProcess:function(e){return e}};var He="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",Qe=new RegExp("[".concat(He,"]+|\\s+|[^").concat(He,"]"),"ug"),Ye=new Je;function Ze(e,t,n,r){if(t&&n){var a=t.value.match(/^\s*/)[0],o=t.value.match(/\s*$/)[0],i=n.value.match(/^\s*/)[0],s=n.value.match(/\s*$/)[0];if(e){var _=Ue(a,i);e.value=Ke(e.value,i,_),t.value=We(t.value,_),n.value=We(n.value,_)}if(r){var l=ze(o,s);r.value=Ge(r.value,s,l),t.value=Xe(t.value,l),n.value=Xe(n.value,l)}}else if(n)e&&(n.value=n.value.replace(/^\s*/,"")),r&&(r.value=r.value.replace(/^\s*/,""));else if(e&&r){var u=r.value.match(/^\s*/)[0],c=t.value.match(/^\s*/)[0],p=t.value.match(/\s*$/)[0],d=Ue(u,c);t.value=We(t.value,d);var m=ze(We(u,d),p);t.value=Xe(t.value,m),r.value=Ge(r.value,u,m),e.value=Ke(e.value,u,u.slice(0,u.length-m.length))}else if(r){var f=r.value.match(/^\s*/)[0],h=Ve(t.value.match(/\s*$/)[0],f);t.value=Xe(t.value,h)}else if(e){var y=Ve(e.value.match(/\s*$/)[0],t.value.match(/^\s*/)[0]);t.value=We(t.value,y)}}Ye.equals=function(e,t,n){return n.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()},Ye.tokenize=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(n.intlSegmenter){if("word"!=n.intlSegmenter.resolvedOptions().granularity)throw new Error('The segmenter passed must have a granularity of "word"');t=Array.from(n.intlSegmenter.segment(e),(function(e){return e.segment}))}else t=e.match(Qe)||[];var r=[],a=null;return t.forEach((function(e){/\s/.test(e)?null==a?r.push(e):r.push(r.pop()+e):/\s/.test(a)?r[r.length-1]==a?r.push(r.pop()+e):r.push(a+e):r.push(e),a=e})),r},Ye.join=function(e){return e.map((function(e,t){return 0==t?e:e.replace(/^\s+/,"")})).join("")},Ye.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var n=null,r=null,a=null;return e.forEach((function(e){e.added?r=e:e.removed?a=e:((r||a)&&Ze(n,a,r,e),n=e,r=null,a=null)})),(r||a)&&Ze(n,a,r,null),e},(new Je).tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(He,"]+|[^\\S\\n\\r]+|[^").concat(He,"]"),"ug");return e.match(t)||[]};var et=new Je;function tt(e){return tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},tt(e)}et.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,"\n"));var n=[],r=e.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var a=0;a<r.length;a++){var o=r[a];a%2&&!t.newlineIsToken?n[n.length-1]+=o:n.push(o)}return n},et.equals=function(e,t,n){return n.ignoreWhitespace?((!n.newlineIsToken||!e.includes("\n"))&&(e=e.trim()),(!n.newlineIsToken||!t.includes("\n"))&&(t=t.trim())):n.ignoreNewlineAtEof&&!n.newlineIsToken&&(e.endsWith("\n")&&(e=e.slice(0,-1)),t.endsWith("\n")&&(t=t.slice(0,-1))),Je.prototype.equals.call(this,e,t,n)},(new Je).tokenize=function(e){return e.split(/(\S.+?[.!?])(?=\s+|$)/)},(new Je).tokenize=function(e){return e.split(/([{}:;,]|\s+)/)};var nt=new Je;function rt(e,t,n,r,a){var o,i;for(t=t||[],n=n||[],r&&(e=r(a,e)),o=0;o<t.length;o+=1)if(t[o]===e)return n[o];if("[object Array]"===Object.prototype.toString.call(e)){for(t.push(e),i=new Array(e.length),n.push(i),o=0;o<e.length;o+=1)i[o]=rt(e[o],t,n,r,a);return t.pop(),n.pop(),i}if(e&&e.toJSON&&(e=e.toJSON()),"object"===tt(e)&&null!==e){t.push(e),i={},n.push(i);var s,_=[];for(s in e)Object.prototype.hasOwnProperty.call(e,s)&&_.push(s);for(_.sort(),o=0;o<_.length;o+=1)i[s=_[o]]=rt(e[s],t,n,r,s);t.pop(),n.pop()}else i=e;return i}nt.useLongestToken=!0,nt.tokenize=et.tokenize,nt.castInput=function(e,t){var n=t.undefinedReplacement,r=t.stringifyReplacer,a=void 0===r?function(e,t){return typeof t>"u"?n:t}:r;return"string"==typeof e?e:JSON.stringify(rt(e,null,null,a),a," ")},nt.equals=function(e,t,n){return Je.prototype.equals.call(nt,e.replace(/,([\r\n])/g,"$1"),t.replace(/,([\r\n])/g,"$1"),n)};var at=new Je;function ot(e){switch(e){case"cr":return"\r";case"crlf":return"\r\n";default:return"\n"}}function it(e,t){let n;switch(t){case"\n":n=/\n/gu;break;case"\r":n=/\r/gu;break;case"\r\n":n=/\r\n/gu;break;default:throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`)}let r=e.match(n);return r?r.length:0}at.tokenize=function(e){return e.slice()},at.join=at.removeEmpty=function(e){return e};var st="string",_t="array",lt="cursor",ut="indent",ct="align",pt="trim",dt="group",mt="fill",ft="if-break",ht="indent-if-break",yt="line-suffix",gt="line-suffix-boundary",bt="line",Dt="label",vt="break-parent",xt=new Set([lt,ut,ct,pt,dt,mt,ft,ht,yt,gt,bt,Dt,vt]),wt=(e,t,n)=>{if(!e||null!=t)return Array.isArray(t)||"string"==typeof t?t[n<0?t.length+n:n]:t.at(n)};var Ct=function(e){if("string"==typeof e)return st;if(Array.isArray(e))return _t;if(!e)return;let{type:t}=e;return xt.has(t)?t:void 0};function Tt(e){let t=null===e?"null":typeof e;if("string"!==t&&"object"!==t)return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(Ct(e))throw new Error("doc is valid.");let n=Object.prototype.toString.call(e);if("[object Object]"!==n)return`Unexpected doc '${n}'.`;let r=(e=>new Intl.ListFormat("en-US",{type:"disjunction"}).format(e))([...xt].map((e=>`'${e}'`)));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${r}.`}var St=class extends Error{name="InvalidDocError";constructor(e){super(Tt(e)),this.doc=e}},kt=St,Et={};var At=function(e,t,n,r){let a=[e];for(;a.length>0;){let e=a.pop();if(e===Et){n(a.pop());continue}n&&a.push(e,Et);let o=Ct(e);if(!o)throw new kt(e);if(!1!==(null==t?void 0:t(e)))switch(o){case _t:case mt:{let t=o===_t?e:e.parts;for(let e=t.length-1;e>=0;--e)a.push(t[e]);break}case ft:a.push(e.flatContents,e.breakContents);break;case dt:if(r&&e.expandedStates)for(let t=e.expandedStates.length-1;t>=0;--t)a.push(e.expandedStates[t]);else a.push(e.contents);break;case ct:case ut:case ht:case Dt:case yt:a.push(e.contents);break;case st:case lt:case pt:case gt:case bt:case vt:break;default:throw new kt(e)}}};function Ft(e,t){if("string"==typeof e)return t(e);let n=new Map;return r(e);function r(e){if(n.has(e))return n.get(e);let a=function(e){switch(Ct(e)){case _t:return t(e.map(r));case mt:return t({...e,parts:e.parts.map(r)});case ft:return t({...e,breakContents:r(e.breakContents),flatContents:r(e.flatContents)});case dt:{let{expandedStates:n,contents:a}=e;return n?(n=n.map(r),a=n[0]):a=r(a),t({...e,contents:a,expandedStates:n})}case ct:case ut:case ht:case Dt:case yt:return t({...e,contents:r(e.contents)});case st:case lt:case pt:case gt:case bt:case vt:return t(e);default:throw new kt(e)}}(e);return n.set(e,a),a}}function Pt(e,t,n){let r=n,a=!1;return At(e,(function(e){if(a)return!1;let n=t(e);void 0!==n&&(a=!0,r=n)})),r}function Nt(e){if(e.type===dt&&e.break||e.type===bt&&e.hard||e.type===vt)return!0}function Bt(e){if(e.length>0){let t=wt(!1,e,-1);!t.expandedStates&&!t.break&&(t.break="propagated")}return null}function It(e){return e.type!==bt||e.hard?e.type===ft?e.flatContents:e:e.soft?"":" "}function $t(e){for(e=[...e];e.length>=2&&wt(!1,e,-2).type===bt&&wt(!1,e,-1).type===vt;)e.length-=2;if(e.length>0){let t=jt(wt(!1,e,-1));e[e.length-1]=t}return e}function jt(e){switch(Ct(e)){case ut:case ht:case dt:case yt:case Dt:{let t=jt(e.contents);return{...e,contents:t}}case ft:return{...e,breakContents:jt(e.breakContents),flatContents:jt(e.flatContents)};case mt:return{...e,parts:$t(e.parts)};case _t:return $t(e);case st:return e.replace(/[\n\r]*$/u,"");case ct:case lt:case pt:case gt:case bt:case vt:break;default:throw new kt(e)}return e}function Ot(e){return jt(function(e){return Ft(e,(e=>function(e){switch(Ct(e)){case mt:if(e.parts.every((e=>""===e)))return"";break;case dt:if(!(e.contents||e.id||e.break||e.expandedStates))return"";if(e.contents.type===dt&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case ct:case ut:case ht:case yt:if(!e.contents)return"";break;case ft:if(!e.flatContents&&!e.breakContents)return"";break;case _t:{let t=[];for(let n of e){if(!n)continue;let[e,...r]=Array.isArray(n)?n:[n];"string"==typeof e&&"string"==typeof wt(!1,t,-1)?t[t.length-1]+=e:t.push(e),t.push(...r)}return 0===t.length?"":1===t.length?t[0]:t}case st:case lt:case pt:case gt:case bt:case Dt:case vt:break;default:throw new kt(e)}return e}(e)))}(e))}function Mt(e){if(e.type===bt)return!0}function Lt(e,t){return e.type===Dt?{...e,contents:t(e.contents)}:t(e)}var Rt=()=>{};function Jt(e){return{type:ut,contents:e}}function qt(e,t){return{type:ct,contents:t,n:e}}function Ut(e,t={}){return Rt(t.expandedStates),{type:dt,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function zt(e){return{type:yt,contents:e}}var Gt={type:gt},Kt={type:vt},Wt={type:pt},Xt={type:bt,hard:!0},Vt={type:bt,hard:!0,literal:!0},Ht={type:bt},Qt={type:bt,soft:!0},Yt=[Xt,Kt],Zt=[Vt,Kt],en={type:lt};function tn(e,t){let n=[];for(let r=0;r<t.length;r++)0!==r&&n.push(e),n.push(t[r]);return n}function nn(e,t,n){let r=e;if(t>0){for(let e=0;e<Math.floor(t/n);++e)r=Jt(r);r=qt(t%n,r),r=qt(Number.NEGATIVE_INFINITY,r)}return r}function rn(e){var t;if(!e)return"";if(Array.isArray(e)){let t=[];for(let n of e)if(Array.isArray(n))t.push(...rn(n));else{let e=rn(n);""!==e&&t.push(e)}return t}return e.type===ft?{...e,breakContents:rn(e.breakContents),flatContents:rn(e.flatContents)}:e.type===dt?{...e,contents:rn(e.contents),expandedStates:null==(t=e.expandedStates)?void 0:t.map(rn)}:e.type===mt?{type:"fill",parts:e.parts.map(rn)}:e.contents?{...e,contents:rn(e.contents)}:e}var an=e=>!(function(e){return 12288===e||e>=65281&&e<=65376||e>=65504&&e<=65510}(e)||function(e){return e>=4352&&e<=4447||8986===e||8987===e||9001===e||9002===e||e>=9193&&e<=9196||9200===e||9203===e||9725===e||9726===e||9748===e||9749===e||e>=9776&&e<=9783||e>=9800&&e<=9811||9855===e||e>=9866&&e<=9871||9875===e||9889===e||9898===e||9899===e||9917===e||9918===e||9924===e||9925===e||9934===e||9940===e||9962===e||9970===e||9971===e||9973===e||9978===e||9981===e||9989===e||9994===e||9995===e||10024===e||10060===e||10062===e||e>=10067&&e<=10069||10071===e||e>=10133&&e<=10135||10160===e||10175===e||11035===e||11036===e||11088===e||11093===e||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||94192===e||94193===e||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||110589===e||110590===e||e>=110592&&e<=110882||110898===e||e>=110928&&e<=110930||110933===e||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||126980===e||127183===e||127374===e||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||127568===e||127569===e||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||127988===e||e>=127992&&e<=128062||128064===e||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||128378===e||128405===e||128406===e||128420===e||e>=128507&&e<=128591||e>=128640&&e<=128709||128716===e||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||128747===e||128748===e||e>=128756&&e<=128764||e>=128992&&e<=129003||129008===e||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}(e)),on=/[^\x20-\x7F]/u;var sn=function(e){if(!e)return 0;if(!on.test(e))return e.length;e=e.replace(/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\u