UNPKG

@builder.io/dev-tools

Version:

Builder.io Visual CMS Devtools

13 lines • 2.83 MB
"use strict";var IV=Object.create;var Cu=Object.defineProperty;var fV=Object.getOwnPropertyDescriptor;var mV=Object.getOwnPropertyNames;var hV=Object.getPrototypeOf,EV=Object.prototype.hasOwnProperty;var bb=e=>{throw TypeError(e)};var BV=(e,t,r)=>t in e?Cu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var v=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xb=(e,t)=>{for(var r in t)Cu(e,r,{get:t[r],enumerable:!0})},Fb=(e,t,r,A)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of mV(t))!EV.call(e,n)&&n!==r&&Cu(e,n,{get:()=>t[n],enumerable:!(A=fV(t,n))||A.enumerable});return e};var ae=(e,t,r)=>(r=e!=null?IV(hV(e)):{},Fb(t||!e||!e.__esModule?Cu(r,"default",{value:e,enumerable:!0}):r,e)),Gt=e=>Fb(Cu({},"__esModule",{value:!0}),e);var we=(e,t,r)=>BV(e,typeof t!="symbol"?t+"":t,r),im=(e,t,r)=>t.has(e)||bb("Cannot "+r);var z=(e,t,r)=>(im(e,t,"read from private field"),r?r.call(e):t.get(e)),_t=(e,t,r)=>t.has(e)?bb("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),at=(e,t,r,A)=>(im(e,t,"write to private field"),A?A.call(e,r):t.set(e,r),r),Je=(e,t,r)=>(im(e,t,"access private method"),r);var QV,Vr,QA=x(()=>{"use strict";QV="1.62.0",Vr=process.env.OVERRIDE_VERSION??QV});var om,na,Ap,np,Rb,Zo,sm,am,Xo,kb,ia=x(()=>{"use strict";om="preview-url",na="framework",Ap="platform",np="node",Rb="/~builder-connect",Zo="/~builder-connected",sm="/~builder-dev-tools",am="/~builder-dev-tools.js",Xo="/~builder-dev-tools-close",kb="/mappings"});function ze(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest,void 0)}function ip(e,t=""){let r=ze(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function cr(e,t,r){if(t){let A=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?A.printFile(t).trim()+` `:A.printNode(e.ts.EmitHint.Unspecified,t,e.ts.createSourceFile("module.tsx","",e.ts.ScriptTarget.Latest)).trim()+` `}return""}var Tt=x(()=>{"use strict"});var Nb=v((USe,Mb)=>{"use strict";Mb.exports=function(){if(process.env.npm_config_user_agent)return DV(process.env.npm_config_user_agent)};function DV(e){let t=e.split(" ")[0],r=t.lastIndexOf("/"),A=t.substring(0,r);return{name:A==="npminstall"?"cnpm":A,version:t.substring(r+1)}}});function PA(e){return e.endsWith(".mapper.tsx")||e.endsWith(".mapper.jsx")||e.endsWith(".mapper.ts")||e.endsWith(".mapper.js")||e.endsWith(".mapper.mjs")}function Ze(e,t,r){t=dn(t),r=dn(r),t=e.dirname(t);let A=e.basename(r,e.extname(r));r=e.dirname(r);let n;return A==="index"?n=e.relative(t,r):n=e.relative(t,e.join(r,A)),n=dn(e.normalize(n)),n.startsWith(".")||(n="./"+n),n}function dn(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function es(e,t){let r=e.extname(t),A=e.basename(t,r).split(/[\/\\]/),n=A[A.length-1];return Tb(n==="index"?e.basename(e.dirname(t)):n)}function Tb(e){return ht(e).replace(/ /g,"")}function UA(e,t){let r=e.extname(t),A=dn(e.basename(t,r)).split("/").pop();return ht(A==="index"?e.basename(e.dirname(t)):A)}function Et(e,t){let r=dn(e.relative(e.getAppRootDir(),t));r=r.split("/").filter(n=>n!=="."&&n!==".."&&n!=="").join("/"),r.endsWith(".tsx")||r.endsWith(".jsx")?r=r.slice(0,-4):(r.endsWith(".ts")||r.endsWith(".js"))&&(r=r.slice(0,-3));let A=e.getFrameworks();return r.startsWith("src/")&&(r=r.slice(4)),A.some(n=>n.name.includes("next"))?"@/"+r:"~/"+r}function ut(e,t){let r=t,A=[];for(let n=0;n<2;n++){let i=e.basename(r);if(!i||i==="components")break;A.unshift(i),r=e.dirname(r)}return A.join("/")}function ht(e){for(e=e.replace(/([A-Z])/g," $1").replace(/\./g," ").replace(/_/g," ").replace(/-/g," ").replace(/\s/g," ").trim();e.includes(" ");)e=e.replace(/ /g," ");return e.split(" ").map(t=>t.length>2?t[0].toUpperCase()+t.slice(1):t).join("").trim()}function oA(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function ft(e,t,r,A){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return A&&(t=A),t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}async function Ub(e){return(await e.hash(e.getAppRootDir())).substring(0,8)}function Iu(e){return typeof e=="number"}function oa(e){return typeof e=="boolean"}function $r(e){return typeof e=="string"}function sa(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function DA(e){return JSON.parse(JSON.stringify(e))}function op(e,t,r){for(let A of t)if(e.dirname(r).includes(A))return!0;return!1}function Lb(){try{let e=(0,Pb.default)();if(e?.name)return e.name}catch{}return"npm"}function yV(){return process.platform.startsWith("win")}function gt(){return process.pkg?"@builder.io/agent":yV()?'"@builder.io/dev-tools"':"builder.io"}var Pb,At=x(()=>{"use strict";Pb=ae(Nb(),1)});function Wr(e){let t=e.join(e.getAppRootDir(),"tsconfig.json");return e.exists(t)}async function sA(e,t){async function r(n,i){if(i>10)return;let o=await e.readdir(n);for(let s of o){if(wV.includes(s))continue;let a=e.join(n,s),c=await e.stat(a);if(c){if(c.isFile()&&s.startsWith("builder-registry."))return a;if(c.isDirectory()){let u=await r(a,i+1);if(u)return u}}}}let A=await r(e.getAppRootDir(),0);if(!A){let i=`builder-registry.${await Wr(e)?"ts":"js"}`;return e.join(t,i)}return A}async function no(e,t){let r=e.resolve("/");for(let A=0;A<20;A++){let n=e.join(t,"package.json"),i=await e.readFile(n);if(i)return JSON.parse(i);if(t===r)break;t=e.dirname(t)}return null}async function Gb(e,t){for(let r=0;r<20;r++){let A=e.dirname(t),n=e.join(A,"node_modules");if(await e.exists(n))return n;if(t===e.getAppRootDir())break;t=e.dirname(t)}return e.join(e.getAppRootDir(),"node_modules")}async function fu(e,t,r){let A=await e.readdir(t);return A.includes(r)?e.join(t,r):(await Promise.all(A.map(async i=>{if(i.startsWith(".")||i==="node_modules")return;let o=e.join(t,i);if((await e.stat(o)).isDirectory()){let a=await fu(e,o,r);if(a)return a}}))).find(i=>typeof i=="string")}var wV,zr=x(()=>{"use strict";wV=["node_modules","dist","build","public"]});async function tr(e,t,r){if(!Array.isArray(t)||t.length===0)throw new Error(`createTsProgram() Invalid filePaths: ${t}`);let A=await Gb(e,t[0]),n=e.join(A,"typescript","lib"),i=new Map,o={fileExists:s=>{if(s=e.normalize(s),s.includes("node_modules")){let a=mu.get(s);if(!a){try{e.statSync(s).isFile()?a={exists:!0,content:e.readFileSync(s)}:a={exists:!1}}catch{a={exists:!1}}mu.set(s,a)}return a.exists}if(!i.has(s))if(e.existsSync(s)){let c=e.statSync(s);i.set(s,c.isFile())}else i.set(s,!1);return i.get(s)},getCanonicalFileName:s=>e.normalize(s),getCurrentDirectory:()=>e.cwd(),getDefaultLibFileName:()=>e.join(n,"lib.d.ts"),getDefaultLibLocation:()=>n,getNewLine:()=>` `,getSourceFile:s=>{if(s=e.normalize(s),s.includes("node_modules")){let c=mu.get(s);if(c)return ze(e,c.content)}let a;try{a=e.readFileSync(s)}catch{console.error(`Could not read: ${s}`),a==null}if(a==null){let c=e.basename(s),u=e.extname(c).toLowerCase();if(s.startsWith(n)&&u===".ts"&&(a=Kb.get(c),a==null&&typeof self<"u"&&typeof fetch=="function"))throw new ap(c)}return s.includes("node_modules")&&(a?mu.set(s,{exists:!0,content:a}):mu.set(s,{exists:!1})),ze(e,a)},readFile:s=>{let a=e.readFileSync(s);return typeof a=="string"?a:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return vV(e,o,t,r)}catch(s){if(s instanceof ap){await SV(e,s.libName);continue}throw e.Sentry?.captureException(s),new Error(`createTsProgram() Could not create program for: ${t[0]}`,{cause:s})}}function vV(e,t,r,A){let n={rootNames:[...r],host:t,options:{}},i=e.ts.findConfigFile(e.dirname(r[0]),o=>e.existsSync(o));if(i){let o=_b.get(i);if(!o){let s=e.ts.readConfigFile(i,a=>{let c=e.readFileSync(a);return typeof c=="string"?c:void 0});s.error?e.Sentry?.captureException(new Error("Error reading tsconfig for createTsProgram"),{extra:{error:s.error,tsConfigPath:i}}):(o=e.ts.parseJsonConfigFileContent(s.config,e.ts.sys||{useCaseSensitiveFileNames:!1,readDirectory:(c,u)=>e.readdirSync(c),fileExists:c=>e.existsSync(c),readFile:c=>e.readFileSync(c)||void 0},e.dirname(i),void 0,i).options,_b.set(i,o))}o&&(n.options=DA(o))}return n.options.noEmit=!0,n.options.isolatedModules=!1,n.options.strict=!1,n.options.jsx=e.ts.JsxEmit.Preserve,n.options.allowJs=!0,Object.assign(n.options,A),e.ts.createProgram(n)}async function aa(e,t,r){r||(r=await tr(e,[t]));let A=r.getSourceFile(t);if(!A)throw new Error(`getTypeChecker() Could not find source file: ${t}`);return{typeChecker:r.getTypeChecker(),sourceFile:A}}async function SV(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;sp.has(t)||sp.set(t,fetch(r).then(A=>A.text()).then(A=>{Kb.set(t,A)})),await sp.get(t),sp.delete(t)}async function Hb(e,t){let r=await e.readFile(t.filePath);return r==null?{diagnostics:[{messageText:`Error reading: ${t.filePath}`}],code:null,output:null}:cm(e,{code:r,filePath:t.filePath,compilerOptions:t.compilerOptions})}function cm(e,t){let r={diagnostics:[],code:t.code,output:null};try{let A=e.ts.transpileModule(t.code,{compilerOptions:t.compilerOptions,fileName:t.filePath??"module.tsx",reportDiagnostics:!0});A.diagnostics?.forEach(n=>{r.diagnostics.push({messageText:String(n.messageText)})}),r.output=A.outputText}catch(A){console.error("transpileModule",A),r.diagnostics.push({messageText:String(A)})}return r}var ap,Kb,sp,mu,_b,LA=x(()=>{"use strict";Tt();At();zr();ap=class{constructor(t){we(this,"libName");this.libName=t}};Kb=new Map,sp=new Map,mu=new Map,_b=new Map});function io(e){let t=e[e.length-1];return t&&typeof t=="object"&&!(t instanceof Error)&&!Array.isArray(t)&&"loggerOptions"in t?{callArgs:e.slice(0,-1),options:t.loggerOptions}:{callArgs:e,options:{}}}function bV(e,t){return`[${e.toUpperCase()}]`+t.map(r=>{if(r instanceof Error)return r.stack??r.message;if(typeof r=="object"&&r!==null)try{return JSON.stringify(r)}catch{return String(r)}return String(r)}).join(" ")}function xV(){let e=process.env.FUSION_ENVIRONMENT;return e==="cloud"||e==="cloud-v2"}function cp(e,t,r,A){let n={severity:t,message:bV(r,A),timestamp:new Date().toISOString()};r&&(n.context=r),e.write(JSON.stringify(n)+` `)}function FV(e,t,r){return{debug(...A){if(!t())return;let{callArgs:n,options:i}=io(A);cp(i.stderr?process.stderr:process.stdout,"DEBUG",r,n)},info(...A){if(e>oo.info)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||cp(i.stderr?process.stderr:process.stdout,"INFO",r,n)},warn(...A){if(e>oo.warn)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||cp(process.stderr,"WARNING",r,n)},error(...A){if(e>oo.error)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||cp(process.stderr,"ERROR",r,n)}}}function ca(e){return e?`[${e}]`:""}function RV(e,t,r){return{debug(...A){if(!t())return;let{callArgs:n,options:i}=io(A);i.stderr?console.error(ca(r),...n):console.debug(ca(r),...n)},info(...A){if(oo.info<e)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||(i.stderr?console.error(ca(r),...n):console.log(ca(r),...n))},warn(...A){if(oo.warn<e)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||console.warn(ca(r),...n)},error(...A){if(oo.error<e)return;let{callArgs:n,options:i}=io(A);i.debug&&!t()||console.error(ca(r),...n)}}}function pe(e,t){let r=typeof t?.debug=="function"?t.debug:t?.debug!==void 0?()=>t.debug:()=>kV||!!process.env.DEBUG,A=t?.level??process.env.LOG_LEVEL?.toLowerCase();return xV()?FV(Jb(A??"info"),r,e):RV(Jb(A??"info"),r,e)}function Jb(e){return oo[e]??oo.info}var oo,kV,Xe=x(()=>{"use strict";oo={debug:0,info:1,warn:2,error:3};kV=!1});var qSe,um=x(()=>{"use strict";Xe();qSe=pe("ConnectionTracker")});async function ua(e){let t=[],r=await no(e,e.getRepoRootDir());if(r){let A=await Yb(r,e);t.push(...A)}return t}async function Yb(e,t){let r=[];if(e&&typeof e=="object"){let A=new Set(Object.keys({...e.dependencies,...e.devDependencies}));for(let n of MV)if(A.has(n)&&!r.some(i=>i.name===n)){let i={name:n};Ob.has(n)&&(i.version=await Ob.get(n)(t)),r.push(i)}}return r}function gm(e){let t=parseInt(e);return Number.isNaN(t)?void 0:t}var Ob,MV,ts=x(()=>{"use strict";zr();At();Ob=new Map([["next",async e=>{if(!e.spawnSync)return;let t=Lb(),r=t==="npm"?"npx":t,{stdout:A}=e.spawnSync(r,["next","-v"],{encoding:"utf8"});if(!A)return;let n=A.match(/(Next.js v)([\d.]+)/g);if(!n)return;let i=n[0].split("Next.js v")[1],[o,s,a]=i.split(".");return{major:gm(o),minor:gm(s),patch:gm(a)}}]]),MV=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"]});function jb(){let e=(0,up.homedir)();return gp.default.join(e,".builder","config","dev-tools.json")}function LV(){let e=(0,up.homedir)();return gp.default.join(e,".config","builder","dev-tools.json")}function lm(e,t){return typeof e=="object"&&e!=null&&t in e}async function ga(){let e=jb();try{let r=await(0,yA.readFile)(e,"utf-8");if(typeof r=="string")return JSON.parse(r)}catch(r){if(r.code!=="ENOENT")return null}let t=LV();try{let r=await(0,yA.readFile)(t,"utf-8");if(typeof r=="string"){let A=JSON.parse(r);try{await lp(A),await(0,yA.unlink)(t).catch(()=>{})}catch{}return A}}catch(r){if(r.code==="ENOENT")return null}return null}async function lp(e){let t=jb();e=typeof e=="object"&&e!=null?e:{},await(0,yA.mkdir)(gp.default.dirname(t),{recursive:!0}),await(0,yA.writeFile)(t,JSON.stringify(e??{},null,2))}var yA,up,gp,TV,PV,UV,hu=x(()=>{"use strict";um();yA=require("node:fs/promises"),up=require("node:os"),gp=ae(require("node:path"),1),TV=ae(require("typescript"),1),PV=ae(require("launch-editor"),1);ts();UV=ae(require("@sentry/node"),1);QA()});var De,Eu,ur=x(()=>{"use strict";De={gen1:"Gen 1",gen2:"Gen 2"},Eu={CMS:"cms",VCP:"vcp",HYBRID:"hybrid"}});function la(e){let t=Date.now();return new Promise((r,A)=>{let i=GV(e.url)({protocol:e.url.protocol,host:e.url.host,port:e.url.port,path:e.url.pathname+e.url.search,method:e.method,headers:e.headers},o=>{let s="";o.on("data",a=>{s+=a}),o.on("end",()=>{if((0,qb.debug)(`${e.method} ${e.url.href}, duration: ${Date.now()-t}ms`),typeof o.statusCode=="number"&&o.statusCode>=200&&o.statusCode<300)if(typeof o.headers["content-type"]!="string"||!o.headers["content-type"].includes("application/json"))A(`Response from ${e.url.href} content-type is ${o.headers["content-type"]}`);else try{r(JSON.parse(s))}catch(a){A(`Response from ${e.url.href} is not valid JSON: ${s} ${a}`)}else A(`Request to ${e.url.href} failed with status ${o.statusCode}: ${s}`)})}).on("error",o=>{A(`Error fetching ${e.url.href}, ${o}`)});e.body&&(i.setHeader("Content-Type","application/json"),i.write(e.body)),i.end()})}function GV(e){if(e.protocol==="https:")return $b.request;if(e.protocol==="http:")return Vb.request;throw new Error(`Unsupported protocol ${e.protocol}`)}var qb,Vb,$b,Wb=x(()=>{"use strict";qb=require("node:console"),Vb=require("node:http"),$b=require("node:https")});async function zb(e){let t=new URL(`https://cdn.builder.io/api/v3/query/${e.publicApiKey}/${e.model}`);return t.searchParams.set("omit","meta.componentsUsed"),t.searchParams.set("apiKey",e.publicApiKey),t.searchParams.set("userAttributes.urlPath",e.pageUrl),t.searchParams.set("options.page.model",`"${e.model}"`),t.searchParams.set("cachebust","true"),(await la({url:t,method:"GET"}))[e.model]}async function Zb(e,t){if(t.kind===Eu.VCP)return!0;let r=new URL("https://cdn.builder.io/api/v2/admin"),A={query:`query { models { id name } }`};e.debug(`Get model id for model name "${t.model}"`);let i=(await la({url:r,method:"POST",headers:{Authorization:`Bearer ${t.privateAuthKey}`,"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(A)})).data.models.find(a=>a.name===t.model);if(!i)return e.debug(`No model found for model name "${t.model}"`),!1;e.debug(`Data query, modelId: "${i.id}", urlPath: "${t.pageUrl}"`);let o=new URL("https://cdn.builder.io/api/v3/data");o.searchParams.set("limit","1"),o.searchParams.set("cachebust","true"),o.searchParams.set("collection","content"),o.searchParams.set("query.published.$ne","archived"),o.searchParams.set("query.query.$elemMatch.$and[0].property","urlPath"),o.searchParams.set("query.query.$elemMatch.$and[0].operator","is"),o.searchParams.set("query.query.$elemMatch.$and[0].value",t.pageUrl),o.searchParams.set("query.modelId",i.id),o.searchParams.set("apiKey",t.publicApiKey);let s=await la({url:o,method:"GET"});return e.debug(`Data results (${s.results.length}): ${o.href}`),s.results.length>0}async function Xb(e,t){let r=new URL(`https://cdn.builder.io/api/v3/content/${t.model}`);r.searchParams.set("apiKey",t.publicApiKey),r.searchParams.set("cachebust","true"),r.searchParams.set("cb",Date.now().toString()),t.pageUrl&&(r.searchParams.set("url",t.pageUrl),e.debug(`get model: "${t.model}", pageUrl: "${t.pageUrl}":`,r.href)),t.id&&(r.searchParams.set("query.id",t.id),e.debug(`get model: "${t.model}", id: "${t.id}":`,r.href));let A=await la({url:r,method:"GET"});return e.debug(`get content results: ${A.results.length}`),A}async function ex(e,t){let r=new URL(`https://cdn.builder.io/api/v1/write/${t.model}`);e.debug(`writing "${t.model}" content:`,r.href),await la({url:r,method:"POST",headers:{Authorization:`Bearer ${t.privateAuthKey}`},body:t.body})}var pm=x(()=>{"use strict";ur();Wb()});var pa,tx,rx,dm=x(()=>{"use strict";pa="page",tx="integration-welcome-screens",rx="8d9ee72a33344b4b867918b442ebd0af"});async function Ax(e,t){let r=await Xb(e,{model:tx,publicApiKey:rx,id:t.templateContentId});if(!Array.isArray(r?.results)||r.results.length===0||!r.results[0].data?.blocks)throw new Error(`No Builder content found for id ${t.templateContentId}`);let A=JSON.stringify(r.results[0].data.blocks),n=_V(t.publicApiKey,t.pathname,t.title,A);await ex(e,{privateAuthKey:t.privateAuthKey,model:pa,body:n})}function _V(e,t,r,A){return JSON.stringify({name:r,ownerId:e,published:"published",query:[{property:"urlPath",value:[t],operator:"is"}],data:{title:r,blocksString:A}})}var nx=x(()=>{"use strict";pm();dm()});async function ix(e,t,r,A){e.debug(`connect builder with public key: ${t}`),e.publicApiKey=t;let n=e.closeAppServer(),i=await e.setPublicApiKey({publicApiKey:t});if(i.modifiedType==="permission-error")return e.debug("permission error, failed to set public api key"),{success:!1,pathname:""};e.debug(`set public key: process.env.${i.envKey}=${t}`),process.env[i.envKey]=t;let o=await e.builderPageOptions();e.debug(`builder model: ${pa}, path: ${o.pathname}, template: ${o.templateContentId}`);let s=await Zb(e,{model:pa,pageUrl:o.pathname,publicApiKey:t,privateAuthKey:r,kind:A});if(!s){await Ax(e,{templateContentId:o.templateContentId,pathname:o.pathname,title:o.title,publicApiKey:t,privateAuthKey:r});let u=5,d=0;for(;!s&&d<u;){await new Promise(g=>setTimeout(g,1e3));let p=await zb({model:pa,pageUrl:o.pathname,publicApiKey:t,privateAuthKey:r});d++,p&&p.length>0&&(s=!0)}}await n,e.debug("ensure builder setup");let a=[];A===Eu.VCP?a=await e.ensureFigmaImportPage():a=await e.ensureBuilderSetup(),i.modifiedType&&a.push({filePath:i.file,modifiedType:i.modifiedType}),a.forEach(u=>{u.displayFilePath=e.relative(e.getAppRootDir(),u.filePath)}),a.sort((u,d)=>u.filePath.localeCompare(d.filePath)),a.length>0?(e.debug(`modified files: ${a.map(u=>u.displayFilePath).join(", ")}`),await e.restartAppServer(),await new Promise(u=>setTimeout(u,500))):e.debug("no modified files");let c={success:!0,pathname:o.localePathname||o.pathname,modifiedFiles:a,platform:e.platform(),kind:A};return A===Eu.VCP&&(c.pathname="/"),e.debug(`connected builder: ${c.pathname}`),c}async function ox(e){let t=await e.builderPageOptions();e.debug(`validateBuilder, pathname: ${t.pathname}, localePathname: ${t.localePathname}, isValid: ${e.isValid}`);let r={isValid:e.isValid,pathname:t.localePathname||t.pathname,platform:e.platform()};if(e.isValid)return r;let A=await e.getPublicApiKey();return A.envValue?(e.debug(`public api key: ${A.envValue}, ${A.file}`),e.publicApiKey=A.envValue,e.debug("builder connection is valid"),r.isValid=!0,e.isValid=!0,r):(e.debug("missing public api key"),r)}var sx=x(()=>{"use strict";ur();nx();pm();dm()});async function ax(e,t){let r={type:t.type};switch(t.type){case"getCache":{r.data=await e.getCache();break}case"setCache":{await e.setCache(t.data);break}case"connectBuilder":{r.data=await ix(e,t.data.publicApiKey,t.data.privateAuthKey,t.data.kind);break}case"enableDevTools":{r.data=JV(e,t.data.enabled);break}case"getRegistry":{r.data=await e.getRegistry(t.data);break}case"launchEditor":{r.data=await e.launchEditor(t.data);break}case"validateBuilder":{r.data=await ox(e);break}case"loadComponent":{r.data=await e.loadComponent(t.data);break}case"getAllProjectFiles":{e.getAllProjectFiles?r.data=await e.getAllProjectFiles():r.errors=["getAllProjectFiles not implemented"];break}case"registerComponent":{r.data=await e.registerComponent(t.data),e.serverShouldRestart=!0;break}case"setComponentInfo":{r.data=await e.setRegisteredComponentInfo(t.data),e.serverShouldRestart=!0;break}case"setComponentInput":{r.data=await e.setRegisteredComponentInput(t.data),e.serverShouldRestart=!0;break}case"unregisterComponent":{r.data=await e.unregisterComponent(t.data),e.serverShouldRestart=!0;break}case"getFrameworks":{r.data=e.getFrameworks();break}case"readdir":{Cm(e,t.path)?r.data=await e.readdir(t.path,!0):r.errors=[`Invalid file request: ${t.path}`];break}case"readFile":{Cm(e,t.path)?r.data=await e.readFile(t.path):r.errors=[`Invalid file request: ${t.path}`];break}case"writeFile":{Cm(e,t.path)?await e.writeFile(t.path,t.content):r.errors=[`Invalid file request: ${t.path}`];break}case"ensureFigmaImportPage":{r.data=await e.ensureFigmaImportPage();break}case"transileFile":{r.data=await Hb(e,t);break}case"transileModule":{r.data=cm(e,t);break}case"getPastSyncInfo":{r.data=await e.getPastSyncInfo?.(t.data);break}case"resyncSnippet":{r.data=await e.resyncSnippet?.(t.data);break}case"localConfig":{r.data=await ga();break}default:r.errors=[`Unknown request type: ${JSON.stringify(t)}`]}return r}function Cm(e,t){if(!t||t.includes(".."))return!1;t=t.replace(/\\/g,"/");let r=t.split("/"),A=r[r.length-1];if(A.length>0){let n=A.split(".").pop();if(n&&(n=`.${n}`.toLocaleLowerCase(),n=n.split("?")[0],!HV.includes(n)))return!1}return KV(e,t),!1}function KV(e,t){if(!t)return!1;t=e.normalize(e.resolve(t));let r=e.getAppRootDir();return!(!t.startsWith(r)&&!t.includes("node_modules"))}function JV(e,t){return!t&&e.serverShouldRestart&&setTimeout(()=>{console.log(` Restarting server after Builder Devtools update... `),e.restartAppServer()},10),e.enableAppWatch(!t),{enabled:t,platform:e.platform()}}var HV,cx=x(()=>{"use strict";LA();hu();sx();HV=[".js",".jsx",".ts",".tsx",".json",".css",".scss",".sass",".less",".html",".htm",".xml",".svg",".png",".jpg",".jpeg",".gif",".ico",".webp",".woff",".woff2",".ttf",".eot",".mp4",".webm",".ogg",".md",".txt",".csv",".pdf"]});async function ux(e){return lx(e,`"use strict";(()=>{var fi=Object.create;var Bt=Object.defineProperty;var mi=Object.getOwnPropertyDescriptor;var vi=Object.getOwnPropertyNames;var gi=Object.getPrototypeOf,hi=Object.prototype.hasOwnProperty;var yi=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),bi=(t,e)=>{for(var r in e)Bt(t,r,{get:e[r],enumerable:!0})},Ei=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of vi(e))!hi.call(t,i)&&i!==r&&Bt(t,i,{get:()=>e[i],enumerable:!(n=mi(e,i))||n.enumerable});return t};var _i=(t,e,r)=>(r=t!=null?fi(gi(t)):{},Ei(e||!t||!t.__esModule?Bt(r,"default",{value:t,enumerable:!0}):r,t));var Gn=yi((Qe,Rt)=>{(function(t,e){"use strict";var r="0.7.33",n="",i="?",o="function",a="undefined",c="object",d="string",p="major",s="model",u="name",l="type",f="vendor",m="version",_="architecture",E="console",v="mobile",g="tablet",T="smarttv",L="wearable",k="embedded",w=350,C="Amazon",R="Apple",K="ASUS",z="BlackBerry",Q="Browser",P="Chrome",Ce="Edge",ce="Firefox",_e="Google",Me="Huawei",Re="LG",Oe="Microsoft",Be="Motorola",Te="Opera",we="Samsung",ke="Sharp",fe="Sony",me="Xiaomi",Ve="Zebra",U="Facebook",et=function(S,O){var I={};for(var q in S)O[q]&&O[q].length%2===0?I[q]=O[q].concat(S[q]):I[q]=S[q];return I},tt=function(S){for(var O={},I=0;I<S.length;I++)O[S[I].toUpperCase()]=S[I];return O},Cr=function(S,O){return typeof S===d?Fe(O).indexOf(Fe(S))!==-1:!1},Fe=function(S){return S.toLowerCase()},di=function(S){return typeof S===d?S.replace(/[^\\d\\.]/g,n).split(".")[0]:e},Ut=function(S,O){if(typeof S===d)return S=S.replace(/^\\s\\s*/,n),typeof O===a?S:S.substring(0,w)},He=function(S,O){for(var I=0,q,x,nt,D,qe,ie;I<O.length&&!qe;){var kr=O[I],Ar=O[I+1];for(q=x=0;q<kr.length&&!qe;)if(qe=kr[q++].exec(S),qe)for(nt=0;nt<Ar.length;nt++)ie=qe[++x],D=Ar[nt],typeof D===c&&D.length>0?D.length===2?typeof D[1]==o?this[D[0]]=D[1].call(this,ie):this[D[0]]=D[1]:D.length===3?typeof D[1]===o&&!(D[1].exec&&D[1].test)?this[D[0]]=ie?D[1].call(this,ie,D[2]):e:this[D[0]]=ie?ie.replace(D[1],D[2]):e:D.length===4&&(this[D[0]]=ie?D[3].call(this,ie.replace(D[1],D[2])):e):this[D]=ie||e;I+=2}},Mt=function(S,O){for(var I in O)if(typeof O[I]===c&&O[I].length>0){for(var q=0;q<O[I].length;q++)if(Cr(O[I][q],S))return I===i?e:I}else if(Cr(O[I],S))return I===i?e:I;return S},pi={"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},Rr={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Or={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[m,[u,"Chrome"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[m,[u,"Edge"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,m],[/opios[\\/ ]+([\\w\\.]+)/i],[m,[u,Te+" Mini"]],[/\\bopr\\/([\\w\\.]+)/i],[m,[u,Te]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[u,m],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[m,[u,"UC"+Q]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[m,[u,"WeChat(Win) Desktop"]],[/micromessenger\\/([\\w\\.]+)/i],[m,[u,"WeChat"]],[/konqueror\\/([\\w\\.]+)/i],[m,[u,"Konqueror"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[m,[u,"IE"]],[/yabrowser\\/([\\w\\.]+)/i],[m,[u,"Yandex"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,"$1 Secure "+Q],m],[/\\bfocus\\/([\\w\\.]+)/i],[m,[u,ce+" Focus"]],[/\\bopt\\/([\\w\\.]+)/i],[m,[u,Te+" Touch"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[m,[u,"Coc Coc"]],[/dolfin\\/([\\w\\.]+)/i],[m,[u,"Dolphin"]],[/coast\\/([\\w\\.]+)/i],[m,[u,Te+" Coast"]],[/miuibrowser\\/([\\w\\.]+)/i],[m,[u,"MIUI "+Q]],[/fxios\\/([-\\w\\.]+)/i],[m,[u,ce]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,"360 "+Q]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,"$1 "+Q],m],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g," "],m],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,m],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,U],m],[/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,m],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[m,[u,"GSA"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[m,[u,P+" Headless"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,P+" WebView"],m],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[m,[u,"Android "+Q]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,m],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[m,[u,"Mobile Safari"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[m,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[m,Mt,pi]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,m],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,"Netscape"],m],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[m,[u,ce+" Reality"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i],[u,m],[/(cobalt)\\/([\\w\\.]+)/i],[u,[m,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[_,"amd64"]],[/(ia32(?=;))/i],[[_,Fe]],[/((?:i[346]|x)86)[;\\)]/i],[[_,"ia32"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[_,"arm64"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[_,"armhf"]],[/windows (ce|mobile); ppc;/i],[[_,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[_,/ower/,n,Fe]],[/(sun4\\w)[;\\)]/i],[[_,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[_,Fe]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[s,[f,we],[l,g]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[s,[f,we],[l,v]],[/((ipod|iphone)\\d+,\\d+)/i],[s,[f,R],[l,v]],[/(ipad\\d+,\\d+)/i],[s,[f,R],[l,g]],[/\\((ip(?:hone|od)[\\w ]*);/i],[s,[f,R],[l,v]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[s,[f,R],[l,g]],[/(macintosh);/i],[s,[f,R]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[s,[f,Me],[l,g]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[s,[f,Me],[l,v]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[s,/_/g," "],[f,me],[l,v]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[s,/_/g," "],[f,me],[l,g]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[s,[f,"OPPO"],[l,v]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[s,[f,"Vivo"],[l,v]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[s,[f,"Realme"],[l,v]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[s,[f,Be],[l,v]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[s,[f,Be],[l,g]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[s,[f,Re],[l,g]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[s,[f,Re],[l,v]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[s,[f,"Lenovo"],[l,g]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[s,/_/g," "],[f,"Nokia"],[l,v]],[/(pixel c)\\b/i],[s,[f,_e],[l,g]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[s,[f,_e],[l,v]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[s,[f,fe],[l,v]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[s,"Xperia Tablet"],[f,fe],[l,g]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[s,[f,"OnePlus"],[l,v]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[s,[f,C],[l,g]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[s,/(.+)/g,"Fire Phone $1"],[f,C],[l,v]],[/(playbook);[-\\w\\),; ]+(rim)/i],[s,f,[l,g]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[s,[f,z],[l,v]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[s,[f,K],[l,g]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[s,[f,K],[l,v]],[/(nexus 9)/i],[s,[f,"HTC"],[l,g]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic|sony(?!-bra))[-_ ]?([-\\w]*)/i],[f,[s,/_/g," "],[l,v]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[s,[f,"Acer"],[l,g]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[s,[f,"Meizu"],[l,v]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[s,[f,ke],[l,v]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[f,s,[l,v]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[f,s,[l,g]],[/(surface duo)/i],[s,[f,Oe],[l,g]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[s,[f,"Fairphone"],[l,v]],[/(u304aa)/i],[s,[f,"AT&T"],[l,v]],[/\\bsie-(\\w*)/i],[s,[f,"Siemens"],[l,v]],[/\\b(rct\\w+) b/i],[s,[f,"RCA"],[l,g]],[/\\b(venue[\\d ]{2,7}) b/i],[s,[f,"Dell"],[l,g]],[/\\b(q(?:mv|ta)\\w+) b/i],[s,[f,"Verizon"],[l,g]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[s,[f,"Barnes & Noble"],[l,g]],[/\\b(tm\\d{3}\\w+) b/i],[s,[f,"NuVision"],[l,g]],[/\\b(k88) b/i],[s,[f,"ZTE"],[l,g]],[/\\b(nx\\d{3}j) b/i],[s,[f,"ZTE"],[l,v]],[/\\b(gen\\d{3}) b.+49h/i],[s,[f,"Swiss"],[l,v]],[/\\b(zur\\d{3}) b/i],[s,[f,"Swiss"],[l,g]],[/\\b((zeki)?tb.*\\b) b/i],[s,[f,"Zeki"],[l,g]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[f,"Dragon Touch"],s,[l,g]],[/\\b(ns-?\\w{0,9}) b/i],[s,[f,"Insignia"],[l,g]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[s,[f,"NextBook"],[l,g]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[f,"Voice"],s,[l,v]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[f,"LvTel"],s,[l,v]],[/\\b(ph-1) /i],[s,[f,"Essential"],[l,v]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[s,[f,"Envizen"],[l,g]],[/\\b(trio[-\\w\\. ]+) b/i],[s,[f,"MachSpeed"],[l,g]],[/\\btu_(1491) b/i],[s,[f,"Rotor"],[l,g]],[/(shield[\\w ]+) b/i],[s,[f,"Nvidia"],[l,g]],[/(sprint) (\\w+)/i],[f,s,[l,v]],[/(kin\\.[onetw]{3})/i],[[s,/\\./g," "],[f,Oe],[l,v]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[s,[f,Ve],[l,g]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[s,[f,Ve],[l,v]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[f,s,[l,E]],[/droid.+; (shield) bui/i],[s,[f,"Nvidia"],[l,E]],[/(playstation [345portablevi]+)/i],[s,[f,fe],[l,E]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[s,[f,Oe],[l,E]],[/smart-tv.+(samsung)/i],[f,[l,T]],[/hbbtv.+maple;(\\d+)/i],[[s,/^/,"SmartTV"],[f,we],[l,T]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[f,Re],[l,T]],[/(apple) ?tv/i],[f,[s,R+" TV"],[l,T]],[/crkey/i],[[s,P+"cast"],[f,_e],[l,T]],[/droid.+aft(\\w)( bui|\\))/i],[s,[f,C],[l,T]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[s,[f,ke],[l,T]],[/(bravia[\\w ]+)( bui|\\))/i],[s,[f,fe],[l,T]],[/(mitv-\\w{5}) bui/i],[s,[f,me],[l,T]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w ]*; *(\\w[^;]*);([^;]*)/i],[[f,Ut],[s,Ut],[l,T]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[l,T]],[/((pebble))app/i],[f,s,[l,L]],[/droid.+; (glass) \\d/i],[s,[f,_e],[l,L]],[/droid.+; (wt63?0{2,3})\\)/i],[s,[f,Ve],[l,L]],[/(quest( 2)?)/i],[s,[f,U],[l,L]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[f,[l,k]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[s,[l,v]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[s,[l,g]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[l,g]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[l,v]],[/(android[-\\w\\. ]{0,9});.+buil/i],[s,[f,"Generic"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[m,[u,Ce+"HTML"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[m,[u,"Blink"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i],[u,m],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[m,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,m],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[m,Mt,Rr]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,"Windows"],[m,Mt,Rr]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/cfnetwork\\/.+darwin/i],[[m,/_/g,"."],[u,"iOS"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,"Mac OS"],[m,/_/g,"."]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[m,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,m],[/\\(bb(10);/i],[m,[u,z]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[m,[u,"Symbian"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[m,[u,ce+" OS"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[m,[u,"webOS"]],[/crkey\\/([\\d\\.]+)/i],[m,[u,P+"cast"]],[/(cros) [\\w]+ ([\\w\\.]+\\w)/i],[[u,"Chromium OS"],m],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[u,m],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,"Solaris"],m],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\\w\\.]*)/i],[u,m]]},Z=function(S,O){if(typeof S===c&&(O=S,S=e),!(this instanceof Z))return new Z(S,O).getResult();var I=S||(typeof t!==a&&t.navigator&&t.navigator.userAgent?t.navigator.userAgent:n),q=O?et(Or,O):Or;return this.getBrowser=function(){var x={};return x[u]=e,x[m]=e,He.call(x,I,q.browser),x.major=di(x.version),x},this.getCPU=function(){var x={};return x[_]=e,He.call(x,I,q.cpu),x},this.getDevice=function(){var x={};return x[f]=e,x[s]=e,x[l]=e,He.call(x,I,q.device),x},this.getEngine=function(){var x={};return x[u]=e,x[m]=e,He.call(x,I,q.engine),x},this.getOS=function(){var x={};return x[u]=e,x[m]=e,He.call(x,I,q.os),x},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return I},this.setUA=function(x){return I=typeof x===d&&x.length>w?Ut(x,w):x,this},this.setUA(I),this};Z.VERSION=r,Z.BROWSER=tt([u,m,p]),Z.CPU=tt([_]),Z.DEVICE=tt([s,f,l,E,v,T,g,L,k]),Z.ENGINE=Z.OS=tt([u,m]),typeof Qe!==a?(typeof Rt!==a&&Rt.exports&&(Qe=Rt.exports=Z),Qe.UAParser=Z):typeof define===o&&define.amd?define(function(){return Z}):typeof t!==a&&(t.UAParser=Z);var Ae=typeof t!==a&&(t.jQuery||t.Zepto);if(Ae&&!Ae.ua){var rt=new Z;Ae.ua=rt.getResult(),Ae.ua.get=function(){return rt.getUA()},Ae.ua.set=function(S){rt.setUA(S);var O=rt.getResult();for(var I in O)Ae.ua[I]=O[I]}}})(typeof window=="object"?window:Qe)});var oe=(t,e)=>{Ft(t);let r=t.querySelector("aside");r.dataset.view=e,r.classList.remove("section-ready"),setTimeout(()=>{r.classList.add("section-ready")},200)},Dr=t=>{Array.from(t.querySelectorAll(".back-button")).forEach(e=>{e.addEventListener("click",r=>{Ft(t),r.preventDefault(),r.stopPropagation();let n=r.target;oe(t,n?.dataset.back||"nav-home")})})},Vt=(t,e)=>{Ft(t);let r=t.querySelector("aside"),n=document.createElement("div");n.className="ui-toast",n.innerHTML=e,r.appendChild(n),setTimeout(()=>{n.classList.add("ui-toast-show"),setTimeout(()=>{n.classList.remove("ui-toast-show"),setTimeout(()=>{n.remove()},500)},4e3)},30)},Ft=t=>{let e=t.querySelector("aside");Array.from(e.querySelectorAll(".ui-toast")).forEach(n=>{n.classList.remove("ui-toast-show")})},it=()=>{let t=Nr();return localStorage.getItem(t)!=="true"},Ht=t=>{let e=Nr();t?localStorage.removeItem(e):localStorage.setItem(e,"true")},Nr=()=>Ti("disableEdit"),Ti=t=>\`builder.__LOCAL_APP_ID__.\${t}\`,Ur=()=>{let e=document.body.querySelector("[builder-content-id]")?.getAttribute("builder-content-id");return je(e)},je=(t,e)=>{let r="/content";t&&(r+="/"+t+"/edit");let n=new URL(r,"https://builder.io");t&&e&&n.searchParams.set("selectedBlock",e);let i=new URL(location.pathname,location.href);return n.searchParams.set("overridePreviewUrl",i.href),n.href},ot="__DEV_TOOLS_URL__",G={components:[],registryPath:"",registryDisplayPath:"",frameworks:[],dependencies:[],publicApiKey:void 0,devToolsVersion:""},le=t=>{G.components=t.components,G.registryPath=t.registryPath,G.registryDisplayPath=t.registryDisplayPath,G.dependencies=t.dependencies,G.publicApiKey=t.publicApiKey};function Mr(t){let e=null,r=document.querySelector("builder-dev-tools-menu"),n=()=>{t.hide()},i=c=>{let d=c.target;if(!d){n();return}if(d.closest("builder-dev-tools-edit"))return;let p=d.closest("[builder-content-id]"),s=d.closest("[builder-id]");if(!p||!s){t.hide();return}let u=t.show(p,s);!u||u===e||(r.highlightOpener(),e=u)};document.addEventListener("pointerover",i,{passive:!0}),document.addEventListener("pointerleave",n,{passive:!0}),document.addEventListener("pointercancel",n,{passive:!0}),document.addEventListener("visibilitychange",n,{passive:!0}),window.addEventListener("popstate",n,{passive:!0});let o=history.pushState;history.pushState=function(...c){t.hide(),o.apply(this,c)};let a=history.replaceState;history.replaceState=function(...c){t.hide(),a.apply(this,c)}}var at=class extends HTMLElement{openInBuilder=null;block=null;constructor(){super()}connectedCallback(){this.setAttribute("aria-hidden","true");let e=this.attachShadow({mode:"open"});e.innerHTML='<style>*,*:before,*:after{box-sizing:border-box}:host{--background-color: rgba(40, 40, 40, 1);--primary-color: rgba(72, 161, 255, 1);--primary-color-subdued: rgb(72, 161, 255, .6);--primary-color-highlight: rgb(126, 188, 255);--primary-contrast-color: white;--edit-color: #1d74e2;--edit-color-highlight: #1c6bd1;--edit-color-alpha: rgb(72, 161, 255, .15);--error-color: #ff2b55;--text-color: white;--text-color-highlight: white;--border-color: #454545;--button-background-color-hover: rgba(255, 255, 255, .1);--menu-width: 320px;--transition-time: .15s;--font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";font-family:var(--font-family);line-height:1.6}button{cursor:pointer;color:var(--text-color);-webkit-tap-highlight-color:transparent}input,select,button{font-family:var(--font-family)}:host{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2147483646;user-select:none;pointer-events:none;color:var(--text-color)}#content-highlight,#block{position:absolute}#content-highlight{border:3px solid var(--primary-color);background-color:var(--primary-color-alpha)}a{position:absolute;top:-33px;left:0;display:block;padding:5px 10px 8px;pointer-events:auto;z-index:100;text-decoration:none}a:hover{text-decoration:none}a span{display:block;padding:3px 6px;font-size:10px;font-weight:300;border-radius:3px;text-align:center;text-decoration:none;pointer-events:none;background-color:var(--edit-color);color:var(--text-color);white-space:nowrap}a:hover span{background-color:var(--edit-color-highlight)}a:hover~.outline{border-color:var(--edit-color-highlight)}#open-in-editor{display:none}.outline{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid var(--edit-color);background-color:var(--edit-color-alpha)}</style><div id="block"> <a id="open-in-builder" target="builder"><span>Open In Builder</span></a> <a id="open-in-editor" href="#open-in-editor"><span>Open In Editor</span></a> <div class="outline"></div> </div>',this.openInBuilder=e.getElementById("open-in-builder"),this.block=e.getElementById("block"),Mr(this)}show(e,r){if(!it())return this.hide(),null;let n=e.getAttribute("builder-content-id"),i=r.getAttribute("builder-id");if(!n||!i)return this.hide(),null;let o=this.block,a=this.openInBuilder,c=r.getBoundingClientRect();o.style.top=c.top+window.scrollY-1+"px",o.style.left=c.left+window.scrollX+"px",o.style.width=c.width+"px",o.style.height=c.height+1+"px";let d=a.getBoundingClientRect();if(d.width>c.width){let p=d.width-c.width;a.style.left=p/2*-1+"px"}else a.style.left="";return a.href=je(n,i),this.style.display="block",i}hide(){this.style.display=""}};var Br="preview-url";var Vr="_b-uid";var Fr="/~builder-connect";var Hr="/~builder-dev-tools";var qr="https://cdn.builder.io/api/v1/proxy-api?url=https://api2.amplitude.com/2/httpapi";var jr=()=>ae({type:"validateBuilder"}),De=t=>ae({type:"launchEditor",data:t}),Gr=t=>ae({type:"getRegistry",data:t}),Kr=t=>ae({type:"loadComponent",data:t}),Wr=t=>ae({type:"registerComponent",data:t}),$r=t=>ae({type:"setComponentInfo",data:t}),st=t=>ae({type:"setComponentInput",data:t}),Yr=t=>ae({type:"unregisterComponent",data:t}),zr=t=>ae({type:"enableDevTools",data:{enabled:t}}),Qr=()=>ae({type:"localConfig"}),ae=async t=>{let e=new URL(Hr,ot),r;try{r=await fetch(e,{method:"POST",body:JSON.stringify(t)})}catch(i){throw console.error(\`Devtools Fetch Error, \${e.href}\`,i),new Error("Builder Devtools Fetch Error")}if((r.headers.get("content-type")||"").includes("application/json")){let i=await r.json();if(r.ok)return i.data;if(Array.isArray(i.errors)&&i.errors.length>0)throw i.errors.forEach(o=>console.error(o)),new Error(\`Builder Devtools Fetch Error: \${i.errors[0]}\`)}throw new Error(\`Builder Devtools Fetch Error: \${r.status}, \${await r.text()}\`)};var Xr=[{value:"boolean",text:"boolean"},{value:"color",text:"color (provides a color in hex or rgb)"},{value:"date",text:"date (same format as the Date constructor)"},{value:"email",text:"email"},{value:"file",text:"file (uploads a file and provides a url)"},{value:"list",text:"list (collection of items)"},{value:"longText",text:"longText (multiline text editor)"},{value:"number",text:"number"},{value:"object",text:"object (set of specific names and values)"},{value:"richText",text:"richText (provides value as html)"},{value:"string",text:"string"}],ut=["color","date","email","file","longText","richText","string"],ct=["number"],lt=["boolean"],dt=["list"],pt=["object"];function ft(t){return ut.includes(t)?"string":ct.includes(t)?"number":lt.includes(t)?"boolean":dt.includes(t)?"array":pt.includes(t)?"object":"string"}var Io=new Set(["about","accessKey","accessKeyLabel","asChild","autoCapitalize","autoCorrect","autoFocus","autoSave","blur","contentEditable","contextMenu","dangerouslySetInnerHTML","datatype","defaultChecked","defaultValue","dir","draggable","enterKeyHint","focus","form","formAction","formEncType","formMethod","formNoValidate","formTarget","inlist","innerText","inputMode","is","isContentEditable","itemID","itemProp","itemRef","itemScope","itemType","lang","nonce","offsetHeight","offsetLeft","offsetTop","offsetWidth","outerText","prefix","property","radioGroup","rel","resource","results","rev","role","security","slot","spellCheck","suppressContentEditableWarning","suppressHydrationWarning","tabIndex","translate","typeof","unselectable","vocab"].map(t=>t.toLowerCase()));var qt=function(t,e){return qt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[i]=n[i])},qt(t,e)};function se(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");qt(t,e);function r(){this.constructor=t}t.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}var b=function(){return b=Object.assign||function(e){for(var r,n=1,i=arguments.length;n<i;n++){r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},b.apply(this,arguments)};function Ge(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(r[n[i]]=t[n[i]]);return r}function h(t,e,r,n){function i(o){return o instanceof r?o:new r(function(a){a(o)})}return new(r||(r=Promise))(function(o,a){function c(s){try{p(n.next(s))}catch(u){a(u)}}function d(s){try{p(n.throw(s))}catch(u){a(u)}}function p(s){s.done?o(s.value):i(s.value).then(c,d)}p((n=n.apply(t,e||[])).next())})}function y(t,e){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,i,o,a=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),typeof Symbol=="function"&&(a[Symbol.iterator]=function(){return this}),a;function