@builder.io/dev-tools 1.0.20 → 1.1.0-rc0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/cli/index.cjs +877 -1
- package/core/index.cjs +36 -167
- package/core/index.mjs +36 -167
- package/node/index.cjs +1 -1
- package/node/index.mjs +1 -1
- package/package.json +36 -5
- package/server/index.cjs +11 -32
- package/server/index.mjs +11 -32
- package/types/cli/add.d.ts +53 -0
- package/types/cli/credentials.d.ts +31 -0
- package/types/cli/download.d.ts +10 -0
- package/types/cli/figma-publish.d.ts +39 -0
- package/types/cli/figma.d.ts +9 -0
- package/types/cli/help.d.ts +1 -0
- package/types/cli/prettier.d.ts +1 -0
- package/types/core/adapters/angular/angular-ensure-builder-setup.d.ts +1 -1
- package/types/core/adapters/angular/index.d.ts +0 -1
- package/types/figma/index.d.ts +70 -0
- package/types/figma/jsx-runtime/index.d.cts +2 -0
- package/types/figma/jsx-runtime/index.d.ts +2 -0
- package/types/core/adapters/angular/angular-app-module-imports.d.ts +0 -3
- package/types/core/adapters/angular/angular-app-module-imports.unit.d.ts +0 -1
package/core/index.mjs
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
var
|
|
2
|
-
`),n;for(;(n=
|
|
3
|
-
`),i=i.replace(/\\r/g,"\r")),t[o]=i}return t}var
|
|
1
|
+
var qr=Object.create;var Gt=Object.defineProperty;var Jr=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Yr=Object.getPrototypeOf,Hr=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Gr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Wr(t))!Hr.call(e,o)&&o!==r&&Gt(e,o,{get:()=>t[o],enumerable:!(n=Jr(t,o))||n.enumerable});return e};var Xr=(e,t,r)=>(r=e!=null?qr(Yr(e)):{},Gr(t||!e||!e.__esModule?Gt(r,"default",{value:e,enumerable:!0}):r,e));var kt=me(lt=>{"use strict";Object.defineProperty(lt,"__esModule",{value:!0});function gr(e){return Object.prototype.toString.call(e)}lt.getType=gr;function la(e){throw new TypeError("unsupported data type: "+gr(e))}lt.throwUnknownDataType=la});var $t=me(pe=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});var ce="";for(let e=0;e<10;e++){let t=String.fromCharCode(48+e);ce+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(65+e);ce+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(97+e);ce+=t}var Oe=ce.length,_t={};for(let e=0;e<Oe;e++){let t=ce[e];_t[t]=e}function Bt(e){let t=0,r=1;for(let n=e.length-1;n>=0;n--){let o=e[n],i=_t[o];i*=r,t+=i,r*=Oe}return t}pe.s_to_int=Bt;function xr(e){let t=BigInt(0),r=BigInt(1),n=BigInt(Oe);for(let o=e.length-1;o>=0;o--){let i=e[o],a=BigInt(_t[i]);a*=r,t+=a,r*=n}return t}pe.s_to_big_int=xr;function Vt(e){if(e===0)return ce[0];let t=[];for(;e!==0;){let r=e%Oe,n=ce[r];t.push(n),e-=r,e/=Oe}return t.reverse().join("")}pe.int_to_s=Vt;function hr(e){let t=BigInt(0),r=BigInt(Oe);if(e===t)return ce[0];let n=[];for(;e!==t;){let o=e%r,i=ce[Number(o)];n.push(i),e-=o,e/=r}return n.reverse().join("")}pe.big_int_to_s=hr;function pt(e){return e.split("").reverse().join("")}function Cr(e){if(e<0)return"-"+Cr(-e);let[t,r]=e.toString().split(".");if(!r)return Vt(e);let n;r&&([r,n]=r.split("e")),t=ct(t),r=pt(r),r=ct(r);let o=t+"."+r;if(n){switch(o+=".",n[0]){case"+":n=n.slice(1);break;case"-":o+="-",n=n.slice(1);break}n=pt(n),n=ct(n),o+=n}return o}pe.num_to_s=Cr;function ct(e){let t=+e;return t.toString()===e?Vt(t):":"+hr(BigInt(e))}pe.int_str_to_s=ct;function jt(e){return e[0]===":"?xr(e.substring(1)).toString():Bt(e).toString()}function Sr(e){if(e[0]==="-")return-Sr(e.substr(1));let[t,r,n]=e.split(".");if(!r)return Bt(t);t=jt(t),r=jt(r),r=pt(r);let o=t+"."+r;if(n){o+="e";let i=!1;n[0]==="-"&&(i=!0,n=n.slice(1)),n=jt(n),n=pt(n),o+=i?-n:+n}return+o}pe.s_to_num=Sr});var Kt=me(ue=>{"use strict";Object.defineProperty(ue,"__esModule",{value:!0});var zt=$t();function ca(e){return"n|"+zt.num_to_s(e)}ue.encodeNum=ca;function pa(e){return e=e.replace("n|",""),zt.s_to_num(e)}ue.decodeNum=pa;function ua(e){return typeof e=="number"?e:zt.s_to_int(e)}ue.decodeKey=ua;function ma(e){return e?"b|T":"b|F"}ue.encodeBool=ma;function fa(e){switch(e){case"b|T":return!0;case"b|F":return!1}return!!e}ue.decodeBool=fa;function da(e){switch(e[0]+e[1]){case"b|":case"o|":case"n|":case"a|":case"s|":e="s|"+e}return e}ue.encodeStr=da;function ga(e){return e[0]+e[1]==="s|"?e.substr(2):e}ue.decodeStr=ga});var Tr=me(Ut=>{"use strict";Object.defineProperty(Ut,"__esModule",{value:!0});Ut.config={sort_key:!1}});var Qt=me(Ee=>{"use strict";Object.defineProperty(Ee,"__esModule",{value:!0});var xa=Tr(),ha=kt(),Mt=Kt(),Ca=$t();function Sa(e){return e.store.toArray()}Ee.memToValues=Sa;function yr(){let e=[];return{forEach(t){for(let r=0;r<e.length;r++)if(t(e[r])==="break")return},add(t){e.push(t)},toArray(){return e}}}Ee.makeInMemoryStore=yr;function wr(){let e=Object.create(null),t=Object.create(null);return{getValue(r){return e[r]},getSchema(r){return t[r]},forEachValue(r){for(let[n,o]of Object.entries(e))if(r(n,o)==="break")return},forEachSchema(r){for(let[n,o]of Object.entries(t))if(r(n,o)==="break")return},setValue(r,n){e[r]=n},setSchema(r,n){t[r]=n},hasValue(r){return r in e},hasSchema(r){return r in t}}}Ee.makeInMemoryCache=wr;function Ta(){return{store:yr(),cache:wr(),keyCount:0}}Ee.makeInMemoryMemory=Ta;function De(e,t){if(e.cache.hasValue(t))return e.cache.getValue(t);let r=e.keyCount++,n=Ca.num_to_s(r);return e.store.add(t),e.cache.setValue(t,n),n}function ya(e,t){xa.config.sort_key&&t.sort();let r=t.join(",");if(e.cache.hasSchema(r))return e.cache.getSchema(r);let n=Ge(e,t,void 0);return e.cache.setSchema(r,n),n}function Ge(e,t,r){if(t===null)return"";switch(typeof t){case"undefined":if(Array.isArray(r))return Ge(e,null,r);break;case"object":if(t===null)return De(e,null);if(Array.isArray(t)){let n="a";for(let o=0;o<t.length;o++){let i=t[o],a=i===null?"_":Ge(e,i,t);n+="|"+a}return n==="a"&&(n="a|"),De(e,n)}else{let n=Object.keys(t);if(n.length===0)return De(e,"o|");let o="o",i=ya(e,n);o+="|"+i;for(let a of n){let s=t[a],l=Ge(e,s,t);o+="|"+l}return De(e,o)}case"boolean":return De(e,Mt.encodeBool(t));case"number":return De(e,Mt.encodeNum(t));case"string":return De(e,Mt.encodeStr(t))}return ha.throwUnknownDataType(t)}Ee.addValue=Ge});var Jt=me(Ze=>{"use strict";Object.defineProperty(Ze,"__esModule",{value:!0});var wa=kt(),ut=Kt(),qt=Qt();function Da(e){let t=qt.makeInMemoryMemory(),r=qt.addValue(t,e,void 0);return[qt.memToValues(t),r]}Ze.compress=Da;function Ea(e,t){if(t==="o|")return{};let r={},n=t.split("|"),o=n[1],i=Xe(e,o),a=n.length;a-2===1&&!Array.isArray(i)&&(i=[i]);for(let s=2;s<a;s++){let l=i[s-2],c=n[s];c=Xe(e,c),r[l]=c}return r}function Pa(e,t){if(t==="a|")return[];let r=t.split("|"),n=r.length-1,o=new Array(n);for(let i=0;i<n;i++){let a=r[i+1];a=Xe(e,a),o[i]=a}return o}function Xe(e,t){if(t===""||t==="_")return null;let r=ut.decodeKey(t),n=e[r];if(n===null)return n;switch(typeof n){case"undefined":return n;case"number":return n;case"string":switch(n[0]+n[1]){case"b|":return ut.decodeBool(n);case"o|":return Ea(e,n);case"n|":return ut.decodeNum(n);case"a|":return Pa(e,n);default:return ut.decodeStr(n)}}return wa.throwUnknownDataType(n)}Ze.decode=Xe;function va(e){let[t,r]=e;return Xe(t,r)}Ze.decompress=va});var Er=me(mt=>{"use strict";Object.defineProperty(mt,"__esModule",{value:!0});function ba(e){for(let t in e)e[t]===void 0&&delete e[t]}mt.trimUndefined=ba;function Ia(e){Dr(e,new Set)}mt.trimUndefinedRecursively=Ia;function Dr(e,t){t.add(e);for(let r in e)if(e[r]===void 0)delete e[r];else{let n=e[r];n&&typeof n=="object"&&!t.has(n)&&Dr(n,t)}}});var br=me(he=>{"use strict";Object.defineProperty(he,"__esModule",{value:!0});var Pr=Jt();he.compress=Pr.compress;he.decompress=Pr.decompress;var Na=Jt();he.decode=Na.decode;var Ra=Qt();he.addValue=Ra.addValue;var vr=Er();he.trimUndefined=vr.trimUndefined;he.trimUndefinedRecursively=vr.trimUndefinedRecursively});async function Xt(e,t){let r=e.resolve("/");for(let n=0;n<20;n++){let o=e.join(t,"package.json"),i=await e.readFile(o);if(i)return JSON.parse(i);if(t===r)break;t=e.dirname(t)}return null}async function Zt(e,t){for(let r=0;r<20;r++){let n=e.dirname(t),o=e.join(n,"node_modules");if(await e.exists(o))return o;if(t===e.getRootDir())break;t=e.dirname(t)}return e.join(e.getRootDir(),"node_modules")}async function ke(e,t,r){let n=await e.readdir(t);return n.includes(r)?e.join(t,r):(await Promise.all(n.map(async i=>{if(i.startsWith(".")||i==="node_modules")return;let a=e.join(t,i);if((await e.stat(a)).isDirectory()){let l=await ke(e,a,r);if(l)return l}}))).find(i=>typeof i=="string")}async function Ce(e){let t=[],r=await Xt(e,e.getRootDir());if(r){let n=en(r);t.push(...n)}return t}function en(e){let t=[];if(e&&typeof e=="object"){let r=new Set(Object.keys({...e.dependencies,...e.devDependencies}));for(let n of Zr)r.has(n)&&(t.some(o=>o.name===n)||t.push({name:n}))}return t}var Zr=["@shopify/remix-oxygen","@shopify/hydrogen","@builder.io/qwik-city","@remix-run/react","@sveltejs/kit","astro","gatsby","next","nuxt","@builder.io/qwik","@angular/core","react","solid-js","svelte","vue"];async function Z(e){let t=tn(e),r=await e.readFile(t);return typeof r=="string"?JSON.parse(r):{}}async function ee(e,t){t=typeof t=="object"&&t!=null?t:{};let r=tn(e);await e.writeFile(r,JSON.stringify(t??{},null,2))}function tn(e){let t=e.getRootDir();return e.join(t,"node_modules",".builder","builder-cache.json")}async function fe(e,t,r){let n={envKey:r,envValue:null,file:""};for(let o of t){let i=e.join(e.getRootDir(),o),a=await eo(e,i);if(a){let s=a[r];if(typeof s=="string"&&s.length>0&&s!=="YOUR_API_KEY")return n.envValue=s,n.file=i,n}}return n.file=e.join(e.getRootDir(),t[t.length-1]),n}async function eo(e,t){let r=await e.readFile(t);return typeof r=="string"?nn(r):null}function nn(e){let t={},r=e.replace(/\r\n?/gm,`
|
|
2
|
+
`),n;for(;(n=to.exec(r))!=null;){let o=n[1],i=n[2]||"";i=i.trim();let a=i[0];i=i.replace(/^(['"`])([\s\S]*)\1$/gm,"$2"),a==='"'&&(i=i.replace(/\\n/g,`
|
|
3
|
+
`),i=i.replace(/\\r/g,"\r")),t[o]=i}return t}var to=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;async function de(e,t,r,n){let o="# https://www.builder.io/c/docs/using-your-api-key",i=await e.readFile(t);if(i)if(i.includes(r))if(i.includes(n))e.debug(`"${r}" with "${n}" already set in ${t}`);else return e.debug(`Replace "${r}" in ${t}`),i=i.replace(new RegExp(`${r}=.*`),`${r}=${n}`),await e.writeFile(t,i),"update";else return e.debug(`Append "${r}" to ${t}`),i+=`
|
|
4
4
|
|
|
5
5
|
${o}
|
|
6
6
|
${r}=${n}
|
|
7
7
|
|
|
8
8
|
`,await e.writeFile(t,i),"update";else return e.debug(`Creating new .env file with "${r}" at ${t}`),i=[o,`${r}=${n}`,""].join(`
|
|
9
|
-
`),await e.writeFile(t,i),"create";return null}async function
|
|
9
|
+
`),await e.writeFile(t,i),"create";return null}async function je(e){return await fe(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],Se)}async function rn(e,t){let r=await je(e),n=await de(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var Se="NEXT_PUBLIC_BUILDER_API_KEY";function D(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest)}function et(e,t=""){let r=D(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
|
|
10
10
|
`:n.printNode(e.ts.EmitHint.Unspecified,t,e.ts.createSourceFile("module.tsx","",e.ts.ScriptTarget.Latest)).trim()+`
|
|
11
|
-
`}return""}function b(e,t,r){t=W(t),r=W(r),t=e.dirname(t);let n=e.basename(r,e.extname(r));r=e.dirname(r);let o;return n==="index"?o=e.relative(t,r):o=e.relative(t,e.join(r,n)),o=W(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function W(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Ee(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return ln(o==="index"?e.basename(e.dirname(t)):o)}function ln(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=W(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function _(e,t){let r=W(e.relative(e.getRootDir(),t));r=r.split("/").filter(o=>o!=="."&&o!==".."&&o!=="").join("/"),r.endsWith(".tsx")||r.endsWith(".jsx")?r=r.slice(0,-4):(r.endsWith(".ts")||r.endsWith(".js"))&&(r=r.slice(0,-3));let n=e.getFrameworks();return r.startsWith("src/")&&(r=r.slice(4)),n.some(o=>o.name.includes("next"))?"@/"+r:"~/"+r}function F(e,t){let r=t,n=[];for(let o=0;o<2;o++){let i=e.basename(r);if(!i||i==="components")break;n.unshift(i),r=e.dirname(r)}return n.join("/")}function j(e){for(e=e.replace(/([A-Z])/g," $1").replace(/\./g," ").replace(/_/g," ").replace(/-/g," ").replace(/\s/g," ").trim();e.includes(" ");)e=e.replace(/ /g," ");return e.split(" ").map(t=>t.length>2?t[0].toUpperCase()+t.slice(1):t).join("").trim()}function M(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function k(e,t,r){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function Be(e){return typeof e=="number"}function ve(e){return typeof e=="boolean"}function z(e){return typeof e=="string"}function $e(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function K(e){return JSON.parse(JSON.stringify(e))}function ze(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=io(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,l)=>l!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,Ve(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,Ve(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function io(e,t,r){return t.properties.findIndex(n=>I(e,n)===r)}function Ke(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return so(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return ao(e,t);case e.ts.SyntaxKind.StringLiteral:return t.text;case e.ts.SyntaxKind.NumericLiteral:return Number(t.text);case e.ts.SyntaxKind.NoSubstitutionTemplateLiteral:return t.text;case e.ts.SyntaxKind.TrueKeyword:return!0;case e.ts.SyntaxKind.FalseKeyword:return!1;case e.ts.SyntaxKind.Identifier:switch(t.escapedText){case"undefined":return;case"null":return null;case"String":return String;case"Number":return Number;case"Boolean":return Boolean;case"NaN":return NaN}}}function ao(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=I(e,n);o&&(r[o]=Ke(e,n.initializer))}}return r}function so(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>Ke(e,r)):[]}function I(e,t){if(t&&e.ts.isPropertyAssignment(t)){let r=t.name;switch(r.kind){case e.ts.SyntaxKind.Identifier:return r.text;case e.ts.SyntaxKind.StringLiteral:case e.ts.SyntaxKind.NumericLiteral:return r.text;case e.ts.SyntaxKind.ComputedPropertyName:let n=r.expression;if(e.ts.isStringLiteral(n)||e.ts.isNumericLiteral(n))return r.expression.text}}}function Ve(e,t){return ht(e,t,new WeakSet)}function ht(e,t,r){return t===void 0?e.ts.factory.createIdentifier("undefined"):t===null?e.ts.factory.createIdentifier("null"):typeof t=="string"?e.ts.factory.createStringLiteral(t):typeof t=="number"?isNaN(t)?e.ts.factory.createIdentifier("NaN"):e.ts.factory.createNumericLiteral(t):t===!0?e.ts.factory.createTrue():t===!1?e.ts.factory.createFalse():t===String?e.ts.factory.createIdentifier("String"):t===Number?e.ts.factory.createIdentifier("Number"):t===Boolean?e.ts.factory.createIdentifier("Boolean"):Array.isArray(t)?lo(e,t,r):typeof t=="object"?co(e,t,r):e.ts.factory.createIdentifier(t)}function lo(e,t,r){let n=t.map(o=>ht(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function co(e,t,r){if(r.has(t))return e.ts.factory.createIdentifier("undefined");r.add(t);let n=Object.keys(t).map(o=>e.ts.factory.createPropertyAssignment(o,ht(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function ye(e,t,r){let n=[];if(!r)return n;let o=null;if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r)){let i=r.parameters;if(i.length>0){let a=i[0],s=t.getTypeAtLocation(a);s.aliasTypeArguments&&s.aliasTypeArguments.length>0?o=s.aliasTypeArguments[0].getProperties():o=s.getProperties()}}else if(e.ts.isIdentifier(r)){let i=t.getTypeAtLocation(r),a=i.symbol?.valueDeclaration;if(a&&e.ts.isClassDeclaration(a)){let l=a.heritageClauses?.find(c=>c.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(l){for(let c of l)if(t.getSymbolAtLocation(c.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(c)){let u=c.typeArguments;if(u){let m=u[0];o=t.getTypeFromTypeNode(m).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let l=s[0].getParameters();l.length>0&&(o=t.getTypeOfSymbolAtLocation(l[0],r).getProperties())}}}if(o)for(let i of o){let a=po(e,t,i);a&&n.push(a)}return n=n.filter(pn),n.length>0?n:uo(e,r)}function po(e,t,r){let n=r.valueDeclaration,o=r.getName();if(n||(n=r.getDeclarations()?.[0]),n&&e.ts.isPropertySignature(n)){if(o!=="children"&&n.getSourceFile().fileName.includes("node_modules/@types/"))return null;let i="string",a;if(n?.type){let l=t.getTypeFromTypeNode(n.type),c=t.typeToString(l),d=Ct(c);d.knownType?i=d.builderType:fo(c)||l.flags&e.ts.TypeFlags.StringLike?i="string":l.flags&e.ts.TypeFlags.NumberLike?i="number":l.flags&e.ts.TypeFlags.IndexedAccess?i="list":l.flags&e.ts.TypeFlags.Object||l.isUnion()&&l.types.every(u=>u.flags&e.ts.TypeFlags.Object)||l.isIntersection()&&l.types.some(u=>u.flags&e.ts.TypeFlags.Object)?i="object":i="string",c!==i&&(a=c)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let l=Co(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},l&&l.length>0&&s.type==="string"&&l.every(xo)?s.enum=l.map(ho):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function uo(e,t){let r=[],n=e.ts.getJSDocCommentsAndTags(t);for(let o of n)if(!(!e.ts.isJSDoc(o)||!o.tags))for(let i of o.tags){if(!e.ts.isJSDocParameterTag(i)||i.tagName.text!=="param")continue;let s=i.typeExpression?.type;if(!s||!e.ts.isJSDocTypeLiteral(s))continue;let l=s.jsDocPropertyTags;if(l)for(let c of l){if(!e.ts.isJSDocPropertyLikeTag(c))continue;let d=c.name;if(!e.ts.isQualifiedName(d))continue;let u=c.typeExpression;if(!u)continue;let m="";switch(u.type.kind){case e.ts.SyntaxKind.StringKeyword:{m="string";break}case e.ts.SyntaxKind.NumberKeyword:{m="number";break}case e.ts.SyntaxKind.BooleanKeyword:{m="boolean";break}default:continue}let x={name:d.right.text,type:m,isRegistered:!1};r.push(x)}}return r.filter(pn)}var mo=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function fo(e){return typeof e!="string"?!1:!!mo.some(t=>e.includes(t))}function Ct(e){return typeof e=="string"&&(e=e.trim(),go.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var go=[{value:"boolean",text:"boolean"},{value:"color",text:"color (provides a color in hex or rgb)"},{value:"date",text:"date (same format as the Date constructor)"},{value:"email",text:"email"},{value:"file",text:"file (uploads a file and provides a url)"},{value:"list",text:"list (collection of items)"},{value:"longText",text:"longText (multiline text editor)"},{value:"number",text:"number"},{value:"object",text:"object (set of specific names and values)"},{value:"richText",text:"richText (provides value as html)"},{value:"string",text:"string"}];function xo(e){return/^['"].*['"]$/.test(e)}function ho(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var Co=(e,t,r)=>{let n=new Set;cn(e,t,r,n);let o=n.delete("true"),i=n.delete("false");(o||i)&&n.add("boolean");let a=Array.from(n.keys()).sort();if(a.length>1&&(a=a.map(s=>s.indexOf("=>")>=0?`(${s})`:s)),!(a.length>20))return a},So=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},cn=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{cn(e,t,o,n)});else if(r.isLiteral()){let o=So(e,t,r);n.add(o)}};function pn(e){let t=e?.name;if(typeof t!="string"||t===""||t.startsWith("aria")||t.startsWith("data-"))return!1;if(t.startsWith("on")&&t.length>2){let r=t.charAt(2);if(r.toUpperCase()===r)return!1}return!To.has(t.toLowerCase())}var To=new Set(["about","accessKey","accessKeyLabel","asChild","autoCapitalize","autoCorrect","autoFocus","autoSave","blur","contentEditable","contextMenu","dangerouslySetInnerHTML","datatype","defaultChecked","defaultValue","dir","draggable","enterKeyHint","focus","form","formAction","formEncType","formMethod","formNoValidate","formTarget","inlist","innerText","inputMode","is","isContentEditable","itemID","itemProp","itemRef","itemScope","itemType","lang","nonce","offsetHeight","offsetLeft","offsetTop","offsetWidth","outerText","prefix","property","radioGroup","rel","resource","results","rev","role","security","slot","spellCheck","suppressContentEditableWarning","suppressHydrationWarning","tabIndex","translate","typeof","unselectable","vocab"].map(e=>e.toLowerCase()));function H(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=I(e,n);if(o==="name"&&e.ts.isStringLiteral(n.initializer)){t.name=n.initializer.text;continue}if(o==="description"&&e.ts.isStringLiteral(n.initializer)){t.description=n.initializer.text;continue}if(o==="image"&&e.ts.isStringLiteral(n.initializer)){t.image=n.initializer.text;continue}if(o==="inputs"&&e.ts.isArrayLiteralExpression(n.initializer)){let i=yo(e,n.initializer);G(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=Ke(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function yo(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(wo(e,n));return r}function wo(e,t){let r=Ke(e,t),n=No(r);return n.isRegistered=!0,n}function U(e,t,r){let n=Po(r);return t=ze(e,t,"name",n.name,!1),t=ze(e,t,"description",n.description),t=ze(e,t,"image",n.image),t=Do(e,t,n),Ro(e,t)}function Do(e,t,r){let n=null,o=t.properties.filter(s=>e.ts.isPropertyAssignment(s)&&e.ts.isIdentifier(s.name)),i=o.findIndex(s=>e.ts.isIdentifier(s.name)&&s.name.text==="inputs"),a=[...r.inputs??[]];if(i>-1){if(a.length===0)return ze(e,t,"inputs",null);let s=o[i];e.ts.isPropertyAssignment(s)&&e.ts.isArrayLiteralExpression(s.initializer)&&(n=s.initializer)}return a.length===0?t:(n=vo(e,n||e.ts.factory.createArrayLiteralExpression(),a),i>-1?o[i]=e.ts.factory.updatePropertyAssignment(o[i],o[i].name,n):o.push(e.ts.factory.createPropertyAssignment("inputs",n)),e.ts.factory.updateObjectLiteralExpression(t,o))}function Po(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(Eo)}}function Eo(e){let t={name:e.name,type:e.type};return(z(e.defaultValue)||Be(e.defaultValue)||ve(e.defaultValue))&&(t.defaultValue=e.defaultValue),z(e.friendlyName)&&(t.friendlyName=e.friendlyName),z(e.helperText)&&(t.helperText=e.helperText),e.required===!0&&(t.required=!0),Array.isArray(e.enum)&&(t.enum=e.enum),e.hideFromUI===!0&&(t.hideFromUI=!0),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(t.meta=e.meta),t}function vo(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>I(e,s)==="name");if(!i)return!1;let a=i.initializer;return e.ts.isStringLiteral(a)?r.some(s=>s.name===a.text):!1});for(let o of r)n=bo(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(m=>I(e,m)==="name"),s=i.properties.find(m=>I(e,m)==="name"),l=a?.initializer,c=s?.initializer,d=l&&e.ts.isStringLiteral(l)?l.text:"zz",u=c&&e.ts.isStringLiteral(c)?c.text:"zz";return d.toLowerCase().localeCompare(u.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function bo(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=I(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=un(e,t[n],r);else{let o=un(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function un(e,t,r){let n=t.properties.filter(i=>e.ts.isPropertyAssignment(i)),o=Object.keys(r).filter(i=>i!=="isRegistered");for(let i of o)n=Io(e,n,r,i);return n=Ao(e,n.filter(i=>{let a=I(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function Io(e,t,r,n){let o=t.findIndex(i=>e.ts.isIdentifier(i.name)&&i.name.text===n);return o>-1?t[o]=e.ts.factory.updatePropertyAssignment(t[o],t[o].name,Ve(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,Ve(e,r[n]))),t}function G(e,t){for(let r of t){let n=e.inputs.findIndex(o=>o.name===r.name);n>-1?(r.isRegistered||!e.inputs[n].isRegistered)&&(e.inputs[n]=r):e.inputs.push(r)}e.acceptsChildren=St(e)}function No(e){let t=Ct(e.type),r={name:e.name.trim(),type:t.builderType};return z(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(z(e.defaultValue)||Be(e.defaultValue)||ve(e.defaultValue))&&(r.defaultValue=e.defaultValue),z(e.helperText)&&(r.helperText=e.helperText),ve(e.required)&&(r.required=e.required),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(r.meta=e.meta),Array.isArray(e.enum)&&e.enum.length>0&&(r.enum=e.enum),e.hideFromUI===!0&&(r.hideFromUI=!0),Tt(r)}function St(e){let t=e.inputs.some(n=>n.name==="children"),r=e.inputs.some(n=>n.meta?.ts==="ReactNode");return!!(t||r||e.acceptsChildren===!0)}function Tt(e){if(e.name==="children"&&(e.hideFromUI=!0,delete e.required),e.type==="object"&&e.defaultValue==null&&(e.hideFromUI=!0),e.type==="list"&&e.defaultValue==null&&(e.hideFromUI=!0),e.meta){let t=e.meta.ts;typeof t=="string"&&(t=t.trim(),t.endsWith("ReactNode")&&(t="ReactNode"),e.meta.ts=t,t==="ReactNode"&&(e.hideFromUI=!0))}return e}function Ro(e,t){let r=[...t.properties].sort((n,o)=>{let i=I(e,n)||"zz",a=I(e,o)||"zz";if(i==="inputs")return 1;let s=mn.indexOf(i),l=mn.indexOf(a);return s>-1?l>-1&&s>l?1:-1:l>-1?s>-1&&l<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var mn=["component","name","description"];function Ao(e,t){return[...t].sort((n,o)=>{let i=I(e,n)||"zz",a=I(e,o)||"zz",s=fn.indexOf(i),l=fn.indexOf(a);return s>-1?l>-1&&s>l?1:-1:l>-1?s>-1&&l<s?-1:1:i.localeCompare(a)})}var fn=["name","type"];function dn(e,t){let r=`Builder.registerComponent(
|
|
11
|
+
`}return""}function L(e,t,r){t=W(t),r=W(r),t=e.dirname(t);let n=e.basename(r,e.extname(r));r=e.dirname(r);let o;return n==="index"?o=e.relative(t,r):o=e.relative(t,e.join(r,n)),o=W(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function W(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Pe(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return on(o==="index"?e.basename(e.dirname(t)):o)}function on(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=W(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function _(e,t){let r=W(e.relative(e.getRootDir(),t));r=r.split("/").filter(o=>o!=="."&&o!==".."&&o!=="").join("/"),r.endsWith(".tsx")||r.endsWith(".jsx")?r=r.slice(0,-4):(r.endsWith(".ts")||r.endsWith(".js"))&&(r=r.slice(0,-3));let n=e.getFrameworks();return r.startsWith("src/")&&(r=r.slice(4)),n.some(o=>o.name.includes("next"))?"@/"+r:"~/"+r}function R(e,t){let r=t,n=[];for(let o=0;o<2;o++){let i=e.basename(r);if(!i||i==="components")break;n.unshift(i),r=e.dirname(r)}return n.join("/")}function j(e){for(e=e.replace(/([A-Z])/g," $1").replace(/\./g," ").replace(/_/g," ").replace(/-/g," ").replace(/\s/g," ").trim();e.includes(" ");)e=e.replace(/ /g," ");return e.split(" ").map(t=>t.length>2?t[0].toUpperCase()+t.slice(1):t).join("").trim()}function M(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function k(e,t,r){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function _e(e){return typeof e=="number"}function ve(e){return typeof e=="boolean"}function z(e){return typeof e=="string"}function Be(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function K(e){return JSON.parse(JSON.stringify(e))}function $e(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=no(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,l)=>l!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,Ve(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,Ve(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function no(e,t,r){return t.properties.findIndex(n=>A(e,n)===r)}function ze(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return oo(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return ro(e,t);case e.ts.SyntaxKind.StringLiteral:return t.text;case e.ts.SyntaxKind.NumericLiteral:return Number(t.text);case e.ts.SyntaxKind.NoSubstitutionTemplateLiteral:return t.text;case e.ts.SyntaxKind.TrueKeyword:return!0;case e.ts.SyntaxKind.FalseKeyword:return!1;case e.ts.SyntaxKind.Identifier:switch(t.escapedText){case"undefined":return;case"null":return null;case"String":return String;case"Number":return Number;case"Boolean":return Boolean;case"NaN":return NaN}}}function ro(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=A(e,n);o&&(r[o]=ze(e,n.initializer))}}return r}function oo(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>ze(e,r)):[]}function A(e,t){if(t&&e.ts.isPropertyAssignment(t)){let r=t.name;switch(r.kind){case e.ts.SyntaxKind.Identifier:return r.text;case e.ts.SyntaxKind.StringLiteral:case e.ts.SyntaxKind.NumericLiteral:return r.text;case e.ts.SyntaxKind.ComputedPropertyName:let n=r.expression;if(e.ts.isStringLiteral(n)||e.ts.isNumericLiteral(n))return r.expression.text}}}function Ve(e,t){return xt(e,t,new WeakSet)}function xt(e,t,r){return t===void 0?e.ts.factory.createIdentifier("undefined"):t===null?e.ts.factory.createIdentifier("null"):typeof t=="string"?e.ts.factory.createStringLiteral(t):typeof t=="number"?isNaN(t)?e.ts.factory.createIdentifier("NaN"):e.ts.factory.createNumericLiteral(t):t===!0?e.ts.factory.createTrue():t===!1?e.ts.factory.createFalse():t===String?e.ts.factory.createIdentifier("String"):t===Number?e.ts.factory.createIdentifier("Number"):t===Boolean?e.ts.factory.createIdentifier("Boolean"):Array.isArray(t)?io(e,t,r):typeof t=="object"?ao(e,t,r):e.ts.factory.createIdentifier(t)}function io(e,t,r){let n=t.map(o=>xt(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function ao(e,t,r){if(r.has(t))return e.ts.factory.createIdentifier("undefined");r.add(t);let n=Object.keys(t).map(o=>e.ts.factory.createPropertyAssignment(o,xt(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function Te(e,t,r){let n=[];if(!r)return n;let o=null;if(e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r)){let i=r.parameters;if(i.length>0){let a=i[0],s=t.getTypeAtLocation(a);s.aliasTypeArguments&&s.aliasTypeArguments.length>0?o=s.aliasTypeArguments[0].getProperties():o=s.getProperties()}}else if(e.ts.isIdentifier(r)){let i=t.getTypeAtLocation(r),a=i.symbol?.valueDeclaration;if(a&&e.ts.isClassDeclaration(a)){let l=a.heritageClauses?.find(c=>c.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(l){for(let c of l)if(t.getSymbolAtLocation(c.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(c)){let m=c.typeArguments;if(m){let u=m[0];o=t.getTypeFromTypeNode(u).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let l=s[0].getParameters();l.length>0&&(o=t.getTypeOfSymbolAtLocation(l[0],r).getProperties())}}}if(o)for(let i of o){let a=so(e,t,i);a&&n.push(a)}return n=n.filter(sn),n.length>0?n:lo(e,r)}function so(e,t,r){let n=r.valueDeclaration,o=r.getName();if(n||(n=r.getDeclarations()?.[0]),n&&e.ts.isPropertySignature(n)){if(o!=="children"&&n.getSourceFile().fileName.includes("node_modules/@types/"))return null;let i="string",a;if(n?.type){let l=t.getTypeFromTypeNode(n.type),c=t.typeToString(l),d=ht(c);d.knownType?i=d.builderType:po(c)||l.flags&e.ts.TypeFlags.StringLike?i="string":l.flags&e.ts.TypeFlags.NumberLike?i="number":l.flags&e.ts.TypeFlags.IndexedAccess?i="list":l.flags&e.ts.TypeFlags.Object||l.isUnion()&&l.types.every(m=>m.flags&e.ts.TypeFlags.Object)||l.isIntersection()&&l.types.some(m=>m.flags&e.ts.TypeFlags.Object)?i="object":i="string",c!==i&&(a=c)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let l=go(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},l&&l.length>0&&s.type==="string"&&l.every(mo)?s.enum=l.map(fo):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function lo(e,t){let r=[],n=e.ts.getJSDocCommentsAndTags(t);for(let o of n)if(!(!e.ts.isJSDoc(o)||!o.tags))for(let i of o.tags){if(!e.ts.isJSDocParameterTag(i)||i.tagName.text!=="param")continue;let s=i.typeExpression?.type;if(!s||!e.ts.isJSDocTypeLiteral(s))continue;let l=s.jsDocPropertyTags;if(l)for(let c of l){if(!e.ts.isJSDocPropertyLikeTag(c))continue;let d=c.name;if(!e.ts.isQualifiedName(d))continue;let m=c.typeExpression;if(!m)continue;let u="";switch(m.type.kind){case e.ts.SyntaxKind.StringKeyword:{u="string";break}case e.ts.SyntaxKind.NumberKeyword:{u="number";break}case e.ts.SyntaxKind.BooleanKeyword:{u="boolean";break}default:continue}let x={name:d.right.text,type:u,isRegistered:!1};r.push(x)}}return r.filter(sn)}var co=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function po(e){return typeof e!="string"?!1:!!co.some(t=>e.includes(t))}function ht(e){return typeof e=="string"&&(e=e.trim(),uo.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var uo=[{value:"boolean",text:"boolean"},{value:"color",text:"color (provides a color in hex or rgb)"},{value:"date",text:"date (same format as the Date constructor)"},{value:"email",text:"email"},{value:"file",text:"file (uploads a file and provides a url)"},{value:"list",text:"list (collection of items)"},{value:"longText",text:"longText (multiline text editor)"},{value:"number",text:"number"},{value:"object",text:"object (set of specific names and values)"},{value:"richText",text:"richText (provides value as html)"},{value:"string",text:"string"}];function mo(e){return/^['"].*['"]$/.test(e)}function fo(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var go=(e,t,r)=>{let n=new Set;an(e,t,r,n);let o=n.delete("true"),i=n.delete("false");(o||i)&&n.add("boolean");let a=Array.from(n.keys()).sort();if(a.length>1&&(a=a.map(s=>s.indexOf("=>")>=0?`(${s})`:s)),!(a.length>20))return a},xo=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},an=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{an(e,t,o,n)});else if(r.isLiteral()){let o=xo(e,t,r);n.add(o)}};function sn(e){let t=e?.name;if(typeof t!="string"||t===""||t.startsWith("aria")||t.startsWith("data-"))return!1;if(t.startsWith("on")&&t.length>2){let r=t.charAt(2);if(r.toUpperCase()===r)return!1}return!ho.has(t.toLowerCase())}var ho=new Set(["about","accessKey","accessKeyLabel","asChild","autoCapitalize","autoCorrect","autoFocus","autoSave","blur","contentEditable","contextMenu","dangerouslySetInnerHTML","datatype","defaultChecked","defaultValue","dir","draggable","enterKeyHint","focus","form","formAction","formEncType","formMethod","formNoValidate","formTarget","inlist","innerText","inputMode","is","isContentEditable","itemID","itemProp","itemRef","itemScope","itemType","lang","nonce","offsetHeight","offsetLeft","offsetTop","offsetWidth","outerText","prefix","property","radioGroup","rel","resource","results","rev","role","security","slot","spellCheck","suppressContentEditableWarning","suppressHydrationWarning","tabIndex","translate","typeof","unselectable","vocab"].map(e=>e.toLowerCase()));function H(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=A(e,n);if(o==="name"&&e.ts.isStringLiteral(n.initializer)){t.name=n.initializer.text;continue}if(o==="description"&&e.ts.isStringLiteral(n.initializer)){t.description=n.initializer.text;continue}if(o==="image"&&e.ts.isStringLiteral(n.initializer)){t.image=n.initializer.text;continue}if(o==="inputs"&&e.ts.isArrayLiteralExpression(n.initializer)){let i=Co(e,n.initializer);G(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=ze(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Co(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(So(e,n));return r}function So(e,t){let r=ze(e,t),n=vo(r);return n.isRegistered=!0,n}function U(e,t,r){let n=yo(r);return t=$e(e,t,"name",n.name,!1),t=$e(e,t,"description",n.description),t=$e(e,t,"image",n.image),t=To(e,t,n),bo(e,t)}function To(e,t,r){let n=null,o=t.properties.filter(s=>e.ts.isPropertyAssignment(s)&&e.ts.isIdentifier(s.name)),i=o.findIndex(s=>e.ts.isIdentifier(s.name)&&s.name.text==="inputs"),a=[...r.inputs??[]];if(i>-1){if(a.length===0)return $e(e,t,"inputs",null);let s=o[i];e.ts.isPropertyAssignment(s)&&e.ts.isArrayLiteralExpression(s.initializer)&&(n=s.initializer)}return a.length===0?t:(n=Do(e,n||e.ts.factory.createArrayLiteralExpression(),a),i>-1?o[i]=e.ts.factory.updatePropertyAssignment(o[i],o[i].name,n):o.push(e.ts.factory.createPropertyAssignment("inputs",n)),e.ts.factory.updateObjectLiteralExpression(t,o))}function yo(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(wo)}}function wo(e){let t={name:e.name,type:e.type};return(z(e.defaultValue)||_e(e.defaultValue)||ve(e.defaultValue))&&(t.defaultValue=e.defaultValue),z(e.friendlyName)&&(t.friendlyName=e.friendlyName),z(e.helperText)&&(t.helperText=e.helperText),e.required===!0&&(t.required=!0),Array.isArray(e.enum)&&(t.enum=e.enum),e.hideFromUI===!0&&(t.hideFromUI=!0),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(t.meta=e.meta),t}function Do(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>A(e,s)==="name");if(!i)return!1;let a=i.initializer;return e.ts.isStringLiteral(a)?r.some(s=>s.name===a.text):!1});for(let o of r)n=Eo(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(u=>A(e,u)==="name"),s=i.properties.find(u=>A(e,u)==="name"),l=a?.initializer,c=s?.initializer,d=l&&e.ts.isStringLiteral(l)?l.text:"zz",m=c&&e.ts.isStringLiteral(c)?c.text:"zz";return d.toLowerCase().localeCompare(m.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function Eo(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=A(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=ln(e,t[n],r);else{let o=ln(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function ln(e,t,r){let n=t.properties.filter(i=>e.ts.isPropertyAssignment(i)),o=Object.keys(r).filter(i=>i!=="isRegistered");for(let i of o)n=Po(e,n,r,i);return n=Io(e,n.filter(i=>{let a=A(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function Po(e,t,r,n){let o=t.findIndex(i=>e.ts.isIdentifier(i.name)&&i.name.text===n);return o>-1?t[o]=e.ts.factory.updatePropertyAssignment(t[o],t[o].name,Ve(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,Ve(e,r[n]))),t}function G(e,t){for(let r of t){let n=e.inputs.findIndex(o=>o.name===r.name);n>-1?(r.isRegistered||!e.inputs[n].isRegistered)&&(e.inputs[n]=r):e.inputs.push(r)}e.acceptsChildren=Ct(e)}function vo(e){let t=ht(e.type),r={name:e.name.trim(),type:t.builderType};return z(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(z(e.defaultValue)||_e(e.defaultValue)||ve(e.defaultValue))&&(r.defaultValue=e.defaultValue),z(e.helperText)&&(r.helperText=e.helperText),ve(e.required)&&(r.required=e.required),typeof e.meta=="object"&&e.meta!=null&&Object.keys(e.meta).length>0&&(r.meta=e.meta),Array.isArray(e.enum)&&e.enum.length>0&&(r.enum=e.enum),e.hideFromUI===!0&&(r.hideFromUI=!0),St(r)}function Ct(e){let t=e.inputs.some(n=>n.name==="children"),r=e.inputs.some(n=>n.meta?.ts==="ReactNode");return!!(t||r||e.acceptsChildren===!0)}function St(e){if(e.name==="children"&&(e.hideFromUI=!0,delete e.required),e.type==="object"&&e.defaultValue==null&&(e.hideFromUI=!0),e.type==="list"&&e.defaultValue==null&&(e.hideFromUI=!0),e.meta){let t=e.meta.ts;typeof t=="string"&&(t=t.trim(),t.endsWith("ReactNode")&&(t="ReactNode"),e.meta.ts=t,t==="ReactNode"&&(e.hideFromUI=!0))}return e}function bo(e,t){let r=[...t.properties].sort((n,o)=>{let i=A(e,n)||"zz",a=A(e,o)||"zz";if(i==="inputs")return 1;let s=cn.indexOf(i),l=cn.indexOf(a);return s>-1?l>-1&&s>l?1:-1:l>-1?s>-1&&l<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var cn=["component","name","description"];function Io(e,t){return[...t].sort((n,o)=>{let i=A(e,n)||"zz",a=A(e,o)||"zz",s=pn.indexOf(i),l=pn.indexOf(a);return s>-1?l>-1&&s>l?1:-1:l>-1?s>-1&&l<s?-1:1:i.localeCompare(a)})}var pn=["name","type"];function un(e,t){let r=`Builder.registerComponent(
|
|
12
12
|
`;if(e.appDir)t.acceptsChildren?r+=` withChildren(${t.importName}),
|
|
13
13
|
`:r+=` ${t.importName},
|
|
14
|
-
`;else{let o=
|
|
14
|
+
`;else{let o=L(e,e.registryPath,t.filePath);t.exportName==="default"?t.acceptsChildren?r+=` withChildren(dynamic(() => import(${JSON.stringify(o)}))),
|
|
15
15
|
`:r+=` dynamic(() => import(${JSON.stringify(o)})),
|
|
16
16
|
`:t.acceptsChildren?r+=` withChildren(dynamic(async () => (await import(${JSON.stringify(o)})).${t.exportName})),
|
|
17
17
|
`:r+=` dynamic(async () => (await import(${JSON.stringify(o)})).${t.exportName}),
|
|
18
18
|
`}r+=` {
|
|
19
19
|
name: "${t.name}",
|
|
20
20
|
}
|
|
21
|
-
`,r+=");";let n=
|
|
22
|
-
`,getSourceFile:a=>{if(a=e.normalize(a),a.includes("node_modules")){let l=Ue.get(a);if(l)return D(e,l.content)}let s=e.readFileSync(a);if(s==null){let l=e.basename(a),c=e.extname(l).toLowerCase();if(a.startsWith(n)&&c===".ts"&&(s=xn.get(l),s==null&&typeof self<"u"&&typeof fetch=="function"))throw new rt(l)}return a.includes("node_modules")&&(s?Ue.set(a,{exists:!0,content:s}):Ue.set(a,{exists:!1})),D(e,s)},readFile:a=>{let s=e.readFileSync(a);return typeof s=="string"?s:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return Fo(e,i,t)}catch(a){if(a instanceof rt){await Lo(e,a.libName);continue}throw console.error("createTsProgram",a),new Error(`createTsProgram() Could not create program for: ${t[0]}`)}}function Fo(e,t,r){let n={rootNames:[...r],options:{},host:t},o=e.ts.findConfigFile(e.dirname(r[0]),i=>e.existsSync(i));if(o){let i=gn.get(o);if(!i){let a=e.ts.readConfigFile(o,s=>{let l=e.readFileSync(s);return typeof l=="string"?l:void 0});a.error?console.error("error reading tsconfig for createTsProgram"):(i=e.ts.parseJsonConfigFileContent(a.config,e.ts.sys||{useCaseSensitiveFileNames:!1,readDirectory:(l,c)=>e.readdirSync(l),fileExists:l=>e.existsSync(l),readFile:l=>e.readFileSync(l)||void 0},e.dirname(o),void 0,o).options,gn.set(o,i))}i&&(n.options=K(i))}return n.options.moduleResolution=e.ts.ModuleResolutionKind.Node16,n.options.noEmit=!0,n.options.isolatedModules=!1,n.options.strict=!1,n.options.jsx=e.ts.JsxEmit.Preserve,n.options.allowJs=!0,e.ts.createProgram(n)}async function be(e,t,r){r||(r=await $(e,[t]));let n=r.getSourceFile(t);if(!n)throw new Error(`getTypeChecker() Could not find source file: ${t}`);return{typeChecker:r.getTypeChecker(),sourceFile:n}}var rt=class{constructor(t){this.libName=t}};async function Lo(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;nt.has(t)||nt.set(t,fetch(r).then(n=>n.text()).then(n=>{xn.set(t,n)})),await nt.get(t),nt.delete(t)}var xn=new Map,nt=new Map,Ue=new Map,gn=new Map;function P(e,t,r,n="esm"){return Array.isArray(r.namedImports)&&r.namedImports.forEach(o=>{t=Oo(e,t,o,r.importPath,!!r.isTypeOnly,n)}),typeof r.defaultImport=="string"&&(t=ko(e,t,r.defaultImport,r.importPath,n)),t}function Oo(e,t,r,n,o,i){return i==="cjs"?Cn(e,t,null,r,n):hn(e,t,null,r,n,o)}function ko(e,t,r,n,o){return o==="cjs"?Cn(e,t,r,null,n):hn(e,t,r,null,n,!1)}function hn(e,t,r,n,o,i){let a=[...t.statements],s=0,l=!1,c=!1;for(let p=0;p<a.length;p++){let x=a[p];if(!e.ts.isImportDeclaration(x)||(s=p,!x.moduleSpecifier||!e.ts.isStringLiteral(x.moduleSpecifier))||x.moduleSpecifier.text!==o||!!x.importClause?.isTypeOnly!==i)continue;let f=[],g=x.importClause?.namedBindings;if(g&&e.ts.isNamedImports(g)&&g.elements&&f.push(...g.elements),typeof n=="string"){if(f.some(C=>C.name.text===n))return t;f.push(e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))),f.sort((C,T)=>C.name.text.localeCompare(T.name.text)),l=!0}let h=x.importClause?x.importClause.name:void 0;if(typeof r=="string"){if(h&&h.text===r)return t;h=e.ts.factory.createIdentifier(r),c=!0}if(l||c)return a[p]=e.ts.factory.updateImportDeclaration(x,void 0,e.ts.factory.createImportClause(i,h,e.ts.factory.createNamedImports(f)),x.moduleSpecifier,void 0),e.ts.factory.updateSourceFile(t,a)}let d,u;typeof r=="string"&&(d=e.ts.factory.createIdentifier(r)),typeof n=="string"&&(u=e.ts.factory.createNamedImports([e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))]));let m=e.ts.factory.createImportDeclaration(void 0,e.ts.factory.createImportClause(i,d,u),e.ts.factory.createStringLiteral(o));return a.splice(s,0,m),e.ts.factory.updateSourceFile(t,a)}function Cn(e,t,r,n,o){let i=[...t.statements],a=0;for(let s=0;s<i.length;s++){let l=i[s];if(e.ts.isVariableStatement(l))for(let c=0;c<l.declarationList.declarations.length;c++){let d=[...l.declarationList.declarations],u=d[c],m=u.initializer;if(!m||!e.ts.isCallExpression(m))continue;let p=m.expression;if(!e.ts.isIdentifier(p)||p.text!=="require"||m.arguments.length!==1)continue;let x=m.arguments[0];if(e.ts.isStringLiteral(x)&&(a=s,x.text===o)){if(e.ts.isIdentifier(u.name)&&typeof r=="string")return u.name.text===r?t:(d[c]=e.ts.factory.updateVariableDeclaration(u,e.ts.factory.createIdentifier(r),u.exclamationToken,u.type,u.initializer),i[s]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,d)),e.ts.factory.updateSourceFile(t,i));if(e.ts.isObjectBindingPattern(u.name)&&typeof n=="string"){let f=[...u.name.elements];return f.some(h=>!e.ts.isBindingElement(h)||!e.ts.isIdentifier(h.name)?!1:h.name.text===n)?t:(f.push(e.ts.factory.createBindingElement(void 0,void 0,n)),f.sort((h,C)=>!e.ts.isBindingElement(h)||!e.ts.isIdentifier(h.name)||!e.ts.isBindingElement(C)||!e.ts.isIdentifier(C.name)?0:h.name.text.localeCompare(C.name.text)),d[c]=e.ts.factory.updateVariableDeclaration(u,e.ts.factory.createObjectBindingPattern(f),u.exclamationToken,u.type,u.initializer),i[s]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,d)),e.ts.factory.updateSourceFile(t,i))}}}}if(typeof r=="string"){let s=e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral(o)]))],e.ts.NodeFlags.Const));return i.splice(a,0,s),e.ts.factory.updateSourceFile(t,i)}if(typeof n=="string"){let s=e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(e.ts.factory.createObjectBindingPattern([e.ts.factory.createBindingElement(void 0,void 0,n)]),void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral(o)]))],e.ts.NodeFlags.Const));return i.splice(a,0,s),e.ts.factory.updateSourceFile(t,i)}return t}function Q(e,t,r="esm"){return r==="cjs"?_o(e,t):jo(e,t)}function jo(e,t){let r=[];for(let n of t.statements){if(e.ts.isExportDeclaration(n)){if(n.exportClause&&e.ts.isNamedExports(n.exportClause)){for(let o of n.exportClause.elements)if(n.moduleSpecifier&&r.push({isDefaultExport:!1,statement:n,node:o}),e.ts.isIdentifier(o.name)){let i=o.name.text;for(let a of t.statements)if(e.ts.isVariableStatement(a))for(let s of a.declarationList.declarations)e.ts.isIdentifier(s.name)&&s.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a});else e.ts.isFunctionDeclaration(a)&&a.name&&a.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a})}}continue}if(e.ts.isExportAssignment(n)){let o=n.flags===e.ts.NodeFlags.None,i=n.expression;if(e.ts.isIdentifier(i)){let a=i.text;for(let s of t.statements){if(e.ts.isVariableStatement(s))for(let l of s.declarationList.declarations)e.ts.isIdentifier(l.name)&&l.name.text===a&&r.push({isDefaultExport:o,statement:s,node:s});e.ts.isFunctionDeclaration(s)&&s.name?.text===a&&r.push({isDefaultExport:o,statement:s,node:s})}}else(e.ts.isArrowFunction(i)||e.ts.isCallExpression(i)||e.ts.isFunctionDeclaration(i)||e.ts.isObjectLiteralExpression(i))&&r.push({isDefaultExport:o,statement:n,node:i});continue}if((e.ts.isVariableStatement(n)||e.ts.isFunctionDeclaration(n))&&n.modifiers&&n.modifiers.some(o=>o.kind===e.ts.SyntaxKind.ExportKeyword)){r.push({isDefaultExport:n.modifiers.some(o=>o.kind===e.ts.SyntaxKind.DefaultKeyword),statement:n,node:n});continue}}return r}function _o(e,t){let r=[];for(let n of t.statements)if(e.ts.isExpressionStatement(n)&&e.ts.isBinaryExpression(n.expression)&&e.ts.isPropertyAccessExpression(n.expression.left)){let o=n.expression.left,i=n.expression.right;if(!e.ts.isIdentifier(o.expression))continue;if(o.expression.text==="module"&&o.name.text==="exports"){if(e.ts.isIdentifier(i)){let a=i.text;for(let s of t.statements)if(e.ts.isVariableStatement(s))for(let l of s.declarationList.declarations)e.ts.isIdentifier(l.name)&&l.name.text===a&&r.push({isDefaultExport:!0,statement:s,node:s});else e.ts.isFunctionDeclaration(s)&&s.name&&s.name.text===a&&r.push({isDefaultExport:!0,statement:s,node:s})}else r.push({isDefaultExport:!0,statement:n,node:i});continue}}return r}function Bo(e,t,r){for(let n of t.statements)if(e.ts.isImportDeclaration(n)&&n.importClause){if(n.importClause.namedBindings&&e.ts.isNamedImports(n.importClause.namedBindings)){for(let o of n.importClause.namedBindings.elements)if(e.ts.isIdentifier(o.name)&&o.name.text===r&&e.ts.isStringLiteral(n.moduleSpecifier))return{importPath:n.moduleSpecifier.text,exportType:"named"}}if(n.importClause.name&&n.importClause.name.text===r&&e.ts.isStringLiteral(n.moduleSpecifier))return{importPath:n.moduleSpecifier.text,exportType:"default"}}return null}async function Ie(e,t,r,n){let o=Bo(e,r,n);if(o){let i=await Me(e,e.normalize(e.resolve(e.dirname(t),o.importPath))),a=e.relative(e.getRootDir(),i);return{displayFilePath:F(e,i),filePath:i,relFilePath:a,importPath:o.importPath,exportType:o.exportType}}return null}function Ne(e,t,r){for(let n=0;n<t.statements.length;n++){let o=t.statements[n];if(e.ts.isVariableStatement(o)){for(let i of o.declarationList.declarations)if(e.ts.isIdentifier(i.name)&&i.name.text===r)return{statement:o,statementIndex:n}}}return null}function q(e,t,r){let n=Ne(e,t,r);if(n&&n.statement.declarationList.declarations.length>0){let o=n.statement.declarationList.declarations[0];if(o.initializer&&e.ts.isArrayLiteralExpression(o.initializer))return{statement:n.statement,statementIndex:n.statementIndex,variableDeclaration:o,arrayLiteralExp:o.initializer}}return null}function ot(e,t){if(t){if($o(e,t))return!0;let r=!1;if(t.forEachChild(n=>{ot(e,n)&&(r=!0)}),r)return!0}return!1}function $o(e,t){return e.ts.isJsxElement(t)||e.ts.isJsxOpeningElement(t)||e.ts.isJsxOpeningFragment(t)||e.ts.isJsxSelfClosingElement(t)||e.ts.isJsxFragment(t)||e.ts.isJsxChild(t)}async function Me(e,t){let r=e.extname(t).toLowerCase();if(r===""||!wt.includes(r)){for(let n of wt){let o=t+n;if(await e.exists(o))return o}for(let n of wt){let o=e.join(t,"index"+n);if(await e.exists(o))return o}}return t}var wt=[".tsx",".jsx",".ts",".js"];function Qe(e,t,r){if(!r||!t)return;let n=t.getSymbolAtLocation(r);if(!n)return;let o=n.valueDeclaration;if(!o)return;let i=o.getSourceFile().fileName,a=Vo(e,i);return a?[{name:a}]:void 0}function Vo(e,t){if(typeof t=="string"){t=e.normalize(W(t));let r=t.split("/"),n=r.lastIndexOf("node_modules");if(n>-1){let o=r.slice(n+1),i=o[0];if(i)return i.startsWith("@")&&o[1]&&(i+="/"+o[1]),i}}}function te(e){let t=[];for(let r of e)if(r.dependencies)for(let n of r.dependencies)t.some(o=>o.name===n.name)||t.push({...n});return t.sort((r,n)=>r.name.localeCompare(n.name))}async function Re(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await $(e,t.map(a=>a.filePath)),o=n.getTypeChecker();return await Promise.all(t.map(async a=>{if(!a.isRegistered){let s=n.getSourceFile(a.filePath);if(s){let c=(await xe(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);c&&(a.inputs=ye(e,o,c.node.fnNode))}}return a}))}async function Ae(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await be(e,t.cmpInfo.filePath,r),a=(await xe(e,o,t.cmpInfo.filePath,n)).find(s=>s.cmpInfo.id===t.cmpInfo.id);if(!a)throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return ye(e,o,a.node.fnNode)}return[]}async function Sn(e,t){let r=e.extname(t).toLowerCase();if(r===".tsx"||r===".jsx"||r===".ts"||r===".js"){let n=await e.readFile(t);if(n)return zo(e,t,n)}return null}function zo(e,t,r){let n=D(e,r);return xe(e,null,t,n)}async function xe(e,t,r,n){let o=[];for(let a of n.statements)if(e.ts.isExpressionStatement(a)&&e.ts.isStringLiteral(a.expression)&&a.expression.text==="use server")return o;let i=Q(e,n);return r=e.normalize(r),await Promise.all(i.map(async a=>{let s=await Ko(e,t,r,a);o.push(...s)})),o}async function Ko(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=_(e,r);if(e.ts.isVariableStatement(n.node)){for(let s of n.node.declarationList.declarations){if(!e.ts.isIdentifier(s.name)||!$e(s.name.text))continue;let l=qe(e,t,s.initializer);if(l){let c=l.name||s.name.text,d=n.isDefaultExport?"default":c,u=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,d),displayFilePath:F(e,r),name:j(c),inputs:[],exportName:d,exportType:u,importName:c,filePath:r,relFilePath:i,importPath:a,dependencies:l.deps},node:l})}}return o}if(e.ts.isArrowFunction(n.node)){let s=qe(e,t,n.node);if(s){let l=Y(e,r),c=n.isDefaultExport?"default":l,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,c),displayFilePath:F(e,r),name:l,inputs:[],exportName:c,exportType:d,importName:Ee(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:s.deps},node:s})}return o}if(e.ts.isFunctionExpression(n.node)||e.ts.isFunctionDeclaration(n.node)){let s=n.node.name?.text;if(s&&!$e(s))return o;let l=qe(e,t,n.node);if(l){let c=l.name||Y(e,r),d=n.isDefaultExport||!l.name?"default":l.name,u=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,d),displayFilePath:F(e,r),name:c,inputs:[],exportName:d,exportType:u,importName:l.name||Ee(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:l.deps},node:l})}return o}if(e.ts.isExportSpecifier(n.node)&&$e(n.node.getText())){let s=qe(e,t,n.node);if(s){let l=s.name||Y(e,r),c=n.isDefaultExport||!s.name?"default":s.name,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,c),displayFilePath:F(e,r),name:l,inputs:[],exportName:c,exportType:d,importName:s.name||Ee(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:s.deps},node:s})}return o}return o}function qe(e,t,r){if(!r)return null;if(e.ts.isArrowFunction(r))return ot(e,r.body)?{name:"",fnNode:r,deps:Qe(e,t,r)}:null;if(e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r))return ot(e,r.body)?{name:r.name?.text||"",fnNode:r,deps:Qe(e,t,r)}:null;if(e.ts.isCallExpression(r)){let n=r.expression;if(!e.ts.isPropertyAccessExpression(n))return null;let o=r.arguments;if(o.length===0)return null;let i=n.expression;if(!e.ts.isIdentifier(i)||i.text!=="React")return null;let a=n.name;return!e.ts.isIdentifier(a)||a.text!=="forwardRef"?null:qe(e,t,o[0])}if(!t)return null;if(e.ts.isPropertyAccessExpression(r)){let n=r.expression,o=r.name;if(!e.ts.isIdentifier(n)||!e.ts.isIdentifier(o)||!$e(o.text))return null;let a=t.getTypeAtLocation(o).getCallSignatures();if(a.length>0&&a[0].getParameters().length>0)return{name:"",fnNode:o,deps:Qe(e,t,o)}}if(e.ts.isExportSpecifier(r)){let n=r.name;return{name:n.text||"",fnNode:n,deps:Qe(e,t,n)}}return null}async function Tn(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker();return await Promise.all(n.map(async i=>{let a=e.normalize(i.fileName);if(Mo(e,i.fileName)||a===e.reactConfigPath||a===e.registryPath||a===e.builderComponentPath)return;let s=await xe(e,o,a,i);r.push(...s)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Uo=new Set(["node_modules","dist"]);function Mo(e,t){for(let r of Uo)if(e.dirname(t).includes(r))return!0;return!1}async function yn(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(e.appDir&&Qo.has(a)||e.dirname(i.fileName).includes("node_modules"))return;let s=e.normalize(i.fileName);if(s===e.nextConfigPath||s===e.registryPath||s===e.builderComponentPath)return;let l=await xe(e,o,s,i);r.push(...l)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Qo=new Set(["default.tsx","default.ts","default.jsx","default.js","error.tsx","error.ts","error.jsx","error.js","layout.tsx","layout.ts","layout.jsx","layout.js","loading.tsx","loading.ts","loading.jsx","loading.js","not-found.tsx","not-found.ts","not-found.jsx","not-found.js","page.tsx","page.ts","page.jsx","page.js","route.tsx","route.ts","route.jsx","route.js","template.tsx","template.ts","template.jsx","template.js"]);function ne(e,t){let r=[],n=[],o=[],i=[];for(let a of t.statements){if(e.ts.isImportDeclaration(a)){if(e.ts.isStringLiteral(a.moduleSpecifier)){let l=a.moduleSpecifier.text;if(!l.startsWith(".")&&!l.startsWith("/")){r.push(a);continue}}let s=a.importClause;if(s){if(s.namedBindings){n.push(a);continue}if(s.name){n.push(a);continue}}o.push(a);continue}i.push(a)}return e.ts.factory.updateSourceFile(t,[...Dt(e,r),...Dt(e,n),...Dt(e,o),...i])}function J(e){let t=e.split(`
|
|
21
|
+
`,r+=");";let n=et(e,r);return Tt(e,n,t)}function Tt(e,t,r){if(!e.ts.isExpressionStatement(t))return t;let n=t.expression;if(!e.ts.isCallExpression(n))return t;let o=[...n.arguments];if(o.length<2)return t;r.acceptsChildren?e.ts.isCallExpression(o[0])&&e.ts.isIdentifier(o[0].expression)&&o[0].expression.text==="withChildren"||(o[0]=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("withChildren"),void 0,[o[0]])):e.ts.isCallExpression(o[0])&&e.ts.isIdentifier(o[0].expression)&&o[0].expression.text==="withChildren"&&(o[0]=o[0].arguments[0]);let i=o[1];return e.ts.isObjectLiteralExpression(i)?(o[1]=U(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function V(e,t){if(!Array.isArray(t)||t.length===0)throw new Error(`createTsProgram() Invalid filePaths: ${t}`);let r=await Zt(e,t[0]),n=e.join(r,"typescript","lib"),o=new Map,i={fileExists:a=>{if(a=e.normalize(a),a.includes("node_modules")){let s=Ke.get(a);if(!s){try{e.statSync(a).isFile()?s={exists:!0,content:e.readFileSync(a)}:s={exists:!1}}catch{s={exists:!1}}Ke.set(a,s)}return s.exists}return o.has(a)||o.set(a,e.existsSync(a)),o.get(a)},getCanonicalFileName:a=>e.normalize(a),getCurrentDirectory:()=>e.cwd(),getDefaultLibFileName:()=>e.join(n,"lib.d.ts"),getDefaultLibLocation:()=>n,getNewLine:()=>`
|
|
22
|
+
`,getSourceFile:a=>{if(a=e.normalize(a),a.includes("node_modules")){let l=Ke.get(a);if(l)return D(e,l.content)}let s=e.readFileSync(a);if(s==null){let l=e.basename(a),c=e.extname(l).toLowerCase();if(a.startsWith(n)&&c===".ts"&&(s=fn.get(l),s==null&&typeof self<"u"&&typeof fetch=="function"))throw new nt(l)}return a.includes("node_modules")&&(s?Ke.set(a,{exists:!0,content:s}):Ke.set(a,{exists:!1})),D(e,s)},readFile:a=>{let s=e.readFileSync(a);return typeof s=="string"?s:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return No(e,i,t)}catch(a){if(a instanceof nt){await Ro(e,a.libName);continue}throw console.error("createTsProgram",a),new Error(`createTsProgram() Could not create program for: ${t[0]}`)}}function No(e,t,r){let n={rootNames:[...r],options:{},host:t},o=e.ts.findConfigFile(e.dirname(r[0]),i=>e.existsSync(i));if(o){let i=mn.get(o);if(!i){let a=e.ts.readConfigFile(o,s=>{let l=e.readFileSync(s);return typeof l=="string"?l:void 0});a.error?console.error("error reading tsconfig for createTsProgram"):(i=e.ts.parseJsonConfigFileContent(a.config,e.ts.sys||{useCaseSensitiveFileNames:!1,readDirectory:(l,c)=>e.readdirSync(l),fileExists:l=>e.existsSync(l),readFile:l=>e.readFileSync(l)||void 0},e.dirname(o),void 0,o).options,mn.set(o,i))}i&&(n.options=K(i))}return n.options.moduleResolution=e.ts.ModuleResolutionKind.Node16,n.options.noEmit=!0,n.options.isolatedModules=!1,n.options.strict=!1,n.options.jsx=e.ts.JsxEmit.Preserve,n.options.allowJs=!0,e.ts.createProgram(n)}async function be(e,t,r){r||(r=await V(e,[t]));let n=r.getSourceFile(t);if(!n)throw new Error(`getTypeChecker() Could not find source file: ${t}`);return{typeChecker:r.getTypeChecker(),sourceFile:n}}var nt=class{constructor(t){this.libName=t}};async function Ro(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;tt.has(t)||tt.set(t,fetch(r).then(n=>n.text()).then(n=>{fn.set(t,n)})),await tt.get(t),tt.delete(t)}var fn=new Map,tt=new Map,Ke=new Map,mn=new Map;function E(e,t,r,n="esm"){return Array.isArray(r.namedImports)&&r.namedImports.forEach(o=>{t=Ao(e,t,o,r.importPath,!!r.isTypeOnly,n)}),typeof r.defaultImport=="string"&&(t=Fo(e,t,r.defaultImport,r.importPath,n)),t}function Ao(e,t,r,n,o,i){return i==="cjs"?gn(e,t,null,r,n):dn(e,t,null,r,n,o)}function Fo(e,t,r,n,o){return o==="cjs"?gn(e,t,r,null,n):dn(e,t,r,null,n,!1)}function dn(e,t,r,n,o,i){let a=[...t.statements],s=0,l=!1,c=!1;for(let p=0;p<a.length;p++){let x=a[p];if(!e.ts.isImportDeclaration(x)||(s=p,!x.moduleSpecifier||!e.ts.isStringLiteral(x.moduleSpecifier))||x.moduleSpecifier.text!==o||!!x.importClause?.isTypeOnly!==i)continue;let f=[],g=x.importClause?.namedBindings;if(g&&e.ts.isNamedImports(g)&&g.elements&&f.push(...g.elements),typeof n=="string"){if(f.some(C=>C.name.text===n))return t;f.push(e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))),f.sort((C,T)=>C.name.text.localeCompare(T.name.text)),l=!0}let h=x.importClause?x.importClause.name:void 0;if(typeof r=="string"){if(h&&h.text===r)return t;h=e.ts.factory.createIdentifier(r),c=!0}if(l||c)return a[p]=e.ts.factory.updateImportDeclaration(x,void 0,e.ts.factory.createImportClause(i,h,e.ts.factory.createNamedImports(f)),x.moduleSpecifier,void 0),e.ts.factory.updateSourceFile(t,a)}let d,m;typeof r=="string"&&(d=e.ts.factory.createIdentifier(r)),typeof n=="string"&&(m=e.ts.factory.createNamedImports([e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))]));let u=e.ts.factory.createImportDeclaration(void 0,e.ts.factory.createImportClause(i,d,m),e.ts.factory.createStringLiteral(o));return a.splice(s,0,u),e.ts.factory.updateSourceFile(t,a)}function gn(e,t,r,n,o){let i=[...t.statements],a=0;for(let s=0;s<i.length;s++){let l=i[s];if(e.ts.isVariableStatement(l))for(let c=0;c<l.declarationList.declarations.length;c++){let d=[...l.declarationList.declarations],m=d[c],u=m.initializer;if(!u||!e.ts.isCallExpression(u))continue;let p=u.expression;if(!e.ts.isIdentifier(p)||p.text!=="require"||u.arguments.length!==1)continue;let x=u.arguments[0];if(e.ts.isStringLiteral(x)&&(a=s,x.text===o)){if(e.ts.isIdentifier(m.name)&&typeof r=="string")return m.name.text===r?t:(d[c]=e.ts.factory.updateVariableDeclaration(m,e.ts.factory.createIdentifier(r),m.exclamationToken,m.type,m.initializer),i[s]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,d)),e.ts.factory.updateSourceFile(t,i));if(e.ts.isObjectBindingPattern(m.name)&&typeof n=="string"){let f=[...m.name.elements];return f.some(h=>!e.ts.isBindingElement(h)||!e.ts.isIdentifier(h.name)?!1:h.name.text===n)?t:(f.push(e.ts.factory.createBindingElement(void 0,void 0,n)),f.sort((h,C)=>!e.ts.isBindingElement(h)||!e.ts.isIdentifier(h.name)||!e.ts.isBindingElement(C)||!e.ts.isIdentifier(C.name)?0:h.name.text.localeCompare(C.name.text)),d[c]=e.ts.factory.updateVariableDeclaration(m,e.ts.factory.createObjectBindingPattern(f),m.exclamationToken,m.type,m.initializer),i[s]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,d)),e.ts.factory.updateSourceFile(t,i))}}}}if(typeof r=="string"){let s=e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral(o)]))],e.ts.NodeFlags.Const));return i.splice(a,0,s),e.ts.factory.updateSourceFile(t,i)}if(typeof n=="string"){let s=e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(e.ts.factory.createObjectBindingPattern([e.ts.factory.createBindingElement(void 0,void 0,n)]),void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral(o)]))],e.ts.NodeFlags.Const));return i.splice(a,0,s),e.ts.factory.updateSourceFile(t,i)}return t}function Q(e,t,r="esm"){return r==="cjs"?Oo(e,t):Lo(e,t)}function Lo(e,t){let r=[];for(let n of t.statements){if(e.ts.isExportDeclaration(n)){if(n.exportClause&&e.ts.isNamedExports(n.exportClause)){for(let o of n.exportClause.elements)if(n.moduleSpecifier&&r.push({isDefaultExport:!1,statement:n,node:o}),e.ts.isIdentifier(o.name)){let i=o.name.text;for(let a of t.statements)if(e.ts.isVariableStatement(a))for(let s of a.declarationList.declarations)e.ts.isIdentifier(s.name)&&s.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a});else e.ts.isFunctionDeclaration(a)&&a.name&&a.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a})}}continue}if(e.ts.isExportAssignment(n)){let o=n.flags===e.ts.NodeFlags.None,i=n.expression;if(e.ts.isIdentifier(i)){let a=i.text;for(let s of t.statements){if(e.ts.isVariableStatement(s))for(let l of s.declarationList.declarations)e.ts.isIdentifier(l.name)&&l.name.text===a&&r.push({isDefaultExport:o,statement:s,node:s});e.ts.isFunctionDeclaration(s)&&s.name?.text===a&&r.push({isDefaultExport:o,statement:s,node:s})}}else(e.ts.isArrowFunction(i)||e.ts.isCallExpression(i)||e.ts.isFunctionDeclaration(i)||e.ts.isObjectLiteralExpression(i))&&r.push({isDefaultExport:o,statement:n,node:i});continue}if((e.ts.isVariableStatement(n)||e.ts.isFunctionDeclaration(n))&&n.modifiers&&n.modifiers.some(o=>o.kind===e.ts.SyntaxKind.ExportKeyword)){r.push({isDefaultExport:n.modifiers.some(o=>o.kind===e.ts.SyntaxKind.DefaultKeyword),statement:n,node:n});continue}}return r}function Oo(e,t){let r=[];for(let n of t.statements)if(e.ts.isExpressionStatement(n)&&e.ts.isBinaryExpression(n.expression)&&e.ts.isPropertyAccessExpression(n.expression.left)){let o=n.expression.left,i=n.expression.right;if(!e.ts.isIdentifier(o.expression))continue;if(o.expression.text==="module"&&o.name.text==="exports"){if(e.ts.isIdentifier(i)){let a=i.text;for(let s of t.statements)if(e.ts.isVariableStatement(s))for(let l of s.declarationList.declarations)e.ts.isIdentifier(l.name)&&l.name.text===a&&r.push({isDefaultExport:!0,statement:s,node:s});else e.ts.isFunctionDeclaration(s)&&s.name&&s.name.text===a&&r.push({isDefaultExport:!0,statement:s,node:s})}else r.push({isDefaultExport:!0,statement:n,node:i});continue}}return r}function ko(e,t,r){for(let n of t.statements)if(e.ts.isImportDeclaration(n)&&n.importClause){if(n.importClause.namedBindings&&e.ts.isNamedImports(n.importClause.namedBindings)){for(let o of n.importClause.namedBindings.elements)if(e.ts.isIdentifier(o.name)&&o.name.text===r&&e.ts.isStringLiteral(n.moduleSpecifier))return{importPath:n.moduleSpecifier.text,exportType:"named"}}if(n.importClause.name&&n.importClause.name.text===r&&e.ts.isStringLiteral(n.moduleSpecifier))return{importPath:n.moduleSpecifier.text,exportType:"default"}}return null}async function Ie(e,t,r,n){let o=ko(e,r,n);if(o){let i=await Ue(e,e.normalize(e.resolve(e.dirname(t),o.importPath))),a=e.relative(e.getRootDir(),i);return{displayFilePath:R(e,i),filePath:i,relFilePath:a,importPath:o.importPath,exportType:o.exportType}}return null}function Ne(e,t,r){for(let n=0;n<t.statements.length;n++){let o=t.statements[n];if(e.ts.isVariableStatement(o)){for(let i of o.declarationList.declarations)if(e.ts.isIdentifier(i.name)&&i.name.text===r)return{statement:o,statementIndex:n}}}return null}function q(e,t,r){let n=Ne(e,t,r);if(n&&n.statement.declarationList.declarations.length>0){let o=n.statement.declarationList.declarations[0];if(o.initializer&&e.ts.isArrayLiteralExpression(o.initializer))return{statement:n.statement,statementIndex:n.statementIndex,variableDeclaration:o,arrayLiteralExp:o.initializer}}return null}function rt(e,t){if(t){if(jo(e,t))return!0;let r=!1;if(t.forEachChild(n=>{rt(e,n)&&(r=!0)}),r)return!0}return!1}function jo(e,t){return e.ts.isJsxElement(t)||e.ts.isJsxOpeningElement(t)||e.ts.isJsxOpeningFragment(t)||e.ts.isJsxSelfClosingElement(t)||e.ts.isJsxFragment(t)||e.ts.isJsxChild(t)}async function Ue(e,t){let r=e.extname(t).toLowerCase();if(r===""||!yt.includes(r)){for(let n of yt){let o=t+n;if(await e.exists(o))return o}for(let n of yt){let o=e.join(t,"index"+n);if(await e.exists(o))return o}}return t}var yt=[".tsx",".jsx",".ts",".js"];function Me(e,t,r){if(!r||!t)return;let n=t.getSymbolAtLocation(r);if(!n)return;let o=n.valueDeclaration;if(!o)return;let i=o.getSourceFile().fileName,a=_o(e,i);return a?[{name:a}]:void 0}function _o(e,t){if(typeof t=="string"){t=e.normalize(W(t));let r=t.split("/"),n=r.lastIndexOf("node_modules");if(n>-1){let o=r.slice(n+1),i=o[0];if(i)return i.startsWith("@")&&o[1]&&(i+="/"+o[1]),i}}}function te(e){let t=[];for(let r of e)if(r.dependencies)for(let n of r.dependencies)t.some(o=>o.name===n.name)||t.push({...n});return t.sort((r,n)=>r.name.localeCompare(n.name))}async function Re(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await V(e,t.map(a=>a.filePath)),o=n.getTypeChecker();return await Promise.all(t.map(async a=>{let s=n.getSourceFile(a.filePath);if(s){let c=(await ge(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);c&&(a.inputs=Te(e,o,c.node.fnNode))}return a}))}async function Ae(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await be(e,t.cmpInfo.filePath,r),a=(await ge(e,o,t.cmpInfo.filePath,n)).find(s=>s.cmpInfo.id===t.cmpInfo.id);if(!a)throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return Te(e,o,a.node.fnNode)}return[]}async function xn(e,t){let r=e.extname(t).toLowerCase();if(r===".tsx"||r===".jsx"||r===".ts"||r===".js"){let n=await e.readFile(t);if(n)return Bo(e,t,n)}return null}function Bo(e,t,r){let n=D(e,r);return ge(e,null,t,n)}async function ge(e,t,r,n){let o=[];for(let a of n.statements)if(e.ts.isExpressionStatement(a)&&e.ts.isStringLiteral(a.expression)&&a.expression.text==="use server")return o;let i=Q(e,n);return r=e.normalize(r),await Promise.all(i.map(async a=>{let s=await Vo(e,t,r,a);o.push(...s)})),o}async function Vo(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=_(e,r);if(e.ts.isVariableStatement(n.node)){for(let s of n.node.declarationList.declarations){if(!e.ts.isIdentifier(s.name)||!Be(s.name.text))continue;let l=Qe(e,t,s.initializer);if(l){let c=l.name||s.name.text,d=n.isDefaultExport?"default":c,m=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,d),displayFilePath:R(e,r),name:j(c),inputs:[],exportName:d,exportType:m,importName:c,filePath:r,relFilePath:i,importPath:a,dependencies:l.deps},node:l})}}return o}if(e.ts.isArrowFunction(n.node)){let s=Qe(e,t,n.node);if(s){let l=Y(e,r),c=n.isDefaultExport?"default":l,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,c),displayFilePath:R(e,r),name:l,inputs:[],exportName:c,exportType:d,importName:Pe(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:s.deps},node:s})}return o}if(e.ts.isFunctionExpression(n.node)||e.ts.isFunctionDeclaration(n.node)){let s=n.node.name?.text;if(s&&!Be(s))return o;let l=Qe(e,t,n.node);if(l){let c=l.name||Y(e,r),d=n.isDefaultExport||!l.name?"default":l.name,m=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,d),displayFilePath:R(e,r),name:c,inputs:[],exportName:d,exportType:m,importName:l.name||Pe(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:l.deps},node:l})}return o}if(e.ts.isExportSpecifier(n.node)&&Be(n.node.getText())){let s=Qe(e,t,n.node);if(s){let l=s.name||Y(e,r),c=n.isDefaultExport||!s.name?"default":s.name,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await k(e,r,c),displayFilePath:R(e,r),name:l,inputs:[],exportName:c,exportType:d,importName:s.name||Pe(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:s.deps},node:s})}return o}return o}function Qe(e,t,r){if(!r)return null;if(e.ts.isArrowFunction(r))return rt(e,r.body)?{name:"",fnNode:r,deps:Me(e,t,r)}:null;if(e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r))return rt(e,r.body)?{name:r.name?.text||"",fnNode:r,deps:Me(e,t,r)}:null;if(e.ts.isCallExpression(r)){let n=r.expression;if(!e.ts.isPropertyAccessExpression(n))return null;let o=r.arguments;if(o.length===0)return null;let i=n.expression;if(!e.ts.isIdentifier(i)||i.text!=="React")return null;let a=n.name;return!e.ts.isIdentifier(a)||a.text!=="forwardRef"?null:Qe(e,t,o[0])}if(!t)return null;if(e.ts.isPropertyAccessExpression(r)){let n=r.expression,o=r.name;if(!e.ts.isIdentifier(n)||!e.ts.isIdentifier(o)||!Be(o.text))return null;let a=t.getTypeAtLocation(o).getCallSignatures();if(a.length>0&&a[0].getParameters().length>0)return{name:"",fnNode:o,deps:Me(e,t,o)}}if(e.ts.isExportSpecifier(r)){let n=r.name;return{name:n.text||"",fnNode:n,deps:Me(e,t,n)}}return null}async function hn(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker();return await Promise.all(n.map(async i=>{let a=e.normalize(i.fileName);if(zo(e,i.fileName)||a===e.reactConfigPath||a===e.registryPath||a===e.builderComponentPath)return;let s=await ge(e,o,a,i);r.push(...s)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var $o=new Set(["node_modules","dist"]);function zo(e,t){for(let r of $o)if(e.dirname(t).includes(r))return!0;return!1}async function Cn(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(e.appDir&&Ko.has(a)||e.dirname(i.fileName).includes("node_modules"))return;let s=e.normalize(i.fileName);if(s===e.nextConfigPath||s===e.registryPath||s===e.builderComponentPath)return;let l=await ge(e,o,s,i);r.push(...l)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Ko=new Set(["default.tsx","default.ts","default.jsx","default.js","error.tsx","error.ts","error.jsx","error.js","layout.tsx","layout.ts","layout.jsx","layout.js","loading.tsx","loading.ts","loading.jsx","loading.js","not-found.tsx","not-found.ts","not-found.jsx","not-found.js","page.tsx","page.ts","page.jsx","page.js","route.tsx","route.ts","route.jsx","route.js","template.tsx","template.ts","template.jsx","template.js"]);function ne(e,t){let r=[],n=[],o=[],i=[];for(let a of t.statements){if(e.ts.isImportDeclaration(a)){if(e.ts.isStringLiteral(a.moduleSpecifier)){let l=a.moduleSpecifier.text;if(!l.startsWith(".")&&!l.startsWith("/")){r.push(a);continue}}let s=a.importClause;if(s){if(s.namedBindings){n.push(a);continue}if(s.name){n.push(a);continue}}o.push(a);continue}i.push(a)}return e.ts.factory.updateSourceFile(t,[...wt(e,r),...wt(e,n),...wt(e,o),...i])}function J(e){let t=e.split(`
|
|
23
23
|
`).map(n=>n.trimEnd());e="";let r=!1;for(let n=t.length-1;n>=0;n--){let o=t[n];!r&&o.startsWith("import ")&&(r=!0,o=o+`
|
|
24
24
|
`),/^builder.init(.*)$/.test(o)&&(o=o+`
|
|
25
25
|
`),t[n-1]&&!t[n-1].includes("*/")&&(o.trim().startsWith("Builder.registerComponent")&&(o=`
|
|
@@ -28,19 +28,19 @@ ${r}=${n}
|
|
|
28
28
|
`+o),o.trim().startsWith("export ")&&(o=`
|
|
29
29
|
`+o)),e=o+`
|
|
30
30
|
`+e}return e.trim()+`
|
|
31
|
-
`}function
|
|
32
|
-
${e}`),e}function En(e,t){let r=t.statements.filter(n=>!(e.ts.isExpressionStatement(n)&&e.ts.isStringLiteral(n.expression)&&e.ts.isStringLiteral(n.expression)&&n.expression.text==="use client"));return e.ts.factory.updateSourceFile(t,r)}function Fe(e,t){return t.sort((r,n)=>{if(e.ts.isObjectLiteralExpression(r)&&e.ts.isObjectLiteralExpression(n)){let o=Dn(e,r),i=Dn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())}return 1})}function Dn(e,t){let r=t.properties.find(n=>I(e,n)==="name");return r&&e.ts.isPropertyAssignment(r)&&e.ts.isStringLiteral(r.initializer)?r.initializer.text:"zzzz"}async function vn(e){let t=await e.readFile(e.registryPath);return t?qo(e,t):{components:[],sourceFile:D(e,"")}}async function qo(e,t){let r=D(e,t);return Jo(e,r)}async function Jo(e,t){let r=[];for(let n=0;n<t.statements.length;n++){let o=t.statements[n];if(!e.ts.isExpressionStatement(o))continue;let i=o.expression;if(!e.ts.isCallExpression(i))continue;let a=i.expression;if(!e.ts.isPropertyAccessExpression(a))continue;let s=a.expression;if(!e.ts.isIdentifier(s)||s.text!=="Builder"||a.name.text!=="registerComponent")continue;let c=i.arguments;if(c.length<2)continue;let d=c[1];if(!e.ts.isObjectLiteralExpression(d))continue;let u=c[0];if(e.ts.isCallExpression(u)){let m=e.ts.isIdentifier(u.expression)&&u.expression.text;if(m==="withChildren"){let x=vt(e,u.arguments[0]);if(e.ts.isCallExpression(x)){let f=await Pt(e,n,x,d,!0);f&&r.push(f)}else{let f=x;if(e.ts.isIdentifier(f)){let g=await Et(e,t,n,f,d,!0);g&&r.push(g)}}continue}if(m==="dynamic"){let x=await Pt(e,n,u,d,!1);x&&r.push(x);continue}let p=vt(e,u.arguments[0]);if(e.ts.isCallExpression(p)&&e.ts.isIdentifier(p.expression)&&p.expression.text==="dynamic"){let x=await Pt(e,n,p,d,!1);x&&r.push(x);continue}if(e.ts.isIdentifier(p)){let x=await Et(e,t,n,p,d,!1);x&&r.push(x);continue}continue}if(e.ts.isIdentifier(u)){let m=await Et(e,t,n,u,d,!1);m&&r.push(m);continue}}return{sourceFile:t,components:M(r)}}function vt(e,t){return e.ts.isCallExpression(t)?(e.ts.isIdentifier(t.expression)&&t.expression.text)==="dynamic"?t:vt(e,t.arguments[0]):t}async function Pt(e,t,r,n,o){let i={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],nodeIndex:t,acceptsChildren:o},a=r.arguments;if(a.length===0)return null;let s=a[0];if(!e.ts.isArrowFunction(s))return null;let l=s.body;if(e.ts.isCallExpression(l)){if(l.expression.kind!==e.ts.SyntaxKind.ImportKeyword||l.arguments.length!==1)return null;let d=l.arguments[0];if(!e.ts.isStringLiteral(d))return null;let u=d.text;i.filePath=await it(e,u),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=_(e,i.filePath),i.name=Y(e,i.filePath),i.importName="default",i.exportName="default",i.exportType="default"}else if(e.ts.isPropertyAccessExpression(l)){let c=l.expression;if(!e.ts.isParenthesizedExpression(c))return null;let d=c.expression;if(!e.ts.isAwaitExpression(d))return null;let u=d.expression;if(!e.ts.isCallExpression(u)||u.expression.kind!==e.ts.SyntaxKind.ImportKeyword||u.arguments.length!==1)return null;let p=u.arguments[0];if(!e.ts.isStringLiteral(p)||!e.ts.isIdentifier(l.name))return null;let x=p.text;i.filePath=await it(e,x),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=_(e,i.filePath),i.name=j(l.name.text),i.importName=l.name.text,i.exportName=l.name.text,i.exportType="named"}else return null;return i=H(e,i,n),i.displayFilePath=F(e,i.filePath),i.filePath&&i.exportName&&(i.id=await k(e,i.filePath,i.exportName)),i}async function Et(e,t,r,n,o,i){let a={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],nodeIndex:r,acceptsChildren:i},s=t.statements.filter(c=>e.ts.isImportDeclaration(c)),l=s.find(c=>c.importClause&&c.importClause.name?.text===n.text);if(l){let c=l.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;a.filePath=await it(e,c.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let c=s.find(u=>!u.importClause||!u.importClause.namedBindings||!e.ts.isNamedImports(u.importClause.namedBindings)?!1:u.importClause.namedBindings.elements.some(m=>m.name.text===n.text));if(!c)return null;let d=c.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;a.filePath=await it(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=H(e,a,o),a.displayFilePath=F(e,a.filePath),a.filePath&&a.exportName&&(a.id=await k(e,a.filePath,a.exportName)),a}function it(e,t){return Me(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}function bn(e,t,r){let n=!1,o=0,i=[...t.statements];for(let c=0;c<i.length;c++){let d=i[c];if(e.ts.isImportDeclaration(d)){o=c;continue}if(!e.ts.isExpressionStatement(d))continue;let u=d.expression;if(!e.ts.isCallExpression(u))continue;let m=u.expression;if(!e.ts.isPropertyAccessExpression(m))continue;let p=m.expression;if(!e.ts.isIdentifier(p)||p.text!=="builder")continue;if(m.name.text=="init"){n=!0;break}else continue}if(n)return t;let a=e.ts.factory.createPropertyAccessExpression(e.ts.factory.createPropertyAccessExpression(e.ts.factory.createIdentifier("process"),e.ts.factory.createIdentifier("env")),e.ts.factory.createIdentifier(Te)),s=r?e.ts.factory.createNonNullExpression(a):a,l=e.ts.factory.createExpressionStatement(e.ts.factory.createCallExpression(e.ts.factory.createPropertyAccessExpression(e.ts.factory.createIdentifier("builder"),e.ts.factory.createIdentifier("init")),void 0,[s]));return i.splice(o+1,0,l),e.ts.factory.updateSourceFile(t,i)}function re(e,t){let r=[...t.statements],n=!1;for(let o=t.statements.length-1;o>=0;o--){let i=t.statements[o];if(e.ts.isImportDeclaration(i)&&i.importClause){let a=!1,s=i.importClause.namedBindings;if(s&&e.ts.isNamedImports(s)&&s.elements){let l=[...s.elements];for(let c=l.length-1;c>=0;c--){let d=l[c];if(e.ts.isImportSpecifier(d)){let u=d.name;if(u&&e.ts.isIdentifier(u)){let m=u.text;In(e,t,m)||l.splice(c,1)}}}if(l.length===0)a=!0;else if(s.elements.length!==l.length){let c=e.ts.factory.updateImportClause(i.importClause,!1,i.importClause.name,e.ts.factory.createNamedImports(l)),d=e.ts.factory.updateImportDeclaration(i,void 0,c,i.moduleSpecifier,void 0);r[o]=d,n=!0}}else if(i.importClause.name&&e.ts.isIdentifier(i.importClause.name)){let l=i.importClause.name.text;In(e,t,l)||(a=!0)}a&&(r.splice(o,1),n=!0)}}return n?e.ts.factory.updateSourceFile(t,r):t}function In(e,t,r){let n=!1;function o(i){if(!e.ts.isImportDeclaration(i)){if(e.ts.isIdentifier(i)&&i.text===r){n=!0;return}e.ts.forEachChild(i,o)}}return e.ts.forEachChild(t,o),n}function oe(e,t,r,n,o,i,a){let s=null,l=null,c=null,d=-1;t=K(t),r=K(r);let u=t.find(p=>p.id===e),m=r.find(p=>p.id===e);if(n)m||(s={...K(u),inputs:K(u.inputs).map(p=>(p.isRegistered=!0,p))},d=r.length,r.push(s));else if(typeof m?.nodeIndex=="number"&&m.nodeIndex>-1){if(o)d=m.nodeIndex,l=K(m),r=r.filter(p=>p.id!==e);else if(i!=null)Wo(m,i),d=m.nodeIndex,c=m;else if(a!=null){let p=m.inputs.find(x=>x.name===a.name);p&&(a.registerInput===!1?p.isRegistered=!1:(Yo(p,a),p.isRegistered=!0),c=m,d=m.nodeIndex)}}return{addCmpToRegistry:s,removeCmpFromRegistry:l,updateRegisteredCmp:c,nodeIndex:d,components:X(t,r)}}function X(e,t){let r=M([...t.map(n=>(n.isRegistered=!0,n)),...e.filter(n=>!t.some(o=>o.id===n.id)).map(n=>(n.isRegistered=!1,n))]);return r.forEach(n=>{n.inputs=n.inputs.map(Tt),n.inputs.sort((i,a)=>i.name.toLowerCase().localeCompare(a.name.toLowerCase()));let o=t.find(i=>i.id===n.id);o&&(o.acceptsChildren=St(n))}),r}function Wo(e,t){z(t.name)?e.name=t.name:t.name===null&&(e.name=e.importName),z(t.description)?e.description=t.description:t.description===null&&delete e.description,z(t.image)?e.image=t.image:t.image===null&&delete e.image}function Yo(e,t){z(t.type)&&(e.type=t.type),z(t.friendlyName)?e.friendlyName=t.friendlyName:t.friendlyName===null&&delete e.friendlyName,z(t.defaultValue)||Be(t.defaultValue)||ve(t.defaultValue)?e.defaultValue=t.defaultValue:t.defaultValue===null&&delete e.defaultValue,z(t.helperText)?e.helperText=t.helperText:t.helperText===null&&delete e.helperText,t.required===!0?e.required=t.required:(t.required===null||t.required===!1)&&delete e.required}async function he(e){let t=new Set,r=async o=>{let i=await e.readdir(o);await Promise.all(i.map(async a=>{if(a.startsWith(".")||a==="node_modules")return;let s=e.join(o,a),l=e.extname(a).toLowerCase();if(l===".tsx"||l===".jsx"||l===".ts"||l===".js"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await $(e,[...t])}async function ie(e,t,r,n,o,i,a,s){let l=await he(e),[c,d,u,m]=await Promise.all([yn(e,l),vn(e),bt(e),_e(e)]),p=c.map(T=>T.cmpInfo),x=d.components,f={components:X(p,x),registryPath:e.registryPath,registryDisplayPath:F(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(p),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return f.components=await Re(e,f.components),f;let g=!1,h=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let T=C.map(S=>{let E=c.find(O=>O.cmpInfo.id===S);if(!E)throw new Error(`Component ${S} not found`);return E}),L=Array.from(new Set(T.map(S=>S.cmpInfo.filePath))),w=await $(e,L);for(let S of T){let E=f.components.find(A=>A.id===S.cmpInfo.id),O=await Ae(e,S,w);G(E,O);let N=p.findIndex(A=>A.id===S.cmpInfo.id);p[N].inputs=O;let y=oe(S.cmpInfo.id,p,x,r,n,o,i),R=[...h.statements];if(y.addCmpToRegistry?(R.push(dn(e,y.addCmpToRegistry)),g=!0):y.removeCmpFromRegistry?(R.splice(y.nodeIndex,1),g=!0):y.updateRegisteredCmp&&(R[y.nodeIndex]=yt(e,R[y.nodeIndex],y.updateRegisteredCmp),g=!0),g&&a){if(h=e.ts.factory.updateSourceFile(h,R),h=P(e,h,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),h=bn(e,h,u),e.appDir){let A=y.addCmpToRegistry||y.updateRegisteredCmp;if(A){let V=b(e,e.registryPath,A.filePath);A.exportType==="default"?h=P(e,h,{defaultImport:A.importName,importPath:V}):A.exportType==="named"&&(h=P(e,h,{namedImports:[A.importName],importPath:V}))}}else h=P(e,h,{defaultImport:"dynamic",importPath:"next/dynamic"});E?.acceptsChildren&&(h=P(e,h,{namedImports:["withChildren"],importPath:"@builder.io/react"})),f.components=y.components,x=y.components.filter(A=>A.isRegistered)}}}if(g&&a){h=re(e,h),h=ne(e,h),e.appDir&&(h=En(e,h));let T=v(e,h);T=J(T),e.appDir&&(T=Pn(T)),T=await e.formatCode(e.registryPath,T),await e.writeFile(e.registryPath,T)}return f}async function Nn(e){let t=[],r=await ti(e,t);return await ri(e,r,t),e.appDir?(e.debug(`ensure builder setup for next.js app ${e.appDir}`),await Go(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure builder setup for next.js pages ${e.pagesDir}`),await Zo(e,e.pagesDir,t)),t}async function Rn(e){let t=[];return e.appDir?(e.debug(`ensure figma-imports setup for next.js app ${e.appDir}`),await Ho(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure figma-imports setup for next.js pages ${e.pagesDir}`),await ei(e,e.pagesDir,t)),t}async function Ho(e,t,r){let n=`page.${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,"figma-imports",n);if(!await e.exists(o)){let i=await e.formatCode(o,An({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function Go(e,t,r){let n=`page.${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,"[...page]",n);if(!await e.exists(o)){let i=await e.formatCode(o,An({sys:e,routePath:o,modelName:"page"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}if(!await e.exists(e.builderComponentPath)){let i=await e.formatCode(e.builderComponentPath,Xo(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}function Xo(e){let t=e.typescriptEnabled;return`
|
|
31
|
+
`}function wt(e,t){return t.sort((r,n)=>{let o=Sn(e,r),i=Sn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())})}function Sn(e,t){let r=t.importClause;if(r){let n=r.namedBindings;if(n&&e.ts.isNamedImports(n)&&n.elements.length>0)return n.elements[0].name.text;if(r.name)return r.name.text}return t.moduleSpecifier&&e.ts.isStringLiteral(t.moduleSpecifier)?t.moduleSpecifier.text:""}function yn(e){return typeof e=="string"&&!e.includes("'use client'")&&!e.includes(`"use client"'`)&&(e=`"use client"
|
|
32
|
+
${e}`),e}function wn(e,t){let r=t.statements.filter(n=>!(e.ts.isExpressionStatement(n)&&e.ts.isStringLiteral(n.expression)&&e.ts.isStringLiteral(n.expression)&&n.expression.text==="use client"));return e.ts.factory.updateSourceFile(t,r)}function Fe(e,t){return t.sort((r,n)=>{if(e.ts.isObjectLiteralExpression(r)&&e.ts.isObjectLiteralExpression(n)){let o=Tn(e,r),i=Tn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())}return 1})}function Tn(e,t){let r=t.properties.find(n=>A(e,n)==="name");return r&&e.ts.isPropertyAssignment(r)&&e.ts.isStringLiteral(r.initializer)?r.initializer.text:"zzzz"}async function Dn(e){let t=await e.readFile(e.registryPath);return t?Uo(e,t):{components:[],sourceFile:D(e,"")}}async function Uo(e,t){let r=D(e,t);return Mo(e,r)}async function Mo(e,t){let r=[];for(let n=0;n<t.statements.length;n++){let o=t.statements[n];if(!e.ts.isExpressionStatement(o))continue;let i=o.expression;if(!e.ts.isCallExpression(i))continue;let a=i.expression;if(!e.ts.isPropertyAccessExpression(a))continue;let s=a.expression;if(!e.ts.isIdentifier(s)||s.text!=="Builder"||a.name.text!=="registerComponent")continue;let c=i.arguments;if(c.length<2)continue;let d=c[1];if(!e.ts.isObjectLiteralExpression(d))continue;let m=c[0];if(e.ts.isCallExpression(m)){let u=e.ts.isIdentifier(m.expression)&&m.expression.text;if(u==="withChildren"){let x=Pt(e,m.arguments[0]);if(e.ts.isCallExpression(x)){let f=await Dt(e,n,x,d,!0);f&&r.push(f)}else{let f=x;if(e.ts.isIdentifier(f)){let g=await Et(e,t,n,f,d,!0);g&&r.push(g)}}continue}if(u==="dynamic"){let x=await Dt(e,n,m,d,!1);x&&r.push(x);continue}let p=Pt(e,m.arguments[0]);if(e.ts.isCallExpression(p)&&e.ts.isIdentifier(p.expression)&&p.expression.text==="dynamic"){let x=await Dt(e,n,p,d,!1);x&&r.push(x);continue}if(e.ts.isIdentifier(p)){let x=await Et(e,t,n,p,d,!1);x&&r.push(x);continue}continue}if(e.ts.isIdentifier(m)){let u=await Et(e,t,n,m,d,!1);u&&r.push(u);continue}}return{sourceFile:t,components:M(r)}}function Pt(e,t){return e.ts.isCallExpression(t)?(e.ts.isIdentifier(t.expression)&&t.expression.text)==="dynamic"?t:Pt(e,t.arguments[0]):t}async function Dt(e,t,r,n,o){let i={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],nodeIndex:t,acceptsChildren:o},a=r.arguments;if(a.length===0)return null;let s=a[0];if(!e.ts.isArrowFunction(s))return null;let l=s.body;if(e.ts.isCallExpression(l)){if(l.expression.kind!==e.ts.SyntaxKind.ImportKeyword||l.arguments.length!==1)return null;let d=l.arguments[0];if(!e.ts.isStringLiteral(d))return null;let m=d.text;i.filePath=await ot(e,m),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=_(e,i.filePath),i.name=Y(e,i.filePath),i.importName="default",i.exportName="default",i.exportType="default"}else if(e.ts.isPropertyAccessExpression(l)){let c=l.expression;if(!e.ts.isParenthesizedExpression(c))return null;let d=c.expression;if(!e.ts.isAwaitExpression(d))return null;let m=d.expression;if(!e.ts.isCallExpression(m)||m.expression.kind!==e.ts.SyntaxKind.ImportKeyword||m.arguments.length!==1)return null;let p=m.arguments[0];if(!e.ts.isStringLiteral(p)||!e.ts.isIdentifier(l.name))return null;let x=p.text;i.filePath=await ot(e,x),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=_(e,i.filePath),i.name=j(l.name.text),i.importName=l.name.text,i.exportName=l.name.text,i.exportType="named"}else return null;return i=H(e,i,n),i.displayFilePath=R(e,i.filePath),i.filePath&&i.exportName&&(i.id=await k(e,i.filePath,i.exportName)),i}async function Et(e,t,r,n,o,i){let a={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],nodeIndex:r,acceptsChildren:i},s=t.statements.filter(c=>e.ts.isImportDeclaration(c)),l=s.find(c=>c.importClause&&c.importClause.name?.text===n.text);if(l){let c=l.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;a.filePath=await ot(e,c.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let c=s.find(m=>!m.importClause||!m.importClause.namedBindings||!e.ts.isNamedImports(m.importClause.namedBindings)?!1:m.importClause.namedBindings.elements.some(u=>u.name.text===n.text));if(!c)return null;let d=c.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;a.filePath=await ot(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=H(e,a,o),a.displayFilePath=R(e,a.filePath),a.filePath&&a.exportName&&(a.id=await k(e,a.filePath,a.exportName)),a}function ot(e,t){return Ue(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}function En(e,t,r){let n=!1,o=0,i=[...t.statements];for(let c=0;c<i.length;c++){let d=i[c];if(e.ts.isImportDeclaration(d)){o=c;continue}if(!e.ts.isExpressionStatement(d))continue;let m=d.expression;if(!e.ts.isCallExpression(m))continue;let u=m.expression;if(!e.ts.isPropertyAccessExpression(u))continue;let p=u.expression;if(!e.ts.isIdentifier(p)||p.text!=="builder")continue;if(u.name.text=="init"){n=!0;break}else continue}if(n)return t;let a=e.ts.factory.createPropertyAccessExpression(e.ts.factory.createPropertyAccessExpression(e.ts.factory.createIdentifier("process"),e.ts.factory.createIdentifier("env")),e.ts.factory.createIdentifier(Se)),s=r?e.ts.factory.createNonNullExpression(a):a,l=e.ts.factory.createExpressionStatement(e.ts.factory.createCallExpression(e.ts.factory.createPropertyAccessExpression(e.ts.factory.createIdentifier("builder"),e.ts.factory.createIdentifier("init")),void 0,[s]));return i.splice(o+1,0,l),e.ts.factory.updateSourceFile(t,i)}function re(e,t){let r=[...t.statements],n=!1;for(let o=t.statements.length-1;o>=0;o--){let i=t.statements[o];if(e.ts.isImportDeclaration(i)&&i.importClause){let a=!1,s=i.importClause.namedBindings;if(s&&e.ts.isNamedImports(s)&&s.elements){let l=[...s.elements];for(let c=l.length-1;c>=0;c--){let d=l[c];if(e.ts.isImportSpecifier(d)){let m=d.name;if(m&&e.ts.isIdentifier(m)){let u=m.text;Pn(e,t,u)||l.splice(c,1)}}}if(l.length===0)a=!0;else if(s.elements.length!==l.length){let c=e.ts.factory.updateImportClause(i.importClause,!1,i.importClause.name,e.ts.factory.createNamedImports(l)),d=e.ts.factory.updateImportDeclaration(i,void 0,c,i.moduleSpecifier,void 0);r[o]=d,n=!0}}else if(i.importClause.name&&e.ts.isIdentifier(i.importClause.name)){let l=i.importClause.name.text;Pn(e,t,l)||(a=!0)}a&&(r.splice(o,1),n=!0)}}return n?e.ts.factory.updateSourceFile(t,r):t}function Pn(e,t,r){let n=!1;function o(i){if(!e.ts.isImportDeclaration(i)){if(e.ts.isIdentifier(i)&&i.text===r){n=!0;return}e.ts.forEachChild(i,o)}}return e.ts.forEachChild(t,o),n}function oe(e,t,r,n,o,i,a){let s=null,l=null,c=null,d=-1;t=K(t),r=K(r);let m=t.find(p=>p.id===e),u=r.find(p=>p.id===e);if(n)u||(s={...K(m),inputs:K(m.inputs).map(p=>(p.isRegistered=!0,p))},d=r.length,r.push(s));else if(typeof u?.nodeIndex=="number"&&u.nodeIndex>-1){if(o)d=u.nodeIndex,l=K(u),r=r.filter(p=>p.id!==e);else if(i!=null)Qo(u,i),d=u.nodeIndex,c=u;else if(a!=null){let p=u.inputs.find(x=>x.name===a.name);p&&(a.registerInput===!1?p.isRegistered=!1:(qo(p,a),p.isRegistered=!0),c=u,d=u.nodeIndex)}}return{addCmpToRegistry:s,removeCmpFromRegistry:l,updateRegisteredCmp:c,nodeIndex:d,components:X(t,r)}}function X(e,t){let r=M([...t.map(n=>(n.isRegistered=!0,n)),...e.filter(n=>!t.some(o=>o.id===n.id)).map(n=>(n.isRegistered=!1,n))]);return r.forEach(n=>{n.inputs=n.inputs.map(St),n.inputs.sort((i,a)=>i.name.toLowerCase().localeCompare(a.name.toLowerCase()));let o=t.find(i=>i.id===n.id);o&&(o.acceptsChildren=Ct(n))}),r}function Qo(e,t){z(t.name)?e.name=t.name:t.name===null&&(e.name=e.importName),z(t.description)?e.description=t.description:t.description===null&&delete e.description,z(t.image)?e.image=t.image:t.image===null&&delete e.image}function qo(e,t){z(t.type)&&(e.type=t.type),z(t.friendlyName)?e.friendlyName=t.friendlyName:t.friendlyName===null&&delete e.friendlyName,z(t.defaultValue)||_e(t.defaultValue)||ve(t.defaultValue)?e.defaultValue=t.defaultValue:t.defaultValue===null&&delete e.defaultValue,z(t.helperText)?e.helperText=t.helperText:t.helperText===null&&delete e.helperText,t.required===!0?e.required=t.required:(t.required===null||t.required===!1)&&delete e.required}async function xe(e){let t=new Set,r=async o=>{let i=await e.readdir(o);await Promise.all(i.map(async a=>{if(a.startsWith(".")||a==="node_modules")return;let s=e.join(o,a),l=e.extname(a).toLowerCase();if(l===".tsx"||l===".jsx"||l===".ts"||l===".js"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await V(e,[...t])}async function ie(e,t,r,n,o,i,a,s){let l=await xe(e),[c,d,m,u]=await Promise.all([Cn(e,l),Dn(e),vt(e),je(e)]),p=c.map(T=>T.cmpInfo),x=d.components,f={components:X(p,x),registryPath:e.registryPath,registryDisplayPath:R(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(p),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return f.components=await Re(e,f.components),f;let g=!1,h=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let T=C.map(S=>{let P=c.find(O=>O.cmpInfo.id===S);if(!P)throw new Error(`Component ${S} not found`);return P}),F=Array.from(new Set(T.map(S=>S.cmpInfo.filePath))),w=await V(e,F);for(let S of T){let P=f.components.find(I=>I.id===S.cmpInfo.id),O=await Ae(e,S,w);G(P,O);let v=p.findIndex(I=>I.id===S.cmpInfo.id);p[v].inputs=O;let y=oe(S.cmpInfo.id,p,x,r,n,o,i),b=[...h.statements];if(y.addCmpToRegistry?(b.push(un(e,y.addCmpToRegistry)),g=!0):y.removeCmpFromRegistry?(b.splice(y.nodeIndex,1),g=!0):y.updateRegisteredCmp&&(b[y.nodeIndex]=Tt(e,b[y.nodeIndex],y.updateRegisteredCmp),g=!0),g&&a){if(h=e.ts.factory.updateSourceFile(h,b),h=E(e,h,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),h=En(e,h,m),e.appDir){let I=y.addCmpToRegistry||y.updateRegisteredCmp;if(I){let $=L(e,e.registryPath,I.filePath);I.exportType==="default"?h=E(e,h,{defaultImport:I.importName,importPath:$}):I.exportType==="named"&&(h=E(e,h,{namedImports:[I.importName],importPath:$}))}}else h=E(e,h,{defaultImport:"dynamic",importPath:"next/dynamic"});P?.acceptsChildren&&(h=E(e,h,{namedImports:["withChildren"],importPath:"@builder.io/react"})),f.components=y.components,x=y.components.filter(I=>I.isRegistered)}}}if(g&&a){h=re(e,h),h=ne(e,h),e.appDir&&(h=wn(e,h));let T=N(e,h);T=J(T),e.appDir&&(T=yn(T)),T=await e.formatCode(e.registryPath,T),await e.writeFile(e.registryPath,T)}return f}async function vn(e){let t=[],r=await Xo(e,t);return await ei(e,r,t),e.appDir?(e.debug(`ensure builder setup for next.js app ${e.appDir}`),await Wo(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure builder setup for next.js pages ${e.pagesDir}`),await Ho(e,e.pagesDir,t)),t}async function bn(e){let t=[];return e.appDir?(e.debug(`ensure figma-imports setup for next.js app ${e.appDir}`),await Jo(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure figma-imports setup for next.js pages ${e.pagesDir}`),await Go(e,e.pagesDir,t)),t}async function Jo(e,t,r){let n=`page.${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,"figma-imports",n);if(!await e.exists(o)){let i=await e.formatCode(o,In({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function Wo(e,t,r){let n=`page.${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,"[...page]",n);if(!await e.exists(o)){let i=await e.formatCode(o,In({sys:e,routePath:o,modelName:"page"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}if(!await e.exists(e.builderComponentPath)){let i=await e.formatCode(e.builderComponentPath,Yo(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}function Yo(e){let t=e.typescriptEnabled;return`
|
|
33
33
|
"use client";
|
|
34
34
|
${t?'import { ComponentProps } from "react";':""}
|
|
35
35
|
import { BuilderComponent, useIsPreviewing } from "@builder.io/react";
|
|
36
36
|
import { ${t?"BuilderContent, ":""}builder } from '@builder.io/sdk';
|
|
37
37
|
import DefaultErrorPage from "next/error";
|
|
38
|
-
import ${JSON.stringify(
|
|
38
|
+
import ${JSON.stringify(L(e,e.builderComponentPath,e.registryPath))};
|
|
39
39
|
${t?`
|
|
40
40
|
type BuilderPageProps = ComponentProps<typeof BuilderComponent>;`:""}
|
|
41
41
|
|
|
42
42
|
// Builder Public API Key set in .env file
|
|
43
|
-
builder.init(process.env.${
|
|
43
|
+
builder.init(process.env.${Se}${t?"!":""});
|
|
44
44
|
|
|
45
45
|
export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":""}) {
|
|
46
46
|
// Call the useIsPreviewing hook to determine if
|
|
@@ -56,12 +56,12 @@ export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":
|
|
|
56
56
|
// DefaultErrorPage with a 404.
|
|
57
57
|
return <DefaultErrorPage statusCode={404} />;
|
|
58
58
|
}
|
|
59
|
-
`.trimStart()}function
|
|
59
|
+
`.trimStart()}function In({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=L(e,t,e.builderComponentPath);return`
|
|
60
60
|
import { builder } from "@builder.io/sdk";
|
|
61
61
|
import { RenderBuilderContent } from ${JSON.stringify(o)};
|
|
62
62
|
|
|
63
63
|
// Builder Public API Key set in .env file
|
|
64
|
-
builder.init(process.env.${
|
|
64
|
+
builder.init(process.env.${Se}${n?"!":""});
|
|
65
65
|
${n?`
|
|
66
66
|
interface PageProps {
|
|
67
67
|
params: {
|
|
@@ -90,7 +90,7 @@ export default async function Page(props${n?": PageProps":""}) {
|
|
|
90
90
|
</>
|
|
91
91
|
);
|
|
92
92
|
}
|
|
93
|
-
`.trimStart()}async function
|
|
93
|
+
`.trimStart()}async function Ho(e,t,r){let n=`[...page].${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,n);if(!await e.exists(o)){let i=await e.formatCode(o,Nn({sys:e,routePath:o,modelName:"page"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function Go(e,t,r){let n=`figma-imports.${e.typescriptEnabled?"tsx":"jsx"}`,o=e.join(t,n);if(!await e.exists(o)){let i=await e.formatCode(o,Nn({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}function Nn({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled;return`
|
|
94
94
|
import React from "react";
|
|
95
95
|
import { useRouter } from "next/router";
|
|
96
96
|
import { BuilderComponent, builder, useIsPreviewing } from "@builder.io/react";
|
|
@@ -98,9 +98,9 @@ import DefaultErrorPage from "next/error";
|
|
|
98
98
|
import Head from "next/head";${n?`
|
|
99
99
|
import { BuilderContent } from "@builder.io/sdk";`:""}${n?`
|
|
100
100
|
import { GetStaticProps } from "next";`:""}
|
|
101
|
-
import ${JSON.stringify(
|
|
101
|
+
import ${JSON.stringify(L(e,t,e.registryPath))};
|
|
102
102
|
|
|
103
|
-
builder.init(process.env.${
|
|
103
|
+
builder.init(process.env.${Se}${n?"!":""});
|
|
104
104
|
|
|
105
105
|
// Define a function that fetches the Builder
|
|
106
106
|
// content for a given page
|
|
@@ -164,7 +164,7 @@ export default function Page({ page }${n?": { page: BuilderContent | null }":""}
|
|
|
164
164
|
</>
|
|
165
165
|
);
|
|
166
166
|
}
|
|
167
|
-
`.trimStart()}async function
|
|
167
|
+
`.trimStart()}async function Xo(e,t){let n=e.typescriptEnabled?"tsx":"jsx",o=e.join(e.componentsDir,"Counter"),i=e.join(o,`Counter.${n}`),a=e.join(o,"styles.module.css"),{component:s,styles:l}=Zo(e);if(!await e.exists(i)){let c=await e.formatCode(i,s);await e.writeFile(i,c),t.push({filePath:i,modifiedType:"create"})}return await e.exists(a)||(await e.writeFile(a,l),t.push({filePath:a,modifiedType:"create"})),i}function Zo(e){let t=e.typescriptEnabled,r=`
|
|
168
168
|
"use client"
|
|
169
169
|
import React, { useState } from "react";
|
|
170
170
|
import styles from "./styles.module.css";
|
|
@@ -227,13 +227,13 @@ export default Counter;
|
|
|
227
227
|
font-size: 42px;
|
|
228
228
|
text-align: center;
|
|
229
229
|
}
|
|
230
|
-
`.trimStart();return{component:r,styles:n}}async function
|
|
230
|
+
`.trimStart();return{component:r,styles:n}}async function ei(e,t,r){await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,""),r.push({filePath:e.registryPath,modifiedType:"create"}));let o=(await ie(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===t);o&&await ie(e,o.id,!0,!1,null,null,!0,!1)}async function Rn(e){let t=await ti(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>vn(t),ensureFigmaImportPage:()=>bn(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),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:()=>je(t),setPublicApiKey:n=>rn(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function ti(e){let t=e.getRootDir(),r=e.join(t,"src"),n=await ni(e),o=await vt(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o};if(await e.exists(r)){a.srcDir=r,a.componentsDir=e.join(r,"components");let s=e.join(r,"app");await e.exists(s)&&(a.appDir=s);let l=e.join(r,"pages");await e.exists(l)&&(a.pagesDir=l),a.registryPath=e.join(r,i)}else a.componentsDir=e.join(t,"components"),a.registryPath=e.join(t,i);if(a.builderComponentPath=e.join(a.componentsDir,`builder.${o?"tsx":"jsx"}`),!a.appDir){let s=e.join(t,"app");await e.exists(s)&&(a.appDir=s)}if(!a.pagesDir){let s=e.join(t,"pages");await e.exists(s)&&(a.pagesDir=s)}if(!a.appDir&&!a.pagesDir)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return a}function vt(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function ni(e){let t=e.join(e.getRootDir(),"next.config.ts");if(await e.exists(t))return t;let r=e.join(e.getRootDir(),"next.config.mjs");if(await e.exists(r))return r;let n=e.join(e.getRootDir(),"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.getRootDir()}".`)}async function qe(e){return await fe(e,[".env"],Fn)}async function An(e,t){ri(t);let r=await qe(e),n=await de(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function ri(e){typeof process<"u"&&(process.env[Fn]=e)}var Fn="PUBLIC_BUILDER_API_KEY";function Ln(e,t,r){if(r.length===0)return e;let n=e.split(`
|
|
231
231
|
`),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(`
|
|
232
|
-
`)}function Le(e,t,r){return Ne(e,t,r.variableName)?t:
|
|
232
|
+
`)}function Le(e,t,r){return Ne(e,t,r.variableName)?t:oi(e,t,r)}function oi(e,t,r){let n=typeof r.arrayType=="string"?e.ts.factory.createArrayTypeNode(e.ts.factory.createTypeReferenceNode(r.arrayType,void 0)):void 0,o=e.ts.factory.createArrayLiteralExpression([]),i=e.ts.factory.createVariableDeclaration(r.variableName,void 0,n,o),a=e.ts.factory.createVariableDeclarationList([i],e.ts.NodeFlags.Const),s=e.ts.factory.createModifier(e.ts.SyntaxKind.ExportKeyword),l=e.ts.factory.createVariableStatement([s],a),c=[...t.statements,l];return e.ts.factory.updateSourceFile(t,c)}async function kn(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(".")||si.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let l=await it(e,o,s,i);r.push(...l)})),r}async function jn(e,t){if(e.extname(t).toLowerCase()===".tsx"){let n=await e.readFile(t);if(n)return ii(e,t,n)}return null}function ii(e,t,r){let n=D(e,r);return it(e,null,t,n)}async function it(e,t,r,n){r=e.normalize(r);let o=[],i=Q(e,n);return await Promise.all(i.map(async a=>{let s=await ai(e,t,r,a);s&&o.push(s)})),o}async function ai(e,t,r,n){let o=e.relative(e.getRootDir(),r),i=_(e,r);if(e.ts.isVariableStatement(n.node))for(let a of n.node.declarationList.declarations){let s=On(e,a.initializer);if(s&&e.ts.isIdentifier(a.name)){let l=a.name.text;return{cmpInfo:{id:await k(e,r,l),displayFilePath:R(e,r),name:j(l),inputs:[],exportName:n.isDefaultExport?"default":l,exportType:n.isDefaultExport?"default":"named",importName:l,filePath:r,relFilePath:o,importPath:i},node:s}}}else if(e.ts.isCallExpression(n.node)){let a=On(e,n.node);if(a)return{cmpInfo:{id:await k(e,r,"default"),displayFilePath:R(e,r),name:Y(e,r),inputs:[],exportName:"default",exportType:"default",importName:Pe(e,r),filePath:r,relFilePath:o,importPath:i},node:a}}return null}function On(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 si=new Set(["node_modules","layout.tsx","404.tsx","router-head.tsx"]);async function _n(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 be(e,t.cmpInfo.filePath,null);if(!(await it(e,i,t.cmpInfo.filePath,o)).find(l=>l.cmpInfo.id===t.cmpInfo.id))throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return Te(e,i,r)}return[]}async function Bn(e){return bt(e)}async function bt(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,li),t.push({filePath:e.registryPath,modifiedType:"create"})),t}var li=`import type { RegisteredComponent } from "@builder.io/sdk-qwik";
|
|
233
233
|
|
|
234
234
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
235
235
|
];
|
|
236
|
-
`;async function Kn(e){await It(e);let t=await e.readFile(e.registryPath);return t?mi(e,t):{components:[],sourceFile:D(e,"")}}async function mi(e,t){let r=D(e,t);return fi(e,r)}async function fi(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Nt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function Nt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[]};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(I(e,o)==="component"&&e.ts.isIdentifier(o.initializer)){let a=o.initializer.text;n.name===""&&(n.name=j(a)),n.importName=a;let s=await Ie(e,e.registryPath,t,a);if(!s)continue;n.filePath=s.filePath,n.relFilePath=s.relFilePath,n.importPath=_(e,s.filePath),n.displayFilePath=s.displayFilePath,n.exportType=s.exportType;let l=await $n(e,s.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let c=l.find(d=>d.cmpInfo.exportName===a);c&&(n.exportName=c.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function Un(e){let t=new Set,r=async o=>{let i=await e.readdir(o);await Promise.all(i.map(async a=>{if(a.startsWith(".")||a==="node_modules")return;let s=e.join(o,a),l=e.extname(a).toLowerCase();if(l===".tsx"||l===".ts"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await $(e,[...t])}async function we(e,t,r,n,o,i,a,s){let l=await Un(e),[c,d,u]=await Promise.all([Bn(e,l),Kn(e),Je(e)]),m=c.map(f=>f.cmpInfo),p=d.components,x={components:X(m,p),registryPath:e.registryPath,registryDisplayPath:F(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(m),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x;if(t!=null){let f=c.find(y=>y.cmpInfo.id===t);if(!f)throw new Error(`Component ${t} not found`);let g=d.sourceFile,h=x.components.find(y=>y.id===t),C=await Vn(e,f);G(h,C),t=Array.isArray(t)?t[0]:t;let T=oe(t,m,p,r,n,o,i),{elements:L,elmIndex:w,statementIndex:S,statement:E,variableDeclaration:O}=await gi(e,g,f),N=!1;if(T.addCmpToRegistry?(L.push(di(e,T.addCmpToRegistry)),N=!0):T.removeCmpFromRegistry?(L.splice(w,1),N=!0):T.updateRegisteredCmp&&(L[w]=U(e,L[w],T.updateRegisteredCmp),N=!0),N&&a){let y=[...g.statements];y[S]=e.ts.factory.updateVariableStatement(E,E.modifiers,e.ts.factory.updateVariableDeclarationList(E.declarationList,[e.ts.factory.updateVariableDeclaration(O,O.name,O.exclamationToken,O.type,e.ts.factory.createArrayLiteralExpression(Fe(e,L)))])),g=e.ts.factory.updateSourceFile(g,y),h.exportType==="named"?g=P(e,g,{namedImports:[h.importName],importPath:b(e,e.registryPath,h.filePath)}):g=P(e,g,{defaultImport:h.importName,importPath:b(e,e.registryPath,h.filePath)}),g=P(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-qwik",isTypeOnly:!0}),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),g=re(e,g),g=ne(e,g);let R=v(e,g);R=J(R),R=jn(R,xi,"CUSTOM_COMPONENTS"),R=await e.formatCode(e.registryPath,R),await e.writeFile(e.registryPath,R)}x.components=T.components}return x}function di(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName))],!0),t)}async function gi(e,t,r){let n=q(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 Nt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}var xi=["This array is used to integrate custom components within Builder.","https://www.builder.io/c/docs/custom-components-intro","",'These components will be found the "Custom Components"',"section of Builder's visual editor.",'You can also turn on "components only mode" to limit',"editing to only these components.","https://www.builder.io/c/docs/guides/components-only-mode"];async function Mn(e){let t=await hi(e);return{builderPageOptions:async()=>({templateContentId:"dc70f1d979ad416d8fd357137eb9ddfb",pathname:"/",title:"Builder + Qwik Demo Page"}),ensureBuilderSetup:()=>zn(t),ensureFigmaImportPage:async()=>[],getRegistryPath:()=>t.registryPath,getRegistry:n=>we(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await we(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>we(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>we(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>we(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>we(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Je(t),setPublicApiKey:n=>On(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-qwik"}],getDevRunCommand:()=>"dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function hi(e){let t=await je(e,e.getRootDir(),"components");if(!t)throw new Error(`Could not find components directory within project: ${e.getRootDir()}`);let r=e.join(t,"builder-registry.ts"),n=e.join(e.getRootDir(),".env");return{...e,componentsDir:t,registryPath:r,envPath:n}}async function We(e){return await de(e,[".env"],Ye)}async function Qn(e,t){let r=await We(e),n=await ge(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var Ye="PUBLIC_BUILDER_KEY";async function qn(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker(),i=e.join(e.getRootDir(),"build");return await Promise.all(n.map(async a=>{let s=e.basename(a.fileName);if(s.startsWith(".")||s==="node_modules"||Ci.has(s)||s.includes("$."))return;let l=e.normalize(a.fileName);if(l===e.remixConfigPath||l===e.registryPath||l===i)return;let c=await xe(e,o,l,a);r.push(...c)})),r}var Ci=new Set(["root.tsx","root.ts","root.jsx","root.js","_index.tsx","_index.jsx","_index.ts","_index.js"]);async function Jn(e){await At(e);let t=await e.readFile(e.registryPath);return t?Si(e,t):{components:[],sourceFile:D(e,"")}}async function Si(e,t){let r=D(e,t);return Ti(e,r)}async function Ti(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Rt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function Rt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(I(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){(e.ts.isIdentifier(s.expression)&&s.expression.text)==="withChildren"&&(n.acceptsChildren=!0);let u=s.arguments[0];e.ts.isIdentifier(u)&&(a=u.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let l=await Ie(e,e.registryPath,t,a);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,n.importPath=_(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let c=await Sn(e,l.filePath);if(c&&c.length>0)if(c.length===1)n.exportName=c[0].cmpInfo.exportName;else{let d=c.find(u=>u.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function ae(e,t,r,n,o,i,a,s){let l=await he(e),[c,d,u]=await Promise.all([qn(e,l),Jn(e),We(e)]),m=c.map(C=>C.cmpInfo),p=d.components,x={components:X(m,p),registryPath:e.registryPath,registryDisplayPath:F(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(m),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await Re(e,x.components),x;let f=!1,g=d.sourceFile,h=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(h.length>0){let C=h.map(w=>{let S=c.find(E=>E.cmpInfo.id===w);if(!S)throw new Error(`Component ${w} not found`);return S}),T=Array.from(new Set(C.map(w=>w.cmpInfo.filePath))),L=await $(e,T);for(let w of C){let S=x.components.find(B=>B.id===w.cmpInfo.id),E=await Ae(e,w,L);G(S,E);let O=m.findIndex(B=>B.id===w.cmpInfo.id);m[O].inputs=E;let N=oe(w.cmpInfo.id,m,p,r,n,o,i),{elements:y,elmIndex:R,statementIndex:A,statement:V,variableDeclaration:ce}=await wi(e,g,w);if(N.addCmpToRegistry)y.push(yi(e,N.addCmpToRegistry)),f=!0;else if(N.removeCmpFromRegistry)y.splice(R,1),f=!0;else if(N.updateRegisteredCmp){let B=U(e,y[R],N.updateRegisteredCmp);y[R]=e.ts.factory.updateObjectLiteralExpression(B,[Wn(e,N.updateRegisteredCmp),...B.properties.slice(1)]),f=!0}if(f&&a){let B=[...g.statements];B[A]=e.ts.factory.updateVariableStatement(V,V.modifiers,e.ts.factory.updateVariableDeclarationList(V.declarationList,[e.ts.factory.updateVariableDeclaration(ce,ce.name,ce.exclamationToken,ce.type,e.ts.factory.createArrayLiteralExpression(Fe(e,y)))])),g=e.ts.factory.updateSourceFile(g,B),S.exportType==="named"?g=P(e,g,{namedImports:[S.importName],importPath:b(e,e.registryPath,S.filePath)}):g=P(e,g,{defaultImport:S.importName,importPath:b(e,e.registryPath,S.filePath)}),g=P(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/react",isTypeOnly:!0}),S.acceptsChildren&&(g=P(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=N.components,p=N.components.filter(xt=>xt.isRegistered)}}}if(f&&a){g=re(e,g),g=ne(e,g);let C=v(e,g);C=J(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function Wn(e,t){let r=e.ts.factory.createIdentifier(t.importName),n=t.acceptsChildren?e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("withChildren"),void 0,[r]):r;return e.ts.factory.createPropertyAssignment("component",n)}function yi(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([Wn(e,t)],!0),t)}async function wi(e,t,r){let n=q(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 Rt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Yn(e){let t=[],r=await Ei(e,t);return t.push(...await At(e)),await bi(e,r),await Pi(e,t),t}async function Hn(e){let t=[];return await Di(e,t),t}async function Di(e,t){let r=`figma-imports.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureFigmaImportRoute, hasLocaleParam"),r=`($locale).${r}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureFigmaImportRoute, hasRoute: ${o}`);let i=await e.formatCode(n,Gn({sys:e,routePath:n,modelName:"figma-imports"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}async function Pi(e,t){let r=`$.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureAppRoute, hasLocaleParam"),r=`($locale).${r}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureAppRoute, hasRoute: ${o}`);let i=await e.formatCode(n,Gn({sys:e,routePath:n,modelName:"page"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}function Gn({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=b(e,t,e.registryPath),i="",a="";n&&(i="import type { LoaderArgs } from '@remix-run/server-runtime';",a=": LoaderArgs");let s=`process.env.${Ye}`;return e.getFrameworks().some(l=>l.name==="@shopify/remix-oxygen")&&(s=`context.env.${Ye}`),n&&(s+="!"),`
|
|
236
|
+
`;async function Vn(e){await bt(e);let t=await e.readFile(e.registryPath);return t?ci(e,t):{components:[],sourceFile:D(e,"")}}async function ci(e,t){let r=D(e,t);return pi(e,r)}async function pi(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await It(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function It(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[]};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(A(e,o)==="component"&&e.ts.isIdentifier(o.initializer)){let a=o.initializer.text;n.name===""&&(n.name=j(a)),n.importName=a;let s=await Ie(e,e.registryPath,t,a);if(!s)continue;n.filePath=s.filePath,n.relFilePath=s.relFilePath,n.importPath=_(e,s.filePath),n.displayFilePath=s.displayFilePath,n.exportType=s.exportType;let l=await jn(e,s.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let c=l.find(d=>d.cmpInfo.exportName===a);c&&(n.exportName=c.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function $n(e){let t=new Set,r=async o=>{let i=await e.readdir(o);await Promise.all(i.map(async a=>{if(a.startsWith(".")||a==="node_modules")return;let s=e.join(o,a),l=e.extname(a).toLowerCase();if(l===".tsx"||l===".ts"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await V(e,[...t])}async function ye(e,t,r,n,o,i,a,s){let l=await $n(e),[c,d,m]=await Promise.all([kn(e,l),Vn(e),qe(e)]),u=c.map(f=>f.cmpInfo),p=d.components,x={components:X(u,p),registryPath:e.registryPath,registryDisplayPath:R(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(u),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return x;if(t!=null){let f=c.find(y=>y.cmpInfo.id===t);if(!f)throw new Error(`Component ${t} not found`);let g=d.sourceFile,h=x.components.find(y=>y.id===t),C=await _n(e,f);G(h,C),t=Array.isArray(t)?t[0]:t;let T=oe(t,u,p,r,n,o,i),{elements:F,elmIndex:w,statementIndex:S,statement:P,variableDeclaration:O}=await mi(e,g,f),v=!1;if(T.addCmpToRegistry?(F.push(ui(e,T.addCmpToRegistry)),v=!0):T.removeCmpFromRegistry?(F.splice(w,1),v=!0):T.updateRegisteredCmp&&(F[w]=U(e,F[w],T.updateRegisteredCmp),v=!0),v&&a){let y=[...g.statements];y[S]=e.ts.factory.updateVariableStatement(P,P.modifiers,e.ts.factory.updateVariableDeclarationList(P.declarationList,[e.ts.factory.updateVariableDeclaration(O,O.name,O.exclamationToken,O.type,e.ts.factory.createArrayLiteralExpression(Fe(e,F)))])),g=e.ts.factory.updateSourceFile(g,y),h.exportType==="named"?g=E(e,g,{namedImports:[h.importName],importPath:L(e,e.registryPath,h.filePath)}):g=E(e,g,{defaultImport:h.importName,importPath:L(e,e.registryPath,h.filePath)}),g=E(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-qwik",isTypeOnly:!0}),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),g=re(e,g),g=ne(e,g);let b=N(e,g);b=J(b),b=Ln(b,fi,"CUSTOM_COMPONENTS"),b=await e.formatCode(e.registryPath,b),await e.writeFile(e.registryPath,b)}x.components=T.components}return x}function ui(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName))],!0),t)}async function mi(e,t,r){let n=q(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 It(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}var fi=["This array is used to integrate custom components within Builder.","https://www.builder.io/c/docs/custom-components-intro","",'These components will be found the "Custom Components"',"section of Builder's visual editor.",'You can also turn on "components only mode" to limit',"editing to only these components.","https://www.builder.io/c/docs/guides/components-only-mode"];async function zn(e){let t=await di(e);return{builderPageOptions:async()=>({templateContentId:"dc70f1d979ad416d8fd357137eb9ddfb",pathname:"/",title:"Builder + Qwik Demo Page"}),ensureBuilderSetup:()=>Bn(t),ensureFigmaImportPage:async()=>[],getRegistryPath:()=>t.registryPath,getRegistry:n=>ye(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await ye(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>ye(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>ye(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>ye(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>ye(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>qe(t),setPublicApiKey:n=>An(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-qwik"}],getDevRunCommand:()=>"dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function di(e){let t=await ke(e,e.getRootDir(),"components");if(!t)throw new Error(`Could not find components directory within project: ${e.getRootDir()}`);let r=e.join(t,"builder-registry.ts"),n=e.join(e.getRootDir(),".env");return{...e,componentsDir:t,registryPath:r,envPath:n}}async function Je(e){return await fe(e,[".env"],We)}async function Kn(e,t){let r=await Je(e),n=await de(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var We="PUBLIC_BUILDER_KEY";async function Un(e,t){let r=[],n=t.getSourceFiles(),o=t.getTypeChecker(),i=e.join(e.getRootDir(),"build");return await Promise.all(n.map(async a=>{let s=e.basename(a.fileName);if(s.startsWith(".")||s==="node_modules"||gi.has(s)||s.includes("$."))return;let l=e.normalize(a.fileName);if(l===e.remixConfigPath||l===e.registryPath||l===i)return;let c=await ge(e,o,l,a);r.push(...c)})),r}var gi=new Set(["root.tsx","root.ts","root.jsx","root.js","_index.tsx","_index.jsx","_index.ts","_index.js"]);async function Mn(e){await Rt(e);let t=await e.readFile(e.registryPath);return t?xi(e,t):{components:[],sourceFile:D(e,"")}}async function xi(e,t){let r=D(e,t);return hi(e,r)}async function hi(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Nt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function Nt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(A(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){(e.ts.isIdentifier(s.expression)&&s.expression.text)==="withChildren"&&(n.acceptsChildren=!0);let m=s.arguments[0];e.ts.isIdentifier(m)&&(a=m.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let l=await Ie(e,e.registryPath,t,a);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,n.importPath=_(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let c=await xn(e,l.filePath);if(c&&c.length>0)if(c.length===1)n.exportName=c[0].cmpInfo.exportName;else{let d=c.find(m=>m.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function ae(e,t,r,n,o,i,a,s){let l=await xe(e),[c,d,m]=await Promise.all([Un(e,l),Mn(e),Je(e)]),u=c.map(C=>C.cmpInfo),p=d.components,x={components:X(u,p),registryPath:e.registryPath,registryDisplayPath:R(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(u),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await Re(e,x.components),x;let f=!1,g=d.sourceFile,h=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(h.length>0){let C=h.map(w=>{let S=c.find(P=>P.cmpInfo.id===w);if(!S)throw new Error(`Component ${w} not found`);return S}),T=Array.from(new Set(C.map(w=>w.cmpInfo.filePath))),F=await V(e,T);for(let w of C){let S=x.components.find(B=>B.id===w.cmpInfo.id),P=await Ae(e,w,F);G(S,P);let O=u.findIndex(B=>B.id===w.cmpInfo.id);u[O].inputs=P;let v=oe(w.cmpInfo.id,u,p,r,n,o,i),{elements:y,elmIndex:b,statementIndex:I,statement:$,variableDeclaration:le}=await Si(e,g,w);if(v.addCmpToRegistry)y.push(Ci(e,v.addCmpToRegistry)),f=!0;else if(v.removeCmpFromRegistry)y.splice(b,1),f=!0;else if(v.updateRegisteredCmp){let B=U(e,y[b],v.updateRegisteredCmp);y[b]=e.ts.factory.updateObjectLiteralExpression(B,[Qn(e,v.updateRegisteredCmp),...B.properties.slice(1)]),f=!0}if(f&&a){let B=[...g.statements];B[I]=e.ts.factory.updateVariableStatement($,$.modifiers,e.ts.factory.updateVariableDeclarationList($.declarationList,[e.ts.factory.updateVariableDeclaration(le,le.name,le.exclamationToken,le.type,e.ts.factory.createArrayLiteralExpression(Fe(e,y)))])),g=e.ts.factory.updateSourceFile(g,B),S.exportType==="named"?g=E(e,g,{namedImports:[S.importName],importPath:L(e,e.registryPath,S.filePath)}):g=E(e,g,{defaultImport:S.importName,importPath:L(e,e.registryPath,S.filePath)}),g=E(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/react",isTypeOnly:!0}),S.acceptsChildren&&(g=E(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=v.components,p=v.components.filter(gt=>gt.isRegistered)}}}if(f&&a){g=re(e,g),g=ne(e,g);let C=N(e,g);C=J(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function Qn(e,t){let r=e.ts.factory.createIdentifier(t.importName),n=t.acceptsChildren?e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("withChildren"),void 0,[r]):r;return e.ts.factory.createPropertyAssignment("component",n)}function Ci(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([Qn(e,t)],!0),t)}async function Si(e,t,r){let n=q(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 Nt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function qn(e){let t=[],r=await wi(e,t);return t.push(...await Rt(e)),await Ei(e,r),await yi(e,t),t}async function Jn(e){let t=[];return await Ti(e,t),t}async function Ti(e,t){let r=`figma-imports.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureFigmaImportRoute, hasLocaleParam"),r=`($locale).${r}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureFigmaImportRoute, hasRoute: ${o}`);let i=await e.formatCode(n,Wn({sys:e,routePath:n,modelName:"figma-imports"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}async function yi(e,t){let r=`$.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureAppRoute, hasLocaleParam"),r=`($locale).${r}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureAppRoute, hasRoute: ${o}`);let i=await e.formatCode(n,Wn({sys:e,routePath:n,modelName:"page"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}function Wn({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=L(e,t,e.registryPath),i="",a="";n&&(i="import type { LoaderArgs } from '@remix-run/server-runtime';",a=": LoaderArgs");let s=`process.env.${We}`;return e.getFrameworks().some(l=>l.name==="@shopify/remix-oxygen")&&(s=`context.env.${We}`),n&&(s+="!"),`
|
|
237
237
|
import { BuilderComponent, builder } from "@builder.io/react";
|
|
238
238
|
import { useLoaderData } from "@remix-run/react";
|
|
239
239
|
import { CUSTOM_COMPONENTS } from ${JSON.stringify(o)};
|
|
@@ -290,11 +290,11 @@ export default function Page() {
|
|
|
290
290
|
${n?`
|
|
291
291
|
declare global {
|
|
292
292
|
interface Env {
|
|
293
|
-
${
|
|
293
|
+
${We}: string;
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
296
|
`:""}
|
|
297
|
-
`}async function
|
|
297
|
+
`}async function wi(e,t){let n=e.typescriptEnabled?"tsx":"jsx",o=e.join(e.componentsDir,"Counter"),i=e.join(o,`Counter.${n}`),a=e.join(o,"styles.module.css"),{component:s,styles:l}=Di(e),c=await e.exists(i);if(e.debug(`remixEnsureCounterComponent, hasCounterCmp: ${c}`),!c){let m=await e.formatCode(i,s);await e.writeFile(i,m),t.push({filePath:i,modifiedType:"create"})}let d=await e.exists(a);return e.debug(`remixEnsureCounterComponent, hasCounterStyles: ${d}`),d||(await e.writeFile(a,l),t.push({filePath:a,modifiedType:"create"})),i}function Di(e){let t=e.typescriptEnabled,r=`
|
|
298
298
|
import { useState } from "react";
|
|
299
299
|
import styles from "./styles.module.css";
|
|
300
300
|
${t?`
|
|
@@ -357,23 +357,23 @@ export default Counter;
|
|
|
357
357
|
font-size: 42px;
|
|
358
358
|
text-align: center;
|
|
359
359
|
}
|
|
360
|
-
`.trimStart();return{component:r,styles:n}}async function
|
|
360
|
+
`.trimStart();return{component:r,styles:n}}async function Ei(e,t){let n=(await ae(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await ae(e,n.id,!0,!1,null,null,!0,!1)}async function Rt(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,Pi(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}function Pi(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/react";
|
|
361
361
|
|
|
362
362
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
363
363
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
364
364
|
];
|
|
365
|
-
`}async function
|
|
365
|
+
`}async function Yn(e){let t=await vi(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:()=>qn(t),ensureFigmaImportPage:()=>Jn(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>ae(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await ae(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>ae(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>ae(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>ae(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>ae(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Je(t),setPublicApiKey:n=>Kn(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function vi(e){let t=await Ni(e),r=await Ri(e),n=e.dirname(r),o=e.join(n,"components"),i=await bi(e),a=`builder-registry.${i?"ts":"js"}`,s=e.join(n,a);return{...e,registryPath:s,remixConfigPath:t,typescriptEnabled:i,appDir:n,componentsDir:o,routesDir:r,hasLocaleParam:await Ii(e,r)}}function bi(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Ii(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function Ni(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.getRootDir(),r);if(await e.exists(n))return n}throw new Error(`Could not find Remix config file. Searched for ${t.join(", ")} in "${e.getRootDir()}".`)}async function Ri(e){let t=await ke(e,e.getRootDir(),"routes");if(t)return t;throw new Error(`Could not find Remix "routes" directory in "${e.getRootDir()}". Please ensure this command is ran from within your Remix project's directory.`)}async function Ye(e){let t=[".env"],r=e.configType==="vite"?at:At;return await fe(e,t,r)}async function Hn(e,t){let r=await Ye(e),n=await de(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var at="VITE_PUBLIC_BUILDER_KEY",At="YOUR_PUBLIC_BUILDER_KEY";function Gn(e,t){let r=`Builder.registerComponent(
|
|
366
366
|
`;r+=` ${t.importName},
|
|
367
367
|
`,r+=` {
|
|
368
368
|
name: "${t.name}",
|
|
369
369
|
}
|
|
370
|
-
`,r+=");";let n=
|
|
370
|
+
`,r+=");";let n=et(e,r);return Ft(e,n,t)}function Ft(e,t,r){if(!e.ts.isExpressionStatement(t))return t;let n=t.expression;if(!e.ts.isCallExpression(n))return t;let o=[...n.arguments];if(o.length<2)return t;let i=o[1];return e.ts.isObjectLiteralExpression(i)?(o[1]=U(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function Zn(e){let t=await e.readFile(e.registryPath);return t?Ai(e,t):{components:[],sourceFile:D(e,"")}}async function Ai(e,t){let r=D(e,t);return Fi(e,r)}async function Fi(e,t){let r=[];for(let n=0;n<t.statements.length;n++){let o=t.statements[n];if(!e.ts.isExpressionStatement(o))continue;let i=o.expression;if(!e.ts.isCallExpression(i))continue;let a=i.expression;if(!e.ts.isPropertyAccessExpression(a))continue;let s=a.expression;if(!e.ts.isIdentifier(s)||s.text!=="Builder"||a.name.text!=="registerComponent")continue;let c=i.arguments;if(c.length<2)continue;let d=c[1];if(!e.ts.isObjectLiteralExpression(d))continue;let m=c[0];if(e.ts.isIdentifier(m)){let u=await Li(e,t,n,m,d,!1);u&&r.push(u);continue}}return{sourceFile:t,components:M(r)}}async function Li(e,t,r,n,o,i){let a={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],nodeIndex:r,acceptsChildren:i},s=t.statements.filter(c=>e.ts.isImportDeclaration(c)),l=s.find(c=>c.importClause&&c.importClause.name?.text===n.text);if(l){let c=l.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;a.filePath=await Xn(e,c.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let c=s.find(m=>!m.importClause||!m.importClause.namedBindings||!e.ts.isNamedImports(m.importClause.namedBindings)?!1:m.importClause.namedBindings.elements.some(u=>u.name.text===n.text));if(!c)return null;let d=c.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;a.filePath=await Xn(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=_(e,a.filePath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=H(e,a,o),a.displayFilePath=R(e,a.filePath),a.filePath&&a.exportName&&(a.id=await k(e,a.filePath,a.exportName)),a}function Xn(e,t){return Ue(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}async function se(e,t,r,n,o,i,a,s){let l=await xe(e),[c,d,m,u]=await Promise.all([hn(e,l),Zn(e),Lt(e),Ye(e)]),p=c.map(T=>T.cmpInfo),x=d.components,f={components:X(p,x),registryPath:e.registryPath,registryDisplayPath:R(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(p),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return f.components=await Re(e,f.components),f;let g=!1,h=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let T=C.map(S=>{let P=c.find(O=>O.cmpInfo.id===S);if(!P)throw new Error(`Component ${S} not found`);return P}),F=Array.from(new Set(T.map(S=>S.cmpInfo.filePath))),w=await V(e,F);for(let S of T){let P=f.components.find(I=>I.id===S.cmpInfo.id),O=await Ae(e,S,w);G(P,O);let v=p.findIndex(I=>I.id===S.cmpInfo.id);p[v].inputs=O;let y=oe(S.cmpInfo.id,p,x,r,n,o,i),b=[...h.statements];if(y.addCmpToRegistry?(b.push(Gn(e,y.addCmpToRegistry)),g=!0):y.removeCmpFromRegistry?(b.splice(y.nodeIndex,1),g=!0):y.updateRegisteredCmp&&(b[y.nodeIndex]=Ft(e,b[y.nodeIndex],y.updateRegisteredCmp),g=!0),g&&a){h=e.ts.factory.updateSourceFile(h,b),h=E(e,h,{namedImports:["Builder","builder"],importPath:"@builder.io/react"});let I=y.addCmpToRegistry||y.updateRegisteredCmp;if(I){let $=L(e,e.registryPath,I.filePath);I.exportType==="default"?h=E(e,h,{defaultImport:I.importName,importPath:$}):I.exportType==="named"&&(h=E(e,h,{namedImports:[I.importName],importPath:$}))}P?.acceptsChildren&&(h=E(e,h,{namedImports:["withChildren"],importPath:"@builder.io/react"})),f.components=y.components,x=y.components.filter($=>$.isRegistered)}}}if(g&&a){h=re(e,h),h=ne(e,h);let T=N(e,h);T=J(T),T=await e.formatCode(e.registryPath,T),await e.writeFile(e.registryPath,T)}return f}async function er(e){let t=[],r=await ji(e,t);if(await ki(e,r,t),!await e.exists(e.builderComponentPath)){let n=await e.formatCode(e.builderComponentPath,Oi(e));await e.writeFile(e.builderComponentPath,n),t.push({filePath:e.builderComponentPath,modifiedType:"create"})}return t}async function tr(e){return[]}function Oi(e){let t=e.typescriptEnabled;return`
|
|
371
371
|
import React from "react";
|
|
372
372
|
import { BuilderComponent, builder, useIsPreviewing } from "@builder.io/react";
|
|
373
|
-
import ${JSON.stringify(
|
|
373
|
+
import ${JSON.stringify(L(e,e.builderComponentPath,e.registryPath))};
|
|
374
374
|
|
|
375
375
|
// Builder Public API Key set in .env file
|
|
376
|
-
${e.configType==="vite"?`builder.init(import.meta.env.${
|
|
376
|
+
${e.configType==="vite"?`builder.init(import.meta.env.${at}${t?"!":""})`:`builder.init("${At}")`}
|
|
377
377
|
|
|
378
378
|
export default function BuilderPage() {
|
|
379
379
|
const isPreviewingInBuilder = useIsPreviewing();
|
|
@@ -418,7 +418,7 @@ export default function BuilderPage() {
|
|
|
418
418
|
</>
|
|
419
419
|
);
|
|
420
420
|
}
|
|
421
|
-
`.trimStart()}async function
|
|
421
|
+
`.trimStart()}async function ki(e,t,r){await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,""),r.push({filePath:e.registryPath,modifiedType:"create"}));let o=(await se(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===t);o&&await se(e,o.id,!0,!1,null,null,!0,!1)}async function ji(e,t){let n=e.typescriptEnabled?"tsx":"jsx",o=e.join(e.componentsDir,"Counter"),i=e.join(o,`Counter.${n}`),a=e.join(o,"styles.module.css"),{component:s,styles:l}=_i(e);if(!await e.exists(i)){let c=await e.formatCode(i,s);await e.writeFile(i,c),t.push({filePath:i,modifiedType:"create"})}return await e.exists(a)||(await e.writeFile(a,l),t.push({filePath:a,modifiedType:"create"})),i}function _i(e){let t=e.typescriptEnabled,r=`
|
|
422
422
|
"use client"
|
|
423
423
|
import React, { useState } from "react";
|
|
424
424
|
import styles from "./styles.module.css";
|
|
@@ -481,159 +481,28 @@ export default Counter;
|
|
|
481
481
|
font-size: 42px;
|
|
482
482
|
text-align: center;
|
|
483
483
|
}
|
|
484
|
-
`.trimStart();return{component:r,styles:n}}async function
|
|
484
|
+
`.trimStart();return{component:r,styles:n}}async function nr(e){let t=await Bi(e);return{builderPageOptions:async()=>({templateContentId:"2e36438034894a8abf279ea9e6d3596f",pathname:"/builder-demo",title:"Builder + React Demo Page"}),ensureBuilderSetup:()=>er(t),ensureFigmaImportPage:()=>tr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>se(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await se(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>se(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>se(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>se(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>se(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ye(t),setPublicApiKey:n=>Hn(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function Bi(e){let t=await Vi(e),r=e.getRootDir(),n=e.join(r,"src"),o=await Lt(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",reactConfigPath:t,typescriptEnabled:o,configType:""};return t.includes("webpack.config")&&(a.configType="webpack"),t.includes("vite.config")&&(a.configType="vite"),await e.exists(n)?(a.srcDir=n,a.componentsDir=e.join(n,"components"),a.registryPath=e.join(n,i),a.builderComponentPath=e.join(a.srcDir,`builder-page.${o?"tsx":"jsx"}`)):(a.componentsDir=e.join(r,"components"),a.registryPath=e.join(r,i),a.builderComponentPath=e.join(r,`builder-page.${o?"tsx":"jsx"}`)),a}function Lt(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Vi(e){let t=["vite.config.ts","vite.config.js","webpack.config.js","webpack.config.ts"];for(let r of t){let n=e.join(e.getRootDir(),r);if(await e.exists(n))return n}throw new Error(`Could not find React config file. Searched for ${t.join(", ")} in "${e.getRootDir()}".`)}async function He(e){return await $i(e,["environment.ts"],or)}async function rr(e,t){let r=await He(e),n=await Mi(e,r.file,r.envKey,t);return{...r,modifiedType:n}}async function $i(e,t,r){let n={envKey:r,envValue:null,file:""};for(let o of t){let i=e.join(e.getRootDir(),"src","environments",o),a=await zi(e,i);if(typeof a=="string"&&a.length>0&&a!=="YOUR_API_KEY")return n.envValue=a,n.file=i,n}return n.file=e.join(e.getRootDir(),"src","environments",t[t.length-1]),n}async function zi(e,t){let r=await e.readFile(t);return r?Ki(e,r):""}function Ki(e,t){let r=D(e,t),n="",i=Ne(e,r,"environment");if(i&&i.statement.declarationList.declarations.length>0){let s=i.statement.declarationList.declarations[0].initializer;s&&e.ts.isObjectLiteralExpression(s)&&s.properties.forEach(l=>{e.ts.isPropertyAssignment(l)&&e.ts.isIdentifier(l.name)&&l.name.text===or&&e.ts.isStringLiteral(l.initializer)&&(n=l.initializer.text)})}return n}async function Ui(e,t,r,n){let o=D(e,t),a=Ne(e,o,"environment");if(a&&a.statement.declarationList.declarations.length>0){let s=a.statement.declarationList,l=s.declarations[0],c=l.initializer;if(c&&e.ts.isObjectLiteralExpression(c)){let d=e.ts.factory.createPropertyAssignment(e.ts.factory.createIdentifier(r),e.ts.factory.createStringLiteral(n)),m=e.ts.factory.createNodeArray([...c.properties,d]),u=e.ts.factory.updateObjectLiteralExpression(c,m),p=e.ts.factory.updateVariableDeclaration(l,l.name,l.exclamationToken,l.type,u),x=e.ts.factory.updateVariableDeclarationList(s,[p]);return e.ts.factory.updateVariableStatement(a.statement,a.statement.modifiers,x)}return null}return null}async function Mi(e,t,r,n){let o=await e.readFile(t);if(o)if(o.includes(r))e.debug(`"${r}" already set in ${t}`);else{e.debug(`Add "${r}" to ${t}`);let i=await Ui(e,o,r,n);if(i){let a=N(e,i),s=await e.formatCode(t,a);await e.writeFile(t,s)}return"update"}else{e.debug(`Creating new env file with "${r}" at ${t}`);let i=`
|
|
485
485
|
// https://www.builder.io/c/docs/using-your-api-key
|
|
486
486
|
export const environment = {
|
|
487
487
|
production: false,
|
|
488
488
|
builderApiKey: "${n}",
|
|
489
489
|
};
|
|
490
|
-
`.trimStart(),a=await e.formatCode(t,i);return await e.writeFile(t,a),"create"}return null}var
|
|
491
|
-
import { Component, ChangeDetectorRef } from '@angular/core';
|
|
492
|
-
import { _processContentResult, fetchOneEntry } from '@builder.io/sdk-angular';
|
|
493
|
-
import { environment } from ${JSON.stringify(n)};
|
|
494
|
-
import { CUSTOM_COMPONENTS } from ${JSON.stringify(t)};
|
|
495
|
-
|
|
496
|
-
${e.typescriptEnabled?`
|
|
497
|
-
interface BuilderProps {
|
|
498
|
-
apiVersion: string;
|
|
499
|
-
canTrack?: boolean;
|
|
500
|
-
trustedHosts?: undefined;
|
|
501
|
-
apiKey: string;
|
|
502
|
-
model: string;
|
|
503
|
-
content: any;
|
|
504
|
-
}`:""}
|
|
505
|
-
|
|
506
|
-
@Component({
|
|
507
|
-
selector: 'app-builder-page',
|
|
508
|
-
template: \`
|
|
509
|
-
<content-variants
|
|
510
|
-
[model]="model"
|
|
511
|
-
[content]="content"
|
|
512
|
-
[apiKey]="apiKey"
|
|
513
|
-
[customComponents]="customComponents"
|
|
514
|
-
></content-variants>
|
|
515
|
-
\`,
|
|
516
|
-
})
|
|
517
|
-
export class BuilderPage {
|
|
518
|
-
title = 'builder page';
|
|
519
|
-
${e.typescriptEnabled?`
|
|
520
|
-
apiKey: BuilderProps['apiKey'] = environment.${Oe};
|
|
521
|
-
model: BuilderProps['model'] = 'page';
|
|
522
|
-
content: BuilderProps['content'];
|
|
523
|
-
`:`
|
|
524
|
-
apiKey = environment.${Oe};
|
|
525
|
-
model = 'page';
|
|
526
|
-
content = null;
|
|
527
|
-
`}
|
|
528
|
-
|
|
529
|
-
customComponents = CUSTOM_COMPONENTS;
|
|
530
|
-
|
|
531
|
-
constructor(private cdr: ChangeDetectorRef) {}
|
|
532
|
-
|
|
533
|
-
async ngOnInit() {
|
|
534
|
-
const urlPath = window.location.pathname || '/';
|
|
535
|
-
|
|
536
|
-
const builderContent = await fetchOneEntry({
|
|
537
|
-
model: 'page',
|
|
538
|
-
apiKey: environment.${Oe},
|
|
539
|
-
userAttributes: {
|
|
540
|
-
urlPath,
|
|
541
|
-
},
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
if (!builderContent) {
|
|
545
|
-
return;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
this.content = builderContent;
|
|
549
|
-
|
|
550
|
-
this.cdr.detectChanges();
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
`.trimStart()}function sa(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-angular";
|
|
490
|
+
`.trimStart(),a=await e.formatCode(t,i);return await e.writeFile(t,a),"create"}return null}var or="builderApiKey";async function ir(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(Ji(e,i.fileName)||a.startsWith(".")||a==="node_modules"||Qi.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let l=await st(e,o,s,i);r.push(...l)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Qi=new Set([]),qi=new Set(["node_modules"]);function Ji(e,t){for(let r of qi)if(e.dirname(t).includes(r))return!0;return!1}async function ar(e,t){let r=e.extname(t).toLowerCase();if(r===".tsx"||r===".jsx"||r===".ts"||r===".js"){let n=await e.readFile(t);if(n)return Wi(e,t,n)}return null}function Wi(e,t,r){let n=D(e,r);return st(e,null,t,n)}async function st(e,t,r,n){let o=[];r=e.normalize(r);let i=n.statements.filter(s=>e.ts.isClassDeclaration(s)&&Gi(e,s)),a=Zi(e,n);return await Promise.all(i.map(async s=>{let l=await Yi(e,t,r,s,a);o.push(...l)})),o}async function sr(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await be(e,t.cmpInfo.filePath,r),a=(await st(e,o,t.cmpInfo.filePath,n)).find(s=>s.cmpInfo.id===t.cmpInfo.id);if(!a)throw new Error(`Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return a.cmpInfo.inputs}return[]}async function lr(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await V(e,t.map(a=>a.filePath)),o=n.getTypeChecker();return await Promise.all(t.map(async a=>{if(!a.isRegistered){let s=n.getSourceFile(a.filePath);if(s){let c=(await st(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);c&&(a.inputs=Te(e,o,c.node.fnNode))}}return a}))}async function Yi(e,t,r,n,o){let i=[],a=e.relative(e.getRootDir(),r),s=_(e,r),l=n.name?.text;if(!l)return i;let c=!1;n.modifiers&&(c=n.modifiers.some(p=>p.kind===e.ts.SyntaxKind.DefaultKeyword));let d=c?"default":l,m=c?"default":"named",u=[];return n.members.forEach(p=>{if(e.ts.isPropertyDeclaration(p)){let x=e.ts.getDecorators(p);x&&x.forEach(f=>{if(Hi(e,f)&&e.ts.isIdentifier(p.name)){let g="any";if(p.type&&t){let C=t.getTypeAtLocation(p.type);g=t.typeToString(C)}else g=Xi(e,p.type);let h={name:p.name.text,type:o[g]?"string":g};o[g]&&(h.enum=o[g]),u.push(h)}})}}),i.push({cmpInfo:{id:await k(e,r,l),displayFilePath:R(e,r),name:j(l),inputs:u,exportName:d,exportType:m,importName:l,filePath:r,relFilePath:a,importPath:s},node:{name:l,fnNode:n,deps:void 0}}),i}function Hi(e,t){if(e.ts.isCallExpression(t.expression)){let r=t.expression;if(e.ts.isIdentifier(r.expression))return r.expression?.text==="Input"}return!1}function Gi(e,t){return!!e.ts.getDecorators(t)?.some(o=>e.ts.isCallExpression(o.expression)&&e.ts.isIdentifier(o.expression.expression)&&o.expression.expression.text==="Component")}function Xi(e,t){if(!t)return"any";let r="any";switch(t.kind){case e.ts.SyntaxKind.StringKeyword:r="string";break;case e.ts.SyntaxKind.NumberKeyword:r="number";break;case e.ts.SyntaxKind.BooleanKeyword:r="boolean";break;case e.ts.SyntaxKind.TypeReference:e.ts.isTypeReferenceNode(t);break}return r.includes("|")?"string":r}function Zi(e,t){let r={};return e.ts.forEachChild(t,n=>{e.ts.isTypeAliasDeclaration(n)&&e.ts.isUnionTypeNode(n.type)&&n.type.types.every(o=>e.ts.isLiteralTypeNode(o)&&e.ts.isStringLiteral(o.literal))&&(r[n.name.text]=n.type.types.map(o=>o.literal.text))}),r}async function cr(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,ea(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}async function pr(e){return[]}async function ur(e){return[]}function ea(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-angular";
|
|
555
491
|
|
|
556
492
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
557
493
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
558
494
|
];
|
|
559
|
-
`}async function la(e,t){let n=e.typescriptEnabled?"ts":"js",o=e.join(e.componentsDir,`counter.component.${n}`),i=await e.exists(o);e.debug(`angularEnsureCounterComponent, hasCounterCmp: ${i}`);let a=ca();if(!i){let s=await e.formatCode(o,a);await e.writeFile(o,s),t.push({filePath:o,modifiedType:"create"})}return o}function ca(){return`
|
|
560
|
-
import { Component, Input } from '@angular/core';
|
|
561
|
-
|
|
562
|
-
@Component({
|
|
563
|
-
selector: 'app-counter',
|
|
564
|
-
template: \`
|
|
565
|
-
<div class="counter">
|
|
566
|
-
<button class="btn" (click)="decrement()">-</button>
|
|
567
|
-
<span class="count">{{ count }}</span>
|
|
568
|
-
<button class="btn" (click)="increment()">+</button>
|
|
569
|
-
</div>
|
|
570
|
-
\`,
|
|
571
|
-
styles: [
|
|
572
|
-
\`
|
|
573
|
-
.counter {
|
|
574
|
-
margin: 32px auto;
|
|
575
|
-
display: flex;
|
|
576
|
-
width: 100%;
|
|
577
|
-
max-width: 190px;
|
|
578
|
-
}
|
|
579
|
-
|
|
580
|
-
.btn {
|
|
581
|
-
width: 42px;
|
|
582
|
-
font-size: 32px;
|
|
583
|
-
font-weight: bold;
|
|
584
|
-
background-color: #1c6bd1;
|
|
585
|
-
color: white;
|
|
586
|
-
border: none;
|
|
587
|
-
border-radius: 4px;
|
|
588
|
-
cursor: pointer;
|
|
589
|
-
line-height: 1.4;
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
.btn:hover {
|
|
593
|
-
opacity: 0.8;
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
.count {
|
|
597
|
-
flex: 1;
|
|
598
|
-
font-size: 42px;
|
|
599
|
-
text-align: center;
|
|
600
|
-
margin: 0 8px;
|
|
601
|
-
}
|
|
602
|
-
\`,
|
|
603
|
-
],
|
|
604
|
-
})
|
|
605
|
-
export class Counter {
|
|
606
|
-
@Input() initialCount: number = 99;
|
|
607
|
-
count: number;
|
|
608
|
-
|
|
609
|
-
constructor() {
|
|
610
|
-
this.count = this.initialCount;
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
ngOnInit(): void {
|
|
614
|
-
this.count = this.initialCount;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
increment(): void {
|
|
618
|
-
this.count += 1;
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
decrement(): void {
|
|
622
|
-
this.count -= 1;
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
|
|
626
|
-
`.trimStart()}async function gr(e){await jt(e);let t=await e.readFile(e.registryPath);return t?pa(e,t):{components:[],sourceFile:D(e,"")}}async function pa(e,t){let r=D(e,t);return ua(e,r)}async function ua(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await _t(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function _t(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[]};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(I(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let d=s.arguments[0];e.ts.isIdentifier(d)&&(a=d.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let l=await Ie(e,e.registryPath,t,a);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,n.importPath=_(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let c=await lr(e,l.filePath);if(c&&c.length>0)if(c.length===1)n.exportName=c[0].cmpInfo.exportName;else{let d=c.find(u=>u.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function le(e,t,r,n,o,i,a,s){let l=await he(e),[c,d,u]=await Promise.all([sr(e,l),gr(e),Ge(e)]),m=c.map(C=>C.cmpInfo),p=d.components,x={components:X(m,p),registryPath:e.registryPath,registryDisplayPath:F(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(m),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await pr(e,x.components),x;let f=!1,g=d.sourceFile,h=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(h.length>0){let C=h.map(w=>{let S=c.find(E=>E.cmpInfo.id===w);if(!S)throw new Error(`Component ${w} not found`);return S}),T=Array.from(new Set(C.map(w=>w.cmpInfo.filePath))),L=await $(e,T);for(let w of C){let S=x.components.find(B=>B.id===w.cmpInfo.id),E=await cr(e,w,L);G(S,E);let O=m.findIndex(B=>B.id===w.cmpInfo.id);m[O].inputs=E;let N=oe(w.cmpInfo.id,m,p,r,n,o,i),{elements:y,elmIndex:R,statementIndex:A,statement:V,variableDeclaration:ce}=await fa(e,g,w);if(N.addCmpToRegistry)y.push(ma(e,N.addCmpToRegistry)),f=!0;else if(N.removeCmpFromRegistry)y.splice(R,1),f=!0;else if(N.updateRegisteredCmp){let B=U(e,y[R],N.updateRegisteredCmp);y[R]=e.ts.factory.updateObjectLiteralExpression(B,[xr(e,N.updateRegisteredCmp),...B.properties.slice(1)]),f=!0}if(f&&a){let B=[...g.statements];B[A]=e.ts.factory.updateVariableStatement(V,V.modifiers,e.ts.factory.updateVariableDeclarationList(V.declarationList,[e.ts.factory.updateVariableDeclaration(ce,ce.name,ce.exclamationToken,ce.type,e.ts.factory.createArrayLiteralExpression(Fe(e,y)))])),g=e.ts.factory.updateSourceFile(g,B),S.exportType==="named"?g=P(e,g,{namedImports:[S.importName],importPath:b(e,e.registryPath,S.filePath)}):g=P(e,g,{defaultImport:S.importName,importPath:b(e,e.registryPath,S.filePath)}),g=P(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=N.components,p=N.components.filter(xt=>xt.isRegistered)}}}if(f&&a){g=re(e,g),g=ne(e,g);let C=v(e,g);C=J(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function xr(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function ma(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([xr(e,t)],!0),t)}async function fa(e,t,r){let n=q(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 _t(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function hr(e){let t=await da(e);return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>fr(t),ensureFigmaImportPage:()=>dr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>le(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await le(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>le(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>le(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>le(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>le(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ge(t),setPublicApiKey:n=>ar(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function da(e){let t=await xa(e),r=e.getRootDir(),n=e.join(r,"src"),o=await ga(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:"",angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:""};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);return a.srcDir=n,a.appDir=e.join(n,"app"),a.componentsDir=e.join(a.appDir,"components"),a.registryPath=e.join(a.appDir,i),a.builderPageComponentPath=e.join(a.componentsDir,`builder-page.component.${o?"ts":"js"}`),a}function ga(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function xa(e){let t=e.join(e.getRootDir(),"angular.json");if(await e.exists(t))return t;throw new Error(`Could not find Angular config file. Searched for angular.json in "${e.getRootDir()}".`)}var dt=to(Rr(),1);async function Ar(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:W(e.relative(e.getRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:K(i.inputs)};return K(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,dt.compress)(n);return btoa(JSON.stringify(o))}async function Fr(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,dt.decompress)(o),a=K(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let l=W(e.normalize(s.filePath)),c=n.components.find(u=>W(u.filePath).endsWith(l)&&u.exportName===s.exportName);if(!c){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${c.id})`,c.filePath),await t.registerComponent({cmpId:c.id});for(let u of s.inputs)e.debug(`set input (${c.id})`),await t.setRegisteredComponentInput({cmpId:c.id,name:u.name,type:u.type,required:u.required,defaultValue:u.defaultValue,friendlyName:u.friendlyName,helperText:u.helperText});e.debug(`set input (${c.id}) info`);let d=await t.setRegisteredComponentInfo({cmpId:c.id,name:s.name,image:s.image,description:s.description});a=K(d)}return a}var Va={"@builder.io/qwik-city":Mn,next:Ln,"@remix-run/react":Xn,react:ir,"@angular/core":hr};async function za(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 Se(e)),e.frameworks.length===0)throw new Error(`Supported Devtools framework for not found within ${e.getRootDir()}`);for(let t of e.frameworks){let r=Va[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>Ar(e,n),importRegistry:i=>Fr(e,n,i)}}}throw new Error(`Devtools framework not found for ${e.getRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Lr(e){function t(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}function r(u,m){let p="",x=0,f=-1,g=0,h;for(let C=0;C<=u.length;++C){if(C<u.length)h=u.charCodeAt(C);else{if(h===47)break;h=47}if(h===47){if(!(f===C-1||g===1))if(f!==C-1&&g===2){if(p.length<2||x!==2||p.charCodeAt(p.length-1)!==46||p.charCodeAt(p.length-2)!==46){if(p.length>2){let T=p.lastIndexOf("/");if(T!==p.length-1){T===-1?(p="",x=0):(p=p.slice(0,T),x=p.length-1-p.lastIndexOf("/")),f=C,g=0;continue}}else if(p.length===2||p.length===1){p="",x=0,f=C,g=0;continue}}m&&(p.length>0?p+="/..":p="..",x=2)}else p.length>0?p+="/"+u.slice(f+1,C):p=u.slice(f+1,C),x=C-f-1;f=C,g=0}else h===46&&g!==-1?++g:g=-1}return p}let n=function(...m){let p="",x=!1;for(let f=m.length-1;f>=-1&&!x;f--){let g;f>=0?g=m[f]:e.cwd?g=e.cwd():g="/",t(g),g.length!==0&&(p=g+"/"+p,x=g.charCodeAt(0)===47)}return p=r(p,!x),x?p.length>0?"/"+p:"/":p.length>0?p:"."},o=function(m){if(t(m),m.length===0)return".";let p=m.charCodeAt(0)===47,x=m.charCodeAt(m.length-1)===47;return m=r(m,!p),m.length===0&&!p&&(m="."),m.length>0&&x&&(m+="/"),p?"/"+m:m};return{relative:function(m,p){if(t(m),t(p),m===p||(m=n(m),p=n(p),m===p))return"";let x=1;for(;x<m.length&&m.charCodeAt(x)===47;++x);let f=m.length,g=f-x,h=1;for(;h<p.length&&p.charCodeAt(h)===47;++h);let T=p.length-h,L=g<T?g:T,w=-1,S=0;for(;S<=L;++S){if(S===L){if(T>L){if(p.charCodeAt(h+S)===47)return p.slice(h+S+1);if(S===0)return p.slice(h+S)}else g>L&&(m.charCodeAt(x+S)===47?w=S:S===0&&(w=0));break}let O=m.charCodeAt(x+S),N=p.charCodeAt(h+S);if(O!==N)break;O===47&&(w=S)}let E="";for(S=x+w+1;S<=f;++S)(S===f||m.charCodeAt(S)===47)&&(E.length===0?E+="..":E+="/..");return E.length>0?E+p.slice(h+w):(h+=w,p.charCodeAt(h)===47&&++h,p.slice(h))},resolve:n,join:function(...m){if(m.length===0)return".";let p;for(let x=0;x<m.length;++x){let f=m[x];t(f),f.length>0&&(p===void 0?p=f:p+="/"+f)}return p===void 0?".":o(p)},isAbsolute:function(m){return t(m),m.length>0&&m.charCodeAt(0)===47},basename:function(m,p){if(p!==void 0&&typeof p!="string")throw new TypeError('"ext" argument must be a string');t(m);let x=0,f=-1,g=!0,h;if(p!==void 0&&p.length>0&&p.length<=m.length){if(p.length===m.length&&p===m)return"";let C=p.length-1,T=-1;for(h=m.length-1;h>=0;--h){let L=m.charCodeAt(h);if(L===47){if(!g){x=h+1;break}}else T===-1&&(g=!1,T=h+1),C>=0&&(L===p.charCodeAt(C)?--C===-1&&(f=h):(C=-1,f=T))}return x===f?f=T:f===-1&&(f=m.length),m.slice(x,f)}else{for(h=m.length-1;h>=0;--h)if(m.charCodeAt(h)===47){if(!g){x=h+1;break}}else f===-1&&(g=!1,f=h+1);return f===-1?"":m.slice(x,f)}},normalize:o,dirname:function(m){if(t(m),m.length===0)return".";let p=m.charCodeAt(0),x=p===47,f=-1,g=!0;for(let h=m.length-1;h>=1;--h)if(p=m.charCodeAt(h),p===47){if(!g){f=h;break}}else g=!1;return f===-1?x?"/":".":x&&f===1?"//":m.slice(0,f)},extname:function(m){t(m);let p=-1,x=0,f=-1,g=!0,h=0;for(let C=m.length-1;C>=0;--C){let T=m.charCodeAt(C);if(T===47){if(!g){x=C+1;break}continue}f===-1&&(g=!1,f=C+1),T===46?p===-1?p=C:h!==1&&(h=1):p!==-1&&(h=-1)}return p===-1||f===-1||h===0||h===1&&p===f-1&&p===x+1?"":m.slice(p,f)}}}async function Ka(e){let t=e.getRootDir?e.getRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Lr({cwd:r,...e}),o=new Map,i=f=>n.normalize(n.resolve(r(),f)),a=f=>{for(let[g]of o)if((g+"/").startsWith(f))return!0;return f===t()},s=f=>(f=i(f),o.has(f)?!0:a(f)),l=f=>{f=i(f);let g=f===t()?f:f+"/",h=g.split("/").length-1,C=[];for(let[T]of o)if(T.split("/").slice(0,h).join("/")+"/"===g){let S=T.split("/")[h];S&&!C.includes(S)&&C.push(S)}return C.sort()},c=f=>{f=i(f);let g=o.get(f);return typeof g=="string"?g:null},d=f=>(f=i(f),{isFile:()=>o.has(f),isDirectory:()=>!o.has(f)&&a(f)}),u=async f=>{if(typeof crypto<"u"){let C=new TextEncoder().encode(f),T=await crypto.subtle.digest("SHA-256",C);return Array.from(new Uint8Array(T)).map(L=>L.toString(16).padStart(2,"0")).join("")}let g=0;for(let h=0;h<f.length;h++){let C=f.charCodeAt(h);g=(g<<5)-g+C,g|=0}return Number(Math.abs(g)).toString(36)},m=new Set,p={getRootDir:t,cwd:r,exists:async f=>s(f),existsSync:s,readdir:async f=>l(f),readdirSync:l,readFile:async f=>c(f),readFileSync:c,stat:async f=>d(f),statSync:d,writeFile:async(f,g)=>{f=i(f),o.set(f,g);let h={path:f,basename:n.basename(f),dirname:n.dirname(f),extname:n.extname(f)};for(let C of m)await C(h)},hash:u,getDeviceId:async()=>typeof navigator<"u"?u(navigator.userAgent):"",formatCode:async(f,g)=>g,on:(f,g)=>{f==="change"&&m.add(g)},off:(f,g)=>{f==="change"&&m.delete(g)},debug:(...f)=>{console.debug("[builder-dev-tools]",...f)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0"},x=await Se(p);return p.getFrameworks=e.getFrameworks?e.getFrameworks:()=>x,p}async function Or(e,t,r){let n=D(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(kr(e,n))return o;let a=Q(e,n,"cjs"),s=Q(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);if(s.length===1){let d=s[0];if(!d.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let u=d.statement;if(!e.ts.isVariableStatement(u))throw new Error(`Expected an export assignment from ${t}`);let m=d.statement;if(e.ts.isVariableStatement(m)){let p=[...m.declarationList.declarations];if(p.length!==1)throw new Error("Expected a single variable declaration");let x=p[0];if(!x.initializer)throw new Error("Expected an initializer on the declaration");let f=x.initializer;if(e.ts.isObjectLiteralExpression(f)||e.ts.isCallExpression(f)){let g="BuilderDevTools()",h=[...n.statements],C=h.indexOf(m);return h[C]=e.ts.factory.updateVariableStatement(m,m.modifiers,e.ts.factory.updateVariableDeclarationList(m.declarationList,[e.ts.factory.updateVariableDeclaration(x,x.name,x.exclamationToken,x.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(g),void 0,[f]))])),n=e.ts.factory.updateSourceFile(n,h),n=P(e,n,{defaultImport:"BuilderDevTools",importPath:"@builder.io/dev-tools/next"}),o.content=v(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}}let l=a[0];if(!l.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(l.node)||e.ts.isCallExpression(l.node)){let d=l.statement;if(!e.ts.isExpressionStatement(d))throw new Error("Expected an expression statement for the default export");let u=d.expression;if(!e.ts.isBinaryExpression(u))throw new Error("Expected a binary expression for the default export");let m=Gt(e,n);n=m.sourceFile;let p=[...n.statements],x=p.indexOf(d);return p[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(u,u.left,u.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(m.withFnVariableName),void 0,[u.right]))),n=e.ts.factory.updateSourceFile(n,p),o.content=v(e,n),o.hasContentUpdates=!0,o}let c=l.statement;if(e.ts.isVariableStatement(c)){let d=[...c.declarationList.declarations];if(d.length!==1)throw new Error("Expected a single variable declaration");let u=d[0];if(!u.initializer)throw new Error("Expected an initializer on the declaration");let m=u.initializer;if(e.ts.isObjectLiteralExpression(m)||e.ts.isCallExpression(m)){let p=Gt(e,n);n=p.sourceFile;let x=[...n.statements],f=x.indexOf(c);return x[f]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(u,u.name,u.exclamationToken,u.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(p.withFnVariableName),void 0,[m]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=v(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}if(e.ts.isArrowFunction(l.node)){let d=l.node,u=l.statement;if(!e.ts.isExpressionStatement(u))throw new Error("Expected an expression statement for the default export");let m=u.expression;if(!e.ts.isBinaryExpression(m))throw new Error("Expected a binary expression for the default export");let x=l.node.body;if(!e.ts.isBlock(x))throw new Error("Expected a block body on the next config function");let f=[...x.statements],g=f.findIndex(w=>e.ts.isReturnStatement(w));if(g===-1)throw new Error("Expected a return statement on the next config function");let h=f[g],C=Gt(e,n);n=C.sourceFile,f[g]=e.ts.factory.updateReturnStatement(h,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(C.withFnVariableName),void 0,[h.expression]));let T=[...n.statements],L=T.indexOf(u);return T[L]=e.ts.factory.updateExpressionStatement(u,e.ts.factory.updateBinaryExpression(m,m.left,m.operatorToken,e.ts.factory.updateArrowFunction(d,d.modifiers,d.typeParameters,d.parameters,d.type,d.equalsGreaterThanToken,e.ts.factory.updateBlock(x,f)))),n=e.ts.factory.updateSourceFile(n,T),o.content=v(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected export type")}function kr(e,t){for(let r of t.statements)if(e.ts.isVariableStatement(r))for(let n of r.declarationList.declarations){if(!n.initializer||!e.ts.isCallExpression(n.initializer))continue;let o=n.initializer.expression;if(!e.ts.isCallExpression(o)||!e.ts.isIdentifier(o.expression)||o.expression.text!=="require")continue;let i=o.arguments[0];if(!(!i||!e.ts.isStringLiteral(i))&&i.text==="@builder.io/dev-tools/next"&&e.ts.isIdentifier(n.name))return n.name.text}return null}function Gt(e,t){let r=kr(e,t);return r||(r="withBuilderDevTools",t=e.ts.factory.updateSourceFile(t,[e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral("@builder.io/dev-tools/next")]),void 0,[]))],e.ts.NodeFlags.Const)),...t.statements])),{withFnVariableName:r,sourceFile:t}}async function Br(e,t,r){let n=D(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if($r(e,n))return o;let a=Q(e,n,"cjs"),s=Q(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);let l=a[0];if(s.length===1){let d=s[0];if(!d.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let u=d.statement;if(!e.ts.isExportAssignment(u))throw new Error(`Expected an export assignment from ${t}`);if(e.ts.isObjectLiteralExpression(u.expression)){let m="builderDevTools()",p=Ua(e,u.expression);if(!p)return o;let x=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(m),void 0,[p]),f=[...n.statements],g=f.indexOf(u);return f[g]=e.ts.factory.updateExportAssignment(u,u.modifiers,x),n=e.ts.factory.updateSourceFile(n,f),n=P(e,n,{defaultImport:"builderDevTools",importPath:"@builder.io/dev-tools/remix"}),o.content=v(e,n),o.hasContentUpdates=!0,o}}if(!l.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(l.node)||e.ts.isCallExpression(l.node)){let d=l.statement;if(!e.ts.isExpressionStatement(d))throw new Error("Expected an expression statement for the default export");let u=d.expression;if(!e.ts.isBinaryExpression(u))throw new Error("Expected a binary expression for the default export");let m=jr(e,n);n=m.sourceFile;let p=[...n.statements],x=p.indexOf(d);return p[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(u,u.left,u.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(m.withFnVariableName),void 0,[u.right]))),n=e.ts.factory.updateSourceFile(n,p),o.content=v(e,n),o.hasContentUpdates=!0,o}let c=l.statement;if(e.ts.isVariableStatement(c)){let d=[...c.declarationList.declarations];if(d.length!==1)throw new Error("Expected a single variable declaration");let u=d[0];if(!u.initializer)throw new Error("Expected an initializer on the declaration");let m=u.initializer;if(e.ts.isObjectLiteralExpression(m)||e.ts.isCallExpression(m)){let p=jr(e,n);n=p.sourceFile;let x=[...n.statements],f=x.indexOf(c);return x[f]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(u,u.name,u.exclamationToken,u.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(p.withFnVariableName),void 0,[m]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=v(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}throw new Error("Unexpected export type")}function $r(e,t){for(let r of t.statements)if(e.ts.isVariableStatement(r))for(let n of r.declarationList.declarations){if(!n.initializer||!e.ts.isCallExpression(n.initializer))continue;let o=n.initializer.expression;if(!e.ts.isCallExpression(o)||!e.ts.isIdentifier(o.expression)||o.expression.text!=="require")continue;let i=o.arguments[0];if(!(!i||!e.ts.isStringLiteral(i))&&i.text==="@builder.io/dev-tools/remix"&&e.ts.isIdentifier(n.name))return n.name.text}return null}function jr(e,t){let r=$r(e,t);return r||(r="withBuilderDevTools",t=e.ts.factory.updateSourceFile(t,[e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral("@builder.io/dev-tools/remix")]),void 0,[]))],e.ts.NodeFlags.Const)),...t.statements])),{withFnVariableName:r,sourceFile:t}}function Ua(e,t){let r=[...t.properties],n=r.findIndex(i=>I(e,i)==="serverDependenciesToBundle");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=_r(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=_r(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("serverDependenciesToBundle",o)]):null}function _r(e,t){return t.elements.some(n=>e.ts.isCallExpression(n)&&e.ts.isIdentifier(n.expression)?n.expression.text==="@builder.io/react":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createIdentifier('"@builder.io/react"')])}async function zr(e,t,r){let n=D(e,r),o=Q(e,n);if(o.length!==1)throw new Error(`Expected an export from ${t}`);let i=o[0];if(!i.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let a=i.statement;if(!e.ts.isExportAssignment(a))throw new Error(`Expected an export assignment from ${t}`);let s={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(e.ts.isCallExpression(i.node)&&e.ts.isIdentifier(i.node.expression)&&i.node.expression.text==="defineConfig"){let l=[...i.node.arguments];if(l.length===0)throw new Error("Expected an argument in defineConfig()");let c=l[0];if(e.ts.isArrowFunction(c)){let d=Ma(e,c);if(!d)return s;l[0]=e.ts.factory.updateArrowFunction(c,c.modifiers,c.typeParameters,c.parameters,c.type,c.equalsGreaterThanToken,d);let u=[...n.statements],m=u.indexOf(a);return u[m]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,l)),n=e.ts.factory.updateSourceFile(n,u),n=P(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=v(e,n),s.hasContentUpdates=!0,s}if(e.ts.isObjectLiteralExpression(c)){let d=Xt(e,c);if(!d)return s;let u=[...n.statements],m=u.indexOf(a);return u[m]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,[d])),n=e.ts.factory.updateSourceFile(n,u),n=P(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=v(e,n),s.hasContentUpdates=!0,s}throw new Error("Unsupported argument in defineConfig()")}if(e.ts.isObjectLiteralExpression(a.expression)){let l=Xt(e,a.expression);if(!l)return s;let c=[...n.statements],d=c.indexOf(a);return c[d]=e.ts.factory.updateExportAssignment(a,a.modifiers,l),n=e.ts.factory.updateSourceFile(n,c),n=P(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=v(e,n),s.hasContentUpdates=!0,s}throw new Error(`Unable to parse ${t}`)}function Ma(e,t){let r=t.body;if(!e.ts.isBlock(r))return null;let n=[...r.statements],o=n.findIndex(s=>e.ts.isReturnStatement(s));if(o===-1){let s=e.ts.factory.createReturnStatement(e.ts.factory.createObjectLiteralExpression());n.push(s),o=n.length-1}let i=n[o];if(!i.expression||!e.ts.isObjectLiteralExpression(i.expression))return null;let a=Xt(e,i.expression);return a?(n[o]=e.ts.factory.updateReturnStatement(i,a),e.ts.factory.updateBlock(r,n)):null}function Xt(e,t){if(Ja(e)){let i=Qa(e,t);i&&(t=i)}let r=[...t.properties],n=r.findIndex(i=>I(e,i)==="plugins");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Vr(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Vr(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("plugins",o)]):null}function Vr(e,t){return t.elements.some(n=>e.ts.isCallExpression(n)&&e.ts.isIdentifier(n.expression)?n.expression.text==="builderDevTools":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("builderDevTools"),void 0,[])])}function Qa(e,t){let r=[...t.properties],n=r.findIndex(i=>I(e,i)==="ssr");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isObjectLiteralExpression(i.initializer)){let a=qa(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Zt(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o){let i=e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("noExternal",o)]);return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("ssr",i)])}return null}function qa(e,t){let r=[...t.properties],n=r.findIndex(i=>I(e,i)==="noExternal");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Zt(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Zt(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o)return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("noExternal",o)])}function Zt(e,t){return t.elements.some(n=>e.ts.isStringLiteral(n)?n.text==="@builder.io/react":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createStringLiteral("@builder.io/react")])}function Ja(e){return e.getFrameworks().some(t=>t.name==="@remix-run/react")}async function Kr(e,t,r){return e.debug("Webpack config updates are currently in progress..."),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function Mr(e,t,r){e.debug("Angular config updates are currently in progress...");try{await Ha(e)}catch{console.error("Unable to update package.json.")}return await Wa(e),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function Wa(e){let t=e.getRootDir(),r=e.join(t,"src");if(!await e.exists(r))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);let n=e.join(r,"main.ts"),o=await e.readFile(n);if(!o)throw new Error(`Unable to read main.ts at ${n}`);let i=await Ya(e,o);await e.writeFile(n,i)}async function Ya(e,t){let r=t,n=D(e,t),o=!1;for(let a of n.statements)if(e.ts.isExpressionStatement(a)&&e.ts.isCallExpression(a.expression)&&e.ts.isPropertyAccessExpression(a.expression.expression)&&e.ts.isCallExpression(a.expression.expression.expression)&&e.ts.isIdentifier(a.expression.expression.expression.expression)&&a.expression.expression.expression.expression.text==="builderDevTools"){o=!0;break}n=P(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/angular"});let i=`
|
|
495
|
+
`}async function mr(e){await cr(e);let t=await e.readFile(e.registryPath);return t?ta(e,t):{components:[],sourceFile:D(e,"")}}async function ta(e,t){let r=D(e,t);return na(e,r)}async function na(e,t){let r=[],n=q(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Ot(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:M(r)}}async function Ot(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[]};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(A(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let d=s.arguments[0];e.ts.isIdentifier(d)&&(a=d.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let l=await Ie(e,e.registryPath,t,a);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,n.importPath=_(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let c=await ar(e,l.filePath);if(c&&c.length>0)if(c.length===1)n.exportName=c[0].cmpInfo.exportName;else{let d=c.find(m=>m.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=H(e,n,r),n.filePath&&n.exportName&&(n.id=await k(e,n.filePath,n.exportName)),n}async function we(e,t,r,n,o,i,a,s){let l=await xe(e),[c,d,m]=await Promise.all([ir(e,l),mr(e),He(e)]),u=c.map(C=>C.cmpInfo),p=d.components,x={components:X(u,p),registryPath:e.registryPath,registryDisplayPath:R(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:te(u),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await lr(e,x.components),x;let f=!1,g=d.sourceFile,h=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(h.length>0){let C=h.map(w=>{let S=c.find(P=>P.cmpInfo.id===w);if(!S)throw new Error(`Component ${w} not found`);return S}),T=Array.from(new Set(C.map(w=>w.cmpInfo.filePath))),F=await V(e,T);for(let w of C){let S=x.components.find(B=>B.id===w.cmpInfo.id),P=await sr(e,w,F);G(S,P);let O=u.findIndex(B=>B.id===w.cmpInfo.id);u[O].inputs=P;let v=oe(w.cmpInfo.id,u,p,r,n,o,i),{elements:y,elmIndex:b,statementIndex:I,statement:$,variableDeclaration:le}=await oa(e,g,w);if(v.addCmpToRegistry)y.push(ra(e,v.addCmpToRegistry)),f=!0;else if(v.removeCmpFromRegistry)y.splice(b,1),f=!0;else if(v.updateRegisteredCmp){let B=U(e,y[b],v.updateRegisteredCmp);y[b]=e.ts.factory.updateObjectLiteralExpression(B,[fr(e,v.updateRegisteredCmp),...B.properties.slice(1)]),f=!0}if(f&&a){let B=[...g.statements];B[I]=e.ts.factory.updateVariableStatement($,$.modifiers,e.ts.factory.updateVariableDeclarationList($.declarationList,[e.ts.factory.updateVariableDeclaration(le,le.name,le.exclamationToken,le.type,e.ts.factory.createArrayLiteralExpression(Fe(e,y)))])),g=e.ts.factory.updateSourceFile(g,B),S.exportType==="named"?g=E(e,g,{namedImports:[S.importName],importPath:L(e,e.registryPath,S.filePath)}):g=E(e,g,{defaultImport:S.importName,importPath:L(e,e.registryPath,S.filePath)}),g=E(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),g=Le(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=v.components,p=v.components.filter(gt=>gt.isRegistered)}}}if(f&&a){g=re(e,g),g=ne(e,g);let C=N(e,g);C=J(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function fr(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function ra(e,t){return U(e,e.ts.factory.createObjectLiteralExpression([fr(e,t)],!0),t)}async function oa(e,t,r){let n=q(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 Ot(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function dr(e){let t=await ia(e);return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>pr(t),ensureFigmaImportPage:()=>ur(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>we(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await we(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>we(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>we(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>we(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>we(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>He(t),setPublicApiKey:n=>rr(t,n.publicApiKey),getDependencies:()=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>Z(t),setCache:n=>ee(t,n)}}async function ia(e){let t=await sa(e),r=e.getRootDir(),n=e.join(r,"src"),o=await aa(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:"",angularConfigPath:t,typescriptEnabled:o};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);return a.srcDir=n,a.appDir=e.join(n,"app"),a.componentsDir=e.join(n,"components"),a.registryPath=e.join(a.appDir,i),a}function aa(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function sa(e){let t=e.join(e.getRootDir(),"angular.json");if(await e.exists(t))return t;throw new Error(`Could not find Angular config file. Searched for angular.json in "${e.getRootDir()}".`)}var ft=Xr(br(),1);async function Ir(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:W(e.relative(e.getRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:K(i.inputs)};return K(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,ft.compress)(n);return btoa(JSON.stringify(o))}async function Nr(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,ft.decompress)(o),a=K(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let l=W(e.normalize(s.filePath)),c=n.components.find(m=>W(m.filePath).endsWith(l)&&m.exportName===s.exportName);if(!c){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${c.id})`,c.filePath),await t.registerComponent({cmpId:c.id});for(let m of s.inputs)e.debug(`set input (${c.id})`),await t.setRegisteredComponentInput({cmpId:c.id,name:m.name,type:m.type,required:m.required,defaultValue:m.defaultValue,friendlyName:m.friendlyName,helperText:m.helperText});e.debug(`set input (${c.id}) info`);let d=await t.setRegisteredComponentInfo({cmpId:c.id,name:s.name,image:s.image,description:s.description});a=K(d)}return a}var Aa={"@builder.io/qwik-city":zn,next:Rn,"@remix-run/react":Yn,react:nr,"@angular/core":dr};async function Fa(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 Ce(e)),e.frameworks.length===0)throw new Error(`Supported Devtools framework for not found within ${e.getRootDir()}`);for(let t of e.frameworks){let r=Aa[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>Ir(e,n),importRegistry:i=>Nr(e,n,i)}}}throw new Error(`Devtools framework not found for ${e.getRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Rr(e){function t(m){if(typeof m!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(m))}function r(m,u){let p="",x=0,f=-1,g=0,h;for(let C=0;C<=m.length;++C){if(C<m.length)h=m.charCodeAt(C);else{if(h===47)break;h=47}if(h===47){if(!(f===C-1||g===1))if(f!==C-1&&g===2){if(p.length<2||x!==2||p.charCodeAt(p.length-1)!==46||p.charCodeAt(p.length-2)!==46){if(p.length>2){let T=p.lastIndexOf("/");if(T!==p.length-1){T===-1?(p="",x=0):(p=p.slice(0,T),x=p.length-1-p.lastIndexOf("/")),f=C,g=0;continue}}else if(p.length===2||p.length===1){p="",x=0,f=C,g=0;continue}}u&&(p.length>0?p+="/..":p="..",x=2)}else p.length>0?p+="/"+m.slice(f+1,C):p=m.slice(f+1,C),x=C-f-1;f=C,g=0}else h===46&&g!==-1?++g:g=-1}return p}let n=function(...u){let p="",x=!1;for(let f=u.length-1;f>=-1&&!x;f--){let g;f>=0?g=u[f]:e.cwd?g=e.cwd():g="/",t(g),g.length!==0&&(p=g+"/"+p,x=g.charCodeAt(0)===47)}return p=r(p,!x),x?p.length>0?"/"+p:"/":p.length>0?p:"."},o=function(u){if(t(u),u.length===0)return".";let p=u.charCodeAt(0)===47,x=u.charCodeAt(u.length-1)===47;return u=r(u,!p),u.length===0&&!p&&(u="."),u.length>0&&x&&(u+="/"),p?"/"+u:u};return{relative:function(u,p){if(t(u),t(p),u===p||(u=n(u),p=n(p),u===p))return"";let x=1;for(;x<u.length&&u.charCodeAt(x)===47;++x);let f=u.length,g=f-x,h=1;for(;h<p.length&&p.charCodeAt(h)===47;++h);let T=p.length-h,F=g<T?g:T,w=-1,S=0;for(;S<=F;++S){if(S===F){if(T>F){if(p.charCodeAt(h+S)===47)return p.slice(h+S+1);if(S===0)return p.slice(h+S)}else g>F&&(u.charCodeAt(x+S)===47?w=S:S===0&&(w=0));break}let O=u.charCodeAt(x+S),v=p.charCodeAt(h+S);if(O!==v)break;O===47&&(w=S)}let P="";for(S=x+w+1;S<=f;++S)(S===f||u.charCodeAt(S)===47)&&(P.length===0?P+="..":P+="/..");return P.length>0?P+p.slice(h+w):(h+=w,p.charCodeAt(h)===47&&++h,p.slice(h))},resolve:n,join:function(...u){if(u.length===0)return".";let p;for(let x=0;x<u.length;++x){let f=u[x];t(f),f.length>0&&(p===void 0?p=f:p+="/"+f)}return p===void 0?".":o(p)},isAbsolute:function(u){return t(u),u.length>0&&u.charCodeAt(0)===47},basename:function(u,p){if(p!==void 0&&typeof p!="string")throw new TypeError('"ext" argument must be a string');t(u);let x=0,f=-1,g=!0,h;if(p!==void 0&&p.length>0&&p.length<=u.length){if(p.length===u.length&&p===u)return"";let C=p.length-1,T=-1;for(h=u.length-1;h>=0;--h){let F=u.charCodeAt(h);if(F===47){if(!g){x=h+1;break}}else T===-1&&(g=!1,T=h+1),C>=0&&(F===p.charCodeAt(C)?--C===-1&&(f=h):(C=-1,f=T))}return x===f?f=T:f===-1&&(f=u.length),u.slice(x,f)}else{for(h=u.length-1;h>=0;--h)if(u.charCodeAt(h)===47){if(!g){x=h+1;break}}else f===-1&&(g=!1,f=h+1);return f===-1?"":u.slice(x,f)}},normalize:o,dirname:function(u){if(t(u),u.length===0)return".";let p=u.charCodeAt(0),x=p===47,f=-1,g=!0;for(let h=u.length-1;h>=1;--h)if(p=u.charCodeAt(h),p===47){if(!g){f=h;break}}else g=!1;return f===-1?x?"/":".":x&&f===1?"//":u.slice(0,f)},extname:function(u){t(u);let p=-1,x=0,f=-1,g=!0,h=0;for(let C=u.length-1;C>=0;--C){let T=u.charCodeAt(C);if(T===47){if(!g){x=C+1;break}continue}f===-1&&(g=!1,f=C+1),T===46?p===-1?p=C:h!==1&&(h=1):p!==-1&&(h=-1)}return p===-1||f===-1||h===0||h===1&&p===f-1&&p===x+1?"":u.slice(p,f)}}}async function La(e){let t=e.getRootDir?e.getRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Rr({cwd:r,...e}),o=new Map,i=f=>n.normalize(n.resolve(r(),f)),a=f=>{for(let[g]of o)if((g+"/").startsWith(f))return!0;return f===t()},s=f=>(f=i(f),o.has(f)?!0:a(f)),l=f=>{f=i(f);let g=f===t()?f:f+"/",h=g.split("/").length-1,C=[];for(let[T]of o)if(T.split("/").slice(0,h).join("/")+"/"===g){let S=T.split("/")[h];S&&!C.includes(S)&&C.push(S)}return C.sort()},c=f=>{f=i(f);let g=o.get(f);return typeof g=="string"?g:null},d=f=>(f=i(f),{isFile:()=>o.has(f),isDirectory:()=>!o.has(f)&&a(f)}),m=async f=>{if(typeof crypto<"u"){let C=new TextEncoder().encode(f),T=await crypto.subtle.digest("SHA-256",C);return Array.from(new Uint8Array(T)).map(F=>F.toString(16).padStart(2,"0")).join("")}let g=0;for(let h=0;h<f.length;h++){let C=f.charCodeAt(h);g=(g<<5)-g+C,g|=0}return Number(Math.abs(g)).toString(36)},u=new Set,p={getRootDir:t,cwd:r,exists:async f=>s(f),existsSync:s,readdir:async f=>l(f),readdirSync:l,readFile:async f=>c(f),readFileSync:c,stat:async f=>d(f),statSync:d,writeFile:async(f,g)=>{f=i(f),o.set(f,g);let h={path:f,basename:n.basename(f),dirname:n.dirname(f),extname:n.extname(f)};for(let C of u)await C(h)},hash:m,getDeviceId:async()=>typeof navigator<"u"?m(navigator.userAgent):"",formatCode:async(f,g)=>g,on:(f,g)=>{f==="change"&&u.add(g)},off:(f,g)=>{f==="change"&&u.delete(g)},debug:(...f)=>{console.debug("[builder-dev-tools]",...f)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0"},x=await Ce(p);return p.getFrameworks=e.getFrameworks?e.getFrameworks:()=>x,p}async function Ar(e,t,r){let n=D(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(Fr(e,n))return o;let a=Q(e,n,"cjs"),s=Q(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);if(s.length===1){let d=s[0];if(!d.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let m=d.statement;if(!e.ts.isVariableStatement(m))throw new Error(`Expected an export assignment from ${t}`);let u=d.statement;if(e.ts.isVariableStatement(u)){let p=[...u.declarationList.declarations];if(p.length!==1)throw new Error("Expected a single variable declaration");let x=p[0];if(!x.initializer)throw new Error("Expected an initializer on the declaration");let f=x.initializer;if(e.ts.isObjectLiteralExpression(f)||e.ts.isCallExpression(f)){let g="BuilderDevTools()",h=[...n.statements],C=h.indexOf(u);return h[C]=e.ts.factory.updateVariableStatement(u,u.modifiers,e.ts.factory.updateVariableDeclarationList(u.declarationList,[e.ts.factory.updateVariableDeclaration(x,x.name,x.exclamationToken,x.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(g),void 0,[f]))])),n=e.ts.factory.updateSourceFile(n,h),n=E(e,n,{defaultImport:"BuilderDevTools",importPath:"@builder.io/dev-tools/next"}),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}}let l=a[0];if(!l.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(l.node)||e.ts.isCallExpression(l.node)){let d=l.statement;if(!e.ts.isExpressionStatement(d))throw new Error("Expected an expression statement for the default export");let m=d.expression;if(!e.ts.isBinaryExpression(m))throw new Error("Expected a binary expression for the default export");let u=Wt(e,n);n=u.sourceFile;let p=[...n.statements],x=p.indexOf(d);return p[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(m,m.left,m.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(u.withFnVariableName),void 0,[m.right]))),n=e.ts.factory.updateSourceFile(n,p),o.content=N(e,n),o.hasContentUpdates=!0,o}let c=l.statement;if(e.ts.isVariableStatement(c)){let d=[...c.declarationList.declarations];if(d.length!==1)throw new Error("Expected a single variable declaration");let m=d[0];if(!m.initializer)throw new Error("Expected an initializer on the declaration");let u=m.initializer;if(e.ts.isObjectLiteralExpression(u)||e.ts.isCallExpression(u)){let p=Wt(e,n);n=p.sourceFile;let x=[...n.statements],f=x.indexOf(c);return x[f]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(m,m.name,m.exclamationToken,m.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(p.withFnVariableName),void 0,[u]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}if(e.ts.isArrowFunction(l.node)){let d=l.node,m=l.statement;if(!e.ts.isExpressionStatement(m))throw new Error("Expected an expression statement for the default export");let u=m.expression;if(!e.ts.isBinaryExpression(u))throw new Error("Expected a binary expression for the default export");let x=l.node.body;if(!e.ts.isBlock(x))throw new Error("Expected a block body on the next config function");let f=[...x.statements],g=f.findIndex(w=>e.ts.isReturnStatement(w));if(g===-1)throw new Error("Expected a return statement on the next config function");let h=f[g],C=Wt(e,n);n=C.sourceFile,f[g]=e.ts.factory.updateReturnStatement(h,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(C.withFnVariableName),void 0,[h.expression]));let T=[...n.statements],F=T.indexOf(m);return T[F]=e.ts.factory.updateExpressionStatement(m,e.ts.factory.updateBinaryExpression(u,u.left,u.operatorToken,e.ts.factory.updateArrowFunction(d,d.modifiers,d.typeParameters,d.parameters,d.type,d.equalsGreaterThanToken,e.ts.factory.updateBlock(x,f)))),n=e.ts.factory.updateSourceFile(n,T),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected export type")}function Fr(e,t){for(let r of t.statements)if(e.ts.isVariableStatement(r))for(let n of r.declarationList.declarations){if(!n.initializer||!e.ts.isCallExpression(n.initializer))continue;let o=n.initializer.expression;if(!e.ts.isCallExpression(o)||!e.ts.isIdentifier(o.expression)||o.expression.text!=="require")continue;let i=o.arguments[0];if(!(!i||!e.ts.isStringLiteral(i))&&i.text==="@builder.io/dev-tools/next"&&e.ts.isIdentifier(n.name))return n.name.text}return null}function Wt(e,t){let r=Fr(e,t);return r||(r="withBuilderDevTools",t=e.ts.factory.updateSourceFile(t,[e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral("@builder.io/dev-tools/next")]),void 0,[]))],e.ts.NodeFlags.Const)),...t.statements])),{withFnVariableName:r,sourceFile:t}}async function kr(e,t,r){let n=D(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(jr(e,n))return o;let a=Q(e,n,"cjs"),s=Q(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);let l=a[0];if(s.length===1){let d=s[0];if(!d.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let m=d.statement;if(!e.ts.isExportAssignment(m))throw new Error(`Expected an export assignment from ${t}`);if(e.ts.isObjectLiteralExpression(m.expression)){let u="builderDevTools()",p=Oa(e,m.expression);if(!p)return o;let x=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(u),void 0,[p]),f=[...n.statements],g=f.indexOf(m);return f[g]=e.ts.factory.updateExportAssignment(m,m.modifiers,x),n=e.ts.factory.updateSourceFile(n,f),n=E(e,n,{defaultImport:"builderDevTools",importPath:"@builder.io/dev-tools/remix"}),o.content=N(e,n),o.hasContentUpdates=!0,o}}if(!l.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(l.node)||e.ts.isCallExpression(l.node)){let d=l.statement;if(!e.ts.isExpressionStatement(d))throw new Error("Expected an expression statement for the default export");let m=d.expression;if(!e.ts.isBinaryExpression(m))throw new Error("Expected a binary expression for the default export");let u=Lr(e,n);n=u.sourceFile;let p=[...n.statements],x=p.indexOf(d);return p[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(m,m.left,m.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(u.withFnVariableName),void 0,[m.right]))),n=e.ts.factory.updateSourceFile(n,p),o.content=N(e,n),o.hasContentUpdates=!0,o}let c=l.statement;if(e.ts.isVariableStatement(c)){let d=[...c.declarationList.declarations];if(d.length!==1)throw new Error("Expected a single variable declaration");let m=d[0];if(!m.initializer)throw new Error("Expected an initializer on the declaration");let u=m.initializer;if(e.ts.isObjectLiteralExpression(u)||e.ts.isCallExpression(u)){let p=Lr(e,n);n=p.sourceFile;let x=[...n.statements],f=x.indexOf(c);return x[f]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(m,m.name,m.exclamationToken,m.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(p.withFnVariableName),void 0,[u]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}throw new Error("Unexpected export type")}function jr(e,t){for(let r of t.statements)if(e.ts.isVariableStatement(r))for(let n of r.declarationList.declarations){if(!n.initializer||!e.ts.isCallExpression(n.initializer))continue;let o=n.initializer.expression;if(!e.ts.isCallExpression(o)||!e.ts.isIdentifier(o.expression)||o.expression.text!=="require")continue;let i=o.arguments[0];if(!(!i||!e.ts.isStringLiteral(i))&&i.text==="@builder.io/dev-tools/remix"&&e.ts.isIdentifier(n.name))return n.name.text}return null}function Lr(e,t){let r=jr(e,t);return r||(r="withBuilderDevTools",t=e.ts.factory.updateSourceFile(t,[e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral("@builder.io/dev-tools/remix")]),void 0,[]))],e.ts.NodeFlags.Const)),...t.statements])),{withFnVariableName:r,sourceFile:t}}function Oa(e,t){let r=[...t.properties],n=r.findIndex(i=>A(e,i)==="serverDependenciesToBundle");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Or(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Or(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("serverDependenciesToBundle",o)]):null}function Or(e,t){return t.elements.some(n=>e.ts.isCallExpression(n)&&e.ts.isIdentifier(n.expression)?n.expression.text==="@builder.io/react":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createIdentifier('"@builder.io/react"')])}async function Br(e,t,r){let n=D(e,r),o=Q(e,n);if(o.length!==1)throw new Error(`Expected an export from ${t}`);let i=o[0];if(!i.isDefaultExport)throw new Error(`Expected a default export from ${t}`);let a=i.statement;if(!e.ts.isExportAssignment(a))throw new Error(`Expected an export assignment from ${t}`);let s={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(e.ts.isCallExpression(i.node)&&e.ts.isIdentifier(i.node.expression)&&i.node.expression.text==="defineConfig"){let l=[...i.node.arguments];if(l.length===0)throw new Error("Expected an argument in defineConfig()");let c=l[0];if(e.ts.isArrowFunction(c)){let d=ka(e,c);if(!d)return s;l[0]=e.ts.factory.updateArrowFunction(c,c.modifiers,c.typeParameters,c.parameters,c.type,c.equalsGreaterThanToken,d);let m=[...n.statements],u=m.indexOf(a);return m[u]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,l)),n=e.ts.factory.updateSourceFile(n,m),n=E(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}if(e.ts.isObjectLiteralExpression(c)){let d=Yt(e,c);if(!d)return s;let m=[...n.statements],u=m.indexOf(a);return m[u]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,[d])),n=e.ts.factory.updateSourceFile(n,m),n=E(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}throw new Error("Unsupported argument in defineConfig()")}if(e.ts.isObjectLiteralExpression(a.expression)){let l=Yt(e,a.expression);if(!l)return s;let c=[...n.statements],d=c.indexOf(a);return c[d]=e.ts.factory.updateExportAssignment(a,a.modifiers,l),n=e.ts.factory.updateSourceFile(n,c),n=E(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}throw new Error(`Unable to parse ${t}`)}function ka(e,t){let r=t.body;if(!e.ts.isBlock(r))return null;let n=[...r.statements],o=n.findIndex(s=>e.ts.isReturnStatement(s));if(o===-1){let s=e.ts.factory.createReturnStatement(e.ts.factory.createObjectLiteralExpression());n.push(s),o=n.length-1}let i=n[o];if(!i.expression||!e.ts.isObjectLiteralExpression(i.expression))return null;let a=Yt(e,i.expression);return a?(n[o]=e.ts.factory.updateReturnStatement(i,a),e.ts.factory.updateBlock(r,n)):null}function Yt(e,t){if(Ba(e)){let i=ja(e,t);i&&(t=i)}let r=[...t.properties],n=r.findIndex(i=>A(e,i)==="plugins");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=_r(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=_r(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("plugins",o)]):null}function _r(e,t){return t.elements.some(n=>e.ts.isCallExpression(n)&&e.ts.isIdentifier(n.expression)?n.expression.text==="builderDevTools":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("builderDevTools"),void 0,[])])}function ja(e,t){let r=[...t.properties],n=r.findIndex(i=>A(e,i)==="ssr");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isObjectLiteralExpression(i.initializer)){let a=_a(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Ht(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o){let i=e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("noExternal",o)]);return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("ssr",i)])}return null}function _a(e,t){let r=[...t.properties],n=r.findIndex(i=>A(e,i)==="noExternal");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Ht(e,i.initializer);if(a)return r[n]=e.ts.factory.updatePropertyAssignment(i,i.name,a),e.ts.factory.updateObjectLiteralExpression(t,r)}return null}let o=Ht(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o)return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("noExternal",o)])}function Ht(e,t){return t.elements.some(n=>e.ts.isStringLiteral(n)?n.text==="@builder.io/react":!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createStringLiteral("@builder.io/react")])}function Ba(e){return e.getFrameworks().some(t=>t.name==="@remix-run/react")}async function Vr(e,t,r){return e.debug("Webpack config updates are currently in progress..."),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function zr(e,t,r){e.debug("Angular config updates are currently in progress...");try{await za(e)}catch{console.error("Unable to update package.json.")}return await Va(e),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function Va(e){let t=e.getRootDir(),r=e.join(t,"src");if(!await e.exists(r))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);let n=e.join(r,"main.ts"),o=await e.readFile(n);if(!o)throw new Error(`Unable to read main.ts at ${n}`);let i=await $a(e,o);await e.writeFile(n,i)}async function $a(e,t){let r=t,n=D(e,t),o=!1;for(let a of n.statements)if(e.ts.isExpressionStatement(a)&&e.ts.isCallExpression(a.expression)&&e.ts.isPropertyAccessExpression(a.expression.expression)&&e.ts.isCallExpression(a.expression.expression.expression)&&e.ts.isIdentifier(a.expression.expression.expression.expression)&&a.expression.expression.expression.expression.text==="builderDevTools"){o=!0;break}n=E(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/angular"});let i=`
|
|
627
496
|
builderDevTools().catch((err: Error) =>
|
|
628
497
|
console.error("Error starting dev tools:", err)
|
|
629
|
-
);`;return r=
|
|
630
|
-
`}var
|
|
498
|
+
);`;return r=N(e,n),o||(r+=i),r}async function za(e){let t=e.getRootDir(),r=e.join(t,"package.json"),n=await e.readFile(r);if(!n)throw new Error(`Unable to read package.json at ${r}`);let o=Ka(n);o&&await e.writeFile(r,o)}function Ka(e){let t=JSON.parse(e);if(t.scripts=t.scripts||{},t.scripts[$r])return;let r=t.scripts.start||t.scripts.dev||"ng serve";return t.scripts[$r]=`concurrently "${r}" "${Ua}"`,JSON.stringify(t,null,2)+`
|
|
499
|
+
`}var $r="builder-dev",Ua="npx builder-dev-tools";var Ur=[{id:"angular",configFileNames:["angular.json"],ensureConfigPlugin:zr},{id:"next",configFileNames:["next.config.ts","next.config.js","next.config.mjs"],ensureConfigPlugin:Ar},{id:"vite",configFileNames:["vite.config.ts","vite.config.js"],ensureConfigPlugin:Br},{id:"remix",configFileNames:["remix.config.ts","remix.config.js"],ensureConfigPlugin:kr},{id:"webpack",configFileNames:["webpack.config.ts","webpack.config.js"],ensureConfigPlugin:Vr}];async function Mr(e){let t=e.resolve("/");for(let n of Ur)for(let o of n.configFileNames){let i=e.getRootDir();for(let a=0;a<10;a++)try{let s=e.join(i,o),l=e.readFileSync(s);if(typeof l=="string")return{id:n.id,filePath:s,content:l};if(i===t)break;i=e.dirname(i)}catch(s){if((s?.message??"").includes("Invalid path"))break;throw s}}if((await Ce(e)).some(n=>n.name==="next")){let n=e.join(e.getRootDir(),"next.config.js");return await e.writeFile(n,Kr),{id:"next",filePath:n,content:Kr}}return null}async function Ma(e){let t=await Mr(e);if(!t)throw new Error("Unable to find config file, such as next.config.js or vite.config.js.");let n=await Ur.find(o=>o.id===t.id).ensureConfigPlugin(e,t.filePath,t.content);return n.hasContentUpdates&&(n.content=J(n.content),n.content=await e.formatCode(n.filePath,n.content),await e.writeFile(t.filePath,n.content)),n}var Kr=`
|
|
631
500
|
/** @type {import('next').NextConfig} */
|
|
632
501
|
const nextConfig = {
|
|
633
502
|
}
|
|
634
503
|
|
|
635
504
|
module.exports = nextConfig
|
|
636
|
-
`.trimStart();var
|
|
505
|
+
`.trimStart();var Qr="/~builder-dev-tools.js";function Qa(e){try{if(typeof e!="string"||e.trim().length===0)return console.error("Missing devtool server url"),"";let t=new URL(Qr,e);t.searchParams.set("v",dt);let r=JSON.stringify(dt),n=`/* Builder Devtools v${dt} */
|
|
637
506
|
`;return n+=`(() => {
|
|
638
507
|
`,n+=` if (typeof document !== "undefined") {
|
|
639
508
|
`,n+=` let devToolsScript = document.head.querySelector("script[data-builder-dev-tools]");
|
|
@@ -646,4 +515,4 @@ module.exports = nextConfig
|
|
|
646
515
|
`,n+=` }
|
|
647
516
|
`,n+=` }
|
|
648
517
|
`,n+=`})();
|
|
649
|
-
`,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var
|
|
518
|
+
`,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var dt="1.0.19";export{Fa as createDevTools,La as createDevToolsSys,Ce as detectFrameworks,en as detectFrameworksFromPackageJson,Ma as ensureConfigPlugin,Mr as findBuildToolConfig,Qa as getClientScript,nn as parseDotEnvContent,dt as version};
|