@builder.io/dev-tools 1.6.11 → 1.6.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/core/index.cjs CHANGED
@@ -388,7 +388,7 @@ export default Counter;
388
388
  export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
389
389
  ];`:`export const CUSTOM_COMPONENTS = [
390
390
  ];
391
- `}async function ct(e){let t=await dt(e,e.getRepoRootDir());if(t&&typeof t=="object"){let r=new Set(Object.keys({...t.dependencies,...t.devDependencies}));if(r.has("@builder.io/sdk-react"))return y.gen2;if(r.has("@builder.io/react"))return y.gen1}return null}async function jr(e){let t=await Oa(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>Rr(t),ensureFigmaImportPage:()=>Br(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ie(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ie(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ie(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ie(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ie(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ct(t),setPublicApiKey:n=>ir(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function Oa(e){let t=e.getAppRootDir(),r=e.join(t,"src"),n=await ka(e),o=await ae(e),i=e.getFrameworks().find(p=>p.name==="next"),a={asyncParams:i?.version?.major!==void 0&&i.version.major>=15},s={},u={...e,addExternalPackage:p=>{s[e.join(t,p,"index.ts")]=`export * from "${p}";`},readFileSync:p=>s[p]??e.readFileSync(p),existsSync:p=>!!s[p]||e.existsSync(p),readdirSync:p=>{let m=e.readdirSync(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},readdir:async p=>{let m=await e.readdir(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o,features:a};if(e.sdkVersion?u.sdkVersion=e.sdkVersion:u.sdkVersion=await ct(u),await e.exists(r)){u.srcDir=r,u.componentsDir=e.join(r,"components");let p=e.join(r,"app");await e.exists(p)&&(u.appDir=p);let m=e.join(r,"pages");await e.exists(m)&&(u.pagesDir=m),u.registryPath=await pe(e,r)}else u.componentsDir=e.join(t,"components"),u.registryPath=await pe(e,t);if(u.builderComponentPath=e.join(u.componentsDir,`builder.${o?"tsx":"jsx"}`),!u.appDir){let p=e.join(t,"app");await e.exists(p)&&(u.appDir=p)}if(!u.pagesDir){let p=e.join(t,"pages");await e.exists(p)&&(u.pagesDir=p)}if(!u.appDir&&!u.pagesDir)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return u}async function ka(e){let t=e.join(e.getAppRootDir(),"next.config.ts");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"next.config.mjs");if(await e.exists(r))return r;let n=e.join(e.getAppRootDir(),"next.config.js");if(await e.exists(n))return n;throw new Error(`Could not find Next.js config file. Searched for "next.config.ts", "next.config.mjs" and "next.config.js" in "${e.getAppRootDir()}".`)}async function At(e){return await Ke(e,[".env"],$r)}async function Vr(e,t){La(t);let r=await At(e),n=await Me(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function La(e){typeof process<"u"&&(process.env[$r]=e)}var $r="PUBLIC_BUILDER_API_KEY";function Kr(e,t,r){if(r.length===0)return e;let n=e.split(`
391
+ `}async function ct(e){let t=await dt(e,e.getRepoRootDir());if(t&&typeof t=="object"){let r=new Set(Object.keys({...t.dependencies,...t.devDependencies}));if(r.has("@builder.io/sdk-react"))return y.gen2;if(r.has("@builder.io/react"))return y.gen1}return null}async function jr(e){let t=await Oa(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>Rr(t),ensureFigmaImportPage:()=>Br(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ie(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ie(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ie(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ie(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ie(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ct(t),setPublicApiKey:n=>ir(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function Oa(e){let t=e.getAppRootDir(),r=e.join(t,"src"),n=await ka(e),o=await ae(e),i=e.getFrameworks().find(p=>p.name==="next"),a={asyncParams:i?.version?.major!==void 0&&i.version.major>=15},s={},u={...e,addExternalPackage:p=>{s[e.join(t,p,"index.ts")]=`export * from "${p}";`},readFileSync:p=>s[p]??e.readFileSync(p),existsSync:p=>!!s[p]||e.existsSync(p),readdirSync:p=>{let m=e.readdirSync(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},readdir:async p=>{let m=await e.readdir(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o,features:a};if(e.sdkVersion?u.sdkVersion=e.sdkVersion:u.sdkVersion=await ct(u),await e.exists(r)){u.srcDir=r,u.componentsDir=e.join(r,"components");let p=e.join(r,"app");await e.exists(p)&&(u.appDir=p);let m=e.join(r,"pages");await e.exists(m)&&(u.pagesDir=m),u.registryPath=await pe(e,r)}else u.componentsDir=e.join(t,"components"),u.registryPath=await pe(e,t);if(u.builderComponentPath=e.join(u.componentsDir,`builder.${o?"tsx":"jsx"}`),!u.appDir){let p=e.join(t,"app");await e.exists(p)&&(u.appDir=p)}if(!u.pagesDir){let p=e.join(t,"pages");await e.exists(p)&&(u.pagesDir=p)}if(!u.appDir&&!u.pagesDir&&!e.ignoreMissingConfig)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return u}async function ka(e){let t=e.join(e.getAppRootDir(),"next.config.ts");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"next.config.mjs");if(await e.exists(r))return r;let n=e.join(e.getAppRootDir(),"next.config.js");if(await e.exists(n))return n;throw new Error(`Could not find Next.js config file. Searched for "next.config.ts", "next.config.mjs" and "next.config.js" in "${e.getAppRootDir()}".`)}async function At(e){return await Ke(e,[".env"],$r)}async function Vr(e,t){La(t);let r=await At(e),n=await Me(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function La(e){typeof process<"u"&&(process.env[$r]=e)}var $r="PUBLIC_BUILDER_API_KEY";function Kr(e,t,r){if(r.length===0)return e;let n=e.split(`
392
392
  `),o=n.findIndex(s=>s.includes(r));if(o===-1||n.some(s=>s.includes(t[0])))return e;let a=["/**",...t.map(s=>` * ${s.trim()}`)," */"];return n.splice(o,0,...a),n.join(`
393
393
  `)}async function Ur(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker();return await Promise.all(n.map(async i=>{let a=e.basename(i.fileName);if(a.startsWith(".")||Va.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let u=await Vt(e,o,s,i);r.push(...u)})),r}async function zr(e,t){if(e.extname(t).toLowerCase()===".tsx"){let n=await e.readFile(t);if(n)return _a(e,t,n)}return null}function _a(e,t,r){let n=I(e,r);return Vt(e,null,t,n)}async function Vt(e,t,r,n){r=e.normalize(r);let o=[],i=ce(e,n);return await Promise.all(i.map(async a=>{let s=await ja(e,t,r,a);s&&o.push(s)})),o}async function ja(e,t,r,n){let o=e.relative(e.getAppRootDir(),r),i=V(e,r);if(e.ts.isVariableStatement(n.node))for(let a of n.node.declarationList.declarations){let s=Mr(e,a.initializer);if(s&&e.ts.isIdentifier(a.name)){let u=a.name.text;return{cmpInfo:{id:await $(e,r,u),displayFilePath:k(e,r),name:K(u),inputs:[],exportName:n.isDefaultExport?"default":u,exportType:n.isDefaultExport?"default":"named",importName:u,filePath:r,relFilePath:o,importPath:i,framework:"qwik"},node:s}}}else if(e.ts.isCallExpression(n.node)){let a=Mr(e,n.node);if(a)return{cmpInfo:{id:await $(e,r,"default"),displayFilePath:k(e,r),name:le(e,r),inputs:[],exportName:"default",exportType:"default",importName:Ye(e,r),filePath:r,relFilePath:o,importPath:i,framework:"qwik"},node:a}}return null}function Mr(e,t){if(t&&e.ts.isCallExpression(t)&&e.ts.isIdentifier(t.expression)&&t.expression.text==="component$"&&t.arguments.length>0){let r=t.arguments[0];if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r))return{callExpression:t,fnNode:r}}return null}var Va=new Set(["node_modules","layout.tsx","404.tsx","router-head.tsx"]);async function qr(e,t){let r=t.node.fnNode;if((e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r))&&r.parameters.length>0){let{sourceFile:o,typeChecker:i}=await it(e,t.cmpInfo.filePath,null);if(!(await Vt(e,i,t.cmpInfo.filePath,o)).find(u=>u.cmpInfo.id===t.cmpInfo.id))throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return Ge(e,i,r)}return[]}async function Jr(e){return dn(e)}async function dn(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,$a),t.push({filePath:e.registryPath,modifiedType:"create"})),t}var $a=`import type { RegisteredComponent } from "@builder.io/sdk-qwik";
394
394
 
@@ -572,7 +572,7 @@ export default Counter;
572
572
  export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
573
573
  ];`:`export const CUSTOM_COMPONENTS = [
574
574
  ];
575
- `}async function ro(e){let t=await is(e);return{builderPageOptions:async()=>{let n="/builder-demo",o=t.hasLocaleParam?`/en-us${n}`:void 0;return{templateContentId:"a5c9eef7909d4fc99554264a17de22c9",pathname:n,localePathname:o,title:"Builder + Remix Demo Page"}},ensureBuilderSetup:()=>eo(t),ensureFigmaImportPage:()=>to(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ne(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ne(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ne(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ne(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ne(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ne(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ft(t),setPublicApiKey:n=>Gr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function is(e){let t=await ss(e),r=e.getAppRootDir(),n=await us(e),o=e.dirname(n),i=e.join(o,"components"),a=await ae(e),s=await pe(e,o),u={},p={...e,registryPath:s,remixConfigPath:t,typescriptEnabled:a,appDir:o,componentsDir:i,routesDir:n,hasLocaleParam:await as(e,n),addExternalPackage:m=>{u[e.join(r,m,"index.ts")]=`export * from "${m}";`},readFileSync:m=>u[m]??e.readFileSync(m),existsSync:m=>!!u[m]||e.existsSync(m),readdirSync:m=>{let f=e.readdirSync(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f},readdir:async m=>{let f=await e.readdir(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f}};return e.sdkVersion?p.sdkVersion=e.sdkVersion:p.sdkVersion=await ct(p),p}async function as(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function ss(e){let t=["remix.config.ts","remix.config.js","vite.config.ts","vite.config.js"];for(let r of t){let n=e.join(e.getAppRootDir(),r);if(await e.exists(n))return n}throw new Error(`Could not find Remix config file. Searched for ${t.join(", ")} in "${e.getAppRootDir()}".`)}async function us(e){let t=await gt(e,e.getAppRootDir(),"routes");if(t)return t;throw new Error(`Could not find Remix "routes" directory in "${e.getAppRootDir()}". Please ensure this command is ran from within your Remix project's directory.`)}async function wt(e){let t=[".env"],r=e.configType==="vite"?yt:Kt;return await Ke(e,t,r)}async function oo(e,t){let r=await wt(e),n=await Me(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var yt="VITE_PUBLIC_BUILDER_KEY",Kt="YOUR_PUBLIC_BUILDER_KEY";function io(e,t){let r=`Builder.registerComponent(
575
+ `}async function ro(e){let t=await is(e);return{builderPageOptions:async()=>{let n="/builder-demo",o=t.hasLocaleParam?`/en-us${n}`:void 0;return{templateContentId:"a5c9eef7909d4fc99554264a17de22c9",pathname:n,localePathname:o,title:"Builder + Remix Demo Page"}},ensureBuilderSetup:()=>eo(t),ensureFigmaImportPage:()=>to(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ne(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ne(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ne(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ne(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ne(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ne(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ft(t),setPublicApiKey:n=>Gr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function is(e){let t=await ss(e),r=e.getAppRootDir(),n=await us(e),o=e.dirname(n),i=e.join(o,"components"),a=await ae(e),s=await pe(e,o),u={},p={...e,registryPath:s,remixConfigPath:t,typescriptEnabled:a,appDir:o,componentsDir:i,routesDir:n,hasLocaleParam:await as(e,n),addExternalPackage:m=>{u[e.join(r,m,"index.ts")]=`export * from "${m}";`},readFileSync:m=>u[m]??e.readFileSync(m),existsSync:m=>!!u[m]||e.existsSync(m),readdirSync:m=>{let f=e.readdirSync(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f},readdir:async m=>{let f=await e.readdir(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f}};return e.sdkVersion?p.sdkVersion=e.sdkVersion:p.sdkVersion=await ct(p),p}async function as(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function ss(e){let t=["remix.config.ts","remix.config.js","vite.config.ts","vite.config.js"];for(let r of t){let n=e.join(e.getAppRootDir(),r);if(await e.exists(n))return n}if(e.ignoreMissingConfig)return"";throw new Error(`Could not find Remix config file. Searched for ${t.join(", ")} in "${e.getAppRootDir()}".`)}async function us(e){let t=await gt(e,e.getAppRootDir(),"routes");if(t)return t;throw new Error(`Could not find Remix "routes" directory in "${e.getAppRootDir()}". Please ensure this command is ran from within your Remix project's directory.`)}async function wt(e){let t=[".env"],r=e.configType==="vite"?yt:Kt;return await Ke(e,t,r)}async function oo(e,t){let r=await wt(e),n=await Me(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var yt="VITE_PUBLIC_BUILDER_KEY",Kt="YOUR_PUBLIC_BUILDER_KEY";function io(e,t){let r=`Builder.registerComponent(
576
576
  `;r+=` ${t.importName},
577
577
  `,r+=` {
578
578
  name: "${t.name}",
@@ -913,7 +913,7 @@ export class Counter {
913
913
  }
914
914
  }
915
915
 
916
- `.trimStart()}async function Io(e){await Wt(e);let t=await e.readFile(e.registryPath);return t?tu(e,t):{components:[],sourceFile:I(e,"")}}async function tu(e,t){let r=I(e,t);return nu(e,r)}async function nu(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await bn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:oe(r)}}async function bn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],framework:"angular"};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let p=s.arguments[0];e.ts.isIdentifier(p)&&(a=p.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await Fe(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let p=await Co(e,u.filePath);if(p&&p.length>0)if(p.length===1)n.exportName=p[0].cmpInfo.exportName;else{let m=p.find(f=>f.cmpInfo.exportName===a);m&&(n.exportName=m.cmpInfo.exportName)}}continue}}return n=ie(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function Be(e,t,r,n,o,i,a,s){let u=await ze(e),[p,m,f]=await Promise.all([Do(e,u),Io(e),Tt(e)]),c=p.map(x=>x.cmpInfo),d=m.components,C={components:De(c,d),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Pe(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await xo(e,p,C.components),C;let l=!1,D=m.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let S=p.find(O=>O.cmpInfo.id===A);if(!S)throw new Error(`Component ${A} not found`);return S}),E=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,E);for(let A of x){let S=C.components.find(L=>L.id===A.cmpInfo.id),O=await En(e,A,P);ue(S,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=be(A.cmpInfo.id,c,d,r,n,o,i),{elements:F,elmIndex:w,statementIndex:ee,statement:de,variableDeclaration:Y}=await ou(e,D,A);if(j.addCmpToRegistry)F.push(ru(e,j.addCmpToRegistry)),l=!0;else if(j.removeCmpFromRegistry)F.splice(w,1),l=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[w],j.updateRegisteredCmp);F[w]=e.ts.factory.updateObjectLiteralExpression(L,[No(e,j.updateRegisteredCmp),...L.properties.slice(1)]),l=!0}if(l&&a){let L=[...D.statements];L[ee]=e.ts.factory.updateVariableStatement(de,de.modifiers,e.ts.factory.updateVariableDeclarationList(de.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(ye(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),S.exportType==="named"?D=v(e,D,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}):D=v(e,D,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),D=ve(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,d=j.components.filter(te=>te.isRegistered)}}}if(l&&a){D=Te(e,D),D=we(e,D);let x=_(e,D);x=me(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function No(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function ru(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([No(e,t)],!0),t)}async function ou(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await bn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Ro(e){let t=await iu(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>To(t),ensureFigmaImportPage:()=>bo(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>Be(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await Be(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>Be(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>Be(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>Be(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>Be(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Tt(t),setPublicApiKey:o=>fo(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Ee(t),setCache:o=>Se(t,o)}}async function iu(e){let t=await au(e),r=e.getAppRootDir(),n=e.join(r,"src"),o=await ae(e),i=e.join(n,"app"),a=await pe(e,i),s={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:a,angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getAppRootDir()}".`);s.srcDir=n,s.appDir=i,s.componentsDir=e.join(s.appDir,"components"),s.builderPageComponentPath=e.join(s.componentsDir,`builder-page.component.${o?"ts":"js"}`);let u=`app.module.${o?"ts":"js"}`,p=e.join(s.appDir,u);return await e.exists(p)&&(s.hasAppModule=!0),s}async function au(e){let t=e.join(e.getAppRootDir(),"angular.json");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"project.json");if(await e.exists(r))return r;throw new Error(`Could not find Angular config file. Searched for angular.json & project.json in "${e.getAppRootDir()}".`)}var Xt=Yn(qo(),1);async function Jo(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:ge(e.relative(e.getAppRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:se(i.inputs)};return se(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,Xt.compress)(n);return btoa(JSON.stringify(o))}async function Qo(e,t,r){if(typeof r!="string")throw new Error("Invalid registry to import");let n=await t.getRegistry(),o=JSON.parse(atob(r)),i=(0,Xt.decompress)(o),a=se(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let u=ge(e.normalize(s.filePath)),p=n.components.find(f=>ge(f.filePath).endsWith(u)&&f.exportName===s.exportName);if(!p){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${p.id})`,p.filePath),await t.registerComponent({cmpId:p.id});for(let f of s.inputs)e.debug(`set input (${p.id})`),await t.setRegisteredComponentInput({cmpId:p.id,name:f.name,type:f.type,required:f.required,defaultValue:f.defaultValue,friendlyName:f.friendlyName,helperText:f.helperText});e.debug(`set input (${p.id}) info`);let m=await t.setRegisteredComponentInfo({cmpId:p.id,name:s.name,image:s.image,description:s.description});a=se(m)}return a}var xe={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Pd={[xe.react]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.remix]:[{version:y.gen1,recommended:!1},{version:y.gen2,recommended:!0}],[xe.angular]:[{version:y.gen2,recommended:!0}],[xe.next]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.qwik]:[{version:y.gen2,recommended:!0}]};async function Wo(e,t){let r=[],n=new Set;async function o(i){let a=e.join(i,"package.json");try{if(!await e.exists(a))return null;let u=await e.readFile(a);if(u===null)throw new Error(`Failed to read package.json at ${a}`);let p=JSON.parse(u);if(n.has(p.name))return null;n.add(p.name);let m={name:p.name,subPackages:[]},f=await e.readdir(i);for(let c of f)c!=="node_modules"&&(await e.stat(e.join(i,c))).isDirectory()&&m.subPackages.push(c);return r.push(m),m}catch(s){return e.Sentry?.captureException(s,{level:"warning"}),null}}try{let i=e.join(t,"package.json");if(await e.exists(i)){let s=await e.readFile(i);if(s!==null){let u=JSON.parse(s),p={...u.dependencies,...u.devDependencies};for(let m of Object.keys(p)){let f=e.join(t,"node_modules",m);await o(f)}if(u.workspaces)for(let m of u.workspaces){let f=await e.readdir(e.join(t,m));for(let c of f){let d=e.join(t,m,c);await o(d)}}}}}catch(i){e.Sentry?.captureException(i,{level:"warning"})}return r}var Iu={"@builder.io/qwik-city":Yr,next:jr,"@remix-run/react":ro,react:mo,"@angular/core":Ro},Nu={"@builder.io/qwik-city":xe.qwik,next:xe.next,"@remix-run/react":xe.remix,react:xe.react,"@angular/core":xe.angular};async function Yo(e){if(!e.ts)throw new Error("createDevTools() requires a TypeScript instance passed to the 'ts' option");if((!e.frameworks||e.frameworks.length===0)&&(e.frameworks=await $e(e)),e.frameworks.length===0)throw new Error("Supported Devtools framework for not found");for(let t of e.frameworks){let r=Iu[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>Jo(e,n),importRegistry:i=>Qo(e,n,i),framework:Nu[t.name],findAllDependencies:async()=>await Wo(e,e.getRepoRootDir())}}}throw new Error(`Devtools framework not found for ${e.getAppRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Go(e){function t(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function r(f,c){let d="",C=0,l=-1,D=0,g;for(let x=0;x<=f.length;++x){if(x<f.length)g=f.charCodeAt(x);else{if(g===47)break;g=47}if(g===47){if(!(l===x-1||D===1))if(l!==x-1&&D===2){if(d.length<2||C!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){let E=d.lastIndexOf("/");if(E!==d.length-1){E===-1?(d="",C=0):(d=d.slice(0,E),C=d.length-1-d.lastIndexOf("/")),l=x,D=0;continue}}else if(d.length===2||d.length===1){d="",C=0,l=x,D=0;continue}}c&&(d.length>0?d+="/..":d="..",C=2)}else d.length>0?d+="/"+f.slice(l+1,x):d=f.slice(l+1,x),C=x-l-1;l=x,D=0}else g===46&&D!==-1?++D:D=-1}return d}let n=function(...c){let d="",C=!1;for(let l=c.length-1;l>=-1&&!C;l--){let D;l>=0?D=c[l]:e.cwd?D=e.cwd():D="/",t(D),D.length!==0&&(d=D+"/"+d,C=D.charCodeAt(0)===47)}return d=r(d,!C),C?d.length>0?"/"+d:"/":d.length>0?d:"."},o=function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0)===47,C=c.charCodeAt(c.length-1)===47;return c=r(c,!d),c.length===0&&!d&&(c="."),c.length>0&&C&&(c+="/"),d?"/"+c:c};return{relative:function(c,d){if(t(c),t(d),c===d||(c=n(c),d=n(d),c===d))return"";let C=1;for(;C<c.length&&c.charCodeAt(C)===47;++C);let l=c.length,D=l-C,g=1;for(;g<d.length&&d.charCodeAt(g)===47;++g);let E=d.length-g,P=D<E?D:E,A=-1,S=0;for(;S<=P;++S){if(S===P){if(E>P){if(d.charCodeAt(g+S)===47)return d.slice(g+S+1);if(S===0)return d.slice(g+S)}else D>P&&(c.charCodeAt(C+S)===47?A=S:S===0&&(A=0));break}let z=c.charCodeAt(C+S),j=d.charCodeAt(g+S);if(z!==j)break;z===47&&(A=S)}let O="";for(S=C+A+1;S<=l;++S)(S===l||c.charCodeAt(S)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+d.slice(g+A):(g+=A,d.charCodeAt(g)===47&&++g,d.slice(g))},resolve:n,join:function(...c){if(c.length===0)return".";let d;for(let C=0;C<c.length;++C){let l=c[C];t(l),l.length>0&&(d===void 0?d=l:d+="/"+l)}return d===void 0?".":o(d)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');t(c);let C=0,l=-1,D=!0,g;if(d!==void 0&&d.length>0&&d.length<=c.length){if(d.length===c.length&&d===c)return"";let x=d.length-1,E=-1;for(g=c.length-1;g>=0;--g){let P=c.charCodeAt(g);if(P===47){if(!D){C=g+1;break}}else E===-1&&(D=!1,E=g+1),x>=0&&(P===d.charCodeAt(x)?--x===-1&&(l=g):(x=-1,l=E))}return C===l?l=E:l===-1&&(l=c.length),c.slice(C,l)}else{for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!D){C=g+1;break}}else l===-1&&(D=!1,l=g+1);return l===-1?"":c.slice(C,l)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0),C=d===47,l=-1,D=!0;for(let g=c.length-1;g>=1;--g)if(d=c.charCodeAt(g),d===47){if(!D){l=g;break}}else D=!1;return l===-1?C?"/":".":C&&l===1?"//":c.slice(0,l)},extname:function(c){t(c);let d=-1,C=0,l=-1,D=!0,g=0;for(let x=c.length-1;x>=0;--x){let E=c.charCodeAt(x);if(E===47){if(!D){C=x+1;break}continue}l===-1&&(D=!1,l=x+1),E===46?d===-1?d=x:g!==1&&(g=1):d!==-1&&(g=-1)}return d===-1||l===-1||g===0||g===1&&d===l-1&&d===C+1?"":c.slice(d,l)}}}async function Ho(e){let t=e.getRepoRootDir?e.getRepoRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Go({cwd:r,...e}),o=new Map,i=l=>n.normalize(n.resolve(r(),l)),a=l=>{for(let[D]of o)if((D+"/").startsWith(l))return!0;return l===t()},s=l=>(l=i(l),o.has(l)?!0:a(l)),u=l=>{l=i(l);let D=l===t()?l:l+"/",g=D.split("/").length-1,x=[];for(let[E]of o)if(E.split("/").slice(0,g).join("/")+"/"===D){let S=E.split("/")[g];S&&!x.includes(S)&&x.push(S)}return x.sort()},p=l=>{l=i(l);let D=o.get(l);return typeof D=="string"?D:null},m=l=>(l=i(l),{isFile:()=>o.has(l),isDirectory:()=>!o.has(l)&&a(l)}),f=async l=>{if(typeof crypto<"u"){let x=new TextEncoder().encode(l),E=await crypto.subtle.digest("SHA-256",x);return Array.from(new Uint8Array(E)).map(P=>P.toString(16).padStart(2,"0")).join("")}let D=0;for(let g=0;g<l.length;g++){let x=l.charCodeAt(g);D=(D<<5)-D+x,D|=0}return Number(Math.abs(D)).toString(36)},c=new Set,d={getRepoRootDir:t,getAppRootDir:t,getCwdDir:r,cwd:r,exists:async l=>s(l),existsSync:s,readdir:async l=>u(l),readdirSync:u,readFile:async l=>p(l),readdirRecursive:async(l,D)=>u(l)??[],readFileSync:p,stat:async l=>m(l),statSync:m,writeFile:async(l,D)=>{l=i(l),o.set(l,D);let g={path:l,basename:n.basename(l),dirname:n.dirname(l),extname:n.extname(l)};for(let x of c)await x(g)},unlink:async l=>{l=i(l),o.delete(l)},unlinkSync:l=>{l=i(l),o.delete(l)},hash:f,getDeviceId:async()=>typeof navigator<"u"?f(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(l,D)=>D,on:(l,D)=>{l==="change"&&c.add(D)},off:(l,D)=>{l==="change"&&c.delete(D)},debug:(...l)=>{console.debug("[builder-dev-tools]",...l)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null,magicast:void 0,spawnSync:void 0,Sentry:void 0},C=await $e(d);return d.getFrameworks=e.getFrameworks?e.getFrameworks:()=>C,d}async function Xo(e,t,r){try{let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(await rr(e))return console.warn("Turbopack does not support the Builder.io devtools cli. Please disable Turbopack or manually integrate Builder.io into your Next.js project."),o;if(Zo(e,n))return o;let s=ce(e,n,"cjs"),u=ce(e,n);if(s.length!==1&&u.length!==1)throw new Error("Expected an export from file");if(u.length===1){let f=u[0];if(!f.isDefaultExport)throw new Error("Expected a default export from file");let c=f.statement;if(!e.ts.isVariableStatement(c))throw new Error(`Unexpected export type in ${t}
916
+ `.trimStart()}async function Io(e){await Wt(e);let t=await e.readFile(e.registryPath);return t?tu(e,t):{components:[],sourceFile:I(e,"")}}async function tu(e,t){let r=I(e,t);return nu(e,r)}async function nu(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await bn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:oe(r)}}async function bn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],framework:"angular"};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let p=s.arguments[0];e.ts.isIdentifier(p)&&(a=p.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await Fe(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let p=await Co(e,u.filePath);if(p&&p.length>0)if(p.length===1)n.exportName=p[0].cmpInfo.exportName;else{let m=p.find(f=>f.cmpInfo.exportName===a);m&&(n.exportName=m.cmpInfo.exportName)}}continue}}return n=ie(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function Be(e,t,r,n,o,i,a,s){let u=await ze(e),[p,m,f]=await Promise.all([Do(e,u),Io(e),Tt(e)]),c=p.map(x=>x.cmpInfo),d=m.components,C={components:De(c,d),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Pe(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await xo(e,p,C.components),C;let l=!1,D=m.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let S=p.find(O=>O.cmpInfo.id===A);if(!S)throw new Error(`Component ${A} not found`);return S}),E=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,E);for(let A of x){let S=C.components.find(L=>L.id===A.cmpInfo.id),O=await En(e,A,P);ue(S,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=be(A.cmpInfo.id,c,d,r,n,o,i),{elements:F,elmIndex:w,statementIndex:ee,statement:de,variableDeclaration:Y}=await ou(e,D,A);if(j.addCmpToRegistry)F.push(ru(e,j.addCmpToRegistry)),l=!0;else if(j.removeCmpFromRegistry)F.splice(w,1),l=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[w],j.updateRegisteredCmp);F[w]=e.ts.factory.updateObjectLiteralExpression(L,[No(e,j.updateRegisteredCmp),...L.properties.slice(1)]),l=!0}if(l&&a){let L=[...D.statements];L[ee]=e.ts.factory.updateVariableStatement(de,de.modifiers,e.ts.factory.updateVariableDeclarationList(de.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(ye(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),S.exportType==="named"?D=v(e,D,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}):D=v(e,D,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),D=ve(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,d=j.components.filter(te=>te.isRegistered)}}}if(l&&a){D=Te(e,D),D=we(e,D);let x=_(e,D);x=me(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function No(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function ru(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([No(e,t)],!0),t)}async function ou(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await bn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Ro(e){let t=await iu(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>To(t),ensureFigmaImportPage:()=>bo(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>Be(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await Be(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>Be(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>Be(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>Be(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>Be(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Tt(t),setPublicApiKey:o=>fo(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Ee(t),setCache:o=>Se(t,o)}}async function iu(e){let t=await au(e),r=e.getAppRootDir(),n=e.join(r,"src"),o=await ae(e),i=e.join(n,"app"),a=await pe(e,i),s={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:a,angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getAppRootDir()}".`);s.srcDir=n,s.appDir=i,s.componentsDir=e.join(s.appDir,"components"),s.builderPageComponentPath=e.join(s.componentsDir,`builder-page.component.${o?"ts":"js"}`);let u=`app.module.${o?"ts":"js"}`,p=e.join(s.appDir,u);return await e.exists(p)&&(s.hasAppModule=!0),s}async function au(e){let t=e.join(e.getAppRootDir(),"angular.json");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"project.json");if(await e.exists(r))return r;if(e.ignoreMissingConfig)return"";throw new Error(`Could not find Angular config file. Searched for angular.json & project.json in "${e.getAppRootDir()}".`)}var Xt=Yn(qo(),1);async function Jo(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:ge(e.relative(e.getAppRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:se(i.inputs)};return se(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,Xt.compress)(n);return btoa(JSON.stringify(o))}async function Qo(e,t,r){if(typeof r!="string")throw new Error("Invalid registry to import");let n=await t.getRegistry(),o=JSON.parse(atob(r)),i=(0,Xt.decompress)(o),a=se(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let u=ge(e.normalize(s.filePath)),p=n.components.find(f=>ge(f.filePath).endsWith(u)&&f.exportName===s.exportName);if(!p){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${p.id})`,p.filePath),await t.registerComponent({cmpId:p.id});for(let f of s.inputs)e.debug(`set input (${p.id})`),await t.setRegisteredComponentInput({cmpId:p.id,name:f.name,type:f.type,required:f.required,defaultValue:f.defaultValue,friendlyName:f.friendlyName,helperText:f.helperText});e.debug(`set input (${p.id}) info`);let m=await t.setRegisteredComponentInfo({cmpId:p.id,name:s.name,image:s.image,description:s.description});a=se(m)}return a}var xe={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Pd={[xe.react]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.remix]:[{version:y.gen1,recommended:!1},{version:y.gen2,recommended:!0}],[xe.angular]:[{version:y.gen2,recommended:!0}],[xe.next]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.qwik]:[{version:y.gen2,recommended:!0}]};async function Wo(e,t){let r=[],n=new Set;async function o(i){let a=e.join(i,"package.json");try{if(!await e.exists(a))return null;let u=await e.readFile(a);if(u===null)throw new Error(`Failed to read package.json at ${a}`);let p=JSON.parse(u);if(n.has(p.name))return null;n.add(p.name);let m={name:p.name,subPackages:[]},f=await e.readdir(i);for(let c of f)c!=="node_modules"&&(await e.stat(e.join(i,c))).isDirectory()&&m.subPackages.push(c);return r.push(m),m}catch(s){return e.Sentry?.captureException(s,{level:"warning"}),null}}try{let i=e.join(t,"package.json");if(await e.exists(i)){let s=await e.readFile(i);if(s!==null){let u=JSON.parse(s),p={...u.dependencies,...u.devDependencies};for(let m of Object.keys(p)){let f=e.join(t,"node_modules",m);await o(f)}if(u.workspaces)for(let m of u.workspaces){let f=await e.readdir(e.join(t,m));for(let c of f){let d=e.join(t,m,c);await o(d)}}}}}catch(i){e.Sentry?.captureException(i,{level:"warning"})}return r}var Iu={"@builder.io/qwik-city":Yr,next:jr,"@remix-run/react":ro,react:mo,"@angular/core":Ro},Nu={"@builder.io/qwik-city":xe.qwik,next:xe.next,"@remix-run/react":xe.remix,react:xe.react,"@angular/core":xe.angular};async function Yo(e){if(!e.ts)throw new Error("createDevTools() requires a TypeScript instance passed to the 'ts' option");if((!e.frameworks||e.frameworks.length===0)&&(e.frameworks=await $e(e)),e.frameworks.length===0)throw new Error("Supported Devtools framework for not found");for(let t of e.frameworks){let r=Iu[t.name];if(r)try{let n=await r(e);return{...n,exportRegistry:()=>Jo(e,n),importRegistry:i=>Qo(e,n,i),framework:Nu[t.name],findAllDependencies:async()=>await Wo(e,e.getRepoRootDir())}}catch(n){e.Sentry?.captureException(n,{level:"warning"})}}throw new Error(`Devtools framework not found for ${e.getAppRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Go(e){function t(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function r(f,c){let d="",C=0,l=-1,D=0,g;for(let x=0;x<=f.length;++x){if(x<f.length)g=f.charCodeAt(x);else{if(g===47)break;g=47}if(g===47){if(!(l===x-1||D===1))if(l!==x-1&&D===2){if(d.length<2||C!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){let E=d.lastIndexOf("/");if(E!==d.length-1){E===-1?(d="",C=0):(d=d.slice(0,E),C=d.length-1-d.lastIndexOf("/")),l=x,D=0;continue}}else if(d.length===2||d.length===1){d="",C=0,l=x,D=0;continue}}c&&(d.length>0?d+="/..":d="..",C=2)}else d.length>0?d+="/"+f.slice(l+1,x):d=f.slice(l+1,x),C=x-l-1;l=x,D=0}else g===46&&D!==-1?++D:D=-1}return d}let n=function(...c){let d="",C=!1;for(let l=c.length-1;l>=-1&&!C;l--){let D;l>=0?D=c[l]:e.cwd?D=e.cwd():D="/",t(D),D.length!==0&&(d=D+"/"+d,C=D.charCodeAt(0)===47)}return d=r(d,!C),C?d.length>0?"/"+d:"/":d.length>0?d:"."},o=function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0)===47,C=c.charCodeAt(c.length-1)===47;return c=r(c,!d),c.length===0&&!d&&(c="."),c.length>0&&C&&(c+="/"),d?"/"+c:c};return{relative:function(c,d){if(t(c),t(d),c===d||(c=n(c),d=n(d),c===d))return"";let C=1;for(;C<c.length&&c.charCodeAt(C)===47;++C);let l=c.length,D=l-C,g=1;for(;g<d.length&&d.charCodeAt(g)===47;++g);let E=d.length-g,P=D<E?D:E,A=-1,S=0;for(;S<=P;++S){if(S===P){if(E>P){if(d.charCodeAt(g+S)===47)return d.slice(g+S+1);if(S===0)return d.slice(g+S)}else D>P&&(c.charCodeAt(C+S)===47?A=S:S===0&&(A=0));break}let z=c.charCodeAt(C+S),j=d.charCodeAt(g+S);if(z!==j)break;z===47&&(A=S)}let O="";for(S=C+A+1;S<=l;++S)(S===l||c.charCodeAt(S)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+d.slice(g+A):(g+=A,d.charCodeAt(g)===47&&++g,d.slice(g))},resolve:n,join:function(...c){if(c.length===0)return".";let d;for(let C=0;C<c.length;++C){let l=c[C];t(l),l.length>0&&(d===void 0?d=l:d+="/"+l)}return d===void 0?".":o(d)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');t(c);let C=0,l=-1,D=!0,g;if(d!==void 0&&d.length>0&&d.length<=c.length){if(d.length===c.length&&d===c)return"";let x=d.length-1,E=-1;for(g=c.length-1;g>=0;--g){let P=c.charCodeAt(g);if(P===47){if(!D){C=g+1;break}}else E===-1&&(D=!1,E=g+1),x>=0&&(P===d.charCodeAt(x)?--x===-1&&(l=g):(x=-1,l=E))}return C===l?l=E:l===-1&&(l=c.length),c.slice(C,l)}else{for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!D){C=g+1;break}}else l===-1&&(D=!1,l=g+1);return l===-1?"":c.slice(C,l)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0),C=d===47,l=-1,D=!0;for(let g=c.length-1;g>=1;--g)if(d=c.charCodeAt(g),d===47){if(!D){l=g;break}}else D=!1;return l===-1?C?"/":".":C&&l===1?"//":c.slice(0,l)},extname:function(c){t(c);let d=-1,C=0,l=-1,D=!0,g=0;for(let x=c.length-1;x>=0;--x){let E=c.charCodeAt(x);if(E===47){if(!D){C=x+1;break}continue}l===-1&&(D=!1,l=x+1),E===46?d===-1?d=x:g!==1&&(g=1):d!==-1&&(g=-1)}return d===-1||l===-1||g===0||g===1&&d===l-1&&d===C+1?"":c.slice(d,l)}}}async function Ho(e){let t=e.getRepoRootDir?e.getRepoRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Go({cwd:r,...e}),o=new Map,i=l=>n.normalize(n.resolve(r(),l)),a=l=>{for(let[D]of o)if((D+"/").startsWith(l))return!0;return l===t()},s=l=>(l=i(l),o.has(l)?!0:a(l)),u=l=>{l=i(l);let D=l===t()?l:l+"/",g=D.split("/").length-1,x=[];for(let[E]of o)if(E.split("/").slice(0,g).join("/")+"/"===D){let S=E.split("/")[g];S&&!x.includes(S)&&x.push(S)}return x.sort()},p=l=>{l=i(l);let D=o.get(l);return typeof D=="string"?D:null},m=l=>(l=i(l),{isFile:()=>o.has(l),isDirectory:()=>!o.has(l)&&a(l)}),f=async l=>{if(typeof crypto<"u"){let x=new TextEncoder().encode(l),E=await crypto.subtle.digest("SHA-256",x);return Array.from(new Uint8Array(E)).map(P=>P.toString(16).padStart(2,"0")).join("")}let D=0;for(let g=0;g<l.length;g++){let x=l.charCodeAt(g);D=(D<<5)-D+x,D|=0}return Number(Math.abs(D)).toString(36)},c=new Set,d={getRepoRootDir:t,getAppRootDir:t,getCwdDir:r,cwd:r,exists:async l=>s(l),existsSync:s,readdir:async l=>u(l),readdirSync:u,readFile:async l=>p(l),readdirRecursive:async(l,D)=>u(l)??[],readFileSync:p,stat:async l=>m(l),statSync:m,writeFile:async(l,D)=>{l=i(l),o.set(l,D);let g={path:l,basename:n.basename(l),dirname:n.dirname(l),extname:n.extname(l)};for(let x of c)await x(g)},unlink:async l=>{l=i(l),o.delete(l)},unlinkSync:l=>{l=i(l),o.delete(l)},hash:f,getDeviceId:async()=>typeof navigator<"u"?f(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(l,D)=>D,on:(l,D)=>{l==="change"&&c.add(D)},off:(l,D)=>{l==="change"&&c.delete(D)},debug:(...l)=>{console.debug("[builder-dev-tools]",...l)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null,magicast:void 0,spawnSync:void 0,Sentry:void 0},C=await $e(d);return d.getFrameworks=e.getFrameworks?e.getFrameworks:()=>C,d}async function Xo(e,t,r){try{let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(await rr(e))return console.warn("Turbopack does not support the Builder.io devtools cli. Please disable Turbopack or manually integrate Builder.io into your Next.js project."),o;if(Zo(e,n))return o;let s=ce(e,n,"cjs"),u=ce(e,n);if(s.length!==1&&u.length!==1)throw new Error("Expected an export from file");if(u.length===1){let f=u[0];if(!f.isDefaultExport)throw new Error("Expected a default export from file");let c=f.statement;if(!e.ts.isVariableStatement(c))throw new Error(`Unexpected export type in ${t}
917
917
  Found config content:
918
918
  ${r}
919
919
 
@@ -974,4 +974,4 @@ module.exports = nextConfig
974
974
  `,n+=` }
975
975
  `,n+=` }
976
976
  `,n+=`})();
977
- `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Rt="1.6.11";
977
+ `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Rt="1.6.12";
package/core/index.mjs CHANGED
@@ -389,7 +389,7 @@ export default Counter;
389
389
  export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
390
390
  ];`:`export const CUSTOM_COMPONENTS = [
391
391
  ];
392
- `}async function ct(e){let t=await dt(e,e.getRepoRootDir());if(t&&typeof t=="object"){let r=new Set(Object.keys({...t.dependencies,...t.devDependencies}));if(r.has("@builder.io/sdk-react"))return y.gen2;if(r.has("@builder.io/react"))return y.gen1}return null}async function Lr(e){let t=await ba(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>Ir(t),ensureFigmaImportPage:()=>Nr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ie(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ie(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ie(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ie(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ie(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ct(t),setPublicApiKey:n=>rr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function ba(e){let t=e.getAppRootDir(),r=e.join(t,"src"),n=await va(e),o=await ae(e),i=e.getFrameworks().find(p=>p.name==="next"),a={asyncParams:i?.version?.major!==void 0&&i.version.major>=15},s={},u={...e,addExternalPackage:p=>{s[e.join(t,p,"index.ts")]=`export * from "${p}";`},readFileSync:p=>s[p]??e.readFileSync(p),existsSync:p=>!!s[p]||e.existsSync(p),readdirSync:p=>{let m=e.readdirSync(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},readdir:async p=>{let m=await e.readdir(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o,features:a};if(e.sdkVersion?u.sdkVersion=e.sdkVersion:u.sdkVersion=await ct(u),await e.exists(r)){u.srcDir=r,u.componentsDir=e.join(r,"components");let p=e.join(r,"app");await e.exists(p)&&(u.appDir=p);let m=e.join(r,"pages");await e.exists(m)&&(u.pagesDir=m),u.registryPath=await pe(e,r)}else u.componentsDir=e.join(t,"components"),u.registryPath=await pe(e,t);if(u.builderComponentPath=e.join(u.componentsDir,`builder.${o?"tsx":"jsx"}`),!u.appDir){let p=e.join(t,"app");await e.exists(p)&&(u.appDir=p)}if(!u.pagesDir){let p=e.join(t,"pages");await e.exists(p)&&(u.pagesDir=p)}if(!u.appDir&&!u.pagesDir)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return u}async function va(e){let t=e.join(e.getAppRootDir(),"next.config.ts");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"next.config.mjs");if(await e.exists(r))return r;let n=e.join(e.getAppRootDir(),"next.config.js");if(await e.exists(n))return n;throw new Error(`Could not find Next.js config file. Searched for "next.config.ts", "next.config.mjs" and "next.config.js" in "${e.getAppRootDir()}".`)}async function At(e){return await $e(e,[".env"],jr)}async function _r(e,t){Ia(t);let r=await At(e),n=await Ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function Ia(e){typeof process<"u"&&(process.env[jr]=e)}var jr="PUBLIC_BUILDER_API_KEY";function Vr(e,t,r){if(r.length===0)return e;let n=e.split(`
392
+ `}async function ct(e){let t=await dt(e,e.getRepoRootDir());if(t&&typeof t=="object"){let r=new Set(Object.keys({...t.dependencies,...t.devDependencies}));if(r.has("@builder.io/sdk-react"))return y.gen2;if(r.has("@builder.io/react"))return y.gen1}return null}async function Lr(e){let t=await ba(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>Ir(t),ensureFigmaImportPage:()=>Nr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ie(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ie(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ie(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ie(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ie(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ct(t),setPublicApiKey:n=>rr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function ba(e){let t=e.getAppRootDir(),r=e.join(t,"src"),n=await va(e),o=await ae(e),i=e.getFrameworks().find(p=>p.name==="next"),a={asyncParams:i?.version?.major!==void 0&&i.version.major>=15},s={},u={...e,addExternalPackage:p=>{s[e.join(t,p,"index.ts")]=`export * from "${p}";`},readFileSync:p=>s[p]??e.readFileSync(p),existsSync:p=>!!s[p]||e.existsSync(p),readdirSync:p=>{let m=e.readdirSync(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},readdir:async p=>{let m=await e.readdir(p);return p===t?[...m,...Object.keys(s).map(f=>f.slice(t.length+1))]:m},appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o,features:a};if(e.sdkVersion?u.sdkVersion=e.sdkVersion:u.sdkVersion=await ct(u),await e.exists(r)){u.srcDir=r,u.componentsDir=e.join(r,"components");let p=e.join(r,"app");await e.exists(p)&&(u.appDir=p);let m=e.join(r,"pages");await e.exists(m)&&(u.pagesDir=m),u.registryPath=await pe(e,r)}else u.componentsDir=e.join(t,"components"),u.registryPath=await pe(e,t);if(u.builderComponentPath=e.join(u.componentsDir,`builder.${o?"tsx":"jsx"}`),!u.appDir){let p=e.join(t,"app");await e.exists(p)&&(u.appDir=p)}if(!u.pagesDir){let p=e.join(t,"pages");await e.exists(p)&&(u.pagesDir=p)}if(!u.appDir&&!u.pagesDir&&!e.ignoreMissingConfig)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return u}async function va(e){let t=e.join(e.getAppRootDir(),"next.config.ts");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"next.config.mjs");if(await e.exists(r))return r;let n=e.join(e.getAppRootDir(),"next.config.js");if(await e.exists(n))return n;throw new Error(`Could not find Next.js config file. Searched for "next.config.ts", "next.config.mjs" and "next.config.js" in "${e.getAppRootDir()}".`)}async function At(e){return await $e(e,[".env"],jr)}async function _r(e,t){Ia(t);let r=await At(e),n=await Ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function Ia(e){typeof process<"u"&&(process.env[jr]=e)}var jr="PUBLIC_BUILDER_API_KEY";function Vr(e,t,r){if(r.length===0)return e;let n=e.split(`
393
393
  `),o=n.findIndex(s=>s.includes(r));if(o===-1||n.some(s=>s.includes(t[0])))return e;let a=["/**",...t.map(s=>` * ${s.trim()}`)," */"];return n.splice(o,0,...a),n.join(`
394
394
  `)}async function Kr(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker();return await Promise.all(n.map(async i=>{let a=e.basename(i.fileName);if(a.startsWith(".")||Ba.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let u=await _t(e,o,s,i);r.push(...u)})),r}async function Mr(e,t){if(e.extname(t).toLowerCase()===".tsx"){let n=await e.readFile(t);if(n)return Na(e,t,n)}return null}function Na(e,t,r){let n=I(e,r);return _t(e,null,t,n)}async function _t(e,t,r,n){r=e.normalize(r);let o=[],i=ce(e,n);return await Promise.all(i.map(async a=>{let s=await Ra(e,t,r,a);s&&o.push(s)})),o}async function Ra(e,t,r,n){let o=e.relative(e.getAppRootDir(),r),i=V(e,r);if(e.ts.isVariableStatement(n.node))for(let a of n.node.declarationList.declarations){let s=$r(e,a.initializer);if(s&&e.ts.isIdentifier(a.name)){let u=a.name.text;return{cmpInfo:{id:await $(e,r,u),displayFilePath:k(e,r),name:K(u),inputs:[],exportName:n.isDefaultExport?"default":u,exportType:n.isDefaultExport?"default":"named",importName:u,filePath:r,relFilePath:o,importPath:i,framework:"qwik"},node:s}}}else if(e.ts.isCallExpression(n.node)){let a=$r(e,n.node);if(a)return{cmpInfo:{id:await $(e,r,"default"),displayFilePath:k(e,r),name:le(e,r),inputs:[],exportName:"default",exportType:"default",importName:We(e,r),filePath:r,relFilePath:o,importPath:i,framework:"qwik"},node:a}}return null}function $r(e,t){if(t&&e.ts.isCallExpression(t)&&e.ts.isIdentifier(t.expression)&&t.expression.text==="component$"&&t.arguments.length>0){let r=t.arguments[0];if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r))return{callExpression:t,fnNode:r}}return null}var Ba=new Set(["node_modules","layout.tsx","404.tsx","router-head.tsx"]);async function Ur(e,t){let r=t.node.fnNode;if((e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r))&&r.parameters.length>0){let{sourceFile:o,typeChecker:i}=await it(e,t.cmpInfo.filePath,null);if(!(await _t(e,i,t.cmpInfo.filePath,o)).find(u=>u.cmpInfo.id===t.cmpInfo.id))throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return Ge(e,i,r)}return[]}async function zr(e){return cn(e)}async function cn(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,Oa),t.push({filePath:e.registryPath,modifiedType:"create"})),t}var Oa=`import type { RegisteredComponent } from "@builder.io/sdk-qwik";
395
395
 
@@ -573,7 +573,7 @@ export default Counter;
573
573
  export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
574
574
  ];`:`export const CUSTOM_COMPONENTS = [
575
575
  ];
576
- `}async function to(e){let t=await Za(e);return{builderPageOptions:async()=>{let n="/builder-demo",o=t.hasLocaleParam?`/en-us${n}`:void 0;return{templateContentId:"a5c9eef7909d4fc99554264a17de22c9",pathname:n,localePathname:o,title:"Builder + Remix Demo Page"}},ensureBuilderSetup:()=>Xr(t),ensureFigmaImportPage:()=>Zr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ne(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ne(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ne(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ne(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ne(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ne(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ft(t),setPublicApiKey:n=>Wr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function Za(e){let t=await ts(e),r=e.getAppRootDir(),n=await ns(e),o=e.dirname(n),i=e.join(o,"components"),a=await ae(e),s=await pe(e,o),u={},p={...e,registryPath:s,remixConfigPath:t,typescriptEnabled:a,appDir:o,componentsDir:i,routesDir:n,hasLocaleParam:await es(e,n),addExternalPackage:m=>{u[e.join(r,m,"index.ts")]=`export * from "${m}";`},readFileSync:m=>u[m]??e.readFileSync(m),existsSync:m=>!!u[m]||e.existsSync(m),readdirSync:m=>{let f=e.readdirSync(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f},readdir:async m=>{let f=await e.readdir(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f}};return e.sdkVersion?p.sdkVersion=e.sdkVersion:p.sdkVersion=await ct(p),p}async function es(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function ts(e){let t=["remix.config.ts","remix.config.js","vite.config.ts","vite.config.js"];for(let r of t){let n=e.join(e.getAppRootDir(),r);if(await e.exists(n))return n}throw new Error(`Could not find Remix config file. Searched for ${t.join(", ")} in "${e.getAppRootDir()}".`)}async function ns(e){let t=await gt(e,e.getAppRootDir(),"routes");if(t)return t;throw new Error(`Could not find Remix "routes" directory in "${e.getAppRootDir()}". Please ensure this command is ran from within your Remix project's directory.`)}async function wt(e){let t=[".env"],r=e.configType==="vite"?yt:Vt;return await $e(e,t,r)}async function no(e,t){let r=await wt(e),n=await Ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var yt="VITE_PUBLIC_BUILDER_KEY",Vt="YOUR_PUBLIC_BUILDER_KEY";function ro(e,t){let r=`Builder.registerComponent(
576
+ `}async function to(e){let t=await Za(e);return{builderPageOptions:async()=>{let n="/builder-demo",o=t.hasLocaleParam?`/en-us${n}`:void 0;return{templateContentId:"a5c9eef7909d4fc99554264a17de22c9",pathname:n,localePathname:o,title:"Builder + Remix Demo Page"}},ensureBuilderSetup:()=>Xr(t),ensureFigmaImportPage:()=>Zr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Ne(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Ne(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ne(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ne(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ne(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ne(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ft(t),setPublicApiKey:n=>Wr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===y.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Ee(t),setCache:n=>Se(t,n)}}async function Za(e){let t=await ts(e),r=e.getAppRootDir(),n=await ns(e),o=e.dirname(n),i=e.join(o,"components"),a=await ae(e),s=await pe(e,o),u={},p={...e,registryPath:s,remixConfigPath:t,typescriptEnabled:a,appDir:o,componentsDir:i,routesDir:n,hasLocaleParam:await es(e,n),addExternalPackage:m=>{u[e.join(r,m,"index.ts")]=`export * from "${m}";`},readFileSync:m=>u[m]??e.readFileSync(m),existsSync:m=>!!u[m]||e.existsSync(m),readdirSync:m=>{let f=e.readdirSync(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f},readdir:async m=>{let f=await e.readdir(m);return m===r?[...f,...Object.keys(u).map(c=>c.slice(r.length+1))]:f}};return e.sdkVersion?p.sdkVersion=e.sdkVersion:p.sdkVersion=await ct(p),p}async function es(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function ts(e){let t=["remix.config.ts","remix.config.js","vite.config.ts","vite.config.js"];for(let r of t){let n=e.join(e.getAppRootDir(),r);if(await e.exists(n))return n}if(e.ignoreMissingConfig)return"";throw new Error(`Could not find Remix config file. Searched for ${t.join(", ")} in "${e.getAppRootDir()}".`)}async function ns(e){let t=await gt(e,e.getAppRootDir(),"routes");if(t)return t;throw new Error(`Could not find Remix "routes" directory in "${e.getAppRootDir()}". Please ensure this command is ran from within your Remix project's directory.`)}async function wt(e){let t=[".env"],r=e.configType==="vite"?yt:Vt;return await $e(e,t,r)}async function no(e,t){let r=await wt(e),n=await Ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var yt="VITE_PUBLIC_BUILDER_KEY",Vt="YOUR_PUBLIC_BUILDER_KEY";function ro(e,t){let r=`Builder.registerComponent(
577
577
  `;r+=` ${t.importName},
578
578
  `,r+=` {
579
579
  name: "${t.name}",
@@ -914,7 +914,7 @@ export class Counter {
914
914
  }
915
915
  }
916
916
 
917
- `.trimStart()}async function bo(e){await Jt(e);let t=await e.readFile(e.registryPath);return t?Ys(e,t):{components:[],sourceFile:I(e,"")}}async function Ys(e,t){let r=I(e,t);return Gs(e,r)}async function Gs(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await wn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:oe(r)}}async function wn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],framework:"angular"};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let p=s.arguments[0];e.ts.isIdentifier(p)&&(a=p.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await Fe(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let p=await go(e,u.filePath);if(p&&p.length>0)if(p.length===1)n.exportName=p[0].cmpInfo.exportName;else{let m=p.find(f=>f.cmpInfo.exportName===a);m&&(n.exportName=m.cmpInfo.exportName)}}continue}}return n=ie(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function Be(e,t,r,n,o,i,a,s){let u=await Ue(e),[p,m,f]=await Promise.all([fo(e,u),bo(e),Tt(e)]),c=p.map(x=>x.cmpInfo),d=m.components,C={components:De(c,d),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Pe(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await Do(e,p,C.components),C;let l=!1,D=m.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let S=p.find(O=>O.cmpInfo.id===A);if(!S)throw new Error(`Component ${A} not found`);return S}),E=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,E);for(let A of x){let S=C.components.find(L=>L.id===A.cmpInfo.id),O=await Cn(e,A,P);ue(S,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=be(A.cmpInfo.id,c,d,r,n,o,i),{elements:F,elmIndex:w,statementIndex:ee,statement:de,variableDeclaration:Y}=await Xs(e,D,A);if(j.addCmpToRegistry)F.push(Hs(e,j.addCmpToRegistry)),l=!0;else if(j.removeCmpFromRegistry)F.splice(w,1),l=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[w],j.updateRegisteredCmp);F[w]=e.ts.factory.updateObjectLiteralExpression(L,[vo(e,j.updateRegisteredCmp),...L.properties.slice(1)]),l=!0}if(l&&a){let L=[...D.statements];L[ee]=e.ts.factory.updateVariableStatement(de,de.modifiers,e.ts.factory.updateVariableDeclarationList(de.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(ye(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),S.exportType==="named"?D=v(e,D,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}):D=v(e,D,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),D=ve(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,d=j.components.filter(te=>te.isRegistered)}}}if(l&&a){D=Te(e,D),D=we(e,D);let x=_(e,D);x=me(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function vo(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function Hs(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([vo(e,t)],!0),t)}async function Xs(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await wn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Io(e){let t=await Zs(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>wo(t),ensureFigmaImportPage:()=>yo(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>Be(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await Be(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>Be(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>Be(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>Be(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>Be(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Tt(t),setPublicApiKey:o=>co(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Ee(t),setCache:o=>Se(t,o)}}async function Zs(e){let t=await eu(e),r=e.getAppRootDir(),n=e.join(r,"src"),o=await ae(e),i=e.join(n,"app"),a=await pe(e,i),s={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:a,angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getAppRootDir()}".`);s.srcDir=n,s.appDir=i,s.componentsDir=e.join(s.appDir,"components"),s.builderPageComponentPath=e.join(s.componentsDir,`builder-page.component.${o?"ts":"js"}`);let u=`app.module.${o?"ts":"js"}`,p=e.join(s.appDir,u);return await e.exists(p)&&(s.hasAppModule=!0),s}async function eu(e){let t=e.join(e.getAppRootDir(),"angular.json");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"project.json");if(await e.exists(r))return r;throw new Error(`Could not find Angular config file. Searched for angular.json & project.json in "${e.getAppRootDir()}".`)}var Gt=qn(Uo(),1);async function zo(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:ge(e.relative(e.getAppRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:se(i.inputs)};return se(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,Gt.compress)(n);return btoa(JSON.stringify(o))}async function qo(e,t,r){if(typeof r!="string")throw new Error("Invalid registry to import");let n=await t.getRegistry(),o=JSON.parse(atob(r)),i=(0,Gt.decompress)(o),a=se(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let u=ge(e.normalize(s.filePath)),p=n.components.find(f=>ge(f.filePath).endsWith(u)&&f.exportName===s.exportName);if(!p){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${p.id})`,p.filePath),await t.registerComponent({cmpId:p.id});for(let f of s.inputs)e.debug(`set input (${p.id})`),await t.setRegisteredComponentInput({cmpId:p.id,name:f.name,type:f.type,required:f.required,defaultValue:f.defaultValue,friendlyName:f.friendlyName,helperText:f.helperText});e.debug(`set input (${p.id}) info`);let m=await t.setRegisteredComponentInfo({cmpId:p.id,name:s.name,image:s.image,description:s.description});a=se(m)}return a}var xe={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Sd={[xe.react]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.remix]:[{version:y.gen1,recommended:!1},{version:y.gen2,recommended:!0}],[xe.angular]:[{version:y.gen2,recommended:!0}],[xe.next]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.qwik]:[{version:y.gen2,recommended:!0}]};async function Jo(e,t){let r=[],n=new Set;async function o(i){let a=e.join(i,"package.json");try{if(!await e.exists(a))return null;let u=await e.readFile(a);if(u===null)throw new Error(`Failed to read package.json at ${a}`);let p=JSON.parse(u);if(n.has(p.name))return null;n.add(p.name);let m={name:p.name,subPackages:[]},f=await e.readdir(i);for(let c of f)c!=="node_modules"&&(await e.stat(e.join(i,c))).isDirectory()&&m.subPackages.push(c);return r.push(m),m}catch(s){return e.Sentry?.captureException(s,{level:"warning"}),null}}try{let i=e.join(t,"package.json");if(await e.exists(i)){let s=await e.readFile(i);if(s!==null){let u=JSON.parse(s),p={...u.dependencies,...u.devDependencies};for(let m of Object.keys(p)){let f=e.join(t,"node_modules",m);await o(f)}if(u.workspaces)for(let m of u.workspaces){let f=await e.readdir(e.join(t,m));for(let c of f){let d=e.join(t,m,c);await o(d)}}}}}catch(i){e.Sentry?.captureException(i,{level:"warning"})}return r}var Pu={"@builder.io/qwik-city":Qr,next:Lr,"@remix-run/react":to,react:lo,"@angular/core":Io},wu={"@builder.io/qwik-city":xe.qwik,next:xe.next,"@remix-run/react":xe.remix,react:xe.react,"@angular/core":xe.angular};async function yu(e){if(!e.ts)throw new Error("createDevTools() requires a TypeScript instance passed to the 'ts' option");if((!e.frameworks||e.frameworks.length===0)&&(e.frameworks=await Ye(e)),e.frameworks.length===0)throw new Error("Supported Devtools framework for not found");for(let t of e.frameworks){let r=Pu[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>zo(e,n),importRegistry:i=>qo(e,n,i),framework:wu[t.name],findAllDependencies:async()=>await Jo(e,e.getRepoRootDir())}}}throw new Error(`Devtools framework not found for ${e.getAppRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Qo(e){function t(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function r(f,c){let d="",C=0,l=-1,D=0,g;for(let x=0;x<=f.length;++x){if(x<f.length)g=f.charCodeAt(x);else{if(g===47)break;g=47}if(g===47){if(!(l===x-1||D===1))if(l!==x-1&&D===2){if(d.length<2||C!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){let E=d.lastIndexOf("/");if(E!==d.length-1){E===-1?(d="",C=0):(d=d.slice(0,E),C=d.length-1-d.lastIndexOf("/")),l=x,D=0;continue}}else if(d.length===2||d.length===1){d="",C=0,l=x,D=0;continue}}c&&(d.length>0?d+="/..":d="..",C=2)}else d.length>0?d+="/"+f.slice(l+1,x):d=f.slice(l+1,x),C=x-l-1;l=x,D=0}else g===46&&D!==-1?++D:D=-1}return d}let n=function(...c){let d="",C=!1;for(let l=c.length-1;l>=-1&&!C;l--){let D;l>=0?D=c[l]:e.cwd?D=e.cwd():D="/",t(D),D.length!==0&&(d=D+"/"+d,C=D.charCodeAt(0)===47)}return d=r(d,!C),C?d.length>0?"/"+d:"/":d.length>0?d:"."},o=function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0)===47,C=c.charCodeAt(c.length-1)===47;return c=r(c,!d),c.length===0&&!d&&(c="."),c.length>0&&C&&(c+="/"),d?"/"+c:c};return{relative:function(c,d){if(t(c),t(d),c===d||(c=n(c),d=n(d),c===d))return"";let C=1;for(;C<c.length&&c.charCodeAt(C)===47;++C);let l=c.length,D=l-C,g=1;for(;g<d.length&&d.charCodeAt(g)===47;++g);let E=d.length-g,P=D<E?D:E,A=-1,S=0;for(;S<=P;++S){if(S===P){if(E>P){if(d.charCodeAt(g+S)===47)return d.slice(g+S+1);if(S===0)return d.slice(g+S)}else D>P&&(c.charCodeAt(C+S)===47?A=S:S===0&&(A=0));break}let z=c.charCodeAt(C+S),j=d.charCodeAt(g+S);if(z!==j)break;z===47&&(A=S)}let O="";for(S=C+A+1;S<=l;++S)(S===l||c.charCodeAt(S)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+d.slice(g+A):(g+=A,d.charCodeAt(g)===47&&++g,d.slice(g))},resolve:n,join:function(...c){if(c.length===0)return".";let d;for(let C=0;C<c.length;++C){let l=c[C];t(l),l.length>0&&(d===void 0?d=l:d+="/"+l)}return d===void 0?".":o(d)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');t(c);let C=0,l=-1,D=!0,g;if(d!==void 0&&d.length>0&&d.length<=c.length){if(d.length===c.length&&d===c)return"";let x=d.length-1,E=-1;for(g=c.length-1;g>=0;--g){let P=c.charCodeAt(g);if(P===47){if(!D){C=g+1;break}}else E===-1&&(D=!1,E=g+1),x>=0&&(P===d.charCodeAt(x)?--x===-1&&(l=g):(x=-1,l=E))}return C===l?l=E:l===-1&&(l=c.length),c.slice(C,l)}else{for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!D){C=g+1;break}}else l===-1&&(D=!1,l=g+1);return l===-1?"":c.slice(C,l)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0),C=d===47,l=-1,D=!0;for(let g=c.length-1;g>=1;--g)if(d=c.charCodeAt(g),d===47){if(!D){l=g;break}}else D=!1;return l===-1?C?"/":".":C&&l===1?"//":c.slice(0,l)},extname:function(c){t(c);let d=-1,C=0,l=-1,D=!0,g=0;for(let x=c.length-1;x>=0;--x){let E=c.charCodeAt(x);if(E===47){if(!D){C=x+1;break}continue}l===-1&&(D=!1,l=x+1),E===46?d===-1?d=x:g!==1&&(g=1):d!==-1&&(g=-1)}return d===-1||l===-1||g===0||g===1&&d===l-1&&d===C+1?"":c.slice(d,l)}}}async function Tu(e){let t=e.getRepoRootDir?e.getRepoRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Qo({cwd:r,...e}),o=new Map,i=l=>n.normalize(n.resolve(r(),l)),a=l=>{for(let[D]of o)if((D+"/").startsWith(l))return!0;return l===t()},s=l=>(l=i(l),o.has(l)?!0:a(l)),u=l=>{l=i(l);let D=l===t()?l:l+"/",g=D.split("/").length-1,x=[];for(let[E]of o)if(E.split("/").slice(0,g).join("/")+"/"===D){let S=E.split("/")[g];S&&!x.includes(S)&&x.push(S)}return x.sort()},p=l=>{l=i(l);let D=o.get(l);return typeof D=="string"?D:null},m=l=>(l=i(l),{isFile:()=>o.has(l),isDirectory:()=>!o.has(l)&&a(l)}),f=async l=>{if(typeof crypto<"u"){let x=new TextEncoder().encode(l),E=await crypto.subtle.digest("SHA-256",x);return Array.from(new Uint8Array(E)).map(P=>P.toString(16).padStart(2,"0")).join("")}let D=0;for(let g=0;g<l.length;g++){let x=l.charCodeAt(g);D=(D<<5)-D+x,D|=0}return Number(Math.abs(D)).toString(36)},c=new Set,d={getRepoRootDir:t,getAppRootDir:t,getCwdDir:r,cwd:r,exists:async l=>s(l),existsSync:s,readdir:async l=>u(l),readdirSync:u,readFile:async l=>p(l),readdirRecursive:async(l,D)=>u(l)??[],readFileSync:p,stat:async l=>m(l),statSync:m,writeFile:async(l,D)=>{l=i(l),o.set(l,D);let g={path:l,basename:n.basename(l),dirname:n.dirname(l),extname:n.extname(l)};for(let x of c)await x(g)},unlink:async l=>{l=i(l),o.delete(l)},unlinkSync:l=>{l=i(l),o.delete(l)},hash:f,getDeviceId:async()=>typeof navigator<"u"?f(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(l,D)=>D,on:(l,D)=>{l==="change"&&c.add(D)},off:(l,D)=>{l==="change"&&c.delete(D)},debug:(...l)=>{console.debug("[builder-dev-tools]",...l)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null,magicast:void 0,spawnSync:void 0,Sentry:void 0},C=await Ye(d);return d.getFrameworks=e.getFrameworks?e.getFrameworks:()=>C,d}async function Wo(e,t,r){try{let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(await Zn(e))return console.warn("Turbopack does not support the Builder.io devtools cli. Please disable Turbopack or manually integrate Builder.io into your Next.js project."),o;if(Yo(e,n))return o;let s=ce(e,n,"cjs"),u=ce(e,n);if(s.length!==1&&u.length!==1)throw new Error("Expected an export from file");if(u.length===1){let f=u[0];if(!f.isDefaultExport)throw new Error("Expected a default export from file");let c=f.statement;if(!e.ts.isVariableStatement(c))throw new Error(`Unexpected export type in ${t}
917
+ `.trimStart()}async function bo(e){await Jt(e);let t=await e.readFile(e.registryPath);return t?Ys(e,t):{components:[],sourceFile:I(e,"")}}async function Ys(e,t){let r=I(e,t);return Gs(e,r)}async function Gs(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await wn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:oe(r)}}async function wn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],framework:"angular"};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let p=s.arguments[0];e.ts.isIdentifier(p)&&(a=p.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await Fe(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let p=await go(e,u.filePath);if(p&&p.length>0)if(p.length===1)n.exportName=p[0].cmpInfo.exportName;else{let m=p.find(f=>f.cmpInfo.exportName===a);m&&(n.exportName=m.cmpInfo.exportName)}}continue}}return n=ie(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function Be(e,t,r,n,o,i,a,s){let u=await Ue(e),[p,m,f]=await Promise.all([fo(e,u),bo(e),Tt(e)]),c=p.map(x=>x.cmpInfo),d=m.components,C={components:De(c,d),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Pe(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await Do(e,p,C.components),C;let l=!1,D=m.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let S=p.find(O=>O.cmpInfo.id===A);if(!S)throw new Error(`Component ${A} not found`);return S}),E=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,E);for(let A of x){let S=C.components.find(L=>L.id===A.cmpInfo.id),O=await Cn(e,A,P);ue(S,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=be(A.cmpInfo.id,c,d,r,n,o,i),{elements:F,elmIndex:w,statementIndex:ee,statement:de,variableDeclaration:Y}=await Xs(e,D,A);if(j.addCmpToRegistry)F.push(Hs(e,j.addCmpToRegistry)),l=!0;else if(j.removeCmpFromRegistry)F.splice(w,1),l=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[w],j.updateRegisteredCmp);F[w]=e.ts.factory.updateObjectLiteralExpression(L,[vo(e,j.updateRegisteredCmp),...L.properties.slice(1)]),l=!0}if(l&&a){let L=[...D.statements];L[ee]=e.ts.factory.updateVariableStatement(de,de.modifiers,e.ts.factory.updateVariableDeclarationList(de.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(ye(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),S.exportType==="named"?D=v(e,D,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}):D=v(e,D,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:B(e,e.registryPath,S.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),D=ve(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,d=j.components.filter(te=>te.isRegistered)}}}if(l&&a){D=Te(e,D),D=we(e,D);let x=_(e,D);x=me(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function vo(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function Hs(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([vo(e,t)],!0),t)}async function Xs(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await wn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Io(e){let t=await Zs(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>wo(t),ensureFigmaImportPage:()=>yo(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>Be(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await Be(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>Be(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>Be(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>Be(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>Be(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Tt(t),setPublicApiKey:o=>co(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Ee(t),setCache:o=>Se(t,o)}}async function Zs(e){let t=await eu(e),r=e.getAppRootDir(),n=e.join(r,"src"),o=await ae(e),i=e.join(n,"app"),a=await pe(e,i),s={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:a,angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getAppRootDir()}".`);s.srcDir=n,s.appDir=i,s.componentsDir=e.join(s.appDir,"components"),s.builderPageComponentPath=e.join(s.componentsDir,`builder-page.component.${o?"ts":"js"}`);let u=`app.module.${o?"ts":"js"}`,p=e.join(s.appDir,u);return await e.exists(p)&&(s.hasAppModule=!0),s}async function eu(e){let t=e.join(e.getAppRootDir(),"angular.json");if(await e.exists(t))return t;let r=e.join(e.getAppRootDir(),"project.json");if(await e.exists(r))return r;if(e.ignoreMissingConfig)return"";throw new Error(`Could not find Angular config file. Searched for angular.json & project.json in "${e.getAppRootDir()}".`)}var Gt=qn(Uo(),1);async function zo(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:ge(e.relative(e.getAppRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:se(i.inputs)};return se(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,Gt.compress)(n);return btoa(JSON.stringify(o))}async function qo(e,t,r){if(typeof r!="string")throw new Error("Invalid registry to import");let n=await t.getRegistry(),o=JSON.parse(atob(r)),i=(0,Gt.decompress)(o),a=se(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let u=ge(e.normalize(s.filePath)),p=n.components.find(f=>ge(f.filePath).endsWith(u)&&f.exportName===s.exportName);if(!p){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${p.id})`,p.filePath),await t.registerComponent({cmpId:p.id});for(let f of s.inputs)e.debug(`set input (${p.id})`),await t.setRegisteredComponentInput({cmpId:p.id,name:f.name,type:f.type,required:f.required,defaultValue:f.defaultValue,friendlyName:f.friendlyName,helperText:f.helperText});e.debug(`set input (${p.id}) info`);let m=await t.setRegisteredComponentInfo({cmpId:p.id,name:s.name,image:s.image,description:s.description});a=se(m)}return a}var xe={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Sd={[xe.react]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.remix]:[{version:y.gen1,recommended:!1},{version:y.gen2,recommended:!0}],[xe.angular]:[{version:y.gen2,recommended:!0}],[xe.next]:[{version:y.gen1,recommended:!0},{version:y.gen2,recommended:!1}],[xe.qwik]:[{version:y.gen2,recommended:!0}]};async function Jo(e,t){let r=[],n=new Set;async function o(i){let a=e.join(i,"package.json");try{if(!await e.exists(a))return null;let u=await e.readFile(a);if(u===null)throw new Error(`Failed to read package.json at ${a}`);let p=JSON.parse(u);if(n.has(p.name))return null;n.add(p.name);let m={name:p.name,subPackages:[]},f=await e.readdir(i);for(let c of f)c!=="node_modules"&&(await e.stat(e.join(i,c))).isDirectory()&&m.subPackages.push(c);return r.push(m),m}catch(s){return e.Sentry?.captureException(s,{level:"warning"}),null}}try{let i=e.join(t,"package.json");if(await e.exists(i)){let s=await e.readFile(i);if(s!==null){let u=JSON.parse(s),p={...u.dependencies,...u.devDependencies};for(let m of Object.keys(p)){let f=e.join(t,"node_modules",m);await o(f)}if(u.workspaces)for(let m of u.workspaces){let f=await e.readdir(e.join(t,m));for(let c of f){let d=e.join(t,m,c);await o(d)}}}}}catch(i){e.Sentry?.captureException(i,{level:"warning"})}return r}var Pu={"@builder.io/qwik-city":Qr,next:Lr,"@remix-run/react":to,react:lo,"@angular/core":Io},wu={"@builder.io/qwik-city":xe.qwik,next:xe.next,"@remix-run/react":xe.remix,react:xe.react,"@angular/core":xe.angular};async function yu(e){if(!e.ts)throw new Error("createDevTools() requires a TypeScript instance passed to the 'ts' option");if((!e.frameworks||e.frameworks.length===0)&&(e.frameworks=await Ye(e)),e.frameworks.length===0)throw new Error("Supported Devtools framework for not found");for(let t of e.frameworks){let r=Pu[t.name];if(r)try{let n=await r(e);return{...n,exportRegistry:()=>zo(e,n),importRegistry:i=>qo(e,n,i),framework:wu[t.name],findAllDependencies:async()=>await Jo(e,e.getRepoRootDir())}}catch(n){e.Sentry?.captureException(n,{level:"warning"})}}throw new Error(`Devtools framework not found for ${e.getAppRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Qo(e){function t(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function r(f,c){let d="",C=0,l=-1,D=0,g;for(let x=0;x<=f.length;++x){if(x<f.length)g=f.charCodeAt(x);else{if(g===47)break;g=47}if(g===47){if(!(l===x-1||D===1))if(l!==x-1&&D===2){if(d.length<2||C!==2||d.charCodeAt(d.length-1)!==46||d.charCodeAt(d.length-2)!==46){if(d.length>2){let E=d.lastIndexOf("/");if(E!==d.length-1){E===-1?(d="",C=0):(d=d.slice(0,E),C=d.length-1-d.lastIndexOf("/")),l=x,D=0;continue}}else if(d.length===2||d.length===1){d="",C=0,l=x,D=0;continue}}c&&(d.length>0?d+="/..":d="..",C=2)}else d.length>0?d+="/"+f.slice(l+1,x):d=f.slice(l+1,x),C=x-l-1;l=x,D=0}else g===46&&D!==-1?++D:D=-1}return d}let n=function(...c){let d="",C=!1;for(let l=c.length-1;l>=-1&&!C;l--){let D;l>=0?D=c[l]:e.cwd?D=e.cwd():D="/",t(D),D.length!==0&&(d=D+"/"+d,C=D.charCodeAt(0)===47)}return d=r(d,!C),C?d.length>0?"/"+d:"/":d.length>0?d:"."},o=function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0)===47,C=c.charCodeAt(c.length-1)===47;return c=r(c,!d),c.length===0&&!d&&(c="."),c.length>0&&C&&(c+="/"),d?"/"+c:c};return{relative:function(c,d){if(t(c),t(d),c===d||(c=n(c),d=n(d),c===d))return"";let C=1;for(;C<c.length&&c.charCodeAt(C)===47;++C);let l=c.length,D=l-C,g=1;for(;g<d.length&&d.charCodeAt(g)===47;++g);let E=d.length-g,P=D<E?D:E,A=-1,S=0;for(;S<=P;++S){if(S===P){if(E>P){if(d.charCodeAt(g+S)===47)return d.slice(g+S+1);if(S===0)return d.slice(g+S)}else D>P&&(c.charCodeAt(C+S)===47?A=S:S===0&&(A=0));break}let z=c.charCodeAt(C+S),j=d.charCodeAt(g+S);if(z!==j)break;z===47&&(A=S)}let O="";for(S=C+A+1;S<=l;++S)(S===l||c.charCodeAt(S)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+d.slice(g+A):(g+=A,d.charCodeAt(g)===47&&++g,d.slice(g))},resolve:n,join:function(...c){if(c.length===0)return".";let d;for(let C=0;C<c.length;++C){let l=c[C];t(l),l.length>0&&(d===void 0?d=l:d+="/"+l)}return d===void 0?".":o(d)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');t(c);let C=0,l=-1,D=!0,g;if(d!==void 0&&d.length>0&&d.length<=c.length){if(d.length===c.length&&d===c)return"";let x=d.length-1,E=-1;for(g=c.length-1;g>=0;--g){let P=c.charCodeAt(g);if(P===47){if(!D){C=g+1;break}}else E===-1&&(D=!1,E=g+1),x>=0&&(P===d.charCodeAt(x)?--x===-1&&(l=g):(x=-1,l=E))}return C===l?l=E:l===-1&&(l=c.length),c.slice(C,l)}else{for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!D){C=g+1;break}}else l===-1&&(D=!1,l=g+1);return l===-1?"":c.slice(C,l)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let d=c.charCodeAt(0),C=d===47,l=-1,D=!0;for(let g=c.length-1;g>=1;--g)if(d=c.charCodeAt(g),d===47){if(!D){l=g;break}}else D=!1;return l===-1?C?"/":".":C&&l===1?"//":c.slice(0,l)},extname:function(c){t(c);let d=-1,C=0,l=-1,D=!0,g=0;for(let x=c.length-1;x>=0;--x){let E=c.charCodeAt(x);if(E===47){if(!D){C=x+1;break}continue}l===-1&&(D=!1,l=x+1),E===46?d===-1?d=x:g!==1&&(g=1):d!==-1&&(g=-1)}return d===-1||l===-1||g===0||g===1&&d===l-1&&d===C+1?"":c.slice(d,l)}}}async function Tu(e){let t=e.getRepoRootDir?e.getRepoRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Qo({cwd:r,...e}),o=new Map,i=l=>n.normalize(n.resolve(r(),l)),a=l=>{for(let[D]of o)if((D+"/").startsWith(l))return!0;return l===t()},s=l=>(l=i(l),o.has(l)?!0:a(l)),u=l=>{l=i(l);let D=l===t()?l:l+"/",g=D.split("/").length-1,x=[];for(let[E]of o)if(E.split("/").slice(0,g).join("/")+"/"===D){let S=E.split("/")[g];S&&!x.includes(S)&&x.push(S)}return x.sort()},p=l=>{l=i(l);let D=o.get(l);return typeof D=="string"?D:null},m=l=>(l=i(l),{isFile:()=>o.has(l),isDirectory:()=>!o.has(l)&&a(l)}),f=async l=>{if(typeof crypto<"u"){let x=new TextEncoder().encode(l),E=await crypto.subtle.digest("SHA-256",x);return Array.from(new Uint8Array(E)).map(P=>P.toString(16).padStart(2,"0")).join("")}let D=0;for(let g=0;g<l.length;g++){let x=l.charCodeAt(g);D=(D<<5)-D+x,D|=0}return Number(Math.abs(D)).toString(36)},c=new Set,d={getRepoRootDir:t,getAppRootDir:t,getCwdDir:r,cwd:r,exists:async l=>s(l),existsSync:s,readdir:async l=>u(l),readdirSync:u,readFile:async l=>p(l),readdirRecursive:async(l,D)=>u(l)??[],readFileSync:p,stat:async l=>m(l),statSync:m,writeFile:async(l,D)=>{l=i(l),o.set(l,D);let g={path:l,basename:n.basename(l),dirname:n.dirname(l),extname:n.extname(l)};for(let x of c)await x(g)},unlink:async l=>{l=i(l),o.delete(l)},unlinkSync:l=>{l=i(l),o.delete(l)},hash:f,getDeviceId:async()=>typeof navigator<"u"?f(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(l,D)=>D,on:(l,D)=>{l==="change"&&c.add(D)},off:(l,D)=>{l==="change"&&c.delete(D)},debug:(...l)=>{console.debug("[builder-dev-tools]",...l)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null,magicast:void 0,spawnSync:void 0,Sentry:void 0},C=await Ye(d);return d.getFrameworks=e.getFrameworks?e.getFrameworks:()=>C,d}async function Wo(e,t,r){try{let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(await Zn(e))return console.warn("Turbopack does not support the Builder.io devtools cli. Please disable Turbopack or manually integrate Builder.io into your Next.js project."),o;if(Yo(e,n))return o;let s=ce(e,n,"cjs"),u=ce(e,n);if(s.length!==1&&u.length!==1)throw new Error("Expected an export from file");if(u.length===1){let f=u[0];if(!f.isDefaultExport)throw new Error("Expected a default export from file");let c=f.statement;if(!e.ts.isVariableStatement(c))throw new Error(`Unexpected export type in ${t}
918
918
  Found config content:
919
919
  ${r}
920
920
 
@@ -975,4 +975,4 @@ module.exports = nextConfig
975
975
  `,n+=` }
976
976
  `,n+=` }
977
977
  `,n+=`})();
978
- `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Ht="1.6.11";export{yu as createDevTools,Tu as createDevToolsSys,Ye as detectFrameworks,er as detectFrameworksFromPackageJson,ju as ensureConfigPlugin,si as findBuildToolConfig,Vu as getClientScript,nr as parseDotEnvContent,Ht as version};
978
+ `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Ht="1.6.12";export{yu as createDevTools,Tu as createDevToolsSys,Ye as detectFrameworks,er as detectFrameworksFromPackageJson,ju as ensureConfigPlugin,si as findBuildToolConfig,Vu as getClientScript,nr as parseDotEnvContent,Ht as version};
package/node/index.cjs CHANGED
@@ -101,5 +101,5 @@ ${" ".repeat(6+r)}^`),c));s+=`
101
101
  ${l.join(`
102
102
  `)}
103
103
  `}this.message=s}},Ic=new Set(["Literal","StringLiteral","NumericLiteral","BooleanLiteral","NullLiteral","RegExpLiteral","BigIntLiteral"]),Zn=new Set(["string","number","boolean","bigint","symbol","undefined"]),ee=gt;function Nc(i){return/^[$A-Z_a-z][\w$]*$/.test(i)}var zr="__magicast_proxy";function ce(i,s=new Set){if(i===void 0)return ee.identifier("undefined");if(i===null)return ee.literal(null);if(Zn.has(typeof i))return ee.literal(i);if(s.has(i))throw new re("Can not serialize circular reference");if(s.add(i),i[zr])return i.$ast;if(i instanceof RegExp){let e=ee.regExpLiteral(i.source,i.flags);return delete e.extra.raw,e}return i instanceof Set?ee.newExpression(ee.identifier("Set"),[ee.arrayExpression([...i].map(e=>ce(e,s)))]):i instanceof Date?ee.newExpression(ee.identifier("Date"),[ee.literal(i.toISOString())]):i instanceof Map?ee.newExpression(ee.identifier("Map"),[ee.arrayExpression([...i].map(([e,t])=>ee.arrayExpression([ce(e,s),ce(t,s)])))]):Array.isArray(i)?ee.arrayExpression(i.map(e=>ce(e,s))):typeof i=="object"?ee.objectExpression(Object.entries(i).map(([e,t])=>ee.property("init",/^[$A-Z_a-z][\w$]*$/g.test(e)?ee.identifier(e):ee.literal(e),ce(t,s)))):ee.literal(i)}function kc(i,s={}){let e=s;return e[zr]=!0,e.$ast=i,e.$type||(e.$type="object"),e}var Lc={enumerable:!0,configurable:!0};function be(i,s,e){let t=kc(i,s);return new Proxy({},{ownKeys(){return Object.keys(t).filter(r=>r!==zr&&!r.startsWith("$"))},getOwnPropertyDescriptor(){return Lc},has(r,n){return n in t},...e,get(r,n,a){if(n in t)return t[n];if(e.get)return e.get(r,n,a)},set(r,n,a,o){return n in t?(t[n]=a,!0):e.set?e.set(r,n,a,o):!1}})}var de=gt,Nr=new WeakMap;function Dc(i,s,e){if(Nr.has(s))return Nr.get(s);let t=be(s,{get $declaration(){return i},get imported(){return s.type==="ImportDefaultSpecifier"?"default":s.type==="ImportNamespaceSpecifier"?"*":s.imported.type==="Identifier"?s.imported.name:s.imported.value},set imported(r){if(s.type!=="ImportSpecifier")throw new re("Changing import name is not yet implemented");s.imported.type==="Identifier"?s.imported.name=r:s.imported.value=r},get local(){return s.local.name},set local(r){s.local.name=r},get from(){return i.source.value},set from(r){if(r===i.source.value)return;i.specifiers=i.specifiers.filter(a=>a!==s),i.specifiers.length===0&&(e.body=e.body.filter(a=>a!==i));let n=e.body.find(a=>a.type==="ImportDeclaration"&&a.source.value===r);n?n.specifiers.push(s):e.body.unshift(de.importDeclaration([s],de.stringLiteral(r)))},toJSON(){return{imported:this.imported,local:this.local,from:this.from}}},{ownKeys(){return["imported","local","from","toJSON"]}});return Nr.set(s,t),t}function Oc(i,s){let e=()=>{let a=[];for(let o of i.body)if(o.type==="ImportDeclaration")for(let l of o.specifiers)a.push(Dc(o,l,i));return a},t=(a,o,l)=>{let c=e(),u=c.find(p=>p.local===a),h=o.local||a;if(u)return u.imported=o.imported,u.local=h,u.from=o.from,!0;let f=o.imported==="default"?de.importDefaultSpecifier(de.identifier(h)):o.imported==="*"?de.importNamespaceSpecifier(de.identifier(h)):de.importSpecifier(de.identifier(o.imported),de.identifier(h)),d=c.find(p=>p.from===o.from)?.$declaration;if(d)d.specifiers.push(f);else if(l==="prepend"||c.length===0)i.body.unshift(de.importDeclaration([f],de.stringLiteral(o.from)));else{let p=c.at(-1).$declaration,g=i.body.indexOf(p);i.body.splice(g+1,0,de.importDeclaration([f],de.stringLiteral(o.from)))}return!0},r=a=>{let o=e().find(u=>u.local===a);if(!o)return!1;let l=o.$declaration,c=o.$ast;return l.specifiers=l.specifiers.filter(u=>u!==c),l.specifiers.length===0&&(i.body=i.body.filter(u=>u!==l)),!0};return be(i,{$type:"imports",$add(a){t(a.local||a.imported,a,"prepend")},$prepend(a){t(a.local||a.imported,a,"prepend")},$append(a){t(a.local||a.imported,a,"append")},get $items(){return e()},toJSON(){return e().reduce((a,o)=>(a[o.local]=o,a),{})}},{get(a,o){return e().find(l=>l.local===o)},set(a,o,l){return t(o,l,"prepend")},deleteProperty(a,o){return r(o)},ownKeys(){return e().map(a=>a.local)},has(a,o){return e().some(l=>l.local===o)}})}function Is(i,s,e){let t=n=>s[n],r=(n,a)=>{s[n]=a};return be(i,{$type:"array",push(n){s.push(ce(n))},pop(){return le(s.pop(),e)},unshift(n){s.unshift(ce(n))},shift(){return le(s.shift(),e)},splice(n,a,...o){return s.splice(n,a,...o.map(c=>ce(c))).map(c=>le(c,e))},find(n){return s.map(a=>le(a,e)).find(n)},findIndex(n){return s.map(a=>le(a,e)).findIndex(n)},includes(n){return s.map(a=>le(a,e)).includes(n)},toJSON(){return s.map(n=>le(n,e))}},{get(n,a){if(a==="length")return s.length;if(a===Symbol.iterator)return function*(){for(let c of s)yield le(c,e)};if(typeof a=="symbol")return;let o=+a;if(Number.isNaN(o))return;let l=t(o);if(l)return le(l,e)},set(n,a,o){if(typeof a=="symbol")return!1;let l=+a;return Number.isNaN(l)?!1:(r(l,ce(o)),!0)},deleteProperty(n,a){if(typeof a=="symbol")return!1;let o=+a;return Number.isNaN(o)?!1:(s[o]=ce(void 0),!0)},ownKeys(){return["length",...s.map((n,a)=>a.toString())]}})}function Mc(i,s){if("elements"in i)return Is(i,i.elements,s)}function ea(i,s){if(i.type!=="CallExpression")throw new re("Not a function call");function e(r){if(r.type==="Identifier")return r.name;if(r.type==="MemberExpression")return`${e(r.object)}.${e(r.property)}`;throw new re("Not implemented")}let t=Is(i,i.arguments,s);return be(i,{$type:"function-call",$callee:e(i.callee),$args:t},{})}function Fc(i,s){if(i.type!=="ArrowFunctionExpression")throw new re("Not an arrow function expression");let e=Is(i,i.params,s);return be(i,{$type:"arrow-function-expression",$params:e,$body:le(i.body,s)},{})}var Bc=gt;function _c(i,s){if(!("properties"in i))return;let e=n=>{for(let a of i.properties){if("key"in a&&"name"in a.key&&a.key.name===n)return a.value;if(a.type==="ObjectProperty"&&(a.key.type==="StringLiteral"||a.key.type==="NumericLiteral"||a.key.type==="BooleanLiteral")&&a.key.value.toString()===n)return a.value.value??a.value}},t=(n,a=!1)=>{if("key"in n&&"name"in n.key)return n.key.name;if(n.type==="ObjectProperty"&&(n.key.type==="StringLiteral"||n.key.type==="NumericLiteral"||n.key.type==="BooleanLiteral"))return n.key.value.toString();if(a)throw new re(`Casting "${n.type}" is not supported`,{ast:n,code:s?.$code})},r=(n,a)=>{let o=i.properties.find(l=>t(l)===n);o?o.value=a:Nc(n)?i.properties.push({type:"Property",key:{type:"Identifier",name:n},value:a}):i.properties.push({type:"ObjectProperty",key:Bc.stringLiteral(n),value:a})};return be(i,{$type:"object",toJSON(){return i.properties.reduce((n,a)=>("key"in a&&"name"in a.key&&(n[a.key.name]=le(a.value,s)),n),{})}},{get(n,a){let o=e(a);if(o)return le(o,s)},set(n,a,o){return typeof a!="string"&&(a=String(a)),r(a,ce(o)),!0},deleteProperty(n,a){typeof a!="string"&&(a=String(a));let o=i.properties.findIndex(l=>"key"in l&&"name"in l.key&&l.key.name===a);return o!==-1&&i.properties.splice(o,1),!0},ownKeys(){return i.properties.map(n=>t(n,!0)).filter(Boolean)}})}function ta(i,s){if(i.type!=="NewExpression")throw new re("Not a new expression");function e(r){if(r.type==="Identifier")return r.name;if(r.type==="MemberExpression")return`${e(r.object)}.${e(r.property)}`;throw new re("Not implemented")}let t=Is(i,i.arguments,s);return be(i,{$type:"new-expression",$callee:e(i.callee),$args:t},{})}function jc(i){if(i.type!=="Identifier")throw new re("Not an identifier");return be(i,{$type:"identifier",$name:i.name},{})}function Rc(i){if(i.type!=="LogicalExpression")throw new re("Not a logical expression");return be(i,{$type:"logicalExpression"},{})}function Uc(i){if(i.type!=="MemberExpression")throw new re("Not a member expression");return be(i,{$type:"memberExpression"},{})}var kr=new WeakMap;function le(i,s){if(Zn.has(typeof i))return i;if(Ic.has(i.type))return i.value;if(kr.has(i))return kr.get(i);let e;switch(i.type){case"ObjectExpression":{e=_c(i,s);break}case"ArrayExpression":{e=Mc(i,s);break}case"CallExpression":{e=ea(i,s);break}case"ArrowFunctionExpression":{e=Fc(i,s);break}case"NewExpression":{e=ta(i,s);break}case"Identifier":{e=jc(i);break}case"LogicalExpression":{e=Rc(i);break}case"MemberExpression":{e=Uc(i);break}case"TSAsExpression":case"TSSatisfiesExpression":{e=le(i.expression,s);break}default:throw new re(`Casting "${i.type}" is not supported`,{ast:i,code:s?.$code})}return kr.set(i,e),e}var jt=gt;function Vc(i,s){let e=r=>{let n=r==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration";for(let a of i.body)if(a.type===n){if(r==="default")return a.declaration;if(a.declaration&&"declarations"in a.declaration){let o=a.declaration.declarations[0];if("name"in o.id&&o.id.name===r)return o.init}}},t=(r,n)=>{let a=r==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration",o=ce(n);for(let l of i.body)if(l.type===a){if(r==="default"){l.declaration=o;return}if(l.declaration&&"declarations"in l.declaration){let c=l.declaration.declarations[0];if("name"in c.id&&c.id.name===r){c.init=o;return}}}i.body.push(r==="default"?jt.exportDefaultDeclaration(o):jt.exportNamedDeclaration(jt.variableDeclaration("const",[jt.variableDeclarator(jt.identifier(r),o)])))};return be(i,{$type:"exports"},{get(r,n){let a=e(n);if(a)return le(a,s)},set(r,n,a){return t(n,a),!0},ownKeys(){return i.body.flatMap(r=>r.type==="ExportDefaultDeclaration"?["default"]:r.type==="ExportNamedDeclaration"&&r.declaration&&"declarations"in r.declaration?r.declaration.declarations.map(n=>"name"in n.id?n.id.name:""):[]).filter(Boolean)},deleteProperty(r,n){let a=n==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration";for(let o=0;o<i.body.length;o++){let l=i.body[o];if(l.type===a){if(n==="default")return i.body.splice(o,1),!0;if(l.declaration&&"declarations"in l.declaration){let c=l.declaration.declarations[0];if("name"in c.id&&c.id.name===n)return i.body.splice(o,1),!0}}}return!1}})}function $c(i,s){let e=i.program;if(e.type!=="Program")throw new re(`Cannot proxify ${i.type} as module`);let t={$code:s,$type:"module"},r=be(e,t,{ownKeys(){return["imports","exports","generate"]}});return t.exports=Vc(e,r),t.imports=Oc(e),t.generate=n=>Wr(r,n),r}function sa(i,s={}){let e={wrapColumn:s.wrapColumn===void 0,indent:s.tabWidth===void 0||s.useTabs===void 0,quote:s.quote===void 0,arrowParens:s.arrowParensAlways===void 0,trailingComma:s.trailingComma===void 0},t=2,r=0,n=0,a=0,o=0,l=/(?<doubleQuote>"[^"]+")|(?<singleQuote>'[^']+')|(?<singleParam>\([^),]+\)\s*=>)|(?<trailingComma>,\s*[\]}])/g,c={doubleQuote:0,singleQuote:0,singleParam:0,trailingComma:0},u=(i||"").split(`
104
- `),h=!1;for(let f of u){let d=f.trim();if(d.length!==0){if(e.wrapColumn&&f.length>a&&(a=f.length),e.indent){let p=f.match(/^\s+/)?.[0]||"";p.length>0&&(p.length>0&&p.length<t&&(t=p.length),p[0]===" "?r++:p.length>0&&r--)}if(d.at(-1)===";"?n++:d.length>0&&n--,e.quote||e.arrowParens){let p=d.matchAll(l);for(let g of p)if(g.groups)for(let y in c)g.groups[y]&&c[y]++}e.trailingComma&&((f.startsWith("}")||f.startsWith("]"))&&(h?o++:o--),h=d.endsWith(","))}}return{wrapColumn:a,useTabs:r>0,tabWidth:t,quote:c.singleQuote>c.doubleQuote?"single":"double",arrowParensAlways:c.singleParam>0,trailingComma:o>0||c.trailingComma>0,useSemi:n>0,arrayBracketSpacing:void 0,objectCurlySpacing:void 0,...s}}function ra(i,s){let e=Vn(i,{parser:s?.parser||Yn(),...s});return $c(e,i)}function ia(i,s){let e=Vn("("+i+")",{parser:s?.parser||Yn(),...s}),t=e.program.body[0];t.type==="ExpressionStatement"&&(t=t.expression),t.extra?.parenthesized&&(t.extra.parenthesized=!1);let r={$ast:e,$code:" "+i+" ",$type:"module"};return le(t,r)}function Wr(i,s={}){let e=i.$ast||i,t=s.format===!1||!("$code"in i)?{}:sa(i.$code,s.format),{code:r,map:n}=Ac(e,{...s,...t});return{code:r,map:n}}async function qc(i,s={}){let e=await gs.promises.readFile(i,"utf8");return s.sourceFileName=s.sourceFileName??i,ra(e,s)}async function zc(i,s,e){let t="$ast"in i?i.$ast:i,{code:r,map:n}=Wr(t,e);await gs.promises.writeFile(s,r),n&&await gs.promises.writeFile(s+".map",n)}var ds=gt,Wc={functionCall(i,...s){let e=ds.callExpression(ds.identifier(i),s.map(t=>ce(t)));return ea(e)},newExpression(i,...s){let e=ds.newExpression(ds.identifier(i),s.map(t=>ce(t)));return ta(e)},literal(i){return ce(i)},raw(i){return ia(i)}};var ze=je(require("@sentry/node"),1);async function la(i,s){let e=await(0,ue.readdir)(i,{withFileTypes:!0}),t=[];for(let r of e){let n=V.default.join(i,r.name);if(r.isDirectory()){if(!s.has(r.name)){let a=await la(n,s);t.push(...a)}}else t.push(n)}return t}async function ca(i){let s=new Set,e=(...c)=>{if(process.env.DEBUG){let u=new Date,h=`${String(u.getMinutes()).padStart(2,"0")}:${String(u.getSeconds()).padStart(2,"0")}.${String(u.getMilliseconds()).padStart(3,"0")}`;console.debug(h,"[builder-dev-tools]",...c)}},t=async c=>{let u=(0,na.createHash)("md5");return u.update(c),u.digest("hex")},r=V.default.normalize(i.cwd),n=Gc(V.default.normalize(i.cwd))??r,a=Qc(V.default.normalize(i.cwd))??n,o={...V.default,getCwdDir:()=>r,getRepoRootDir:()=>n,getAppRootDir:()=>a,cwd:()=>process.cwd(),exists:async c=>{try{return await(0,ue.access)(c),!0}catch{return!1}},magicast:Jr,existsSync:c=>(0,G.existsSync)(c),readdir:async(c,u)=>{let h=await(0,ue.readdir)(c);return u?h.map(f=>V.default.join(c,f)):h},readdirRecursive:async(c,u)=>la(c,new Set(u)),readdirSync:c=>(0,G.readdirSync)(c),readFile:async c=>{try{return await(0,ue.readFile)(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},readFileSync(c){try{return(0,G.readFileSync)(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},spawnSync:xt.spawnSync,stat:async c=>await(0,ue.stat)(c),statSync:c=>(0,G.statSync)(c),unlinkSync:c=>{(0,G.unlinkSync)(c)},unlink:async c=>{await(0,ue.unlink)(c)},writeFile:async(c,u)=>{c=V.default.normalize(c);let h={path:c,basename:V.default.basename(c),dirname:V.default.dirname(c),extname:V.default.extname(c)};await(0,ue.mkdir)(V.default.dirname(c),{recursive:!0}),await(0,ue.writeFile)(c,u);for(let f of s)await f(h)},hash:t,getDeviceId:()=>t(`${(0,Ns.hostname)()}:${(0,Ns.homedir)()}`),formatCode:async(c,u)=>{let h=null;try{h=await Kr.default.resolveConfig(c)}catch{}try{return Kr.default.format(u,{...h,filepath:c})}catch{}return u},on:(c,u)=>{c==="change"&&s.add(u)},off:(c,u)=>{c==="change"&&s.delete(u)},debug:e,launchEditor:async c=>{try{let u=c.filePath;typeof c.line=="number"&&(u+=`:${c.line}`,typeof c.column=="number"&&(u+=`:${c.column}`)),(0,oa.default)(u,"code",(h,f)=>{ze.captureException(new Error(`Failed to launch editor for ${f}`),{extra:{pathFile:h}})})}catch(u){ze.captureException(new Error("Failed to launch editor",{cause:u}))}},platform:()=>({runtime:"node",os:process.platform}),getRepoInfo:async()=>{let c=V.default.normalize(i.cwd);return{remoteUrl:Jc(c),defaultBranch:Kc(c),commit:Hc(c),currentBranch:Xc(c)}},getFrameworks:()=>[],ts:aa.default,Sentry:ze,version:"1.6.11",sdkVersion:null,ignoreMissingConfig:i.ignoreMissingConfig,kind:null},l=await ri(o);return o.getFrameworks=()=>l,o}function Jc(i){try{return((0,xt.spawnSync)("git",["config","--get","remote.origin.url"],{cwd:i}).stdout||"").toString().trim()}catch(s){return ze.captureException(new Error("Error getting git remote URL:",{cause:s})),""}}function Kc(i){let s="master";try{let e=(0,xt.spawnSync)("git",["branch","-r"],{cwd:i});return e.stdout&&e.stdout.toString().trim().split(`
104
+ `),h=!1;for(let f of u){let d=f.trim();if(d.length!==0){if(e.wrapColumn&&f.length>a&&(a=f.length),e.indent){let p=f.match(/^\s+/)?.[0]||"";p.length>0&&(p.length>0&&p.length<t&&(t=p.length),p[0]===" "?r++:p.length>0&&r--)}if(d.at(-1)===";"?n++:d.length>0&&n--,e.quote||e.arrowParens){let p=d.matchAll(l);for(let g of p)if(g.groups)for(let y in c)g.groups[y]&&c[y]++}e.trailingComma&&((f.startsWith("}")||f.startsWith("]"))&&(h?o++:o--),h=d.endsWith(","))}}return{wrapColumn:a,useTabs:r>0,tabWidth:t,quote:c.singleQuote>c.doubleQuote?"single":"double",arrowParensAlways:c.singleParam>0,trailingComma:o>0||c.trailingComma>0,useSemi:n>0,arrayBracketSpacing:void 0,objectCurlySpacing:void 0,...s}}function ra(i,s){let e=Vn(i,{parser:s?.parser||Yn(),...s});return $c(e,i)}function ia(i,s){let e=Vn("("+i+")",{parser:s?.parser||Yn(),...s}),t=e.program.body[0];t.type==="ExpressionStatement"&&(t=t.expression),t.extra?.parenthesized&&(t.extra.parenthesized=!1);let r={$ast:e,$code:" "+i+" ",$type:"module"};return le(t,r)}function Wr(i,s={}){let e=i.$ast||i,t=s.format===!1||!("$code"in i)?{}:sa(i.$code,s.format),{code:r,map:n}=Ac(e,{...s,...t});return{code:r,map:n}}async function qc(i,s={}){let e=await gs.promises.readFile(i,"utf8");return s.sourceFileName=s.sourceFileName??i,ra(e,s)}async function zc(i,s,e){let t="$ast"in i?i.$ast:i,{code:r,map:n}=Wr(t,e);await gs.promises.writeFile(s,r),n&&await gs.promises.writeFile(s+".map",n)}var ds=gt,Wc={functionCall(i,...s){let e=ds.callExpression(ds.identifier(i),s.map(t=>ce(t)));return ea(e)},newExpression(i,...s){let e=ds.newExpression(ds.identifier(i),s.map(t=>ce(t)));return ta(e)},literal(i){return ce(i)},raw(i){return ia(i)}};var ze=je(require("@sentry/node"),1);async function la(i,s){let e=await(0,ue.readdir)(i,{withFileTypes:!0}),t=[];for(let r of e){let n=V.default.join(i,r.name);if(r.isDirectory()){if(!s.has(r.name)){let a=await la(n,s);t.push(...a)}}else t.push(n)}return t}async function ca(i){let s=new Set,e=(...c)=>{if(process.env.DEBUG){let u=new Date,h=`${String(u.getMinutes()).padStart(2,"0")}:${String(u.getSeconds()).padStart(2,"0")}.${String(u.getMilliseconds()).padStart(3,"0")}`;console.debug(h,"[builder-dev-tools]",...c)}},t=async c=>{let u=(0,na.createHash)("md5");return u.update(c),u.digest("hex")},r=V.default.normalize(i.cwd),n=Gc(V.default.normalize(i.cwd))??r,a=Qc(V.default.normalize(i.cwd))??n,o={...V.default,getCwdDir:()=>r,getRepoRootDir:()=>n,getAppRootDir:()=>a,cwd:()=>process.cwd(),exists:async c=>{try{return await(0,ue.access)(c),!0}catch{return!1}},magicast:Jr,existsSync:c=>(0,G.existsSync)(c),readdir:async(c,u)=>{let h=await(0,ue.readdir)(c);return u?h.map(f=>V.default.join(c,f)):h},readdirRecursive:async(c,u)=>la(c,new Set(u)),readdirSync:c=>(0,G.readdirSync)(c),readFile:async c=>{try{return await(0,ue.readFile)(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},readFileSync(c){try{return(0,G.readFileSync)(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},spawnSync:xt.spawnSync,stat:async c=>await(0,ue.stat)(c),statSync:c=>(0,G.statSync)(c),unlinkSync:c=>{(0,G.unlinkSync)(c)},unlink:async c=>{await(0,ue.unlink)(c)},writeFile:async(c,u)=>{c=V.default.normalize(c);let h={path:c,basename:V.default.basename(c),dirname:V.default.dirname(c),extname:V.default.extname(c)};await(0,ue.mkdir)(V.default.dirname(c),{recursive:!0}),await(0,ue.writeFile)(c,u);for(let f of s)await f(h)},hash:t,getDeviceId:()=>t(`${(0,Ns.hostname)()}:${(0,Ns.homedir)()}`),formatCode:async(c,u)=>{let h=null;try{h=await Kr.default.resolveConfig(c)}catch{}try{return Kr.default.format(u,{...h,filepath:c})}catch{}return u},on:(c,u)=>{c==="change"&&s.add(u)},off:(c,u)=>{c==="change"&&s.delete(u)},debug:e,launchEditor:async c=>{try{let u=c.filePath;typeof c.line=="number"&&(u+=`:${c.line}`,typeof c.column=="number"&&(u+=`:${c.column}`)),(0,oa.default)(u,"code",(h,f)=>{ze.captureException(new Error(`Failed to launch editor for ${f}`),{extra:{pathFile:h}})})}catch(u){ze.captureException(new Error("Failed to launch editor",{cause:u}))}},platform:()=>({runtime:"node",os:process.platform}),getRepoInfo:async()=>{let c=V.default.normalize(i.cwd);return{remoteUrl:Jc(c),defaultBranch:Kc(c),commit:Hc(c),currentBranch:Xc(c)}},getFrameworks:()=>[],ts:aa.default,Sentry:ze,version:"1.6.12",sdkVersion:null,ignoreMissingConfig:i.ignoreMissingConfig,kind:null},l=await ri(o);return o.getFrameworks=()=>l,o}function Jc(i){try{return((0,xt.spawnSync)("git",["config","--get","remote.origin.url"],{cwd:i}).stdout||"").toString().trim()}catch(s){return ze.captureException(new Error("Error getting git remote URL:",{cause:s})),""}}function Kc(i){let s="master";try{let e=(0,xt.spawnSync)("git",["branch","-r"],{cwd:i});return e.stdout&&e.stdout.toString().trim().split(`
105
105
  `).map(r=>r.trim()).includes("origin/main")?"main":s}catch(e){return ze.captureException(new Error("Error getting git default branch name:",{cause:e})),s}}function Hc(i){try{return((0,xt.spawnSync)("git",["rev-parse","HEAD"],{cwd:i}).stdout||"").toString().trim()}catch(s){return ze.captureException(new Error("Error getting git commit:",{cause:s})),""}}function Xc(i){try{return((0,xt.spawnSync)("git",["branch","--show-current"],{cwd:i}).stdout||"").toString().trim()}catch(s){return ze.captureException(new Error("Error getting current branch name:",{cause:s})),""}}function Gc(i){let s=V.default.resolve("/");for(let e=0;e<20;e++){let t=V.default.join(i,"package.json");if((0,G.existsSync)(t))return i;if(i===s)break;i=V.default.dirname(i)}return null}function Qc(i){let s=V.default.resolve("/");for(let e=0;e<20;e++){if((0,G.existsSync)(V.default.join(i,"package.json"))||(0,G.existsSync)(V.default.join(i,"remix.config.js"))||(0,G.existsSync)(V.default.join(i,"remix.config.mjs"))||(0,G.existsSync)(V.default.join(i,"remix.config.ts"))||(0,G.existsSync)(V.default.join(i,"vite.config.js"))||(0,G.existsSync)(V.default.join(i,"vite.config.ts"))||(0,G.existsSync)(V.default.join(i,"vite.config.mjs"))||(0,G.existsSync)(V.default.join(i,"next.config.js"))||(0,G.existsSync)(V.default.join(i,"next.config.ts"))||(0,G.existsSync)(V.default.join(i,"angular.json"))||(0,G.existsSync)(V.default.join(i,"project.json"))||(0,G.existsSync)(V.default.join(i,"tsconfig.json")))return i;if(i===s)break;i=V.default.dirname(i)}return null}0&&(module.exports={createDevToolsNodeSys});
package/node/index.mjs CHANGED
@@ -102,5 +102,5 @@ ${" ".repeat(6+r)}^`),c));s+=`
102
102
  ${l.join(`
103
103
  `)}
104
104
  `}this.message=s}},Sc=new Set(["Literal","StringLiteral","NumericLiteral","BooleanLiteral","NullLiteral","RegExpLiteral","BigIntLiteral"]),Hn=new Set(["string","number","boolean","bigint","symbol","undefined"]),Z=mt;function Ec(i){return/^[$A-Z_a-z][\w$]*$/.test(i)}var $r="__magicast_proxy";function le(i,s=new Set){if(i===void 0)return Z.identifier("undefined");if(i===null)return Z.literal(null);if(Hn.has(typeof i))return Z.literal(i);if(s.has(i))throw new se("Can not serialize circular reference");if(s.add(i),i[$r])return i.$ast;if(i instanceof RegExp){let e=Z.regExpLiteral(i.source,i.flags);return delete e.extra.raw,e}return i instanceof Set?Z.newExpression(Z.identifier("Set"),[Z.arrayExpression([...i].map(e=>le(e,s)))]):i instanceof Date?Z.newExpression(Z.identifier("Date"),[Z.literal(i.toISOString())]):i instanceof Map?Z.newExpression(Z.identifier("Map"),[Z.arrayExpression([...i].map(([e,t])=>Z.arrayExpression([le(e,s),le(t,s)])))]):Array.isArray(i)?Z.arrayExpression(i.map(e=>le(e,s))):typeof i=="object"?Z.objectExpression(Object.entries(i).map(([e,t])=>Z.property("init",/^[$A-Z_a-z][\w$]*$/g.test(e)?Z.identifier(e):Z.literal(e),le(t,s)))):Z.literal(i)}function Ac(i,s={}){let e=s;return e[$r]=!0,e.$ast=i,e.$type||(e.$type="object"),e}var wc={enumerable:!0,configurable:!0};function xe(i,s,e){let t=Ac(i,s);return new Proxy({},{ownKeys(){return Object.keys(t).filter(r=>r!==$r&&!r.startsWith("$"))},getOwnPropertyDescriptor(){return wc},has(r,n){return n in t},...e,get(r,n,a){if(n in t)return t[n];if(e.get)return e.get(r,n,a)},set(r,n,a,o){return n in t?(t[n]=a,!0):e.set?e.set(r,n,a,o):!1}})}var fe=mt,vr=new WeakMap;function vc(i,s,e){if(vr.has(s))return vr.get(s);let t=xe(s,{get $declaration(){return i},get imported(){return s.type==="ImportDefaultSpecifier"?"default":s.type==="ImportNamespaceSpecifier"?"*":s.imported.type==="Identifier"?s.imported.name:s.imported.value},set imported(r){if(s.type!=="ImportSpecifier")throw new se("Changing import name is not yet implemented");s.imported.type==="Identifier"?s.imported.name=r:s.imported.value=r},get local(){return s.local.name},set local(r){s.local.name=r},get from(){return i.source.value},set from(r){if(r===i.source.value)return;i.specifiers=i.specifiers.filter(a=>a!==s),i.specifiers.length===0&&(e.body=e.body.filter(a=>a!==i));let n=e.body.find(a=>a.type==="ImportDeclaration"&&a.source.value===r);n?n.specifiers.push(s):e.body.unshift(fe.importDeclaration([s],fe.stringLiteral(r)))},toJSON(){return{imported:this.imported,local:this.local,from:this.from}}},{ownKeys(){return["imported","local","from","toJSON"]}});return vr.set(s,t),t}function Cc(i,s){let e=()=>{let a=[];for(let o of i.body)if(o.type==="ImportDeclaration")for(let l of o.specifiers)a.push(vc(o,l,i));return a},t=(a,o,l)=>{let c=e(),u=c.find(p=>p.local===a),h=o.local||a;if(u)return u.imported=o.imported,u.local=h,u.from=o.from,!0;let f=o.imported==="default"?fe.importDefaultSpecifier(fe.identifier(h)):o.imported==="*"?fe.importNamespaceSpecifier(fe.identifier(h)):fe.importSpecifier(fe.identifier(o.imported),fe.identifier(h)),d=c.find(p=>p.from===o.from)?.$declaration;if(d)d.specifiers.push(f);else if(l==="prepend"||c.length===0)i.body.unshift(fe.importDeclaration([f],fe.stringLiteral(o.from)));else{let p=c.at(-1).$declaration,g=i.body.indexOf(p);i.body.splice(g+1,0,fe.importDeclaration([f],fe.stringLiteral(o.from)))}return!0},r=a=>{let o=e().find(u=>u.local===a);if(!o)return!1;let l=o.$declaration,c=o.$ast;return l.specifiers=l.specifiers.filter(u=>u!==c),l.specifiers.length===0&&(i.body=i.body.filter(u=>u!==l)),!0};return xe(i,{$type:"imports",$add(a){t(a.local||a.imported,a,"prepend")},$prepend(a){t(a.local||a.imported,a,"prepend")},$append(a){t(a.local||a.imported,a,"append")},get $items(){return e()},toJSON(){return e().reduce((a,o)=>(a[o.local]=o,a),{})}},{get(a,o){return e().find(l=>l.local===o)},set(a,o,l){return t(o,l,"prepend")},deleteProperty(a,o){return r(o)},ownKeys(){return e().map(a=>a.local)},has(a,o){return e().some(l=>l.local===o)}})}function As(i,s,e){let t=n=>s[n],r=(n,a)=>{s[n]=a};return xe(i,{$type:"array",push(n){s.push(le(n))},pop(){return oe(s.pop(),e)},unshift(n){s.unshift(le(n))},shift(){return oe(s.shift(),e)},splice(n,a,...o){return s.splice(n,a,...o.map(c=>le(c))).map(c=>oe(c,e))},find(n){return s.map(a=>oe(a,e)).find(n)},findIndex(n){return s.map(a=>oe(a,e)).findIndex(n)},includes(n){return s.map(a=>oe(a,e)).includes(n)},toJSON(){return s.map(n=>oe(n,e))}},{get(n,a){if(a==="length")return s.length;if(a===Symbol.iterator)return function*(){for(let c of s)yield oe(c,e)};if(typeof a=="symbol")return;let o=+a;if(Number.isNaN(o))return;let l=t(o);if(l)return oe(l,e)},set(n,a,o){if(typeof a=="symbol")return!1;let l=+a;return Number.isNaN(l)?!1:(r(l,le(o)),!0)},deleteProperty(n,a){if(typeof a=="symbol")return!1;let o=+a;return Number.isNaN(o)?!1:(s[o]=le(void 0),!0)},ownKeys(){return["length",...s.map((n,a)=>a.toString())]}})}function Ic(i,s){if("elements"in i)return As(i,i.elements,s)}function Xn(i,s){if(i.type!=="CallExpression")throw new se("Not a function call");function e(r){if(r.type==="Identifier")return r.name;if(r.type==="MemberExpression")return`${e(r.object)}.${e(r.property)}`;throw new se("Not implemented")}let t=As(i,i.arguments,s);return xe(i,{$type:"function-call",$callee:e(i.callee),$args:t},{})}function Nc(i,s){if(i.type!=="ArrowFunctionExpression")throw new se("Not an arrow function expression");let e=As(i,i.params,s);return xe(i,{$type:"arrow-function-expression",$params:e,$body:oe(i.body,s)},{})}var kc=mt;function Lc(i,s){if(!("properties"in i))return;let e=n=>{for(let a of i.properties){if("key"in a&&"name"in a.key&&a.key.name===n)return a.value;if(a.type==="ObjectProperty"&&(a.key.type==="StringLiteral"||a.key.type==="NumericLiteral"||a.key.type==="BooleanLiteral")&&a.key.value.toString()===n)return a.value.value??a.value}},t=(n,a=!1)=>{if("key"in n&&"name"in n.key)return n.key.name;if(n.type==="ObjectProperty"&&(n.key.type==="StringLiteral"||n.key.type==="NumericLiteral"||n.key.type==="BooleanLiteral"))return n.key.value.toString();if(a)throw new se(`Casting "${n.type}" is not supported`,{ast:n,code:s?.$code})},r=(n,a)=>{let o=i.properties.find(l=>t(l)===n);o?o.value=a:Ec(n)?i.properties.push({type:"Property",key:{type:"Identifier",name:n},value:a}):i.properties.push({type:"ObjectProperty",key:kc.stringLiteral(n),value:a})};return xe(i,{$type:"object",toJSON(){return i.properties.reduce((n,a)=>("key"in a&&"name"in a.key&&(n[a.key.name]=oe(a.value,s)),n),{})}},{get(n,a){let o=e(a);if(o)return oe(o,s)},set(n,a,o){return typeof a!="string"&&(a=String(a)),r(a,le(o)),!0},deleteProperty(n,a){typeof a!="string"&&(a=String(a));let o=i.properties.findIndex(l=>"key"in l&&"name"in l.key&&l.key.name===a);return o!==-1&&i.properties.splice(o,1),!0},ownKeys(){return i.properties.map(n=>t(n,!0)).filter(Boolean)}})}function Gn(i,s){if(i.type!=="NewExpression")throw new se("Not a new expression");function e(r){if(r.type==="Identifier")return r.name;if(r.type==="MemberExpression")return`${e(r.object)}.${e(r.property)}`;throw new se("Not implemented")}let t=As(i,i.arguments,s);return xe(i,{$type:"new-expression",$callee:e(i.callee),$args:t},{})}function Dc(i){if(i.type!=="Identifier")throw new se("Not an identifier");return xe(i,{$type:"identifier",$name:i.name},{})}function Oc(i){if(i.type!=="LogicalExpression")throw new se("Not a logical expression");return xe(i,{$type:"logicalExpression"},{})}function Mc(i){if(i.type!=="MemberExpression")throw new se("Not a member expression");return xe(i,{$type:"memberExpression"},{})}var Cr=new WeakMap;function oe(i,s){if(Hn.has(typeof i))return i;if(Sc.has(i.type))return i.value;if(Cr.has(i))return Cr.get(i);let e;switch(i.type){case"ObjectExpression":{e=Lc(i,s);break}case"ArrayExpression":{e=Ic(i,s);break}case"CallExpression":{e=Xn(i,s);break}case"ArrowFunctionExpression":{e=Nc(i,s);break}case"NewExpression":{e=Gn(i,s);break}case"Identifier":{e=Dc(i);break}case"LogicalExpression":{e=Oc(i);break}case"MemberExpression":{e=Mc(i);break}case"TSAsExpression":case"TSSatisfiesExpression":{e=oe(i.expression,s);break}default:throw new se(`Casting "${i.type}" is not supported`,{ast:i,code:s?.$code})}return Cr.set(i,e),e}var Ft=mt;function Fc(i,s){let e=r=>{let n=r==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration";for(let a of i.body)if(a.type===n){if(r==="default")return a.declaration;if(a.declaration&&"declarations"in a.declaration){let o=a.declaration.declarations[0];if("name"in o.id&&o.id.name===r)return o.init}}},t=(r,n)=>{let a=r==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration",o=le(n);for(let l of i.body)if(l.type===a){if(r==="default"){l.declaration=o;return}if(l.declaration&&"declarations"in l.declaration){let c=l.declaration.declarations[0];if("name"in c.id&&c.id.name===r){c.init=o;return}}}i.body.push(r==="default"?Ft.exportDefaultDeclaration(o):Ft.exportNamedDeclaration(Ft.variableDeclaration("const",[Ft.variableDeclarator(Ft.identifier(r),o)])))};return xe(i,{$type:"exports"},{get(r,n){let a=e(n);if(a)return oe(a,s)},set(r,n,a){return t(n,a),!0},ownKeys(){return i.body.flatMap(r=>r.type==="ExportDefaultDeclaration"?["default"]:r.type==="ExportNamedDeclaration"&&r.declaration&&"declarations"in r.declaration?r.declaration.declarations.map(n=>"name"in n.id?n.id.name:""):[]).filter(Boolean)},deleteProperty(r,n){let a=n==="default"?"ExportDefaultDeclaration":"ExportNamedDeclaration";for(let o=0;o<i.body.length;o++){let l=i.body[o];if(l.type===a){if(n==="default")return i.body.splice(o,1),!0;if(l.declaration&&"declarations"in l.declaration){let c=l.declaration.declarations[0];if("name"in c.id&&c.id.name===n)return i.body.splice(o,1),!0}}}return!1}})}function Bc(i,s){let e=i.program;if(e.type!=="Program")throw new se(`Cannot proxify ${i.type} as module`);let t={$code:s,$type:"module"},r=xe(e,t,{ownKeys(){return["imports","exports","generate"]}});return t.exports=Fc(e,r),t.imports=Cc(e),t.generate=n=>qr(r,n),r}function Qn(i,s={}){let e={wrapColumn:s.wrapColumn===void 0,indent:s.tabWidth===void 0||s.useTabs===void 0,quote:s.quote===void 0,arrowParens:s.arrowParensAlways===void 0,trailingComma:s.trailingComma===void 0},t=2,r=0,n=0,a=0,o=0,l=/(?<doubleQuote>"[^"]+")|(?<singleQuote>'[^']+')|(?<singleParam>\([^),]+\)\s*=>)|(?<trailingComma>,\s*[\]}])/g,c={doubleQuote:0,singleQuote:0,singleParam:0,trailingComma:0},u=(i||"").split(`
105
- `),h=!1;for(let f of u){let d=f.trim();if(d.length!==0){if(e.wrapColumn&&f.length>a&&(a=f.length),e.indent){let p=f.match(/^\s+/)?.[0]||"";p.length>0&&(p.length>0&&p.length<t&&(t=p.length),p[0]===" "?r++:p.length>0&&r--)}if(d.at(-1)===";"?n++:d.length>0&&n--,e.quote||e.arrowParens){let p=d.matchAll(l);for(let g of p)if(g.groups)for(let y in c)g.groups[y]&&c[y]++}e.trailingComma&&((f.startsWith("}")||f.startsWith("]"))&&(h?o++:o--),h=d.endsWith(","))}}return{wrapColumn:a,useTabs:r>0,tabWidth:t,quote:c.singleQuote>c.doubleQuote?"single":"double",arrowParensAlways:c.singleParam>0,trailingComma:o>0||c.trailingComma>0,useSemi:n>0,arrayBracketSpacing:void 0,objectCurlySpacing:void 0,...s}}function Yn(i,s){let e=Bn(i,{parser:s?.parser||Kn(),...s});return Bc(e,i)}function Zn(i,s){let e=Bn("("+i+")",{parser:s?.parser||Kn(),...s}),t=e.program.body[0];t.type==="ExpressionStatement"&&(t=t.expression),t.extra?.parenthesized&&(t.extra.parenthesized=!1);let r={$ast:e,$code:" "+i+" ",$type:"module"};return oe(t,r)}function qr(i,s={}){let e=i.$ast||i,t=s.format===!1||!("$code"in i)?{}:Qn(i.$code,s.format),{code:r,map:n}=xc(e,{...s,...t});return{code:r,map:n}}async function _c(i,s={}){let e=await Ir.readFile(i,"utf8");return s.sourceFileName=s.sourceFileName??i,Yn(e,s)}async function jc(i,s,e){let t="$ast"in i?i.$ast:i,{code:r,map:n}=qr(t,e);await Ir.writeFile(s,r),n&&await Ir.writeFile(s+".map",n)}var hs=mt,Rc={functionCall(i,...s){let e=hs.callExpression(hs.identifier(i),s.map(t=>le(t)));return Xn(e)},newExpression(i,...s){let e=hs.newExpression(hs.identifier(i),s.map(t=>le(t)));return Gn(e)},literal(i){return le(i)},raw(i){return Zn(i)}};import*as $e from"@sentry/node";async function sa(i,s){let e=await ta(i,{withFileTypes:!0}),t=[];for(let r of e){let n=$.join(i,r.name);if(r.isDirectory()){if(!s.has(r.name)){let a=await sa(n,s);t.push(...a)}}else t.push(n)}return t}async function tu(i){let s=new Set,e=(...c)=>{if(process.env.DEBUG){let u=new Date,h=`${String(u.getMinutes()).padStart(2,"0")}:${String(u.getSeconds()).padStart(2,"0")}.${String(u.getMilliseconds()).padStart(3,"0")}`;console.debug(h,"[builder-dev-tools]",...c)}},t=async c=>{let u=Jc("md5");return u.update(c),u.digest("hex")},r=$.normalize(i.cwd),n=au($.normalize(i.cwd))??r,a=ou($.normalize(i.cwd))??n,o={...$,getCwdDir:()=>r,getRepoRootDir:()=>n,getAppRootDir:()=>a,cwd:()=>process.cwd(),exists:async c=>{try{return await Uc(c),!0}catch{return!1}},magicast:zr,existsSync:c=>ce(c),readdir:async(c,u)=>{let h=await ta(c);return u?h.map(f=>$.join(c,f)):h},readdirRecursive:async(c,u)=>sa(c,new Set(u)),readdirSync:c=>Kc(c),readFile:async c=>{try{return await $c(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},readFileSync(c){try{return Hc(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},spawnSync:qt,stat:async c=>await qc(c),statSync:c=>Xc(c),unlinkSync:c=>{Gc(c)},unlink:async c=>{await zc(c)},writeFile:async(c,u)=>{c=$.normalize(c);let h={path:c,basename:$.basename(c),dirname:$.dirname(c),extname:$.extname(c)};await Vc($.dirname(c),{recursive:!0}),await Wc(c,u);for(let f of s)await f(h)},hash:t,getDeviceId:()=>t(`${Yc()}:${Qc()}`),formatCode:async(c,u)=>{let h=null;try{h=await ea.resolveConfig(c)}catch{}try{return ea.format(u,{...h,filepath:c})}catch{}return u},on:(c,u)=>{c==="change"&&s.add(u)},off:(c,u)=>{c==="change"&&s.delete(u)},debug:e,launchEditor:async c=>{try{let u=c.filePath;typeof c.line=="number"&&(u+=`:${c.line}`,typeof c.column=="number"&&(u+=`:${c.column}`)),eu(u,"code",(h,f)=>{$e.captureException(new Error(`Failed to launch editor for ${f}`),{extra:{pathFile:h}})})}catch(u){$e.captureException(new Error("Failed to launch editor",{cause:u}))}},platform:()=>({runtime:"node",os:process.platform}),getRepoInfo:async()=>{let c=$.normalize(i.cwd);return{remoteUrl:su(c),defaultBranch:ru(c),commit:iu(c),currentBranch:nu(c)}},getFrameworks:()=>[],ts:Zc,Sentry:$e,version:"1.6.11",sdkVersion:null,ignoreMissingConfig:i.ignoreMissingConfig,kind:null},l=await Yr(o);return o.getFrameworks=()=>l,o}function su(i){try{return(qt("git",["config","--get","remote.origin.url"],{cwd:i}).stdout||"").toString().trim()}catch(s){return $e.captureException(new Error("Error getting git remote URL:",{cause:s})),""}}function ru(i){let s="master";try{let e=qt("git",["branch","-r"],{cwd:i});return e.stdout&&e.stdout.toString().trim().split(`
105
+ `),h=!1;for(let f of u){let d=f.trim();if(d.length!==0){if(e.wrapColumn&&f.length>a&&(a=f.length),e.indent){let p=f.match(/^\s+/)?.[0]||"";p.length>0&&(p.length>0&&p.length<t&&(t=p.length),p[0]===" "?r++:p.length>0&&r--)}if(d.at(-1)===";"?n++:d.length>0&&n--,e.quote||e.arrowParens){let p=d.matchAll(l);for(let g of p)if(g.groups)for(let y in c)g.groups[y]&&c[y]++}e.trailingComma&&((f.startsWith("}")||f.startsWith("]"))&&(h?o++:o--),h=d.endsWith(","))}}return{wrapColumn:a,useTabs:r>0,tabWidth:t,quote:c.singleQuote>c.doubleQuote?"single":"double",arrowParensAlways:c.singleParam>0,trailingComma:o>0||c.trailingComma>0,useSemi:n>0,arrayBracketSpacing:void 0,objectCurlySpacing:void 0,...s}}function Yn(i,s){let e=Bn(i,{parser:s?.parser||Kn(),...s});return Bc(e,i)}function Zn(i,s){let e=Bn("("+i+")",{parser:s?.parser||Kn(),...s}),t=e.program.body[0];t.type==="ExpressionStatement"&&(t=t.expression),t.extra?.parenthesized&&(t.extra.parenthesized=!1);let r={$ast:e,$code:" "+i+" ",$type:"module"};return oe(t,r)}function qr(i,s={}){let e=i.$ast||i,t=s.format===!1||!("$code"in i)?{}:Qn(i.$code,s.format),{code:r,map:n}=xc(e,{...s,...t});return{code:r,map:n}}async function _c(i,s={}){let e=await Ir.readFile(i,"utf8");return s.sourceFileName=s.sourceFileName??i,Yn(e,s)}async function jc(i,s,e){let t="$ast"in i?i.$ast:i,{code:r,map:n}=qr(t,e);await Ir.writeFile(s,r),n&&await Ir.writeFile(s+".map",n)}var hs=mt,Rc={functionCall(i,...s){let e=hs.callExpression(hs.identifier(i),s.map(t=>le(t)));return Xn(e)},newExpression(i,...s){let e=hs.newExpression(hs.identifier(i),s.map(t=>le(t)));return Gn(e)},literal(i){return le(i)},raw(i){return Zn(i)}};import*as $e from"@sentry/node";async function sa(i,s){let e=await ta(i,{withFileTypes:!0}),t=[];for(let r of e){let n=$.join(i,r.name);if(r.isDirectory()){if(!s.has(r.name)){let a=await sa(n,s);t.push(...a)}}else t.push(n)}return t}async function tu(i){let s=new Set,e=(...c)=>{if(process.env.DEBUG){let u=new Date,h=`${String(u.getMinutes()).padStart(2,"0")}:${String(u.getSeconds()).padStart(2,"0")}.${String(u.getMilliseconds()).padStart(3,"0")}`;console.debug(h,"[builder-dev-tools]",...c)}},t=async c=>{let u=Jc("md5");return u.update(c),u.digest("hex")},r=$.normalize(i.cwd),n=au($.normalize(i.cwd))??r,a=ou($.normalize(i.cwd))??n,o={...$,getCwdDir:()=>r,getRepoRootDir:()=>n,getAppRootDir:()=>a,cwd:()=>process.cwd(),exists:async c=>{try{return await Uc(c),!0}catch{return!1}},magicast:zr,existsSync:c=>ce(c),readdir:async(c,u)=>{let h=await ta(c);return u?h.map(f=>$.join(c,f)):h},readdirRecursive:async(c,u)=>sa(c,new Set(u)),readdirSync:c=>Kc(c),readFile:async c=>{try{return await $c(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},readFileSync(c){try{return Hc(c,"utf-8")}catch(u){if(u.code==="ENOENT")return null;throw e(u,c),u}},spawnSync:qt,stat:async c=>await qc(c),statSync:c=>Xc(c),unlinkSync:c=>{Gc(c)},unlink:async c=>{await zc(c)},writeFile:async(c,u)=>{c=$.normalize(c);let h={path:c,basename:$.basename(c),dirname:$.dirname(c),extname:$.extname(c)};await Vc($.dirname(c),{recursive:!0}),await Wc(c,u);for(let f of s)await f(h)},hash:t,getDeviceId:()=>t(`${Yc()}:${Qc()}`),formatCode:async(c,u)=>{let h=null;try{h=await ea.resolveConfig(c)}catch{}try{return ea.format(u,{...h,filepath:c})}catch{}return u},on:(c,u)=>{c==="change"&&s.add(u)},off:(c,u)=>{c==="change"&&s.delete(u)},debug:e,launchEditor:async c=>{try{let u=c.filePath;typeof c.line=="number"&&(u+=`:${c.line}`,typeof c.column=="number"&&(u+=`:${c.column}`)),eu(u,"code",(h,f)=>{$e.captureException(new Error(`Failed to launch editor for ${f}`),{extra:{pathFile:h}})})}catch(u){$e.captureException(new Error("Failed to launch editor",{cause:u}))}},platform:()=>({runtime:"node",os:process.platform}),getRepoInfo:async()=>{let c=$.normalize(i.cwd);return{remoteUrl:su(c),defaultBranch:ru(c),commit:iu(c),currentBranch:nu(c)}},getFrameworks:()=>[],ts:Zc,Sentry:$e,version:"1.6.12",sdkVersion:null,ignoreMissingConfig:i.ignoreMissingConfig,kind:null},l=await Yr(o);return o.getFrameworks=()=>l,o}function su(i){try{return(qt("git",["config","--get","remote.origin.url"],{cwd:i}).stdout||"").toString().trim()}catch(s){return $e.captureException(new Error("Error getting git remote URL:",{cause:s})),""}}function ru(i){let s="master";try{let e=qt("git",["branch","-r"],{cwd:i});return e.stdout&&e.stdout.toString().trim().split(`
106
106
  `).map(r=>r.trim()).includes("origin/main")?"main":s}catch(e){return $e.captureException(new Error("Error getting git default branch name:",{cause:e})),s}}function iu(i){try{return(qt("git",["rev-parse","HEAD"],{cwd:i}).stdout||"").toString().trim()}catch(s){return $e.captureException(new Error("Error getting git commit:",{cause:s})),""}}function nu(i){try{return(qt("git",["branch","--show-current"],{cwd:i}).stdout||"").toString().trim()}catch(s){return $e.captureException(new Error("Error getting current branch name:",{cause:s})),""}}function au(i){let s=$.resolve("/");for(let e=0;e<20;e++){let t=$.join(i,"package.json");if(ce(t))return i;if(i===s)break;i=$.dirname(i)}return null}function ou(i){let s=$.resolve("/");for(let e=0;e<20;e++){if(ce($.join(i,"package.json"))||ce($.join(i,"remix.config.js"))||ce($.join(i,"remix.config.mjs"))||ce($.join(i,"remix.config.ts"))||ce($.join(i,"vite.config.js"))||ce($.join(i,"vite.config.ts"))||ce($.join(i,"vite.config.mjs"))||ce($.join(i,"next.config.js"))||ce($.join(i,"next.config.ts"))||ce($.join(i,"angular.json"))||ce($.join(i,"project.json"))||ce($.join(i,"tsconfig.json")))return i;if(i===s)break;i=$.dirname(i)}return null}export{tu as createDevToolsNodeSys};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@builder.io/dev-tools",
3
- "version": "1.6.11",
3
+ "version": "1.6.12",
4
4
  "description": "Builder.io Visual CMS Devtools",
5
5
  "type": "module",
6
6
  "main": "./core/index.cjs",