builder.io 1.1.30 → 1.1.32
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/cli/index.cjs +499 -375
- package/cli/index.cjs.map +4 -4
- package/core/index.cjs +83 -64
- package/core/index.mjs +83 -64
- package/node/index.cjs +106 -3
- package/node/index.mjs +106 -3
- package/package.json +1 -1
- package/server/index.cjs +3 -3
- package/server/index.mjs +3 -3
- package/types/core/adapters/angular/angular-app-routes-update.d.ts +2 -0
- package/types/core/adapters/angular/angular-fix-tsconfig.d.ts +2 -0
- package/types/types.d.ts +1 -0
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 Yo=Object.create;var Vn=Object.defineProperty;var Go=Object.getOwnPropertyDescriptor;var Ho=Object.getOwnPropertyNames;var Xo=Object.getPrototypeOf,Zo=Object.prototype.hasOwnProperty;var Be=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ei=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ho(t))!Zo.call(e,o)&&o!==r&&Vn(e,o,{get:()=>t[o],enumerable:!(n=Go(t,o))||n.enumerable});return e};var ti=(e,t,r)=>(r=e!=null?Yo(Xo(e)):{},ei(t||!e||!e.__esModule?Vn(r,"default",{value:e,enumerable:!0}):r,e));var Fn=Be(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});function Do(e){return Object.prototype.toString.call(e)}Mt.getType=Do;function Ls(e){throw new TypeError("unsupported data type: "+Do(e))}Mt.throwUnknownDataType=Ls});var bn=Be(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});var Ie="";for(let e=0;e<10;e++){let t=String.fromCharCode(48+e);Ie+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(65+e);Ie+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(97+e);Ie+=t}var it=Ie.length,yn={};for(let e=0;e<it;e++){let t=Ie[e];yn[t]=e}function wn(e){let t=0,r=1;for(let n=e.length-1;n>=0;n--){let o=e[n],i=yn[o];i*=r,t+=i,r*=it}return t}Ne.s_to_int=wn;function Co(e){let t=BigInt(0),r=BigInt(1),n=BigInt(it);for(let o=e.length-1;o>=0;o--){let i=e[o],a=BigInt(yn[i]);a*=r,t+=a,r*=n}return t}Ne.s_to_big_int=Co;function Tn(e){if(e===0)return Ie[0];let t=[];for(;e!==0;){let r=e%it,n=Ie[r];t.push(n),e-=r,e/=it}return t.reverse().join("")}Ne.int_to_s=Tn;function xo(e){let t=BigInt(0),r=BigInt(it);if(e===t)return Ie[0];let n=[];for(;e!==t;){let o=e%r,i=Ie[Number(o)];n.push(i),e-=o,e/=r}return n.reverse().join("")}Ne.big_int_to_s=xo;function zt(e){return e.split("").reverse().join("")}function ho(e){if(e<0)return"-"+ho(-e);let[t,r]=e.toString().split(".");if(!r)return Tn(e);let n;r&&([r,n]=r.split("e")),t=Ut(t),r=zt(r),r=Ut(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=zt(n),n=Ut(n),o+=n}return o}Ne.num_to_s=ho;function Ut(e){let t=+e;return t.toString()===e?Tn(t):":"+xo(BigInt(e))}Ne.int_str_to_s=Ut;function Pn(e){return e[0]===":"?Co(e.substring(1)).toString():wn(e).toString()}function Eo(e){if(e[0]==="-")return-Eo(e.substr(1));let[t,r,n]=e.split(".");if(!r)return wn(t);t=Pn(t),r=Pn(r),r=zt(r);let o=t+"."+r;if(n){o+="e";let i=!1;n[0]==="-"&&(i=!0,n=n.slice(1)),n=Pn(n),n=zt(n),o+=i?-n:+n}return+o}Ne.s_to_num=Eo});var In=Be(Re=>{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});var vn=bn();function _s(e){return"n|"+vn.num_to_s(e)}Re.encodeNum=_s;function js(e){return e=e.replace("n|",""),vn.s_to_num(e)}Re.decodeNum=js;function Vs(e){return typeof e=="number"?e:vn.s_to_int(e)}Re.decodeKey=Vs;function $s(e){return e?"b|T":"b|F"}Re.encodeBool=$s;function Ks(e){switch(e){case"b|T":return!0;case"b|F":return!1}return!!e}Re.decodeBool=Ks;function Ms(e){switch(e[0]+e[1]){case"b|":case"o|":case"n|":case"a|":case"s|":e="s|"+e}return e}Re.encodeStr=Ms;function Us(e){return e[0]+e[1]==="s|"?e.substr(2):e}Re.decodeStr=Us});var So=Be(Nn=>{"use strict";Object.defineProperty(Nn,"__esModule",{value:!0});Nn.config={sort_key:!1}});var Bn=Be(Ye=>{"use strict";Object.defineProperty(Ye,"__esModule",{value:!0});var zs=So(),qs=Fn(),Rn=In(),Js=bn();function Qs(e){return e.store.toArray()}Ye.memToValues=Qs;function Ao(){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}}}Ye.makeInMemoryStore=Ao;function Fo(){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}}}Ye.makeInMemoryCache=Fo;function Ws(){return{store:Ao(),cache:Fo(),keyCount:0}}Ye.makeInMemoryMemory=Ws;function We(e,t){if(e.cache.hasValue(t))return e.cache.getValue(t);let r=e.keyCount++,n=Js.num_to_s(r);return e.store.add(t),e.cache.setValue(t,n),n}function Ys(e,t){zs.config.sort_key&&t.sort();let r=t.join(",");if(e.cache.hasSchema(r))return e.cache.getSchema(r);let n=Ft(e,t,void 0);return e.cache.setSchema(r,n),n}function Ft(e,t,r){if(t===null)return"";switch(typeof t){case"undefined":if(Array.isArray(r))return Ft(e,null,r);break;case"object":if(t===null)return We(e,null);if(Array.isArray(t)){let n="a";for(let o=0;o<t.length;o++){let i=t[o],a=i===null?"_":Ft(e,i,t);n+="|"+a}return n==="a"&&(n="a|"),We(e,n)}else{let n=Object.keys(t);if(n.length===0)return We(e,"o|");let o="o",i=Ys(e,n);o+="|"+i;for(let a of n){let s=t[a],u=Ft(e,s,t);o+="|"+u}return We(e,o)}case"boolean":return We(e,Rn.encodeBool(t));case"number":return We(e,Rn.encodeNum(t));case"string":return We(e,Rn.encodeStr(t))}return qs.throwUnknownDataType(t)}Ye.addValue=Ft});var kn=Be(yt=>{"use strict";Object.defineProperty(yt,"__esModule",{value:!0});var Gs=Fn(),qt=In(),On=Bn();function Hs(e){let t=On.makeInMemoryMemory(),r=On.addValue(t,e,void 0);return[On.memToValues(t),r]}yt.compress=Hs;function Xs(e,t){if(t==="o|")return{};let r={},n=t.split("|"),o=n[1],i=Pt(e,o),a=n.length;a-2===1&&!Array.isArray(i)&&(i=[i]);for(let s=2;s<a;s++){let u=i[s-2],l=n[s];l=Pt(e,l),r[u]=l}return r}function Zs(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=Pt(e,a),o[i]=a}return o}function Pt(e,t){if(t===""||t==="_")return null;let r=qt.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 qt.decodeBool(n);case"o|":return Xs(e,n);case"n|":return qt.decodeNum(n);case"a|":return Zs(e,n);default:return qt.decodeStr(n)}}return Gs.throwUnknownDataType(n)}yt.decode=Pt;function eu(e){let[t,r]=e;return Pt(t,r)}yt.decompress=eu});var yo=Be(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});function tu(e){for(let t in e)e[t]===void 0&&delete e[t]}Jt.trimUndefined=tu;function nu(e){Po(e,new Set)}Jt.trimUndefinedRecursively=nu;function Po(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)&&Po(n,t)}}});var bo=Be($e=>{"use strict";Object.defineProperty($e,"__esModule",{value:!0});var wo=kn();$e.compress=wo.compress;$e.decompress=wo.decompress;var ru=kn();$e.decode=ru.decode;var ou=Bn();$e.addValue=ou.addValue;var To=yo();$e.trimUndefined=To.trimUndefined;$e.trimUndefinedRecursively=To.trimUndefinedRecursively});async function wt(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 $n(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 at(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 u=await at(e,a,r);if(u)return u}}))).find(i=>typeof i=="string")}async function Me(e){let t=[],r=await wt(e,e.getRootDir());if(r){let n=Kn(r);t.push(...n)}return t}function Kn(e){let t=[];if(e&&typeof e=="object"){let r=new Set(Object.keys({...e.dependencies,...e.devDependencies}));for(let n of ni)r.has(n)&&(t.some(o=>o.name===n)||t.push({name:n}))}return t}var ni=["@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 fe(e){let t=Mn(e),r=await e.readFile(t);return typeof r=="string"?JSON.parse(r):{}}async function de(e,t){t=typeof t=="object"&&t!=null?t:{};let r=Mn(e);await e.writeFile(r,JSON.stringify(t??{},null,2))}function Mn(e){let t=e.getRootDir();return e.join(t,"node_modules",".builder","builder-cache.json")}async function Oe(e,t,r){let n={envKey:r,envValue:null,file:""};for(let o of t){let i=e.join(e.getRootDir(),o),a=await ri(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 ri(e,t){let r=await e.readFile(t);return typeof r=="string"?Un(r):null}function Un(e){let t={},r=e.replace(/\r\n?/gm,`
|
|
2
|
+
`),n;for(;(n=oi.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 oi=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;async function ke(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 st(e){return await Oe(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],ge)}async function zn(e,t){let r=await st(e),n=await ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var ge="NEXT_PUBLIC_BUILDER_API_KEY";var w={gen1:"Gen 1",gen2:"Gen 2"};function I(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest,void 0)}function Tt(e,t=""){let r=I(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function _(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 R(e,t,r){t=Z(t),r=Z(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=Z(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function Z(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Re(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return hn(o==="index"?e.basename(e.dirname(t)):o)}function hn(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=Z(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function L(e,t){let r=Z(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 A(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 J(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function _(e,t,r,n){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return n&&(t=n),t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function Je(e){return typeof e=="number"}function ke(e){return typeof e=="boolean"}function q(e){return typeof e=="string"}function Le(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function W(e){return JSON.parse(JSON.stringify(e))}function ct(e,t,r){for(let n of t)if(e.dirname(r).includes(n))return!0;return!1}function We(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=wo(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,p)=>p!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,Qe(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,Qe(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function wo(e,t,r){return t.properties.findIndex(n=>I(e,n)===r)}function Ye(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return Io(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return vo(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 vo(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]=Ye(e,n.initializer))}}return r}function Io(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>Ye(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 Qe(e,t){return bt(e,t,new WeakSet)}function bt(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)?bo(e,t,r):typeof t=="object"?Ro(e,t,r):e.ts.factory.createIdentifier(t)}function bo(e,t,r){let n=t.map(o=>bt(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function Ro(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,bt(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function Ne(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 p=a.heritageClauses?.find(l=>l.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(p){for(let l of p)if(t.getSymbolAtLocation(l.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(l)){let u=l.typeArguments;if(u){let c=u[0];o=t.getTypeFromTypeNode(c).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let p=s[0].getParameters();p.length>0&&(o=t.getTypeOfSymbolAtLocation(p[0],r).getProperties())}}}else if(e.ts.isExportSpecifier(r)){let i=t.getSymbolAtLocation(r.name);if(i){let s=t.getTypeOfSymbolAtLocation(i,r).getCallSignatures();if(s.length>0){let p=s[0].getParameters();p.length>0&&(o=t.getTypeOfSymbolAtLocation(p[0],r).getProperties())}}}if(o)for(let i of o){let a=No(e,t,i);a&&n.push(a)}return n=n.filter(Sn),n.length>0?n:Ao(e,r)}function No(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 p=t.getTypeFromTypeNode(n.type),l=t.typeToString(p),d=Rt(l);d.knownType?i=d.builderType:Oo(l)||p.flags&e.ts.TypeFlags.StringLike?i="string":p.flags&e.ts.TypeFlags.NumberLike?i="number":p.flags&e.ts.TypeFlags.IndexedAccess?i="list":p.flags&e.ts.TypeFlags.Object||p.isUnion()&&p.types.every(u=>u.flags&e.ts.TypeFlags.Object)||p.isIntersection()&&p.types.some(u=>u.flags&e.ts.TypeFlags.Object)?i="object":i="string",l!==i&&(a=l)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let p=jo(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},p&&p.length>0&&s.type==="string"&&p.every(Lo)?s.enum=p.map(_o):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function Ao(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 p=s.jsDocPropertyTags;if(p)for(let l of p){if(!e.ts.isJSDocPropertyLikeTag(l))continue;let d=l.name;if(!e.ts.isQualifiedName(d))continue;let u=l.typeExpression;if(!u)continue;let c="";switch(u.type.kind){case e.ts.SyntaxKind.StringKeyword:{c="string";break}case e.ts.SyntaxKind.NumberKeyword:{c="number";break}case e.ts.SyntaxKind.BooleanKeyword:{c="boolean";break}default:continue}let x={name:d.right.text,type:c,isRegistered:!1};r.push(x)}}return r.filter(Sn)}var Fo=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function Oo(e){return typeof e!="string"?!1:!!Fo.some(t=>e.includes(t))}function Rt(e){return typeof e=="string"&&(e=e.trim(),ko.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var ko=[{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 Lo(e){return/^['"].*['"]$/.test(e)}function _o(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var jo=(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},Bo=(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=Bo(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!Vo.has(t.toLowerCase())}var Vo=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 Q(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=Ko(e,n.initializer);ee(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=Ye(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Ko(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push($o(e,n));return r}function $o(e,t){let r=Ye(e,t),n=Wo(r);return n.isRegistered=!0,n}function K(e,t,r){let n=Uo(r);return t=We(e,t,"name",n.name,!1),t=We(e,t,"description",n.description),t=We(e,t,"image",n.image),t=Mo(e,t,n),Yo(e,t)}function Mo(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 We(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=qo(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 Uo(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(zo)}}function zo(e){let t={name:e.name,type:e.type};return(q(e.defaultValue)||Je(e.defaultValue)||ke(e.defaultValue))&&(t.defaultValue=e.defaultValue),q(e.friendlyName)&&(t.friendlyName=e.friendlyName),q(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 qo(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=Jo(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(c=>I(e,c)==="name"),s=i.properties.find(c=>I(e,c)==="name"),p=a?.initializer,l=s?.initializer,d=p&&e.ts.isStringLiteral(p)?p.text:"zz",u=l&&e.ts.isStringLiteral(l)?l.text:"zz";return d.toLowerCase().localeCompare(u.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function Jo(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]=Pn(e,t[n],r);else{let o=Pn(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function Pn(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=Qo(e,n,r,i);return n=Go(e,n.filter(i=>{let a=I(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function Qo(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,Qe(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,Qe(e,r[n]))),t}function ee(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=Nt(e)}function Wo(e){let t=Rt(e.type),r={name:e.name.trim(),type:t.builderType};return q(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(q(e.defaultValue)||Je(e.defaultValue)||ke(e.defaultValue))&&(r.defaultValue=e.defaultValue),q(e.helperText)&&(r.helperText=e.helperText),ke(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),At(r)}function Nt(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 At(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 Yo(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=En.indexOf(i),p=En.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var En=["component","name","description"];function Go(e,t){return[...t].sort((n,o)=>{let i=I(e,n)||"zz",a=I(e,o)||"zz",s=Tn.indexOf(i),p=Tn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)})}var Tn=["name","type"];function _e(e,t){for(let r of t.properties){if(!e.ts.isPropertyAssignment(r)||!e.ts.isIdentifier(r.name))continue;if(I(e,r)==="canHaveChildren"){let{initializer:o}=r;return o.kind===e.ts.SyntaxKind.TrueKeyword}}return!1}function Dn(e,t){let r=`Builder.registerComponent(
|
|
11
|
+
`}return""}function B(e,t,r){t=ue(t),r=ue(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=ue(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function ue(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Ue(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return qn(o==="index"?e.basename(e.dirname(t)):o)}function qn(e){return K(e).replace(/ /g,"")}function oe(e,t){let r=e.extname(t),n=ue(e.basename(t,r)).split("/").pop();return K(n==="index"?e.basename(e.dirname(t)):n)}function V(e,t){let r=ue(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 k(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 K(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 te(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function $(e,t,r,n){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return n&&(t=n),t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function ut(e){return typeof e=="number"}function Ge(e){return typeof e=="boolean"}function Z(e){return typeof e=="string"}function He(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function re(e){return JSON.parse(JSON.stringify(e))}function bt(e,t,r){for(let n of t)if(e.dirname(r).includes(n))return!0;return!1}function pt(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=ii(e,t,r);return a>-1?n==null&&o?e.ts.factory.updateObjectLiteralExpression(t,i.filter((s,u)=>u!==a)):(i[a]=e.ts.factory.updatePropertyAssignment(i[a],i[a].name,lt(e,n)),e.ts.factory.updateObjectLiteralExpression(t,i)):(n!=null&&i.push(e.ts.factory.createPropertyAssignment(r,lt(e,n))),e.ts.factory.updateObjectLiteralExpression(t,i))}function ii(e,t,r){return t.properties.findIndex(n=>R(e,n)===r)}function ct(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return si(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return ai(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 ai(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=R(e,n);o&&(r[o]=ct(e,n.initializer))}}return r}function si(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>ct(e,r)):[]}function R(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 lt(e,t){return Yt(e,t,new WeakSet)}function Yt(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)?ui(e,t,r):typeof t=="object"?li(e,t,r):e.ts.factory.createIdentifier(t)}function ui(e,t,r){let n=t.map(o=>Yt(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function li(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,Yt(e,t[o],r)));return e.ts.factory.createObjectLiteralExpression(n,!0)}function ze(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 u=a.heritageClauses?.find(l=>l.token===e.ts.SyntaxKind.ExtendsKeyword)?.types;if(u){for(let l of u)if(t.getSymbolAtLocation(l.expression)?.name==="Component"){if(e.ts.isExpressionWithTypeArguments(l)){let m=l.typeArguments;if(m){let c=m[0];o=t.getTypeFromTypeNode(c).getProperties()}}break}}}if(!o){let s=i.getCallSignatures();if(s.length>0){let u=s[0].getParameters();u.length>0&&(o=t.getTypeOfSymbolAtLocation(u[0],r).getProperties())}}}else if(e.ts.isExportSpecifier(r)){let i=t.getSymbolAtLocation(r.name);if(i){let s=t.getTypeOfSymbolAtLocation(i,r).getCallSignatures();if(s.length>0){let u=s[0].getParameters();u.length>0&&(o=t.getTypeOfSymbolAtLocation(u[0],r).getProperties())}}}if(o)for(let i of o){let a=pi(e,t,i);a&&n.push(a)}return n=n.filter(Qn),n.length>0?n:ci(e,r)}function pi(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 u=t.getTypeFromTypeNode(n.type),l=t.typeToString(u),d=Gt(l);d.knownType?i=d.builderType:fi(l)||u.flags&e.ts.TypeFlags.StringLike?i="string":u.flags&e.ts.TypeFlags.NumberLike?i="number":u.flags&e.ts.TypeFlags.IndexedAccess?i="list":u.flags&e.ts.TypeFlags.Object||u.isUnion()&&u.types.every(m=>m.flags&e.ts.TypeFlags.Object)||u.isIntersection()&&u.types.some(m=>m.flags&e.ts.TypeFlags.Object)?i="object":i="string",l!==i&&(a=l)}let s={name:o,type:i,isRegistered:!1};if(a&&n.type){let u=Ci(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},u&&u.length>0&&s.type==="string"&&u.every(gi)?s.enum=u.map(Di):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function ci(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 u=s.jsDocPropertyTags;if(u)for(let l of u){if(!e.ts.isJSDocPropertyLikeTag(l))continue;let d=l.name;if(!e.ts.isQualifiedName(d))continue;let m=l.typeExpression;if(!m)continue;let c="";switch(m.type.kind){case e.ts.SyntaxKind.StringKeyword:{c="string";break}case e.ts.SyntaxKind.NumberKeyword:{c="number";break}case e.ts.SyntaxKind.BooleanKeyword:{c="boolean";break}default:continue}let C={name:d.right.text,type:c,isRegistered:!1};r.push(C)}}return r.filter(Qn)}var mi=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function fi(e){return typeof e!="string"?!1:!!mi.some(t=>e.includes(t))}function Gt(e){return typeof e=="string"&&(e=e.trim(),di.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var di=[{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 gi(e){return/^['"].*['"]$/.test(e)}function Di(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var Ci=(e,t,r)=>{let n=new Set;Jn(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},xi=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},Jn=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{Jn(e,t,o,n)});else if(r.isLiteral()){let o=xi(e,t,r);n.add(o)}};function Qn(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!hi.has(t.toLowerCase())}var hi=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 ne(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=R(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=Ei(e,n.initializer);le(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=ct(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Ei(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(Si(e,n));return r}function Si(e,t){let r=ct(e,t),n=bi(r);return n.isRegistered=!0,n}function Q(e,t,r){let n=Fi(r);return t=pt(e,t,"name",n.name,!1),t=pt(e,t,"description",n.description),t=pt(e,t,"image",n.image),t=Ai(e,t,n),vi(e,t)}function Ai(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 pt(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=yi(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 Fi(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(Pi)}}function Pi(e){let t={name:e.name,type:e.type};return(Z(e.defaultValue)||ut(e.defaultValue)||Ge(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 yi(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>R(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=wi(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(c=>R(e,c)==="name"),s=i.properties.find(c=>R(e,c)==="name"),u=a?.initializer,l=s?.initializer,d=u&&e.ts.isStringLiteral(u)?u.text:"zz",m=l&&e.ts.isStringLiteral(l)?l.text:"zz";return d.toLowerCase().localeCompare(m.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function wi(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=R(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=Wn(e,t[n],r);else{let o=Wn(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function Wn(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=Ti(e,n,r,i);return n=Ii(e,n.filter(i=>{let a=R(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function Ti(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,lt(e,r[n])):t.push(e.ts.factory.createPropertyAssignment(n,lt(e,r[n]))),t}function le(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=Ht(e)}function bi(e){let t=Gt(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)||ut(e.defaultValue)||Ge(e.defaultValue))&&(r.defaultValue=e.defaultValue),Z(e.helperText)&&(r.helperText=e.helperText),Ge(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),Xt(r)}function Ht(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 Xt(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 vi(e,t){let r=[...t.properties].sort((n,o)=>{let i=R(e,n)||"zz",a=R(e,o)||"zz";if(i==="inputs")return 1;let s=Yn.indexOf(i),u=Yn.indexOf(a);return s>-1?u>-1&&s>u?1:-1:u>-1?s>-1&&u<s?-1:1:i.localeCompare(a)});return e.ts.factory.updateObjectLiteralExpression(t,r)}var Yn=["component","name","description"];function Ii(e,t){return[...t].sort((n,o)=>{let i=R(e,n)||"zz",a=R(e,o)||"zz",s=Gn.indexOf(i),u=Gn.indexOf(a);return s>-1?u>-1&&s>u?1:-1:u>-1?s>-1&&u<s?-1:1:i.localeCompare(a)})}var Gn=["name","type"];function Xe(e,t){for(let r of t.properties){if(!e.ts.isPropertyAssignment(r)||!e.ts.isIdentifier(r.name))continue;if(R(e,r)==="canHaveChildren"){let{initializer:o}=r;return o.kind===e.ts.SyntaxKind.TrueKeyword}}return!1}function Hn(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=t.externalImportPath?t.externalImportPath:
|
|
14
|
+
`;else{let o=t.externalImportPath?t.externalImportPath:B(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 p=Ge.get(a);if(p)return v(e,p.content)}let s=e.readFileSync(a);if(s==null){let p=e.basename(a),l=e.extname(p).toLowerCase();if(a.startsWith(n)&&l===".ts"&&(s=wn.get(p),s==null&&typeof self<"u"&&typeof fetch=="function"))throw new ut(p)}return a.includes("node_modules")&&(s?Ge.set(a,{exists:!0,content:s}):Ge.set(a,{exists:!1})),v(e,s)},readFile:a=>{let s=e.readFileSync(a);return typeof s=="string"?s:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return Ho(e,i,t)}catch(a){if(a instanceof ut){await Xo(e,a.libName);continue}throw console.error("createTsProgram",a),new Error(`createTsProgram() Could not create program for: ${t[0]}`)}}function Ho(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=yn.get(o);if(!i){let a=e.ts.readConfigFile(o,s=>{let p=e.readFileSync(s);return typeof p=="string"?p:void 0});a.error?console.error("error reading tsconfig for createTsProgram"):(i=e.ts.parseJsonConfigFileContent(a.config,e.ts.sys||{useCaseSensitiveFileNames:!1,readDirectory:(p,l)=>e.readdirSync(p),fileExists:p=>e.existsSync(p),readFile:p=>e.readFileSync(p)||void 0},e.dirname(o),void 0,o).options,yn.set(o,i))}i&&(n.options=W(i))}return 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 je(e,t,r){r||(r=await M(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 ut=class{constructor(t){this.libName=t}};async function Xo(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;mt.has(t)||mt.set(t,fetch(r).then(n=>n.text()).then(n=>{wn.set(t,n)})),await mt.get(t),mt.delete(t)}var wn=new Map,mt=new Map,Ge=new Map,yn=new Map;function w(e,t,r,n="esm"){return Array.isArray(r.namedImports)&&r.namedImports.forEach(o=>{t=Zo(e,t,o,r.importPath,!!r.isTypeOnly,n)}),typeof r.defaultImport=="string"&&(t=ei(e,t,r.defaultImport,r.importPath,n)),t}function Zo(e,t,r,n,o,i){return i==="cjs"?In(e,t,null,r,n):vn(e,t,null,r,n,o)}function ei(e,t,r,n,o){return o==="cjs"?In(e,t,r,null,n):vn(e,t,r,null,n,!1)}function vn(e,t,r,n,o,i){let a=[...t.statements],s=0,p=!1,l=!1;for(let m=0;m<a.length;m++){let x=a[m];if(!e.ts.isImportDeclaration(x)||(s=m,!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,P)=>C.name.text.localeCompare(P.name.text)),p=!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),l=!0}if(p||l)return a[m]=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 c=e.ts.factory.createImportDeclaration(void 0,e.ts.factory.createImportClause(i,d,u),e.ts.factory.createStringLiteral(o));return a.splice(s,0,c),e.ts.factory.updateSourceFile(t,a)}function In(e,t,r,n,o){let i=[...t.statements],a=0;for(let s=0;s<i.length;s++){let p=i[s];if(e.ts.isVariableStatement(p))for(let l=0;l<p.declarationList.declarations.length;l++){let d=[...p.declarationList.declarations],u=d[l],c=u.initializer;if(!c||!e.ts.isCallExpression(c))continue;let m=c.expression;if(!e.ts.isIdentifier(m)||m.text!=="require"||c.arguments.length!==1)continue;let x=c.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[l]=e.ts.factory.updateVariableDeclaration(u,e.ts.factory.createIdentifier(r),u.exclamationToken,u.type,u.initializer),i[s]=e.ts.factory.updateVariableStatement(p,p.modifiers,e.ts.factory.updateVariableDeclarationList(p.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[l]=e.ts.factory.updateVariableDeclaration(u,e.ts.factory.createObjectBindingPattern(f),u.exclamationToken,u.type,u.initializer),i[s]=e.ts.factory.updateVariableStatement(p,p.modifiers,e.ts.factory.updateVariableDeclarationList(p.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 G(e,t,r="esm"){return r==="cjs"?ni(e,t):ti(e,t)}function ti(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})}}else!n.exportClause&&n.moduleSpecifier&&r.push({isDefaultExport:!1,statement:n,node:n});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 p of s.declarationList.declarations)e.ts.isIdentifier(p.name)&&p.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 ni(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 p of s.declarationList.declarations)e.ts.isIdentifier(p.name)&&p.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 ri(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 ae(e,t,r,n){let o=ri(e,r,n);if(o){let i=await He(e,e.normalize(e.resolve(e.dirname(t),o.importPath))),a=e.relative(e.getRootDir(),i);return{displayFilePath:A(e,i),filePath:i,relFilePath:a,importPath:o.importPath,exportType:o.exportType}}return null}function Be(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 V(e,t,r){let n=Be(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 ft(e,t){if(t){if(oi(e,t))return!0;let r=!1;if(t.forEachChild(n=>{ft(e,n)&&(r=!0)}),r)return!0}return!1}function oi(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 He(e,t){let r=e.extname(t).toLowerCase();if(r===""||!Ot.includes(r)){for(let n of Ot){let o=t+n;if(await e.exists(o))return o}for(let n of Ot){let o=e.join(t,"index"+n);if(await e.exists(o))return o}}return t}var Ot=[".tsx",".jsx",".ts",".js"];function Xe(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=ii(e,i);return a?[{name:a}]:void 0}function ii(e,t){if(typeof t=="string"){t=e.normalize(Z(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 se(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 Ve(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await M(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 l=(await ye(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);l&&(a.inputs=Ne(e,o,l.node.fnNode))}return a}))}async function Ke(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await je(e,t.cmpInfo.filePath,r),a=(await ye(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 Ne(e,o,a.node.fnNode)}return[]}async function Rn(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 ai(e,t,n)}return null}function ai(e,t,r){let n=v(e,r);return ye(e,null,t,n)}async function ye(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=G(e,n);return r=e.normalize(r),await Promise.all(i.map(async a=>{let s=await si(e,t,r,a);o.push(...s)})),o}async function si(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=L(e,r);if(e.ts.isVariableStatement(n.node)){for(let s of n.node.declarationList.declarations){if(!e.ts.isIdentifier(s.name)||!Le(s.name.text))continue;let p=De(e,t,s.initializer);if(p){let l=p.name||s.name.text,d=n.isDefaultExport?"default":l,u=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await _(e,r,d),displayFilePath:A(e,r),name:j(l),inputs:[],exportName:d,exportType:u,importName:l,filePath:r,relFilePath:i,importPath:a,dependencies:p.deps},node:p})}}return o}if(e.ts.isArrowFunction(n.node)){let s=De(e,t,n.node);if(s){let p=Y(e,r),l=n.isDefaultExport?"default":p,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await _(e,r,l),displayFilePath:A(e,r),name:p,inputs:[],exportName:l,exportType:d,importName:Re(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&&!Le(s))return o;let p=De(e,t,n.node);if(p){let l=p.name||Y(e,r),d=n.isDefaultExport||!p.name?"default":p.name,u=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await _(e,r,d),displayFilePath:A(e,r),name:l,inputs:[],exportName:d,exportType:u,importName:p.name||Re(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:p.deps},node:p})}return o}if(e.ts.isExportSpecifier(n.node)&&Le(n.node.getText())){let s,p=De(e,t,n.node);if(p){let l=p.name||Y(e,r),d=n.isDefaultExport||!p.name?"default":p.name,u=n.isDefaultExport?"default":"named",m=n.node.parent.parent.moduleSpecifier;if(m&&e.ts.isStringLiteral(m)){let x=t?.getSymbolAtLocation(m);if(x&&x.declarations&&x.declarations.length>0){let f=x.declarations[0];(!e.ts.isSourceFile(f)||e.ts.isSourceFile(f)&&f.fileName.includes("node_modules"))&&(s=m.text)}}o.push({cmpInfo:{id:await _(e,r,d,s),displayFilePath:A(e,r),name:l,inputs:[],exportName:d,exportType:u,importName:p.name||Re(e,r),filePath:r,relFilePath:i,importPath:s||a,externalImportPath:s,dependencies:p.deps},node:p})}return o}if(e.ts.isExportDeclaration(n.node)&&n.node.exportClause===void 0){let s=n.node.moduleSpecifier;if(s&&e.ts.isStringLiteral(s)){let p=await li(e,t,r,s);o.push(...p)}return o}return o}function De(e,t,r){if(!r)return null;if(e.ts.isArrowFunction(r))return ft(e,r.body)?{name:"",fnNode:r,deps:Xe(e,t,r)}:null;if(e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r))return ft(e,r.body)?{name:r.name?.text||"",fnNode:r,deps:Xe(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:De(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)||!Le(o.text))return null;let a=t.getTypeAtLocation(o).getCallSignatures();if(a.length>0&&a[0].getParameters().length>0)return{name:"",fnNode:o,deps:Xe(e,t,o)}}if(e.ts.isExportSpecifier(r)){let n=r.name;return{name:n.text||"",fnNode:n,deps:Xe(e,t,n)}}if(e.ts.isExpressionStatement(r)){let n=r.expression;if(e.ts.isAsExpression(n)&&e.ts.isIdentifier(n.type)&&n.type.text==="default")return De(e,t,n.expression)}if(e.ts.isVariableStatement(r)){for(let n of r.declarationList.declarations)if(n.initializer&&e.ts.isAsExpression(n.initializer)){let o=n.initializer;if(e.ts.isIdentifier(o.type)&&o.type.text==="default"){let i=De(e,t,o.expression);if(i&&e.ts.isIdentifier(n.name))return{name:n.name.text,fnNode:i.fnNode,deps:i.deps}}}}return null}async function Nn(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(ct(e,pi,i.fileName)||a===e.reactConfigPath||a===e.registryPath||a===e.builderComponentPath)return;let s=await ye(e,o,a,i);r.push(...s)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var pi=new Set(["node_modules","dist"]);async function li(e,t,r,n){let o=[],i=n.text;if(!t)return o;try{let a=t.getSymbolAtLocation(n);if(!a)return o;let s=t.getExportsOfModule(a);for(let p of s){let l=p.valueDeclaration||p.declarations?.[0];if(!l)continue;let d=p.name;if(!Le(d)&&d!=="default"||!An(e,t,l))continue;let u=De(e,t,l);if(u){let c=p.name,m=c==="default"?"default":"named",x=j(c),f=c==="default"?Re(e,r):c;o.push({cmpInfo:{id:await _(e,r,c,i),displayFilePath:A(e,r),name:x,inputs:[],exportName:c,exportType:m,importName:f,filePath:r,relFilePath:e.relative(e.getRootDir(),r),importPath:i,externalImportPath:i,dependencies:u.deps},node:u})}}}catch(a){console.error(`Error processing module ${i}:`,a)}return o}function An(e,t,r){if(e.ts.isInterfaceDeclaration(r)||e.ts.isTypeAliasDeclaration(r))return!1;if(e.ts.isExportSpecifier(r)){let n=t.getSymbolAtLocation(r.name);if(n){let i=t.getAliasedSymbol(n).declarations?.[0];if(i)return An(e,t,i)}return!1}if(e.ts.isFunctionDeclaration(r)||e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)){let n=t.getSignatureFromDeclaration(r);if(n){let o=t.getReturnTypeOfSignature(n);return bn(o,t)}}return e.ts.isClassDeclaration(r)?r.heritageClauses?.some(o=>o.types.some(i=>i.expression.getText()==="React.Component"||i.expression.getText()==="Component"))??!1:e.ts.isVariableDeclaration(r)?t.getTypeAtLocation(r).getCallSignatures().some(i=>bn(t.getReturnTypeOfSignature(i),t)):!1}function bn(e,t){let r=t.typeToString(e);return r==="JSX.Element"||r==="Element"||r.includes("ReactElement")||r.includes("React.ReactElement")||r.includes("ReactNode")}async function Fn(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&&ci.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 p=await ye(e,o,s,i);r.push(...p)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var ci=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 pe(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 p=a.moduleSpecifier.text;if(!p.startsWith(".")&&!p.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,[...kt(e,r),...kt(e,n),...kt(e,o),...i])}function H(e){let t=e.split(`
|
|
21
|
+
`,r+=");";let n=Tt(e,r);return Zt(e,n,t)}function Zt(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]=Q(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function G(e,t){if(!Array.isArray(t)||t.length===0)throw new Error(`createTsProgram() Invalid filePaths: ${t}`);let r=await $n(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=mt.get(a);if(!s){try{e.statSync(a).isFile()?s={exists:!0,content:e.readFileSync(a)}:s={exists:!1}}catch{s={exists:!1}}mt.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 u=mt.get(a);if(u)return I(e,u.content)}let s=e.readFileSync(a);if(s==null){let u=e.basename(a),l=e.extname(u).toLowerCase();if(a.startsWith(n)&&l===".ts"&&(s=Zn.get(u),s==null&&typeof self<"u"&&typeof fetch=="function"))throw new It(u)}return a.includes("node_modules")&&(s?mt.set(a,{exists:!0,content:s}):mt.set(a,{exists:!1})),I(e,s)},readFile:a=>{let s=e.readFileSync(a);return typeof s=="string"?s:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return Ni(e,i,t)}catch(a){if(a instanceof It){await Ri(e,a.libName);continue}throw console.error("createTsProgram",a),new Error(`createTsProgram() Could not create program for: ${t[0]}`)}}function Ni(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=Xn.get(o);if(!i){let a=e.ts.readConfigFile(o,s=>{let u=e.readFileSync(s);return typeof u=="string"?u:void 0});a.error?console.error("error reading tsconfig for createTsProgram"):(i=e.ts.parseJsonConfigFileContent(a.config,e.ts.sys||{useCaseSensitiveFileNames:!1,readDirectory:(u,l)=>e.readdirSync(u),fileExists:u=>e.existsSync(u),readFile:u=>e.readFileSync(u)||void 0},e.dirname(o),void 0,o).options,Xn.set(o,i))}i&&(n.options=re(i))}return 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 Ze(e,t,r){r||(r=await G(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 It=class{constructor(t){this.libName=t}};async function Ri(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;vt.has(t)||vt.set(t,fetch(r).then(n=>n.text()).then(n=>{Zn.set(t,n)})),await vt.get(t),vt.delete(t)}var Zn=new Map,vt=new Map,mt=new Map,Xn=new Map;function v(e,t,r,n="esm"){return Array.isArray(r.namedImports)&&r.namedImports.forEach(o=>{t=Bi(e,t,o,r.importPath,!!r.isTypeOnly,n)}),typeof r.defaultImport=="string"&&(t=Oi(e,t,r.defaultImport,r.importPath,n)),t}function Bi(e,t,r,n,o,i){return i==="cjs"?tr(e,t,null,r,n):er(e,t,null,r,n,o)}function Oi(e,t,r,n,o){return o==="cjs"?tr(e,t,r,null,n):er(e,t,r,null,n,!1)}function er(e,t,r,n,o,i){let a=[...t.statements],s=0,u=!1,l=!1;for(let f=0;f<a.length;f++){let C=a[f];if(!e.ts.isImportDeclaration(C)||(s=f,!C.moduleSpecifier||!e.ts.isStringLiteral(C.moduleSpecifier))||C.moduleSpecifier.text!==o||!!C.importClause?.isTypeOnly!==i)continue;let p=[],D=C.importClause?.namedBindings;if(D&&e.ts.isNamedImports(D)&&D.elements&&p.push(...D.elements),typeof n=="string"){if(p.some(x=>x.name.text===n))return t;p.push(e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))),p.sort((x,S)=>x.name.text.localeCompare(S.name.text)),u=!0}let g=C.importClause?C.importClause.name:void 0;if(typeof r=="string"){if(g&&g.text===r)return t;g=e.ts.factory.createIdentifier(r),l=!0}if(u||l)return a[f]=e.ts.factory.updateImportDeclaration(C,void 0,e.ts.factory.createImportClause(i,g,e.ts.factory.createNamedImports(p)),C.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 c=e.ts.factory.createImportDeclaration(void 0,e.ts.factory.createImportClause(i,d,m),e.ts.factory.createStringLiteral(o));return a.splice(s,0,c),e.ts.factory.updateSourceFile(t,a)}function tr(e,t,r,n,o){let i=[...t.statements],a=0;for(let s=0;s<i.length;s++){let u=i[s];if(e.ts.isVariableStatement(u))for(let l=0;l<u.declarationList.declarations.length;l++){let d=[...u.declarationList.declarations],m=d[l],c=m.initializer;if(!c||!e.ts.isCallExpression(c))continue;let f=c.expression;if(!e.ts.isIdentifier(f)||f.text!=="require"||c.arguments.length!==1)continue;let C=c.arguments[0];if(e.ts.isStringLiteral(C)&&(a=s,C.text===o)){if(e.ts.isIdentifier(m.name)&&typeof r=="string")return m.name.text===r?t:(d[l]=e.ts.factory.updateVariableDeclaration(m,e.ts.factory.createIdentifier(r),m.exclamationToken,m.type,m.initializer),i[s]=e.ts.factory.updateVariableStatement(u,u.modifiers,e.ts.factory.updateVariableDeclarationList(u.declarationList,d)),e.ts.factory.updateSourceFile(t,i));if(e.ts.isObjectBindingPattern(m.name)&&typeof n=="string"){let p=[...m.name.elements];return p.some(g=>!e.ts.isBindingElement(g)||!e.ts.isIdentifier(g.name)?!1:g.name.text===n)?t:(p.push(e.ts.factory.createBindingElement(void 0,void 0,n)),p.sort((g,x)=>!e.ts.isBindingElement(g)||!e.ts.isIdentifier(g.name)||!e.ts.isBindingElement(x)||!e.ts.isIdentifier(x.name)?0:g.name.text.localeCompare(x.name.text)),d[l]=e.ts.factory.updateVariableDeclaration(m,e.ts.factory.createObjectBindingPattern(p),m.exclamationToken,m.type,m.initializer),i[s]=e.ts.factory.updateVariableStatement(u,u.modifiers,e.ts.factory.updateVariableDeclarationList(u.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 ie(e,t,r="esm"){return r==="cjs"?Li(e,t):ki(e,t)}function ki(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})}}else!n.exportClause&&n.moduleSpecifier&&r.push({isDefaultExport:!1,statement:n,node:n});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 u of s.declarationList.declarations)e.ts.isIdentifier(u.name)&&u.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 Li(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 u of s.declarationList.declarations)e.ts.isIdentifier(u.name)&&u.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 _i(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 De(e,t,r,n){let o=_i(e,r,n);if(o){let i=await ft(e,e.normalize(e.resolve(e.dirname(t),o.importPath))),a=e.relative(e.getRootDir(),i);return{displayFilePath:k(e,i),filePath:i,relFilePath:a,importPath:o.importPath,exportType:o.exportType}}return null}function et(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 J(e,t,r){let n=et(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 Nt(e,t){if(t){if(ji(e,t))return!0;let r=!1;if(t.forEachChild(n=>{Nt(e,n)&&(r=!0)}),r)return!0}return!1}function ji(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 ft(e,t){let r=e.extname(t).toLowerCase();if(r===""||!en.includes(r)){for(let n of en){let o=t+n;if(await e.exists(o))return o}for(let n of en){let o=e.join(t,"index"+n);if(await e.exists(o))return o}}return t}var en=[".tsx",".jsx",".ts",".js"];function dt(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=Vi(e,i);return a?[{name:a}]:void 0}function Vi(e,t){if(typeof t=="string"){t=e.normalize(ue(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 Ce(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 tt(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await G(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 l=(await _e(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);l&&(a.inputs=ze(e,o,l.node.fnNode))}return a}))}async function nt(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await Ze(e,t.cmpInfo.filePath,r),a=(await _e(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 ze(e,o,a.node.fnNode)}return[]}async function rr(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 $i(e,t,n)}return null}function $i(e,t,r){let n=I(e,r);return _e(e,null,t,n)}async function _e(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=ie(e,n);return r=e.normalize(r),await Promise.all(i.map(async a=>{let s=await Ki(e,t,r,a);o.push(...s)})),o}async function Ki(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=V(e,r);if(e.ts.isVariableStatement(n.node)){for(let s of n.node.declarationList.declarations){if(!e.ts.isIdentifier(s.name)||!He(s.name.text))continue;let u=Le(e,t,s.initializer);if(u){let l=u.name||s.name.text,d=n.isDefaultExport?"default":l,m=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await $(e,r,d),displayFilePath:k(e,r),name:K(l),inputs:[],exportName:d,exportType:m,importName:l,filePath:r,relFilePath:i,importPath:a,dependencies:u.deps},node:u})}}return o}if(e.ts.isArrowFunction(n.node)){let s=Le(e,t,n.node);if(s){let u=oe(e,r),l=n.isDefaultExport?"default":u,d=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await $(e,r,l),displayFilePath:k(e,r),name:u,inputs:[],exportName:l,exportType:d,importName:Ue(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&&!He(s))return o;let u=Le(e,t,n.node);if(u){let l=u.name||oe(e,r),d=n.isDefaultExport||!u.name?"default":u.name,m=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await $(e,r,d),displayFilePath:k(e,r),name:l,inputs:[],exportName:d,exportType:m,importName:u.name||Ue(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:u.deps},node:u})}return o}if(e.ts.isExportSpecifier(n.node)&&He(n.node.getText())){let s,u=Le(e,t,n.node);if(u){let l=u.name||oe(e,r),d=n.isDefaultExport||!u.name?"default":u.name,m=n.isDefaultExport?"default":"named",f=n.node.parent.parent.moduleSpecifier;if(f&&e.ts.isStringLiteral(f)){let C=t?.getSymbolAtLocation(f);if(C&&C.declarations&&C.declarations.length>0){let p=C.declarations[0];(!e.ts.isSourceFile(p)||e.ts.isSourceFile(p)&&p.fileName.includes("node_modules"))&&(s=f.text)}}o.push({cmpInfo:{id:await $(e,r,d,s),displayFilePath:k(e,r),name:l,inputs:[],exportName:d,exportType:m,importName:u.name||Ue(e,r),filePath:r,relFilePath:i,importPath:s||a,externalImportPath:s,dependencies:u.deps},node:u})}return o}if(e.ts.isExportDeclaration(n.node)&&n.node.exportClause===void 0){let s=n.node.moduleSpecifier;if(s&&e.ts.isStringLiteral(s)){let u=await Ui(e,t,r,s);o.push(...u)}return o}return o}function Le(e,t,r){if(!r)return null;if(e.ts.isArrowFunction(r))return Nt(e,r.body)?{name:"",fnNode:r,deps:dt(e,t,r)}:null;if(e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r))return Nt(e,r.body)?{name:r.name?.text||"",fnNode:r,deps:dt(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:Le(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)||!He(o.text))return null;let a=t.getTypeAtLocation(o).getCallSignatures();if(a.length>0&&a[0].getParameters().length>0)return{name:"",fnNode:o,deps:dt(e,t,o)}}if(e.ts.isExportSpecifier(r)){let n=r.name;return{name:n.text||"",fnNode:n,deps:dt(e,t,n)}}if(e.ts.isExpressionStatement(r)){let n=r.expression;if(e.ts.isAsExpression(n)&&e.ts.isIdentifier(n.type)&&n.type.text==="default")return Le(e,t,n.expression)}if(e.ts.isVariableStatement(r)){for(let n of r.declarationList.declarations)if(n.initializer&&e.ts.isAsExpression(n.initializer)){let o=n.initializer;if(e.ts.isIdentifier(o.type)&&o.type.text==="default"){let i=Le(e,t,o.expression);if(i&&e.ts.isIdentifier(n.name))return{name:n.name.text,fnNode:i.fnNode,deps:i.deps}}}}return null}async function or(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(bt(e,Mi,i.fileName)||a===e.reactConfigPath||a===e.registryPath||a===e.builderComponentPath)return;let s=await _e(e,o,a,i);r.push(...s)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Mi=new Set(["node_modules","dist"]);async function Ui(e,t,r,n){let o=[],i=n.text;if(!t)return o;try{let a=t.getSymbolAtLocation(n);if(!a)return o;let s=t.getExportsOfModule(a);for(let u of s){let l=u.valueDeclaration||u.declarations?.[0];if(!l)continue;let d=u.name;if(!He(d)&&d!=="default"||!ir(e,t,l))continue;let m=Le(e,t,l);if(m){let c=u.name,f=c==="default"?"default":"named",C=K(c),p=c==="default"?Ue(e,r):c;o.push({cmpInfo:{id:await $(e,r,c,i),displayFilePath:k(e,r),name:C,inputs:[],exportName:c,exportType:f,importName:p,filePath:r,relFilePath:e.relative(e.getRootDir(),r),importPath:i,externalImportPath:i,dependencies:m.deps},node:m})}}}catch(a){console.error(`Error processing module ${i}:`,a)}return o}function ir(e,t,r){if(e.ts.isInterfaceDeclaration(r)||e.ts.isTypeAliasDeclaration(r))return!1;if(e.ts.isExportSpecifier(r)){let n=t.getSymbolAtLocation(r.name);if(n){let i=t.getAliasedSymbol(n).declarations?.[0];if(i)return ir(e,t,i)}return!1}if(e.ts.isFunctionDeclaration(r)||e.ts.isArrowFunction(r)||e.ts.isFunctionExpression(r)){let n=t.getSignatureFromDeclaration(r);if(n){let o=t.getReturnTypeOfSignature(n);return nr(o,t)}}return e.ts.isClassDeclaration(r)?r.heritageClauses?.some(o=>o.types.some(i=>i.expression.getText()==="React.Component"||i.expression.getText()==="Component"))??!1:e.ts.isVariableDeclaration(r)?t.getTypeAtLocation(r).getCallSignatures().some(i=>nr(t.getReturnTypeOfSignature(i),t)):!1}function nr(e,t){let r=t.typeToString(e);return r==="JSX.Element"||r==="Element"||r.includes("ReactElement")||r.includes("React.ReactElement")||r.includes("ReactNode")}async function ar(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&&zi.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 u=await _e(e,o,s,i);r.push(...u)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var zi=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 xe(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 u=a.moduleSpecifier.text;if(!u.startsWith(".")&&!u.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,[...tn(e,r),...tn(e,n),...tn(e,o),...i])}function ae(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,12 +28,12 @@ ${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 _n(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 le(e,t){return t.sort((r,n)=>{if(e.ts.isObjectLiteralExpression(r)&&e.ts.isObjectLiteralExpression(n)){let o=kn(e,r),i=kn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())}return 1})}function kn(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 jn(e){let t=await e.readFile(e.registryPath);return t?mi(e,t):{components:[],sourceFile:v(e,"")}}async function mi(e,t){let r=v(e,t);return e.sdkVersion===D.gen2?fi(e,r):ui(e,r)}async function ui(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 l=i.arguments;if(l.length<2)continue;let d=l[1];if(!e.ts.isObjectLiteralExpression(d))continue;let u=l[0];if(e.ts.isCallExpression(u)){let c=e.ts.isIdentifier(u.expression)&&u.expression.text;if(c==="withChildren"){let x=jt(e,u.arguments[0]);if(e.ts.isCallExpression(x)){let f=await Lt(e,n,x,d,!0);f&&r.push(f)}else{let f=x;if(e.ts.isIdentifier(f)){let g=await _t(e,t,n,f,d,!0);g&&r.push(g)}}continue}if(c==="dynamic"){let x=await Lt(e,n,u,d,!1);x&&r.push(x);continue}let m=jt(e,u.arguments[0]);if(e.ts.isCallExpression(m)&&e.ts.isIdentifier(m.expression)&&m.expression.text==="dynamic"){let x=await Lt(e,n,m,d,!1);x&&r.push(x);continue}if(e.ts.isIdentifier(m)){let x=await _t(e,t,n,m,d,!1);x&&r.push(x);continue}continue}if(e.ts.isIdentifier(u)){let c=await _t(e,t,n,u,d,!1);c&&r.push(c);continue}}return{sourceFile:t,components:J(r)}}function jt(e,t){return e.ts.isCallExpression(t)?(e.ts.isIdentifier(t.expression)&&t.expression.text)==="dynamic"?t:jt(e,t.arguments[0]):t}async function Lt(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 p=s.body;if(e.ts.isCallExpression(p)){if(p.expression.kind!==e.ts.SyntaxKind.ImportKeyword||p.arguments.length!==1)return null;let d=p.arguments[0];if(!e.ts.isStringLiteral(d))return null;let u=d.text,c=await $e(e,u);i.filePath=c,i.relFilePath=e.relative(e.getRootDir(),i.filePath),await e.exists(c)?i.importPath=L(e,i.filePath):(i.externalImportPath=u,i.importPath=i.externalImportPath),i.name=Y(e,i.filePath),i.importName="default",i.exportName="default",i.exportType="default"}else if(e.ts.isPropertyAccessExpression(p)){let l=p.expression;if(!e.ts.isParenthesizedExpression(l))return null;let d=l.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 m=u.arguments[0];if(!e.ts.isStringLiteral(m)||!e.ts.isIdentifier(p.name))return null;let x=m.text,f=await $e(e,x);i.filePath=f,i.relFilePath=e.relative(e.getRootDir(),i.filePath),await e.exists(f)?i.importPath=L(e,i.filePath):(i.externalImportPath=x,i.importPath=i.externalImportPath),i.name=j(p.name.text),i.importName=p.name.text,i.exportName=p.name.text,i.exportType="named"}else return null;return i=Q(e,i,n),i.displayFilePath=A(e,i.filePath),i.filePath&&i.exportName&&(i.id=await _(e,i.filePath,i.exportName,i.externalImportPath)),i}async function _t(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(l=>e.ts.isImportDeclaration(l)),p=s.find(l=>l.importClause&&l.importClause.name?.text===n.text);if(p){let l=p.moduleSpecifier;if(!e.ts.isStringLiteral(l))return null;let d=await $e(e,l.text);a.filePath=d,a.relFilePath=e.relative(e.getRootDir(),a.filePath),await e.exists(d)?a.importPath=L(e,a.filePath):(a.externalImportPath=l.text,a.importPath=a.externalImportPath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let l=s.find(c=>!c.importClause||!c.importClause.namedBindings||!e.ts.isNamedImports(c.importClause.namedBindings)?!1:c.importClause.namedBindings.elements.some(m=>m.name.text===n.text));if(!l)return null;let d=l.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;let u=await $e(e,d.text);a.filePath=u,a.relFilePath=e.relative(e.getRootDir(),a.filePath),await e.exists(u)?a.importPath=L(e,a.filePath):(a.externalImportPath=d.text,a.importPath=a.externalImportPath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=Q(e,a,o),a.displayFilePath=A(e,a.filePath),a.filePath&&a.exportName&&(a.id=await _(e,a.filePath,a.exportName,a.externalImportPath)),a}function $e(e,t){return He(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 l=0;l<i.length;l++){let d=i[l];if(e.ts.isImportDeclaration(d)){o=l;continue}if(!e.ts.isExpressionStatement(d))continue;let u=d.expression;if(!e.ts.isCallExpression(u))continue;let c=u.expression;if(!e.ts.isPropertyAccessExpression(c))continue;let m=c.expression;if(!e.ts.isIdentifier(m)||m.text!=="builder")continue;if(c.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(ie)),s=r?e.ts.factory.createNonNullExpression(a):a,p=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,p),e.ts.factory.updateSourceFile(t,i)}async function fi(e,t){let r=[],n=V(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Bt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:J(r)}}async function Bt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};_e(e,r)&&(n.acceptsChildren=!0);for(let i of r.properties){if(!e.ts.isPropertyAssignment(i)||!e.ts.isIdentifier(i.name))continue;if(I(e,i)==="component"){let s,{initializer:p}=i;if(e.ts.isCallExpression(p)&&(e.ts.isIdentifier(p.expression)&&p.expression.text)==="dynamic"){let m=p.arguments;if(m.length===0)return null;let x=m[0];if(!e.ts.isArrowFunction(x))return null;let f=x.body;if(e.ts.isCallExpression(f)){if(f.expression.kind!==e.ts.SyntaxKind.ImportKeyword||f.arguments.length!==1)return null;let h=f.arguments[0];if(!e.ts.isStringLiteral(h))return null;let C=h.text,P=await $e(e,C);n.filePath=P,n.relFilePath=e.relative(e.getRootDir(),n.filePath),await e.exists(P)?n.importPath=L(e,n.filePath):(n.externalImportPath=C,n.importPath=n.externalImportPath),n.name=Y(e,n.filePath),n.importName="default",n.exportName="default",n.exportType="default"}else if(e.ts.isPropertyAccessExpression(f)){let g=f.expression;if(!e.ts.isParenthesizedExpression(g))return null;let h=g.expression;if(!e.ts.isAwaitExpression(h))return null;let C=h.expression;if(!e.ts.isCallExpression(C)||C.expression.kind!==e.ts.SyntaxKind.ImportKeyword||C.arguments.length!==1)return null;let b=C.arguments[0];if(!e.ts.isStringLiteral(b)||!e.ts.isIdentifier(f.name))return null;let y=b.text,S=await $e(e,y);n.filePath=S,n.relFilePath=e.relative(e.getRootDir(),n.filePath),await e.exists(S)?n.importPath=L(e,n.filePath):(n.externalImportPath=y,n.importPath=n.externalImportPath),n.name=j(f.name.text),n.importName=f.name.text,n.exportName=f.name.text,n.exportType="named"}else return null;return n=Q(e,n,r),n.displayFilePath=A(e,n.filePath),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName,n.externalImportPath)),n}if(e.ts.isIdentifier(p)&&(s=p.text),!s)continue;n.name===""&&(n.name=j(s)),n.importName=s;let l=await ae(e,e.registryPath,t,s);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,await e.exists(l.filePath)?n.importPath=L(e,l.filePath):(n.externalImportPath=l.importPath,n.importPath=n.externalImportPath),n.importPath=L(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let d=t.statements.filter(c=>e.ts.isImportDeclaration(c)),u=d.find(c=>c.importClause&&c.importClause.name?.text===s);if(u){let c=u.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;n.exportName="default"}else{let c=d.find(x=>!x.importClause||!x.importClause.namedBindings||!e.ts.isNamedImports(x.importClause.namedBindings)?!1:x.importClause.namedBindings.elements.some(f=>f.name.text===s));if(!c)return null;let m=c.moduleSpecifier;if(!e.ts.isStringLiteral(m))return null;n.exportName=s}continue}}return n=Q(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName,n.externalImportPath)),n}function ce(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 p=[...s.elements];for(let l=p.length-1;l>=0;l--){let d=p[l];if(e.ts.isImportSpecifier(d)){let u=d.name;if(u&&e.ts.isIdentifier(u)){let c=u.text;Vn(e,t,c)||p.splice(l,1)}}}if(p.length===0)a=!0;else if(s.elements.length!==p.length){let l=e.ts.factory.updateImportClause(i.importClause,!1,i.importClause.name,e.ts.factory.createNamedImports(p)),d=e.ts.factory.updateImportDeclaration(i,void 0,l,i.moduleSpecifier,void 0);r[o]=d,n=!0}}else if(i.importClause.name&&e.ts.isIdentifier(i.importClause.name)){let p=i.importClause.name.text;Vn(e,t,p)||(a=!0)}a&&(r.splice(o,1),n=!0)}}return n?e.ts.factory.updateSourceFile(t,r):t}function Vn(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 me(e,t,r,n,o,i,a){let s=null,p=null,l=null,d=-1;t=W(t),r=W(r);let u=t.find(m=>m.id===e),c=r.find(m=>m.id===e);if(n)c||(s={...W(u),inputs:W(u.inputs).map(m=>(m.isRegistered=!0,m))},d=r.length,r.push(s));else if(typeof c?.nodeIndex=="number"&&c.nodeIndex>-1){if(o)d=c.nodeIndex,p=W(c),r=r.filter(m=>m.id!==e);else if(i!=null)di(c,i),d=c.nodeIndex,l=c;else if(a!=null){let m=c.inputs.find(x=>x.name===a.name);m&&(a.registerInput===!1?m.isRegistered=!1:(gi(m,a),m.isRegistered=!0),l=c,d=c.nodeIndex)}}return{addCmpToRegistry:s,removeCmpFromRegistry:p,updateRegisteredCmp:l,nodeIndex:d,components:te(t,r)}}function te(e,t){let r=J([...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(At),n.inputs.sort((a,s)=>a.name.toLowerCase().localeCompare(s.name.toLowerCase()));let o=t.find(a=>a.id===n.id);o&&(o.acceptsChildren=Nt(n));let i=e.find(a=>a.id===n.id&&a.externalImportPath);i&&(n.filePath=i.filePath,n.relFilePath=i.relFilePath)}),r}function di(e,t){q(t.name)?e.name=t.name:t.name===null&&(e.name=e.importName),q(t.description)?e.description=t.description:t.description===null&&delete e.description,q(t.image)?e.image=t.image:t.image===null&&delete e.image}function gi(e,t){q(t.type)&&(e.type=t.type),q(t.friendlyName)?e.friendlyName=t.friendlyName:t.friendlyName===null&&delete e.friendlyName,q(t.defaultValue)||Je(t.defaultValue)||ke(t.defaultValue)?e.defaultValue=t.defaultValue:t.defaultValue===null&&delete e.defaultValue,q(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 we(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),p=e.extname(a).toLowerCase();if(p===".tsx"||p===".jsx"||p===".ts"||p===".js"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await M(e,[...t])}function ue(e,t,r){return Be(e,t,r.variableName)?t:xi(e,t,r)}function xi(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),p=e.ts.factory.createVariableStatement([s],a),l=[...t.statements,p];return e.ts.factory.updateSourceFile(t,l)}async function fe(e,t,r,n,o,i,a,s){let p=await we(e),[l,d,u,c]=await Promise.all([Fn(e,p),jn(e),Vt(e),qe(e)]),m=l.map(P=>P.cmpInfo),x=d.components,f={components:te(m,x),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:se(m),publicApiKey:c.envValue??void 0,devToolsVersion:e.version};if(s)return f.components=await Ve(e,f.components),f;let g=!1,h=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let P=C.map(S=>{let N=l.find(B=>B.cmpInfo.id===S);if(!N)throw new Error(`Component ${S} not found`);return N}),b=Array.from(new Set(P.map(S=>S.cmpInfo.filePath))),y=await M(e,b);for(let S of P){let N=f.components.find(T=>T.id===S.cmpInfo.id),B=await Ke(e,S,y);ee(N,B);let k=m.findIndex(T=>T.id===S.cmpInfo.id);m[k].inputs=B;let E=me(S.cmpInfo.id,m,x,r,n,o,i);if(e.sdkVersion===D.gen2){let{elements:T,elmIndex:U,statementIndex:X,statement:$,variableDeclaration:F}=await Si(e,h,S);if(E.addCmpToRegistry)T.push(Ci(e,E.addCmpToRegistry)),g=!0;else if(E.removeCmpFromRegistry)T.splice(U,1),g=!0;else if(E.updateRegisteredCmp){let z=K(e,T[U],E.updateRegisteredCmp);T[U]=e.ts.factory.updateObjectLiteralExpression(z,[$n(e,E.updateRegisteredCmp),...z.properties.slice(1)]),g=!0}if(g&&a){let z=[...h.statements];z[X]=e.ts.factory.updateVariableStatement($,$.modifiers,e.ts.factory.updateVariableDeclarationList($.declarationList,[e.ts.factory.updateVariableDeclaration(F,F.name,F.exclamationToken,F.type,e.ts.factory.createArrayLiteralExpression(le(e,T)))])),h=e.ts.factory.updateSourceFile(h,z),h=Kn(e,E,h),h=w(e,h,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-react",isTypeOnly:!0}),h=ue(e,h,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),f.components=E.components,x=E.components.filter(Ie=>Ie.isRegistered)}}else{let T=[...h.statements];E.addCmpToRegistry?(T.push(Dn(e,E.addCmpToRegistry)),g=!0):E.removeCmpFromRegistry?(T.splice(E.nodeIndex,1),g=!0):E.updateRegisteredCmp&&(T[E.nodeIndex]=Ft(e,T[E.nodeIndex],E.updateRegisteredCmp),g=!0),g&&a&&(h=e.ts.factory.updateSourceFile(h,T),h=w(e,h,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),h=Bn(e,h,u),h=Kn(e,E,h),N?.acceptsChildren&&(h=w(e,h,{namedImports:["withChildren"],importPath:"@builder.io/react"})),f.components=E.components,x=E.components.filter(U=>U.isRegistered))}}}if(g&&a){h=ce(e,h),h=pe(e,h),e.appDir&&(h=_n(e,h));let P=O(e,h);P=H(P),e.appDir&&(P=Ln(P)),P=await e.formatCode(e.registryPath,P),await e.writeFile(e.registryPath,P)}return f}function $n(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.appDir?e.ts.factory.createPropertyAssignment("component",r):e.ts.factory.createPropertyAssignment("component",Pi(e,t))}function hi(e){return e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())}function Ci(e,t){return K(e,e.ts.factory.createObjectLiteralExpression([$n(e,t),...t.acceptsChildren?[hi(e)]:[]],!0),t)}async function Si(e,t,r){let n=V(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 Bt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}function Kn(e,t,r){if(e.appDir){let n=t.addCmpToRegistry||t.updateRegisteredCmp;if(n){let o=n.externalImportPath?n.externalImportPath:R(e,e.registryPath,n.filePath);n.exportType==="default"?r=w(e,r,{defaultImport:n.importName,importPath:o}):n.exportType==="named"&&(r=w(e,r,{namedImports:[n.importName],importPath:o}))}}else r=w(e,r,{defaultImport:"dynamic",importPath:"next/dynamic"});return r}function Pi(e,t){let r=t.externalImportPath?t.externalImportPath:R(e,e.registryPath,t.filePath),n=t.exportName!=="default",o;n?o=e.ts.factory.createPropertyAccessExpression(e.ts.factory.createAwaitExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("import"),void 0,[e.ts.factory.createStringLiteral(r)])),e.ts.factory.createIdentifier(t.exportName)):o=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("import"),void 0,[e.ts.factory.createStringLiteral(r)]);let i=e.ts.factory.createArrowFunction(n?[e.ts.factory.createModifier(e.ts.SyntaxKind.AsyncKeyword)]:void 0,void 0,[],void 0,e.ts.factory.createToken(e.ts.SyntaxKind.EqualsGreaterThanToken),o);return e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("dynamic"),void 0,[i])}async function Mn(e){let t=[],r=await wi(e,t);return await Qn(e,t,r),e.appDir?(e.debug(`ensure builder setup for next.js app ${e.appDir}`),await Ti(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure builder setup for next.js pages ${e.pagesDir}`),await Di(e,e.pagesDir,t)),t}async function Un(e){let t=[];return await Qn(e,t),e.appDir?(e.debug(`ensure figma-imports setup for next.js app ${e.appDir}`),await Ei(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure figma-imports setup for next.js pages ${e.pagesDir}`),await yi(e,e.pagesDir,t)),t}async function Ei(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,qn({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}if(!await e.exists(e.builderComponentPath)){let i=await e.formatCode(e.builderComponentPath,zn(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}async function Ti(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,qn({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,zn(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}function zn(e){let t=e.typescriptEnabled;return e.sdkVersion===D.gen2?`
|
|
31
|
+
`}function tn(e,t){return t.sort((r,n)=>{let o=sr(e,r),i=sr(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())})}function sr(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 lr(e){return typeof e=="string"&&!e.includes("'use client'")&&!e.includes(`"use client"'`)&&(e=`"use client"
|
|
32
|
+
${e}`),e}function pr(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 he(e,t){return t.sort((r,n)=>{if(e.ts.isObjectLiteralExpression(r)&&e.ts.isObjectLiteralExpression(n)){let o=ur(e,r),i=ur(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())}return 1})}function ur(e,t){let r=t.properties.find(n=>R(e,n)==="name");return r&&e.ts.isPropertyAssignment(r)&&e.ts.isStringLiteral(r.initializer)?r.initializer.text:"zzzz"}async function cr(e){let t=await e.readFile(e.registryPath);return t?qi(e,t):{components:[],sourceFile:I(e,"")}}async function qi(e,t){let r=I(e,t);return e.sdkVersion===w.gen2?Qi(e,r):Ji(e,r)}async function Ji(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 l=i.arguments;if(l.length<2)continue;let d=l[1];if(!e.ts.isObjectLiteralExpression(d))continue;let m=l[0];if(e.ts.isCallExpression(m)){let c=e.ts.isIdentifier(m.expression)&&m.expression.text;if(c==="withChildren"){let C=on(e,m.arguments[0]);if(e.ts.isCallExpression(C)){let p=await nn(e,n,C,d,!0);p&&r.push(p)}else{let p=C;if(e.ts.isIdentifier(p)){let D=await rn(e,t,n,p,d,!0);D&&r.push(D)}}continue}if(c==="dynamic"){let C=await nn(e,n,m,d,!1);C&&r.push(C);continue}let f=on(e,m.arguments[0]);if(e.ts.isCallExpression(f)&&e.ts.isIdentifier(f.expression)&&f.expression.text==="dynamic"){let C=await nn(e,n,f,d,!1);C&&r.push(C);continue}if(e.ts.isIdentifier(f)){let C=await rn(e,t,n,f,d,!1);C&&r.push(C);continue}continue}if(e.ts.isIdentifier(m)){let c=await rn(e,t,n,m,d,!1);c&&r.push(c);continue}}return{sourceFile:t,components:te(r)}}function on(e,t){return e.ts.isCallExpression(t)?(e.ts.isIdentifier(t.expression)&&t.expression.text)==="dynamic"?t:on(e,t.arguments[0]):t}async function nn(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 u=s.body;if(e.ts.isCallExpression(u)){if(u.expression.kind!==e.ts.SyntaxKind.ImportKeyword||u.arguments.length!==1)return null;let d=u.arguments[0];if(!e.ts.isStringLiteral(d))return null;let m=d.text,c=await rt(e,m);i.filePath=c,i.relFilePath=e.relative(e.getRootDir(),i.filePath),await e.exists(c)?i.importPath=V(e,i.filePath):(i.externalImportPath=m,i.importPath=i.externalImportPath),i.name=oe(e,i.filePath),i.importName="default",i.exportName="default",i.exportType="default"}else if(e.ts.isPropertyAccessExpression(u)){let l=u.expression;if(!e.ts.isParenthesizedExpression(l))return null;let d=l.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 f=m.arguments[0];if(!e.ts.isStringLiteral(f)||!e.ts.isIdentifier(u.name))return null;let C=f.text,p=await rt(e,C);i.filePath=p,i.relFilePath=e.relative(e.getRootDir(),i.filePath),await e.exists(p)?i.importPath=V(e,i.filePath):(i.externalImportPath=C,i.importPath=i.externalImportPath),i.name=K(u.name.text),i.importName=u.name.text,i.exportName=u.name.text,i.exportType="named"}else return null;return i=ne(e,i,n),i.displayFilePath=k(e,i.filePath),i.filePath&&i.exportName&&(i.id=await $(e,i.filePath,i.exportName,i.externalImportPath)),i}async function rn(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(l=>e.ts.isImportDeclaration(l)),u=s.find(l=>l.importClause&&l.importClause.name?.text===n.text);if(u){let l=u.moduleSpecifier;if(!e.ts.isStringLiteral(l))return null;let d=await rt(e,l.text);a.filePath=d,a.relFilePath=e.relative(e.getRootDir(),a.filePath),await e.exists(d)?a.importPath=V(e,a.filePath):(a.externalImportPath=l.text,a.importPath=a.externalImportPath),a.name=oe(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let l=s.find(c=>!c.importClause||!c.importClause.namedBindings||!e.ts.isNamedImports(c.importClause.namedBindings)?!1:c.importClause.namedBindings.elements.some(f=>f.name.text===n.text));if(!l)return null;let d=l.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;let m=await rt(e,d.text);a.filePath=m,a.relFilePath=e.relative(e.getRootDir(),a.filePath),await e.exists(m)?a.importPath=V(e,a.filePath):(a.externalImportPath=d.text,a.importPath=a.externalImportPath),a.name=K(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=ne(e,a,o),a.displayFilePath=k(e,a.filePath),a.filePath&&a.exportName&&(a.id=await $(e,a.filePath,a.exportName,a.externalImportPath)),a}function rt(e,t){return ft(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}function mr(e,t,r){let n=!1,o=0,i=[...t.statements];for(let l=0;l<i.length;l++){let d=i[l];if(e.ts.isImportDeclaration(d)){o=l;continue}if(!e.ts.isExpressionStatement(d))continue;let m=d.expression;if(!e.ts.isCallExpression(m))continue;let c=m.expression;if(!e.ts.isPropertyAccessExpression(c))continue;let f=c.expression;if(!e.ts.isIdentifier(f)||f.text!=="builder")continue;if(c.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(ge)),s=r?e.ts.factory.createNonNullExpression(a):a,u=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,u),e.ts.factory.updateSourceFile(t,i)}async function Qi(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await an(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:te(r)}}async function an(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};Xe(e,r)&&(n.acceptsChildren=!0);for(let i of r.properties){if(!e.ts.isPropertyAssignment(i)||!e.ts.isIdentifier(i.name))continue;if(R(e,i)==="component"){let s,{initializer:u}=i;if(e.ts.isCallExpression(u)&&(e.ts.isIdentifier(u.expression)&&u.expression.text)==="dynamic"){let f=u.arguments;if(f.length===0)return null;let C=f[0];if(!e.ts.isArrowFunction(C))return null;let p=C.body;if(e.ts.isCallExpression(p)){if(p.expression.kind!==e.ts.SyntaxKind.ImportKeyword||p.arguments.length!==1)return null;let g=p.arguments[0];if(!e.ts.isStringLiteral(g))return null;let x=g.text,S=await rt(e,x);n.filePath=S,n.relFilePath=e.relative(e.getRootDir(),n.filePath),await e.exists(S)?n.importPath=V(e,n.filePath):(n.externalImportPath=x,n.importPath=n.externalImportPath),n.name=oe(e,n.filePath),n.importName="default",n.exportName="default",n.exportType="default"}else if(e.ts.isPropertyAccessExpression(p)){let D=p.expression;if(!e.ts.isParenthesizedExpression(D))return null;let g=D.expression;if(!e.ts.isAwaitExpression(g))return null;let x=g.expression;if(!e.ts.isCallExpression(x)||x.expression.kind!==e.ts.SyntaxKind.ImportKeyword||x.arguments.length!==1)return null;let P=x.arguments[0];if(!e.ts.isStringLiteral(P)||!e.ts.isIdentifier(p.name))return null;let A=P.text,E=await rt(e,A);n.filePath=E,n.relFilePath=e.relative(e.getRootDir(),n.filePath),await e.exists(E)?n.importPath=V(e,n.filePath):(n.externalImportPath=A,n.importPath=n.externalImportPath),n.name=K(p.name.text),n.importName=p.name.text,n.exportName=p.name.text,n.exportType="named"}else return null;return n=ne(e,n,r),n.displayFilePath=k(e,n.filePath),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}if(e.ts.isIdentifier(u)&&(s=u.text),!s)continue;n.name===""&&(n.name=K(s)),n.importName=s;let l=await De(e,e.registryPath,t,s);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,await e.exists(l.filePath)?n.importPath=V(e,l.filePath):(n.externalImportPath=l.importPath,n.importPath=n.externalImportPath),n.importPath=V(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let d=t.statements.filter(c=>e.ts.isImportDeclaration(c)),m=d.find(c=>c.importClause&&c.importClause.name?.text===s);if(m){let c=m.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;n.exportName="default"}else{let c=d.find(C=>!C.importClause||!C.importClause.namedBindings||!e.ts.isNamedImports(C.importClause.namedBindings)?!1:C.importClause.namedBindings.elements.some(p=>p.name.text===s));if(!c)return null;let f=c.moduleSpecifier;if(!e.ts.isStringLiteral(f))return null;n.exportName=s}continue}}return n=ne(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}function Ee(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 u=[...s.elements];for(let l=u.length-1;l>=0;l--){let d=u[l];if(e.ts.isImportSpecifier(d)){let m=d.name;if(m&&e.ts.isIdentifier(m)){let c=m.text;fr(e,t,c)||u.splice(l,1)}}}if(u.length===0)a=!0;else if(s.elements.length!==u.length){let l=e.ts.factory.updateImportClause(i.importClause,!1,i.importClause.name,e.ts.factory.createNamedImports(u)),d=e.ts.factory.updateImportDeclaration(i,void 0,l,i.moduleSpecifier,void 0);r[o]=d,n=!0}}else if(i.importClause.name&&e.ts.isIdentifier(i.importClause.name)){let u=i.importClause.name.text;fr(e,t,u)||(a=!0)}a&&(r.splice(o,1),n=!0)}}return n?e.ts.factory.updateSourceFile(t,r):t}function fr(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 Se(e,t,r,n,o,i,a){let s=null,u=null,l=null,d=-1;t=re(t),r=re(r);let m=t.find(f=>f.id===e),c=r.find(f=>f.id===e);if(n)c||(s={...re(m),inputs:re(m.inputs).map(f=>(f.isRegistered=!0,f))},d=r.length,r.push(s));else if(typeof c?.nodeIndex=="number"&&c.nodeIndex>-1){if(o)d=c.nodeIndex,u=re(c),r=r.filter(f=>f.id!==e);else if(i!=null)Wi(c,i),d=c.nodeIndex,l=c;else if(a!=null){let f=c.inputs.find(C=>C.name===a.name);f&&(a.registerInput===!1?f.isRegistered=!1:(Yi(f,a),f.isRegistered=!0),l=c,d=c.nodeIndex)}}return{addCmpToRegistry:s,removeCmpFromRegistry:u,updateRegisteredCmp:l,nodeIndex:d,components:pe(t,r)}}function pe(e,t){let r=te([...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(Xt),n.inputs.sort((a,s)=>a.name.toLowerCase().localeCompare(s.name.toLowerCase()));let o=t.find(a=>a.id===n.id);o&&(o.acceptsChildren=Ht(n));let i=e.find(a=>a.id===n.id&&a.externalImportPath);i&&(n.filePath=i.filePath,n.relFilePath=i.relFilePath)}),r}function Wi(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 Yi(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)||ut(t.defaultValue)||Ge(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 je(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),u=e.extname(a).toLowerCase();if(u===".tsx"||u===".jsx"||u===".ts"||u===".js"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await G(e,[...t])}function Ae(e,t,r){return et(e,t,r.variableName)?t:Gi(e,t,r)}function Gi(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),u=e.ts.factory.createVariableStatement([s],a),l=[...t.statements,u];return e.ts.factory.updateSourceFile(t,l)}async function Fe(e,t,r,n,o,i,a,s){let u=await je(e),[l,d,m,c]=await Promise.all([ar(e,u),cr(e),sn(e),st(e)]),f=l.map(S=>S.cmpInfo),C=d.components,p={components:pe(f,C),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Ce(f),publicApiKey:c.envValue??void 0,devToolsVersion:e.version};if(s)return p.components=await tt(e,p.components),p;let D=!1,g=d.sourceFile,x=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(x.length>0){let S=x.map(E=>{let O=l.find(z=>z.cmpInfo.id===E);if(!O)throw new Error(`Component ${E} not found`);return O}),P=Array.from(new Set(S.map(E=>E.cmpInfo.filePath))),A=await G(e,P);for(let E of S){let O=p.components.find(y=>y.id===E.cmpInfo.id),z=await nt(e,E,A);le(O,z);let j=f.findIndex(y=>y.id===E.cmpInfo.id);f[j].inputs=z;let F=Se(E.cmpInfo.id,f,C,r,n,o,i);if(e.sdkVersion===w.gen2){let{elements:y,elmIndex:H,statementIndex:se,statement:Y,variableDeclaration:L}=await Zi(e,g,E);if(F.addCmpToRegistry)y.push(Xi(e,F.addCmpToRegistry)),D=!0;else if(F.removeCmpFromRegistry)y.splice(H,1),D=!0;else if(F.updateRegisteredCmp){let X=Q(e,y[H],F.updateRegisteredCmp);y[H]=e.ts.factory.updateObjectLiteralExpression(X,[gr(e,F.updateRegisteredCmp),...X.properties.slice(1)]),D=!0}if(D&&a){let X=[...g.statements];X[se]=e.ts.factory.updateVariableStatement(Y,Y.modifiers,e.ts.factory.updateVariableDeclarationList(Y.declarationList,[e.ts.factory.updateVariableDeclaration(L,L.name,L.exclamationToken,L.type,e.ts.factory.createArrayLiteralExpression(he(e,y)))])),g=e.ts.factory.updateSourceFile(g,X),g=dr(e,F,g),g=v(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-react",isTypeOnly:!0}),g=Ae(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),p.components=F.components,C=F.components.filter(Ke=>Ke.isRegistered)}}else{let y=[...g.statements];F.addCmpToRegistry?(y.push(Hn(e,F.addCmpToRegistry)),D=!0):F.removeCmpFromRegistry?(y.splice(F.nodeIndex,1),D=!0):F.updateRegisteredCmp&&(y[F.nodeIndex]=Zt(e,y[F.nodeIndex],F.updateRegisteredCmp),D=!0),D&&a&&(g=e.ts.factory.updateSourceFile(g,y),g=v(e,g,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),g=mr(e,g,m),g=dr(e,F,g),O?.acceptsChildren&&(g=v(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),p.components=F.components,C=F.components.filter(H=>H.isRegistered))}}}if(D&&a){g=Ee(e,g),g=xe(e,g),e.appDir&&(g=pr(e,g));let S=_(e,g);S=ae(S),e.appDir&&(S=lr(S)),S=await e.formatCode(e.registryPath,S),await e.writeFile(e.registryPath,S)}return p}function gr(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.appDir?e.ts.factory.createPropertyAssignment("component",r):e.ts.factory.createPropertyAssignment("component",ea(e,t))}function Hi(e){return e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())}function Xi(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([gr(e,t),...t.acceptsChildren?[Hi(e)]:[]],!0),t)}async function Zi(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await an(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}function dr(e,t,r){if(e.appDir){let n=t.addCmpToRegistry||t.updateRegisteredCmp;if(n){let o=n.externalImportPath?n.externalImportPath:B(e,e.registryPath,n.filePath);n.exportType==="default"?r=v(e,r,{defaultImport:n.importName,importPath:o}):n.exportType==="named"&&(r=v(e,r,{namedImports:[n.importName],importPath:o}))}}else r=v(e,r,{defaultImport:"dynamic",importPath:"next/dynamic"});return r}function ea(e,t){let r=t.externalImportPath?t.externalImportPath:B(e,e.registryPath,t.filePath),n=t.exportName!=="default",o;n?o=e.ts.factory.createPropertyAccessExpression(e.ts.factory.createAwaitExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("import"),void 0,[e.ts.factory.createStringLiteral(r)])),e.ts.factory.createIdentifier(t.exportName)):o=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("import"),void 0,[e.ts.factory.createStringLiteral(r)]);let i=e.ts.factory.createArrowFunction(n?[e.ts.factory.createModifier(e.ts.SyntaxKind.AsyncKeyword)]:void 0,void 0,[],void 0,e.ts.factory.createToken(e.ts.SyntaxKind.EqualsGreaterThanToken),o);return e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("dynamic"),void 0,[i])}async function Dr(e){let t=[],r=await ia(e,t);return await Sr(e,t,r),e.appDir?(e.debug(`ensure builder setup for next.js app ${e.appDir}`),await na(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure builder setup for next.js pages ${e.pagesDir}`),await ra(e,e.pagesDir,t)),t}async function Cr(e){let t=[];return await Sr(e,t),e.appDir?(e.debug(`ensure figma-imports setup for next.js app ${e.appDir}`),await ta(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure figma-imports setup for next.js pages ${e.pagesDir}`),await oa(e,e.pagesDir,t)),t}async function ta(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,hr({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}if(!await e.exists(e.builderComponentPath)){let i=await e.formatCode(e.builderComponentPath,xr(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}async function na(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,hr({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,xr(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}function xr(e){let t=e.typescriptEnabled;return e.sdkVersion===w.gen2?`
|
|
33
33
|
"use client";
|
|
34
34
|
import { ${t?"BuilderContent, ":""} isPreviewing, Content } from "@builder.io/sdk-react";
|
|
35
35
|
import DefaultErrorPage from "next/error";
|
|
36
|
-
import { CUSTOM_COMPONENTS } from ${JSON.stringify(
|
|
36
|
+
import { CUSTOM_COMPONENTS } from ${JSON.stringify(B(e,e.builderComponentPath,e.registryPath))};
|
|
37
37
|
${t?`
|
|
38
38
|
interface BuilderPageProps {
|
|
39
39
|
content: BuilderContent | null;
|
|
@@ -41,7 +41,7 @@ interface BuilderPageProps {
|
|
|
41
41
|
}`:""}
|
|
42
42
|
|
|
43
43
|
// Builder Public API Key set in .env file
|
|
44
|
-
const builderApiKey = process.env.${
|
|
44
|
+
const builderApiKey = process.env.${ge}${t?"!":""};
|
|
45
45
|
|
|
46
46
|
export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":""}) {
|
|
47
47
|
// Call the isPreviewing hook to determine if
|
|
@@ -67,12 +67,12 @@ ${t?'import { ComponentProps } from "react";':""}
|
|
|
67
67
|
import { BuilderComponent, useIsPreviewing } from "@builder.io/react";
|
|
68
68
|
import { ${t?"BuilderContent, ":""}builder } from '@builder.io/sdk';
|
|
69
69
|
import DefaultErrorPage from "next/error";
|
|
70
|
-
import ${JSON.stringify(
|
|
70
|
+
import ${JSON.stringify(B(e,e.builderComponentPath,e.registryPath))};
|
|
71
71
|
${t?`
|
|
72
72
|
type BuilderPageProps = ComponentProps<typeof BuilderComponent>;`:""}
|
|
73
73
|
|
|
74
74
|
// Builder Public API Key set in .env file
|
|
75
|
-
builder.init(process.env.${
|
|
75
|
+
builder.init(process.env.${ge}${t?"!":""});
|
|
76
76
|
|
|
77
77
|
export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":""}) {
|
|
78
78
|
// Call the useIsPreviewing hook to determine if
|
|
@@ -88,12 +88,12 @@ export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":
|
|
|
88
88
|
// DefaultErrorPage with a 404.
|
|
89
89
|
return <DefaultErrorPage statusCode={404} />;
|
|
90
90
|
}
|
|
91
|
-
`.trimStart()}function
|
|
91
|
+
`.trimStart()}function hr({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=B(e,t,e.builderComponentPath);return e.sdkVersion===w.gen2?`
|
|
92
92
|
import { fetchOneEntry } from "@builder.io/sdk-react";
|
|
93
93
|
import { RenderBuilderContent } from ${JSON.stringify(o)};
|
|
94
94
|
|
|
95
95
|
// Builder Public API Key set in .env file
|
|
96
|
-
const PUBLIC_API_KEY = process.env.${
|
|
96
|
+
const PUBLIC_API_KEY = process.env.${ge}${n?"!":""};
|
|
97
97
|
|
|
98
98
|
${n?`
|
|
99
99
|
interface PageProps {
|
|
@@ -127,7 +127,7 @@ import { builder } from "@builder.io/sdk";
|
|
|
127
127
|
import { RenderBuilderContent } from ${JSON.stringify(o)};
|
|
128
128
|
|
|
129
129
|
// Builder Public API Key set in .env file
|
|
130
|
-
builder.init(process.env.${
|
|
130
|
+
builder.init(process.env.${ge}${n?"!":""});
|
|
131
131
|
${n?`
|
|
132
132
|
interface PageProps {
|
|
133
133
|
params: {
|
|
@@ -156,7 +156,7 @@ export default async function Page(props${n?": PageProps":""}) {
|
|
|
156
156
|
</>
|
|
157
157
|
);
|
|
158
158
|
}
|
|
159
|
-
`.trimStart()}async function
|
|
159
|
+
`.trimStart()}async function ra(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,Er({sys:e,routePath:o,modelName:"page"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function oa(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,Er({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}function Er({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled;return e.sdkVersion===w.gen2?`
|
|
160
160
|
import React from "react";
|
|
161
161
|
import { useRouter } from "next/router";
|
|
162
162
|
${n?'import type { BuilderContent } from "@builder.io/sdk-react";':""}
|
|
@@ -169,9 +169,9 @@ import {
|
|
|
169
169
|
import DefaultErrorPage from "next/error";
|
|
170
170
|
import Head from "next/head";
|
|
171
171
|
${n?'import { GetStaticProps } from "next";':""}
|
|
172
|
-
import { CUSTOM_COMPONENTS } from ${JSON.stringify(
|
|
172
|
+
import { CUSTOM_COMPONENTS } from ${JSON.stringify(B(e,e.builderComponentPath,e.registryPath))};
|
|
173
173
|
|
|
174
|
-
const BUILDER_API_KEY = process.env.${
|
|
174
|
+
const BUILDER_API_KEY = process.env.${ge}${n?"!":""};
|
|
175
175
|
|
|
176
176
|
// Define a function that fetches the Builder
|
|
177
177
|
// content for a given page
|
|
@@ -252,9 +252,9 @@ import DefaultErrorPage from "next/error";
|
|
|
252
252
|
import Head from "next/head";${n?`
|
|
253
253
|
import { BuilderContent } from "@builder.io/sdk";`:""}${n?`
|
|
254
254
|
import { GetStaticProps } from "next";`:""}
|
|
255
|
-
import ${JSON.stringify(
|
|
255
|
+
import ${JSON.stringify(B(e,t,e.registryPath))};
|
|
256
256
|
|
|
257
|
-
builder.init(process.env.${
|
|
257
|
+
builder.init(process.env.${ge}${n?"!":""});
|
|
258
258
|
|
|
259
259
|
// Define a function that fetches the Builder
|
|
260
260
|
// content for a given page
|
|
@@ -318,7 +318,7 @@ export default function Page({ page }${n?": { page: BuilderContent | null }":""}
|
|
|
318
318
|
</>
|
|
319
319
|
);
|
|
320
320
|
}
|
|
321
|
-
`.trimStart()}async function
|
|
321
|
+
`.trimStart()}async function ia(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:u}=aa(e);if(!await e.exists(i)){let l=await e.formatCode(i,s);await e.writeFile(i,l),t.push({filePath:i,modifiedType:"create"})}return await e.exists(a)||(await e.writeFile(a,u),t.push({filePath:a,modifiedType:"create"})),i}function aa(e){let t=e.typescriptEnabled,r=`
|
|
322
322
|
"use client"
|
|
323
323
|
import React, { useState } from "react";
|
|
324
324
|
import styles from "./styles.module.css";
|
|
@@ -381,18 +381,18 @@ export default Counter;
|
|
|
381
381
|
font-size: 42px;
|
|
382
382
|
text-align: center;
|
|
383
383
|
}
|
|
384
|
-
`.trimStart();return{component:r,styles:n}}async function
|
|
384
|
+
`.trimStart();return{component:r,styles:n}}async function Sr(e,t,r){if(!await e.exists(e.registryPath)){if(e.sdkVersion===w.gen2){let i=sa(e);await e.writeFile(e.registryPath,i)}else await e.writeFile(e.registryPath,"");t.push({filePath:e.registryPath,modifiedType:"create"})}if(!r)return;let o=(await Fe(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===r);o&&await Fe(e,o.id,!0,!1,null,null,!0,!1)}function sa(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-react";
|
|
385
385
|
|
|
386
386
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
387
387
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
388
388
|
];
|
|
389
|
-
`}async function
|
|
389
|
+
`}async function ot(e){let t=await wt(e,e.getRootDir());if(t&&typeof t=="object"){let r=new Set(Object.keys({...t.dependencies,...t.devDependencies}));if(r.has("@builder.io/sdk-react"))return w.gen2;if(r.has("@builder.io/react"))return w.gen1}return null}async function Ar(e){let t=await ua(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>Dr(t),ensureFigmaImportPage:()=>Cr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Fe(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Fe(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Fe(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Fe(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Fe(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Fe(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>st(t),setPublicApiKey:n=>zn(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===w.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>fe(t),setCache:n=>de(t,n)}}async function ua(e){let t=e.getRootDir(),r=e.join(t,"src"),n=await la(e),o=await sn(e),i=`builder-registry.${o?"ts":"js"}`,a={},s={...e,addExternalPackage:u=>{a[e.join(t,u,"index.ts")]=`export * from "${u}";`},readFileSync:u=>a[u]??e.readFileSync(u),existsSync:u=>!!a[u]||e.existsSync(u),readdirSync:u=>{let l=e.readdirSync(u);return u===t?[...l,...Object.keys(a).map(d=>d.slice(t.length+1))]:l},readdir:async u=>{let l=await e.readdir(u);return u===t?[...l,...Object.keys(a).map(d=>d.slice(t.length+1))]:l},appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o};if(e.sdkVersion?s.sdkVersion=e.sdkVersion:s.sdkVersion=await ot(s),await e.exists(r)){s.srcDir=r,s.componentsDir=e.join(r,"components");let u=e.join(r,"app");await e.exists(u)&&(s.appDir=u);let l=e.join(r,"pages");await e.exists(l)&&(s.pagesDir=l),s.registryPath=e.join(r,i)}else s.componentsDir=e.join(t,"components"),s.registryPath=e.join(t,i);if(s.builderComponentPath=e.join(s.componentsDir,`builder.${o?"tsx":"jsx"}`),!s.appDir){let u=e.join(t,"app");await e.exists(u)&&(s.appDir=u)}if(!s.pagesDir){let u=e.join(t,"pages");await e.exists(u)&&(s.pagesDir=u)}if(!s.appDir&&!s.pagesDir)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return s}function sn(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function la(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 gt(e){return await Oe(e,[".env"],Pr)}async function Fr(e,t){pa(t);let r=await gt(e),n=await ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function pa(e){typeof process<"u"&&(process.env[Pr]=e)}var Pr="PUBLIC_BUILDER_API_KEY";function yr(e,t,r){if(r.length===0)return e;let n=e.split(`
|
|
390
390
|
`),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(`
|
|
391
|
-
`)}async function
|
|
391
|
+
`)}async function Tr(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(".")||fa.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let u=await Rt(e,o,s,i);r.push(...u)})),r}async function br(e,t){if(e.extname(t).toLowerCase()===".tsx"){let n=await e.readFile(t);if(n)return ca(e,t,n)}return null}function ca(e,t,r){let n=I(e,r);return Rt(e,null,t,n)}async function Rt(e,t,r,n){r=e.normalize(r);let o=[],i=ie(e,n);return await Promise.all(i.map(async a=>{let s=await ma(e,t,r,a);s&&o.push(s)})),o}async function ma(e,t,r,n){let o=e.relative(e.getRootDir(),r),i=V(e,r);if(e.ts.isVariableStatement(n.node))for(let a of n.node.declarationList.declarations){let s=wr(e,a.initializer);if(s&&e.ts.isIdentifier(a.name)){let u=a.name.text;return{cmpInfo:{id:await $(e,r,u),displayFilePath:k(e,r),name:K(u),inputs:[],exportName:n.isDefaultExport?"default":u,exportType:n.isDefaultExport?"default":"named",importName:u,filePath:r,relFilePath:o,importPath:i},node:s}}}else if(e.ts.isCallExpression(n.node)){let a=wr(e,n.node);if(a)return{cmpInfo:{id:await $(e,r,"default"),displayFilePath:k(e,r),name:oe(e,r),inputs:[],exportName:"default",exportType:"default",importName:Ue(e,r),filePath:r,relFilePath:o,importPath:i},node:a}}return null}function wr(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 fa=new Set(["node_modules","layout.tsx","404.tsx","router-head.tsx"]);async function vr(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 Ze(e,t.cmpInfo.filePath,null);if(!(await Rt(e,i,t.cmpInfo.filePath,o)).find(u=>u.cmpInfo.id===t.cmpInfo.id))throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return ze(e,i,r)}return[]}async function Ir(e){return un(e)}async function un(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,da),t.push({filePath:e.registryPath,modifiedType:"create"})),t}var da=`import type { RegisteredComponent } from "@builder.io/sdk-qwik";
|
|
392
392
|
|
|
393
393
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
394
394
|
];
|
|
395
|
-
`;async function rr(e){await Kt(e);let t=await e.readFile(e.registryPath);return t?Li(e,t):{components:[],sourceFile:v(e,"")}}async function Li(e,t){let r=v(e,t);return _i(e,r)}async function _i(e,t){let r=[],n=V(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:J(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"&&e.ts.isIdentifier(o.initializer)){let a=o.initializer.text;n.name===""&&(n.name=j(a)),n.importName=a;let s=await ae(e,e.registryPath,t,a);if(!s)continue;n.filePath=s.filePath,n.relFilePath=s.relFilePath,n.importPath=L(e,s.filePath),n.displayFilePath=s.displayFilePath,n.exportType=s.exportType;let p=await er(e,s.filePath);if(p&&p.length>0)if(p.length===1)n.exportName=p[0].cmpInfo.exportName;else{let l=p.find(d=>d.cmpInfo.exportName===a);l&&(n.exportName=l.cmpInfo.exportName)}continue}}return n=Q(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}async function or(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),p=e.extname(a).toLowerCase();if(p===".tsx"||p===".ts"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await M(e,[...t])}async function Ae(e,t,r,n,o,i,a,s){let p=await or(e),[l,d,u]=await Promise.all([Zn(e,p),rr(e),Ze(e)]),c=l.map(f=>f.cmpInfo),m=d.components,x={components:te(c,m),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:se(c),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x;if(t!=null){let f=l.find(E=>E.cmpInfo.id===t);if(!f)throw new Error(`Component ${t} not found`);let g=d.sourceFile,h=x.components.find(E=>E.id===t),C=await tr(e,f);ee(h,C),t=Array.isArray(t)?t[0]:t;let P=me(t,c,m,r,n,o,i),{elements:b,elmIndex:y,statementIndex:S,statement:N,variableDeclaration:B}=await Bi(e,g,f),k=!1;if(P.addCmpToRegistry?(b.push(ji(e,P.addCmpToRegistry)),k=!0):P.removeCmpFromRegistry?(b.splice(y,1),k=!0):P.updateRegisteredCmp&&(b[y]=K(e,b[y],P.updateRegisteredCmp),k=!0),k&&a){let E=[...g.statements];E[S]=e.ts.factory.updateVariableStatement(N,N.modifiers,e.ts.factory.updateVariableDeclarationList(N.declarationList,[e.ts.factory.updateVariableDeclaration(B,B.name,B.exclamationToken,B.type,e.ts.factory.createArrayLiteralExpression(le(e,b)))])),g=e.ts.factory.updateSourceFile(g,E),h.exportType==="named"?g=w(e,g,{namedImports:[h.importName],importPath:R(e,e.registryPath,h.filePath)}):g=w(e,g,{defaultImport:h.importName,importPath:R(e,e.registryPath,h.filePath)}),g=w(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-qwik",isTypeOnly:!0}),g=ue(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),g=ce(e,g),g=pe(e,g);let T=O(e,g);T=H(T),T=Hn(T,Vi,"CUSTOM_COMPONENTS"),T=await e.formatCode(e.registryPath,T),await e.writeFile(e.registryPath,T)}x.components=P.components}return x}function ji(e,t){return K(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName))],!0),t)}async function Bi(e,t,r){let n=V(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}}var Vi=["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 ir(e){let t=await Ki(e);return{builderPageOptions:async()=>({templateContentId:"dc70f1d979ad416d8fd357137eb9ddfb",pathname:"/",title:"Builder + Qwik Demo Page"}),ensureBuilderSetup:()=>nr(t),ensureFigmaImportPage:async()=>[],getRegistryPath:()=>t.registryPath,getRegistry:n=>Ae(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:async n=>{},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:()=>Ze(t),setPublicApiKey:n=>Yn(t,n.publicApiKey),getDependencies:n=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-qwik"}],getDevRunCommand:()=>"dev",getCache:()=>re(t),setCache:n=>oe(t,n)}}async function Ki(e){let t=await ze(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 et(e){return await Ee(e,[".env"],tt)}async function ar(e,t){let r=await et(e),n=await Te(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var tt="PUBLIC_BUILDER_KEY";var $i=new Set(["dist","node_modules"]);async function sr(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"||ct(e,$i,a.fileName)||Mi.has(s)||s.includes("$."))return;let p=e.normalize(a.fileName);if(p===e.remixConfigPath||p===e.registryPath||p===i)return;let l=await ye(e,o,p,a);r.push(...l)})),r}var Mi=new Set(["root.tsx","root.ts","root.jsx","root.js","_index.tsx","_index.jsx","_index.ts","_index.js"]);async function pr(e){await gt(e);let t=await e.readFile(e.registryPath);return t?Ui(e,t):{components:[],sourceFile:v(e,"")}}async function Ui(e,t){let r=v(e,t);return zi(e,r)}async function zi(e,t){let r=[],n=V(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Mt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:J(r)}}async function Mt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};e.sdkVersion===D.gen2&&_e(e,r)&&(n.acceptsChildren=!0);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 d=s.arguments[0];e.ts.isIdentifier(d)&&(a=d.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let p=await ae(e,e.registryPath,t,a);if(!p)continue;if(n.filePath=p.filePath,n.relFilePath=p.relFilePath,await e.exists(p.filePath)?n.importPath=L(e,p.filePath):(n.externalImportPath=p.importPath,n.importPath=n.externalImportPath),n.displayFilePath=p.displayFilePath,n.exportType=p.exportType,n.externalImportPath)n.exportName=a;else{let l=await Rn(e,p.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(u=>u.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}}continue}}return n=Q(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName,n.externalImportPath)),n}async function de(e,t,r,n,o,i,a,s){let p=await we(e),[l,d,u]=await Promise.all([sr(e,p),pr(e),et(e)]),c=l.map(C=>C.cmpInfo),m=d.components,x={components:te(c,m),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:se(c),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await Ve(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(y=>{let S=l.find(N=>N.cmpInfo.id===y);if(!S)throw new Error(`Component ${y} not found`);return S}),P=Array.from(new Set(C.map(y=>y.cmpInfo.filePath))),b=await M(e,P);for(let y of C){let S=x.components.find(F=>F.id===y.cmpInfo.id),N=await Ke(e,y,b);ee(S,N);let B=c.findIndex(F=>F.id===y.cmpInfo.id);c[B].inputs=N;let k=me(y.cmpInfo.id,c,m,r,n,o,i),{elements:E,elmIndex:T,statementIndex:U,statement:X,variableDeclaration:$}=await Ji(e,g,y);if(k.addCmpToRegistry)E.push(qi(e,k.addCmpToRegistry)),f=!0;else if(k.removeCmpFromRegistry)E.splice(T,1),f=!0;else if(k.updateRegisteredCmp){let F=K(e,E[T],k.updateRegisteredCmp);E[T]=e.ts.factory.updateObjectLiteralExpression(F,[lr(e,k.updateRegisteredCmp),...F.properties.slice(1)]),f=!0}if(f&&a){let F=[...g.statements];F[U]=e.ts.factory.updateVariableStatement(X,X.modifiers,e.ts.factory.updateVariableDeclarationList(X.declarationList,[e.ts.factory.updateVariableDeclaration($,$.name,$.exclamationToken,$.type,e.ts.factory.createArrayLiteralExpression(le(e,E)))])),g=e.ts.factory.updateSourceFile(g,F),S.exportType==="named"?g=w(e,g,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:R(e,e.registryPath,S.filePath)}):g=w(e,g,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:R(e,e.registryPath,S.filePath)});let z=e.sdkVersion===D.gen2?"@builder.io/sdk-react":"@builder.io/react";g=w(e,g,{namedImports:["RegisteredComponent"],importPath:z,isTypeOnly:!0}),S.acceptsChildren&&e.sdkVersion!==D.gen2&&(g=w(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),g=ue(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=k.components,m=k.components.filter(Ie=>Ie.isRegistered)}}}if(f&&a){g=ce(e,g),g=pe(e,g);let C=O(e,g);C=H(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function lr(e,t){if(e.sdkVersion===D.gen2)return e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName));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 qi(e,t){return K(e,e.ts.factory.createObjectLiteralExpression([lr(e,t),...t.acceptsChildren&&e.sdkVersion===D.gen2?[e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())]:[]],!0),t)}async function Ji(e,t,r){let n=V(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 Mt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function cr(e){let t=[],r=await Yi(e,t);return t.push(...await gt(e)),await Hi(e,r),await Wi(e,t),t}async function mr(e){let t=[];return t.push(...await gt(e)),await Qi(e,t),t}async function Qi(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,ur({sys:e,routePath:n,modelName:"figma-imports"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}async function Wi(e,t){let r=`$.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureAppRoute, hasLocaleParam"),r=`($locale).${r}`),e.sdkVersion===D.gen2&&(r=`($slug)._index.${e.typescriptEnabled?"tsx":"jsx"}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureAppRoute, hasRoute: ${o}`);let i=await e.formatCode(n,ur({sys:e,routePath:n,modelName:"page"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}function ur({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=R(e,t,e.registryPath),i="",a="";n&&(i="import type { LoaderArgs } from '@remix-run/server-runtime';",a=": LoaderArgs");let s=`process.env.${tt}`;return e.getFrameworks().some(p=>p.name==="@shopify/remix-oxygen")&&(s=`context.env.${tt}`),n&&(s+="!"),e.sdkVersion===D.gen2?`
|
|
395
|
+
`;async function Nr(e){await un(e);let t=await e.readFile(e.registryPath);return t?ga(e,t):{components:[],sourceFile:I(e,"")}}async function ga(e,t){let r=I(e,t);return Da(e,r)}async function Da(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await ln(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:te(r)}}async function ln(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(R(e,o)==="component"&&e.ts.isIdentifier(o.initializer)){let a=o.initializer.text;n.name===""&&(n.name=K(a)),n.importName=a;let s=await De(e,e.registryPath,t,a);if(!s)continue;n.filePath=s.filePath,n.relFilePath=s.relFilePath,n.importPath=V(e,s.filePath),n.displayFilePath=s.displayFilePath,n.exportType=s.exportType;let u=await br(e,s.filePath);if(u&&u.length>0)if(u.length===1)n.exportName=u[0].cmpInfo.exportName;else{let l=u.find(d=>d.cmpInfo.exportName===a);l&&(n.exportName=l.cmpInfo.exportName)}continue}}return n=ne(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName)),n}async function Rr(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),u=e.extname(a).toLowerCase();if(u===".tsx"||u===".ts"){t.add(s);return}(await e.stat(s)).isDirectory()&&await r(s)}))};return await r(e.getRootDir()),await G(e,[...t])}async function qe(e,t,r,n,o,i,a,s){let u=await Rr(e),[l,d,m]=await Promise.all([Tr(e,u),Nr(e),gt(e)]),c=l.map(p=>p.cmpInfo),f=d.components,C={components:pe(c,f),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Ce(c),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return C;if(t!=null){let p=l.find(F=>F.cmpInfo.id===t);if(!p)throw new Error(`Component ${t} not found`);let D=d.sourceFile,g=C.components.find(F=>F.id===t),x=await vr(e,p);le(g,x),t=Array.isArray(t)?t[0]:t;let S=Se(t,c,f,r,n,o,i),{elements:P,elmIndex:A,statementIndex:E,statement:O,variableDeclaration:z}=await xa(e,D,p),j=!1;if(S.addCmpToRegistry?(P.push(Ca(e,S.addCmpToRegistry)),j=!0):S.removeCmpFromRegistry?(P.splice(A,1),j=!0):S.updateRegisteredCmp&&(P[A]=Q(e,P[A],S.updateRegisteredCmp),j=!0),j&&a){let F=[...D.statements];F[E]=e.ts.factory.updateVariableStatement(O,O.modifiers,e.ts.factory.updateVariableDeclarationList(O.declarationList,[e.ts.factory.updateVariableDeclaration(z,z.name,z.exclamationToken,z.type,e.ts.factory.createArrayLiteralExpression(he(e,P)))])),D=e.ts.factory.updateSourceFile(D,F),g.exportType==="named"?D=v(e,D,{namedImports:[g.importName],importPath:B(e,e.registryPath,g.filePath)}):D=v(e,D,{defaultImport:g.importName,importPath:B(e,e.registryPath,g.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-qwik",isTypeOnly:!0}),D=Ae(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),D=Ee(e,D),D=xe(e,D);let y=_(e,D);y=ae(y),y=yr(y,ha,"CUSTOM_COMPONENTS"),y=await e.formatCode(e.registryPath,y),await e.writeFile(e.registryPath,y)}C.components=S.components}return C}function Ca(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName))],!0),t)}async function xa(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await ln(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}var ha=["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 Br(e){let t=await Ea(e);return{builderPageOptions:async()=>({templateContentId:"dc70f1d979ad416d8fd357137eb9ddfb",pathname:"/",title:"Builder + Qwik Demo Page"}),ensureBuilderSetup:()=>Ir(t),ensureFigmaImportPage:async()=>[],getRegistryPath:()=>t.registryPath,getRegistry:n=>qe(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:async n=>{},loadComponent:async n=>{let o=await qe(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>qe(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>qe(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>qe(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>qe(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>gt(t),setPublicApiKey:n=>Fr(t,n.publicApiKey),getDependencies:n=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-qwik"}],getDevRunCommand:()=>"dev",getCache:()=>fe(t),setCache:n=>de(t,n)}}async function Ea(e){let t=await at(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 Dt(e){return await Oe(e,[".env"],Ct)}async function Or(e,t){let r=await Dt(e),n=await ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var Ct="PUBLIC_BUILDER_KEY";var Sa=new Set(["dist","node_modules"]);async function kr(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"||bt(e,Sa,a.fileName)||Aa.has(s)||s.includes("$."))return;let u=e.normalize(a.fileName);if(u===e.remixConfigPath||u===e.registryPath||u===i)return;let l=await _e(e,o,u,a);r.push(...l)})),r}var Aa=new Set(["root.tsx","root.ts","root.jsx","root.js","_index.tsx","_index.jsx","_index.ts","_index.js"]);async function Lr(e){await Bt(e);let t=await e.readFile(e.registryPath);return t?Fa(e,t):{components:[],sourceFile:I(e,"")}}async function Fa(e,t){let r=I(e,t);return Pa(e,r)}async function Pa(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await pn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:te(r)}}async function pn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};e.sdkVersion===w.gen2&&Xe(e,r)&&(n.acceptsChildren=!0);for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){(e.ts.isIdentifier(s.expression)&&s.expression.text)==="withChildren"&&(n.acceptsChildren=!0);let d=s.arguments[0];e.ts.isIdentifier(d)&&(a=d.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await De(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let l=await rr(e,u.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(m=>m.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}}continue}}return n=ne(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function Pe(e,t,r,n,o,i,a,s){let u=await je(e),[l,d,m]=await Promise.all([kr(e,u),Lr(e),Dt(e)]),c=l.map(x=>x.cmpInfo),f=d.components,C={components:pe(c,f),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Ce(c),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await tt(e,C.components),C;let p=!1,D=d.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let E=l.find(O=>O.cmpInfo.id===A);if(!E)throw new Error(`Component ${A} not found`);return E}),S=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,S);for(let A of x){let E=C.components.find(L=>L.id===A.cmpInfo.id),O=await nt(e,A,P);le(E,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=Se(A.cmpInfo.id,c,f,r,n,o,i),{elements:F,elmIndex:y,statementIndex:H,statement:se,variableDeclaration:Y}=await wa(e,D,A);if(j.addCmpToRegistry)F.push(ya(e,j.addCmpToRegistry)),p=!0;else if(j.removeCmpFromRegistry)F.splice(y,1),p=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[y],j.updateRegisteredCmp);F[y]=e.ts.factory.updateObjectLiteralExpression(L,[_r(e,j.updateRegisteredCmp),...L.properties.slice(1)]),p=!0}if(p&&a){let L=[...D.statements];L[H]=e.ts.factory.updateVariableStatement(se,se.modifiers,e.ts.factory.updateVariableDeclarationList(se.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(he(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),E.exportType==="named"?D=v(e,D,{namedImports:[E.importName],importPath:E.externalImportPath?E.externalImportPath:B(e,e.registryPath,E.filePath)}):D=v(e,D,{defaultImport:E.importName,importPath:E.externalImportPath?E.externalImportPath:B(e,e.registryPath,E.filePath)});let X=e.sdkVersion===w.gen2?"@builder.io/sdk-react":"@builder.io/react";D=v(e,D,{namedImports:["RegisteredComponent"],importPath:X,isTypeOnly:!0}),E.acceptsChildren&&e.sdkVersion!==w.gen2&&(D=v(e,D,{namedImports:["withChildren"],importPath:"@builder.io/react"})),D=Ae(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,f=j.components.filter(Ke=>Ke.isRegistered)}}}if(p&&a){D=Ee(e,D),D=xe(e,D);let x=_(e,D);x=ae(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function _r(e,t){if(e.sdkVersion===w.gen2)return e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName));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 ya(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([_r(e,t),...t.acceptsChildren&&e.sdkVersion===w.gen2?[e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())]:[]],!0),t)}async function wa(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await pn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function jr(e){let t=[],r=await va(e,t);return t.push(...await Bt(e)),await Na(e,r),await ba(e,t),t}async function Vr(e){let t=[];return t.push(...await Bt(e)),await Ta(e,t),t}async function Ta(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,$r({sys:e,routePath:n,modelName:"figma-imports"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}async function ba(e,t){let r=`$.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureAppRoute, hasLocaleParam"),r=`($locale).${r}`),e.sdkVersion===w.gen2&&(r=`($slug)._index.${e.typescriptEnabled?"tsx":"jsx"}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureAppRoute, hasRoute: ${o}`);let i=await e.formatCode(n,$r({sys:e,routePath:n,modelName:"page"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}function $r({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.${Ct}`;return e.getFrameworks().some(u=>u.name==="@shopify/remix-oxygen")&&(s=`context.env.${Ct}`),n&&(s+="!"),e.sdkVersion===w.gen2?`
|
|
396
396
|
|
|
397
397
|
import {
|
|
398
398
|
Content,
|
|
@@ -498,11 +498,11 @@ export default function Page() {
|
|
|
498
498
|
${n?`
|
|
499
499
|
declare global {
|
|
500
500
|
interface Env {
|
|
501
|
-
${
|
|
501
|
+
${Ct}: string;
|
|
502
502
|
}
|
|
503
503
|
}
|
|
504
504
|
`:""}
|
|
505
|
-
`}async function
|
|
505
|
+
`}async function va(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:u}=Ia(e),l=await e.exists(i);if(e.debug(`remixEnsureCounterComponent, hasCounterCmp: ${l}`),!l){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,u),t.push({filePath:a,modifiedType:"create"})),i}function Ia(e){let t=e.typescriptEnabled,r=`
|
|
506
506
|
import { useState } from "react";
|
|
507
507
|
import styles from "./styles.module.css";
|
|
508
508
|
${t?`
|
|
@@ -565,17 +565,17 @@ export default Counter;
|
|
|
565
565
|
font-size: 42px;
|
|
566
566
|
text-align: center;
|
|
567
567
|
}
|
|
568
|
-
`.trimStart();return{component:r,styles:n}}async function
|
|
568
|
+
`.trimStart();return{component:r,styles:n}}async function Na(e,t){let n=(await Pe(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await Pe(e,n.id,!0,!1,null,null,!0,!1)}async function Bt(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,Ra(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}function Ra(e){let t=e.sdkVersion===w.gen2;return e.typescriptEnabled?`import type { RegisteredComponent } from ${t?'"@builder.io/sdk-react"':'"@builder.io/react"'};
|
|
569
569
|
|
|
570
570
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
571
571
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
572
572
|
];
|
|
573
|
-
`}async function
|
|
573
|
+
`}async function Kr(e){let t=await Ba(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:()=>jr(t),ensureFigmaImportPage:()=>Vr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>Pe(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},loadComponent:async n=>{let o=await Pe(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Pe(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Pe(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Pe(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Pe(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Dt(t),setPublicApiKey:n=>Or(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===w.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>fe(t),setCache:n=>de(t,n)}}async function Ba(e){let t=await La(e),r=e.getRootDir(),n=await _a(e),o=e.dirname(n),i=e.join(o,"components"),a=await Oa(e),s=`builder-registry.${a?"ts":"js"}`,u=e.join(o,s),l={},d={...e,registryPath:u,remixConfigPath:t,typescriptEnabled:a,appDir:o,componentsDir:i,routesDir:n,hasLocaleParam:await ka(e,n),addExternalPackage:m=>{l[e.join(r,m,"index.ts")]=`export * from "${m}";`},readFileSync:m=>l[m]??e.readFileSync(m),existsSync:m=>!!l[m]||e.existsSync(m),readdirSync:m=>{let c=e.readdirSync(m);return m===r?[...c,...Object.keys(l).map(f=>f.slice(r.length+1))]:c},readdir:async m=>{let c=await e.readdir(m);return m===r?[...c,...Object.keys(l).map(f=>f.slice(r.length+1))]:c}};return e.sdkVersion?d.sdkVersion=e.sdkVersion:d.sdkVersion=await ot(d),d}function Oa(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function ka(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function La(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 _a(e){let t=await at(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 xt(e){let t=[".env"],r=e.configType==="vite"?ht:Ot;return await Oe(e,t,r)}async function Mr(e,t){let r=await xt(e),n=await ke(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var ht="VITE_PUBLIC_BUILDER_KEY",Ot="YOUR_PUBLIC_BUILDER_KEY";function Ur(e,t){let r=`Builder.registerComponent(
|
|
574
574
|
`;r+=` ${t.importName},
|
|
575
575
|
`,r+=` {
|
|
576
576
|
name: "${t.name}",
|
|
577
577
|
}
|
|
578
|
-
`,r+=");";let n=
|
|
578
|
+
`,r+=");";let n=Tt(e,r);return cn(e,n,t)}function cn(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]=Q(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function zr(e){let t=await e.readFile(e.registryPath);return t?ja(e,t):{components:[],sourceFile:I(e,"")}}async function ja(e,t){let r=I(e,t);return e.sdkVersion===w.gen2?Ka(e,r):Va(e,r)}async function Va(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 l=i.arguments;if(l.length<2)continue;let d=l[1];if(!e.ts.isObjectLiteralExpression(d))continue;let m=l[0];if(e.ts.isIdentifier(m)){let c=await $a(e,t,n,m,d,!1);c&&r.push(c);continue}}return{sourceFile:t,components:te(r)}}async function $a(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(l=>e.ts.isImportDeclaration(l)),u=s.find(l=>l.importClause&&l.importClause.name?.text===n.text);if(u){let l=u.moduleSpecifier;if(!e.ts.isStringLiteral(l))return null;a.filePath=await mn(e,l.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=V(e,a.filePath),a.name=oe(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let l=s.find(c=>!c.importClause||!c.importClause.namedBindings||!e.ts.isNamedImports(c.importClause.namedBindings)?!1:c.importClause.namedBindings.elements.some(f=>f.name.text===n.text));if(!l)return null;let d=l.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;let m=await mn(e,d.text);a.filePath=await mn(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),await e.exists(m)?a.importPath=V(e,a.filePath):(a.externalImportPath=d.text,a.importPath=a.externalImportPath),a.name=K(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=ne(e,a,o),a.displayFilePath=k(e,a.filePath),a.filePath&&a.exportName&&(a.id=await $(e,a.filePath,a.exportName,a.externalImportPath)),a}function mn(e,t){return ft(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}async function Ka(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await fn(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:te(r)}}async function fn(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};Xe(e,r)&&(n.acceptsChildren=!0);for(let i of r.properties){if(!e.ts.isPropertyAssignment(i)||!e.ts.isIdentifier(i.name))continue;if(R(e,i)==="component"){let s,{initializer:u}=i;if(e.ts.isIdentifier(u)&&(s=u.text),!s)continue;n.name===""&&(n.name=K(s)),n.importName=s;let l=await De(e,e.registryPath,t,s);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,await e.exists(l.filePath)?n.importPath=V(e,l.filePath):(n.externalImportPath=l.importPath,n.importPath=n.externalImportPath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let d=t.statements.filter(c=>e.ts.isImportDeclaration(c)),m=d.find(c=>c.importClause&&c.importClause.name?.text===s);if(m){let c=m.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;n.exportName="default"}else{let c=d.find(C=>!C.importClause||!C.importClause.namedBindings||!e.ts.isNamedImports(C.importClause.namedBindings)?!1:C.importClause.namedBindings.elements.some(p=>p.name.text===s));if(!c)return null;let f=c.moduleSpecifier;if(!e.ts.isStringLiteral(f))return null;n.exportName=s}continue}}return n=ne(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function ye(e,t,r,n,o,i,a,s){let u=await je(e),[l,d,m,c]=await Promise.all([or(e,u),zr(e),dn(e),xt(e)]),f=l.map(S=>S.cmpInfo),C=d.components,p={components:pe(f,C),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Ce(f),publicApiKey:c.envValue??void 0,devToolsVersion:e.version};if(s)return p.components=await tt(e,p.components),p;let D=!1,g=d.sourceFile,x=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(x.length>0){let S=x.map(E=>{let O=l.find(z=>z.cmpInfo.id===E);if(!O)throw new Error(`Component ${E} not found`);return O}),P=Array.from(new Set(S.map(E=>E.cmpInfo.filePath))),A=await G(e,P);for(let E of S){let O=p.components.find(y=>y.id===E.cmpInfo.id),z=await nt(e,E,A);le(O,z);let j=f.findIndex(y=>y.id===E.cmpInfo.id);f[j].inputs=z;let F=Se(E.cmpInfo.id,f,C,r,n,o,i);if(e.sdkVersion===w.gen2){let{elements:y,elmIndex:H,statementIndex:se,statement:Y,variableDeclaration:L}=await Ma(e,g,E);if(F.addCmpToRegistry)y.push(Ua(e,F.addCmpToRegistry)),D=!0;else if(F.removeCmpFromRegistry)y.splice(H,1),D=!0;else if(F.updateRegisteredCmp){let X=Q(e,y[H],F.updateRegisteredCmp),Ke=e.ts.factory.createIdentifier(F.updateRegisteredCmp.importName);y[H]=e.ts.factory.updateObjectLiteralExpression(X,[e.ts.factory.createPropertyAssignment("component",Ke),...X.properties.slice(1)]),D=!0}if(D&&a){let X=[...g.statements];X[se]=e.ts.factory.updateVariableStatement(Y,Y.modifiers,e.ts.factory.updateVariableDeclarationList(Y.declarationList,[e.ts.factory.updateVariableDeclaration(L,L.name,L.exclamationToken,L.type,e.ts.factory.createArrayLiteralExpression(he(e,y)))])),g=e.ts.factory.updateSourceFile(g,X),g=qr(e,F,g),g=v(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-react",isTypeOnly:!0}),g=Ae(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),p.components=F.components,C=F.components.filter(Ke=>Ke.isRegistered)}}else{let y=[...g.statements];F.addCmpToRegistry?(y.push(Ur(e,F.addCmpToRegistry)),D=!0):F.removeCmpFromRegistry?(y.splice(F.nodeIndex,1),D=!0):F.updateRegisteredCmp&&(y[F.nodeIndex]=cn(e,y[F.nodeIndex],F.updateRegisteredCmp),D=!0),D&&a&&(g=e.ts.factory.updateSourceFile(g,y),g=v(e,g,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),g=qr(e,F,g),O?.acceptsChildren&&(g=v(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),p.components=F.components,C=F.components.filter(H=>H.isRegistered))}}}if(D&&a){g=Ee(e,g),g=xe(e,g);let S=_(e,g);S=ae(S),S=await e.formatCode(e.registryPath,S),await e.writeFile(e.registryPath,S)}return p}async function Ma(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await fn(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}function Ua(e,t){let r=e.ts.factory.createIdentifier(t.importName);return Q(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",r),...t.acceptsChildren?[e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())]:[]],!0),t)}function qr(e,t,r){let n=t.addCmpToRegistry||t.updateRegisteredCmp;if(n){let o=n.externalImportPath?n.externalImportPath:B(e,e.registryPath,n.filePath);n.exportType==="default"?r=v(e,r,{defaultImport:n.importName,importPath:o}):n.exportType==="named"&&(r=v(e,r,{namedImports:[n.importName],importPath:o}))}return r}async function Jr(e){let t=[],r=await za(e,t);if(await Yr(e,t,r),!await e.exists(e.builderComponentPath)){let n=await e.formatCode(e.builderComponentPath,Wr(e,e.builderComponentPath));await e.writeFile(e.builderComponentPath,n),t.push({filePath:e.builderComponentPath,modifiedType:"create"})}return t}async function Qr(e){let t=[];await Yr(e,t);let r=`figma-imports.${e.typescriptEnabled?"tsx":"jsx"}`,n=e.join(e.componentsDir,r);if(!await e.exists(n)){let o=await e.formatCode(n,Wr(e,n,"figma-imports"));await e.writeFile(n,o),t.push({filePath:n,modifiedType:"create"})}return t}function Wr(e,t,r="page"){let n=e.typescriptEnabled;return e.sdkVersion===w.gen2?`
|
|
579
579
|
import React from "react";
|
|
580
580
|
import {
|
|
581
581
|
Content,
|
|
@@ -584,10 +584,10 @@ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
|
584
584
|
isPreviewing,
|
|
585
585
|
${n?"type BuilderContent,":""}
|
|
586
586
|
} from "@builder.io/sdk-react";
|
|
587
|
-
import { CUSTOM_COMPONENTS } from ${JSON.stringify(
|
|
587
|
+
import { CUSTOM_COMPONENTS } from ${JSON.stringify(B(e,t,e.registryPath))};
|
|
588
588
|
|
|
589
589
|
// Builder Public API Key set in .env file
|
|
590
|
-
const BUILDER_API_KEY = ${e.configType==="vite"?`import.meta.env.${
|
|
590
|
+
const BUILDER_API_KEY = ${e.configType==="vite"?`import.meta.env.${ht};`:`${Ot};`}
|
|
591
591
|
const MODEL_NAME = "${r}";
|
|
592
592
|
|
|
593
593
|
export default function BuilderPage() {
|
|
@@ -637,10 +637,10 @@ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
|
637
637
|
`:`
|
|
638
638
|
import React from "react";
|
|
639
639
|
import { BuilderComponent, builder, useIsPreviewing } from "@builder.io/react";
|
|
640
|
-
import ${JSON.stringify(
|
|
640
|
+
import ${JSON.stringify(B(e,t,e.registryPath))};
|
|
641
641
|
|
|
642
642
|
// Builder Public API Key set in .env file
|
|
643
|
-
${e.configType==="vite"?`builder.init(import.meta.env.${
|
|
643
|
+
${e.configType==="vite"?`builder.init(import.meta.env.${ht}${n?"!":""})`:`builder.init("${Ot}")`}
|
|
644
644
|
|
|
645
645
|
export default function BuilderPage() {
|
|
646
646
|
const isPreviewingInBuilder = useIsPreviewing();
|
|
@@ -685,7 +685,7 @@ export default function BuilderPage() {
|
|
|
685
685
|
</>
|
|
686
686
|
);
|
|
687
687
|
}
|
|
688
|
-
`.trimStart()}async function
|
|
688
|
+
`.trimStart()}async function Yr(e,t,r){if(!await e.exists(e.registryPath)){if(e.sdkVersion===w.gen2){let i=Ja(e);await e.writeFile(e.registryPath,i)}else await e.writeFile(e.registryPath,"");t.push({filePath:e.registryPath,modifiedType:"create"})}if(!r)return;let o=(await ye(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===r);o&&await ye(e,o.id,!0,!1,null,null,!0,!1)}async function za(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:u}=qa(e);if(!await e.exists(i)){let l=await e.formatCode(i,s);await e.writeFile(i,l),t.push({filePath:i,modifiedType:"create"})}return await e.exists(a)||(await e.writeFile(a,u),t.push({filePath:a,modifiedType:"create"})),i}function qa(e){let t=e.typescriptEnabled,r=`
|
|
689
689
|
"use client"
|
|
690
690
|
import React, { useState } from "react";
|
|
691
691
|
import styles from "./styles.module.css";
|
|
@@ -748,31 +748,31 @@ export default Counter;
|
|
|
748
748
|
font-size: 42px;
|
|
749
749
|
text-align: center;
|
|
750
750
|
}
|
|
751
|
-
`.trimStart();return{component:r,styles:n}}function
|
|
751
|
+
`.trimStart();return{component:r,styles:n}}function Ja(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-react";
|
|
752
752
|
|
|
753
753
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
754
754
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
755
755
|
];
|
|
756
|
-
`}async function
|
|
756
|
+
`}async function Gr(e){let t=await Qa(e);return{builderPageOptions:async()=>({templateContentId:"2e36438034894a8abf279ea9e6d3596f",pathname:"/builder-demo",title:"Builder + React Demo Page"}),ensureBuilderSetup:()=>Jr(t),ensureFigmaImportPage:()=>Qr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>ye(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),addExternalPackage:n=>{t.addExternalPackage(n)},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:()=>xt(t),setPublicApiKey:n=>Mr(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===w.gen2?[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-react"}]:[{name:"@builder.io/dev-tools"},{name:"@builder.io/react"},{name:"@builder.io/sdk"}],getDevRunCommand:()=>"dev",getCache:()=>fe(t),setCache:n=>de(t,n)}}async function Qa(e){let t=await Wa(e),r=e.getRootDir(),n=e.join(r,"src"),o=await dn(e),i=`builder-registry.${o?"ts":"js"}`,a={},s={...e,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",reactConfigPath:t,typescriptEnabled:o,configType:"",addExternalPackage:u=>{a[e.join(r,u,"index.ts")]=`export * from "${u}";`},readFileSync:u=>a[u]??e.readFileSync(u),existsSync:u=>!!a[u]||e.existsSync(u),readdirSync:u=>{let l=e.readdirSync(u);return u===r?[...l,...Object.keys(a).map(d=>d.slice(r.length+1))]:l},readdir:async u=>{let l=await e.readdir(u);return u===r?[...l,...Object.keys(a).map(d=>d.slice(r.length+1))]:l}};return e.sdkVersion?s.sdkVersion=e.sdkVersion:s.sdkVersion=await ot(s),t.includes("webpack.config")&&(s.configType="webpack"),t.includes("vite.config")&&(s.configType="vite"),await e.exists(n)?(s.srcDir=n,s.componentsDir=e.join(n,"components"),s.registryPath=e.join(n,i),s.builderComponentPath=e.join(s.srcDir,`builder-page.${o?"tsx":"jsx"}`)):(s.componentsDir=e.join(r,"components"),s.registryPath=e.join(r,i),s.builderComponentPath=e.join(r,`builder-page.${o?"tsx":"jsx"}`)),s}function dn(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Wa(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}if(e.ignoreMissingConfig)return"";throw new Error(`Could not find React config file. Searched for ${t.join(", ")} in "${e.getRootDir()}".`)}async function Et(e){return await Ya(e,["environment.ts"],kt)}async function Hr(e,t){let r=await Et(e),n=await Za(e,r.file,r.envKey,t);return{...r,modifiedType:n}}async function Ya(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 Ga(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 Ga(e,t){let r=await e.readFile(t);return r?Ha(e,r):""}function Ha(e,t){let r=I(e,t),n="",i=et(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(u=>{e.ts.isPropertyAssignment(u)&&e.ts.isIdentifier(u.name)&&u.name.text===kt&&e.ts.isStringLiteral(u.initializer)&&(n=u.initializer.text)})}return n}async function Xa(e,t,r,n){let o=I(e,t),a=et(e,o,"environment");if(a&&a.statement.declarationList.declarations.length>0){let s=a.statement.declarationList,u=s.declarations[0],l=u.initializer;if(l&&e.ts.isObjectLiteralExpression(l)){let d=e.ts.factory.createPropertyAssignment(e.ts.factory.createIdentifier(r),e.ts.factory.createStringLiteral(n)),m=e.ts.factory.createNodeArray([...l.properties,d]),c=e.ts.factory.updateObjectLiteralExpression(l,m),f=e.ts.factory.updateVariableDeclaration(u,u.name,u.exclamationToken,u.type,c),C=e.ts.factory.updateVariableDeclarationList(s,[f]);return e.ts.factory.updateVariableStatement(a.statement,a.statement.modifiers,C)}return null}return null}async function Za(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 Xa(e,o,r,n);if(i){let a=_(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=`
|
|
757
757
|
// https://www.builder.io/c/docs/using-your-api-key
|
|
758
758
|
export const environment = {
|
|
759
759
|
production: false,
|
|
760
760
|
builderApiKey: "${n}",
|
|
761
761
|
};
|
|
762
|
-
`.trimStart(),a=await e.formatCode(t,i);return await e.writeFile(t,a),"create"}return null}var ht="builderApiKey";async function yr(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(Ta(e,i.fileName)||a.startsWith(".")||a==="node_modules"||Pa.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let p=await Ct(e,o,s,i);r.push(...p)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var Pa=new Set([]),Ea=new Set(["node_modules"]);function Ta(e,t){for(let r of Ea)if(e.dirname(t).includes(r))return!0;return!1}async function wr(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 Da(e,t,n)}return null}function Da(e,t,r){let n=v(e,r);return Ct(e,null,t,n)}async function Ct(e,t,r,n){let o=[];r=e.normalize(r);let i=n.statements.filter(p=>e.ts.isClassDeclaration(p)&&Ia(e,p)),a=await wa(e,t,r,n),s=Ra(e,n);return await Promise.all(i.map(async p=>{let l=await ya(e,t,r,p,s);o.push(...l)})),o.push(...a),o}async function vr(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await je(e,t.cmpInfo.filePath,r),a=(await Ct(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 Ir(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await M(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 l=(await Ct(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);l&&(a.inputs=Ne(e,o,l.node.fnNode))}}return a}))}async function ya(e,t,r,n,o){let i=[],a=e.relative(e.getRootDir(),r),s=L(e,r),p=n.name?.text;if(!p)return i;let l=!1;n.modifiers&&(l=n.modifiers.some(m=>m.kind===e.ts.SyntaxKind.DefaultKeyword));let d=l?"default":p,u=l?"default":"named",c=[];return n.members.forEach(m=>{if(e.ts.isPropertyDeclaration(m)){let x=e.ts.getDecorators(m);x&&x.forEach(f=>{if(va(e,f)&&e.ts.isIdentifier(m.name)){let g="any";if(m.type&&t){let C=t.getTypeAtLocation(m.type);g=t.typeToString(C)}else g=ba(e,m.type);let h={name:m.name.text,type:o[g]?"string":g};o[g]&&(h.enum=o[g]),c.push(h)}})}}),i.push({cmpInfo:{id:await _(e,r,p),displayFilePath:A(e,r),name:j(p),inputs:c,exportName:d,exportType:u,importName:p,filePath:r,relFilePath:a,importPath:s},node:{name:p,fnNode:n,deps:void 0}}),i}async function wa(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=L(e,r);for(let s of n.statements)if(e.ts.isExportDeclaration(s)&&s.exportClause&&e.ts.isNamedExports(s.exportClause))for(let p of s.exportClause.elements){let l=p.name?.text;if(!l)continue;let d=l,u="named",c=[];if(t){let f=t.getSymbolAtLocation(p.name);if(f){let g=t.getDeclaredTypeOfSymbol(f);t.getPropertiesOfType(g).forEach(C=>{let P=C.getDeclarations();P&&P.forEach(b=>{if(e.ts.isPropertyDeclaration(b)){let y=t.getTypeAtLocation(b),S={name:C.getName(),type:Na(e,t,y)};c.push(S)}})})}}let m=e.ts.isExportSpecifier(p)&&p.parent?p.parent.parent:void 0,x;if(m){let f=m.moduleSpecifier;if(f&&e.ts.isStringLiteral(f)){let g=t?.getSymbolAtLocation(f);if(g&&g.declarations&&g.declarations.length>0){let h=g.declarations[0];(!e.ts.isSourceFile(h)||e.ts.isSourceFile(h)&&h.fileName.includes("node_modules"))&&(x=f.text)}}}o.push({cmpInfo:{id:await _(e,r,l,x),displayFilePath:A(e,r),name:j(l),inputs:c,exportName:d,exportType:u,importName:l,filePath:r,relFilePath:i,importPath:x||a,externalImportPath:x},node:{name:l,fnNode:p,deps:void 0}})}return o}function va(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 Ia(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 ba(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 Ra(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}function Na(e,t,r){let n=t.typeToString(r);if(n==="any"){let o=r.getSymbol();if(o){let i=o.getDeclarations();if(i&&i.length>0){let a=i[0];if(e.ts.isVariableDeclaration(a)){let s=a.type;s&&(n=t.typeToString(t.getTypeAtLocation(s)))}}}}return n}async function St(e,t,r){let n=e.typescriptEnabled?".ts":".js",o=`app.module${n}`,i=e.join(e.appDir,o),a=await e.readFile(i);if(!a){console.error(`Unable to read app.module.${n} at ${i}`);return}let s=await Aa(e,i,t,r,a);if(!s){console.error(`Unable to update app.module.${n} at ${i}`);return}return await e.writeFile(i,s),i}async function Aa(e,t,r,n,o){let i=o,a=v(e,o),s=R(e,t,n);a=w(e,a,{namedImports:[r],importPath:s}),a=w(e,a,{namedImports:["Content"],importPath:"@builder.io/sdk-angular"});let p=[];for(let l of a.statements)if(e.ts.isClassDeclaration(l)&&l.name?.text==="AppModule"){let d=Fa(e,r,l);p.push(d)}else p.push(l);return a=e.ts.factory.updateSourceFile(a,p),i=O(e,a),i}function Fa(e,t,r){let n=e.ts.getDecorators(r);if(n){for(let o of n)if(e.ts.isCallExpression(o.expression)&&e.ts.isIdentifier(o.expression.expression)&&o.expression.expression.text==="NgModule"){let i=o.expression.arguments;if(i.length===1&&e.ts.isObjectLiteralExpression(i[0])){let a=br(e,i[0],"declarations",t);if(a){let s=br(e,a,"imports","Content");if(s&&(a=s),a){let p=e.ts.factory.updateDecorator(o,e.ts.factory.updateCallExpression(o.expression,o.expression.expression,o.expression.typeArguments,[a])),d=[...n.map(u=>u===o?p:u),...e.ts.getModifiers(r)||[]];return e.ts.factory.updateClassDeclaration(r,d,r.name,r.typeParameters,r.heritageClauses,r.members)}}}}}return r}function br(e,t,r,n){let o=[...t.properties],i=o.findIndex(s=>I(e,s)===r);if(i>-1){let s=o[i];if(e.ts.isPropertyAssignment(s)&&s.initializer&&e.ts.isArrayLiteralExpression(s.initializer)){let p=Rr(e,s.initializer,n);return p?(o[i]=e.ts.factory.updatePropertyAssignment(s,s.name,p),e.ts.factory.updateObjectLiteralExpression(t,o)):null}return null}let a=Rr(e,e.ts.factory.createArrayLiteralExpression([],!0),n);return a?e.ts.factory.updateObjectLiteralExpression(t,[...o,e.ts.factory.createPropertyAssignment(r,a)]):null}function Rr(e,t,r){return t.elements.some(o=>e.ts.isIdentifier(o)?o.text===r:!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createIdentifier(r)])}async function Nr(e){let t=[],r=await La(e,t);t.push(...await Pt(e)),await Oa(e,r);let n="BuilderPage";if(!await e.exists(e.builderPageComponentPath)){let o=await e.formatCode(e.builderPageComponentPath,Fr(e,n,e.builderPageComponentPath,"builder-page","page"));await e.writeFile(e.builderPageComponentPath,o),t.push({filePath:e.builderPageComponentPath,modifiedType:"create"})}if(e.hasAppModule){await St(e,"Counter",r);let o=await St(e,n,e.builderPageComponentPath);o&&t.push({filePath:o,modifiedType:"update"})}return t}async function Ar(e){let t=[];t.push(...await Pt(e));let r="FigmaImportsPage",n=e.join(e.componentsDir,`figma-imports.component.${e.typescriptEnabled?"ts":"js"}`);if(!await e.exists(n)){let o=await e.formatCode(n,Fr(e,r,n,"figma-imports","figma-imports"));await e.writeFile(n,o),t.push({filePath:n,modifiedType:"create"})}if(e.hasAppModule){let o=await St(e,r,n);o&&t.push({filePath:o,modifiedType:"update"})}return t}async function Pt(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,ka(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}async function Oa(e,t){let n=(await xe(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await xe(e,n.id,!0,!1,null,null,!0,!1)}function Fr(e,t,r,n,o){let i=!e.hasAppModule,a=R(e,r,e.registryPath),s=e.join(e.getRootDir(),"src","environments","environment.ts"),p=R(e,r,s);return`
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
${
|
|
766
|
-
${
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
<ng-container *ngIf="content; else notFound">
|
|
762
|
+
`.trimStart(),a=await e.formatCode(t,i);return await e.writeFile(t,a),"create"}return null}var kt="builderApiKey";async function Xr(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(ns(e,i.fileName)||a.startsWith(".")||a==="node_modules"||es.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let u=await Lt(e,o,s,i);r.push(...u)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var es=new Set([]),ts=new Set(["node_modules"]);function ns(e,t){for(let r of ts)if(e.dirname(t).includes(r))return!0;return!1}async function Zr(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 rs(e,t,n)}return null}function rs(e,t,r){let n=I(e,r);return Lt(e,null,t,n)}async function Lt(e,t,r,n){let o=[];r=e.normalize(r);let i=n.statements.filter(u=>e.ts.isClassDeclaration(u)&&ss(e,u)),a=await is(e,t,r,n),s=ls(e,n);return await Promise.all(i.map(async u=>{let l=await os(e,t,r,u,s);o.push(...l)})),o.push(...a),o}async function eo(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await Ze(e,t.cmpInfo.filePath,r),a=(await Lt(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 to(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await G(e,t.map(a=>a.filePath)),o=n.getTypeChecker();return await Promise.all(t.filter(a=>!(a.name.endsWith("Page")||a.name.endsWith("Module")||a.name==="AppComponent")).map(async a=>{if(!a.isRegistered){let s=n.getSourceFile(a.filePath);if(s){let l=(await Lt(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);l&&(a.inputs=ze(e,o,l.node.fnNode))}}return a}))}async function os(e,t,r,n,o){let i=[],a=e.relative(e.getRootDir(),r),s=V(e,r),u=n.name?.text;if(!u)return i;let l=!1;n.modifiers&&(l=n.modifiers.some(f=>f.kind===e.ts.SyntaxKind.DefaultKeyword));let d=l?"default":u,m=l?"default":"named",c=[];return n.members.forEach(f=>{if(e.ts.isPropertyDeclaration(f)){let C=e.ts.getDecorators(f);C&&C.forEach(p=>{if(as(e,p)&&e.ts.isIdentifier(f.name)){let D="any";if(f.type&&t){let x=t.getTypeAtLocation(f.type);D=t.typeToString(x)}else D=us(e,f.type);let g={name:f.name.text,type:o[D]?"string":D};o[D]&&(g.enum=o[D]),c.push(g)}})}}),i.push({cmpInfo:{id:await $(e,r,u),displayFilePath:k(e,r),name:K(u),inputs:c,exportName:d,exportType:m,importName:u,filePath:r,relFilePath:a,importPath:s},node:{name:u,fnNode:n,deps:void 0}}),i}async function is(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=V(e,r);for(let s of n.statements)if(e.ts.isExportDeclaration(s)&&s.exportClause&&e.ts.isNamedExports(s.exportClause))for(let u of s.exportClause.elements){let l=u.name?.text;if(!l)continue;let d=l,m="named",c=[];if(t){let p=t.getSymbolAtLocation(u.name);if(p){let D=t.getDeclaredTypeOfSymbol(p);t.getPropertiesOfType(D).forEach(x=>{let S=x.getDeclarations();S&&S.forEach(P=>{if(e.ts.isPropertyDeclaration(P)){let A=t.getTypeAtLocation(P),E={name:x.getName(),type:ps(e,t,A)};c.push(E)}})})}}let f=e.ts.isExportSpecifier(u)&&u.parent?u.parent.parent:void 0,C;if(f){let p=f.moduleSpecifier;if(p&&e.ts.isStringLiteral(p)){let D=t?.getSymbolAtLocation(p);if(D&&D.declarations&&D.declarations.length>0){let g=D.declarations[0];(!e.ts.isSourceFile(g)||e.ts.isSourceFile(g)&&g.fileName.includes("node_modules"))&&(C=p.text)}}}o.push({cmpInfo:{id:await $(e,r,l,C),displayFilePath:k(e,r),name:K(l),inputs:c,exportName:d,exportType:m,importName:l,filePath:r,relFilePath:i,importPath:C||a,externalImportPath:C},node:{name:l,fnNode:u,deps:void 0}})}return o}function as(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 ss(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 us(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 ls(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}function ps(e,t,r){let n=t.typeToString(r);if(n==="any"){let o=r.getSymbol();if(o){let i=o.getDeclarations();if(i&&i.length>0){let a=i[0];if(e.ts.isVariableDeclaration(a)){let s=a.type;s&&(n=t.typeToString(t.getTypeAtLocation(s)))}}}}return n}async function _t(e,t,r){let n=e.typescriptEnabled?".ts":".js",o=`app.module${n}`,i=e.join(e.appDir,o),a=await e.readFile(i);if(!a){console.error(`Unable to read app.module.${n} at ${i}`);return}let s=await cs(e,i,t,r,a);if(!s){console.error(`Unable to update app.module.${n} at ${i}`);return}return await e.writeFile(i,s),i}async function cs(e,t,r,n,o){let i=o,a=I(e,o),s=B(e,t,n);a=v(e,a,{namedImports:[r],importPath:s}),a=v(e,a,{namedImports:["Content"],importPath:"@builder.io/sdk-angular"});let u=[];for(let l of a.statements)if(e.ts.isClassDeclaration(l)&&l.name?.text==="AppModule"){let d=ms(e,r,l);u.push(d)}else u.push(l);return a=e.ts.factory.updateSourceFile(a,u),i=_(e,a),i}function ms(e,t,r){let n=e.ts.getDecorators(r);if(n){for(let o of n)if(e.ts.isCallExpression(o.expression)&&e.ts.isIdentifier(o.expression.expression)&&o.expression.expression.text==="NgModule"){let i=o.expression.arguments;if(i.length===1&&e.ts.isObjectLiteralExpression(i[0])){let a=no(e,i[0],"declarations",t);if(a){let s=no(e,a,"imports","Content");if(s&&(a=s),a){let u=e.ts.factory.updateDecorator(o,e.ts.factory.updateCallExpression(o.expression,o.expression.expression,o.expression.typeArguments,[a])),d=[...n.map(m=>m===o?u:m),...e.ts.getModifiers(r)||[]];return e.ts.factory.updateClassDeclaration(r,d,r.name,r.typeParameters,r.heritageClauses,r.members)}}}}}return r}function no(e,t,r,n){let o=[...t.properties],i=o.findIndex(s=>R(e,s)===r);if(i>-1){let s=o[i];if(e.ts.isPropertyAssignment(s)&&s.initializer&&e.ts.isArrayLiteralExpression(s.initializer)){let u=ro(e,s.initializer,n);return u?(o[i]=e.ts.factory.updatePropertyAssignment(s,s.name,u),e.ts.factory.updateObjectLiteralExpression(t,o)):null}return null}let a=ro(e,e.ts.factory.createArrayLiteralExpression([],!0),n);return a?e.ts.factory.updateObjectLiteralExpression(t,[...o,e.ts.factory.createPropertyAssignment(r,a)]):null}function ro(e,t,r){return t.elements.some(o=>e.ts.isIdentifier(o)?o.text===r:!1)?null:e.ts.factory.updateArrayLiteralExpression(t,[...t.elements,e.ts.factory.createIdentifier(r)])}async function gn(e,t,r,n){var o;try{if(e.magicast){let a=`app.routes${e.typescriptEnabled?".ts":".js"}`,s=e.join(e.appDir,a),u=await e.magicast.loadFile(s);(o=u.exports).routes||(o.routes=[]);let l=u.exports.routes;if(l.find(m=>m.path===t))return;let d=e.magicast.builders.raw("{}");if(d.path=t,d.component=e.magicast.builders.raw(r),l.push(d),u.imports.$items.find(m=>m.imported===r))return;u.imports.$append({imported:r,from:n}),await e.magicast.writeFile(u,s)}}catch(i){console.error(i)}}var fs=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ds=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,gs=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Dn={Space_Separator:fs,ID_Start:ds,ID_Continue:gs},q={isSpaceSeparator(e){return typeof e=="string"&&Dn.Space_Separator.test(e)},isIdStartChar(e){return typeof e=="string"&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="$"||e==="_"||Dn.ID_Start.test(e))},isIdContinueChar(e){return typeof e=="string"&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="$"||e==="_"||e==="\u200C"||e==="\u200D"||Dn.ID_Continue.test(e))},isDigit(e){return typeof e=="string"&&/[0-9]/.test(e)},isHexDigit(e){return typeof e=="string"&&/[0-9A-Fa-f]/.test(e)}},xn,ee,be,Vt,Ve,ce,W,Sn,At,Ds=function(t,r){xn=String(t),ee="start",be=[],Vt=0,Ve=1,ce=0,W=void 0,Sn=void 0,At=void 0;do W=Cs(),Es[ee]();while(W.type!=="eof");return typeof r=="function"?hn({"":At},"",r):At};function hn(e,t,r){let n=e[t];if(n!=null&&typeof n=="object")if(Array.isArray(n))for(let o=0;o<n.length;o++){let i=String(o),a=hn(n,i,r);a===void 0?delete n[i]:Object.defineProperty(n,i,{value:a,writable:!0,enumerable:!0,configurable:!0})}else for(let o in n){let i=hn(n,o,r);i===void 0?delete n[o]:Object.defineProperty(n,o,{value:i,writable:!0,enumerable:!0,configurable:!0})}return r.call(e,t,n)}var b,T,St,Te,N;function Cs(){for(b="default",T="",St=!1,Te=1;;){N=ve();let e=io[b]();if(e)return e}}function ve(){if(xn[Vt])return String.fromCodePoint(xn.codePointAt(Vt))}function h(){let e=ve();return e===`
|
|
763
|
+
`?(Ve++,ce=0):e?ce+=e.length:ce++,e&&(Vt+=e.length),e}var io={default(){switch(N){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
|
|
764
|
+
`:case"\r":case"\u2028":case"\u2029":h();return;case"/":h(),b="comment";return;case void 0:return h(),M("eof")}if(q.isSpaceSeparator(N)){h();return}return io[ee]()},comment(){switch(N){case"*":h(),b="multiLineComment";return;case"/":h(),b="singleLineComment";return}throw U(h())},multiLineComment(){switch(N){case"*":h(),b="multiLineCommentAsterisk";return;case void 0:throw U(h())}h()},multiLineCommentAsterisk(){switch(N){case"*":h();return;case"/":h(),b="default";return;case void 0:throw U(h())}h(),b="multiLineComment"},singleLineComment(){switch(N){case`
|
|
765
|
+
`:case"\r":case"\u2028":case"\u2029":h(),b="default";return;case void 0:return h(),M("eof")}h()},value(){switch(N){case"{":case"[":return M("punctuator",h());case"n":return h(),Je("ull"),M("null",null);case"t":return h(),Je("rue"),M("boolean",!0);case"f":return h(),Je("alse"),M("boolean",!1);case"-":case"+":h()==="-"&&(Te=-1),b="sign";return;case".":T=h(),b="decimalPointLeading";return;case"0":T=h(),b="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":T=h(),b="decimalInteger";return;case"I":return h(),Je("nfinity"),M("numeric",1/0);case"N":return h(),Je("aN"),M("numeric",NaN);case'"':case"'":St=h()==='"',T="",b="string";return}throw U(h())},identifierNameStartEscape(){if(N!=="u")throw U(h());h();let e=En();switch(e){case"$":case"_":break;default:if(!q.isIdStartChar(e))throw oo();break}T+=e,b="identifierName"},identifierName(){switch(N){case"$":case"_":case"\u200C":case"\u200D":T+=h();return;case"\\":h(),b="identifierNameEscape";return}if(q.isIdContinueChar(N)){T+=h();return}return M("identifier",T)},identifierNameEscape(){if(N!=="u")throw U(h());h();let e=En();switch(e){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!q.isIdContinueChar(e))throw oo();break}T+=e,b="identifierName"},sign(){switch(N){case".":T=h(),b="decimalPointLeading";return;case"0":T=h(),b="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":T=h(),b="decimalInteger";return;case"I":return h(),Je("nfinity"),M("numeric",Te*(1/0));case"N":return h(),Je("aN"),M("numeric",NaN)}throw U(h())},zero(){switch(N){case".":T+=h(),b="decimalPoint";return;case"e":case"E":T+=h(),b="decimalExponent";return;case"x":case"X":T+=h(),b="hexadecimal";return}return M("numeric",Te*0)},decimalInteger(){switch(N){case".":T+=h(),b="decimalPoint";return;case"e":case"E":T+=h(),b="decimalExponent";return}if(q.isDigit(N)){T+=h();return}return M("numeric",Te*Number(T))},decimalPointLeading(){if(q.isDigit(N)){T+=h(),b="decimalFraction";return}throw U(h())},decimalPoint(){switch(N){case"e":case"E":T+=h(),b="decimalExponent";return}if(q.isDigit(N)){T+=h(),b="decimalFraction";return}return M("numeric",Te*Number(T))},decimalFraction(){switch(N){case"e":case"E":T+=h(),b="decimalExponent";return}if(q.isDigit(N)){T+=h();return}return M("numeric",Te*Number(T))},decimalExponent(){switch(N){case"+":case"-":T+=h(),b="decimalExponentSign";return}if(q.isDigit(N)){T+=h(),b="decimalExponentInteger";return}throw U(h())},decimalExponentSign(){if(q.isDigit(N)){T+=h(),b="decimalExponentInteger";return}throw U(h())},decimalExponentInteger(){if(q.isDigit(N)){T+=h();return}return M("numeric",Te*Number(T))},hexadecimal(){if(q.isHexDigit(N)){T+=h(),b="hexadecimalInteger";return}throw U(h())},hexadecimalInteger(){if(q.isHexDigit(N)){T+=h();return}return M("numeric",Te*Number(T))},string(){switch(N){case"\\":h(),T+=xs();return;case'"':if(St)return h(),M("string",T);T+=h();return;case"'":if(!St)return h(),M("string",T);T+=h();return;case`
|
|
766
|
+
`:case"\r":throw U(h());case"\u2028":case"\u2029":Ss(N);break;case void 0:throw U(h())}T+=h()},start(){switch(N){case"{":case"[":return M("punctuator",h())}b="value"},beforePropertyName(){switch(N){case"$":case"_":T=h(),b="identifierName";return;case"\\":h(),b="identifierNameStartEscape";return;case"}":return M("punctuator",h());case'"':case"'":St=h()==='"',b="string";return}if(q.isIdStartChar(N)){T+=h(),b="identifierName";return}throw U(h())},afterPropertyName(){if(N===":")return M("punctuator",h());throw U(h())},beforePropertyValue(){b="value"},afterPropertyValue(){switch(N){case",":case"}":return M("punctuator",h())}throw U(h())},beforeArrayValue(){if(N==="]")return M("punctuator",h());b="value"},afterArrayValue(){switch(N){case",":case"]":return M("punctuator",h())}throw U(h())},end(){throw U(h())}};function M(e,t){return{type:e,value:t,line:Ve,column:ce}}function Je(e){for(let t of e){if(ve()!==t)throw U(h());h()}}function xs(){switch(ve()){case"b":return h(),"\b";case"f":return h(),"\f";case"n":return h(),`
|
|
767
|
+
`;case"r":return h(),"\r";case"t":return h()," ";case"v":return h(),"\v";case"0":if(h(),q.isDigit(ve()))throw U(h());return"\0";case"x":return h(),hs();case"u":return h(),En();case`
|
|
768
|
+
`:case"\u2028":case"\u2029":return h(),"";case"\r":return h(),ve()===`
|
|
769
|
+
`&&h(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw U(h());case void 0:throw U(h())}return h()}function hs(){let e="",t=ve();if(!q.isHexDigit(t)||(e+=h(),t=ve(),!q.isHexDigit(t)))throw U(h());return e+=h(),String.fromCodePoint(parseInt(e,16))}function En(){let e="",t=4;for(;t-- >0;){let r=ve();if(!q.isHexDigit(r))throw U(h());e+=h()}return String.fromCodePoint(parseInt(e,16))}var Es={start(){if(W.type==="eof")throw Qe();Cn()},beforePropertyName(){switch(W.type){case"identifier":case"string":Sn=W.value,ee="afterPropertyName";return;case"punctuator":jt();return;case"eof":throw Qe()}},afterPropertyName(){if(W.type==="eof")throw Qe();ee="beforePropertyValue"},beforePropertyValue(){if(W.type==="eof")throw Qe();Cn()},beforeArrayValue(){if(W.type==="eof")throw Qe();if(W.type==="punctuator"&&W.value==="]"){jt();return}Cn()},afterPropertyValue(){if(W.type==="eof")throw Qe();switch(W.value){case",":ee="beforePropertyName";return;case"}":jt()}},afterArrayValue(){if(W.type==="eof")throw Qe();switch(W.value){case",":ee="beforeArrayValue";return;case"]":jt()}},end(){}};function Cn(){let e;switch(W.type){case"punctuator":switch(W.value){case"{":e={};break;case"[":e=[];break}break;case"null":case"boolean":case"numeric":case"string":e=W.value;break}if(At===void 0)At=e;else{let t=be[be.length-1];Array.isArray(t)?t.push(e):Object.defineProperty(t,Sn,{value:e,writable:!0,enumerable:!0,configurable:!0})}if(e!==null&&typeof e=="object")be.push(e),Array.isArray(e)?ee="beforeArrayValue":ee="beforePropertyName";else{let t=be[be.length-1];t==null?ee="end":Array.isArray(t)?ee="afterArrayValue":ee="afterPropertyValue"}}function jt(){be.pop();let e=be[be.length-1];e==null?ee="end":Array.isArray(e)?ee="afterArrayValue":ee="afterPropertyValue"}function U(e){return $t(e===void 0?`JSON5: invalid end of input at ${Ve}:${ce}`:`JSON5: invalid character '${ao(e)}' at ${Ve}:${ce}`)}function Qe(){return $t(`JSON5: invalid end of input at ${Ve}:${ce}`)}function oo(){return ce-=5,$t(`JSON5: invalid identifier character at ${Ve}:${ce}`)}function Ss(e){console.warn(`JSON5: '${ao(e)}' in strings is not valid ECMAScript; consider escaping`)}function ao(e){let t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){let r=e.charCodeAt(0).toString(16);return"\\x"+("00"+r).substring(r.length)}return e}function $t(e){let t=new SyntaxError(e);return t.lineNumber=Ve,t.columnNumber=ce,t}var As=function(t,r,n){let o=[],i="",a,s,u="",l;if(r!=null&&typeof r=="object"&&!Array.isArray(r)&&(n=r.space,l=r.quote,r=r.replacer),typeof r=="function")s=r;else if(Array.isArray(r)){a=[];for(let p of r){let D;typeof p=="string"?D=p:(typeof p=="number"||p instanceof String||p instanceof Number)&&(D=String(p)),D!==void 0&&a.indexOf(D)<0&&a.push(D)}}return n instanceof Number?n=Number(n):n instanceof String&&(n=String(n)),typeof n=="number"?n>0&&(n=Math.min(10,Math.floor(n)),u=" ".substr(0,n)):typeof n=="string"&&(u=n.substr(0,10)),d("",{"":t});function d(p,D){let g=D[p];switch(g!=null&&(typeof g.toJSON5=="function"?g=g.toJSON5(p):typeof g.toJSON=="function"&&(g=g.toJSON(p))),s&&(g=s.call(D,p,g)),g instanceof Number?g=Number(g):g instanceof String?g=String(g):g instanceof Boolean&&(g=g.valueOf()),g){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof g=="string")return m(g,!1);if(typeof g=="number")return String(g);if(typeof g=="object")return Array.isArray(g)?C(g):c(g)}function m(p){let D={"'":.1,'"':.2},g={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},x="";for(let P=0;P<p.length;P++){let A=p[P];switch(A){case"'":case'"':D[A]++,x+=A;continue;case"\0":if(q.isDigit(p[P+1])){x+="\\x00";continue}}if(g[A]){x+=g[A];continue}if(A<" "){let E=A.charCodeAt(0).toString(16);x+="\\x"+("00"+E).substring(E.length);continue}x+=A}let S=l||Object.keys(D).reduce((P,A)=>D[P]<D[A]?P:A);return x=x.replace(new RegExp(S,"g"),g[S]),S+x+S}function c(p){if(o.indexOf(p)>=0)throw TypeError("Converting circular structure to JSON5");o.push(p);let D=i;i=i+u;let g=a||Object.keys(p),x=[];for(let P of g){let A=d(P,p);if(A!==void 0){let E=f(P)+":";u!==""&&(E+=" "),E+=A,x.push(E)}}let S;if(x.length===0)S="{}";else{let P;if(u==="")P=x.join(","),S="{"+P+"}";else{let A=`,
|
|
770
|
+
`+i;P=x.join(A),S=`{
|
|
771
|
+
`+i+P+`,
|
|
772
|
+
`+D+"}"}}return o.pop(),i=D,S}function f(p){if(p.length===0)return m(p,!0);let D=String.fromCodePoint(p.codePointAt(0));if(!q.isIdStartChar(D))return m(p,!0);for(let g=D.length;g<p.length;g++)if(!q.isIdContinueChar(String.fromCodePoint(p.codePointAt(g))))return m(p,!0);return p}function C(p){if(o.indexOf(p)>=0)throw TypeError("Converting circular structure to JSON5");o.push(p);let D=i;i=i+u;let g=[];for(let S=0;S<p.length;S++){let P=d(String(S),p);g.push(P!==void 0?P:"null")}let x;if(g.length===0)x="[]";else if(u==="")x="["+g.join(",")+"]";else{let S=`,
|
|
773
|
+
`+i,P=g.join(S);x=`[
|
|
774
|
+
`+i+P+`,
|
|
775
|
+
`+D+"]"}return o.pop(),i=D,x}},Fs={parse:Ds,stringify:As},Ps=Fs,so=Ps;async function uo(e){let t=e.join(e.getRootDir(),"tsconfig.json");if(await e.exists(t)){let r=await e.readFile(t);if(!r)return;let n=so.parse(r);if(!n||typeof n!="object"||Array.isArray(n))return;let o=n.compilerOptions;if(!o||typeof o!="object"||Array.isArray(o))return;let i=o.paths;(!i||typeof i!="object"||Array.isArray(i))&&(o.paths={},i=o.paths),Object.assign(o.paths,{"~/*":["./src/*"]}),await e.writeFile(t,JSON.stringify(n,null,2))}}async function lo(e){let t=[],r=await Ts(e,t);t.push(...await Kt(e)),await ys(e,r);let n="BuilderPage";if(!await e.exists(e.builderPageComponentPath)){let o=await e.formatCode(e.builderPageComponentPath,co(e,n,e.builderPageComponentPath,"builder-page","page",!0));await e.writeFile(e.builderPageComponentPath,o),t.push({filePath:e.builderPageComponentPath,modifiedType:"create"})}if(e.hasAppModule){await _t(e,"Counter",r);let o=await _t(e,n,e.builderPageComponentPath);o&&t.push({filePath:o,modifiedType:"update"})}return await gn(e,"**",n,"./components/builder-page.component"),t}async function po(e){let t=[];t.push(...await Kt(e));let r="FigmaImportsPage",n="figma-imports.component",o=e.join(e.componentsDir,`${n}.${e.typescriptEnabled?"ts":"js"}`);if(!await e.exists(o)){let i=await e.formatCode(o,co(e,r,o,"figma-imports","figma-imports",!1));await e.writeFile(o,i),t.push({filePath:o,modifiedType:"create"})}if(e.hasAppModule){let i=await _t(e,r,o);i&&t.push({filePath:i,modifiedType:"update"})}return await gn(e,"figma-imports",r,`./components/${n}`),await uo(e),t}async function Kt(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,ws(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}async function ys(e,t){let n=(await we(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await we(e,n.id,!0,!1,null,null,!0,!1)}function co(e,t,r,n,o,i){let a=!e.hasAppModule,s=B(e,r,e.registryPath),u=e.join(e.getRootDir(),"src","environments","environment.ts"),l=B(e,r,u),d=i?` <ng-container *ngIf="content || isPreviewing; else notFound">
|
|
776
776
|
<builder-content
|
|
777
777
|
[model]="model"
|
|
778
778
|
[content]="content"
|
|
@@ -783,15 +783,34 @@ import { CUSTOM_COMPONENTS } from ${JSON.stringify(a)};
|
|
|
783
783
|
|
|
784
784
|
<ng-template #notFound>
|
|
785
785
|
<div>404 - Content not found</div>
|
|
786
|
-
</ng-template
|
|
786
|
+
</ng-template>`:` <builder-content
|
|
787
|
+
[model]="model"
|
|
788
|
+
[content]="content"
|
|
789
|
+
[apiKey]="apiKey"
|
|
790
|
+
[customComponents]="customComponents"
|
|
791
|
+
></builder-content>`;return`
|
|
792
|
+
import { Component, Input } from '@angular/core';
|
|
793
|
+
import { fetchOneEntry, type BuilderContent${i?", isPreviewing":""} } from '@builder.io/sdk-angular';
|
|
794
|
+
${a?"import { Content } from '@builder.io/sdk-angular';":""}
|
|
795
|
+
${a?"import { CommonModule } from '@angular/common';":""}
|
|
796
|
+
import { environment } from ${JSON.stringify(l)};
|
|
797
|
+
import { CUSTOM_COMPONENTS } from ${JSON.stringify(s)};
|
|
798
|
+
|
|
799
|
+
@Component({
|
|
800
|
+
selector: 'app-${n}',
|
|
801
|
+
${a?"standalone: true,":""}
|
|
802
|
+
${a?"imports: [Content, CommonModule],":""}
|
|
803
|
+
template: \`
|
|
804
|
+
${d}
|
|
787
805
|
\`,
|
|
788
806
|
})
|
|
789
807
|
export class ${t} {
|
|
790
|
-
title = 'builder page';
|
|
791
808
|
|
|
792
|
-
|
|
809
|
+
${i?`isPreviewing = isPreviewing();
|
|
810
|
+
`:""}
|
|
811
|
+
@Input() model = '${o}';
|
|
793
812
|
|
|
794
|
-
apiKey = environment.${
|
|
813
|
+
apiKey = environment.${kt};
|
|
795
814
|
${e.typescriptEnabled?`
|
|
796
815
|
content: BuilderContent | null = null;
|
|
797
816
|
`:`
|
|
@@ -819,12 +838,12 @@ export class ${t} {
|
|
|
819
838
|
}
|
|
820
839
|
}
|
|
821
840
|
|
|
822
|
-
`.trimStart()}function
|
|
841
|
+
`.trimStart()}function ws(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-angular";
|
|
823
842
|
|
|
824
843
|
export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
|
|
825
844
|
];`:`export const CUSTOM_COMPONENTS = [
|
|
826
845
|
];
|
|
827
|
-
`}async function
|
|
846
|
+
`}async function Ts(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=bs(e);if(!i){let s=await e.formatCode(o,a);await e.writeFile(o,s),t.push({filePath:o,modifiedType:"create"})}return o}function bs(e){return`
|
|
828
847
|
import { Component, Input } from '@angular/core';
|
|
829
848
|
|
|
830
849
|
@Component({
|
|
@@ -892,17 +911,17 @@ export class Counter {
|
|
|
892
911
|
}
|
|
893
912
|
}
|
|
894
913
|
|
|
895
|
-
`.trimStart()}async function Or(e){await Pt(e);let t=await e.readFile(e.registryPath);return t?ja(e,t):{components:[],sourceFile:v(e,"")}}async function ja(e,t){let r=v(e,t);return Ba(e,r)}async function Ba(e,t){let r=[],n=V(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Qt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:J(r)}}async function Qt(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 l=s.arguments[0];e.ts.isIdentifier(l)&&(a=l.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let p=await ae(e,e.registryPath,t,a);if(!p)continue;if(n.filePath=p.filePath,n.relFilePath=p.relFilePath,await e.exists(p.filePath)?n.importPath=L(e,p.filePath):(n.externalImportPath=p.importPath,n.importPath=n.externalImportPath),n.displayFilePath=p.displayFilePath,n.exportType=p.exportType,n.externalImportPath)n.exportName=a;else{let l=await wr(e,p.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(u=>u.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}}continue}}return n=Q(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName,n.externalImportPath)),n}async function xe(e,t,r,n,o,i,a,s){let p=await we(e),[l,d,u]=await Promise.all([yr(e,p),Or(e),ot(e)]),c=l.map(C=>C.cmpInfo),m=d.components,x={components:te(c,m),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:se(c),publicApiKey:u.envValue??void 0,devToolsVersion:e.version};if(s)return x.components=await Ir(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(y=>{let S=l.find(N=>N.cmpInfo.id===y);if(!S)throw new Error(`Component ${y} not found`);return S}),P=Array.from(new Set(C.map(y=>y.cmpInfo.filePath))),b=await M(e,P);for(let y of C){let S=x.components.find(F=>F.id===y.cmpInfo.id),N=await vr(e,y,b);ee(S,N);let B=c.findIndex(F=>F.id===y.cmpInfo.id);c[B].inputs=N;let k=me(y.cmpInfo.id,c,m,r,n,o,i),{elements:E,elmIndex:T,statementIndex:U,statement:X,variableDeclaration:$}=await Ka(e,g,y);if(k.addCmpToRegistry)E.push(Va(e,k.addCmpToRegistry)),f=!0;else if(k.removeCmpFromRegistry)E.splice(T,1),f=!0;else if(k.updateRegisteredCmp){let F=K(e,E[T],k.updateRegisteredCmp);E[T]=e.ts.factory.updateObjectLiteralExpression(F,[kr(e,k.updateRegisteredCmp),...F.properties.slice(1)]),f=!0}if(f&&a){let F=[...g.statements];F[U]=e.ts.factory.updateVariableStatement(X,X.modifiers,e.ts.factory.updateVariableDeclarationList(X.declarationList,[e.ts.factory.updateVariableDeclaration($,$.name,$.exclamationToken,$.type,e.ts.factory.createArrayLiteralExpression(le(e,E)))])),g=e.ts.factory.updateSourceFile(g,F),S.exportType==="named"?g=w(e,g,{namedImports:[S.importName],importPath:S.externalImportPath?S.externalImportPath:R(e,e.registryPath,S.filePath)}):g=w(e,g,{defaultImport:S.importName,importPath:S.externalImportPath?S.externalImportPath:R(e,e.registryPath,S.filePath)}),g=w(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),g=ue(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),x.components=k.components,m=k.components.filter(z=>z.isRegistered)}}}if(f&&a){g=ce(e,g),g=pe(e,g);let C=O(e,g);C=H(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return x}function kr(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function Va(e,t){return K(e,e.ts.factory.createObjectLiteralExpression([kr(e,t)],!0),t)}async function Ka(e,t,r){let n=V(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 Qt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function Lr(e){let t=await $a(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>Nr(t),ensureFigmaImportPage:()=>Ar(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>xe(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await xe(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>xe(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>xe(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>xe(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>xe(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>ot(t),setPublicApiKey:o=>Dr(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>re(t),setCache:o=>oe(t,o)}}async function $a(e){let t=await Ua(e),r=e.getRootDir(),n=e.join(r,"src"),o=await Ma(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:"",angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);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"}`);let s=`app.module.${o?"ts":"js"}`,p=e.join(a.appDir,s);return await e.exists(p)&&(a.hasAppModule=!0),a}function Ma(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Ua(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 vt=Eo(Wr(),1);async function Yr(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:Z(e.relative(e.getRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:W(i.inputs)};return W(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,vt.compress)(n);return btoa(JSON.stringify(o))}async function Gr(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,vt.decompress)(o),a=W(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let p=Z(e.normalize(s.filePath)),l=n.components.find(u=>Z(u.filePath).endsWith(p)&&u.exportName===s.exportName);if(!l){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${l.id})`,l.filePath),await t.registerComponent({cmpId:l.id});for(let u of s.inputs)e.debug(`set input (${l.id})`),await t.setRegisteredComponentInput({cmpId:l.id,name:u.name,type:u.type,required:u.required,defaultValue:u.defaultValue,friendlyName:u.friendlyName,helperText:u.helperText});e.debug(`set input (${l.id}) info`);let d=await t.setRegisteredComponentInfo({cmpId:l.id,name:s.name,image:s.image,description:s.description});a=W(d)}return a}var ne={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Wu={[ne.react]:[{version:D.gen1,recommended:!0},{version:D.gen2,recommended:!1}],[ne.remix]:[{version:D.gen1,recommended:!1},{version:D.gen2,recommended:!0}],[ne.angular]:[{version:D.gen2,recommended:!0}],[ne.next]:[{version:D.gen1,recommended:!0},{version:D.gen2,recommended:!1}],[ne.qwik]:[{version:D.gen2,recommended:!0}]};async function Hr(e,t){let r=[],n=new Set;async function o(s){let p=e.join(s,"package.json");try{let l=await e.readFile(p);if(l===null)throw new Error(`Failed to read package.json at ${p}`);let d=JSON.parse(l);if(n.has(d.name))return null;n.add(d.name);let u={name:d.name,subPackages:[]},c=await e.readdir(s);for(let m of c)m!=="node_modules"&&(await e.stat(e.join(s,m))).isDirectory()&&u.subPackages.push(m);return r.push(u),u}catch(l){return console.error(`Error reading package.json at ${s}:`,l),null}}let i=e.join(t,"package.json"),a=await e.readFile(i);if(a!==null){let s=JSON.parse(a),p={...s.dependencies,...s.devDependencies};for(let l of Object.keys(p)){let d=e.join(t,"node_modules",l);await o(d)}if(s.workspaces)for(let l of s.workspaces){let d=await e.readdir(e.join(t,l));for(let u of d){let c=e.join(t,l,u);await o(c)}}}return r}var fs={"@builder.io/qwik-city":ir,next:Wn,"@remix-run/react":fr,react:Tr,"@angular/core":Lr},ds={"@builder.io/qwik-city":ne.qwik,next:ne.next,"@remix-run/react":ne.remix,react:ne.react,"@angular/core":ne.angular};async function gs(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 be(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=fs[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>Yr(e,n),importRegistry:i=>Gr(e,n,i),framework:ds[t.name],findAllDependencies:async()=>await Hr(e,e.getRootDir())}}}throw new Error(`Devtools framework not found for ${e.getRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Xr(e){function t(u){if(typeof u!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(u))}function r(u,c){let m="",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(m.length<2||x!==2||m.charCodeAt(m.length-1)!==46||m.charCodeAt(m.length-2)!==46){if(m.length>2){let P=m.lastIndexOf("/");if(P!==m.length-1){P===-1?(m="",x=0):(m=m.slice(0,P),x=m.length-1-m.lastIndexOf("/")),f=C,g=0;continue}}else if(m.length===2||m.length===1){m="",x=0,f=C,g=0;continue}}c&&(m.length>0?m+="/..":m="..",x=2)}else m.length>0?m+="/"+u.slice(f+1,C):m=u.slice(f+1,C),x=C-f-1;f=C,g=0}else h===46&&g!==-1?++g:g=-1}return m}let n=function(...c){let m="",x=!1;for(let f=c.length-1;f>=-1&&!x;f--){let g;f>=0?g=c[f]:e.cwd?g=e.cwd():g="/",t(g),g.length!==0&&(m=g+"/"+m,x=g.charCodeAt(0)===47)}return m=r(m,!x),x?m.length>0?"/"+m:"/":m.length>0?m:"."},o=function(c){if(t(c),c.length===0)return".";let m=c.charCodeAt(0)===47,x=c.charCodeAt(c.length-1)===47;return c=r(c,!m),c.length===0&&!m&&(c="."),c.length>0&&x&&(c+="/"),m?"/"+c:c};return{relative:function(c,m){if(t(c),t(m),c===m||(c=n(c),m=n(m),c===m))return"";let x=1;for(;x<c.length&&c.charCodeAt(x)===47;++x);let f=c.length,g=f-x,h=1;for(;h<m.length&&m.charCodeAt(h)===47;++h);let P=m.length-h,b=g<P?g:P,y=-1,S=0;for(;S<=b;++S){if(S===b){if(P>b){if(m.charCodeAt(h+S)===47)return m.slice(h+S+1);if(S===0)return m.slice(h+S)}else g>b&&(c.charCodeAt(x+S)===47?y=S:S===0&&(y=0));break}let B=c.charCodeAt(x+S),k=m.charCodeAt(h+S);if(B!==k)break;B===47&&(y=S)}let N="";for(S=x+y+1;S<=f;++S)(S===f||c.charCodeAt(S)===47)&&(N.length===0?N+="..":N+="/..");return N.length>0?N+m.slice(h+y):(h+=y,m.charCodeAt(h)===47&&++h,m.slice(h))},resolve:n,join:function(...c){if(c.length===0)return".";let m;for(let x=0;x<c.length;++x){let f=c[x];t(f),f.length>0&&(m===void 0?m=f:m+="/"+f)}return m===void 0?".":o(m)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,m){if(m!==void 0&&typeof m!="string")throw new TypeError('"ext" argument must be a string');t(c);let x=0,f=-1,g=!0,h;if(m!==void 0&&m.length>0&&m.length<=c.length){if(m.length===c.length&&m===c)return"";let C=m.length-1,P=-1;for(h=c.length-1;h>=0;--h){let b=c.charCodeAt(h);if(b===47){if(!g){x=h+1;break}}else P===-1&&(g=!1,P=h+1),C>=0&&(b===m.charCodeAt(C)?--C===-1&&(f=h):(C=-1,f=P))}return x===f?f=P:f===-1&&(f=c.length),c.slice(x,f)}else{for(h=c.length-1;h>=0;--h)if(c.charCodeAt(h)===47){if(!g){x=h+1;break}}else f===-1&&(g=!1,f=h+1);return f===-1?"":c.slice(x,f)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let m=c.charCodeAt(0),x=m===47,f=-1,g=!0;for(let h=c.length-1;h>=1;--h)if(m=c.charCodeAt(h),m===47){if(!g){f=h;break}}else g=!1;return f===-1?x?"/":".":x&&f===1?"//":c.slice(0,f)},extname:function(c){t(c);let m=-1,x=0,f=-1,g=!0,h=0;for(let C=c.length-1;C>=0;--C){let P=c.charCodeAt(C);if(P===47){if(!g){x=C+1;break}continue}f===-1&&(g=!1,f=C+1),P===46?m===-1?m=C:h!==1&&(h=1):m!==-1&&(h=-1)}return m===-1||f===-1||h===0||h===1&&m===f-1&&m===x+1?"":c.slice(m,f)}}}async function xs(e){let t=e.getRootDir?e.getRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Xr({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)),p=f=>{f=i(f);let g=f===t()?f:f+"/",h=g.split("/").length-1,C=[];for(let[P]of o)if(P.split("/").slice(0,h).join("/")+"/"===g){let S=P.split("/")[h];S&&!C.includes(S)&&C.push(S)}return C.sort()},l=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),P=await crypto.subtle.digest("SHA-256",C);return Array.from(new Uint8Array(P)).map(b=>b.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)},c=new Set,m={getRootDir:t,cwd:r,exists:async f=>s(f),existsSync:s,readdir:async f=>p(f),readdirSync:p,readFile:async f=>l(f),readFileSync:l,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 c)await C(h)},hash:u,getDeviceId:async()=>typeof navigator<"u"?u(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(f,g)=>g,on:(f,g)=>{f==="change"&&c.add(g)},off:(f,g)=>{f==="change"&&c.delete(g)},debug:(...f)=>{console.debug("[builder-dev-tools]",...f)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null},x=await be(m);return m.getFrameworks=e.getFrameworks?e.getFrameworks:()=>x,m}async function Zr(e,t,r){let n=v(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(eo(e,n))return o;let a=G(e,n,"cjs"),s=G(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 c=d.statement;if(e.ts.isVariableStatement(c)){let m=[...c.declarationList.declarations];if(m.length!==1)throw new Error("Expected a single variable declaration");let x=m[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(c);return h[C]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.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=w(e,n,{defaultImport:"BuilderDevTools",importPath:"@builder.io/dev-tools/next"}),o.content=O(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}}let p=a[0];if(!p.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(p.node)||e.ts.isCallExpression(p.node)){let d=p.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 c=pn(e,n);n=c.sourceFile;let m=[...n.statements],x=m.indexOf(d);return m[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(u,u.left,u.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[u.right]))),n=e.ts.factory.updateSourceFile(n,m),o.content=O(e,n),o.hasContentUpdates=!0,o}let l=p.statement;if(e.ts.isVariableStatement(l)){let d=[...l.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 c=u.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let m=pn(e,n);n=m.sourceFile;let x=[...n.statements],f=x.indexOf(l);return x[f]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(u,u.name,u.exclamationToken,u.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(m.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=O(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}if(e.ts.isArrowFunction(p.node)){let d=p.node,u=p.statement;if(!e.ts.isExpressionStatement(u))throw new Error("Expected an expression statement for the default export");let c=u.expression;if(!e.ts.isBinaryExpression(c))throw new Error("Expected a binary expression for the default export");let x=p.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(y=>e.ts.isReturnStatement(y));if(g===-1)throw new Error("Expected a return statement on the next config function");let h=f[g],C=pn(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 P=[...n.statements],b=P.indexOf(u);return P[b]=e.ts.factory.updateExpressionStatement(u,e.ts.factory.updateBinaryExpression(c,c.left,c.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,P),o.content=O(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected export type")}function eo(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 pn(e,t){let r=eo(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 ro(e,t,r){let n=v(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(oo(e,n))return o;let a=G(e,n,"cjs"),s=G(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);let p=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 c="builderDevTools()",m=hs(e,u.expression);if(!m)return o;let x=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c),void 0,[m]),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=w(e,n,{defaultImport:"builderDevTools",importPath:"@builder.io/dev-tools/remix"}),o.content=O(e,n),o.hasContentUpdates=!0,o}}if(!p.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(p.node)||e.ts.isCallExpression(p.node)){let d=p.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 c=to(e,n);n=c.sourceFile;let m=[...n.statements],x=m.indexOf(d);return m[x]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(u,u.left,u.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[u.right]))),n=e.ts.factory.updateSourceFile(n,m),o.content=O(e,n),o.hasContentUpdates=!0,o}let l=p.statement;if(e.ts.isVariableStatement(l)){let d=[...l.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 c=u.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let m=to(e,n);n=m.sourceFile;let x=[...n.statements],f=x.indexOf(l);return x[f]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(u,u.name,u.exclamationToken,u.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(m.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,x),o.content=O(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}throw new Error("Unexpected export type")}function oo(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 to(e,t){let r=oo(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 hs(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=no(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=no(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("serverDependenciesToBundle",o)]):null}function no(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 ao(e,t,r){let n=v(e,r),o=G(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 p=[...i.node.arguments];if(p.length===0)throw new Error("Expected an argument in defineConfig()");let l=p[0];if(e.ts.isArrowFunction(l)){let d=Cs(e,l);if(!d)return s;p[0]=e.ts.factory.updateArrowFunction(l,l.modifiers,l.typeParameters,l.parameters,l.type,l.equalsGreaterThanToken,d);let u=[...n.statements],c=u.indexOf(a);return u[c]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,p)),n=e.ts.factory.updateSourceFile(n,u),n=w(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=O(e,n),s.hasContentUpdates=!0,s}if(e.ts.isObjectLiteralExpression(l)){let d=ln(e,l);if(!d)return s;let u=[...n.statements],c=u.indexOf(a);return u[c]=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=w(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=O(e,n),s.hasContentUpdates=!0,s}throw new Error("Unsupported argument in defineConfig()")}if(e.ts.isObjectLiteralExpression(a.expression)){let p=ln(e,a.expression);if(!p)return s;let l=[...n.statements],d=l.indexOf(a);return l[d]=e.ts.factory.updateExportAssignment(a,a.modifiers,p),n=e.ts.factory.updateSourceFile(n,l),n=w(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=O(e,n),s.hasContentUpdates=!0,s}throw new Error(`Unable to parse ${t}`)}function Cs(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=ln(e,i.expression);return a?(n[o]=e.ts.factory.updateReturnStatement(i,a),e.ts.factory.updateBlock(r,n)):null}function ln(e,t){if(Es(e)){let i=Ss(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=io(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=io(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("plugins",o)]):null}function io(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 Ss(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=Ps(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=cn(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 Ps(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=cn(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=cn(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o)return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("noExternal",o)])}function cn(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 Es(e){return e.getFrameworks().some(t=>t.name==="@remix-run/react")}async function so(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 lo(e,t,r){e.debug("Angular config updates are currently in progress...");try{await ys(e)}catch{console.error("Unable to update package.json.")}return await Ts(e),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function Ts(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 Ds(e,o);await e.writeFile(n,i)}async function Ds(e,t){let r=t,n=v(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=w(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/angular"});let i=`
|
|
914
|
+
`.trimStart()}async function mo(e){await Kt(e);let t=await e.readFile(e.registryPath);return t?vs(e,t):{components:[],sourceFile:I(e,"")}}async function vs(e,t){let r=I(e,t);return Is(e,r)}async function Is(e,t){let r=[],n=J(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await An(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:te(r)}}async function An(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(R(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let l=s.arguments[0];e.ts.isIdentifier(l)&&(a=l.text)}if(!a)continue;n.name===""&&(n.name=K(a)),n.importName=a;let u=await De(e,e.registryPath,t,a);if(!u)continue;if(n.filePath=u.filePath,n.relFilePath=u.relFilePath,await e.exists(u.filePath)?n.importPath=V(e,u.filePath):(n.externalImportPath=u.importPath,n.importPath=n.externalImportPath),n.displayFilePath=u.displayFilePath,n.exportType=u.exportType,n.externalImportPath)n.exportName=a;else{let l=await Zr(e,u.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(m=>m.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}}continue}}return n=ne(e,n,r),n.filePath&&n.exportName&&(n.id=await $(e,n.filePath,n.exportName,n.externalImportPath)),n}async function we(e,t,r,n,o,i,a,s){let u=await je(e),[l,d,m]=await Promise.all([Xr(e,u),mo(e),Et(e)]),c=l.map(x=>x.cmpInfo),f=d.components,C={components:pe(c,f),registryPath:e.registryPath,registryDisplayPath:k(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:Ce(c),publicApiKey:m.envValue??void 0,devToolsVersion:e.version};if(s)return C.components=await to(e,C.components),C;let p=!1,D=d.sourceFile,g=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(g.length>0){let x=g.map(A=>{let E=l.find(O=>O.cmpInfo.id===A);if(!E)throw new Error(`Component ${A} not found`);return E}),S=Array.from(new Set(x.map(A=>A.cmpInfo.filePath))),P=await G(e,S);for(let A of x){let E=C.components.find(L=>L.id===A.cmpInfo.id),O=await eo(e,A,P);le(E,O);let z=c.findIndex(L=>L.id===A.cmpInfo.id);c[z].inputs=O;let j=Se(A.cmpInfo.id,c,f,r,n,o,i),{elements:F,elmIndex:y,statementIndex:H,statement:se,variableDeclaration:Y}=await Rs(e,D,A);if(j.addCmpToRegistry)F.push(Ns(e,j.addCmpToRegistry)),p=!0;else if(j.removeCmpFromRegistry)F.splice(y,1),p=!0;else if(j.updateRegisteredCmp){let L=Q(e,F[y],j.updateRegisteredCmp);F[y]=e.ts.factory.updateObjectLiteralExpression(L,[fo(e,j.updateRegisteredCmp),...L.properties.slice(1)]),p=!0}if(p&&a){let L=[...D.statements];L[H]=e.ts.factory.updateVariableStatement(se,se.modifiers,e.ts.factory.updateVariableDeclarationList(se.declarationList,[e.ts.factory.updateVariableDeclaration(Y,Y.name,Y.exclamationToken,Y.type,e.ts.factory.createArrayLiteralExpression(he(e,F)))])),D=e.ts.factory.updateSourceFile(D,L),E.exportType==="named"?D=v(e,D,{namedImports:[E.importName],importPath:E.externalImportPath?E.externalImportPath:B(e,e.registryPath,E.filePath)}):D=v(e,D,{defaultImport:E.importName,importPath:E.externalImportPath?E.externalImportPath:B(e,e.registryPath,E.filePath)}),D=v(e,D,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),D=Ae(e,D,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),C.components=j.components,f=j.components.filter(X=>X.isRegistered)}}}if(p&&a){D=Ee(e,D),D=xe(e,D);let x=_(e,D);x=ae(x),x=await e.formatCode(e.registryPath,x),await e.writeFile(e.registryPath,x)}return C}function fo(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function Ns(e,t){return Q(e,e.ts.factory.createObjectLiteralExpression([fo(e,t)],!0),t)}async function Rs(e,t,r){let n=J(e,t,"CUSTOM_COMPONENTS");if(!n)throw new Error(`Exported name of the Builder registry must be "CUSTOM_COMPONENTS". Please update your Builder registry file: ${e.registryPath}`);let o=n.arrayLiteralExp.elements.filter(a=>e.ts.isObjectLiteralExpression(a)),i=-1;for(let a=0;a<o.length;a++)if((await An(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function go(e){let t=await Bs(e),r={};return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>lo(t),ensureFigmaImportPage:()=>po(t),getRegistryPath:()=>t.registryPath,getRegistry:o=>we(t,null,!1,!1,null,null,!1,!!o?.readAllInputTypes),addExternalPackage:async o=>{r[o]||(r[o]=`export * from "${o}";`)},loadComponent:async o=>{let i=await we(t,o.cmpId,!1,!1,null,null,!1,!1);return{...i,component:i.components.find(a=>a.id===o.cmpId)}},registerComponent:o=>we(t,o.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:o=>we(t,o.cmpId,!1,!1,o,null,!0,!1),setRegisteredComponentInput:o=>we(t,o.cmpId,!1,!1,null,o,!0,!1),unregisterComponent:o=>we(t,o.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Et(t),setPublicApiKey:o=>Hr(t,o.publicApiKey),getDependencies:o=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>fe(t),setCache:o=>de(t,o)}}async function Bs(e){let t=await ks(e),r=e.getRootDir(),n=e.join(r,"src"),o=await Os(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:"",angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:"",hasAppModule:!1};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);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"}`);let s=`app.module.${o?"ts":"js"}`,u=e.join(a.appDir,s);return await e.exists(u)&&(a.hasAppModule=!0),a}function Os(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function ks(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 Qt=ti(bo(),1);async function vo(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:ue(e.relative(e.getRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:re(i.inputs)};return re(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,Qt.compress)(n);return btoa(JSON.stringify(o))}async function Io(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,Qt.decompress)(o),a=re(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let u=ue(e.normalize(s.filePath)),l=n.components.find(m=>ue(m.filePath).endsWith(u)&&m.exportName===s.exportName);if(!l){console.error(`Could not find component to register: ${s.filePath}, ${s.exportName}`);continue}e.debug(`register (${l.id})`,l.filePath),await t.registerComponent({cmpId:l.id});for(let m of s.inputs)e.debug(`set input (${l.id})`),await t.setRegisteredComponentInput({cmpId:l.id,name:m.name,type:m.type,required:m.required,defaultValue:m.defaultValue,friendlyName:m.friendlyName,helperText:m.helperText});e.debug(`set input (${l.id}) info`);let d=await t.setRegisteredComponentInfo({cmpId:l.id,name:s.name,image:s.image,description:s.description});a=re(d)}return a}var me={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},Jf={[me.react]:[{version:w.gen1,recommended:!0},{version:w.gen2,recommended:!1}],[me.remix]:[{version:w.gen1,recommended:!1},{version:w.gen2,recommended:!0}],[me.angular]:[{version:w.gen2,recommended:!0}],[me.next]:[{version:w.gen1,recommended:!0},{version:w.gen2,recommended:!1}],[me.qwik]:[{version:w.gen2,recommended:!0}]};async function No(e,t){let r=[],n=new Set;async function o(s){let u=e.join(s,"package.json");try{let l=await e.readFile(u);if(l===null)throw new Error(`Failed to read package.json at ${u}`);let d=JSON.parse(l);if(n.has(d.name))return null;n.add(d.name);let m={name:d.name,subPackages:[]},c=await e.readdir(s);for(let f of c)f!=="node_modules"&&(await e.stat(e.join(s,f))).isDirectory()&&m.subPackages.push(f);return r.push(m),m}catch(l){return console.error(`Error reading package.json at ${s}:`,l),null}}let i=e.join(t,"package.json"),a=await e.readFile(i);if(a!==null){let s=JSON.parse(a),u={...s.dependencies,...s.devDependencies};for(let l of Object.keys(u)){let d=e.join(t,"node_modules",l);await o(d)}if(s.workspaces)for(let l of s.workspaces){let d=await e.readdir(e.join(t,l));for(let m of d){let c=e.join(t,l,m);await o(c)}}}return r}var iu={"@builder.io/qwik-city":Br,next:Ar,"@remix-run/react":Kr,react:Gr,"@angular/core":go},au={"@builder.io/qwik-city":me.qwik,next:me.next,"@remix-run/react":me.remix,react:me.react,"@angular/core":me.angular};async function su(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 Me(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=iu[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>vo(e,n),importRegistry:i=>Io(e,n,i),framework:au[t.name],findAllDependencies:async()=>await No(e,e.getRootDir())}}}throw new Error(`Devtools framework not found for ${e.getRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Ro(e){function t(m){if(typeof m!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(m))}function r(m,c){let f="",C=0,p=-1,D=0,g;for(let x=0;x<=m.length;++x){if(x<m.length)g=m.charCodeAt(x);else{if(g===47)break;g=47}if(g===47){if(!(p===x-1||D===1))if(p!==x-1&&D===2){if(f.length<2||C!==2||f.charCodeAt(f.length-1)!==46||f.charCodeAt(f.length-2)!==46){if(f.length>2){let S=f.lastIndexOf("/");if(S!==f.length-1){S===-1?(f="",C=0):(f=f.slice(0,S),C=f.length-1-f.lastIndexOf("/")),p=x,D=0;continue}}else if(f.length===2||f.length===1){f="",C=0,p=x,D=0;continue}}c&&(f.length>0?f+="/..":f="..",C=2)}else f.length>0?f+="/"+m.slice(p+1,x):f=m.slice(p+1,x),C=x-p-1;p=x,D=0}else g===46&&D!==-1?++D:D=-1}return f}let n=function(...c){let f="",C=!1;for(let p=c.length-1;p>=-1&&!C;p--){let D;p>=0?D=c[p]:e.cwd?D=e.cwd():D="/",t(D),D.length!==0&&(f=D+"/"+f,C=D.charCodeAt(0)===47)}return f=r(f,!C),C?f.length>0?"/"+f:"/":f.length>0?f:"."},o=function(c){if(t(c),c.length===0)return".";let f=c.charCodeAt(0)===47,C=c.charCodeAt(c.length-1)===47;return c=r(c,!f),c.length===0&&!f&&(c="."),c.length>0&&C&&(c+="/"),f?"/"+c:c};return{relative:function(c,f){if(t(c),t(f),c===f||(c=n(c),f=n(f),c===f))return"";let C=1;for(;C<c.length&&c.charCodeAt(C)===47;++C);let p=c.length,D=p-C,g=1;for(;g<f.length&&f.charCodeAt(g)===47;++g);let S=f.length-g,P=D<S?D:S,A=-1,E=0;for(;E<=P;++E){if(E===P){if(S>P){if(f.charCodeAt(g+E)===47)return f.slice(g+E+1);if(E===0)return f.slice(g+E)}else D>P&&(c.charCodeAt(C+E)===47?A=E:E===0&&(A=0));break}let z=c.charCodeAt(C+E),j=f.charCodeAt(g+E);if(z!==j)break;z===47&&(A=E)}let O="";for(E=C+A+1;E<=p;++E)(E===p||c.charCodeAt(E)===47)&&(O.length===0?O+="..":O+="/..");return O.length>0?O+f.slice(g+A):(g+=A,f.charCodeAt(g)===47&&++g,f.slice(g))},resolve:n,join:function(...c){if(c.length===0)return".";let f;for(let C=0;C<c.length;++C){let p=c[C];t(p),p.length>0&&(f===void 0?f=p:f+="/"+p)}return f===void 0?".":o(f)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,f){if(f!==void 0&&typeof f!="string")throw new TypeError('"ext" argument must be a string');t(c);let C=0,p=-1,D=!0,g;if(f!==void 0&&f.length>0&&f.length<=c.length){if(f.length===c.length&&f===c)return"";let x=f.length-1,S=-1;for(g=c.length-1;g>=0;--g){let P=c.charCodeAt(g);if(P===47){if(!D){C=g+1;break}}else S===-1&&(D=!1,S=g+1),x>=0&&(P===f.charCodeAt(x)?--x===-1&&(p=g):(x=-1,p=S))}return C===p?p=S:p===-1&&(p=c.length),c.slice(C,p)}else{for(g=c.length-1;g>=0;--g)if(c.charCodeAt(g)===47){if(!D){C=g+1;break}}else p===-1&&(D=!1,p=g+1);return p===-1?"":c.slice(C,p)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let f=c.charCodeAt(0),C=f===47,p=-1,D=!0;for(let g=c.length-1;g>=1;--g)if(f=c.charCodeAt(g),f===47){if(!D){p=g;break}}else D=!1;return p===-1?C?"/":".":C&&p===1?"//":c.slice(0,p)},extname:function(c){t(c);let f=-1,C=0,p=-1,D=!0,g=0;for(let x=c.length-1;x>=0;--x){let S=c.charCodeAt(x);if(S===47){if(!D){C=x+1;break}continue}p===-1&&(D=!1,p=x+1),S===46?f===-1?f=x:g!==1&&(g=1):f!==-1&&(g=-1)}return f===-1||p===-1||g===0||g===1&&f===p-1&&f===C+1?"":c.slice(f,p)}}}async function uu(e){let t=e.getRootDir?e.getRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Ro({cwd:r,...e}),o=new Map,i=p=>n.normalize(n.resolve(r(),p)),a=p=>{for(let[D]of o)if((D+"/").startsWith(p))return!0;return p===t()},s=p=>(p=i(p),o.has(p)?!0:a(p)),u=p=>{p=i(p);let D=p===t()?p:p+"/",g=D.split("/").length-1,x=[];for(let[S]of o)if(S.split("/").slice(0,g).join("/")+"/"===D){let E=S.split("/")[g];E&&!x.includes(E)&&x.push(E)}return x.sort()},l=p=>{p=i(p);let D=o.get(p);return typeof D=="string"?D:null},d=p=>(p=i(p),{isFile:()=>o.has(p),isDirectory:()=>!o.has(p)&&a(p)}),m=async p=>{if(typeof crypto<"u"){let x=new TextEncoder().encode(p),S=await crypto.subtle.digest("SHA-256",x);return Array.from(new Uint8Array(S)).map(P=>P.toString(16).padStart(2,"0")).join("")}let D=0;for(let g=0;g<p.length;g++){let x=p.charCodeAt(g);D=(D<<5)-D+x,D|=0}return Number(Math.abs(D)).toString(36)},c=new Set,f={getRootDir:t,cwd:r,exists:async p=>s(p),existsSync:s,readdir:async p=>u(p),readdirSync:u,readFile:async p=>l(p),readFileSync:l,stat:async p=>d(p),statSync:d,writeFile:async(p,D)=>{p=i(p),o.set(p,D);let g={path:p,basename:n.basename(p),dirname:n.dirname(p),extname:n.extname(p)};for(let x of c)await x(g)},hash:m,getDeviceId:async()=>typeof navigator<"u"?m(navigator.userAgent):"",getRepoInfo:async()=>({remoteUrl:"",defaultBranch:"",currentBranch:"",commit:""}),formatCode:async(p,D)=>D,on:(p,D)=>{p==="change"&&c.add(D)},off:(p,D)=>{p==="change"&&c.delete(D)},debug:(...p)=>{console.debug("[builder-dev-tools]",...p)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null,kind:null,magicast:void 0},C=await Me(f);return f.getFrameworks=e.getFrameworks?e.getFrameworks:()=>C,f}async function Bo(e,t,r){let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(Oo(e,n))return o;let a=ie(e,n,"cjs"),s=ie(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 c=d.statement;if(e.ts.isVariableStatement(c)){let f=[...c.declarationList.declarations];if(f.length!==1)throw new Error("Expected a single variable declaration");let C=f[0];if(!C.initializer)throw new Error("Expected an initializer on the declaration");let p=C.initializer;if(e.ts.isObjectLiteralExpression(p)||e.ts.isCallExpression(p)){let D="BuilderDevTools()",g=[...n.statements],x=g.indexOf(c);return g[x]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(C,C.name,C.exclamationToken,C.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(D),void 0,[p]))])),n=e.ts.factory.updateSourceFile(n,g),n=v(e,n,{defaultImport:"BuilderDevTools",importPath:"@builder.io/dev-tools/next"}),o.content=_(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}}let u=a[0];if(!u.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(u.node)||e.ts.isCallExpression(u.node)){let d=u.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 c=Ln(e,n);n=c.sourceFile;let f=[...n.statements],C=f.indexOf(d);return f[C]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(m,m.left,m.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[m.right]))),n=e.ts.factory.updateSourceFile(n,f),o.content=_(e,n),o.hasContentUpdates=!0,o}let l=u.statement;if(e.ts.isVariableStatement(l)){let d=[...l.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 c=m.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let f=Ln(e,n);n=f.sourceFile;let C=[...n.statements],p=C.indexOf(l);return C[p]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(m,m.name,m.exclamationToken,m.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(f.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,C),o.content=_(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}if(e.ts.isArrowFunction(u.node)){let d=u.node,m=u.statement;if(!e.ts.isExpressionStatement(m))throw new Error("Expected an expression statement for the default export");let c=m.expression;if(!e.ts.isBinaryExpression(c))throw new Error("Expected a binary expression for the default export");let C=u.node.body;if(!e.ts.isBlock(C))throw new Error("Expected a block body on the next config function");let p=[...C.statements],D=p.findIndex(A=>e.ts.isReturnStatement(A));if(D===-1)throw new Error("Expected a return statement on the next config function");let g=p[D],x=Ln(e,n);n=x.sourceFile,p[D]=e.ts.factory.updateReturnStatement(g,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(x.withFnVariableName),void 0,[g.expression]));let S=[...n.statements],P=S.indexOf(m);return S[P]=e.ts.factory.updateExpressionStatement(m,e.ts.factory.updateBinaryExpression(c,c.left,c.operatorToken,e.ts.factory.updateArrowFunction(d,d.modifiers,d.typeParameters,d.parameters,d.type,d.equalsGreaterThanToken,e.ts.factory.updateBlock(C,p)))),n=e.ts.factory.updateSourceFile(n,S),o.content=_(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected export type")}function Oo(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 Ln(e,t){let r=Oo(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 _o(e,t,r){let n=I(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(jo(e,n))return o;let a=ie(e,n,"cjs"),s=ie(e,n);if(a.length!==1&&s.length!==1)throw new Error(`Expected an export from ${t}`);let u=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 c="builderDevTools()",f=lu(e,m.expression);if(!f)return o;let C=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c),void 0,[f]),p=[...n.statements],D=p.indexOf(m);return p[D]=e.ts.factory.updateExportAssignment(m,m.modifiers,C),n=e.ts.factory.updateSourceFile(n,p),n=v(e,n,{defaultImport:"builderDevTools",importPath:"@builder.io/dev-tools/remix"}),o.content=_(e,n),o.hasContentUpdates=!0,o}}if(!u.isDefaultExport)throw new Error(`Expected a default export from ${t}`);if(e.ts.isObjectLiteralExpression(u.node)||e.ts.isCallExpression(u.node)){let d=u.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 c=ko(e,n);n=c.sourceFile;let f=[...n.statements],C=f.indexOf(d);return f[C]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(m,m.left,m.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[m.right]))),n=e.ts.factory.updateSourceFile(n,f),o.content=_(e,n),o.hasContentUpdates=!0,o}let l=u.statement;if(e.ts.isVariableStatement(l)){let d=[...l.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 c=m.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let f=ko(e,n);n=f.sourceFile;let C=[...n.statements],p=C.indexOf(l);return C[p]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(m,m.name,m.exclamationToken,m.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(f.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,C),o.content=_(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}throw new Error("Unexpected export type")}function jo(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 ko(e,t){let r=jo(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 lu(e,t){let r=[...t.properties],n=r.findIndex(i=>R(e,i)==="serverDependenciesToBundle");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Lo(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=Lo(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("serverDependenciesToBundle",o)]):null}function Lo(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 $o(e,t,r){let n=I(e,r),o=ie(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 u=[...i.node.arguments];if(u.length===0)throw new Error("Expected an argument in defineConfig()");let l=u[0];if(e.ts.isArrowFunction(l)){let d=pu(e,l);if(!d)return s;u[0]=e.ts.factory.updateArrowFunction(l,l.modifiers,l.typeParameters,l.parameters,l.type,l.equalsGreaterThanToken,d);let m=[...n.statements],c=m.indexOf(a);return m[c]=e.ts.factory.updateExportAssignment(a,void 0,e.ts.factory.updateCallExpression(i.node,i.node.expression,i.node.typeArguments,u)),n=e.ts.factory.updateSourceFile(n,m),n=v(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=_(e,n),s.hasContentUpdates=!0,s}if(e.ts.isObjectLiteralExpression(l)){let d=_n(e,l);if(!d)return s;let m=[...n.statements],c=m.indexOf(a);return m[c]=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=v(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=_(e,n),s.hasContentUpdates=!0,s}throw new Error("Unsupported argument in defineConfig()")}if(e.ts.isObjectLiteralExpression(a.expression)){let u=_n(e,a.expression);if(!u)return s;let l=[...n.statements],d=l.indexOf(a);return l[d]=e.ts.factory.updateExportAssignment(a,a.modifiers,u),n=e.ts.factory.updateSourceFile(n,l),n=v(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=_(e,n),s.hasContentUpdates=!0,s}throw new Error(`Unable to parse ${t}`)}function pu(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=_n(e,i.expression);return a?(n[o]=e.ts.factory.updateReturnStatement(i,a),e.ts.factory.updateBlock(r,n)):null}function _n(e,t){if(fu(e)){let i=cu(e,t);i&&(t=i)}let r=[...t.properties],n=r.findIndex(i=>R(e,i)==="plugins");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Vo(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=Vo(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("plugins",o)]):null}function Vo(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 cu(e,t){let r=[...t.properties],n=r.findIndex(i=>R(e,i)==="ssr");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isObjectLiteralExpression(i.initializer)){let a=mu(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=jn(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 mu(e,t){let r=[...t.properties],n=r.findIndex(i=>R(e,i)==="noExternal");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=jn(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=jn(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o)return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("noExternal",o)])}function jn(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 fu(e){return e.getFrameworks().some(t=>t.name==="@remix-run/react")}async function Ko(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 zo(e,t,r){e.debug("Angular config updates are currently in progress...");try{await Du(e)}catch{console.error("Unable to update package.json.")}return await du(e),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function du(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 gu(e,o);await e.writeFile(n,i)}async function gu(e,t){let r=t,n=I(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=v(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/angular"});let i=`
|
|
896
915
|
builderDevTools().catch((err: Error) =>
|
|
897
916
|
console.error("Error starting dev tools:", err)
|
|
898
|
-
);`;return r=
|
|
899
|
-
`}var
|
|
917
|
+
);`;return r=_(e,n),o||(r+=i),r}async function Du(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=Cu(n);o&&await e.writeFile(r,o)}function Cu(e){let t=JSON.parse(e);if(t.scripts=t.scripts||{},t.scripts[Mo])return;let r=t.scripts.start||t.scripts.dev||"ng serve";return r.includes("concurrently")||(t.scripts.start=`concurrently "${r}" "${Uo}"`,t.scripts[Mo]=`concurrently "${r}" "${Uo}"`),JSON.stringify(t,null,2)+`
|
|
918
|
+
`}var Mo="builder-dev",Uo="npx builder-dev-tools";var Jo=[{id:"angular",configFileNames:["angular.json"],ensureConfigPlugin:zo},{id:"next",configFileNames:["next.config.ts","next.config.js","next.config.mjs"],ensureConfigPlugin:Bo},{id:"vite",configFileNames:["vite.config.ts","vite.config.js"],ensureConfigPlugin:$o},{id:"remix",configFileNames:["remix.config.ts","remix.config.js"],ensureConfigPlugin:_o},{id:"webpack",configFileNames:["webpack.config.ts","webpack.config.js"],ensureConfigPlugin:Ko}];async function Qo(e){let t=e.resolve("/");for(let n of Jo)for(let o of n.configFileNames){let i=e.getRootDir();for(let a=0;a<10;a++)try{let s=e.join(i,o),u=e.readFileSync(s);if(typeof u=="string")return{id:n.id,filePath:s,content:u};if(i===t)break;i=e.dirname(i)}catch(s){if((s?.message??"").includes("Invalid path"))break;throw s}}if((await Me(e)).some(n=>n.name==="next")){let n=e.join(e.getRootDir(),"next.config.js");return await e.writeFile(n,qo),{id:"next",filePath:n,content:qo}}return null}async function xu(e){let t=await Qo(e);if(!t)throw new Error("Unable to find config file, such as next.config.js or vite.config.js.");let n=await Jo.find(o=>o.id===t.id).ensureConfigPlugin(e,t.filePath,t.content);return n.hasContentUpdates&&(n.content=ae(n.content),n.content=await e.formatCode(n.filePath,n.content),await e.writeFile(t.filePath,n.content)),n}var qo=`
|
|
900
919
|
/** @type {import('next').NextConfig} */
|
|
901
920
|
const nextConfig = {
|
|
902
921
|
}
|
|
903
922
|
|
|
904
923
|
module.exports = nextConfig
|
|
905
|
-
`.trimStart();var
|
|
924
|
+
`.trimStart();var Wo="/~builder-dev-tools.js";function hu(e){try{if(typeof e!="string"||e.trim().length===0)return console.error("Missing devtool server url"),"";let t=new URL(Wo,e);t.searchParams.set("v",Wt);let r=JSON.stringify(Wt),n=`/* Builder Devtools v${Wt} */
|
|
906
925
|
`;return n+=`(() => {
|
|
907
926
|
`,n+=` if (typeof document !== "undefined") {
|
|
908
927
|
`,n+=` let devToolsScript = document.head.querySelector("script[data-builder-dev-tools]");
|
|
@@ -915,4 +934,4 @@ module.exports = nextConfig
|
|
|
915
934
|
`,n+=` }
|
|
916
935
|
`,n+=` }
|
|
917
936
|
`,n+=`})();
|
|
918
|
-
`,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var
|
|
937
|
+
`,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Wt="1.1.32";export{su as createDevTools,uu as createDevToolsSys,Me as detectFrameworks,Kn as detectFrameworksFromPackageJson,xu as ensureConfigPlugin,Qo as findBuildToolConfig,hu as getClientScript,Un as parseDotEnvContent,Wt as version};
|