builder.io 1.0.2-3 → 1.1.13-0

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.
Files changed (199) hide show
  1. package/README.md +100 -1
  2. package/angular/index.cjs +1 -0
  3. package/angular/index.d.ts +1 -0
  4. package/angular/index.mjs +1 -0
  5. package/cli/index.cjs +1201 -0
  6. package/core/index.cjs +808 -0
  7. package/core/index.d.ts +1 -0
  8. package/core/index.mjs +808 -0
  9. package/figma/index.cjs +1 -0
  10. package/figma/index.d.ts +1 -0
  11. package/figma/index.mjs +1 -0
  12. package/figma/jsx-runtime/index.cjs +7 -0
  13. package/figma/jsx-runtime/index.d.ts +46 -0
  14. package/figma/jsx-runtime/index.js +7 -0
  15. package/figma/jsx-runtime/prop-types.d.ts +125 -0
  16. package/figma/jsx-runtime/react.d.ts +5221 -0
  17. package/next/index.cjs +36 -0
  18. package/next/index.d.ts +8 -0
  19. package/next/index.mjs +36 -0
  20. package/node/index.cjs +1 -0
  21. package/node/index.d.ts +1 -0
  22. package/node/index.mjs +1 -0
  23. package/package.json +28 -8
  24. package/remix/build.cjs +1 -0
  25. package/remix/index.cjs +3 -0
  26. package/remix/index.d.ts +1 -0
  27. package/remix/index.mjs +1 -0
  28. package/remix/server-build/index.cjs +99 -0
  29. package/remix/server-build/index.d.ts +1 -0
  30. package/remix/server-build/index.mjs +60 -0
  31. package/remix/server-build/package.json +6 -0
  32. package/server/index.cjs +249 -0
  33. package/server/index.d.ts +1 -0
  34. package/server/index.mjs +249 -0
  35. package/types/angular/index.d.ts +1 -0
  36. package/types/cli/builder-add/interface.d.ts +32 -0
  37. package/types/cli/builder-add/options.d.ts +7 -0
  38. package/types/cli/credentials.d.ts +41 -0
  39. package/types/cli/download.d.ts +10 -0
  40. package/types/cli/figma-publish.d.ts +22 -0
  41. package/types/cli/figma.d.ts +11 -0
  42. package/types/cli/generate.d.ts +53 -0
  43. package/types/cli/help.d.ts +1 -0
  44. package/types/cli/index.d.ts +2 -0
  45. package/types/cli/kv.d.ts +20 -0
  46. package/types/cli/prettier.d.ts +1 -0
  47. package/types/client/client-api.d.ts +11 -0
  48. package/types/client/edit-button/document-listeners.d.ts +2 -0
  49. package/types/client/edit-button/index.d.ts +8 -0
  50. package/types/client/index.d.ts +1 -0
  51. package/types/client/menu/index.d.ts +5 -0
  52. package/types/client/menu/pages/component-detail.d.ts +4 -0
  53. package/types/client/menu/pages/component-input.d.ts +3 -0
  54. package/types/client/menu/pages/component-list.d.ts +3 -0
  55. package/types/client/menu/pages/home.d.ts +1 -0
  56. package/types/client/menu/pages/settings.d.ts +1 -0
  57. package/types/client/menu/toggle/menu-toggle.d.ts +2 -0
  58. package/types/client/setup-ui/connected.d.ts +1 -0
  59. package/types/client/setup-ui/index.d.ts +1 -0
  60. package/types/client/setup-ui/overview.d.ts +4 -0
  61. package/types/client/tracking.d.ts +22 -0
  62. package/types/client/utils.d.ts +14 -0
  63. package/types/common/ast/app-dependencies.d.ts +4 -0
  64. package/types/common/ast/component-info.d.ts +8 -0
  65. package/types/common/ast/component-input-types.d.ts +24 -0
  66. package/types/common/ast/component-registry.d.ts +9 -0
  67. package/types/common/ast/convert-values.d.ts +11 -0
  68. package/types/common/ast/convert-values.unit.d.ts +1 -0
  69. package/types/common/ast/ensure-array-statement.d.ts +7 -0
  70. package/types/common/ast/ensure-array-statement.unit.d.ts +1 -0
  71. package/types/common/ast/ensure-comments.d.ts +1 -0
  72. package/types/common/ast/ensure-imports.d.ts +9 -0
  73. package/types/common/ast/ensure-imports.unit.d.ts +1 -0
  74. package/types/common/ast/exported-statements.d.ts +8 -0
  75. package/types/common/ast/exported-statements.unit.d.ts +1 -0
  76. package/types/common/ast/normalize-statements.d.ts +7 -0
  77. package/types/common/ast/normalize-statements.unit.d.ts +1 -0
  78. package/types/common/ast/remove-unused-imports.d.ts +3 -0
  79. package/types/common/ast/remove-unused-imports.unit.d.ts +1 -0
  80. package/types/common/ast/transform.d.ts +5 -0
  81. package/types/common/ast/utils.d.ts +26 -0
  82. package/types/common/ast/utils.unit.d.ts +1 -0
  83. package/types/common/builder/builder-api.d.ts +26 -0
  84. package/types/common/builder/builder-sdks.d.ts +9 -0
  85. package/types/common/builder/content-generation.d.ts +8 -0
  86. package/types/common/builder/content-ids.d.ts +3 -0
  87. package/types/common/cache.d.ts +3 -0
  88. package/types/common/constants.d.ts +14 -0
  89. package/types/common/dotenv.d.ts +6 -0
  90. package/types/common/fs.d.ts +4 -0
  91. package/types/common/mem-sys.d.ts +8 -0
  92. package/types/common/node-request.d.ts +7 -0
  93. package/types/common/path.d.ts +4 -0
  94. package/types/common/test-utils.d.ts +7 -0
  95. package/types/common/typescript.d.ts +9 -0
  96. package/types/common/utils.d.ts +17 -0
  97. package/types/common/utils.unit.d.ts +1 -0
  98. package/types/core/adapters/angular/angular-api-key.d.ts +10 -0
  99. package/types/core/adapters/angular/angular-api-key.unit.d.ts +1 -0
  100. package/types/core/adapters/angular/angular-app-module-imports.d.ts +3 -0
  101. package/types/core/adapters/angular/angular-app-module-imports.unit.d.ts +1 -0
  102. package/types/core/adapters/angular/angular-components.d.ts +18 -0
  103. package/types/core/adapters/angular/angular-components.unit.d.ts +1 -0
  104. package/types/core/adapters/angular/angular-ensure-builder-setup.d.ts +5 -0
  105. package/types/core/adapters/angular/angular-ensure-config-plugin.d.ts +9 -0
  106. package/types/core/adapters/angular/angular-ensure-config-plugin.unit.d.ts +1 -0
  107. package/types/core/adapters/angular/angular-registry-parse.d.ts +16 -0
  108. package/types/core/adapters/angular/angular-registry-parse.unit.d.ts +1 -0
  109. package/types/core/adapters/angular/angular-registry.d.ts +3 -0
  110. package/types/core/adapters/angular/angular-registry.unit.d.ts +1 -0
  111. package/types/core/adapters/angular/angular-test-utils.d.ts +6 -0
  112. package/types/core/adapters/angular/index.d.ts +13 -0
  113. package/types/core/adapters/next/index.d.ts +14 -0
  114. package/types/core/adapters/next/next-api-key.d.ts +4 -0
  115. package/types/core/adapters/next/next-component-info.d.ts +5 -0
  116. package/types/core/adapters/next/next-component-info.unit.d.ts +1 -0
  117. package/types/core/adapters/next/next-component-inputs.unit.d.ts +1 -0
  118. package/types/core/adapters/next/next-component-source-inputs.unit.d.ts +1 -0
  119. package/types/core/adapters/next/next-components.d.ts +4 -0
  120. package/types/core/adapters/next/next-ensure-builder-setup.d.ts +4 -0
  121. package/types/core/adapters/next/next-ensure-config-plugin.d.ts +3 -0
  122. package/types/core/adapters/next/next-ensure-config-plugin.unit.d.ts +1 -0
  123. package/types/core/adapters/next/next-registry-parse.d.ts +14 -0
  124. package/types/core/adapters/next/next-registry-parse.unit.d.ts +1 -0
  125. package/types/core/adapters/next/next-registry.d.ts +3 -0
  126. package/types/core/adapters/next/next-registry.unit.d.ts +1 -0
  127. package/types/core/adapters/next/next-test-utils.d.ts +16 -0
  128. package/types/core/adapters/qwik-city/index.d.ts +8 -0
  129. package/types/core/adapters/qwik-city/qwik-api-key.d.ts +4 -0
  130. package/types/core/adapters/qwik-city/qwik-component-source-inputs.d.ts +3 -0
  131. package/types/core/adapters/qwik-city/qwik-components.d.ts +15 -0
  132. package/types/core/adapters/qwik-city/qwik-components.unit.d.ts +1 -0
  133. package/types/core/adapters/qwik-city/qwik-ensure-builder-setup.d.ts +4 -0
  134. package/types/core/adapters/qwik-city/qwik-ensure-config-plugin.d.ts +2 -0
  135. package/types/core/adapters/qwik-city/qwik-registry-parse.d.ts +16 -0
  136. package/types/core/adapters/qwik-city/qwik-registry-parse.unit.d.ts +1 -0
  137. package/types/core/adapters/qwik-city/qwik-registry.d.ts +3 -0
  138. package/types/core/adapters/qwik-city/qwik-registry.unit.d.ts +1 -0
  139. package/types/core/adapters/qwik-city/qwik-test-utils.d.ts +6 -0
  140. package/types/core/adapters/qwik-city/qwik-ts-program.d.ts +2 -0
  141. package/types/core/adapters/react/index.d.ts +13 -0
  142. package/types/core/adapters/react/react-api-key.d.ts +6 -0
  143. package/types/core/adapters/react/react-builder-sdk-setup.d.ts +2 -0
  144. package/types/core/adapters/react/react-component-info.d.ts +5 -0
  145. package/types/core/adapters/react/react-components.d.ts +18 -0
  146. package/types/core/adapters/react/react-components.unit.d.ts +1 -0
  147. package/types/core/adapters/react/react-ensure-builder-setup.d.ts +4 -0
  148. package/types/core/adapters/react/react-registry-parse.d.ts +12 -0
  149. package/types/core/adapters/react/react-registry-parse.unit.d.ts +1 -0
  150. package/types/core/adapters/react/react-registry.d.ts +3 -0
  151. package/types/core/adapters/react/react-registry.unit.d.ts +1 -0
  152. package/types/core/adapters/react/react-test-utils.d.ts +6 -0
  153. package/types/core/adapters/react/react-ts-program.d.ts +2 -0
  154. package/types/core/adapters/remix/index.d.ts +12 -0
  155. package/types/core/adapters/remix/remix-api-key.d.ts +4 -0
  156. package/types/core/adapters/remix/remix-components.d.ts +4 -0
  157. package/types/core/adapters/remix/remix-ensure-builder-setup.d.ts +5 -0
  158. package/types/core/adapters/remix/remix-ensure-config-plugin.d.ts +3 -0
  159. package/types/core/adapters/remix/remix-ensure-config-plugin.unit.d.ts +1 -0
  160. package/types/core/adapters/remix/remix-registry-parse.d.ts +16 -0
  161. package/types/core/adapters/remix/remix-registry.d.ts +3 -0
  162. package/types/core/adapters/remix/remix-registry.unit.d.ts +1 -0
  163. package/types/core/adapters/remix/remix-test-utils.d.ts +6 -0
  164. package/types/core/adapters/vite/vite-ensure-config-plugin.d.ts +3 -0
  165. package/types/core/adapters/vite/vite-ensure-config-plugin.unit.d.ts +1 -0
  166. package/types/core/adapters/webpack/webpack-ensure-config-plugin.d.ts +3 -0
  167. package/types/core/client-script.d.ts +1 -0
  168. package/types/core/create-dev-tools.d.ts +2 -0
  169. package/types/core/detect-frameworks.d.ts +3 -0
  170. package/types/core/ensure-config-plugin.d.ts +3 -0
  171. package/types/core/import-export-registry.d.ts +3 -0
  172. package/types/core/index.d.ts +8 -0
  173. package/types/figma/index.d.ts +76 -0
  174. package/types/figma/jsx-runtime/index.d.cts +2 -0
  175. package/types/figma/jsx-runtime/index.d.ts +2 -0
  176. package/types/next/index.d.cts +4 -0
  177. package/types/next/index.d.mts +4 -0
  178. package/types/node/index.d.ts +2 -0
  179. package/types/node/node-sys.d.ts +11 -0
  180. package/types/remix/index-shim.d.cts +2 -0
  181. package/types/remix/index.d.ts +6 -0
  182. package/types/server/auth.d.ts +2 -0
  183. package/types/server/builder-connect.d.ts +3 -0
  184. package/types/server/client-script.d.ts +3 -0
  185. package/types/server/create-dev-tools-server.d.ts +2 -0
  186. package/types/server/dev-tools-api.d.ts +2 -0
  187. package/types/server/dev-tools-http-server.d.ts +2 -0
  188. package/types/server/index.d.ts +3 -0
  189. package/types/server/request-handler.d.ts +4 -0
  190. package/types/types.d.ts +411 -0
  191. package/types/vite/index.d.ts +7 -0
  192. package/types/webpack/index.d.ts +9 -0
  193. package/vite/index.cjs +3 -0
  194. package/vite/index.d.ts +1 -0
  195. package/vite/index.mjs +3 -0
  196. package/webpack/index.cjs +30 -0
  197. package/webpack/index.d.ts +1 -0
  198. package/webpack/index.mjs +30 -0
  199. package/index.js +0 -80
package/core/index.mjs ADDED
@@ -0,0 +1,808 @@
1
+ var no=Object.create;var an=Object.defineProperty;var ro=Object.getOwnPropertyDescriptor;var oo=Object.getOwnPropertyNames;var io=Object.getPrototypeOf,ao=Object.prototype.hasOwnProperty;var he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var so=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of oo(t))!ao.call(e,o)&&o!==r&&an(e,o,{get:()=>t[o],enumerable:!(n=ro(t,o))||n.enumerable});return e};var po=(e,t,r)=>(r=e!=null?no(io(e)):{},so(t||!e||!e.__esModule?an(r,"default",{value:e,enumerable:!0}):r,e));var Ut=he(dt=>{"use strict";Object.defineProperty(dt,"__esModule",{value:!0});function Er(e){return Object.prototype.toString.call(e)}dt.getType=Er;function Oa(e){throw new TypeError("unsupported data type: "+Er(e))}dt.throwUnknownDataType=Oa});var Wt=he(ge=>{"use strict";Object.defineProperty(ge,"__esModule",{value:!0});var de="";for(let e=0;e<10;e++){let t=String.fromCharCode(48+e);de+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(65+e);de+=t}for(let e=0;e<26;e++){let t=String.fromCharCode(97+e);de+=t}var Ke=de.length,qt={};for(let e=0;e<Ke;e++){let t=de[e];qt[t]=e}function Qt(e){let t=0,r=1;for(let n=e.length-1;n>=0;n--){let o=e[n],i=qt[o];i*=r,t+=i,r*=Ke}return t}ge.s_to_int=Qt;function wr(e){let t=BigInt(0),r=BigInt(1),n=BigInt(Ke);for(let o=e.length-1;o>=0;o--){let i=e[o],a=BigInt(qt[i]);a*=r,t+=a,r*=n}return t}ge.s_to_big_int=wr;function Jt(e){if(e===0)return de[0];let t=[];for(;e!==0;){let r=e%Ke,n=de[r];t.push(n),e-=r,e/=Ke}return t.reverse().join("")}ge.int_to_s=Jt;function vr(e){let t=BigInt(0),r=BigInt(Ke);if(e===t)return de[0];let n=[];for(;e!==t;){let o=e%r,i=de[Number(o)];n.push(i),e-=o,e/=r}return n.reverse().join("")}ge.big_int_to_s=vr;function xt(e){return e.split("").reverse().join("")}function br(e){if(e<0)return"-"+br(-e);let[t,r]=e.toString().split(".");if(!r)return Jt(e);let n;r&&([r,n]=r.split("e")),t=gt(t),r=xt(r),r=gt(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=xt(n),n=gt(n),o+=n}return o}ge.num_to_s=br;function gt(e){let t=+e;return t.toString()===e?Jt(t):":"+vr(BigInt(e))}ge.int_str_to_s=gt;function zt(e){return e[0]===":"?wr(e.substring(1)).toString():Qt(e).toString()}function Ir(e){if(e[0]==="-")return-Ir(e.substr(1));let[t,r,n]=e.split(".");if(!r)return Qt(t);t=zt(t),r=zt(r),r=xt(r);let o=t+"."+r;if(n){o+="e";let i=!1;n[0]==="-"&&(i=!0,n=n.slice(1)),n=zt(n),n=xt(n),o+=i?-n:+n}return+o}ge.s_to_num=Ir});var Gt=he(xe=>{"use strict";Object.defineProperty(xe,"__esModule",{value:!0});var Yt=Wt();function La(e){return"n|"+Yt.num_to_s(e)}xe.encodeNum=La;function ka(e){return e=e.replace("n|",""),Yt.s_to_num(e)}xe.decodeNum=ka;function _a(e){return typeof e=="number"?e:Yt.s_to_int(e)}xe.decodeKey=_a;function ja(e){return e?"b|T":"b|F"}xe.encodeBool=ja;function Ba(e){switch(e){case"b|T":return!0;case"b|F":return!1}return!!e}xe.decodeBool=Ba;function Va(e){switch(e[0]+e[1]){case"b|":case"o|":case"n|":case"a|":case"s|":e="s|"+e}return e}xe.encodeStr=Va;function Ka(e){return e[0]+e[1]==="s|"?e.substr(2):e}xe.decodeStr=Ka});var Rr=he(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.config={sort_key:!1}});var Zt=he(Ne=>{"use strict";Object.defineProperty(Ne,"__esModule",{value:!0});var $a=Rr(),Ma=Ut(),Xt=Gt(),Ua=Wt();function za(e){return e.store.toArray()}Ne.memToValues=za;function Nr(){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}}}Ne.makeInMemoryStore=Nr;function Ar(){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}}}Ne.makeInMemoryCache=Ar;function qa(){return{store:Nr(),cache:Ar(),keyCount:0}}Ne.makeInMemoryMemory=qa;function Re(e,t){if(e.cache.hasValue(t))return e.cache.getValue(t);let r=e.keyCount++,n=Ua.num_to_s(r);return e.store.add(t),e.cache.setValue(t,n),n}function Qa(e,t){$a.config.sort_key&&t.sort();let r=t.join(",");if(e.cache.hasSchema(r))return e.cache.getSchema(r);let n=rt(e,t,void 0);return e.cache.setSchema(r,n),n}function rt(e,t,r){if(t===null)return"";switch(typeof t){case"undefined":if(Array.isArray(r))return rt(e,null,r);break;case"object":if(t===null)return Re(e,null);if(Array.isArray(t)){let n="a";for(let o=0;o<t.length;o++){let i=t[o],a=i===null?"_":rt(e,i,t);n+="|"+a}return n==="a"&&(n="a|"),Re(e,n)}else{let n=Object.keys(t);if(n.length===0)return Re(e,"o|");let o="o",i=Qa(e,n);o+="|"+i;for(let a of n){let s=t[a],p=rt(e,s,t);o+="|"+p}return Re(e,o)}case"boolean":return Re(e,Xt.encodeBool(t));case"number":return Re(e,Xt.encodeNum(t));case"string":return Re(e,Xt.encodeStr(t))}return Ma.throwUnknownDataType(t)}Ne.addValue=rt});var tn=he(it=>{"use strict";Object.defineProperty(it,"__esModule",{value:!0});var Ja=Ut(),ht=Gt(),en=Zt();function Wa(e){let t=en.makeInMemoryMemory(),r=en.addValue(t,e,void 0);return[en.memToValues(t),r]}it.compress=Wa;function Ya(e,t){if(t==="o|")return{};let r={},n=t.split("|"),o=n[1],i=ot(e,o),a=n.length;a-2===1&&!Array.isArray(i)&&(i=[i]);for(let s=2;s<a;s++){let p=i[s-2],l=n[s];l=ot(e,l),r[p]=l}return r}function Ga(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=ot(e,a),o[i]=a}return o}function ot(e,t){if(t===""||t==="_")return null;let r=ht.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 ht.decodeBool(n);case"o|":return Ya(e,n);case"n|":return ht.decodeNum(n);case"a|":return Ga(e,n);default:return ht.decodeStr(n)}}return Ja.throwUnknownDataType(n)}it.decode=ot;function Ha(e){let[t,r]=e;return ot(t,r)}it.decompress=Ha});var Or=he(Ct=>{"use strict";Object.defineProperty(Ct,"__esModule",{value:!0});function Xa(e){for(let t in e)e[t]===void 0&&delete e[t]}Ct.trimUndefined=Xa;function Za(e){Fr(e,new Set)}Ct.trimUndefinedRecursively=Za;function Fr(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)&&Fr(n,t)}}});var _r=he(we=>{"use strict";Object.defineProperty(we,"__esModule",{value:!0});var Lr=tn();we.compress=Lr.compress;we.decompress=Lr.decompress;var es=tn();we.decode=es.decode;var ts=Zt();we.addValue=ts.addValue;var kr=Or();we.trimUndefined=kr.trimUndefined;we.trimUndefinedRecursively=kr.trimUndefinedRecursively});async function at(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 sn(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 $e(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 p=await $e(e,a,r);if(p)return p}}))).find(i=>typeof i=="string")}async function ve(e){let t=[],r=await at(e,e.getRootDir());if(r){let n=pn(r);t.push(...n)}return t}function pn(e){let t=[];if(e&&typeof e=="object"){let r=new Set(Object.keys({...e.dependencies,...e.devDependencies}));for(let n of lo)r.has(n)&&(t.some(o=>o.name===n)||t.push({name:n}))}return t}var lo=["@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 ne(e){let t=ln(e),r=await e.readFile(t);return typeof r=="string"?JSON.parse(r):{}}async function re(e,t){t=typeof t=="object"&&t!=null?t:{};let r=ln(e);await e.writeFile(r,JSON.stringify(t??{},null,2))}function ln(e){let t=e.getRootDir();return e.join(t,"node_modules",".builder","builder-cache.json")}async function Ce(e,t,r){let n={envKey:r,envValue:null,file:""};for(let o of t){let i=e.join(e.getRootDir(),o),a=await co(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 co(e,t){let r=await e.readFile(t);return typeof r=="string"?cn(r):null}function cn(e){let t={},r=e.replace(/\r\n?/gm,`
2
+ `),n;for(;(n=uo.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 uo=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;async function Se(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
+
5
+ ${o}
6
+ ${r}=${n}
7
+
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 Me(e){return await Ce(e,[".env.local",".env.development.local",".env.production.local",".env.development",".env.production",".env"],oe)}async function un(e,t){let r=await Me(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var oe="NEXT_PUBLIC_BUILDER_API_KEY";var O={gen1:"Gen 1",gen2:"Gen 2"};function E(e,t=""){return e.ts.createSourceFile("module.tsx",typeof t=="string"?t:"",e.ts.ScriptTarget.Latest,void 0)}function st(e,t=""){let r=E(e,t?.trim());if(r.statements.length===0)throw new Error(`No statements found in code: ${t}`);return r.statements[0]}function N(e,t,r){if(t){let n=e.ts.createPrinter({newLine:e.ts.NewLineKind.LineFeed,removeComments:r});return e.ts.isSourceFile(t)?n.printFile(t).trim()+`
10
+ `:n.printNode(e.ts.EmitHint.Unspecified,t,e.ts.createSourceFile("module.tsx","",e.ts.ScriptTarget.Latest)).trim()+`
11
+ `}return""}function v(e,t,r){t=X(t),r=X(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=X(e.normalize(o)),o.startsWith(".")||(o="./"+o),o}function X(e){return e.startsWith("\\\\?\\")?e:e.replace(/\\/g,"/")}function Ae(e,t){let r=e.extname(t),n=e.basename(t,r).split(/[\/\\]/),o=n[n.length-1];return mn(o==="index"?e.basename(e.dirname(t)):o)}function mn(e){return j(e).replace(/ /g,"")}function Y(e,t){let r=e.extname(t),n=X(e.basename(t,r)).split("/").pop();return j(n==="index"?e.basename(e.dirname(t)):n)}function k(e,t){let r=X(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 Q(e){return e.sort((t,r)=>t.name.toLocaleLowerCase().localeCompare(r.name.toLocaleLowerCase()))}async function _(e,t,r){if(typeof r!="string"||r==="")throw new Error(`getComponentId(), exportName must be a non-empty string, received: ${r}, ${t}`);return t=e.normalize(t),(await e.hash(t+"#"+r)).substring(0,8)}function Ue(e){return typeof e=="number"}function Fe(e){return typeof e=="boolean"}function U(e){return typeof e=="string"}function ze(e){return typeof e=="string"?/^[A-Z][A-Za-z0-9]*$/.test(e):!1}function J(e){return JSON.parse(JSON.stringify(e))}function Qe(e,t,r,n,o=!0){let i=t.properties.filter(s=>e.ts.isPropertyAssignment(s)),a=mo(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 mo(e,t,r){return t.properties.findIndex(n=>b(e,n)===r)}function Je(e,t){switch(t.kind){case e.ts.SyntaxKind.ArrayLiteralExpression:return go(e,t);case e.ts.SyntaxKind.ObjectLiteralExpression:return fo(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 fo(e,t){let r={};if(t&&e.ts.isObjectLiteralExpression(t)){for(let n of t.properties)if(e.ts.isPropertyAssignment(n)){let o=b(e,n);o&&(r[o]=Je(e,n.initializer))}}return r}function go(e,t){return t&&e.ts.isArrayLiteralExpression(t)?t.elements.map(r=>Je(e,r)):[]}function b(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 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)?xo(e,t,r):typeof t=="object"?ho(e,t,r):e.ts.factory.createIdentifier(t)}function xo(e,t,r){let n=t.map(o=>yt(e,o,r));return e.ts.factory.createArrayLiteralExpression(n,!0)}function ho(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 be(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 f=l.typeArguments;if(f){let c=f[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())}}}if(o)for(let i of o){let a=Co(e,t,i);a&&n.push(a)}return n=n.filter(dn),n.length>0?n:So(e,r)}function Co(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=Tt(l);d.knownType?i=d.builderType:yo(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(f=>f.flags&e.ts.TypeFlags.Object)||p.isIntersection()&&p.types.some(f=>f.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=wo(e,t,t.getTypeFromTypeNode(n.type));s.meta=s.meta||{},p&&p.length>0&&s.type==="string"&&p.every(Do)?s.enum=p.map(Eo):s.meta.ts=a}return n.questionToken||(s.required=!0),s}return null}function So(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 f=l.typeExpression;if(!f)continue;let c="";switch(f.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 h={name:d.right.text,type:c,isRegistered:!1};r.push(h)}}return r.filter(dn)}var Po=["ClassicComponent","FunctionComponent","IntrinsicElements","JSX","ReactNode","ReactElement","ReactPortal"];function yo(e){return typeof e!="string"?!1:!!Po.some(t=>e.includes(t))}function Tt(e){return typeof e=="string"&&(e=e.trim(),To.some(t=>t.value===e))?{builderType:e,knownType:!0}:{builderType:"string",knownType:!1}}var To=[{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 Do(e){return/^['"].*['"]$/.test(e)}function Eo(e){return(e.startsWith('"')||e.startsWith("'"))&&(e.endsWith('"')||e.endsWith("'"))?e.slice(1,-1):e}var wo=(e,t,r)=>{let n=new Set;fn(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},vo=(e,t,r)=>{let n=e.ts.TypeFormatFlags.InElementType|e.ts.TypeFormatFlags.NoTruncation;return t.typeToString(r,void 0,n)},fn=(e,t,r,n)=>{if(r.isUnion())r.types.forEach(o=>{fn(e,t,o,n)});else if(r.isLiteral()){let o=vo(e,t,r);n.add(o)}};function dn(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!bo.has(t.toLowerCase())}var bo=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 W(e,t,r){for(let n of r.properties){if(!e.ts.isPropertyAssignment(n))continue;let o=b(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=Io(e,n.initializer);Z(t,i);continue}if(o==="meta"&&e.ts.isObjectLiteralExpression(n.initializer)){let i=Je(e,n.initializer);i&&typeof i=="object"&&(t.meta=i);continue}}return t}function Io(e,t){let r=[];for(let n of t.elements)e.ts.isObjectLiteralExpression(n)&&r.push(Ro(e,n));return r}function Ro(e,t){let r=Je(e,t),n=_o(r);return n.isRegistered=!0,n}function $(e,t,r){let n=Ao(r);return t=Qe(e,t,"name",n.name,!1),t=Qe(e,t,"description",n.description),t=Qe(e,t,"image",n.image),t=No(e,t,n),jo(e,t)}function No(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 Qe(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=Oo(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 Ao(e){return{name:e.name,description:e.description,image:e.image,inputs:(e.inputs||[]).filter(r=>r.isRegistered).map(Fo)}}function Fo(e){let t={name:e.name,type:e.type};return(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(t.defaultValue=e.defaultValue),U(e.friendlyName)&&(t.friendlyName=e.friendlyName),U(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 Oo(e,t,r){let n=t.elements.filter(o=>{if(!e.ts.isObjectLiteralExpression(o))return!1;let i=o.properties.find(s=>b(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=Lo(e,n,o);return n.sort((o,i)=>{let a=o.properties.find(c=>b(e,c)==="name"),s=i.properties.find(c=>b(e,c)==="name"),p=a?.initializer,l=s?.initializer,d=p&&e.ts.isStringLiteral(p)?p.text:"zz",f=l&&e.ts.isStringLiteral(l)?l.text:"zz";return d.toLowerCase().localeCompare(f.toLowerCase())}),e.ts.factory.updateArrayLiteralExpression(t,n)}function Lo(e,t,r){let n=t.findIndex(o=>o.properties.some(i=>{let a=b(e,i);return e.ts.isPropertyAssignment(i)&&a==="name"&&e.ts.isStringLiteral(i.initializer)&&i.initializer.text===r.name}));if(n>-1)t[n]=gn(e,t[n],r);else{let o=gn(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("name",e.ts.factory.createStringLiteral(r.name))],!0),r);t.push(o)}return t}function gn(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=ko(e,n,r,i);return n=Bo(e,n.filter(i=>{let a=b(e,i);return o.includes(a)})),e.ts.factory.updateObjectLiteralExpression(t,n)}function ko(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 Z(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=Dt(e)}function _o(e){let t=Tt(e.type),r={name:e.name.trim(),type:t.builderType};return U(e.friendlyName)&&e.friendlyName.trim()!==e.name.trim()&&(r.friendlyName=e.friendlyName),(U(e.defaultValue)||Ue(e.defaultValue)||Fe(e.defaultValue))&&(r.defaultValue=e.defaultValue),U(e.helperText)&&(r.helperText=e.helperText),Fe(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),Et(r)}function Dt(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 Et(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 jo(e,t){let r=[...t.properties].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz";if(i==="inputs")return 1;let s=xn.indexOf(i),p=xn.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 xn=["component","name","description"];function Bo(e,t){return[...t].sort((n,o)=>{let i=b(e,n)||"zz",a=b(e,o)||"zz",s=hn.indexOf(i),p=hn.indexOf(a);return s>-1?p>-1&&s>p?1:-1:p>-1?s>-1&&p<s?-1:1:i.localeCompare(a)})}var hn=["name","type"];function Cn(e,t){let r=`Builder.registerComponent(
12
+ `;if(e.appDir)t.acceptsChildren?r+=` withChildren(${t.importName}),
13
+ `:r+=` ${t.importName},
14
+ `;else{let o=v(e,e.registryPath,t.filePath);t.exportName==="default"?t.acceptsChildren?r+=` withChildren(dynamic(() => import(${JSON.stringify(o)}))),
15
+ `:r+=` dynamic(() => import(${JSON.stringify(o)})),
16
+ `:t.acceptsChildren?r+=` withChildren(dynamic(async () => (await import(${JSON.stringify(o)})).${t.exportName})),
17
+ `:r+=` dynamic(async () => (await import(${JSON.stringify(o)})).${t.exportName}),
18
+ `}r+=` {
19
+ name: "${t.name}",
20
+ }
21
+ `,r+=");";let n=st(e,r);return wt(e,n,t)}function wt(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]=$(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function K(e,t){if(!Array.isArray(t)||t.length===0)throw new Error(`createTsProgram() Invalid filePaths: ${t}`);let r=await sn(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=We.get(a);if(!s){try{e.statSync(a).isFile()?s={exists:!0,content:e.readFileSync(a)}:s={exists:!1}}catch{s={exists:!1}}We.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 p=We.get(a);if(p)return E(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=Pn.get(p),s==null&&typeof self<"u"&&typeof fetch=="function"))throw new lt(p)}return a.includes("node_modules")&&(s?We.set(a,{exists:!0,content:s}):We.set(a,{exists:!1})),E(e,s)},readFile:a=>{let s=e.readFileSync(a);return typeof s=="string"?s:void 0},useCaseSensitiveFileNames:()=>!1,writeFile:()=>{}};for(;;)try{return Vo(e,i,t)}catch(a){if(a instanceof lt){await Ko(e,a.libName);continue}throw console.error("createTsProgram",a),new Error(`createTsProgram() Could not create program for: ${t[0]}`)}}function Vo(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=Sn.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,Sn.set(o,i))}i&&(n.options=J(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 Oe(e,t,r){r||(r=await K(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 lt=class{constructor(t){this.libName=t}};async function Ko(e,t){let r=`https://cdn.jsdelivr.net/npm/typescript@${e.ts.version}/lib/${t}`;pt.has(t)||pt.set(t,fetch(r).then(n=>n.text()).then(n=>{Pn.set(t,n)})),await pt.get(t),pt.delete(t)}var Pn=new Map,pt=new Map,We=new Map,Sn=new Map;function D(e,t,r,n="esm"){return Array.isArray(r.namedImports)&&r.namedImports.forEach(o=>{t=$o(e,t,o,r.importPath,!!r.isTypeOnly,n)}),typeof r.defaultImport=="string"&&(t=Mo(e,t,r.defaultImport,r.importPath,n)),t}function $o(e,t,r,n,o,i){return i==="cjs"?Tn(e,t,null,r,n):yn(e,t,null,r,n,o)}function Mo(e,t,r,n,o){return o==="cjs"?Tn(e,t,r,null,n):yn(e,t,r,null,n,!1)}function yn(e,t,r,n,o,i){let a=[...t.statements],s=0,p=!1,l=!1;for(let u=0;u<a.length;u++){let h=a[u];if(!e.ts.isImportDeclaration(h)||(s=u,!h.moduleSpecifier||!e.ts.isStringLiteral(h.moduleSpecifier))||h.moduleSpecifier.text!==o||!!h.importClause?.isTypeOnly!==i)continue;let m=[],g=h.importClause?.namedBindings;if(g&&e.ts.isNamedImports(g)&&g.elements&&m.push(...g.elements),typeof n=="string"){if(m.some(C=>C.name.text===n))return t;m.push(e.ts.factory.createImportSpecifier(!1,void 0,e.ts.factory.createIdentifier(n))),m.sort((C,P)=>C.name.text.localeCompare(P.name.text)),p=!0}let x=h.importClause?h.importClause.name:void 0;if(typeof r=="string"){if(x&&x.text===r)return t;x=e.ts.factory.createIdentifier(r),l=!0}if(p||l)return a[u]=e.ts.factory.updateImportDeclaration(h,void 0,e.ts.factory.createImportClause(i,x,e.ts.factory.createNamedImports(m)),h.moduleSpecifier,void 0),e.ts.factory.updateSourceFile(t,a)}let d,f;typeof r=="string"&&(d=e.ts.factory.createIdentifier(r)),typeof n=="string"&&(f=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,f),e.ts.factory.createStringLiteral(o));return a.splice(s,0,c),e.ts.factory.updateSourceFile(t,a)}function Tn(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],f=d[l],c=f.initializer;if(!c||!e.ts.isCallExpression(c))continue;let u=c.expression;if(!e.ts.isIdentifier(u)||u.text!=="require"||c.arguments.length!==1)continue;let h=c.arguments[0];if(e.ts.isStringLiteral(h)&&(a=s,h.text===o)){if(e.ts.isIdentifier(f.name)&&typeof r=="string")return f.name.text===r?t:(d[l]=e.ts.factory.updateVariableDeclaration(f,e.ts.factory.createIdentifier(r),f.exclamationToken,f.type,f.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(f.name)&&typeof n=="string"){let m=[...f.name.elements];return m.some(x=>!e.ts.isBindingElement(x)||!e.ts.isIdentifier(x.name)?!1:x.name.text===n)?t:(m.push(e.ts.factory.createBindingElement(void 0,void 0,n)),m.sort((x,C)=>!e.ts.isBindingElement(x)||!e.ts.isIdentifier(x.name)||!e.ts.isBindingElement(C)||!e.ts.isIdentifier(C.name)?0:x.name.text.localeCompare(C.name.text)),d[l]=e.ts.factory.updateVariableDeclaration(f,e.ts.factory.createObjectBindingPattern(m),f.exclamationToken,f.type,f.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"?zo(e,t):Uo(e,t)}function Uo(e,t){let r=[];for(let n of t.statements){if(e.ts.isExportDeclaration(n)){if(n.exportClause&&e.ts.isNamedExports(n.exportClause)){for(let o of n.exportClause.elements)if(n.moduleSpecifier&&r.push({isDefaultExport:!1,statement:n,node:o}),e.ts.isIdentifier(o.name)){let i=o.name.text;for(let a of t.statements)if(e.ts.isVariableStatement(a))for(let s of a.declarationList.declarations)e.ts.isIdentifier(s.name)&&s.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a});else e.ts.isFunctionDeclaration(a)&&a.name&&a.name.text===i&&r.push({isDefaultExport:!1,statement:a,node:a})}}continue}if(e.ts.isExportAssignment(n)){let o=n.flags===e.ts.NodeFlags.None,i=n.expression;if(e.ts.isIdentifier(i)){let a=i.text;for(let s of t.statements){if(e.ts.isVariableStatement(s))for(let 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 zo(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 qo(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 Pe(e,t,r,n){let o=qo(e,r,n);if(o){let i=await Ye(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 Le(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 M(e,t,r){let n=Le(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 ct(e,t){if(t){if(Qo(e,t))return!0;let r=!1;if(t.forEachChild(n=>{ct(e,n)&&(r=!0)}),r)return!0}return!1}function Qo(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 Ye(e,t){let r=e.extname(t).toLowerCase();if(r===""||!vt.includes(r)){for(let n of vt){let o=t+n;if(await e.exists(o))return o}for(let n of vt){let o=e.join(t,"index"+n);if(await e.exists(o))return o}}return t}var vt=[".tsx",".jsx",".ts",".js"];function Ge(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=Jo(e,i);return a?[{name:a}]:void 0}function Jo(e,t){if(typeof t=="string"){t=e.normalize(X(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 ie(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 ke(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await K(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=be(e,o,l.node.fnNode))}return a}))}async function _e(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await Oe(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 be(e,o,a.node.fnNode)}return[]}async function Dn(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 Wo(e,t,n)}return null}function Wo(e,t,r){let n=E(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 Yo(e,t,r,a);o.push(...s)})),o}async function Yo(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=k(e,r);if(e.ts.isVariableStatement(n.node)){for(let s of n.node.declarationList.declarations){if(!e.ts.isIdentifier(s.name)||!ze(s.name.text))continue;let p=He(e,t,s.initializer);if(p){let l=p.name||s.name.text,d=n.isDefaultExport?"default":l,f=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await _(e,r,d),displayFilePath:A(e,r),name:j(l),inputs:[],exportName:d,exportType:f,importName:l,filePath:r,relFilePath:i,importPath:a,dependencies:p.deps},node:p})}}return o}if(e.ts.isArrowFunction(n.node)){let s=He(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:Ae(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&&!ze(s))return o;let p=He(e,t,n.node);if(p){let l=p.name||Y(e,r),d=n.isDefaultExport||!p.name?"default":p.name,f=n.isDefaultExport?"default":"named";o.push({cmpInfo:{id:await _(e,r,d),displayFilePath:A(e,r),name:l,inputs:[],exportName:d,exportType:f,importName:p.name||Ae(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:p.deps},node:p})}return o}if(e.ts.isExportSpecifier(n.node)&&ze(n.node.getText())){let s=He(e,t,n.node);if(s){let p=s.name||Y(e,r),l=n.isDefaultExport||!s.name?"default":s.name,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:s.name||Ae(e,r),filePath:r,relFilePath:i,importPath:a,dependencies:s.deps},node:s})}return o}return o}function He(e,t,r){if(!r)return null;if(e.ts.isArrowFunction(r))return ct(e,r.body)?{name:"",fnNode:r,deps:Ge(e,t,r)}:null;if(e.ts.isFunctionExpression(r)||e.ts.isFunctionDeclaration(r))return ct(e,r.body)?{name:r.name?.text||"",fnNode:r,deps:Ge(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:He(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)||!ze(o.text))return null;let a=t.getTypeAtLocation(o).getCallSignatures();if(a.length>0&&a[0].getParameters().length>0)return{name:"",fnNode:o,deps:Ge(e,t,o)}}if(e.ts.isExportSpecifier(r)){let n=r.name;return{name:n.text||"",fnNode:n,deps:Ge(e,t,n)}}return null}async function En(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(Ho(e,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 Go=new Set(["node_modules","dist"]);function Ho(e,t){for(let r of Go)if(e.dirname(t).includes(r))return!0;return!1}async function wn(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&&Xo.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 Xo=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 ae(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,[...bt(e,r),...bt(e,n),...bt(e,o),...i])}function H(e){let t=e.split(`
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
+ `),/^builder.init(.*)$/.test(o)&&(o=o+`
25
+ `),t[n-1]&&!t[n-1].includes("*/")&&(o.trim().startsWith("Builder.registerComponent")&&(o=`
26
+ `+o),o.trim().startsWith("/**")&&(o=`
27
+ `+o),o.trim().startsWith("module.exports")&&(o=`
28
+ `+o),o.trim().startsWith("export ")&&(o=`
29
+ `+o)),e=o+`
30
+ `+e}return e.trim()+`
31
+ `}function bt(e,t){return t.sort((r,n)=>{let o=vn(e,r),i=vn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())})}function vn(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 In(e){return typeof e=="string"&&!e.includes("'use client'")&&!e.includes(`"use client"'`)&&(e=`"use client"
32
+ ${e}`),e}function Rn(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 Te(e,t){return t.sort((r,n)=>{if(e.ts.isObjectLiteralExpression(r)&&e.ts.isObjectLiteralExpression(n)){let o=bn(e,r),i=bn(e,n);return o.toLocaleLowerCase().localeCompare(i.toLocaleLowerCase())}return 1})}function bn(e,t){let r=t.properties.find(n=>b(e,n)==="name");return r&&e.ts.isPropertyAssignment(r)&&e.ts.isStringLiteral(r.initializer)?r.initializer.text:"zzzz"}async function Nn(e){let t=await e.readFile(e.registryPath);return t?Zo(e,t):{components:[],sourceFile:E(e,"")}}async function Zo(e,t){let r=E(e,t);return e.sdkVersion===O.gen2?ti(e,r):ei(e,r)}async function ei(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 f=l[0];if(e.ts.isCallExpression(f)){let c=e.ts.isIdentifier(f.expression)&&f.expression.text;if(c==="withChildren"){let h=Nt(e,f.arguments[0]);if(e.ts.isCallExpression(h)){let m=await It(e,n,h,d,!0);m&&r.push(m)}else{let m=h;if(e.ts.isIdentifier(m)){let g=await Rt(e,t,n,m,d,!0);g&&r.push(g)}}continue}if(c==="dynamic"){let h=await It(e,n,f,d,!1);h&&r.push(h);continue}let u=Nt(e,f.arguments[0]);if(e.ts.isCallExpression(u)&&e.ts.isIdentifier(u.expression)&&u.expression.text==="dynamic"){let h=await It(e,n,u,d,!1);h&&r.push(h);continue}if(e.ts.isIdentifier(u)){let h=await Rt(e,t,n,u,d,!1);h&&r.push(h);continue}continue}if(e.ts.isIdentifier(f)){let c=await Rt(e,t,n,f,d,!1);c&&r.push(c);continue}}return{sourceFile:t,components:Q(r)}}function Nt(e,t){return e.ts.isCallExpression(t)?(e.ts.isIdentifier(t.expression)&&t.expression.text)==="dynamic"?t:Nt(e,t.arguments[0]):t}async function It(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 f=d.text;i.filePath=await je(e,f),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=k(e,i.filePath),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 f=d.expression;if(!e.ts.isCallExpression(f)||f.expression.kind!==e.ts.SyntaxKind.ImportKeyword||f.arguments.length!==1)return null;let u=f.arguments[0];if(!e.ts.isStringLiteral(u)||!e.ts.isIdentifier(p.name))return null;let h=u.text;i.filePath=await je(e,h),i.relFilePath=e.relative(e.getRootDir(),i.filePath),i.importPath=k(e,i.filePath),i.name=j(p.name.text),i.importName=p.name.text,i.exportName=p.name.text,i.exportType="named"}else return null;return i=W(e,i,n),i.displayFilePath=A(e,i.filePath),i.filePath&&i.exportName&&(i.id=await _(e,i.filePath,i.exportName)),i}async function Rt(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;a.filePath=await je(e,l.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=k(e,a.filePath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let l=s.find(f=>!f.importClause||!f.importClause.namedBindings||!e.ts.isNamedImports(f.importClause.namedBindings)?!1:f.importClause.namedBindings.elements.some(c=>c.name.text===n.text));if(!l)return null;let d=l.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;a.filePath=await je(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=k(e,a.filePath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=W(e,a,o),a.displayFilePath=A(e,a.filePath),a.filePath&&a.exportName&&(a.id=await _(e,a.filePath,a.exportName)),a}function je(e,t){return Ye(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}function An(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 f=d.expression;if(!e.ts.isCallExpression(f))continue;let c=f.expression;if(!e.ts.isPropertyAccessExpression(c))continue;let u=c.expression;if(!e.ts.isIdentifier(u)||u.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(oe)),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 ti(e,t){let r=[],n=M(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await At(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:Q(r)}}async function At(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};ni(e,r)&&(n.acceptsChildren=!0);for(let i of r.properties){if(!e.ts.isPropertyAssignment(i)||!e.ts.isIdentifier(i.name))continue;if(b(e,i)==="component"){let s,{initializer:p}=i;if(e.ts.isCallExpression(p)&&(e.ts.isIdentifier(p.expression)&&p.expression.text)==="dynamic"){let u=p.arguments;if(u.length===0)return null;let h=u[0];if(!e.ts.isArrowFunction(h))return null;let m=h.body;if(e.ts.isCallExpression(m)){if(m.expression.kind!==e.ts.SyntaxKind.ImportKeyword||m.arguments.length!==1)return null;let x=m.arguments[0];if(!e.ts.isStringLiteral(x))return null;let C=x.text;n.filePath=await je(e,C),n.relFilePath=e.relative(e.getRootDir(),n.filePath),n.importPath=k(e,n.filePath),n.name=Y(e,n.filePath),n.importName="default",n.exportName="default",n.exportType="default"}else if(e.ts.isPropertyAccessExpression(m)){let g=m.expression;if(!e.ts.isParenthesizedExpression(g))return null;let x=g.expression;if(!e.ts.isAwaitExpression(x))return null;let C=x.expression;if(!e.ts.isCallExpression(C)||C.expression.kind!==e.ts.SyntaxKind.ImportKeyword||C.arguments.length!==1)return null;let I=C.arguments[0];if(!e.ts.isStringLiteral(I)||!e.ts.isIdentifier(m.name))return null;let T=I.text;n.filePath=await je(e,T),n.relFilePath=e.relative(e.getRootDir(),n.filePath),n.importPath=k(e,n.filePath),n.name=j(m.name.text),n.importName=m.name.text,n.exportName=m.name.text,n.exportType="named"}else return null;return n=W(e,n,r),n.displayFilePath=A(e,n.filePath),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}if(e.ts.isIdentifier(p)&&(s=p.text),!s)continue;n.name===""&&(n.name=j(s)),n.importName=s;let l=await Pe(e,e.registryPath,t,s);if(!l)continue;n.filePath=l.filePath,n.relFilePath=l.relFilePath,n.importPath=k(e,l.filePath),n.displayFilePath=l.displayFilePath,n.exportType=l.exportType;let d=t.statements.filter(c=>e.ts.isImportDeclaration(c)),f=d.find(c=>c.importClause&&c.importClause.name?.text===s);if(f){let c=f.moduleSpecifier;if(!e.ts.isStringLiteral(c))return null;n.exportName="default"}else{let c=d.find(h=>!h.importClause||!h.importClause.namedBindings||!e.ts.isNamedImports(h.importClause.namedBindings)?!1:h.importClause.namedBindings.elements.some(m=>m.name.text===s));if(!c)return null;let u=c.moduleSpecifier;if(!e.ts.isStringLiteral(u))return null;n.exportName=s}continue}}return n=W(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}function ni(e,t){for(let r of t.properties){if(!e.ts.isPropertyAssignment(r)||!e.ts.isIdentifier(r.name))continue;if(b(e,r)==="canHaveChildren"){let{initializer:o}=r;return o.kind===e.ts.SyntaxKind.TrueKeyword}}return!1}function se(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 f=d.name;if(f&&e.ts.isIdentifier(f)){let c=f.text;Fn(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;Fn(e,t,p)||(a=!0)}a&&(r.splice(o,1),n=!0)}}return n?e.ts.factory.updateSourceFile(t,r):t}function Fn(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 pe(e,t,r,n,o,i,a){let s=null,p=null,l=null,d=-1;t=J(t),r=J(r);let f=t.find(u=>u.id===e),c=r.find(u=>u.id===e);if(n)c||(s={...J(f),inputs:J(f.inputs).map(u=>(u.isRegistered=!0,u))},d=r.length,r.push(s));else if(typeof c?.nodeIndex=="number"&&c.nodeIndex>-1){if(o)d=c.nodeIndex,p=J(c),r=r.filter(u=>u.id!==e);else if(i!=null)ri(c,i),d=c.nodeIndex,l=c;else if(a!=null){let u=c.inputs.find(h=>h.name===a.name);u&&(a.registerInput===!1?u.isRegistered=!1:(oi(u,a),u.isRegistered=!0),l=c,d=c.nodeIndex)}}return{addCmpToRegistry:s,removeCmpFromRegistry:p,updateRegisteredCmp:l,nodeIndex:d,components:ee(t,r)}}function ee(e,t){let r=Q([...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(Et),n.inputs.sort((i,a)=>i.name.toLowerCase().localeCompare(a.name.toLowerCase()));let o=t.find(i=>i.id===n.id);o&&(o.acceptsChildren=Dt(n))}),r}function ri(e,t){U(t.name)?e.name=t.name:t.name===null&&(e.name=e.importName),U(t.description)?e.description=t.description:t.description===null&&delete e.description,U(t.image)?e.image=t.image:t.image===null&&delete e.image}function oi(e,t){U(t.type)&&(e.type=t.type),U(t.friendlyName)?e.friendlyName=t.friendlyName:t.friendlyName===null&&delete e.friendlyName,U(t.defaultValue)||Ue(t.defaultValue)||Fe(t.defaultValue)?e.defaultValue=t.defaultValue:t.defaultValue===null&&delete e.defaultValue,U(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 De(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 K(e,[...t])}function Ee(e,t,r){return Le(e,t,r.variableName)?t:ii(e,t,r)}function ii(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 le(e,t,r,n,o,i,a,s){let p=await De(e),[l,d,f,c]=await Promise.all([wn(e,p),Nn(e),Ft(e),Me(e)]),u=l.map(P=>P.cmpInfo),h=d.components,m={components:ee(u,h),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:ie(u),publicApiKey:c.envValue??void 0,devToolsVersion:e.version};if(s)return m.components=await ke(e,m.components),m;let g=!1,x=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let P=C.map(S=>{let R=l.find(B=>B.cmpInfo.id===S);if(!R)throw new Error(`Component ${S} not found`);return R}),I=Array.from(new Set(P.map(S=>S.cmpInfo.filePath))),T=await K(e,I);for(let S of P){let R=m.components.find(w=>w.id===S.cmpInfo.id),B=await _e(e,S,T);Z(R,B);let F=u.findIndex(w=>w.id===S.cmpInfo.id);u[F].inputs=B;let y=pe(S.cmpInfo.id,u,h,r,n,o,i);if(e.sdkVersion===O.gen2){let{elements:w,elmIndex:V,statementIndex:z,statement:q,variableDeclaration:L}=await pi(e,x,S);if(y.addCmpToRegistry)w.push(si(e,y.addCmpToRegistry)),g=!0;else if(y.removeCmpFromRegistry)w.splice(V,1),g=!0;else if(y.updateRegisteredCmp){let fe=$(e,w[V],y.updateRegisteredCmp);w[V]=e.ts.factory.updateObjectLiteralExpression(fe,[Ln(e,y.updateRegisteredCmp),...fe.properties.slice(1)]),g=!0}if(g&&a){let fe=[...x.statements];fe[z]=e.ts.factory.updateVariableStatement(q,q.modifiers,e.ts.factory.updateVariableDeclarationList(q.declarationList,[e.ts.factory.updateVariableDeclaration(L,L.name,L.exclamationToken,L.type,e.ts.factory.createArrayLiteralExpression(Te(e,w)))])),x=e.ts.factory.updateSourceFile(x,fe),x=On(e,y,x),x=D(e,x,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-react",isTypeOnly:!0}),x=Ee(e,x,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),m.components=y.components,h=y.components.filter(to=>to.isRegistered)}}else{let w=[...x.statements];y.addCmpToRegistry?(w.push(Cn(e,y.addCmpToRegistry)),g=!0):y.removeCmpFromRegistry?(w.splice(y.nodeIndex,1),g=!0):y.updateRegisteredCmp&&(w[y.nodeIndex]=wt(e,w[y.nodeIndex],y.updateRegisteredCmp),g=!0),g&&a&&(x=e.ts.factory.updateSourceFile(x,w),x=D(e,x,{namedImports:["Builder","builder"],importPath:"@builder.io/react"}),x=An(e,x,f),x=On(e,y,x),R?.acceptsChildren&&(x=D(e,x,{namedImports:["withChildren"],importPath:"@builder.io/react"})),m.components=y.components,h=y.components.filter(V=>V.isRegistered))}}}if(g&&a){x=se(e,x),x=ae(e,x),e.appDir&&(x=Rn(e,x));let P=N(e,x);P=H(P),e.appDir&&(P=In(P)),P=await e.formatCode(e.registryPath,P),await e.writeFile(e.registryPath,P)}return m}function Ln(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.appDir?e.ts.factory.createPropertyAssignment("component",r):e.ts.factory.createPropertyAssignment("component",li(e,t))}function ai(e){return e.ts.factory.createPropertyAssignment("canHaveChildren",e.ts.factory.createTrue())}function si(e,t){return $(e,e.ts.factory.createObjectLiteralExpression([Ln(e,t),...t.acceptsChildren?[ai(e)]:[]],!0),t)}async function pi(e,t,r){let n=M(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 At(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}function On(e,t,r){if(e.appDir){let n=t.addCmpToRegistry||t.updateRegisteredCmp;if(n){let o=v(e,e.registryPath,n.filePath);n.exportType==="default"?r=D(e,r,{defaultImport:n.importName,importPath:o}):n.exportType==="named"&&(r=D(e,r,{namedImports:[n.importName],importPath:o}))}}else r=D(e,r,{defaultImport:"dynamic",importPath:"next/dynamic"});return r}function li(e,t){let r=v(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 kn(e){let t=[],r=await gi(e,t);return await hi(e,r,t),e.appDir?(e.debug(`ensure builder setup for next.js app ${e.appDir}`),await ui(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure builder setup for next.js pages ${e.pagesDir}`),await fi(e,e.pagesDir,t)),t}async function _n(e){let t=[];return e.appDir?(e.debug(`ensure figma-imports setup for next.js app ${e.appDir}`),await ci(e,e.appDir,t)):e.pagesDir&&(e.debug(`ensure figma-imports setup for next.js pages ${e.pagesDir}`),await di(e,e.pagesDir,t)),t}async function ci(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,jn({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function ui(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,jn({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,mi(e));await e.writeFile(e.builderComponentPath,i),r.push({filePath:e.builderComponentPath,modifiedType:"create"})}}function mi(e){let t=e.typescriptEnabled;return e.sdkVersion===O.gen2?`
33
+ "use client";
34
+ import { ${t?"BuilderContent, ":""} isPreviewing, Content } from "@builder.io/sdk-react";
35
+ import DefaultErrorPage from "next/error";
36
+ import { CUSTOM_COMPONENTS } from ${JSON.stringify(v(e,e.builderComponentPath,e.registryPath))};
37
+ ${t?`
38
+ interface BuilderPageProps {
39
+ content: BuilderContent | null;
40
+ model: string;
41
+ }`:""}
42
+
43
+ // Builder Public API Key set in .env file
44
+ const builderApiKey = process.env.${oe}${t?"!":""};
45
+
46
+ export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":""}) {
47
+ // Call the isPreviewing hook to determine if
48
+ // the page is being previewed in Builder
49
+ // If "content" has a value or the page is being previewed in Builder,
50
+ // render the BuilderComponent with the specified content and model props.
51
+ if (content || isPreviewing()) {
52
+ return <Content
53
+ content={content}
54
+ apiKey={builderApiKey}
55
+ model={model}
56
+ customComponents={CUSTOM_COMPONENTS}
57
+ />;
58
+ }
59
+ // If the "content" is falsy and the page is
60
+ // not being previewed in Builder, render the
61
+ // DefaultErrorPage with a 404.
62
+ return <DefaultErrorPage statusCode={404} />;
63
+ }
64
+ `.trimStart():`
65
+ "use client";
66
+ ${t?'import { ComponentProps } from "react";':""}
67
+ import { BuilderComponent, useIsPreviewing } from "@builder.io/react";
68
+ import { ${t?"BuilderContent, ":""}builder } from '@builder.io/sdk';
69
+ import DefaultErrorPage from "next/error";
70
+ import ${JSON.stringify(v(e,e.builderComponentPath,e.registryPath))};
71
+ ${t?`
72
+ type BuilderPageProps = ComponentProps<typeof BuilderComponent>;`:""}
73
+
74
+ // Builder Public API Key set in .env file
75
+ builder.init(process.env.${oe}${t?"!":""});
76
+
77
+ export function RenderBuilderContent({ content, model }${t?": BuilderPageProps":""}) {
78
+ // Call the useIsPreviewing hook to determine if
79
+ // the page is being previewed in Builder
80
+ const isPreviewing = useIsPreviewing();
81
+ // If "content" has a value or the page is being previewed in Builder,
82
+ // render the BuilderComponent with the specified content and model props.
83
+ if (content || isPreviewing) {
84
+ return <BuilderComponent content={content} model={model} />;
85
+ }
86
+ // If the "content" is falsy and the page is
87
+ // not being previewed in Builder, render the
88
+ // DefaultErrorPage with a 404.
89
+ return <DefaultErrorPage statusCode={404} />;
90
+ }
91
+ `.trimStart()}function jn({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=v(e,t,e.builderComponentPath);return e.sdkVersion===O.gen2?`
92
+ import { fetchOneEntry } from "@builder.io/sdk-react";
93
+ import { RenderBuilderContent } from ${JSON.stringify(o)};
94
+
95
+ // Builder Public API Key set in .env file
96
+ const PUBLIC_API_KEY = process.env.${oe}${n?"!":""};
97
+
98
+ ${n?`
99
+ interface PageProps {
100
+ params: {
101
+ page: string[];
102
+ };
103
+ }`:""}
104
+
105
+ export default async function Page(props${n?": PageProps":""}) {
106
+ const builderModelName = "${r}";
107
+
108
+ // Use the page path specified in the URL to fetch the content
109
+ const urlPath = "/" + (props.params?.page?.join("/") || "");
110
+
111
+ const content = await fetchOneEntry({
112
+ // Get the page content from Builder with the specified options
113
+ apiKey: PUBLIC_API_KEY,
114
+ model: builderModelName,
115
+ userAttributes: { urlPath },
116
+ });
117
+
118
+ return (
119
+ <>
120
+ {/* Render the Builder page */}
121
+ <RenderBuilderContent content={content} model={builderModelName} />
122
+ </>
123
+ );
124
+ }
125
+ `.trimStart():`
126
+ import { builder } from "@builder.io/sdk";
127
+ import { RenderBuilderContent } from ${JSON.stringify(o)};
128
+
129
+ // Builder Public API Key set in .env file
130
+ builder.init(process.env.${oe}${n?"!":""});
131
+ ${n?`
132
+ interface PageProps {
133
+ params: {
134
+ page: string[];
135
+ };
136
+ }`:""}
137
+
138
+ export default async function Page(props${n?": PageProps":""}) {
139
+ const builderModelName = "${r}";
140
+
141
+ const content = await builder
142
+ // Get the page content from Builder with the specified options
143
+ .get(builderModelName, {
144
+ userAttributes: {
145
+ // Use the page path specified in the URL to fetch the content
146
+ urlPath: "/" + (props?.params?.page?.join("/") || ""),
147
+ },
148
+ })
149
+ // Convert the result to a promise
150
+ .toPromise();
151
+
152
+ return (
153
+ <>
154
+ {/* Render the Builder page */}
155
+ <RenderBuilderContent content={content} model={builderModelName} />
156
+ </>
157
+ );
158
+ }
159
+ `.trimStart()}async function fi(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,Bn({sys:e,routePath:o,modelName:"page"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}async function di(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,Bn({sys:e,routePath:o,modelName:"figma-imports"}));await e.writeFile(o,i),r.push({filePath:o,modifiedType:"create"})}}function Bn({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled;return e.sdkVersion===O.gen2?`
160
+ import React from "react";
161
+ import { useRouter } from "next/router";
162
+ ${n?'import type { BuilderContent } from "@builder.io/sdk-react";':""}
163
+ import {
164
+ Content,
165
+ fetchEntries,
166
+ fetchOneEntry,
167
+ isPreviewing,
168
+ } from "@builder.io/sdk-react";
169
+ import DefaultErrorPage from "next/error";
170
+ import Head from "next/head";
171
+ ${n?'import { GetStaticProps } from "next";':""}
172
+ import { CUSTOM_COMPONENTS } from ${JSON.stringify(v(e,e.builderComponentPath,e.registryPath))};
173
+
174
+ const BUILDER_API_KEY = process.env.${oe}${n?"!":""};
175
+
176
+ // Define a function that fetches the Builder
177
+ // content for a given page
178
+ export const getStaticProps${n?": GetStaticProps":""} = async ({ params }) => {
179
+ const urlPath =
180
+ "/" +
181
+ (Array.isArray(params?.page) ? params.page.join("/") : params?.page || "");
182
+
183
+ // Fetch the builder content for the given page
184
+ const page = await fetchOneEntry({
185
+ apiKey: BUILDER_API_KEY,
186
+ model: "${r}",
187
+ userAttributes: { urlPath },
188
+ });
189
+
190
+ return {
191
+ // Return the page content as props
192
+ props: { page },
193
+ // Revalidate the content every 5 seconds
194
+ revalidate: 5,
195
+ };
196
+ };
197
+
198
+ ${r==="page"?`
199
+ // Define a function that generates the
200
+ // static paths for all pages in Builder
201
+ export async function getStaticPaths() {
202
+ // Get a list of all pages in Builder
203
+ const pages = await fetchEntries({
204
+ apiKey: BUILDER_API_KEY,
205
+ model: "page",
206
+ // We only need the URL field
207
+ fields: "data.url",
208
+ options: { noTargeting: true },
209
+ });
210
+ // Generate the static paths for all pages in Builder
211
+ return {
212
+ paths: pages.map((page) => \`\${page.data?.url}\`),
213
+ fallback: "blocking",
214
+ };
215
+ }
216
+ `:""}
217
+
218
+ // Define the Page component
219
+ export default function Page(props${n?": { page: BuilderContent | null }":""}) {
220
+ const router = useRouter();
221
+ const canShowContent = props.page || isPreviewing(router.asPath);
222
+
223
+ // If the page content is not available
224
+ // and not in preview/editing mode, show a 404 error page
225
+ if (!canShowContent) {
226
+ return <DefaultErrorPage statusCode={404} />;
227
+ }
228
+
229
+ // If the page content is available, render
230
+ // the BuilderComponent with the page content
231
+ return (
232
+ <>
233
+ <Head>
234
+ <title>{props.page?.data?.title}</title>
235
+ </Head>
236
+ {/* Render the Builder page */}
237
+ <Content
238
+ model="${r}"
239
+ content={props.page}
240
+ apiKey={BUILDER_API_KEY}
241
+ customComponents={CUSTOM_COMPONENTS}
242
+ />
243
+ </>
244
+ );
245
+ }
246
+
247
+ `:`
248
+ import React from "react";
249
+ import { useRouter } from "next/router";
250
+ import { BuilderComponent, builder, useIsPreviewing } from "@builder.io/react";
251
+ import DefaultErrorPage from "next/error";
252
+ import Head from "next/head";${n?`
253
+ import { BuilderContent } from "@builder.io/sdk";`:""}${n?`
254
+ import { GetStaticProps } from "next";`:""}
255
+ import ${JSON.stringify(v(e,t,e.registryPath))};
256
+
257
+ builder.init(process.env.${oe}${n?"!":""});
258
+
259
+ // Define a function that fetches the Builder
260
+ // content for a given page
261
+ export const getStaticProps${n?": GetStaticProps":""} = async ({ params }) => {
262
+ // Fetch the builder content for the given page
263
+ const page = await builder
264
+ .get("${r}", {
265
+ userAttributes: {
266
+ urlPath: "/" + ((params?.page${n?" as string[]":""})?.join("/") || ""),
267
+ },
268
+ })
269
+ .toPromise();
270
+
271
+ // Return the page content as props
272
+ return {
273
+ props: {
274
+ page: page || null,
275
+ },
276
+ // Revalidate the content every 5 seconds
277
+ revalidate: 5,
278
+ };
279
+ };
280
+
281
+ ${r==="page"?`// Define a function that generates the
282
+ // static paths for all pages in Builder
283
+ export async function getStaticPaths() {
284
+ // Get a list of all pages in Builder
285
+ const pages = await builder.getAll("page", {
286
+ // We only need the URL field
287
+ fields: "data.url",
288
+ options: { noTargeting: true },
289
+ });
290
+
291
+ // Generate the static paths for all pages in Builder
292
+ return {
293
+ paths: pages.map((page) => String(page.data?.url)).filter(url => url !== '/'),
294
+ fallback: 'blocking',
295
+ };
296
+ }`:""}
297
+
298
+ // Define the Page component
299
+ export default function Page({ page }${n?": { page: BuilderContent | null }":""}) {
300
+ const router = useRouter();
301
+ const isPreviewing = useIsPreviewing();
302
+
303
+ // If the page content is not available
304
+ // and not in preview mode, show a 404 error page
305
+ if (!page && !isPreviewing) {
306
+ return <DefaultErrorPage statusCode={404} />;
307
+ }
308
+
309
+ // If the page content is available, render
310
+ // the BuilderComponent with the page content
311
+ return (
312
+ <>
313
+ <Head>
314
+ <title>{page?.data?.title}</title>
315
+ </Head>
316
+ {/* Render the Builder page */}
317
+ <BuilderComponent model="${r}" content={page || undefined} />
318
+ </>
319
+ );
320
+ }
321
+ `.trimStart()}async function gi(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:p}=xi(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,p),t.push({filePath:a,modifiedType:"create"})),i}function xi(e){let t=e.typescriptEnabled,r=`
322
+ "use client"
323
+ import React, { useState } from "react";
324
+ import styles from "./styles.module.css";
325
+ ${t?`
326
+ interface CounterProps {
327
+ initialCount?: number;
328
+ }`:""}
329
+
330
+ function Counter({ initialCount = 99 }${t?": CounterProps":""}) {
331
+ const [count, setCount] = useState(initialCount);
332
+
333
+ const increment = () => {
334
+ setCount((prevCount) => prevCount + 1);
335
+ };
336
+
337
+ const decrement = () => {
338
+ setCount((prevCount) => prevCount - 1);
339
+ };
340
+
341
+ return (
342
+ <div className={styles.counter}>
343
+ <button className={styles.btn} onClick={decrement}>
344
+ -
345
+ </button>
346
+ <span className={styles.count}>{count}</span>
347
+ <button className={styles.btn} onClick={increment}>
348
+ +
349
+ </button>
350
+ </div>
351
+ );
352
+ }
353
+
354
+ export default Counter;
355
+ `.trimStart(),n=`
356
+ .counter {
357
+ margin: 32px auto;
358
+ display: flex;
359
+ width: 100%;
360
+ max-width: 190px;
361
+ }
362
+
363
+ .btn {
364
+ width: 42px;
365
+ font-size: 32px;
366
+ font-weight: bold;
367
+ background-color: #1c6bd1;
368
+ color: white;
369
+ border: none;
370
+ border-radius: 4px;
371
+ cursor: pointer;
372
+ line-height: 1.4;
373
+ }
374
+
375
+ .btn:hover {
376
+ opacity: 0.8;
377
+ }
378
+
379
+ .count {
380
+ flex: 1;
381
+ font-size: 42px;
382
+ text-align: center;
383
+ }
384
+ `.trimStart();return{component:r,styles:n}}async function hi(e,t,r){if(!await e.exists(e.registryPath)){if(e.sdkVersion===O.gen2){let i=Ci(e);await e.writeFile(e.registryPath,i)}else await e.writeFile(e.registryPath,"");r.push({filePath:e.registryPath,modifiedType:"create"})}let o=(await le(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===t);o&&await le(e,o.id,!0,!1,null,null,!0,!1)}function Ci(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-react";
385
+
386
+ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
387
+ ];`:`export const CUSTOM_COMPONENTS = [
388
+ ];
389
+ `}async function Be(e){let t=await at(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 O.gen2;if(r.has("@builder.io/react"))return O.gen1}return null}async function Vn(e){let t=await Si(e);return{builderPageOptions:async()=>({templateContentId:"3de2f13211234071a4b19a17b4fbc5a7",pathname:"/builder-demo",title:"Builder + Next.js Demo Page"}),ensureBuilderSetup:()=>kn(t),ensureFigmaImportPage:()=>_n(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>le(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await le(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>le(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>le(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>le(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>le(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Me(t),setPublicApiKey:n=>un(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===O.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:()=>ne(t),setCache:n=>re(t,n)}}async function Si(e){let t=e.getRootDir(),r=e.join(t,"src"),n=await Pi(e),o=await Ft(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,appDir:null,pagesDir:null,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",nextConfigPath:n,typescriptEnabled:o};if(e.sdkVersion?a.sdkVersion=e.sdkVersion:a.sdkVersion=await Be(a),await e.exists(r)){a.srcDir=r,a.componentsDir=e.join(r,"components");let s=e.join(r,"app");await e.exists(s)&&(a.appDir=s);let p=e.join(r,"pages");await e.exists(p)&&(a.pagesDir=p),a.registryPath=e.join(r,i)}else a.componentsDir=e.join(t,"components"),a.registryPath=e.join(t,i);if(a.builderComponentPath=e.join(a.componentsDir,`builder.${o?"tsx":"jsx"}`),!a.appDir){let s=e.join(t,"app");await e.exists(s)&&(a.appDir=s)}if(!a.pagesDir){let s=e.join(t,"pages");await e.exists(s)&&(a.pagesDir=s)}if(!a.appDir&&!a.pagesDir)throw new Error(`Could not find Next.js "app" or "pages" directory. Searched in "${t}".`);return a}function Ft(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Pi(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 Xe(e){return await Ce(e,[".env"],$n)}async function Kn(e,t){yi(t);let r=await Xe(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}function yi(e){typeof process<"u"&&(process.env[$n]=e)}var $n="PUBLIC_BUILDER_API_KEY";function Mn(e,t,r){if(r.length===0)return e;let n=e.split(`
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 zn(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(".")||Ei.has(a))return;let s=e.normalize(i.fileName);if(s===e.registryPath)return;let p=await ut(e,o,s,i);r.push(...p)})),r}async function qn(e,t){if(e.extname(t).toLowerCase()===".tsx"){let n=await e.readFile(t);if(n)return Ti(e,t,n)}return null}function Ti(e,t,r){let n=E(e,r);return ut(e,null,t,n)}async function ut(e,t,r,n){r=e.normalize(r);let o=[],i=G(e,n);return await Promise.all(i.map(async a=>{let s=await Di(e,t,r,a);s&&o.push(s)})),o}async function Di(e,t,r,n){let o=e.relative(e.getRootDir(),r),i=k(e,r);if(e.ts.isVariableStatement(n.node))for(let a of n.node.declarationList.declarations){let s=Un(e,a.initializer);if(s&&e.ts.isIdentifier(a.name)){let p=a.name.text;return{cmpInfo:{id:await _(e,r,p),displayFilePath:A(e,r),name:j(p),inputs:[],exportName:n.isDefaultExport?"default":p,exportType:n.isDefaultExport?"default":"named",importName:p,filePath:r,relFilePath:o,importPath:i},node:s}}}else if(e.ts.isCallExpression(n.node)){let a=Un(e,n.node);if(a)return{cmpInfo:{id:await _(e,r,"default"),displayFilePath:A(e,r),name:Y(e,r),inputs:[],exportName:"default",exportType:"default",importName:Ae(e,r),filePath:r,relFilePath:o,importPath:i},node:a}}return null}function Un(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 Ei=new Set(["node_modules","layout.tsx","404.tsx","router-head.tsx"]);async function Qn(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 Oe(e,t.cmpInfo.filePath,null);if(!(await ut(e,i,t.cmpInfo.filePath,o)).find(p=>p.cmpInfo.id===t.cmpInfo.id))throw new Error(`createComponentInputs() Could not find component ${t.cmpInfo.name} in ${t.cmpInfo.filePath}`);return be(e,i,r)}return[]}async function Jn(e){return Ot(e)}async function Ot(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,wi),t.push({filePath:e.registryPath,modifiedType:"create"})),t}var wi=`import type { RegisteredComponent } from "@builder.io/sdk-qwik";
392
+
393
+ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
394
+ ];
395
+ `;async function Wn(e){await Ot(e);let t=await e.readFile(e.registryPath);return t?vi(e,t):{components:[],sourceFile:E(e,"")}}async function vi(e,t){let r=E(e,t);return bi(e,r)}async function bi(e,t){let r=[],n=M(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await Lt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:Q(r)}}async function Lt(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(b(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 Pe(e,e.registryPath,t,a);if(!s)continue;n.filePath=s.filePath,n.relFilePath=s.relFilePath,n.importPath=k(e,s.filePath),n.displayFilePath=s.displayFilePath,n.exportType=s.exportType;let p=await qn(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=W(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}async function Yn(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 K(e,[...t])}async function Ie(e,t,r,n,o,i,a,s){let p=await Yn(e),[l,d,f]=await Promise.all([zn(e,p),Wn(e),Xe(e)]),c=l.map(m=>m.cmpInfo),u=d.components,h={components:ee(c,u),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:ie(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return h;if(t!=null){let m=l.find(y=>y.cmpInfo.id===t);if(!m)throw new Error(`Component ${t} not found`);let g=d.sourceFile,x=h.components.find(y=>y.id===t),C=await Qn(e,m);Z(x,C),t=Array.isArray(t)?t[0]:t;let P=pe(t,c,u,r,n,o,i),{elements:I,elmIndex:T,statementIndex:S,statement:R,variableDeclaration:B}=await Ri(e,g,m),F=!1;if(P.addCmpToRegistry?(I.push(Ii(e,P.addCmpToRegistry)),F=!0):P.removeCmpFromRegistry?(I.splice(T,1),F=!0):P.updateRegisteredCmp&&(I[T]=$(e,I[T],P.updateRegisteredCmp),F=!0),F&&a){let y=[...g.statements];y[S]=e.ts.factory.updateVariableStatement(R,R.modifiers,e.ts.factory.updateVariableDeclarationList(R.declarationList,[e.ts.factory.updateVariableDeclaration(B,B.name,B.exclamationToken,B.type,e.ts.factory.createArrayLiteralExpression(Te(e,I)))])),g=e.ts.factory.updateSourceFile(g,y),x.exportType==="named"?g=D(e,g,{namedImports:[x.importName],importPath:v(e,e.registryPath,x.filePath)}):g=D(e,g,{defaultImport:x.importName,importPath:v(e,e.registryPath,x.filePath)}),g=D(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-qwik",isTypeOnly:!0}),g=Ee(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),g=se(e,g),g=ae(e,g);let w=N(e,g);w=H(w),w=Mn(w,Ni,"CUSTOM_COMPONENTS"),w=await e.formatCode(e.registryPath,w),await e.writeFile(e.registryPath,w)}h.components=P.components}return h}function Ii(e,t){return $(e,e.ts.factory.createObjectLiteralExpression([e.ts.factory.createPropertyAssignment("component",e.ts.factory.createIdentifier(t.importName))],!0),t)}async function Ri(e,t,r){let n=M(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 Lt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}var Ni=["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 Gn(e){let t=await Ai(e);return{builderPageOptions:async()=>({templateContentId:"dc70f1d979ad416d8fd357137eb9ddfb",pathname:"/",title:"Builder + Qwik Demo Page"}),ensureBuilderSetup:()=>Jn(t),ensureFigmaImportPage:async()=>[],getRegistryPath:()=>t.registryPath,getRegistry:n=>Ie(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await Ie(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>Ie(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>Ie(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>Ie(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>Ie(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Xe(t),setPublicApiKey:n=>Kn(t,n.publicApiKey),getDependencies:n=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-qwik"}],getDevRunCommand:()=>"dev",getCache:()=>ne(t),setCache:n=>re(t,n)}}async function Ai(e){let t=await $e(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 Ze(e){return await Ce(e,[".env"],et)}async function Hn(e,t){let r=await Ze(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var et="PUBLIC_BUILDER_KEY";async function Xn(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"||Fi.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 Fi=new Set(["root.tsx","root.ts","root.jsx","root.js","_index.tsx","_index.jsx","_index.ts","_index.js"]);async function Zn(e){await _t(e);let t=await e.readFile(e.registryPath);return t?Oi(e,t):{components:[],sourceFile:E(e,"")}}async function Oi(e,t){let r=E(e,t);return Li(e,r)}async function Li(e,t){let r=[],n=M(e,t,"CUSTOM_COMPONENTS");return n&&await Promise.all(n.arrayLiteralExp.elements.map(async(o,i)=>{let a=await kt(e,t,o);a&&(a.nodeIndex=i,r.push(a))})),{sourceFile:t,components:Q(r)}}async function kt(e,t,r){if(!e.ts.isObjectLiteralExpression(r))return null;let n={id:"",name:"",displayFilePath:"",exportName:"",importName:"",filePath:"",relFilePath:"",importPath:"",inputs:[],acceptsChildren:!1};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(b(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 f=s.arguments[0];e.ts.isIdentifier(f)&&(a=f.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let p=await Pe(e,e.registryPath,t,a);if(!p)continue;n.filePath=p.filePath,n.relFilePath=p.relFilePath,n.importPath=k(e,p.filePath),n.displayFilePath=p.displayFilePath,n.exportType=p.exportType;let l=await Dn(e,p.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(f=>f.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=W(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}async function ce(e,t,r,n,o,i,a,s){let p=await De(e),[l,d,f]=await Promise.all([Xn(e,p),Zn(e),Ze(e)]),c=l.map(C=>C.cmpInfo),u=d.components,h={components:ee(c,u),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:ie(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return h.components=await ke(e,h.components),h;let m=!1,g=d.sourceFile,x=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(x.length>0){let C=x.map(T=>{let S=l.find(R=>R.cmpInfo.id===T);if(!S)throw new Error(`Component ${T} not found`);return S}),P=Array.from(new Set(C.map(T=>T.cmpInfo.filePath))),I=await K(e,P);for(let T of C){let S=h.components.find(L=>L.id===T.cmpInfo.id),R=await _e(e,T,I);Z(S,R);let B=c.findIndex(L=>L.id===T.cmpInfo.id);c[B].inputs=R;let F=pe(T.cmpInfo.id,c,u,r,n,o,i),{elements:y,elmIndex:w,statementIndex:V,statement:z,variableDeclaration:q}=await _i(e,g,T);if(F.addCmpToRegistry)y.push(ki(e,F.addCmpToRegistry)),m=!0;else if(F.removeCmpFromRegistry)y.splice(w,1),m=!0;else if(F.updateRegisteredCmp){let L=$(e,y[w],F.updateRegisteredCmp);y[w]=e.ts.factory.updateObjectLiteralExpression(L,[er(e,F.updateRegisteredCmp),...L.properties.slice(1)]),m=!0}if(m&&a){let L=[...g.statements];L[V]=e.ts.factory.updateVariableStatement(z,z.modifiers,e.ts.factory.updateVariableDeclarationList(z.declarationList,[e.ts.factory.updateVariableDeclaration(q,q.name,q.exclamationToken,q.type,e.ts.factory.createArrayLiteralExpression(Te(e,y)))])),g=e.ts.factory.updateSourceFile(g,L),S.exportType==="named"?g=D(e,g,{namedImports:[S.importName],importPath:v(e,e.registryPath,S.filePath)}):g=D(e,g,{defaultImport:S.importName,importPath:v(e,e.registryPath,S.filePath)}),g=D(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/react",isTypeOnly:!0}),S.acceptsChildren&&(g=D(e,g,{namedImports:["withChildren"],importPath:"@builder.io/react"})),g=Ee(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),h.components=F.components,u=F.components.filter(fe=>fe.isRegistered)}}}if(m&&a){g=se(e,g),g=ae(e,g);let C=N(e,g);C=H(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return h}function er(e,t){let r=e.ts.factory.createIdentifier(t.importName),n=t.acceptsChildren?e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("withChildren"),void 0,[r]):r;return e.ts.factory.createPropertyAssignment("component",n)}function ki(e,t){return $(e,e.ts.factory.createObjectLiteralExpression([er(e,t)],!0),t)}async function _i(e,t,r){let n=M(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 kt(e,t,o[a]))?.id===r.cmpInfo.id){i=a;break}return{...n,elements:o,elmIndex:i}}async function tr(e){let t=[],r=await Vi(e,t);return t.push(...await _t(e)),await $i(e,r),await Bi(e,t),t}async function nr(e){let t=[];return await ji(e,t),t}async function ji(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,rr({sys:e,routePath:n,modelName:"figma-imports"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}async function Bi(e,t){let r=`$.${e.typescriptEnabled?"tsx":"jsx"}`;e.hasLocaleParam&&(e.debug("remixEnsureAppRoute, hasLocaleParam"),r=`($locale).${r}`);let n=e.join(e.routesDir,r),o=await e.exists(n);e.debug(`remixEnsureAppRoute, hasRoute: ${o}`);let i=await e.formatCode(n,rr({sys:e,routePath:n,modelName:"page"}));await e.writeFile(n,i),t.push({filePath:n,modifiedType:o?"update":"create"})}function rr({sys:e,routePath:t,modelName:r}){let n=e.typescriptEnabled,o=v(e,t,e.registryPath),i="",a="";n&&(i="import type { LoaderArgs } from '@remix-run/server-runtime';",a=": LoaderArgs");let s=`process.env.${et}`;return e.getFrameworks().some(p=>p.name==="@shopify/remix-oxygen")&&(s=`context.env.${et}`),n&&(s+="!"),`
396
+ import { BuilderComponent, builder } from "@builder.io/react";
397
+ import { useLoaderData } from "@remix-run/react";
398
+ import { CUSTOM_COMPONENTS } from ${JSON.stringify(o)};
399
+ ${i}
400
+
401
+ // Fetch contents of the page
402
+ export const loader = async ({ params, request, context }${a}) => {
403
+ // Initialize the Builder client and pass in your Public API Key
404
+ const builderApiKey = ${s};
405
+ builder.init(builderApiKey);
406
+
407
+ // Fetch data content from Builder.io based on the URL path
408
+ const page = await builder
409
+ .get("${r}", {
410
+ userAttributes: {
411
+ urlPath: "/" + params["*"],
412
+ },
413
+ locale: params.locale,
414
+ })
415
+ .toPromise();
416
+
417
+ // Verify the user is previewing or editing in Builder
418
+ const isPreviewing = new URL(request.url).searchParams.has("builder.preview");
419
+
420
+ // If the page is not found and the user is not previewing, throw a 404.
421
+ // The CatchBoundary component will catch the error
422
+ if (!page && !isPreviewing) {
423
+ throw new Response("Page Not Found", {
424
+ status: 404,
425
+ statusText:
426
+ "We couldn't find this page, please check your url path and if the page is published on Builder.io.",
427
+ });
428
+ }
429
+
430
+ return { page, builderApiKey };
431
+ };
432
+
433
+ // Define and render the page.
434
+ export default function Page() {
435
+ // Use the useLoaderData hook to get the Page data from "loader" above.
436
+ const { page, builderApiKey } = useLoaderData${n?"<typeof loader>":""}();
437
+
438
+ // Render the page content from Builder.io
439
+ return (
440
+ <BuilderComponent
441
+ customComponents={CUSTOM_COMPONENTS}
442
+ apiKey={builderApiKey}
443
+ model="${r}"
444
+ content={page}
445
+ />
446
+ );
447
+ }
448
+
449
+ ${n?`
450
+ declare global {
451
+ interface Env {
452
+ ${et}: string;
453
+ }
454
+ }
455
+ `:""}
456
+ `}async function Vi(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:p}=Ki(e),l=await e.exists(i);if(e.debug(`remixEnsureCounterComponent, hasCounterCmp: ${l}`),!l){let f=await e.formatCode(i,s);await e.writeFile(i,f),t.push({filePath:i,modifiedType:"create"})}let d=await e.exists(a);return e.debug(`remixEnsureCounterComponent, hasCounterStyles: ${d}`),d||(await e.writeFile(a,p),t.push({filePath:a,modifiedType:"create"})),i}function Ki(e){let t=e.typescriptEnabled,r=`
457
+ import { useState } from "react";
458
+ import styles from "./styles.module.css";
459
+ ${t?`
460
+ interface CounterProps {
461
+ initialCount?: number;
462
+ }`:""}
463
+
464
+ function Counter({ initialCount = 99 }${t?": CounterProps":""}) {
465
+ const [count, setCount] = useState(initialCount);
466
+
467
+ const increment = () => {
468
+ setCount((prevCount) => prevCount + 1);
469
+ };
470
+
471
+ const decrement = () => {
472
+ setCount((prevCount) => prevCount - 1);
473
+ };
474
+
475
+ return (
476
+ <div className={styles.counter}>
477
+ <button className={styles.btn} onClick={decrement}>
478
+ -
479
+ </button>
480
+ <span className={styles.count}>{count}</span>
481
+ <button className={styles.btn} onClick={increment}>
482
+ +
483
+ </button>
484
+ </div>
485
+ );
486
+ }
487
+
488
+ export default Counter;
489
+ `.trimStart(),n=`
490
+ .counter {
491
+ margin: 32px auto;
492
+ display: flex;
493
+ width: 100%;
494
+ max-width: 190px;
495
+ color: #1c6bd1;
496
+ }
497
+
498
+ .btn {
499
+ width: 42px;
500
+ font-size: 32px;
501
+ font-weight: bold;
502
+ background-color: #1c6bd1;
503
+ color: white;
504
+ border: none;
505
+ border-radius: 4px;
506
+ cursor: pointer;
507
+ line-height: 1.4;
508
+ }
509
+
510
+ .btn:hover {
511
+ opacity: 0.8;
512
+ }
513
+
514
+ .count {
515
+ flex: 1;
516
+ font-size: 42px;
517
+ text-align: center;
518
+ }
519
+ `.trimStart();return{component:r,styles:n}}async function $i(e,t){let n=(await ce(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await ce(e,n.id,!0,!1,null,null,!0,!1)}async function _t(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,Mi(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}function Mi(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/react";
520
+
521
+ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
522
+ ];`:`export const CUSTOM_COMPONENTS = [
523
+ ];
524
+ `}async function or(e){let t=await Ui(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:()=>tr(t),ensureFigmaImportPage:()=>nr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>ce(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await ce(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>ce(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>ce(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>ce(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>ce(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>Ze(t),setPublicApiKey:n=>Hn(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===O.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:()=>ne(t),setCache:n=>re(t,n)}}async function Ui(e){let t=await Qi(e),r=await Ji(e),n=e.dirname(r),o=e.join(n,"components"),i=await zi(e),a=`builder-registry.${i?"ts":"js"}`,s=e.join(n,a),p={...e,registryPath:s,remixConfigPath:t,typescriptEnabled:i,appDir:n,componentsDir:o,routesDir:r,hasLocaleParam:await qi(e,r)};return p.sdkVersion=await Be(p),p}function zi(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function qi(e,t){return(await e.readdir(t)).some(n=>n.startsWith("($locale)."))}async function Qi(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 Ji(e){let t=await $e(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 tt(e){let t=[".env"],r=e.configType==="vite"?mt:jt;return await Ce(e,t,r)}async function ir(e,t){let r=await tt(e),n=await Se(e,r.file,r.envKey,t);return{...r,modifiedType:n}}var mt="VITE_PUBLIC_BUILDER_KEY",jt="YOUR_PUBLIC_BUILDER_KEY";function ar(e,t){let r=`Builder.registerComponent(
525
+ `;r+=` ${t.importName},
526
+ `,r+=` {
527
+ name: "${t.name}",
528
+ }
529
+ `,r+=");";let n=st(e,r);return Bt(e,n,t)}function Bt(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]=$(e,i,r),e.ts.factory.updateExpressionStatement(t,e.ts.factory.updateCallExpression(n,n.expression,n.typeArguments,o))):t}async function pr(e){let t=await e.readFile(e.registryPath);return t?Wi(e,t):{components:[],sourceFile:E(e,"")}}async function Wi(e,t){let r=E(e,t);return Yi(e,r)}async function Yi(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 f=l[0];if(e.ts.isIdentifier(f)){let c=await Gi(e,t,n,f,d,!1);c&&r.push(c);continue}}return{sourceFile:t,components:Q(r)}}async function Gi(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;a.filePath=await sr(e,l.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=k(e,a.filePath),a.name=Y(e,a.filePath),a.importName=n.text,a.exportName="default",a.exportType="default"}else{let l=s.find(f=>!f.importClause||!f.importClause.namedBindings||!e.ts.isNamedImports(f.importClause.namedBindings)?!1:f.importClause.namedBindings.elements.some(c=>c.name.text===n.text));if(!l)return null;let d=l.moduleSpecifier;if(!e.ts.isStringLiteral(d))return null;a.filePath=await sr(e,d.text),a.relFilePath=e.relative(e.getRootDir(),a.filePath),a.importPath=k(e,a.filePath),a.name=j(n.text),a.importName=n.text,a.exportName=n.text,a.exportType="named"}return a=W(e,a,o),a.displayFilePath=A(e,a.filePath),a.filePath&&a.exportName&&(a.id=await _(e,a.filePath,a.exportName)),a}function sr(e,t){return Ye(e,e.normalize(e.resolve(e.dirname(e.registryPath),t)))}async function ue(e,t,r,n,o,i,a,s){let p=await De(e),[l,d,f,c]=await Promise.all([En(e,p),pr(e),Vt(e),tt(e)]),u=l.map(P=>P.cmpInfo),h=d.components,m={components:ee(u,h),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:ie(u),publicApiKey:c.envValue??void 0,devToolsVersion:e.version};if(s)return m.components=await ke(e,m.components),m;let g=!1,x=d.sourceFile,C=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(C.length>0){let P=C.map(S=>{let R=l.find(B=>B.cmpInfo.id===S);if(!R)throw new Error(`Component ${S} not found`);return R}),I=Array.from(new Set(P.map(S=>S.cmpInfo.filePath))),T=await K(e,I);for(let S of P){let R=m.components.find(V=>V.id===S.cmpInfo.id),B=await _e(e,S,T);Z(R,B);let F=u.findIndex(V=>V.id===S.cmpInfo.id);u[F].inputs=B;let y=pe(S.cmpInfo.id,u,h,r,n,o,i),w=[...x.statements];if(y.addCmpToRegistry?(w.push(ar(e,y.addCmpToRegistry)),g=!0):y.removeCmpFromRegistry?(w.splice(y.nodeIndex,1),g=!0):y.updateRegisteredCmp&&(w[y.nodeIndex]=Bt(e,w[y.nodeIndex],y.updateRegisteredCmp),g=!0),g&&a){x=e.ts.factory.updateSourceFile(x,w),x=D(e,x,{namedImports:["Builder","builder"],importPath:"@builder.io/react"});let V=y.addCmpToRegistry||y.updateRegisteredCmp;if(V){let z=v(e,e.registryPath,V.filePath);V.exportType==="default"?x=D(e,x,{defaultImport:V.importName,importPath:z}):V.exportType==="named"&&(x=D(e,x,{namedImports:[V.importName],importPath:z}))}R?.acceptsChildren&&(x=D(e,x,{namedImports:["withChildren"],importPath:"@builder.io/react"})),m.components=y.components,h=y.components.filter(z=>z.isRegistered)}}}if(g&&a){x=se(e,x),x=ae(e,x);let P=N(e,x);P=H(P),P=await e.formatCode(e.registryPath,P),await e.writeFile(e.registryPath,P)}return m}async function lr(e){let t=[],r=await Zi(e,t);if(await Xi(e,r,t),!await e.exists(e.builderComponentPath)){let n=await e.formatCode(e.builderComponentPath,Hi(e));await e.writeFile(e.builderComponentPath,n),t.push({filePath:e.builderComponentPath,modifiedType:"create"})}return t}async function cr(e){return[]}function Hi(e){let t=e.typescriptEnabled;return`
530
+ import React from "react";
531
+ import { BuilderComponent, builder, useIsPreviewing } from "@builder.io/react";
532
+ import ${JSON.stringify(v(e,e.builderComponentPath,e.registryPath))};
533
+
534
+ // Builder Public API Key set in .env file
535
+ ${e.configType==="vite"?`builder.init(import.meta.env.${mt}${t?"!":""})`:`builder.init("${jt}")`}
536
+
537
+ export default function BuilderPage() {
538
+ const isPreviewingInBuilder = useIsPreviewing();
539
+ const [notFound, setNotFound] = React.useState(false);
540
+ const [content, setContent] = React.useState(null);
541
+
542
+ // get the page content from Builder
543
+ React.useEffect(() => {
544
+ async function fetchContent() {
545
+ const content = await builder
546
+ .get("page", {
547
+ url: window.location.pathname,
548
+ })
549
+ .promise();
550
+
551
+ setContent(content);
552
+ setNotFound(!content);
553
+
554
+ // if the page title is found,
555
+ // set the document title
556
+ if (content?.data.title) {
557
+ document.title = content.data.title;
558
+ }
559
+ }
560
+ fetchContent();
561
+ }, []);
562
+
563
+ if (content === null) {
564
+ return;
565
+ }
566
+ // If no page is found, return
567
+ // a 404 page from your code.
568
+ if (notFound && !isPreviewingInBuilder) {
569
+ return <div>404 Page Not Found</div>;
570
+ }
571
+
572
+ // return the page when found
573
+ return (
574
+ <>
575
+ {/* Render the Builder page */}
576
+ <BuilderComponent model="page" content={content} />
577
+ </>
578
+ );
579
+ }
580
+ `.trimStart()}async function Xi(e,t,r){await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,""),r.push({filePath:e.registryPath,modifiedType:"create"}));let o=(await ue(e,null,!1,!1,null,null,!1,!1)).components.find(i=>i.filePath===t);o&&await ue(e,o.id,!0,!1,null,null,!0,!1)}async function Zi(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:p}=ea(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,p),t.push({filePath:a,modifiedType:"create"})),i}function ea(e){let t=e.typescriptEnabled,r=`
581
+ "use client"
582
+ import React, { useState } from "react";
583
+ import styles from "./styles.module.css";
584
+ ${t?`
585
+ interface CounterProps {
586
+ initialCount?: number;
587
+ }`:""}
588
+
589
+ function Counter({ initialCount = 99 }${t?": CounterProps":""}) {
590
+ const [count, setCount] = useState(initialCount);
591
+
592
+ const increment = () => {
593
+ setCount((prevCount) => prevCount + 1);
594
+ };
595
+
596
+ const decrement = () => {
597
+ setCount((prevCount) => prevCount - 1);
598
+ };
599
+
600
+ return (
601
+ <div className={styles.counter}>
602
+ <button className={styles.btn} onClick={decrement}>
603
+ -
604
+ </button>
605
+ <span className={styles.count}>{count}</span>
606
+ <button className={styles.btn} onClick={increment}>
607
+ +
608
+ </button>
609
+ </div>
610
+ );
611
+ }
612
+
613
+ export default Counter;
614
+ `.trimStart(),n=`
615
+ .counter {
616
+ margin: 32px auto;
617
+ display: flex;
618
+ width: 100%;
619
+ max-width: 190px;
620
+ }
621
+
622
+ .btn {
623
+ width: 42px;
624
+ font-size: 32px;
625
+ font-weight: bold;
626
+ background-color: #1c6bd1;
627
+ color: white;
628
+ border: none;
629
+ border-radius: 4px;
630
+ cursor: pointer;
631
+ line-height: 1.4;
632
+ }
633
+
634
+ .btn:hover {
635
+ opacity: 0.8;
636
+ }
637
+
638
+ .count {
639
+ flex: 1;
640
+ font-size: 42px;
641
+ text-align: center;
642
+ }
643
+ `.trimStart();return{component:r,styles:n}}async function ur(e){let t=await ta(e);return{builderPageOptions:async()=>({templateContentId:"2e36438034894a8abf279ea9e6d3596f",pathname:"/builder-demo",title:"Builder + React Demo Page"}),ensureBuilderSetup:()=>lr(t),ensureFigmaImportPage:()=>cr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>ue(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await ue(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>ue(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>ue(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>ue(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>ue(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>tt(t),setPublicApiKey:n=>ir(t,n.publicApiKey),getDependencies:n=>n.sdkVersion===O.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:()=>ne(t),setCache:n=>re(t,n)}}async function ta(e){let t=await na(e),r=e.getRootDir(),n=e.join(r,"src"),o=await Vt(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:null,builderComponentPath:"",componentsDir:"",registryPath:"",reactConfigPath:t,typescriptEnabled:o,configType:""};return a.sdkVersion=await Be(a),t.includes("webpack.config")&&(a.configType="webpack"),t.includes("vite.config")&&(a.configType="vite"),await e.exists(n)?(a.srcDir=n,a.componentsDir=e.join(n,"components"),a.registryPath=e.join(n,i),a.builderComponentPath=e.join(a.srcDir,`builder-page.${o?"tsx":"jsx"}`)):(a.componentsDir=e.join(r,"components"),a.registryPath=e.join(r,i),a.builderComponentPath=e.join(r,`builder-page.${o?"tsx":"jsx"}`)),a}function Vt(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function na(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 nt(e){return await ra(e,["environment.ts"],Ve)}async function mr(e,t){let r=await nt(e),n=await sa(e,r.file,r.envKey,t);return{...r,modifiedType:n}}async function ra(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 oa(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 oa(e,t){let r=await e.readFile(t);return r?ia(e,r):""}function ia(e,t){let r=E(e,t),n="",i=Le(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(p=>{e.ts.isPropertyAssignment(p)&&e.ts.isIdentifier(p.name)&&p.name.text===Ve&&e.ts.isStringLiteral(p.initializer)&&(n=p.initializer.text)})}return n}async function aa(e,t,r,n){let o=E(e,t),a=Le(e,o,"environment");if(a&&a.statement.declarationList.declarations.length>0){let s=a.statement.declarationList,p=s.declarations[0],l=p.initializer;if(l&&e.ts.isObjectLiteralExpression(l)){let d=e.ts.factory.createPropertyAssignment(e.ts.factory.createIdentifier(r),e.ts.factory.createStringLiteral(n)),f=e.ts.factory.createNodeArray([...l.properties,d]),c=e.ts.factory.updateObjectLiteralExpression(l,f),u=e.ts.factory.updateVariableDeclaration(p,p.name,p.exclamationToken,p.type,c),h=e.ts.factory.updateVariableDeclarationList(s,[u]);return e.ts.factory.updateVariableStatement(a.statement,a.statement.modifiers,h)}return null}return null}async function sa(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 aa(e,o,r,n);if(i){let a=N(e,i),s=await e.formatCode(t,a);await e.writeFile(t,s)}return"update"}else{e.debug(`Creating new env file with "${r}" at ${t}`);let i=`
644
+ // https://www.builder.io/c/docs/using-your-api-key
645
+ export const environment = {
646
+ production: false,
647
+ builderApiKey: "${n}",
648
+ };
649
+ `.trimStart(),a=await e.formatCode(t,i);return await e.writeFile(t,a),"create"}return null}var Ve="builderApiKey";async function fr(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(ca(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 ft(e,o,s,i);r.push(...p)})),r.sort((i,a)=>i.cmpInfo.name.localeCompare(a.cmpInfo.name))}var pa=new Set([]),la=new Set(["node_modules"]);function ca(e,t){for(let r of la)if(e.dirname(t).includes(r))return!0;return!1}async function dr(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 ua(e,t,n)}return null}function ua(e,t,r){let n=E(e,r);return ft(e,null,t,n)}async function ft(e,t,r,n){let o=[];r=e.normalize(r);let i=n.statements.filter(p=>e.ts.isClassDeclaration(p)&&ga(e,p)),a=await fa(e,t,r,n),s=ha(e,n);return await Promise.all(i.map(async p=>{let l=await ma(e,t,r,p,s);o.push(...l)})),o.push(...a),o}async function gr(e,t,r){if(t.node.fnNode){let{sourceFile:n,typeChecker:o}=await Oe(e,t.cmpInfo.filePath,r),a=(await ft(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 xr(e,t){if(!t.some(a=>!a.isRegistered))return t;let n=await K(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 ft(e,o,a.filePath,s)).find(d=>d.cmpInfo.id===a.id);l&&(a.inputs=be(e,o,l.node.fnNode))}}return a}))}async function ma(e,t,r,n,o){let i=[],a=e.relative(e.getRootDir(),r),s=k(e,r),p=n.name?.text;if(!p)return i;let l=!1;n.modifiers&&(l=n.modifiers.some(u=>u.kind===e.ts.SyntaxKind.DefaultKeyword));let d=l?"default":p,f=l?"default":"named",c=[];return n.members.forEach(u=>{if(e.ts.isPropertyDeclaration(u)){let h=e.ts.getDecorators(u);h&&h.forEach(m=>{if(da(e,m)&&e.ts.isIdentifier(u.name)){let g="any";if(u.type&&t){let C=t.getTypeAtLocation(u.type);g=t.typeToString(C)}else g=xa(e,u.type);let x={name:u.name.text,type:o[g]?"string":g};o[g]&&(x.enum=o[g]),c.push(x)}})}}),i.push({cmpInfo:{id:await _(e,r,p),displayFilePath:A(e,r),name:j(p),inputs:c,exportName:d,exportType:f,importName:p,filePath:r,relFilePath:a,importPath:s},node:{name:p,fnNode:n,deps:void 0}}),i}async function fa(e,t,r,n){let o=[],i=e.relative(e.getRootDir(),r),a=k(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,f="named",c=[];if(t){let u=t.getSymbolAtLocation(p.name);if(u){let h=t.getDeclaredTypeOfSymbol(u);t.getPropertiesOfType(h).forEach(g=>{let x=g.getDeclarations();x&&x.forEach(C=>{if(e.ts.isPropertyDeclaration(C)){let P=t.getTypeAtLocation(C),I={name:g.getName(),type:Ca(e,t,P)};c.push(I)}})})}}o.push({cmpInfo:{id:await _(e,r,l),displayFilePath:A(e,r),name:j(l),inputs:c,exportName:d,exportType:f,importName:l,filePath:r,relFilePath:i,importPath:a},node:{name:l,fnNode:p,deps:void 0}})}return o}function da(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 ga(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 xa(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 ha(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 Ca(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 Cr(e){let t=e.typescriptEnabled?".ts":".js",r=`app.module${t}`,n=e.join(e.appDir,r),o=await e.readFile(n);if(!o){console.error(`Unable to read app.module.${t} at ${n}`);return}let i=await Sa(e,n,o);if(!i){console.error(`Unable to update app.module.${t} at ${n}`);return}return await e.writeFile(n,i),n}async function Sa(e,t,r){let o=e.typescriptEnabled?"ts":"js",i=r,a=E(e,r),s=v(e,t,e.builderPageComponentPath),p=e.join(e.componentsDir,`counter.component.${o}`);a=D(e,a,{namedImports:["BuilderPage"],importPath:s});let l=v(e,t,p);a=D(e,a,{namedImports:["Counter"],importPath:l}),a=D(e,a,{namedImports:["Content"],importPath:"@builder.io/sdk-angular"});let d=[];for(let f of a.statements)if(e.ts.isClassDeclaration(f)&&f.name?.text==="AppModule"){let c=Pa(e,f);d.push(c)}else d.push(f);return a=e.ts.factory.updateSourceFile(a,d),i=N(e,a),i}function Pa(e,t){let r=e.ts.getDecorators(t);if(r){for(let n of r)if(e.ts.isCallExpression(n.expression)&&e.ts.isIdentifier(n.expression.expression)&&n.expression.expression.text==="NgModule"){let o=n.expression.arguments;if(o.length===1&&e.ts.isObjectLiteralExpression(o[0])){let i=Kt(e,o[0],"declarations","BuilderPage");if(i&&(i=Kt(e,i,"declarations","Counter"),i&&(i=Kt(e,i,"imports","Content"),i))){let a=e.ts.factory.updateDecorator(n,e.ts.factory.updateCallExpression(n.expression,n.expression.expression,n.expression.typeArguments,[i])),p=[...r.map(l=>l===n?a:l),...e.ts.getModifiers(t)||[]];return e.ts.factory.updateClassDeclaration(t,p,t.name,t.typeParameters,t.heritageClauses,t.members)}}}}return t}function Kt(e,t,r,n){let o=[...t.properties],i=o.findIndex(s=>b(e,s)===r);if(i>-1){let s=o[i];if(e.ts.isPropertyAssignment(s)&&s.initializer&&e.ts.isArrayLiteralExpression(s.initializer)){let p=hr(e,s.initializer,n);if(p)return o[i]=e.ts.factory.updatePropertyAssignment(s,s.name,p),e.ts.factory.updateObjectLiteralExpression(t,o)}return null}let a=hr(e,e.ts.factory.createArrayLiteralExpression([],!0),n);return a?e.ts.factory.updateObjectLiteralExpression(t,[...o,e.ts.factory.createPropertyAssignment(r,a)]):null}function hr(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 Sr(e){let t=[],r=await Ea(e,t);if(t.push(...await $t(e)),await ya(e,r),!await e.exists(e.builderPageComponentPath)){let o=await e.formatCode(e.builderPageComponentPath,Ta(e));await e.writeFile(e.builderPageComponentPath,o),t.push({filePath:e.builderPageComponentPath,modifiedType:"create"})}let n=await Cr(e);return n&&t.push({filePath:n,modifiedType:"update"}),t}async function $t(e){let t=[];return await e.exists(e.registryPath)||(await e.writeFile(e.registryPath,Da(e)),t.push({filePath:e.registryPath,modifiedType:"create"})),t}async function Pr(e){return[]}async function ya(e,t){let n=(await me(e,null,!1,!1,null,null,!1,!1)).components.find(o=>o.filePath===t);n&&await me(e,n.id,!0,!1,null,null,!0,!1)}function Ta(e){let t=v(e,e.builderPageComponentPath,e.registryPath),r=e.join(e.getRootDir(),"src","environments","environment.ts"),n=v(e,e.builderPageComponentPath,r);return`
650
+ import { Component, ChangeDetectorRef } from '@angular/core';
651
+ import { _processContentResult, fetchOneEntry } from '@builder.io/sdk-angular';
652
+ import { environment } from ${JSON.stringify(n)};
653
+ import { CUSTOM_COMPONENTS } from ${JSON.stringify(t)};
654
+
655
+ ${e.typescriptEnabled?`
656
+ interface BuilderProps {
657
+ apiVersion: string;
658
+ canTrack?: boolean;
659
+ trustedHosts?: undefined;
660
+ apiKey: string;
661
+ model: string;
662
+ content: any;
663
+ }`:""}
664
+
665
+ @Component({
666
+ selector: 'app-builder-page',
667
+ template: \`
668
+ <content
669
+ [model]="model"
670
+ [content]="content"
671
+ [apiKey]="apiKey"
672
+ [customComponents]="customComponents"
673
+ ></content>
674
+ \`,
675
+ })
676
+ export class BuilderPage {
677
+ title = 'builder page';
678
+ ${e.typescriptEnabled?`
679
+ apiKey: BuilderProps['apiKey'] = environment.${Ve};
680
+ model: BuilderProps['model'] = 'page';
681
+ content: BuilderProps['content'];
682
+ `:`
683
+ apiKey = environment.${Ve};
684
+ model = 'page';
685
+ content = null;
686
+ `}
687
+
688
+ customComponents = CUSTOM_COMPONENTS;
689
+
690
+ constructor(private cdr: ChangeDetectorRef) {}
691
+
692
+ async ngOnInit() {
693
+ const urlPath = window.location.pathname || '/';
694
+
695
+ const builderContent = await fetchOneEntry({
696
+ model: 'page',
697
+ apiKey: environment.${Ve},
698
+ userAttributes: {
699
+ urlPath,
700
+ },
701
+ });
702
+
703
+ if (!builderContent) {
704
+ return;
705
+ }
706
+
707
+ this.content = builderContent;
708
+
709
+ this.cdr.detectChanges();
710
+ }
711
+ }
712
+
713
+ `.trimStart()}function Da(e){return e.typescriptEnabled?`import type { RegisteredComponent } from "@builder.io/sdk-angular";
714
+
715
+ export const CUSTOM_COMPONENTS: RegisteredComponent[] = [
716
+ ];`:`export const CUSTOM_COMPONENTS = [
717
+ ];
718
+ `}async function Ea(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=wa();if(!i){let s=await e.formatCode(o,a);await e.writeFile(o,s),t.push({filePath:o,modifiedType:"create"})}return o}function wa(){return`
719
+ import { Component, Input } from '@angular/core';
720
+
721
+ @Component({
722
+ selector: 'app-counter',
723
+ template: \`
724
+ <div class="counter">
725
+ <button class="btn" (click)="decrement()">-</button>
726
+ <span class="count">{{ count }}</span>
727
+ <button class="btn" (click)="increment()">+</button>
728
+ </div>
729
+ \`,
730
+ styles: [
731
+ \`
732
+ .counter {
733
+ margin: 32px auto;
734
+ display: flex;
735
+ width: 100%;
736
+ max-width: 190px;
737
+ }
738
+
739
+ .btn {
740
+ width: 42px;
741
+ font-size: 32px;
742
+ font-weight: bold;
743
+ background-color: #1c6bd1;
744
+ color: white;
745
+ border: none;
746
+ border-radius: 4px;
747
+ cursor: pointer;
748
+ line-height: 1.4;
749
+ }
750
+
751
+ .btn:hover {
752
+ opacity: 0.8;
753
+ }
754
+
755
+ .count {
756
+ flex: 1;
757
+ font-size: 42px;
758
+ text-align: center;
759
+ margin: 0 8px;
760
+ }
761
+ \`,
762
+ ],
763
+ })
764
+ export class Counter {
765
+ @Input() initialCount: number = 99;
766
+ count: number;
767
+
768
+ constructor() {
769
+ this.count = this.initialCount;
770
+ }
771
+
772
+ ngOnInit(): void {
773
+ this.count = this.initialCount;
774
+ }
775
+
776
+ increment(): void {
777
+ this.count += 1;
778
+ }
779
+
780
+ decrement(): void {
781
+ this.count -= 1;
782
+ }
783
+ }
784
+
785
+ `.trimStart()}async function yr(e){await $t(e);let t=await e.readFile(e.registryPath);return t?va(e,t):{components:[],sourceFile:E(e,"")}}async function va(e,t){let r=E(e,t);return ba(e,r)}async function ba(e,t){let r=[],n=M(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:Q(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:[]};for(let o of r.properties){if(!e.ts.isPropertyAssignment(o)||!e.ts.isIdentifier(o.name))continue;if(b(e,o)==="component"){let a,{initializer:s}=o;if(e.ts.isIdentifier(s))a=s.text;else if(e.ts.isCallExpression(s)){let d=s.arguments[0];e.ts.isIdentifier(d)&&(a=d.text)}if(!a)continue;n.name===""&&(n.name=j(a)),n.importName=a;let p=await Pe(e,e.registryPath,t,a);if(!p)continue;n.filePath=p.filePath,n.relFilePath=p.relFilePath,n.importPath=k(e,p.filePath),n.displayFilePath=p.displayFilePath,n.exportType=p.exportType;let l=await dr(e,p.filePath);if(l&&l.length>0)if(l.length===1)n.exportName=l[0].cmpInfo.exportName;else{let d=l.find(f=>f.cmpInfo.exportName===a);d&&(n.exportName=d.cmpInfo.exportName)}continue}}return n=W(e,n,r),n.filePath&&n.exportName&&(n.id=await _(e,n.filePath,n.exportName)),n}async function me(e,t,r,n,o,i,a,s){let p=await De(e),[l,d,f]=await Promise.all([fr(e,p),yr(e),nt(e)]),c=l.map(C=>C.cmpInfo),u=d.components,h={components:ee(c,u),registryPath:e.registryPath,registryDisplayPath:A(e,e.registryPath),frameworks:e.getFrameworks(),dependencies:ie(c),publicApiKey:f.envValue??void 0,devToolsVersion:e.version};if(s)return h.components=await xr(e,h.components),h;let m=!1,g=d.sourceFile,x=Array.isArray(t)?t:typeof t=="string"?[t]:[];if(x.length>0){let C=x.map(T=>{let S=l.find(R=>R.cmpInfo.id===T);if(!S)throw new Error(`Component ${T} not found`);return S}),P=Array.from(new Set(C.map(T=>T.cmpInfo.filePath))),I=await K(e,P);for(let T of C){let S=h.components.find(L=>L.id===T.cmpInfo.id),R=await gr(e,T,I);Z(S,R);let B=c.findIndex(L=>L.id===T.cmpInfo.id);c[B].inputs=R;let F=pe(T.cmpInfo.id,c,u,r,n,o,i),{elements:y,elmIndex:w,statementIndex:V,statement:z,variableDeclaration:q}=await Ra(e,g,T);if(F.addCmpToRegistry)y.push(Ia(e,F.addCmpToRegistry)),m=!0;else if(F.removeCmpFromRegistry)y.splice(w,1),m=!0;else if(F.updateRegisteredCmp){let L=$(e,y[w],F.updateRegisteredCmp);y[w]=e.ts.factory.updateObjectLiteralExpression(L,[Tr(e,F.updateRegisteredCmp),...L.properties.slice(1)]),m=!0}if(m&&a){let L=[...g.statements];L[V]=e.ts.factory.updateVariableStatement(z,z.modifiers,e.ts.factory.updateVariableDeclarationList(z.declarationList,[e.ts.factory.updateVariableDeclaration(q,q.name,q.exclamationToken,q.type,e.ts.factory.createArrayLiteralExpression(Te(e,y)))])),g=e.ts.factory.updateSourceFile(g,L),S.exportType==="named"?g=D(e,g,{namedImports:[S.importName],importPath:v(e,e.registryPath,S.filePath)}):g=D(e,g,{defaultImport:S.importName,importPath:v(e,e.registryPath,S.filePath)}),g=D(e,g,{namedImports:["RegisteredComponent"],importPath:"@builder.io/sdk-angular",isTypeOnly:!0}),g=Ee(e,g,{variableName:"CUSTOM_COMPONENTS",arrayType:"RegisteredComponent"}),h.components=F.components,u=F.components.filter(fe=>fe.isRegistered)}}}if(m&&a){g=se(e,g),g=ae(e,g);let C=N(e,g);C=H(C),C=await e.formatCode(e.registryPath,C),await e.writeFile(e.registryPath,C)}return h}function Tr(e,t){let r=e.ts.factory.createIdentifier(t.importName);return e.ts.factory.createPropertyAssignment("component",r)}function Ia(e,t){return $(e,e.ts.factory.createObjectLiteralExpression([Tr(e,t)],!0),t)}async function Ra(e,t,r){let n=M(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 Dr(e){let t=await Na(e);return{builderPageOptions:async()=>({templateContentId:"f0b8016ac92e474699293211a268ebaa",pathname:"/builder-demo",title:"Builder + Angular Demo Page"}),ensureBuilderSetup:()=>Sr(t),ensureFigmaImportPage:()=>Pr(t),getRegistryPath:()=>t.registryPath,getRegistry:n=>me(t,null,!1,!1,null,null,!1,!!n?.readAllInputTypes),loadComponent:async n=>{let o=await me(t,n.cmpId,!1,!1,null,null,!1,!1);return{...o,component:o.components.find(i=>i.id===n.cmpId)}},registerComponent:n=>me(t,n.cmpId,!0,!1,null,null,!0,!1),setRegisteredComponentInfo:n=>me(t,n.cmpId,!1,!1,n,null,!0,!1),setRegisteredComponentInput:n=>me(t,n.cmpId,!1,!1,null,n,!0,!1),unregisterComponent:n=>me(t,n.cmpId,!1,!0,null,null,!0,!1),getPublicApiKey:()=>nt(t),setPublicApiKey:n=>mr(t,n.publicApiKey),getDependencies:n=>[{name:"@builder.io/dev-tools"},{name:"@builder.io/sdk-angular"},{name:"concurrently"}],getDevRunCommand:()=>"builder-dev",getCache:()=>ne(t),setCache:n=>re(t,n)}}async function Na(e){let t=await Fa(e),r=e.getRootDir(),n=e.join(r,"src"),o=await Aa(e),i=`builder-registry.${o?"ts":"js"}`,a={...e,srcDir:"",appDir:"",componentsDir:"",registryPath:"",angularConfigPath:t,typescriptEnabled:o,builderPageComponentPath:""};if(!await e.exists(n))throw new Error(`Could not find src directory. Searched for src in "${e.getRootDir()}".`);return a.srcDir=n,a.appDir=e.join(n,"app"),a.componentsDir=e.join(a.appDir,"components"),a.registryPath=e.join(a.appDir,i),a.builderPageComponentPath=e.join(a.componentsDir,`builder-page.component.${o?"ts":"js"}`),a}function Aa(e){let t=e.join(e.getRootDir(),"tsconfig.json");return e.exists(t)}async function Fa(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 St=po(_r(),1);async function jr(e,t){let n={components:(await t.getRegistry()).components.filter(i=>i.isRegistered).map(i=>{let a={filePath:X(e.relative(e.getRootDir(),i.filePath)),name:i.name,image:i.image,description:i.description,exportName:i.exportName,inputs:J(i.inputs)};return J(a)}),version:1};e.debug("exporting registry components:",n.components.length);let o=(0,St.compress)(n);return btoa(JSON.stringify(o))}async function Br(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,St.decompress)(o),a=J(n);e.debug("importing registry components:",i.components.length);for(let s of i.components){let p=X(e.normalize(s.filePath)),l=n.components.find(f=>X(f.filePath).endsWith(p)&&f.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 f of s.inputs)e.debug(`set input (${l.id})`),await t.setRegisteredComponentInput({cmpId:l.id,name:f.name,type:f.type,required:f.required,defaultValue:f.defaultValue,friendlyName:f.friendlyName,helperText:f.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=J(d)}return a}var te={react:"react",remix:"remix",angular:"angular",next:"next",qwik:"qwik"},bm={[te.react]:[{version:O.gen1,recommended:!0}],[te.remix]:[{version:O.gen1,recommended:!1}],[te.angular]:[{version:O.gen2,recommended:!0}],[te.next]:[{version:O.gen1,recommended:!0},{version:O.gen2,recommended:!1}],[te.qwik]:[{version:O.gen2,recommended:!0}]};var ns={"@builder.io/qwik-city":Gn,next:Vn,"@remix-run/react":or,react:ur,"@angular/core":Dr},rs={"@builder.io/qwik-city":te.qwik,next:te.next,"@remix-run/react":te.remix,react:te.react,"@angular/core":te.angular};async function os(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 ve(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=ns[t.name];if(r){let n=await r(e);return{...n,exportRegistry:()=>jr(e,n),importRegistry:i=>Br(e,n,i),framework:rs[t.name]}}}throw new Error(`Devtools framework not found for ${e.getRootDir()}, ${JSON.stringify(e.frameworks,null,2)}`)}function Vr(e){function t(f){if(typeof f!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(f))}function r(f,c){let u="",h=0,m=-1,g=0,x;for(let C=0;C<=f.length;++C){if(C<f.length)x=f.charCodeAt(C);else{if(x===47)break;x=47}if(x===47){if(!(m===C-1||g===1))if(m!==C-1&&g===2){if(u.length<2||h!==2||u.charCodeAt(u.length-1)!==46||u.charCodeAt(u.length-2)!==46){if(u.length>2){let P=u.lastIndexOf("/");if(P!==u.length-1){P===-1?(u="",h=0):(u=u.slice(0,P),h=u.length-1-u.lastIndexOf("/")),m=C,g=0;continue}}else if(u.length===2||u.length===1){u="",h=0,m=C,g=0;continue}}c&&(u.length>0?u+="/..":u="..",h=2)}else u.length>0?u+="/"+f.slice(m+1,C):u=f.slice(m+1,C),h=C-m-1;m=C,g=0}else x===46&&g!==-1?++g:g=-1}return u}let n=function(...c){let u="",h=!1;for(let m=c.length-1;m>=-1&&!h;m--){let g;m>=0?g=c[m]:e.cwd?g=e.cwd():g="/",t(g),g.length!==0&&(u=g+"/"+u,h=g.charCodeAt(0)===47)}return u=r(u,!h),h?u.length>0?"/"+u:"/":u.length>0?u:"."},o=function(c){if(t(c),c.length===0)return".";let u=c.charCodeAt(0)===47,h=c.charCodeAt(c.length-1)===47;return c=r(c,!u),c.length===0&&!u&&(c="."),c.length>0&&h&&(c+="/"),u?"/"+c:c};return{relative:function(c,u){if(t(c),t(u),c===u||(c=n(c),u=n(u),c===u))return"";let h=1;for(;h<c.length&&c.charCodeAt(h)===47;++h);let m=c.length,g=m-h,x=1;for(;x<u.length&&u.charCodeAt(x)===47;++x);let P=u.length-x,I=g<P?g:P,T=-1,S=0;for(;S<=I;++S){if(S===I){if(P>I){if(u.charCodeAt(x+S)===47)return u.slice(x+S+1);if(S===0)return u.slice(x+S)}else g>I&&(c.charCodeAt(h+S)===47?T=S:S===0&&(T=0));break}let B=c.charCodeAt(h+S),F=u.charCodeAt(x+S);if(B!==F)break;B===47&&(T=S)}let R="";for(S=h+T+1;S<=m;++S)(S===m||c.charCodeAt(S)===47)&&(R.length===0?R+="..":R+="/..");return R.length>0?R+u.slice(x+T):(x+=T,u.charCodeAt(x)===47&&++x,u.slice(x))},resolve:n,join:function(...c){if(c.length===0)return".";let u;for(let h=0;h<c.length;++h){let m=c[h];t(m),m.length>0&&(u===void 0?u=m:u+="/"+m)}return u===void 0?".":o(u)},isAbsolute:function(c){return t(c),c.length>0&&c.charCodeAt(0)===47},basename:function(c,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');t(c);let h=0,m=-1,g=!0,x;if(u!==void 0&&u.length>0&&u.length<=c.length){if(u.length===c.length&&u===c)return"";let C=u.length-1,P=-1;for(x=c.length-1;x>=0;--x){let I=c.charCodeAt(x);if(I===47){if(!g){h=x+1;break}}else P===-1&&(g=!1,P=x+1),C>=0&&(I===u.charCodeAt(C)?--C===-1&&(m=x):(C=-1,m=P))}return h===m?m=P:m===-1&&(m=c.length),c.slice(h,m)}else{for(x=c.length-1;x>=0;--x)if(c.charCodeAt(x)===47){if(!g){h=x+1;break}}else m===-1&&(g=!1,m=x+1);return m===-1?"":c.slice(h,m)}},normalize:o,dirname:function(c){if(t(c),c.length===0)return".";let u=c.charCodeAt(0),h=u===47,m=-1,g=!0;for(let x=c.length-1;x>=1;--x)if(u=c.charCodeAt(x),u===47){if(!g){m=x;break}}else g=!1;return m===-1?h?"/":".":h&&m===1?"//":c.slice(0,m)},extname:function(c){t(c);let u=-1,h=0,m=-1,g=!0,x=0;for(let C=c.length-1;C>=0;--C){let P=c.charCodeAt(C);if(P===47){if(!g){h=C+1;break}continue}m===-1&&(g=!1,m=C+1),P===46?u===-1?u=C:x!==1&&(x=1):u!==-1&&(x=-1)}return u===-1||m===-1||x===0||x===1&&u===m-1&&u===h+1?"":c.slice(u,m)}}}async function is(e){let t=e.getRootDir?e.getRootDir:()=>"/",r=e.cwd?e.cwd:()=>"/",n=Vr({cwd:r,...e}),o=new Map,i=m=>n.normalize(n.resolve(r(),m)),a=m=>{for(let[g]of o)if((g+"/").startsWith(m))return!0;return m===t()},s=m=>(m=i(m),o.has(m)?!0:a(m)),p=m=>{m=i(m);let g=m===t()?m:m+"/",x=g.split("/").length-1,C=[];for(let[P]of o)if(P.split("/").slice(0,x).join("/")+"/"===g){let S=P.split("/")[x];S&&!C.includes(S)&&C.push(S)}return C.sort()},l=m=>{m=i(m);let g=o.get(m);return typeof g=="string"?g:null},d=m=>(m=i(m),{isFile:()=>o.has(m),isDirectory:()=>!o.has(m)&&a(m)}),f=async m=>{if(typeof crypto<"u"){let C=new TextEncoder().encode(m),P=await crypto.subtle.digest("SHA-256",C);return Array.from(new Uint8Array(P)).map(I=>I.toString(16).padStart(2,"0")).join("")}let g=0;for(let x=0;x<m.length;x++){let C=m.charCodeAt(x);g=(g<<5)-g+C,g|=0}return Number(Math.abs(g)).toString(36)},c=new Set,u={getRootDir:t,cwd:r,exists:async m=>s(m),existsSync:s,readdir:async m=>p(m),readdirSync:p,readFile:async m=>l(m),readFileSync:l,stat:async m=>d(m),statSync:d,writeFile:async(m,g)=>{m=i(m),o.set(m,g);let x={path:m,basename:n.basename(m),dirname:n.dirname(m),extname:n.extname(m)};for(let C of c)await C(x)},hash:f,getDeviceId:async()=>typeof navigator<"u"?f(navigator.userAgent):"",formatCode:async(m,g)=>g,on:(m,g)=>{m==="change"&&c.add(g)},off:(m,g)=>{m==="change"&&c.delete(g)},debug:(...m)=>{console.debug("[builder-dev-tools]",...m)},launchEditor:async()=>{},platform:()=>({runtime:"",os:""}),getFrameworks:()=>[],...n,...e,version:"0.0.0",sdkVersion:null},h=await ve(u);return u.getFrameworks=e.getFrameworks?e.getFrameworks:()=>h,u}async function Kr(e,t,r){let n=E(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if($r(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 f=d.statement;if(!e.ts.isVariableStatement(f))throw new Error(`Expected an export assignment from ${t}`);let c=d.statement;if(e.ts.isVariableStatement(c)){let u=[...c.declarationList.declarations];if(u.length!==1)throw new Error("Expected a single variable declaration");let h=u[0];if(!h.initializer)throw new Error("Expected an initializer on the declaration");let m=h.initializer;if(e.ts.isObjectLiteralExpression(m)||e.ts.isCallExpression(m)){let g="BuilderDevTools()",x=[...n.statements],C=x.indexOf(c);return x[C]=e.ts.factory.updateVariableStatement(c,c.modifiers,e.ts.factory.updateVariableDeclarationList(c.declarationList,[e.ts.factory.updateVariableDeclaration(h,h.name,h.exclamationToken,h.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(g),void 0,[m]))])),n=e.ts.factory.updateSourceFile(n,x),n=D(e,n,{defaultImport:"BuilderDevTools",importPath:"@builder.io/dev-tools/next"}),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}}let 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 f=d.expression;if(!e.ts.isBinaryExpression(f))throw new Error("Expected a binary expression for the default export");let c=nn(e,n);n=c.sourceFile;let u=[...n.statements],h=u.indexOf(d);return u[h]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(f,f.left,f.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[f.right]))),n=e.ts.factory.updateSourceFile(n,u),o.content=N(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 f=d[0];if(!f.initializer)throw new Error("Expected an initializer on the declaration");let c=f.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let u=nn(e,n);n=u.sourceFile;let h=[...n.statements],m=h.indexOf(l);return h[m]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(f,f.name,f.exclamationToken,f.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(u.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,h),o.content=N(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,f=p.statement;if(!e.ts.isExpressionStatement(f))throw new Error("Expected an expression statement for the default export");let c=f.expression;if(!e.ts.isBinaryExpression(c))throw new Error("Expected a binary expression for the default export");let h=p.node.body;if(!e.ts.isBlock(h))throw new Error("Expected a block body on the next config function");let m=[...h.statements],g=m.findIndex(T=>e.ts.isReturnStatement(T));if(g===-1)throw new Error("Expected a return statement on the next config function");let x=m[g],C=nn(e,n);n=C.sourceFile,m[g]=e.ts.factory.updateReturnStatement(x,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(C.withFnVariableName),void 0,[x.expression]));let P=[...n.statements],I=P.indexOf(f);return P[I]=e.ts.factory.updateExpressionStatement(f,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(h,m)))),n=e.ts.factory.updateSourceFile(n,P),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected export type")}function $r(e,t){for(let r of t.statements)if(e.ts.isVariableStatement(r))for(let n of r.declarationList.declarations){if(!n.initializer||!e.ts.isCallExpression(n.initializer))continue;let o=n.initializer.expression;if(!e.ts.isCallExpression(o)||!e.ts.isIdentifier(o.expression)||o.expression.text!=="require")continue;let i=o.arguments[0];if(!(!i||!e.ts.isStringLiteral(i))&&i.text==="@builder.io/dev-tools/next"&&e.ts.isIdentifier(n.name))return n.name.text}return null}function nn(e,t){let r=$r(e,t);return r||(r="withBuilderDevTools",t=e.ts.factory.updateSourceFile(t,[e.ts.factory.createVariableStatement(void 0,e.ts.factory.createVariableDeclarationList([e.ts.factory.createVariableDeclaration(r,void 0,void 0,e.ts.factory.createCallExpression(e.ts.factory.createCallExpression(e.ts.factory.createIdentifier("require"),void 0,[e.ts.factory.createStringLiteral("@builder.io/dev-tools/next")]),void 0,[]))],e.ts.NodeFlags.Const)),...t.statements])),{withFnVariableName:r,sourceFile:t}}async function zr(e,t,r){let n=E(e,r),o={content:r,filePath:t,fileName:e.basename(t),hasContentUpdates:!1};if(qr(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 f=d.statement;if(!e.ts.isExportAssignment(f))throw new Error(`Expected an export assignment from ${t}`);if(e.ts.isObjectLiteralExpression(f.expression)){let c="builderDevTools()",u=as(e,f.expression);if(!u)return o;let h=e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c),void 0,[u]),m=[...n.statements],g=m.indexOf(f);return m[g]=e.ts.factory.updateExportAssignment(f,f.modifiers,h),n=e.ts.factory.updateSourceFile(n,m),n=D(e,n,{defaultImport:"builderDevTools",importPath:"@builder.io/dev-tools/remix"}),o.content=N(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 f=d.expression;if(!e.ts.isBinaryExpression(f))throw new Error("Expected a binary expression for the default export");let c=Mr(e,n);n=c.sourceFile;let u=[...n.statements],h=u.indexOf(d);return u[h]=e.ts.factory.updateExpressionStatement(d,e.ts.factory.updateBinaryExpression(f,f.left,f.operatorToken,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(c.withFnVariableName),void 0,[f.right]))),n=e.ts.factory.updateSourceFile(n,u),o.content=N(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 f=d[0];if(!f.initializer)throw new Error("Expected an initializer on the declaration");let c=f.initializer;if(e.ts.isObjectLiteralExpression(c)||e.ts.isCallExpression(c)){let u=Mr(e,n);n=u.sourceFile;let h=[...n.statements],m=h.indexOf(l);return h[m]=e.ts.factory.updateVariableStatement(l,l.modifiers,e.ts.factory.updateVariableDeclarationList(l.declarationList,[e.ts.factory.updateVariableDeclaration(f,f.name,f.exclamationToken,f.type,e.ts.factory.createCallExpression(e.ts.factory.createIdentifier(u.withFnVariableName),void 0,[c]))])),n=e.ts.factory.updateSourceFile(n,h),o.content=N(e,n),o.hasContentUpdates=!0,o}throw new Error("Unexpected initializer on the variable statement")}throw new Error("Unexpected export type")}function qr(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 Mr(e,t){let r=qr(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 as(e,t){let r=[...t.properties],n=r.findIndex(i=>b(e,i)==="serverDependenciesToBundle");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Ur(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=Ur(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("serverDependenciesToBundle",o)]):null}function Ur(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 Jr(e,t,r){let n=E(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=ss(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 f=[...n.statements],c=f.indexOf(a);return f[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,f),n=D(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}if(e.ts.isObjectLiteralExpression(l)){let d=rn(e,l);if(!d)return s;let f=[...n.statements],c=f.indexOf(a);return f[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,f),n=D(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}throw new Error("Unsupported argument in defineConfig()")}if(e.ts.isObjectLiteralExpression(a.expression)){let p=rn(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=D(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/vite"}),s.content=N(e,n),s.hasContentUpdates=!0,s}throw new Error(`Unable to parse ${t}`)}function ss(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=rn(e,i.expression);return a?(n[o]=e.ts.factory.updateReturnStatement(i,a),e.ts.factory.updateBlock(r,n)):null}function rn(e,t){if(cs(e)){let i=ps(e,t);i&&(t=i)}let r=[...t.properties],n=r.findIndex(i=>b(e,i)==="plugins");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=Qr(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=Qr(e,e.ts.factory.createArrayLiteralExpression([],!0));return o?e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("plugins",o)]):null}function Qr(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 ps(e,t){let r=[...t.properties],n=r.findIndex(i=>b(e,i)==="ssr");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isObjectLiteralExpression(i.initializer)){let a=ls(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=on(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 ls(e,t){let r=[...t.properties],n=r.findIndex(i=>b(e,i)==="noExternal");if(n>-1){let i=r[n];if(e.ts.isPropertyAssignment(i)&&i.initializer&&e.ts.isArrayLiteralExpression(i.initializer)){let a=on(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=on(e,e.ts.factory.createArrayLiteralExpression([],!0));if(o)return e.ts.factory.updateObjectLiteralExpression(t,[...r,e.ts.factory.createPropertyAssignment("noExternal",o)])}function on(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 cs(e){return e.getFrameworks().some(t=>t.name==="@remix-run/react")}async function Wr(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 Gr(e,t,r){e.debug("Angular config updates are currently in progress...");try{await fs(e)}catch{console.error("Unable to update package.json.")}return await us(e),{content:r,fileName:e.basename(t),filePath:t,hasContentUpdates:!0}}async function us(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 ms(e,o);await e.writeFile(n,i)}async function ms(e,t){let r=t,n=E(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=D(e,n,{namedImports:["builderDevTools"],importPath:"@builder.io/dev-tools/angular"});let i=`
786
+ builderDevTools().catch((err: Error) =>
787
+ console.error("Error starting dev tools:", err)
788
+ );`;return r=N(e,n),o||(r+=i),r}async function fs(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=ds(n);o&&await e.writeFile(r,o)}function ds(e){let t=JSON.parse(e);if(t.scripts=t.scripts||{},t.scripts[Yr])return;let r=t.scripts.start||t.scripts.dev||"ng serve";return t.scripts[Yr]=`concurrently "${r}" "${gs}"`,JSON.stringify(t,null,2)+`
789
+ `}var Yr="builder-dev",gs="npx builder-dev-tools";var Xr=[{id:"angular",configFileNames:["angular.json"],ensureConfigPlugin:Gr},{id:"next",configFileNames:["next.config.ts","next.config.js","next.config.mjs"],ensureConfigPlugin:Kr},{id:"vite",configFileNames:["vite.config.ts","vite.config.js"],ensureConfigPlugin:Jr},{id:"remix",configFileNames:["remix.config.ts","remix.config.js"],ensureConfigPlugin:zr},{id:"webpack",configFileNames:["webpack.config.ts","webpack.config.js"],ensureConfigPlugin:Wr}];async function Zr(e){let t=e.resolve("/");for(let n of Xr)for(let o of n.configFileNames){let i=e.getRootDir();for(let a=0;a<10;a++)try{let s=e.join(i,o),p=e.readFileSync(s);if(typeof p=="string")return{id:n.id,filePath:s,content:p};if(i===t)break;i=e.dirname(i)}catch(s){if((s?.message??"").includes("Invalid path"))break;throw s}}if((await ve(e)).some(n=>n.name==="next")){let n=e.join(e.getRootDir(),"next.config.js");return await e.writeFile(n,Hr),{id:"next",filePath:n,content:Hr}}return null}async function xs(e){let t=await Zr(e);if(!t)throw new Error("Unable to find config file, such as next.config.js or vite.config.js.");let n=await Xr.find(o=>o.id===t.id).ensureConfigPlugin(e,t.filePath,t.content);return n.hasContentUpdates&&(n.content=H(n.content),n.content=await e.formatCode(n.filePath,n.content),await e.writeFile(t.filePath,n.content)),n}var Hr=`
790
+ /** @type {import('next').NextConfig} */
791
+ const nextConfig = {
792
+ }
793
+
794
+ module.exports = nextConfig
795
+ `.trimStart();var eo="/~builder-dev-tools.js";function hs(e){try{if(typeof e!="string"||e.trim().length===0)return console.error("Missing devtool server url"),"";let t=new URL(eo,e);t.searchParams.set("v",Pt);let r=JSON.stringify(Pt),n=`/* Builder Devtools v${Pt} */
796
+ `;return n+=`(() => {
797
+ `,n+=` if (typeof document !== "undefined") {
798
+ `,n+=` let devToolsScript = document.head.querySelector("script[data-builder-dev-tools]");
799
+ `,n+=` if (!devToolsScript) {
800
+ `,n+=` devToolsScript = document.createElement("script");
801
+ `,n+=` devToolsScript.setAttribute("src", ${JSON.stringify(t)});
802
+ `,n+=` devToolsScript.setAttribute("data-builder-dev-tools", ${r});
803
+ `,n+=` devToolsScript.setAttribute("async", "");
804
+ `,n+=` document.head.appendChild(devToolsScript);
805
+ `,n+=` }
806
+ `,n+=` }
807
+ `,n+=`})();
808
+ `,n}catch(t){return console.error(`Failed to create devtools client script: ${t.message||t}`),""}}var Pt="1.1.12";export{os as createDevTools,is as createDevToolsSys,ve as detectFrameworks,pn as detectFrameworksFromPackageJson,xs as ensureConfigPlugin,Zr as findBuildToolConfig,hs as getClientScript,cn as parseDotEnvContent,Pt as version};