twenty 2.46.0 → 2.49.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 (159) hide show
  1. package/CONTRIBUTING.md +25 -17
  2. package/dist/app-template/yarn.lock +165 -191
  3. package/dist/app-worker.cjs +1 -1
  4. package/dist/chunks/application-BE-X21OV.cjs +5 -0
  5. package/dist/chunks/build-pull-entities-caP3XupC.cjs +5 -0
  6. package/dist/chunks/{build-source-manifest-CLKH5vzc.cjs → build-source-manifest-DWRbCMVq.cjs} +1 -1
  7. package/dist/chunks/{build-source-snapshot-CbGsy1-v.cjs → build-source-snapshot-CtgBQfSx.cjs} +816 -157
  8. package/dist/chunks/{check-node-requirement-mqwNPktb.cjs → check-node-requirement-CGBKvEqH.cjs} +1 -1
  9. package/dist/chunks/cli-node-version-range.constant-D7fE8edk.cjs +1 -0
  10. package/dist/chunks/cli-version.constant-BBeYll5N.cjs +1 -0
  11. package/dist/chunks/collect-translatable-strings-GBVXMoaX.cjs +1 -0
  12. package/dist/chunks/{collect-watch-inputs-B9jWG4W0.cjs → collect-watch-inputs-CJVgCTo5.cjs} +1 -1
  13. package/dist/chunks/compile-application-translations-B4jILjGc.cjs +1 -0
  14. package/dist/chunks/{constants-CL6mrTMT-B748cNNG.cjs → constants-CemcuPi_-D7dbw2cv.cjs} +1 -1
  15. package/dist/chunks/{convert-to-label-BPBLtc_O.cjs → convert-to-label-DH4ArWop.cjs} +1 -1
  16. package/dist/chunks/create-app-not-installed-error-DY-iuPPx.cjs +1 -0
  17. package/dist/chunks/{create-http-status-error-D3gy3DzB.cjs → create-http-status-error-C6gJS0JS.cjs} +1 -1
  18. package/dist/chunks/create-metadata-client-BRD2ys8z.cjs +6 -0
  19. package/dist/chunks/create-pull-base-write-CX9yftCd.cjs +1 -0
  20. package/dist/chunks/create-rest-client-Cc5Cmakp.cjs +60 -0
  21. package/dist/chunks/create-tooling-failure-B2FmNwR2.cjs +1 -0
  22. package/dist/chunks/extract-manifest-from-file-mvb6OhWm.cjs +1 -0
  23. package/dist/chunks/extract-source-translations-Bd_030qL.cjs +1 -0
  24. package/dist/chunks/{fetch-metadata-inspection-Dp034TpK.cjs → fetch-metadata-inspection-CAmEp-xl.cjs} +1 -1
  25. package/dist/chunks/{fetch-signed-in-identity-BhvaL3zp.cjs → fetch-signed-in-identity-b_LbRuL-.cjs} +1 -1
  26. package/dist/chunks/{fetch-workspace-id-DJStmf_V.cjs → fetch-workspace-id-C9kY0s84.cjs} +1 -1
  27. package/dist/chunks/{format-body-VcKL4WXt.cjs → format-body-BIv-9Sd5.cjs} +1 -1
  28. package/dist/chunks/{format-data-value-B6rIbpJv.cjs → format-data-value-C7Njc7Sb.cjs} +1 -1
  29. package/dist/chunks/format-display-path-gEepVJDg.cjs +1 -0
  30. package/dist/chunks/{format-metadata-fields-DJnTg1R9.cjs → format-metadata-fields-BOG2kj2h.cjs} +1 -1
  31. package/dist/chunks/{format-metadata-owner-yUeocnwY.cjs → format-metadata-owner-CyEMvoQr.cjs} +1 -1
  32. package/dist/chunks/format-progress-line-DgxG_7p2.cjs +1 -0
  33. package/dist/chunks/generate-application-client-BOLnv8nr.cjs +1 -0
  34. package/dist/chunks/{get-app-plan-summary-B0uwHXbO.cjs → get-app-plan-summary-D1Dsd34P.cjs} +2 -2
  35. package/dist/chunks/get-client-generation-skip-reason-CUn0Y2Vu.cjs +1 -0
  36. package/dist/chunks/get-client-sdk-package-path-2U3kDCRq.cjs +1 -0
  37. package/dist/chunks/{get-function-input-schema-GNk3NRLJ-Bfph1o9z.cjs → get-function-input-schema-GNk3NRLJ-CWNFoyKh.cjs} +1 -1
  38. package/dist/chunks/global-flags.constant-0k222fHC.cjs +1 -0
  39. package/dist/chunks/{is-access-token-expiring-gICPXsbO.cjs → is-access-token-expiring-D-YfufId.cjs} +1 -1
  40. package/dist/chunks/{is-application-not-found-error-mNeGbxmT.cjs → is-application-not-found-error-4vnGlYbm.cjs} +1 -1
  41. package/dist/chunks/is-exported-manifest-dsiWCcjx.cjs +1 -0
  42. package/dist/chunks/is-inside-directory-DHVCQE5C.cjs +1 -0
  43. package/dist/chunks/{is-interaction-allowed-ycbAFMIj.cjs → is-interaction-allowed-CF-ko1KI.cjs} +1 -1
  44. package/dist/chunks/is-locale-catalog-CRn-mKHj.cjs +1 -0
  45. package/dist/chunks/is-supported-locale-BOZxTj7r.cjs +1 -0
  46. package/dist/chunks/{is-supported-locale-BAjnKnKj.cjs → locale-catalog-format-rg5FMb7l.cjs} +5 -5
  47. package/dist/chunks/metadata-Vepr2xeA.cjs +1 -0
  48. package/dist/chunks/{metadata-page.constant-BkG4ndrO.cjs → metadata-page.constant-thBSPIZT.cjs} +1 -1
  49. package/dist/chunks/{parse-api-url-BllxRdpE.cjs → parse-api-url-CEfjRyid.cjs} +1 -1
  50. package/dist/chunks/{parse-app-export-BkfflyUY.cjs → parse-app-export-DUZ2dQJ8.cjs} +1 -1
  51. package/dist/chunks/parse-extraction-locale-fg7K8vps.cjs +1 -0
  52. package/dist/chunks/{parse-graphql-response-CtP9KTS2.cjs → parse-graphql-response-DvoRiFPV.cjs} +1 -1
  53. package/dist/chunks/{parse-json-input-CvMTKAWw.cjs → parse-json-input-DE451WQG.cjs} +1 -1
  54. package/dist/chunks/{print-typescript-value-DhElcFzI.cjs → print-typescript-value-DaEFmMda.cjs} +1 -1
  55. package/dist/chunks/pull-source-D9QUEAsK.cjs +1 -0
  56. package/dist/chunks/read-app-identity-DtEnxiEF.cjs +1 -0
  57. package/dist/chunks/read-application-identifier-DyZcsUV4.cjs +1 -0
  58. package/dist/chunks/{read-application-identity-BFg_p84F.cjs → read-application-identity-CMJ-W5D8.cjs} +1 -1
  59. package/dist/chunks/{read-config-DUJ27809.cjs → read-config-DdtXhdPp.cjs} +1 -1
  60. package/dist/chunks/read-json-object-CgaXuNS0.cjs +1 -0
  61. package/dist/chunks/read-snapshot-file-dvWjVexO.cjs +1 -0
  62. package/dist/chunks/{read-source-identity-C8LG1v6U.cjs → read-source-identity-Ca7QkuwC.cjs} +1 -1
  63. package/dist/chunks/record-pull-base-Dfqth7Uy.cjs +1 -0
  64. package/dist/chunks/{record-typecheck-config-inputs-BDqkKCrj.cjs → record-typecheck-config-inputs-DZy2PhMY.cjs} +1 -1
  65. package/dist/chunks/{request-oauth-tokens-C4KKlTQT.cjs → request-oauth-tokens-BY5ew3aM.cjs} +1 -1
  66. package/dist/chunks/require-approval-D0FfoHhF.cjs +1 -0
  67. package/dist/chunks/resolve-app-project-dftvbB2P.cjs +1 -0
  68. package/dist/chunks/resolve-command-target-0k6iitOZ.cjs +1 -0
  69. package/dist/chunks/resolve-inside-sdk-6M8jy9bi.cjs +1 -0
  70. package/dist/chunks/{resolve-metadata-object-QoDi-Aik.cjs → resolve-metadata-object-DzDTQF_T.cjs} +1 -1
  71. package/dist/chunks/resolve-project-typescript-Cw2kvn6E.cjs +1 -0
  72. package/dist/chunks/{resolve-request-url-jC5kYwkn.cjs → resolve-request-url-Cnuxu_nj.cjs} +1 -1
  73. package/dist/chunks/resolve-source-sdk-B1Fxlsmt.cjs +1 -0
  74. package/dist/chunks/{run-api-graphql-command-Biy0WqXa.cjs → run-api-graphql-command-CzQ4IH4l.cjs} +1 -1
  75. package/dist/chunks/{run-api-rest-command-D9kdQceV.cjs → run-api-rest-command-BtXv11uz.cjs} +1 -1
  76. package/dist/chunks/{run-app-add-command-DcTQg7Si.cjs → run-app-add-command-DsgrCsEl.cjs} +5 -5
  77. package/dist/chunks/run-app-apply-command-X_XGAwRN.cjs +2 -0
  78. package/dist/chunks/{run-app-build-command-BRYb0one.cjs → run-app-build-command--t8qRNsn.cjs} +1 -1
  79. package/dist/chunks/run-app-dev-command-Cc-nhH2t.cjs +2 -0
  80. package/dist/chunks/run-app-exec-command-mdXCYmUn.cjs +3 -0
  81. package/dist/chunks/run-app-generate-client-command-3DMg-WyX.cjs +2 -0
  82. package/dist/chunks/run-app-init-command-BfS8IFmY.cjs +2 -0
  83. package/dist/chunks/run-app-install-command-DMbwFvtE.cjs +1 -0
  84. package/dist/chunks/run-app-logs-command-B7_iDOj1.cjs +9 -0
  85. package/dist/chunks/run-app-operation-DFCj0sG_.cjs +1 -0
  86. package/dist/chunks/run-app-plan-command-Dh_DFA7H.cjs +1 -0
  87. package/dist/chunks/run-app-publish-command-eJcYGb8S.cjs +3 -0
  88. package/dist/chunks/run-app-pull-command-BV2cMuLU.cjs +3 -0
  89. package/dist/chunks/run-app-translations-extract-command-CBBbk_vJ.cjs +2 -0
  90. package/dist/chunks/{run-app-typecheck-command-C8LqpOej.cjs → run-app-typecheck-command-pAHhuBGo.cjs} +1 -1
  91. package/dist/chunks/run-app-uninstall-command-C5um6udQ.cjs +2 -0
  92. package/dist/chunks/{run-auth-login-command-_zDgRcth.cjs → run-auth-login-command-C4VI44Xu.cjs} +1 -1
  93. package/dist/chunks/{run-auth-logout-command-BO6O7GVi.cjs → run-auth-logout-command-5Tvqclki.cjs} +1 -1
  94. package/dist/chunks/{run-auth-status-command-Cj-vqoHg.cjs → run-auth-status-command-CLH1bylR.cjs} +1 -1
  95. package/dist/chunks/{run-cli-c9TOR0zj.cjs → run-cli-BA0FsxzB.cjs} +8 -8
  96. package/dist/chunks/{run-commands-command-C6gvMpQ_.cjs → run-commands-command-CjzkTcrO.cjs} +1 -1
  97. package/dist/chunks/{run-data-get-command-jDEU4EG1.cjs → run-data-get-command-DoZIpf8O.cjs} +1 -1
  98. package/dist/chunks/{run-data-list-command-EnCdbuzc.cjs → run-data-list-command-DAoplyqj.cjs} +1 -1
  99. package/dist/chunks/{run-doctor-command-DnJ6io-m.cjs → run-doctor-command-D8cpt7FI.cjs} +2 -2
  100. package/dist/chunks/{run-metadata-field-describe-command-vJngpw2S.cjs → run-metadata-field-describe-command-BrZYIhjH.cjs} +1 -1
  101. package/dist/chunks/{run-metadata-field-list-command-CR4w7fI6.cjs → run-metadata-field-list-command-C9-pHXbx.cjs} +1 -1
  102. package/dist/chunks/{run-metadata-object-describe-command-CHP8K-W2.cjs → run-metadata-object-describe-command-WFdGu1Iq.cjs} +1 -1
  103. package/dist/chunks/{run-metadata-object-list-command-BqXMcAp6.cjs → run-metadata-object-list-command-8UKU3cMW.cjs} +1 -1
  104. package/dist/chunks/{run-open-command-DKl8acw0.cjs → run-open-command-B1pdHp36.cjs} +1 -1
  105. package/dist/chunks/{run-remote-list-command-DeAzr5Mn.cjs → run-remote-list-command-BRPcCOKx.cjs} +1 -1
  106. package/dist/chunks/{run-remote-remove-command-D0C5sWjP.cjs → run-remote-remove-command-CS6za2Pm.cjs} +1 -1
  107. package/dist/chunks/{run-remote-rename-command-Byq9WRHd.cjs → run-remote-rename-command-BOqWQUR4.cjs} +1 -1
  108. package/dist/chunks/{run-remote-use-command-B6VVDlMG.cjs → run-remote-use-command-BANiokD-.cjs} +1 -1
  109. package/dist/chunks/{run-version-command-BmSk8PUV.cjs → run-version-command-C0xgcPP6.cjs} +1 -1
  110. package/dist/chunks/{select-target-C1VZjf-A.cjs → select-target-CfuNLCQL.cjs} +1 -1
  111. package/dist/chunks/sign-in-to-remote-again-DYCWIDa9.cjs +1 -0
  112. package/dist/chunks/{sign-in-with-browser-C3kC6uP2.cjs → sign-in-with-browser-Ck4tOxtA.cjs} +1 -1
  113. package/dist/chunks/to-public-target-C0POrVoG.cjs +1 -0
  114. package/dist/chunks/{to-worker-output-diagnostics-lprh9b0l.cjs → to-worker-output-diagnostics-Bt_acI26.cjs} +1 -1
  115. package/dist/chunks/{typecheck-application-DGrovgX9.cjs → typecheck-application-DEO1SVdO.cjs} +2 -2
  116. package/dist/chunks/{update-config-BkKBEfAp.cjs → update-config-FzOzO3wZ.cjs} +1 -1
  117. package/dist/chunks/utils-ZOESAfF8-ub6jPiZ-.cjs +35 -0
  118. package/dist/chunks/with-phase-details-Dof8Ao9R.cjs +1 -0
  119. package/dist/chunks/{write-config-atomically-DRWTukU-.cjs → write-config-atomically-C-YMKq3P.cjs} +1 -1
  120. package/dist/cli.cjs +1 -1
  121. package/docs/commands.md +93 -5
  122. package/package.json +6 -6
  123. package/src/app/source/README.md +1 -1
  124. package/dist/chunks/application-DuIJE2qG.cjs +0 -5
  125. package/dist/chunks/build-pull-entities-zwArrVMk.cjs +0 -5
  126. package/dist/chunks/cli-version.constant-aSp8WZDh.cjs +0 -1
  127. package/dist/chunks/compile-application-translations-B59jYVWc.cjs +0 -1
  128. package/dist/chunks/create-app-not-installed-error-Cc8YZqI7.cjs +0 -1
  129. package/dist/chunks/create-metadata-client-ChjDalSi.cjs +0 -6
  130. package/dist/chunks/create-pull-base-write-rxjcKtD-.cjs +0 -1
  131. package/dist/chunks/create-rest-client-eAfOFfDA.cjs +0 -58
  132. package/dist/chunks/create-tooling-failure-DLI5FlQP.cjs +0 -1
  133. package/dist/chunks/extract-manifest-from-file-j-Y9wNas.cjs +0 -1
  134. package/dist/chunks/generate-application-client-CCVLjxTj.cjs +0 -1
  135. package/dist/chunks/global-flags.constant-8GfW0sNU.cjs +0 -1
  136. package/dist/chunks/is-exported-manifest-CriNOWvx.cjs +0 -1
  137. package/dist/chunks/is-inside-directory-t3ixLQDr.cjs +0 -1
  138. package/dist/chunks/metadata-D9sQOTRK.cjs +0 -1
  139. package/dist/chunks/package-CdYv4LEx.cjs +0 -1
  140. package/dist/chunks/pull-source-eoiJwFb9.cjs +0 -1
  141. package/dist/chunks/read-app-identity-SeleQ_D6.cjs +0 -1
  142. package/dist/chunks/record-pull-base-BbxvlnU8.cjs +0 -1
  143. package/dist/chunks/require-approval-fhegB1ap.cjs +0 -1
  144. package/dist/chunks/resolve-app-project-D5ZXIpsG.cjs +0 -1
  145. package/dist/chunks/resolve-inside-sdk-p-16gKb4.cjs +0 -1
  146. package/dist/chunks/resolve-project-typescript-CDY8BbmP.cjs +0 -1
  147. package/dist/chunks/resolve-source-sdk-mK-f4q55.cjs +0 -1
  148. package/dist/chunks/run-app-apply-command-DwLPPJ-Y.cjs +0 -2
  149. package/dist/chunks/run-app-dev-command-CVeh9Gab.cjs +0 -2
  150. package/dist/chunks/run-app-exec-command-DKLNLbL5.cjs +0 -3
  151. package/dist/chunks/run-app-init-command-CJj8_spC.cjs +0 -2
  152. package/dist/chunks/run-app-logs-command-Dusb8K-W.cjs +0 -9
  153. package/dist/chunks/run-app-operation-BWrY9YZK.cjs +0 -1
  154. package/dist/chunks/run-app-plan-command-C0_3e332.cjs +0 -1
  155. package/dist/chunks/run-app-pull-command-DcZqs8gR.cjs +0 -3
  156. package/dist/chunks/run-app-uninstall-command-ncWS_k-p.cjs +0 -2
  157. package/dist/chunks/sign-in-to-remote-again-CW8HPSTP.cjs +0 -1
  158. package/dist/chunks/to-public-target-CIAwoOKL.cjs +0 -1
  159. package/dist/chunks/utils-B8EXJeaX-DK3gCslL.cjs +0 -33
@@ -1,176 +1,835 @@
1
- const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CL6mrTMT-B748cNNG.cjs"),n=require("./application-DuIJE2qG.cjs"),r=require("./validate-app-path-Dau-PC0a.cjs"),i=require("./collect-watch-inputs-B9jWG4W0.cjs"),a=require("./cli-error-CSsayo0u.cjs"),o=require("./fs-utils-Bl1fQcaJ.cjs"),s=require("./get-tooling-error-context-C69TBSej.cjs"),c=require("./typecheck-application-DGrovgX9.cjs"),l=require("./compile-application-translations-B59jYVWc.cjs"),u=require("./resolve-source-sdk-mK-f4q55.cjs"),d=require("./is-supported-locale-BAjnKnKj.cjs"),f=require("./constants-Cf5-CwMu.cjs");let p=require("node:crypto"),m=require("node:fs/promises"),h=require("node:path"),g=require("node:module"),_=require("node:fs"),v=require("esbuild");v=e.i(v);let y=require("typescript");y=e.i(y);let b=require("path");b=e.i(b);let x=require("crypto");x=e.i(x);var S=({sourcePath:e,destinationPath:t,dereferenceSymlinks:n=!1})=>n?(0,m.copyFile)(e,t):o.t(e,t),ee=/^readme(\.[^.]+)?$/i,C=e=>{let t=e.filter(e=>ee.test(e));return t.find(e=>/\.md$/i.test(e))??t[0]},te=async({appPath:e,relativeOutputDir:t=n.o,dereferenceSymlinks:r=!1})=>{let a=C(await(0,m.readdir)(e));if(a===void 0)return;let s=(0,h.join)(e,t);await o.r(s);let c=(0,h.join)(e,a),l=(0,h.join)(s,a);i.r(c),await S({sourcePath:c,destinationPath:l,dereferenceSymlinks:r})},ne=`twenty-client-sdk`,re=async({result:e,appPath:n,fileFolder:r,lastChecksums:i,onFileBuilt:a})=>{let o=Object.keys(e.metafile?.outputs??{}).filter(e=>e.endsWith(`.mjs`));for(let s of o){let o=b.default.resolve(s),c=b.default.relative(n,o),l=e.metafile?.outputs?.[s]?.entryPoint||``,u=b.default.relative(n,l),d=await(0,m.readFile)(o),f=r===t.W.BuiltFrontComponent?`sha256`:`md5`,p=x.default.createHash(f).update(d).digest(`hex`);if(i.get(c)===p)continue;i.set(c,p);let h=(e.metafile?.outputs?.[s])?.imports?.some(e=>e.external===!0&&e.path.startsWith(ne))??!1;a&&await a({fileFolder:r,builtPath:c,sourcePath:u,checksum:p,usesSdkClient:h})}},w=async({appPath:e,sourcePaths:t,fileFolder:n,buildOptions:r,onFileBuilt:a})=>{if(t.length===0)return;let o={};for(let n of t){let t=n.replace(/\.tsx?$/,``);if(Object.hasOwn(o,t))throw Error(`Application sources ${b.default.relative(e,o[t])} and ${n} produce the same build output. Rename one of them.`);o[t]=b.default.join(e,n)}await re({result:await v.build({...r,entryPoints:o,plugins:[...i.n(),...r.plugins??[]]}),appPath:e,fileFolder:n,lastChecksums:new Map,onFileBuilt:a})},ie=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,`path`,`fs`,`crypto`,`stream`,`util`,`os`,`url`,`http`,`https`,`events`,`buffer`,`querystring`,`assert`,`zlib`,`net`,`tls`,`child_process`,`worker_threads`],ae=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,n.r],T=e=>`__shared_dependencies_${e.replace(/[^A-Za-z0-9]/g,`_`)}__`,oe=({specifier:e,exportNames:t})=>{let r=T(e),i=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return i.length===0?`import ${JSON.stringify(n.r)};`:i.map((e,t)=>`export { ${r}_${t} as ${JSON.stringify(e)} } from ${JSON.stringify(n.r)};`).join(`
2
- `)},E=`twenty-shared-dependencies-shim`,se=e=>({name:`twenty-shared-dependencies-shim`,setup:n=>{n.onResolve({filter:/.*/},({path:n})=>{let r=e();if(t.zt(r)&&r.exportNamesBySpecifier.has(n))return{path:n,namespace:E}}),n.onLoad({filter:/.*/,namespace:E},({path:n})=>{let r=e()?.exportNamesBySpecifier.get(n);if(t.zt(r))return{contents:oe({specifier:n,exportNames:r}),loader:`js`}})}}),ce=e=>`if (typeof document !== 'undefined') {
3
- const styleElement = document.createElement('style');
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CemcuPi_-D7dbw2cv.cjs"),n=require("./application-BE-X21OV.cjs"),r=require("./validate-app-path-Dau-PC0a.cjs"),i=require("./collect-watch-inputs-CJVgCTo5.cjs"),a=require("./cli-error-CSsayo0u.cjs"),o=require("./fs-utils-Bl1fQcaJ.cjs"),s=require("./get-tooling-error-context-C69TBSej.cjs"),c=require("./typecheck-application-DEO1SVdO.cjs"),l=require("./compile-application-translations-B4jILjGc.cjs"),u=require("./resolve-source-sdk-B1Fxlsmt.cjs"),d=require("./constants-Cf5-CwMu.cjs"),f=require("./is-supported-locale-BOZxTj7r.cjs");let p=require("node:crypto"),m=require("node:fs/promises"),h=require("node:path"),g=require("node:module"),_=require("node:fs"),v=require("esbuild");v=e.i(v);let y=require("typescript");y=e.i(y);let b=require("path");b=e.i(b);let x=require("crypto");x=e.i(x);var S=({sourcePath:e,destinationPath:t,dereferenceSymlinks:n=!1})=>n?(0,m.copyFile)(e,t):o.t(e,t),ee=/^readme(\.[^.]+)?$/i,te=e=>{let t=e.filter(e=>ee.test(e));return t.find(e=>/\.md$/i.test(e))??t[0]},ne=async({appPath:e,relativeOutputDir:t=n.l,dereferenceSymlinks:r=!1})=>{let a=te(await(0,m.readdir)(e));if(a===void 0)return;let s=(0,h.join)(e,t);await o.r(s);let c=(0,h.join)(e,a),l=(0,h.join)(s,a);i.r(c),await S({sourcePath:c,destinationPath:l,dereferenceSymlinks:r})},re=`twenty-client-sdk`,ie=async({result:e,appPath:n,fileFolder:r,lastChecksums:i,onFileBuilt:a})=>{let o=Object.keys(e.metafile?.outputs??{}).filter(e=>e.endsWith(`.mjs`));for(let s of o){let o=b.default.resolve(s),c=b.default.relative(n,o),l=e.metafile?.outputs?.[s]?.entryPoint||``,u=b.default.relative(n,l),d=await(0,m.readFile)(o),f=r===t.I.BuiltFrontComponent?`sha256`:`md5`,p=x.default.createHash(f).update(d).digest(`hex`);if(i.get(c)===p)continue;i.set(c,p);let h=(e.metafile?.outputs?.[s])?.imports?.some(e=>e.external===!0&&e.path.startsWith(re))??!1;a&&await a({fileFolder:r,builtPath:c,sourcePath:u,checksum:p,usesSdkClient:h})}},C=async({appPath:e,sourcePaths:t,fileFolder:n,buildOptions:r,onFileBuilt:a})=>{if(t.length===0)return;let o={};for(let n of t){let t=n.replace(/\.tsx?$/,``);if(Object.hasOwn(o,t))throw Error(`Application sources ${b.default.relative(e,o[t])} and ${n} produce the same build output. Rename one of them.`);o[t]=b.default.join(e,n)}await ie({result:await v.build({...r,entryPoints:o,plugins:[...i.n(),...r.plugins??[]]}),appPath:e,fileFolder:n,lastChecksums:new Map,onFileBuilt:a})},ae=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,`path`,`fs`,`crypto`,`stream`,`util`,`os`,`url`,`http`,`https`,`events`,`buffer`,`querystring`,`assert`,`zlib`,`net`,`tls`,`child_process`,`worker_threads`],oe=[`twenty-client-sdk/core`,`twenty-client-sdk/metadata`,n.o],w=`// jsx-runtime-wrapper.ts
2
+ import {
3
+ Fragment,
4
+ jsx as originalJsx,
5
+ jsxs as originalJsxs
6
+ } from "__real_react_jsx_runtime__";
7
+ import {
8
+ CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
9
+ getStyleElementCssText,
10
+ injectStyleViaHead,
11
+ withJsxEventRef
12
+ } from "__jsx_shared_helpers__";
13
+ var wrapJsxFactory = (originalJsxFactory) => function wrappedJsx(type, props, key) {
14
+ if (typeof type !== "string") {
15
+ return originalJsxFactory(type, props, key);
16
+ }
17
+ if (type === "style") {
18
+ injectStyleViaHead(getStyleElementCssText(props));
19
+ return null;
20
+ }
21
+ const customElementTag = CUSTOM_ELEMENT_TAG_BY_HTML_TAG[type];
22
+ if (!customElementTag) {
23
+ return originalJsxFactory(type, props, key);
24
+ }
25
+ return originalJsxFactory(customElementTag, withJsxEventRef(props), key);
26
+ };
27
+ var jsx = wrapJsxFactory(originalJsx);
28
+ var jsxs = wrapJsxFactory(originalJsxs);
29
+ export {
30
+ Fragment,
31
+ jsx,
32
+ jsxs
33
+ };
34
+ `,se=`// constants/custom-element-tag-by-html-tag.ts
35
+ var CUSTOM_ELEMENT_TAG_BY_HTML_TAG = globalThis.__HTML_TAG_TO_CUSTOM_ELEMENT_TAG__ || {};
36
+
37
+ // utils/extract-css-text.ts
38
+ var extractCssText = (children) => {
39
+ if (typeof children === "string") {
40
+ return children;
41
+ }
42
+ if (!Array.isArray(children)) {
43
+ return "";
44
+ }
45
+ return children.filter((child) => typeof child === "string").join("");
46
+ };
47
+
48
+ // utils/get-style-element-css-text.ts
49
+ var getStyleElementCssText = (props) => props && props.dangerouslySetInnerHTML ? props.dangerouslySetInnerHTML.__html || "" : extractCssText(props && props.children);
50
+
51
+ // states/injected-style-keys.ts
52
+ var injectedStyleKeys = {};
53
+
54
+ // utils/to-style-key.ts
55
+ var toStyleKey = (cssText) => {
56
+ let cssTextHash = 0;
57
+ for (let characterIndex = 0; characterIndex < cssText.length; characterIndex++) {
58
+ cssTextHash = (cssTextHash << 5) - cssTextHash + cssText.charCodeAt(characterIndex) | 0;
59
+ }
60
+ return "jsx-style-" + cssTextHash;
61
+ };
62
+
63
+ // utils/inject-style-via-head.ts
64
+ var injectStyleViaHead = (cssText) => {
65
+ if (!cssText) {
66
+ return;
67
+ }
68
+ const styleKey = toStyleKey(cssText);
69
+ if (injectedStyleKeys[styleKey]) {
70
+ return;
71
+ }
72
+ injectedStyleKeys[styleKey] = true;
73
+ const styleElement = document.createElement("style");
74
+ styleElement.setAttribute("data-jsx-style", styleKey);
75
+ styleElement.textContent = cssText;
4
76
  document.head.appendChild(styleElement);
5
- styleElement.textContent = ${JSON.stringify(e)};
6
- }`,le={name:`css-injection`,setup:e=>{e.onLoad({filter:/\.css$/,namespace:`file`},async({path:e})=>{let t=(await v.build({entryPoints:[e],bundle:!0,write:!1,outfile:`injected.css`,logLevel:`silent`,plugins:i.n(),loader:Object.fromEntries([`.png`,`.jpg`,`.jpeg`,`.gif`,`.svg`,`.webp`,`.avif`,`.ico`,`.woff`,`.woff2`,`.ttf`,`.eot`,`.otf`].map(e=>[e,`dataurl`]))})).outputFiles[0].text;return{contents:ce(t),loader:`js`}})}},ue=`export var customElementMap = globalThis.__HTML_TAG_TO_CUSTOM_ELEMENT_TAG__ || {};
7
-
8
- var _injectedStyleKeys = {};
9
-
10
- export function injectStyleViaHead(cssText) {
11
- if (!cssText) return;
12
- var hash = 0;
13
- for (var i = 0; i < cssText.length; i++) {
14
- hash = ((hash << 5) - hash + cssText.charCodeAt(i)) | 0;
15
- }
16
- var key = 'jsx-style-' + hash;
17
- if (_injectedStyleKeys[key]) return;
18
- _injectedStyleKeys[key] = true;
19
- var el = document.createElement('style');
20
- el.setAttribute('data-jsx-style', key);
21
- el.textContent = cssText;
22
- document.head.appendChild(el);
23
- }
77
+ };
24
78
 
25
- export function extractCssText(children) {
26
- if (typeof children === 'string') return children;
27
- if (Array.isArray(children))
28
- return children
29
- .filter(function (c) { return typeof c === 'string'; })
30
- .join('');
31
- return '';
32
- }
79
+ // constants/custom-element-tags.ts
80
+ var CUSTOM_ELEMENT_TAGS = Object.fromEntries(
81
+ Object.values(CUSTOM_ELEMENT_TAG_BY_HTML_TAG).map((customElementTag) => [
82
+ customElementTag,
83
+ true
84
+ ])
85
+ );
33
86
 
34
- var _reactToDomEvent = {
35
- ondoubleclick: 'ondblclick',
87
+ // utils/is-custom-element-tag.ts
88
+ var isCustomElementTag = (type) => typeof type === "string" && CUSTOM_ELEMENT_TAGS[type] === true;
89
+
90
+ // utils/apply-user-ref.ts
91
+ var applyUserRef = (userRef, element) => {
92
+ if (typeof userRef === "function") {
93
+ return userRef(element);
94
+ }
95
+ const isObjectRef = userRef != null && typeof userRef === "object";
96
+ if (isObjectRef) {
97
+ userRef.current = element;
98
+ }
99
+ return void 0;
36
100
  };
37
101
 
38
- function _isEventProp(name) {
39
- return (
40
- name.length > 2 &&
41
- name.charCodeAt(0) === 111 &&
42
- name.charCodeAt(1) === 110 &&
43
- name.charCodeAt(2) >= 65 &&
44
- name.charCodeAt(2) <= 90
45
- );
46
- }
102
+ // states/clone-event-ref-attachment-state.ts
103
+ var cloneEventRefAttachmentState = { current: null };
47
104
 
48
- export function splitEventProps(props) {
49
- if (!props) return { cleanProps: props, events: null };
50
- var events = null;
51
- var cleanProps = null;
52
- for (var k in props) {
53
- if (_isEventProp(k) && typeof props[k] === 'function') {
54
- if (!events) {
55
- events = {};
56
- cleanProps = {};
57
- for (var j in props) {
58
- if (j === k) break;
59
- cleanProps[j] = props[j];
60
- }
61
- }
62
- events[k] = props[k];
63
- } else if (events) {
64
- cleanProps[k] = props[k];
65
- }
105
+ // utils/apply-user-ref-under-clone-event-ref-attachment.ts
106
+ var applyUserRefUnderCloneEventRefAttachment = (userRef, attachment) => {
107
+ const previousCloneEventRefAttachment = cloneEventRefAttachmentState.current;
108
+ cloneEventRefAttachmentState.current = attachment;
109
+ try {
110
+ return applyUserRef(userRef, attachment.element);
111
+ } finally {
112
+ cloneEventRefAttachmentState.current = previousCloneEventRefAttachment;
66
113
  }
67
- return { cleanProps: cleanProps || props, events: events };
68
- }
114
+ };
115
+
116
+ // utils/get-clone-event-ref-attachment-of.ts
117
+ var getCloneEventRefAttachmentOf = (element) => {
118
+ const cloneEventRefAttachment = cloneEventRefAttachmentState.current;
119
+ const isCloneEventRefAttachingElement = cloneEventRefAttachment !== null && cloneEventRefAttachment.element === element;
120
+ return isCloneEventRefAttachingElement ? cloneEventRefAttachment : null;
121
+ };
122
+
123
+ // states/event-listener-entries-by-element.ts
124
+ var eventListenerEntriesByElement = /* @__PURE__ */ new WeakMap();
125
+
126
+ // utils/get-or-create-event-listener-entries-by-key.ts
127
+ var getOrCreateEventListenerEntriesByKey = (element) => {
128
+ const existingListenerEntriesByKey = eventListenerEntriesByElement.get(element);
129
+ if (existingListenerEntriesByKey) {
130
+ return existingListenerEntriesByKey;
131
+ }
132
+ const listenerEntriesByKey = {};
133
+ eventListenerEntriesByElement.set(element, listenerEntriesByKey);
134
+ return listenerEntriesByKey;
135
+ };
69
136
 
70
- export function makeEventRef(events, userRef) {
71
- return function(el) {
72
- if (el) {
73
- for (var name in events) {
74
- var domName = _reactToDomEvent[name.toLowerCase()] || name.toLowerCase();
75
- el[domName] = events[name];
76
- }
137
+ // utils/remove-stale-event-handlers-of-source.ts
138
+ var removeStaleEventHandlersOfSource = ({
139
+ element,
140
+ listenerEntriesByKey,
141
+ currentListenerKeys,
142
+ source
143
+ }) => {
144
+ for (const [listenerKey, listenerEntry] of Object.entries(
145
+ listenerEntriesByKey
146
+ )) {
147
+ const isCurrentListener = !!currentListenerKeys[listenerKey];
148
+ const hasHandlerOfSource = !!listenerEntry.handlersBySource[source];
149
+ if (isCurrentListener || !hasHandlerOfSource) {
150
+ continue;
151
+ }
152
+ delete listenerEntry.handlersBySource[source];
153
+ const hasHandlerOfAnySource = !!listenerEntry.handlersBySource.jsx || !!listenerEntry.handlersBySource.clone;
154
+ if (hasHandlerOfAnySource) {
155
+ continue;
77
156
  }
78
- if (typeof userRef === 'function') userRef(el);
79
- else if (userRef != null && typeof userRef === 'object') userRef.current = el;
157
+ delete listenerEntriesByKey[listenerKey];
158
+ element.removeEventListener(
159
+ listenerEntry.type,
160
+ listenerEntry.listener,
161
+ listenerEntry.capture
162
+ );
163
+ }
164
+ };
165
+
166
+ // utils/is-synthetic-like-event.ts
167
+ var isSyntheticLikeEvent = (event) => event != null && typeof event === "object" && "nativeEvent" in event;
168
+
169
+ // utils/call-chained-event-handlers.ts
170
+ var callChainedEventHandlers = ({
171
+ thisArgument,
172
+ event,
173
+ firstHandler,
174
+ secondHandler
175
+ }) => {
176
+ const isPreventableEvent = isSyntheticLikeEvent(event);
177
+ if (isPreventableEvent) {
178
+ event.preventBaseUIHandler = function() {
179
+ event.baseUIHandlerPrevented = true;
180
+ };
181
+ }
182
+ firstHandler.call(thisArgument, event);
183
+ const isSecondHandlerPrevented = isPreventableEvent && !!event.baseUIHandlerPrevented;
184
+ if (!isSecondHandlerPrevented) {
185
+ secondHandler.call(thisArgument, event);
186
+ }
187
+ };
188
+
189
+ // utils/create-element-event-listener.ts
190
+ var createElementEventListener = (handlersBySource) => function(event) {
191
+ const jsxHandler = handlersBySource.jsx;
192
+ const cloneHandler = handlersBySource.clone;
193
+ if (jsxHandler && cloneHandler) {
194
+ callChainedEventHandlers({
195
+ thisArgument: this,
196
+ event,
197
+ firstHandler: jsxHandler,
198
+ secondHandler: cloneHandler
199
+ });
200
+ return;
201
+ }
202
+ const handlerOfSingleSource = jsxHandler || cloneHandler;
203
+ if (handlerOfSingleSource) {
204
+ handlerOfSingleSource.call(this, event);
205
+ }
206
+ };
207
+
208
+ // utils/add-event-listener-entry.ts
209
+ var addEventListenerEntry = (element, listenerEntriesByKey, listenerDescriptor) => {
210
+ const handlersBySource = {};
211
+ const listenerEntry = {
212
+ type: listenerDescriptor.type,
213
+ capture: listenerDescriptor.capture,
214
+ handlersBySource,
215
+ listener: createElementEventListener(handlersBySource)
80
216
  };
81
- }`,de=`import {
82
- jsx as _originalJsx,
83
- jsxs as _originalJsxs,
84
- Fragment,
85
- } from '__real_react_jsx_runtime__';
217
+ listenerEntriesByKey[listenerDescriptor.key] = listenerEntry;
218
+ element.addEventListener(
219
+ listenerEntry.type,
220
+ listenerEntry.listener,
221
+ listenerEntry.capture
222
+ );
223
+ return listenerEntry;
224
+ };
86
225
 
87
- import {
88
- customElementMap,
89
- injectStyleViaHead,
90
- extractCssText,
91
- splitEventProps,
92
- makeEventRef,
93
- } from '__jsx_shared_helpers__';
94
-
95
- function _wrapJsxFactory(originalFactory) {
96
- return function wrappedJsx(type, props, key) {
97
- if (typeof type === 'string') {
98
- if (type === 'style') {
99
- var css =
100
- props && props.dangerouslySetInnerHTML
101
- ? props.dangerouslySetInnerHTML.__html || ''
102
- : extractCssText(props && props.children);
103
- injectStyleViaHead(css);
104
- return null;
105
- }
106
-
107
- var customTag = customElementMap[type];
108
- if (customTag) {
109
- var split = splitEventProps(props);
110
- if (split.events) {
111
- var cp = split.cleanProps;
112
- cp.ref = makeEventRef(split.events, cp.ref);
113
- return originalFactory(customTag, cp, key);
114
- }
115
- return originalFactory(customTag, props, key);
116
- }
117
- }
118
- return originalFactory(type, props, key);
226
+ // utils/to-event-listener-descriptor.ts
227
+ import { USES_PREACT } from "__uses_preact__";
228
+
229
+ // constants/capture-phase-prop-name-suffix.ts
230
+ var CAPTURE_PHASE_PROP_NAME_SUFFIX = "Capture";
231
+
232
+ // utils/is-capture-phase-event-prop.ts
233
+ var POINTER_CAPTURE_EVENT_PROP_NAME_SUFFIX = "PointerCapture";
234
+ var isCapturePhaseEventProp = (eventPropName) => eventPropName.endsWith(CAPTURE_PHASE_PROP_NAME_SUFFIX) && !eventPropName.endsWith(POINTER_CAPTURE_EVENT_PROP_NAME_SUFFIX);
235
+
236
+ // utils/is-text-entry-element.ts
237
+ var INPUT_TYPES_WITHOUT_TEXT_ENTRY = /* @__PURE__ */ new Set(["checkbox", "radio", "file"]);
238
+ var isTextEntryElement = (element) => {
239
+ if (!("tagName" in element) || typeof element.tagName !== "string") {
240
+ return false;
241
+ }
242
+ const lowerCaseTagName = element.tagName.toLowerCase();
243
+ if (lowerCaseTagName === CUSTOM_ELEMENT_TAG_BY_HTML_TAG.textarea) {
244
+ return true;
245
+ }
246
+ if (lowerCaseTagName !== CUSTOM_ELEMENT_TAG_BY_HTML_TAG.input) {
247
+ return false;
248
+ }
249
+ const inputType = "type" in element && typeof element.type === "string" ? element.type.toLowerCase() : "";
250
+ return !INPUT_TYPES_WITHOUT_TEXT_ENTRY.has(inputType);
251
+ };
252
+
253
+ // utils/to-event-listener-descriptor.ts
254
+ var EVENT_PROP_NAME_PREFIX = "on";
255
+ var DOM_EVENT_PROP_NAME_BY_LOWER_CASE_REACT_EVENT_PROP_NAME = {
256
+ ondoubleclick: "ondblclick"
257
+ };
258
+ var toEventListenerDescriptor = ({
259
+ eventPropName,
260
+ element
261
+ }) => {
262
+ const isCapturePhase = isCapturePhaseEventProp(eventPropName);
263
+ const bubblePhaseEventPropName = isCapturePhase ? eventPropName.slice(0, -CAPTURE_PHASE_PROP_NAME_SUFFIX.length) : eventPropName;
264
+ const lowerCaseEventPropName = bubblePhaseEventPropName.toLowerCase();
265
+ const domEventPropName = DOM_EVENT_PROP_NAME_BY_LOWER_CASE_REACT_EVENT_PROP_NAME[lowerCaseEventPropName] || lowerCaseEventPropName;
266
+ const eventType = domEventPropName.slice(EVENT_PROP_NAME_PREFIX.length);
267
+ const isTextEntryChange = USES_PREACT && eventType === "change" && isTextEntryElement(element);
268
+ const listenerType = isTextEntryChange ? "input" : eventType;
269
+ const listenerKey = isTextEntryChange ? "change:input" : eventType;
270
+ return {
271
+ key: isCapturePhase ? listenerKey + ":capture" : listenerKey,
272
+ type: listenerType,
273
+ capture: isCapturePhase
119
274
  };
120
- }
275
+ };
121
276
 
122
- export var jsx = _wrapJsxFactory(_originalJsx);
123
- export var jsxs = _wrapJsxFactory(_originalJsxs);
124
- export { Fragment };`,fe=`export * from '__real_react__';
125
- import _React from '__real_react__';
277
+ // utils/set-event-handlers-of-source.ts
278
+ var setEventHandlersOfSource = ({
279
+ element,
280
+ listenerEntriesByKey,
281
+ events,
282
+ source
283
+ }) => {
284
+ const currentListenerKeys = {};
285
+ for (const eventPropName in events) {
286
+ const listenerDescriptor = toEventListenerDescriptor({
287
+ eventPropName,
288
+ element
289
+ });
290
+ currentListenerKeys[listenerDescriptor.key] = true;
291
+ const listenerEntry = listenerEntriesByKey[listenerDescriptor.key] || addEventListenerEntry(element, listenerEntriesByKey, listenerDescriptor);
292
+ listenerEntry.handlersBySource[source] = events[eventPropName];
293
+ }
294
+ return currentListenerKeys;
295
+ };
126
296
 
127
- import {
128
- customElementMap,
129
- injectStyleViaHead,
130
- extractCssText,
131
- splitEventProps,
132
- makeEventRef,
133
- } from '__jsx_shared_helpers__';
134
-
135
- var _originalCreateElement = _React.createElement;
136
-
137
- function createElement(type) {
138
- var args = arguments;
139
- if (typeof type === 'string') {
140
- if (type === 'style') {
141
- var props = args.length > 1 ? args[1] : null;
142
- if (props) {
143
- var css = props.dangerouslySetInnerHTML
144
- ? props.dangerouslySetInnerHTML.__html || ''
145
- : extractCssText(props.children);
146
- injectStyleViaHead(css);
147
- }
148
- return null;
297
+ // utils/register-element-event-handlers.ts
298
+ var registerElementEventHandlers = (element, events, source) => {
299
+ const hasEventHandlers = Object.keys(events).length > 0;
300
+ const isElementInListenerRegistry = eventListenerEntriesByElement.has(element);
301
+ if (!hasEventHandlers && !isElementInListenerRegistry) {
302
+ return;
303
+ }
304
+ const listenerEntriesByKey = getOrCreateEventListenerEntriesByKey(element);
305
+ const currentListenerKeys = setEventHandlersOfSource({
306
+ element,
307
+ listenerEntriesByKey,
308
+ events,
309
+ source
310
+ });
311
+ removeStaleEventHandlersOfSource({
312
+ element,
313
+ listenerEntriesByKey,
314
+ currentListenerKeys,
315
+ source
316
+ });
317
+ };
318
+
319
+ // utils/attach-clone-event-ref.ts
320
+ var attachCloneEventRef = ({
321
+ element,
322
+ events,
323
+ userRef,
324
+ outerWinningCloneEvents
325
+ }) => {
326
+ const outerCloneEventRefAttachment = getCloneEventRefAttachmentOf(element);
327
+ if (outerCloneEventRefAttachment !== null) {
328
+ outerCloneEventRefAttachment.hasAttachedInnerCloneEventRef = true;
329
+ return applyUserRef(userRef, element);
330
+ }
331
+ const attachment = {
332
+ element,
333
+ hasAttachedInnerCloneEventRef: false
334
+ };
335
+ registerElementEventHandlers(element, events, "clone");
336
+ const userRefCleanup = applyUserRefUnderCloneEventRefAttachment(
337
+ userRef,
338
+ attachment
339
+ );
340
+ const fallsBackToOuterWinningCloneEvents = !!outerWinningCloneEvents && !attachment.hasAttachedInnerCloneEventRef;
341
+ if (fallsBackToOuterWinningCloneEvents) {
342
+ registerElementEventHandlers(element, outerWinningCloneEvents, "clone");
343
+ }
344
+ return userRefCleanup;
345
+ };
346
+
347
+ // utils/attach-jsx-event-ref.ts
348
+ var attachJsxEventRef = ({
349
+ element,
350
+ events,
351
+ userRef
352
+ }) => {
353
+ registerElementEventHandlers(element, events, "jsx");
354
+ const isAttachedWithoutCloneEventRef = getCloneEventRefAttachmentOf(element) === null;
355
+ if (isAttachedWithoutCloneEventRef) {
356
+ registerElementEventHandlers(element, {}, "clone");
357
+ }
358
+ return applyUserRef(userRef, element);
359
+ };
360
+
361
+ // utils/create-event-ref.ts
362
+ var createEventRef = (events, userRef, source, outerWinningCloneEvents) => {
363
+ function eventRef(element) {
364
+ if (!element) {
365
+ applyUserRef(userRef, element);
366
+ return void 0;
367
+ }
368
+ const userRefCleanup = source === "clone" ? attachCloneEventRef({
369
+ element,
370
+ events,
371
+ userRef,
372
+ outerWinningCloneEvents
373
+ }) : attachJsxEventRef({ element, events, userRef });
374
+ return typeof userRefCleanup === "function" ? userRefCleanup : void 0;
375
+ }
376
+ return Object.assign(eventRef, {
377
+ _eventHandlers: events,
378
+ _outerWinningCloneEvents: outerWinningCloneEvents,
379
+ _innerRef: userRef,
380
+ _eventSource: source
381
+ });
382
+ };
383
+
384
+ // states/event-ref-without-handlers-by-user-ref-by-source.ts
385
+ var eventRefWithoutHandlersByUserRefBySource = {
386
+ jsx: /* @__PURE__ */ new WeakMap(),
387
+ clone: /* @__PURE__ */ new WeakMap()
388
+ };
389
+
390
+ // utils/get-event-ref-without-handlers.ts
391
+ var getEventRefWithoutHandlers = (userRef, source) => {
392
+ const eventRefByUserRef = eventRefWithoutHandlersByUserRefBySource[source];
393
+ const memoizedEventRef = eventRefByUserRef.get(userRef);
394
+ if (memoizedEventRef) {
395
+ return memoizedEventRef;
396
+ }
397
+ const eventRef = createEventRef({}, userRef, source);
398
+ eventRefByUserRef.set(userRef, eventRef);
399
+ return eventRef;
400
+ };
401
+
402
+ // states/event-ref-without-handlers-or-user-ref-by-source.ts
403
+ var eventRefWithoutHandlersOrUserRefBySource = {};
404
+
405
+ // utils/get-event-ref-without-handlers-or-user-ref.ts
406
+ var getEventRefWithoutHandlersOrUserRef = (source) => {
407
+ const memoizedEventRef = eventRefWithoutHandlersOrUserRefBySource[source];
408
+ if (memoizedEventRef) {
409
+ return memoizedEventRef;
410
+ }
411
+ const eventRef = createEventRef({}, null, source);
412
+ eventRefWithoutHandlersOrUserRefBySource[source] = eventRef;
413
+ return eventRef;
414
+ };
415
+
416
+ // utils/make-event-ref.ts
417
+ var makeEventRef = (events, userRef, source) => {
418
+ if (events) {
419
+ return createEventRef(events, userRef, source);
420
+ }
421
+ if (userRef == null) {
422
+ return getEventRefWithoutHandlersOrUserRef(source);
423
+ }
424
+ return getEventRefWithoutHandlers(userRef, source);
425
+ };
426
+
427
+ // utils/does-clone-replace-element-ref.ts
428
+ var doesCloneReplaceElementRef = (cloneConfig, elementRef) => {
429
+ const cloneSetsRef = cloneConfig.ref !== void 0;
430
+ const cloneRefDiffersFromElementRef = cloneConfig.ref !== elementRef;
431
+ return cloneSetsRef && cloneRefDiffersFromElementRef;
432
+ };
433
+
434
+ // utils/get-element-ref.ts
435
+ var getElementRef = (element, readsElementRefFromVnode) => {
436
+ if (readsElementRefFromVnode) {
437
+ return element.ref;
438
+ }
439
+ return element.props.ref;
440
+ };
441
+
442
+ // utils/is-clone-event-ref.ts
443
+ var isCloneEventRef = (ref) => ref != null && ref._eventSource === "clone";
444
+
445
+ // utils/get-outer-winning-clone-events-of.ts
446
+ var getOuterWinningCloneEventsOf = (cloneEventRef) => cloneEventRef._outerWinningCloneEvents || cloneEventRef._eventHandlers;
447
+
448
+ // utils/merge-clone-events-outer-winning.ts
449
+ var mergeCloneEventsOuterWinning = (innerCloneEvents, outerCloneEvents) => Object.assign({}, innerCloneEvents, outerCloneEvents);
450
+
451
+ // utils/to-non-empty-clone-events-or-null.ts
452
+ var toNonEmptyCloneEventsOrNull = (cloneEvents) => Object.keys(cloneEvents).length > 0 ? cloneEvents : null;
453
+
454
+ // utils/make-clone-event-ref-keeping-element-ref.ts
455
+ var makeCloneEventRefKeepingElementRef = ({
456
+ innerCloneEventRef,
457
+ cloneEvents
458
+ }) => {
459
+ if (cloneEvents === null) {
460
+ return innerCloneEventRef;
461
+ }
462
+ const outerWinningCloneEvents = toNonEmptyCloneEventsOrNull(
463
+ mergeCloneEventsOuterWinning(
464
+ getOuterWinningCloneEventsOf(innerCloneEventRef),
465
+ cloneEvents
466
+ )
467
+ );
468
+ const hasInnerOuterWinningCloneEvents = innerCloneEventRef._outerWinningCloneEvents != null;
469
+ if (!hasInnerOuterWinningCloneEvents) {
470
+ return makeEventRef(
471
+ outerWinningCloneEvents,
472
+ innerCloneEventRef._innerRef,
473
+ "clone"
474
+ );
475
+ }
476
+ return createEventRef(
477
+ mergeCloneEventsOuterWinning(
478
+ innerCloneEventRef._eventHandlers,
479
+ cloneEvents
480
+ ),
481
+ innerCloneEventRef._innerRef,
482
+ "clone",
483
+ outerWinningCloneEvents
484
+ );
485
+ };
486
+
487
+ // utils/chain-event-handlers.ts
488
+ var chainEventHandlers = (firstHandler, secondHandler) => function(event) {
489
+ callChainedEventHandlers({
490
+ thisArgument: this,
491
+ event,
492
+ firstHandler,
493
+ secondHandler
494
+ });
495
+ };
496
+
497
+ // utils/chain-clone-events.ts
498
+ var chainCloneEvents = (innerCloneEvents, outerCloneEvents) => {
499
+ const chainedCloneEvents = Object.assign(
500
+ {},
501
+ innerCloneEvents
502
+ );
503
+ const outerCloneEventsOrEmpty = outerCloneEvents ?? {};
504
+ for (const [eventPropName, outerHandler] of Object.entries(
505
+ outerCloneEventsOrEmpty
506
+ )) {
507
+ const innerHandler = innerCloneEvents[eventPropName];
508
+ chainedCloneEvents[eventPropName] = innerHandler ? chainEventHandlers(innerHandler, outerHandler) : outerHandler;
509
+ }
510
+ return toNonEmptyCloneEventsOrNull(chainedCloneEvents);
511
+ };
512
+
513
+ // utils/is-jsx-event-ref.ts
514
+ var isJsxEventRef = (ref) => ref != null && ref._eventSource === "jsx";
515
+
516
+ // utils/find-innermost-jsx-event-ref.ts
517
+ var findInnermostJsxEventRef = (ref) => {
518
+ let innerRef = ref;
519
+ while (isCloneEventRef(innerRef)) {
520
+ innerRef = innerRef._innerRef;
521
+ }
522
+ if (isJsxEventRef(innerRef)) {
523
+ return innerRef;
524
+ }
525
+ return null;
526
+ };
527
+
528
+ // utils/does-clone-set-or-clear-event-prop.ts
529
+ var doesCloneSetOrClearEventProp = (cloneConfig, eventPropName) => {
530
+ const isEventPropInCloneConfig = eventPropName in cloneConfig;
531
+ if (!isEventPropInCloneConfig) {
532
+ return false;
533
+ }
534
+ const cloneEventPropValue = cloneConfig[eventPropName];
535
+ const setsEventHandler = typeof cloneEventPropValue === "function";
536
+ const clearsEventHandler = cloneEventPropValue === null || cloneEventPropValue === void 0;
537
+ return setsEventHandler || clearsEventHandler;
538
+ };
539
+
540
+ // utils/is-jsx-event-prop-overridden-by-clone.ts
541
+ var isJsxEventPropOverriddenByClone = ({
542
+ eventPropName,
543
+ cloneConfig,
544
+ eventHandlersSetByInnerClones
545
+ }) => {
546
+ if (doesCloneSetOrClearEventProp(cloneConfig, eventPropName)) {
547
+ return true;
548
+ }
549
+ if (eventHandlersSetByInnerClones === null) {
550
+ return false;
551
+ }
552
+ return eventPropName in eventHandlersSetByInnerClones;
553
+ };
554
+
555
+ // utils/get-jsx-event-prop-names-overridden-by-clone.ts
556
+ var getJsxEventPropNamesOverriddenByClone = ({
557
+ jsxEventHandlers,
558
+ cloneConfig,
559
+ eventHandlersSetByInnerClones
560
+ }) => Object.keys(jsxEventHandlers).filter(
561
+ (jsxEventPropName) => isJsxEventPropOverriddenByClone({
562
+ eventPropName: jsxEventPropName,
563
+ cloneConfig,
564
+ eventHandlersSetByInnerClones
565
+ })
566
+ );
567
+
568
+ // utils/omit-event-handlers.ts
569
+ var omitEventHandlers = (eventHandlers, omittedEventPropNames) => {
570
+ const remainingEventHandlers = {};
571
+ for (const [eventPropName, eventHandler] of Object.entries(eventHandlers)) {
572
+ const isOmitted = omittedEventPropNames.includes(eventPropName);
573
+ if (!isOmitted) {
574
+ remainingEventHandlers[eventPropName] = eventHandler;
149
575
  }
576
+ }
577
+ return remainingEventHandlers;
578
+ };
150
579
 
151
- var customTag = customElementMap[type];
152
- if (customTag) {
153
- var ceProps = args.length > 1 ? args[1] : null;
154
- var split = splitEventProps(ceProps);
155
- if (split.events) {
156
- var cp = split.cleanProps || {};
157
- cp.ref = makeEventRef(split.events, cp.ref);
158
- var newArgs = [customTag, cp];
159
- for (var i = 2; i < args.length; i++) newArgs.push(args[i]);
160
- return _originalCreateElement.apply(null, newArgs);
161
- }
162
- var newArgs2 = [customTag];
163
- for (var i2 = 1; i2 < args.length; i2++) newArgs2.push(args[i2]);
164
- return _originalCreateElement.apply(null, newArgs2);
580
+ // utils/replace-jsx-event-ref-inner-ref.ts
581
+ var replaceJsxEventRefInnerRef = (jsxEventRef, innerRef) => {
582
+ const lastInnerRefReplacement = jsxEventRef._lastInnerRefReplacement;
583
+ const canReuseLastInnerRefReplacement = lastInnerRefReplacement !== void 0 && lastInnerRefReplacement._innerRef === innerRef;
584
+ if (canReuseLastInnerRefReplacement) {
585
+ return lastInnerRefReplacement;
586
+ }
587
+ const innerRefReplacement = createEventRef(
588
+ jsxEventRef._eventHandlers,
589
+ innerRef,
590
+ "jsx"
591
+ );
592
+ jsxEventRef._lastInnerRefReplacement = innerRefReplacement;
593
+ return innerRefReplacement;
594
+ };
595
+
596
+ // utils/get-clone-user-ref-with-element-jsx-event-handlers.ts
597
+ var getCloneUserRefWithElementJsxEventHandlers = ({
598
+ elementRef,
599
+ cloneConfig,
600
+ eventHandlersSetByInnerClones
601
+ }) => {
602
+ const cloneUserRef = cloneConfig.ref;
603
+ const elementJsxEventRef = findInnermostJsxEventRef(elementRef);
604
+ if (elementJsxEventRef === null) {
605
+ return cloneUserRef;
606
+ }
607
+ const elementJsxEventHandlers = elementJsxEventRef._eventHandlers;
608
+ const jsxEventPropNamesOverriddenByClone = getJsxEventPropNamesOverriddenByClone({
609
+ jsxEventHandlers: elementJsxEventHandlers,
610
+ cloneConfig,
611
+ eventHandlersSetByInnerClones
612
+ });
613
+ if (jsxEventPropNamesOverriddenByClone.length === 0) {
614
+ return replaceJsxEventRefInnerRef(elementJsxEventRef, cloneUserRef);
615
+ }
616
+ const remainingJsxEventHandlers = omitEventHandlers(
617
+ elementJsxEventHandlers,
618
+ jsxEventPropNamesOverriddenByClone
619
+ );
620
+ const hasRemainingJsxEventHandlers = Object.keys(remainingJsxEventHandlers).length > 0;
621
+ return makeEventRef(
622
+ hasRemainingJsxEventHandlers ? remainingJsxEventHandlers : null,
623
+ cloneUserRef,
624
+ "jsx"
625
+ );
626
+ };
627
+
628
+ // utils/make-clone-event-ref-replacing-element-ref.ts
629
+ var makeCloneEventRefReplacingElementRef = ({
630
+ innerCloneEventRef,
631
+ cloneConfig,
632
+ cloneEvents
633
+ }) => {
634
+ const eventHandlersSetByInnerClones = getOuterWinningCloneEventsOf(innerCloneEventRef);
635
+ const cloneUserRef = getCloneUserRefWithElementJsxEventHandlers({
636
+ elementRef: innerCloneEventRef,
637
+ cloneConfig,
638
+ eventHandlersSetByInnerClones
639
+ });
640
+ const chainedCloneEvents = chainCloneEvents(
641
+ innerCloneEventRef._eventHandlers,
642
+ cloneEvents
643
+ );
644
+ if (chainedCloneEvents === null) {
645
+ return makeEventRef(null, cloneUserRef, "clone");
646
+ }
647
+ const outerWinningCloneEvents = toNonEmptyCloneEventsOrNull(
648
+ mergeCloneEventsOuterWinning(eventHandlersSetByInnerClones, cloneEvents)
649
+ );
650
+ return createEventRef(
651
+ chainedCloneEvents,
652
+ cloneUserRef,
653
+ "clone",
654
+ outerWinningCloneEvents
655
+ );
656
+ };
657
+
658
+ // utils/is-event-ref.ts
659
+ var isEventRef = (ref) => typeof ref === "function" && ref._eventSource !== void 0;
660
+
661
+ // utils/make-clone-event-ref-without-inner-clone.ts
662
+ var makeCloneEventRefWithoutInnerClone = ({
663
+ elementRef,
664
+ cloneConfig,
665
+ replacesElementRef,
666
+ cloneEvents
667
+ }) => {
668
+ const cloneUserRef = replacesElementRef ? getCloneUserRefWithElementJsxEventHandlers({
669
+ elementRef,
670
+ cloneConfig,
671
+ eventHandlersSetByInnerClones: null
672
+ }) : elementRef;
673
+ const cloneAddsNoEventHandlers = cloneEvents === null;
674
+ if (cloneAddsNoEventHandlers && isEventRef(cloneUserRef)) {
675
+ return cloneUserRef;
676
+ }
677
+ return makeEventRef(cloneEvents, cloneUserRef, "clone");
678
+ };
679
+
680
+ // utils/make-clone-event-ref.ts
681
+ var makeCloneEventRef = ({
682
+ elementRef,
683
+ cloneConfig,
684
+ replacesElementRef,
685
+ cloneEvents
686
+ }) => {
687
+ if (!isCloneEventRef(elementRef)) {
688
+ return makeCloneEventRefWithoutInnerClone({
689
+ elementRef,
690
+ cloneConfig,
691
+ replacesElementRef,
692
+ cloneEvents
693
+ });
694
+ }
695
+ if (replacesElementRef) {
696
+ return makeCloneEventRefReplacingElementRef({
697
+ innerCloneEventRef: elementRef,
698
+ cloneConfig,
699
+ cloneEvents
700
+ });
701
+ }
702
+ return makeCloneEventRefKeepingElementRef({
703
+ innerCloneEventRef: elementRef,
704
+ cloneEvents
705
+ });
706
+ };
707
+
708
+ // utils/is-event-handler-prop.ts
709
+ var EVENT_PROP_NAME_PATTERN = /^on[A-Z]/;
710
+ var isEventHandlerProp = (propName, propValue) => EVENT_PROP_NAME_PATTERN.test(propName) && typeof propValue === "function";
711
+
712
+ // utils/split-event-props.ts
713
+ var splitEventProps = (props) => {
714
+ const cleanProps = {};
715
+ let events = null;
716
+ for (const propName in props) {
717
+ const propValue = props[propName];
718
+ if (!isEventHandlerProp(propName, propValue)) {
719
+ cleanProps[propName] = propValue;
720
+ continue;
165
721
  }
722
+ events = events || {};
723
+ events[propName] = propValue;
166
724
  }
167
- return _originalCreateElement.apply(null, args);
168
- }
725
+ return { cleanProps, events };
726
+ };
727
+
728
+ // utils/with-clone-event-ref.ts
729
+ var withCloneEventRef = (element, config, readsElementRefFromVnode) => {
730
+ const cloneConfig = config ?? {};
731
+ const { cleanProps: cleanCloneConfig, events: cloneEvents } = splitEventProps(cloneConfig);
732
+ const elementRef = getElementRef(element, readsElementRefFromVnode);
733
+ return Object.assign(cleanCloneConfig, {
734
+ ref: makeCloneEventRef({
735
+ elementRef,
736
+ cloneConfig,
737
+ replacesElementRef: doesCloneReplaceElementRef(cloneConfig, elementRef),
738
+ cloneEvents
739
+ })
740
+ });
741
+ };
169
742
 
170
- export { createElement };
171
- export default Object.assign({}, _React, { createElement: createElement });`,pe=e=>{let t=e?.usePreact??!1,n=t?`preact/jsx-runtime`:`react/jsx-runtime`,r=t?`preact/compat`:`react`;return{name:`jsx-runtime-remote-wrapper`,setup:e=>{let t,i;e.onResolve({filter:/^__jsx_shared_helpers__$/},()=>({path:`__jsx_shared_helpers__`,namespace:`jsx-shared-helpers`})),e.onLoad({filter:/.*/,namespace:`jsx-shared-helpers`},()=>({contents:ue,loader:`js`})),e.onResolve({filter:/^react\/jsx-runtime$/},async r=>{if(!r.pluginData?.skipJsxWrapper)return t||=(await e.resolve(n,{kind:r.kind,resolveDir:r.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react/jsx-runtime`,namespace:`jsx-runtime-wrapper`}}),e.onResolve({filter:/^__real_react_jsx_runtime__$/},()=>{if(!t)throw Error(`jsx-runtime-remote-wrapper: real jsx-runtime path not resolved yet`);return{path:t}}),e.onLoad({filter:/.*/,namespace:`jsx-runtime-wrapper`},()=>({contents:de,loader:`js`})),e.onResolve({filter:/^react$/},async t=>{if(!t.pluginData?.skipJsxWrapper)return i||=(await e.resolve(r,{kind:t.kind,resolveDir:t.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react`,namespace:`react-wrapper`}}),e.onResolve({filter:/^__real_react__$/},()=>{if(!i)throw Error(`jsx-runtime-remote-wrapper: real react path not resolved yet`);return{path:i}}),e.onLoad({filter:/.*/,namespace:`react-wrapper`},()=>({contents:fe,loader:`js`}))}}},me=/import\s*\{\s*define(?:Settings)?FrontComponent\s*,?\s*\}\s*from\s*['"][^'"]+['"];?\n?/g,D=/export\s+default\s+define(?:Settings)?FrontComponent\s*\(/,he=/component\s*:\s*([A-Za-z_$][\w$]*)\s*[,}]/,O=`__frontComponentDefinition`,ge=e=>{if(!D.test(e))return e;let t=e.replace(me,``);t=t.replace(D,`const ${O} = (`);let n=t.match(he);if(n){let e=n[1];t=t.replace(RegExp(`export\\s+(const|function)\\s+${e}\\b`),`$1 ${e}`)}return`import { createRoot as __createRoot } from 'react-dom/client';
743
+ // utils/with-jsx-event-ref.ts
744
+ var withJsxEventRef = (props) => {
745
+ const { cleanProps, events } = splitEventProps(props);
746
+ return Object.assign(cleanProps, {
747
+ ref: makeEventRef(events, cleanProps.ref, "jsx")
748
+ });
749
+ };
750
+ export {
751
+ CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
752
+ getStyleElementCssText,
753
+ injectStyleViaHead,
754
+ isCustomElementTag,
755
+ makeEventRef,
756
+ withCloneEventRef,
757
+ withJsxEventRef
758
+ };
759
+ `,ce=`// react-wrapper.ts
760
+ import React from "__real_react__";
761
+ import {
762
+ CUSTOM_ELEMENT_TAG_BY_HTML_TAG,
763
+ getStyleElementCssText,
764
+ injectStyleViaHead,
765
+ isCustomElementTag,
766
+ withCloneEventRef,
767
+ withJsxEventRef
768
+ } from "__jsx_shared_helpers__";
769
+ import { USES_PREACT } from "__uses_preact__";
770
+ export * from "__real_react__";
771
+ var originalCreateElement = React.createElement;
772
+ var originalCloneElement = React.cloneElement;
773
+ var getPropsArgument = (argumentsAfterFirst) => argumentsAfterFirst.length > 0 ? argumentsAfterFirst[0] : null;
774
+ var replaceFirstTwoArguments = (argumentsAfterFirst, firstArgument, secondArgument) => [firstArgument, secondArgument, ...argumentsAfterFirst.slice(1)];
775
+ function createElement(type, ...argumentsAfterType) {
776
+ if (typeof type !== "string") {
777
+ return originalCreateElement.apply(null, [type, ...argumentsAfterType]);
778
+ }
779
+ const props = getPropsArgument(argumentsAfterType);
780
+ if (type === "style") {
781
+ injectStyleViaHead(getStyleElementCssText(props));
782
+ return null;
783
+ }
784
+ const customElementTag = CUSTOM_ELEMENT_TAG_BY_HTML_TAG[type];
785
+ if (!customElementTag) {
786
+ return originalCreateElement.apply(null, [type, ...argumentsAfterType]);
787
+ }
788
+ return originalCreateElement.apply(
789
+ null,
790
+ replaceFirstTwoArguments(
791
+ argumentsAfterType,
792
+ customElementTag,
793
+ withJsxEventRef(props)
794
+ )
795
+ );
796
+ }
797
+ function cloneElement(element, ...argumentsAfterElement) {
798
+ const isCustomElement = !!element && isCustomElementTag(element.type);
799
+ if (!isCustomElement) {
800
+ return originalCloneElement.apply(null, [
801
+ element,
802
+ ...argumentsAfterElement
803
+ ]);
804
+ }
805
+ const propsWithCloneEventRef = withCloneEventRef(
806
+ element,
807
+ getPropsArgument(argumentsAfterElement),
808
+ USES_PREACT
809
+ );
810
+ return originalCloneElement.apply(
811
+ null,
812
+ replaceFirstTwoArguments(
813
+ argumentsAfterElement,
814
+ element,
815
+ propsWithCloneEventRef
816
+ )
817
+ );
818
+ }
819
+ var react_wrapper_default = Object.assign({}, React, { createElement, cloneElement });
820
+ export {
821
+ cloneElement,
822
+ createElement,
823
+ react_wrapper_default as default
824
+ };
825
+ `,le=e=>{let t=e?.usePreact??!1,n=t?`preact/compat/jsx-runtime`:`react/jsx-runtime`,r=t?`preact/compat`:`react`;return{name:`jsx-runtime-remote-wrapper`,setup:e=>{let i,a;e.onResolve({filter:/^__jsx_shared_helpers__$/},()=>({path:`__jsx_shared_helpers__`,namespace:`jsx-shared-helpers`})),e.onLoad({filter:/.*/,namespace:`jsx-shared-helpers`},()=>({contents:se,loader:`js`})),e.onResolve({filter:/^__uses_preact__$/},()=>({path:`__uses_preact__`,namespace:`uses-preact`})),e.onLoad({filter:/.*/,namespace:`uses-preact`},()=>({contents:`export const USES_PREACT = ${t};`,loader:`js`})),e.onResolve({filter:/^react\/jsx-runtime$/},async t=>{if(!t.pluginData?.skipJsxWrapper)return i||=(await e.resolve(n,{kind:t.kind,resolveDir:t.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react/jsx-runtime`,namespace:`jsx-runtime-wrapper`}}),e.onResolve({filter:/^__real_react_jsx_runtime__$/},()=>{if(!i)throw Error(`jsx-runtime-remote-wrapper: real jsx-runtime path not resolved yet`);return{path:i}}),e.onLoad({filter:/.*/,namespace:`jsx-runtime-wrapper`},()=>({contents:w,loader:`js`})),e.onResolve({filter:/^react$/},async t=>{if(!t.pluginData?.skipJsxWrapper)return a||=(await e.resolve(r,{kind:t.kind,resolveDir:t.resolveDir,pluginData:{skipJsxWrapper:!0}})).path,{path:`react`,namespace:`react-wrapper`}}),e.onResolve({filter:/^__real_react__$/},()=>{if(!a)throw Error(`jsx-runtime-remote-wrapper: real react path not resolved yet`);return{path:a}}),e.onLoad({filter:/.*/,namespace:`react-wrapper`},()=>({contents:ce,loader:`js`}))}}},T=e=>`__shared_dependencies_${e.replace(/[^A-Za-z0-9]/g,`_`)}__`,ue=({specifier:e,exportNames:t})=>{let r=T(e),i=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return i.length===0?`import ${JSON.stringify(n.o)};`:i.map((e,t)=>`export { ${r}_${t} as ${JSON.stringify(e)} } from ${JSON.stringify(n.o)};`).join(`
826
+ `)},E=`twenty-shared-dependencies-shim`,de=e=>({name:`twenty-shared-dependencies-shim`,setup:n=>{n.onResolve({filter:/.*/},({path:n})=>{let r=e();if(t.Vt(r)&&r.exportNamesBySpecifier.has(n))return{path:n,namespace:E}}),n.onLoad({filter:/.*/,namespace:E},({path:n})=>{let r=e()?.exportNamesBySpecifier.get(n);if(t.Vt(r))return{contents:ue({specifier:n,exportNames:r}),loader:`js`}})}}),fe=e=>`if (typeof document !== 'undefined') {
827
+ const styleElement = document.createElement('style');
828
+ document.head.appendChild(styleElement);
829
+ styleElement.textContent = ${JSON.stringify(e)};
830
+ }`,pe={name:`css-injection`,setup:e=>{e.onLoad({filter:/\.css$/,namespace:`file`},async({path:e})=>{let t=(await v.build({entryPoints:[e],bundle:!0,write:!1,outfile:`injected.css`,logLevel:`silent`,plugins:i.n(),loader:Object.fromEntries([`.png`,`.jpg`,`.jpeg`,`.gif`,`.svg`,`.webp`,`.avif`,`.ico`,`.woff`,`.woff2`,`.ttf`,`.eot`,`.otf`].map(e=>[e,`dataurl`]))})).outputFiles[0].text;return{contents:fe(t),loader:`js`}})}},me=/import\s*\{\s*define(?:Settings)?FrontComponent\s*,?\s*\}\s*from\s*['"][^'"]+['"];?\n?/g,D=/export\s+default\s+define(?:Settings)?FrontComponent\s*\(/,he=/component\s*:\s*([A-Za-z_$][\w$]*)\s*[,}]/,O=`__frontComponentDefinition`,ge=e=>{if(!D.test(e))return e;let t=e.replace(me,``);t=t.replace(D,`const ${O} = (`);let n=t.match(he);if(n){let e=n[1];t=t.replace(RegExp(`export\\s+(const|function)\\s+${e}\\b`),`$1 ${e}`)}return`import { createRoot as __createRoot } from 'react-dom/client';
172
831
  import { jsx as __frontComponentJsx } from 'react/jsx-runtime';
173
- `+t+`\nexport default function __renderFrontComponent(__container) { __createRoot(__container).render(__frontComponentJsx(${O}.component, {})); }\n`},_e={name:`jsx-transform-to-remote-dom-worker-format-plugin`,setup:e=>{e.onLoad({filter:/\.tsx$/},async({path:e})=>{try{return{contents:ge(await(0,m.readFile)(e,`utf8`)),loader:`tsx`}}catch(t){return{errors:[{text:`Failed to transform front component: ${t instanceof Error?t.message:String(t)}`,location:{file:e}}]}}})}},ve=()=>({name:`preact-alias`,setup:e=>{e.onResolve({filter:/^react-dom\/client$/},async t=>e.resolve(`preact/compat/client`,{kind:t.kind,resolveDir:t.resolveDir})),e.onResolve({filter:/^react-dom$/},async t=>({path:(await e.resolve(`preact/compat`,{kind:t.kind,resolveDir:t.resolveDir})).path}))}}),k=e=>[...t.zt(e?.getSharedDependenciesBuildContext)?[se(e.getSharedDependenciesBuildContext)]:[],pe(e?.usePreact?{usePreact:!0}:void 0),...e?.usePreact?[ve()]:[],_e,le],A=()=>({bundle:!0,splitting:!1,format:`esm`,outExtension:{".js":`.mjs`},external:ae,jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,minify:!0,define:{"process.env.NODE_ENV":`"production"`},plugins:[...k()]}),ye=e=>/^define[A-Z]/.test(e)||e===`createValidationResult`,j=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,be=e=>j(e)||t.d(e)&&Object.values(e).every(j),xe=e=>{let t=[],n=[],r=[];for(let i of Object.keys(e).sort())ye(i)?t.push(i):be(e[i])?n.push(i):r.push(i);return{factories:t,plainData:n,any:r}},M=`twenty-sdk-define-stub`,Se=`__twenty-sdk-define-stub__`,Ce=`
832
+ `+t+`\nexport default function __renderFrontComponent(__container) { __createRoot(__container).render(__frontComponentJsx(${O}.component, {})); }\n`},_e={name:`jsx-transform-to-remote-dom-worker-format-plugin`,setup:e=>{e.onLoad({filter:/\.tsx$/},async({path:e})=>{try{return{contents:ge(await(0,m.readFile)(e,`utf8`)),loader:`tsx`}}catch(t){return{errors:[{text:`Failed to transform front component: ${t instanceof Error?t.message:String(t)}`,location:{file:e}}]}}})}},ve=()=>({name:`preact-alias`,setup:e=>{e.onResolve({filter:/^react-dom\/client$/},async t=>e.resolve(`preact/compat/client`,{kind:t.kind,resolveDir:t.resolveDir})),e.onResolve({filter:/^react-dom$/},async t=>({path:(await e.resolve(`preact/compat`,{kind:t.kind,resolveDir:t.resolveDir})).path}))}}),k=e=>[...t.Vt(e?.getSharedDependenciesBuildContext)?[de(e.getSharedDependenciesBuildContext)]:[],le(e?.usePreact?{usePreact:!0}:void 0),...e?.usePreact?[ve()]:[],_e,pe],A=()=>({bundle:!0,splitting:!1,format:`esm`,outExtension:{".js":`.mjs`},external:oe,jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,minify:!0,define:{"process.env.NODE_ENV":`"production"`},plugins:[...k()]}),ye=e=>/^define[A-Z]/.test(e)||e===`createValidationResult`,j=e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`,be=e=>j(e)||t.p(e)&&Object.values(e).every(j),xe=e=>{let t=[],n=[],r=[];for(let i of Object.keys(e).sort())ye(i)?t.push(i):be(e[i])?n.push(i):r.push(i);return{factories:t,plainData:n,any:r}},M=`twenty-sdk-define-stub`,Se=`__twenty-sdk-define-stub__`,Ce=`
174
833
  // Auto-generated stub for twenty-sdk/define injected by the Twenty CLI.
175
834
  // Real implementations would pull in zod, twenty-shared and ~1MB of code; at
176
835
  // runtime only \`default.config.handler\` is consumed, so tiny no-ops suffice.
@@ -199,8 +858,8 @@ const __anyStub = new Proxy(() => undefined, __anyHandler);
199
858
  `:throw SyntaxError();default:++r.v,n+=i}}throw SyntaxError()}(e);for(let e=0;e<t.length;e++){let n=64512&t.charCodeAt(e);if(!(n<55296)&&(n!==55296||(64512&t.charCodeAt(++e))!=56320))return}return t}catch{}}function De(e,t){if(t.v===e.length)throw SyntaxError();let n=e[t.v];switch(++t.v,n){case`\r`:e[t.v]===`
200
859
  `&&++t.v;case`
201
860
  `:case`\u2028`:case`\u2029`:return``;case`r`:return`\r`;case`n`:return`
202
- `;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`x`:return function(e,t){let n=I(e[t.v]);++t.v;let r=I(e[t.v]);return++t.v,String.fromCodePoint(16*n+r)}(e,t);case`u`:return function(e,t){let n=0;if(e[t.v]===`{`){++t.v;do{if(n=16*n+I(e[t.v]),n>1114111)throw SyntaxError();++t.v}while(e[t.v]!==`}`);++t.v}else for(let r=0;r<4;++r)n=16*n+I(e[t.v]),++t.v;return String.fromCodePoint(n)}(e,t);case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:return function(e,t,n){let r=e<=`3`?2:1,i=+e;do{if((e=t[n.v])<`0`||e>`7`)break;i=8*i+ +e,++n.v,--r}while(r>0);return String.fromCodePoint(i)}(n,e,t);default:return n}}function I(e){if(e>=`0`&&e<=`9`)return+e;if(e>=`a`&&e<=`f`)return e.charCodeAt(0)-87;if(e>=`A`&&e<=`F`)return e.charCodeAt(0)-55;throw SyntaxError()}function Oe(e,t){let n=e.length,r=0;for(;r<n;){let n=e.charCodeAt(r);t[r++]=(255&n)<<8|n>>>8}}function ke(e,t){let n=e.length,r=0;for(;r<n;)t[r]=e.charCodeAt(r++)}function Ae(){let e=`AGFzbQEAAAABXA1gAX8Bf2ACf38AYAABf2AAAGABfwBgBn9/f39/fwF/YAJ/fwF/YAd/f39/f39/AX9gA39/fwF/YAh/f39/f39/fwF/YAV/f39/fwF/YAR/f39/AX9gBH9/f38AAzMyAQEBAwAABAUJBAAEBAMDAAcCAAAICgAFAAAGBQsHBgAAAAAIAAICAgICAgICAgIFDAYEBQFwAQUFBQMBAAEGCAF/AEHQmAILB1wOBm1lbW9yeQIAC19faGVhcF9iYXNlAwACc2EAJAFlACUCZXMAJgJlZQAnA3JlcwAoA3JlZQApAnVzACoCdWUAKwJyZQAsA3JyZQAtAnJ1AC4IcGFyc2VDSlMALwkKAQBBAQsEAAECAwwBAgrJkwEyDgAgACABQcgfQcAfEDALDgAgACABQdQfQcwfEDALDgAgACABQeAfQdgfEDALEgBBzB9BADYCAEHUH0EANgIAC8wBAQN/AkBBvKABKAIAIgNBAmpB5QBB8QBB9QBB6QBB8gBB5QAQEARAQbygASADQQ5qNgIAAkAQEUEoRw0AQbygAUG8oAEoAgBBAmo2AgAQESEBQbygASgCACECIAFBJ0cgAUEiR3ENACABEAxBvKABQbygASgCAEECaiIBNgIAEBFBKUcNAAJAIABBAWsOAgMDAAtBtKABKAIAIAI2AgBBtKABKAIAIAE2AgRBAQ8LQbygASADNgIAC0EADwsgAiABQaAfKAIAEQEAQQELGwAgAEGYHygCAEYEQEEBDwsgAEECay8BABAPC/8CAQV/QZgfKAIAIQQDQAJAIABBAmshASAALwEAIgJBIEcNACAAIARLIAEhAA0BCwsCQCACQT1HDQADQAJAIAFBAmshACABLwEAQSBHDQAgASAESyAAIQENAQsLIABBAmohASAAQQRqIQNBACECA0ACQCABLwEAIgBBgPgDcUGAuANGBEAgAEH/B3EgAUECay8BAEH/B3FBCnRyQYCABGohAAsgAEUgASAETXINACAAQdwARg0CIAAQEkUNACABQX5BfCAAQYCABEkbaiEBIAAQEyECDAELCyACQQFxRQ0AIAEvAQBBIEcNAEG0oAEoAgAiAkGwHygCAEYNACACIAM2AgwgAiABQQJqNgIIA0ACQCABQQJrIQAgAS8BACIDQSBHDQAgASAESyAAIQENAQsLAkACQAJAIANB8gBrDgMAAwEDCyAAQfYAQeEAEBQNAQwCCyAAQewAQeUAEBQNACAAQeMAQe8AQe4AQfMAEBVFDQELQbSgASACQRBqNgIACws7AQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUYhBgsgBgtPAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAIC7MFAQN/QbygAUG8oAEoAgAiAkEOajYCAAJAAkAQESIBQdsARwRAIAFBPUYNASABQS5HDQJBvKABQbygASgCAEECajYCABARQbygASgCACEBEBZFDQJBvKABKAIAIQAQEUE9Rw0CIAEgAEGcHygCABEBAA8LQbygAUG8oAEoAgBBAmo2AgAQESIAQSdHIABBIkdxDQFBvKABKAIAIAAQDEG8oAFBvKABKAIAQQJqIgA2AgAQEUHdAEcNAUG8oAFBvKABKAIAQQJqNgIAEBFBPUcNASAAQZwfKAIAEQEADAELIABFDQBBqB8oAgARAwBBvKABQbygASgCAEECajYCABARIgBB8gBHBEAgAEH7AEcNAUG8oAEoAgBBAmshAQJAAkADQEG8oAFBvKABKAIAIgBBAmo2AgAgAEHAoAEoAgBPDQIQESEAQbygASgCACECAkAgABAWBEBBvKABKAIAIQMQESIAQTpGBEBBvKABQbygASgCAEECajYCABAREBZFDQRBvKABKAIALwEAIQALIAIgA0GcHygCABEBAAwBCwJAIABBIkcEQCAAQS5GDQEgAEEnRw0EC0G8oAEoAgAgABAMQbygAUG8oAEoAgBBAmoiAzYCABARIgBBOkcNAUG8oAFBvKABKAIAQQJqNgIAEBEQFkUNA0G8oAEoAgAvAQAhACADQZwfKAIAEQEADAELQbygASgCACIALwECQS5HDQIgAC8BBEEuRw0CQbygASAAQQZqNgIAAkACQCAALwEGIgBB8gBGBH9BARAEQbygASgCACEADQEgAC8BAAUgAAtB//8DcRAWRQ0EDAELQbygASAAQQJqNgIACxARIQALIABB//8DcSIAQSxGDQALIABB/QBGDQELQbygASABNgIACw8LQQEQBBoLQbygASAC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IABB6wBHcg0BQbygASgCACIALwECQeUARw0BIAAvAQRB+QBHDQEgAC8BBkHzAEcNASAAQQZqIQJBvKABIABBCGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBhAWRQ0BQbygASgCABARQSlHDQFBvKABQbygASgCACICQQJqNgIAEBFBLkcNAUG8oAFBvKABKAIAQQJqNgIAEBFB5gBHDQFBvKABKAIAIgBBAmpB7wBB8gBBxQBB4QBB4wBB6AAQEEUNAUG8oAEgAEEOajYCABARQbygASgCACIAQQJrIQJBKEcNAUG8oAEgAEECajYCABARQeYARw0BQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQFBvKABIABBEGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBxAWRQ0BQbygASgCACEBEBFBKUcNAUG8oAFBvKABKAIAQQJqNgIAEBFB+wBHDQFBvKABQbygASgCAEECajYCABARQekARw0BQbygASgCACIALwECQeYARw0BQbygASAAQQRqNgIAEBFBKEcNAUG8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgASAHayIJECMNASAGayIFQQF1IQRBvKABIAAgCUEBdSIIQQF0ajYCAAJAAkACQBARIgBBIUcEQCAAQT1HDQVBvKABKAIAIgAvAQJBPUcNBSAALwEEQT1HDQVBvKABIABBBmo2AgAQESIBQSdHIAFBIkdxDQVBvKABKAIAIgBBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQCEUNBUG8oAEgAEEQajYCABARIAFHDQVBvKABQbygASgCAEECajYCABARQfwARw0FQbygASgCACIALwECQfwARw0FQbygASAAQQRqNgIAEBEaQbygASgCACIAIAcgCRAjDQVBvKABIAAgCEEBdGo2AgAQEUE9Rw0FQbygASgCACIALwECQT1HDQUgAC8BBEE9Rw0FQbygASAAQQZqNgIAEBEiA0EnRyADQSJHcQ0FQQAhAQJAQbygASgCACIAQQJqIgovAQBB3wBHDQAgCi8BAkHfAEcNACAKLwEEQeUARw0AIAovAQZB8wBHDQAgCi8BCEHNAEcNACAKLwEKQe8ARw0AIAovAQxB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vKABIAAgCEEBdGo2AgAQEUEsRw0DQbygAUG8oAEoAgBBAmo2AgAQEUH7AEcNA0G8oAFBvKABKAIAQQJqNgIAEBFB5QBHDQNBvKABKAIAIgBBAmoQGUUNA0G8oAEgAEEUajYCABARQTpHDQNBvKABQbygASgCAEECajYCABARQbygASgCACEBQfQARwRAIAEvAQJB8gBHDQQgAS8BBEH1AEcNBCABLwEGQeUARw0EC0G8oAEgAUEIajYCABARQSxHDQNBvKABQbygASgCAEECajYCABARQecARw0DQbygASgCACIALwECQeUARw0DIAAvAQRB9ABHDQNBvKABIABBBmo2AgAQESIAQTpGBH9BvKABQbygASgCAEECajYCABARQeYARw0EQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQRBvKABIABBEGoiATYCABARIgBBKEcEQCABQbygASgCAEYNBSAAEBZFDQULEBEFIAALQShHDQNBvKABQbygASgCAEECajYCABARQSlHDQNBvKABQbygASgCAEECajYCABARQfsARw0DQbygAUG8oAEoAgBBAmo2AgAQEUHyAEcNA0G8oAEoAgAiAEECakHlAEH0AEH1AEHyAEHuABAHRQ0DQbygASAAQQxqNgIAEBEaQbygASgCACIAIAYgBRAjDQNBvKABIAAgBEEBdGo2AgAQEUHbAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgCRAjDQNBvKABIAAgCEEBdGo2AgAQEUHdAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEiAEE7RgR/QbygAUG8oAEoAgBBAmo2AgAQEQUgAAtB/QBHDQNBvKABQbygASgCAEECajYCABARIgBBLEYEf0G8oAFBvKABKAIAQQJqNgIAEBEFIAALQf0ARw0DQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0DQbygAUG8oAEoAgBBAmo2AgAQESIAQTtHDQELQbygAUG8oAEoAgBBAmo2AgAQESEACyAAQf0ARw0BQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0BQbSgASgCACEDQYAgIQADQAJAIAAgA0cEQCAEIABBDGooAgAgAEEIaigCACIBa0EBdUcNASAGIAEgBRAjDQEgACgCACAAQQRqKAIAQaAf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`;return typeof Buffer<`u`?Buffer.from(e,`base64`):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}var je;function Me(){return je||=(async()=>{let e=await WebAssembly.compile(Ae()),{exports:t}=await WebAssembly.instantiate(e);P=t})()}var Ne=async({appPath:e,specifier:n})=>{try{let r=A(),a=n===`react/jsx-runtime`,o=await v.build({...r,absWorkingDir:e,plugins:[...i.n(),...(r.plugins??[]).filter(e=>a||e.name!==`jsx-runtime-remote-wrapper`)],entryPoints:[n],write:!1,outfile:`shared-dependency-probe.js`,outExtension:void 0,external:[],sourcemap:!1,metafile:!0}),s=Object.values(o.metafile.outputs).find(e=>t.zt(e.entryPoint));if(!t.zt(s?.entryPoint))throw Error(`Missing dependency entry point.`);let c=new Set(s.exports),l=new Set,u=async n=>{if(l.has(n))return;l.add(n);let i=o.metafile.inputs[n];if(!t.zt(i))return;let a=await(0,m.readFile)((0,h.resolve)(e,n),`utf8`),s;if(i.format===`cjs`){await Me();let e=Ee((await v.transform(a,{define:r.define,minifySyntax:!0,loader:`js`})).code);for(let t of e.exports)t!=="__esModule"&&c.add(t);s=e.reexports}else s=y.default.createSourceFile(n,a,y.default.ScriptTarget.Latest).statements.flatMap(e=>y.default.isExportDeclaration(e)&&!t.zt(e.exportClause)&&t.zt(e.moduleSpecifier)&&y.default.isStringLiteral(e.moduleSpecifier)?[e.moduleSpecifier.text]:[]);for(let e of s){let n=i.imports.find(t=>t.original===e&&!t.external);t.zt(n)&&await u(n.path)}};return a||await u(s.entryPoint),{namedExports:[...c].filter(e=>e!=="default").sort(),hasDefaultExport:c.has(`default`)}}catch(e){throw Error(`Unable to determine the exports of shared dependency "${n}". Check that it is installed and importable from the application.`,{cause:e})}},Pe=e=>[...e].map(([e,t])=>{let n=T(e),r=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return[`export * as ${n} from ${JSON.stringify(e)};`,...r.map((t,r)=>`export { ${JSON.stringify(t)} as ${n}_${r} } from ${JSON.stringify(e)};`)].join(`
861
+ `;case`t`:return` `;case`b`:return`\b`;case`f`:return`\f`;case`v`:return`\v`;case`x`:return function(e,t){let n=I(e[t.v]);++t.v;let r=I(e[t.v]);return++t.v,String.fromCodePoint(16*n+r)}(e,t);case`u`:return function(e,t){let n=0;if(e[t.v]===`{`){++t.v;do{if(n=16*n+I(e[t.v]),n>1114111)throw SyntaxError();++t.v}while(e[t.v]!==`}`);++t.v}else for(let r=0;r<4;++r)n=16*n+I(e[t.v]),++t.v;return String.fromCodePoint(n)}(e,t);case`0`:case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:return function(e,t,n){let r=e<=`3`?2:1,i=+e;do{if((e=t[n.v])<`0`||e>`7`)break;i=8*i+ +e,++n.v,--r}while(r>0);return String.fromCodePoint(i)}(n,e,t);default:return n}}function I(e){if(e>=`0`&&e<=`9`)return+e;if(e>=`a`&&e<=`f`)return e.charCodeAt(0)-87;if(e>=`A`&&e<=`F`)return e.charCodeAt(0)-55;throw SyntaxError()}function Oe(e,t){let n=e.length,r=0;for(;r<n;){let n=e.charCodeAt(r);t[r++]=(255&n)<<8|n>>>8}}function ke(e,t){let n=e.length,r=0;for(;r<n;)t[r]=e.charCodeAt(r++)}function Ae(){let e=`AGFzbQEAAAABXA1gAX8Bf2ACf38AYAABf2AAAGABfwBgBn9/f39/fwF/YAJ/fwF/YAd/f39/f39/AX9gA39/fwF/YAh/f39/f39/fwF/YAV/f39/fwF/YAR/f39/AX9gBH9/f38AAzMyAQEBAwAABAUJBAAEBAMDAAcCAAAICgAFAAAGBQsHBgAAAAAIAAICAgICAgICAgIFDAYEBQFwAQUFBQMBAAEGCAF/AEHQmAILB1wOBm1lbW9yeQIAC19faGVhcF9iYXNlAwACc2EAJAFlACUCZXMAJgJlZQAnA3JlcwAoA3JlZQApAnVzACoCdWUAKwJyZQAsA3JyZQAtAnJ1AC4IcGFyc2VDSlMALwkKAQBBAQsEAAECAwwBAgrJkwEyDgAgACABQcgfQcAfEDALDgAgACABQdQfQcwfEDALDgAgACABQeAfQdgfEDALEgBBzB9BADYCAEHUH0EANgIAC8wBAQN/AkBBvKABKAIAIgNBAmpB5QBB8QBB9QBB6QBB8gBB5QAQEARAQbygASADQQ5qNgIAAkAQEUEoRw0AQbygAUG8oAEoAgBBAmo2AgAQESEBQbygASgCACECIAFBJ0cgAUEiR3ENACABEAxBvKABQbygASgCAEECaiIBNgIAEBFBKUcNAAJAIABBAWsOAgMDAAtBtKABKAIAIAI2AgBBtKABKAIAIAE2AgRBAQ8LQbygASADNgIAC0EADwsgAiABQaAfKAIAEQEAQQELGwAgAEGYHygCAEYEQEEBDwsgAEECay8BABAPC/8CAQV/QZgfKAIAIQQDQAJAIABBAmshASAALwEAIgJBIEcNACAAIARLIAEhAA0BCwsCQCACQT1HDQADQAJAIAFBAmshACABLwEAQSBHDQAgASAESyAAIQENAQsLIABBAmohASAAQQRqIQNBACECA0ACQCABLwEAIgBBgPgDcUGAuANGBEAgAEH/B3EgAUECay8BAEH/B3FBCnRyQYCABGohAAsgAEUgASAETXINACAAQdwARg0CIAAQEkUNACABQX5BfCAAQYCABEkbaiEBIAAQEyECDAELCyACQQFxRQ0AIAEvAQBBIEcNAEG0oAEoAgAiAkGwHygCAEYNACACIAM2AgwgAiABQQJqNgIIA0ACQCABQQJrIQAgAS8BACIDQSBHDQAgASAESyAAIQENAQsLAkACQAJAIANB8gBrDgMAAwEDCyAAQfYAQeEAEBQNAQwCCyAAQewAQeUAEBQNACAAQeMAQe8AQe4AQfMAEBVFDQELQbSgASACQRBqNgIACws7AQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUYhBgsgBgtPAQF/AkAgAC8BACABRw0AIAAvAQIgAkcNACAALwEEIANHDQAgAC8BBiAERw0AIAAvAQggBUcNACAALwEKIAZHDQAgAC8BDCAHRiEICyAIC7MFAQN/QbygAUG8oAEoAgAiAkEOajYCAAJAAkAQESIBQdsARwRAIAFBPUYNASABQS5HDQJBvKABQbygASgCAEECajYCABARQbygASgCACEBEBZFDQJBvKABKAIAIQAQEUE9Rw0CIAEgAEGcHygCABEBAA8LQbygAUG8oAEoAgBBAmo2AgAQESIAQSdHIABBIkdxDQFBvKABKAIAIAAQDEG8oAFBvKABKAIAQQJqIgA2AgAQEUHdAEcNAUG8oAFBvKABKAIAQQJqNgIAEBFBPUcNASAAQZwfKAIAEQEADAELIABFDQBBqB8oAgARAwBBvKABQbygASgCAEECajYCABARIgBB8gBHBEAgAEH7AEcNAUG8oAEoAgBBAmshAQJAAkADQEG8oAFBvKABKAIAIgBBAmo2AgAgAEHAoAEoAgBPDQIQESEAQbygASgCACECAkAgABAWBEBBvKABKAIAIQMQESIAQTpGBEBBvKABQbygASgCAEECajYCABAREBZFDQRBvKABKAIALwEAIQALIAIgA0GcHygCABEBAAwBCwJAIABBIkcEQCAAQS5GDQEgAEEnRw0EC0G8oAEoAgAgABAMQbygAUG8oAEoAgBBAmoiAzYCABARIgBBOkcNAUG8oAFBvKABKAIAQQJqNgIAEBEQFkUNA0G8oAEoAgAvAQAhACADQZwfKAIAEQEADAELQbygASgCACIALwECQS5HDQIgAC8BBEEuRw0CQbygASAAQQZqNgIAAkACQCAALwEGIgBB8gBGBH9BARAEQbygASgCACEADQEgAC8BAAUgAAtB//8DcRAWRQ0EDAELQbygASAAQQJqNgIACxARIQALIABB//8DcSIAQSxGDQALIABB/QBGDQELQbygASABNgIACw8LQQEQBBoLQbygASAC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IABB6wBHcg0BQbygASgCACIALwECQeUARw0BIAAvAQRB+QBHDQEgAC8BBkHzAEcNASAAQQZqIQJBvKABIABBCGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBhAWRQ0BQbygASgCABARQSlHDQFBvKABQbygASgCACICQQJqNgIAEBFBLkcNAUG8oAFBvKABKAIAQQJqNgIAEBFB5gBHDQFBvKABKAIAIgBBAmpB7wBB8gBBxQBB4QBB4wBB6AAQEEUNAUG8oAEgAEEOajYCABARQbygASgCACIAQQJrIQJBKEcNAUG8oAEgAEECajYCABARQeYARw0BQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQFBvKABIABBEGo2AgAQEUEoRw0BQbygAUG8oAEoAgBBAmo2AgAQEUG8oAEoAgAhBxAWRQ0BQbygASgCACEBEBFBKUcNAUG8oAFBvKABKAIAQQJqNgIAEBFB+wBHDQFBvKABQbygASgCAEECajYCABARQekARw0BQbygASgCACIALwECQeYARw0BQbygASAAQQRqNgIAEBFBKEcNAUG8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgASAHayIJECMNASAGayIFQQF1IQRBvKABIAAgCUEBdSIIQQF0ajYCAAJAAkACQBARIgBBIUcEQCAAQT1HDQVBvKABKAIAIgAvAQJBPUcNBSAALwEEQT1HDQVBvKABIABBBmo2AgAQESIBQSdHIAFBIkdxDQVBvKABKAIAIgBBAmpB5ABB5QBB5gBB4QBB9QBB7ABB9AAQCEUNBUG8oAEgAEEQajYCABARIAFHDQVBvKABQbygASgCAEECajYCABARQfwARw0FQbygASgCACIALwECQfwARw0FQbygASAAQQRqNgIAEBEaQbygASgCACIAIAcgCRAjDQVBvKABIAAgCEEBdGo2AgAQEUE9Rw0FQbygASgCACIALwECQT1HDQUgAC8BBEE9Rw0FQbygASAAQQZqNgIAEBEiA0EnRyADQSJHcQ0FQQAhAQJAQbygASgCACIAQQJqIgovAQBB3wBHDQAgCi8BAkHfAEcNACAKLwEEQeUARw0AIAovAQZB8wBHDQAgCi8BCEHNAEcNACAKLwEKQe8ARw0AIAovAQxB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vKABIAAgCEEBdGo2AgAQEUEsRw0DQbygAUG8oAEoAgBBAmo2AgAQEUH7AEcNA0G8oAFBvKABKAIAQQJqNgIAEBFB5QBHDQNBvKABKAIAIgBBAmoQGUUNA0G8oAEgAEEUajYCABARQTpHDQNBvKABQbygASgCAEECajYCABARQbygASgCACEBQfQARwRAIAEvAQJB8gBHDQQgAS8BBEH1AEcNBCABLwEGQeUARw0EC0G8oAEgAUEIajYCABARQSxHDQNBvKABQbygASgCAEECajYCABARQecARw0DQbygASgCACIALwECQeUARw0DIAAvAQRB9ABHDQNBvKABIABBBmo2AgAQESIAQTpGBH9BvKABQbygASgCAEECajYCABARQeYARw0EQbygASgCACIAQQJqQfUAQe4AQeMAQfQAQekAQe8AQe4AEAhFDQRBvKABIABBEGoiATYCABARIgBBKEcEQCABQbygASgCAEYNBSAAEBZFDQULEBEFIAALQShHDQNBvKABQbygASgCAEECajYCABARQSlHDQNBvKABQbygASgCAEECajYCABARQfsARw0DQbygAUG8oAEoAgBBAmo2AgAQEUHyAEcNA0G8oAEoAgAiAEECakHlAEH0AEH1AEHyAEHuABAHRQ0DQbygASAAQQxqNgIAEBEaQbygASgCACIAIAYgBRAjDQNBvKABIAAgBEEBdGo2AgAQEUHbAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEaQbygASgCACIAIAcgCRAjDQNBvKABIAAgCEEBdGo2AgAQEUHdAEcNA0G8oAFBvKABKAIAQQJqNgIAEBEiAEE7RgR/QbygAUG8oAEoAgBBAmo2AgAQEQUgAAtB/QBHDQNBvKABQbygASgCAEECajYCABARIgBBLEYEf0G8oAFBvKABKAIAQQJqNgIAEBEFIAALQf0ARw0DQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0DQbygAUG8oAEoAgBBAmo2AgAQESIAQTtHDQELQbygAUG8oAEoAgBBAmo2AgAQESEACyAAQf0ARw0BQbygAUG8oAEoAgBBAmo2AgAQEUEpRw0BQbSgASgCACEDQYAgIQADQAJAIAAgA0cEQCAEIABBDGooAgAgAEEIaigCACIBa0EBdUcNASAGIAEgBRAjDQEgACgCACAAQQRqKAIAQaAf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`;return typeof Buffer<`u`?Buffer.from(e,`base64`):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}var je;function Me(){return je||=(async()=>{let e=await WebAssembly.compile(Ae()),{exports:t}=await WebAssembly.instantiate(e);P=t})()}var Ne=async({appPath:e,specifier:n})=>{try{let r=A(),a=n===`react/jsx-runtime`,o=await v.build({...r,absWorkingDir:e,plugins:[...i.n(),...(r.plugins??[]).filter(e=>a||e.name!==`jsx-runtime-remote-wrapper`)],entryPoints:[n],write:!1,outfile:`shared-dependency-probe.js`,outExtension:void 0,external:[],sourcemap:!1,metafile:!0}),s=Object.values(o.metafile.outputs).find(e=>t.Vt(e.entryPoint));if(!t.Vt(s?.entryPoint))throw Error(`Missing dependency entry point.`);let c=new Set(s.exports),l=new Set,u=async n=>{if(l.has(n))return;l.add(n);let i=o.metafile.inputs[n];if(!t.Vt(i))return;let a=await(0,m.readFile)((0,h.resolve)(e,n),`utf8`),s;if(i.format===`cjs`){await Me();let e=Ee((await v.transform(a,{define:r.define,minifySyntax:!0,loader:`js`})).code);for(let t of e.exports)t!=="__esModule"&&c.add(t);s=e.reexports}else s=y.default.createSourceFile(n,a,y.default.ScriptTarget.Latest).statements.flatMap(e=>y.default.isExportDeclaration(e)&&!t.Vt(e.exportClause)&&t.Vt(e.moduleSpecifier)&&y.default.isStringLiteral(e.moduleSpecifier)?[e.moduleSpecifier.text]:[]);for(let e of s){let n=i.imports.find(t=>t.original===e&&!t.external);t.Vt(n)&&await u(n.path)}};return a||await u(s.entryPoint),{namedExports:[...c].filter(e=>e!=="default").sort(),hasDefaultExport:c.has(`default`)}}catch(e){throw Error(`Unable to determine the exports of shared dependency "${n}". Check that it is installed and importable from the application.`,{cause:e})}},Pe=e=>[...e].map(([e,t])=>{let n=T(e),r=[...t.namedExports,...t.hasDefaultExport?[`default`]:[]];return[`export * as ${n} from ${JSON.stringify(e)};`,...r.map((t,r)=>`export { ${JSON.stringify(t)} as ${n}_${r} } from ${JSON.stringify(e)};`)].join(`
203
862
  `)}).join(`
204
- `),Fe=e=>{let t=new Map;for(let n of e){let e=T(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.values()].filter(e=>e.length>1)},L=e.t(),Ie=async({appPath:e,sharedDependencies:r,outputDir:a=n.o,onFileBuilt:s})=>{let c=Fe(r.dependencies);if((0,L.isNonEmptyArray)(c))throw Error(`Shared dependencies map to the same bundle namespace: ${c.map(e=>e.join(` and `)).join(`, `)}`);let l=new Map(await Promise.all(r.dependencies.map(async t=>[t,await Ne({appPath:e,specifier:t})]))),u=(0,b.join)(a,r.builtPath),d=(0,b.join)(e,u);await o.r((0,b.dirname)(d)),await v.build({...A(),plugins:[...i.n(),...A().plugins??[]],stdin:{contents:Pe(l),resolveDir:e,sourcefile:`twenty-shared-dependencies-entry.js`,loader:`js`},outfile:d,outExtension:void 0,external:[]});let f=await(0,m.readFile)(d),p=x.default.createHash(`sha256`).update(f).digest(`hex`);return await s({fileFolder:t.W.BuiltFrontComponent,builtPath:u,sourcePath:`package.json`,checksum:p}),{exportNamesBySpecifier:l}},Le=async e=>{let t=b.default.join(e,f.n);if(!await o.i(t))return{};let n=(await(0,m.readdir)(t)).filter(e=>e.endsWith(`.json`)),r={};for(let e of n){let n=b.default.basename(e,`.json`);if(n===`en`||!d.t(n))continue;let i=l.n({catalog:await o.o(b.default.join(t,e))??{}});Object.keys(i).length>0&&(r[n]=i)}return r},Re=`__twentySdkFrontComponentTranslations__`,ze=async e=>{let r=e.outputDir??`.twenty/output`,i=(0,b.join)(e.appPath,r);await o.r(i),await o.n(i);let a=new Map,s=e=>{a.set(e.builtPath,{checksum:e.checksum,builtPath:e.builtPath,sourcePath:e.sourcePath,fileFolder:e.fileFolder,usesSdkClient:e.usesSdkClient})},{logicFunctions:c,frontComponents:l}=e.filePaths,u=e.manifest.application.frontComponentSharedDependencies,d=await Le(e.appPath),f=Object.keys(d).length?{js:`globalThis[${JSON.stringify(Re)}]=${JSON.stringify(d)};`}:void 0;await w({appPath:e.appPath,sourcePaths:c,fileFolder:t.W.BuiltLogicFunction,buildOptions:{bundle:!0,splitting:!1,format:`esm`,platform:`node`,outdir:i,outExtension:{".js":`.mjs`},external:ie,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),sourcemap:!0,metafile:!0,logLevel:`silent`,banner:n.c,plugins:[N(e.appPath)]},onFileBuilt:s});let p=t.zt(u)?await Ie({appPath:e.appPath,outputDir:r,sharedDependencies:u,onFileBuilt:s}):null;await w({appPath:e.appPath,sourcePaths:l,fileFolder:t.W.BuiltFrontComponent,buildOptions:{...A(),outdir:i,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,...f===void 0?{}:{banner:f},plugins:[...k({getSharedDependenciesBuildContext:()=>p}),N(e.appPath)]},onFileBuilt:s}),await R({appPath:e.appPath,fileFolder:t.W.Source,filePaths:[...new Set([...c,...l])],collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.W.PublicAsset,filePaths:e.filePaths.publicAssets,collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.W.Dependencies,filePaths:[`package.json`,`yarn.lock`].filter(t=>o.a((0,b.join)(e.appPath,t))),collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks});for(let t of e.generatedAssets??[])await Be({appPath:e.appPath,generatedAsset:t,outputDir:r,collectFileBuilt:s});return await te({appPath:e.appPath,relativeOutputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),{builtFileInfos:a}},Be=async({appPath:e,generatedAsset:n,outputDir:r,collectFileBuilt:i})=>{let a=(0,b.join)(r,n.relativePath),s=(0,b.join)(e,a);await o.r((0,b.dirname)(s)),await(0,m.writeFile)(s,n.content);let c=x.default.createHash(`md5`).update(n.content).digest(`hex`);await i({fileFolder:t.W.PublicAsset,builtPath:a,sourcePath:n.relativePath,checksum:c})},R=async({appPath:e,fileFolder:t,filePaths:n,outputDir:r,dereferenceSymlinks:a=!1,collectFileBuilt:s})=>{for(let c of n){let n=(0,b.join)(e,c);if(i.r(n),!await o.i(n))continue;let l=(0,b.join)(r,c),u=(0,b.join)(e,l);await o.r((0,b.dirname)(u)),await S({sourcePath:n,destinationPath:u,dereferenceSymlinks:a});let d=await(0,m.readFile)(u);await s({fileFolder:t,builtPath:l,sourcePath:c,checksum:x.default.createHash(`md5`).update(d).digest(`hex`)})}},Ve=`data:image/png;base64,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`,He=`M6.822 14.174c0-2.435 1.996-4.411 4.456-4.411h8.574c.125 0 .241.075.293.19a.31.31 0 0 1-.056.344l-1.88 2.023c-.326.35-.787.552-1.27.552H11.3c-.738 0-1.338.594-1.338 1.325v3.336a.78.78 0 0 1-.783.777H7.61a.78.78 0 0 1-.783-.777v-3.36zM33.5 25.553c0 2.434-1.996 4.411-4.456 4.411h-3.642c-2.46 0-4.454-1.977-4.454-4.411v-6.315c0-.43.16-.842.456-1.16l2.124-2.285a.33.33 0 0 1 .355-.081.32.32 0 0 1 .205.295v9.527c0 .73.598 1.322 1.337 1.322h3.6a1.33 1.33 0 0 0 1.337-1.322V14.197c0-.73-.599-1.325-1.337-1.325H24.84c-.481 0-.938.201-1.265.547L11.088 26.856h7.503a.78.78 0 0 1 .784.778v1.552a.78.78 0 0 1-.784.778H8.481a1.655 1.655 0 0 1-1.662-1.644v-.824c0-.412.156-.809.44-1.114l13.999-15.06a4.9 4.9 0 0 1 3.594-1.56h4.189c2.46 0 4.454 1.977 4.454 4.412v11.379z`,z=1388,B=858,V=156,H=16,U=351,W=434,G=798,K=z/2,q=B/2,J=19,Y=8,X=`#b3b3b3`,Ue=V/40,We=async({logoBuffer:e,appPath:t})=>{let n=(0,g.createRequire)((0,h.join)(t,`package.json`))(`sharp`),r=`data:image/png;base64,${(await n(e).resize(V,V,{fit:`cover`,position:`centre`}).png().toBuffer()).toString(`base64`)}`,i=[`<svg xmlns="http://www.w3.org/2000/svg" width="${z}" height="${B}" viewBox="0 0 ${z} ${B}">`,`<image href="${Ve}" x="0" y="0" width="${z}" height="${B}" preserveAspectRatio="none" />`,`<defs>`,`<filter id="tileShadow" x="-40%" y="-40%" width="180%" height="180%">`,`<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0b0b0f" flood-opacity="0.14" />`,`</filter>`,`<clipPath id="leftLogoClip"><rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" /></clipPath>`,`</defs>`,`<g filter="url(#tileShadow)">`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#ffffff" />`,`<rect x="${G}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#000000" />`,`</g>`,`<image href="${r}" x="${W}" y="${U}" width="${V}" height="${V}" preserveAspectRatio="xMidYMid slice" clip-path="url(#leftLogoClip)" />`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="none" stroke="#000000" stroke-opacity="0.08" stroke-width="1" />`,`<g transform="translate(${G} ${U}) scale(${Ue})"><path d="${He}" fill="#ffffff" /></g>`,`<line x1="${K-J}" y1="${q-J}" x2="713" y2="448" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`<line x1="${K-J}" y1="448" x2="713" y2="${q-J}" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`</svg>`].join(``);return n(Buffer.from(i)).png().toBuffer()},Z=`${n.i}/cover.generated.png`,Ge=e=>e.startsWith(`http://`)||e.startsWith(`https://`),Q=async({appPath:e,manifest:n})=>{let{logo:r,galleryImages:i}=n.application;if(!t.zt(r)||Ge(r)||(i??[]).length>0)return{manifest:n,generatedAssets:[]};let a=(0,b.join)(e,r);if(!await o.i(a))return{manifest:n,generatedAssets:[]};let s=await We({logoBuffer:await(0,m.readFile)(a),appPath:e}),c={filePath:Z,fileName:(0,b.basename)(Z),fileType:(0,b.extname)(Z).replace(/^\./,``),checksum:null},l=[...n.publicAssets.filter(e=>e.filePath!==Z),c];return{manifest:{...n,application:{...n.application,galleryImages:[Z]},publicAssets:l},generatedAssets:[{relativePath:Z,content:s}]}},Ke=({manifest:e,builtFileInfos:r,outputDir:i=n.o})=>{let a=structuredClone(e);for(let[e,{fileFolder:n,checksum:o}]of r.entries()){let s=(0,b.relative)(i,e);if(n===t.W.BuiltLogicFunction){let e=a.logicFunctions,t=e.findIndex(e=>e.builtHandlerPath===s);if(t===-1)continue;a={...a,logicFunctions:e.map((e,n)=>n===t?{...e,builtHandlerChecksum:o}:e)}}if(n===t.W.PublicAsset){let e=a.publicAssets,t=e.findIndex(e=>e.filePath===s);if(t===-1)continue;a={...a,publicAssets:e.map((e,n)=>n===t?{...e,checksum:o}:e)};continue}if(n===t.W.BuiltFrontComponent){let n=a.application.frontComponentSharedDependencies;if(t.zt(n)&&n.builtPath===s){a={...a,application:{...a.application,frontComponentSharedDependencies:{...n,builtChecksum:o}}};continue}let i=a.frontComponents,c=i.findIndex(e=>e.builtComponentPath===s)??-1;if(c===-1)continue;let l=r.get(e);a={...a,frontComponents:i.map((e,t)=>t===c?{...e,builtComponentChecksum:o,usesSdkClient:l?.usesSdkClient??!1}:e)}}n===t.W.Dependencies&&(s===`package.json`&&(a.application.packageJsonChecksum=o),s===`yarn.lock`&&(a.application.yarnLockChecksum=o))}return a},qe=async({appPath:e,manifest:t,relativeOutputDir:r=n.o})=>{let i=b.default.join(e,r);await o.r(i);let a=b.default.join(i,`manifest.json`);return await o.c(a,t),a},Je=async({appPath:e,outputDir:t=n.o,dereferenceSymlinks:r=!1,onProgress:i,onTranslationWarning:a,signal:o,typecheck:s=c.t})=>{let u=[],d=e=>{u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),i?.(`⚠ ${e}`)};o?.throwIfAborted(),i?.(`Building manifest...`);let f=await l.r(e);if(!f.success)return{success:!1,error:{code:`MANIFEST_BUILD_FAILED`,message:f.errors.join(`
205
- `)},diagnostics:f.errors.map(e=>({severity:`error`,code:`MANIFEST_BUILD_FAILED`,message:e}))};f.warnings.forEach(d),o?.throwIfAborted();let{manifest:p,generatedAssets:m}=await Q({appPath:e,manifest:f.manifest}).catch(e=>(d(`Skipped cover image generation: ${e instanceof Error?e.message:String(e)}`),{manifest:f.manifest,generatedAssets:[]}));m.length>0&&i?.(`Generated cover image from logo`);let h=await l.t({appPath:e,onWarning:e=>{a?(u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),a(e)):d(e)}});o?.throwIfAborted(),i?.(`Building application files...`);let{builtFileInfos:g}=await ze({appPath:e,manifest:p,filePaths:f.filePaths,generatedAssets:m,outputDir:t,dereferenceSymlinks:r});i?.(`Running typecheck...`);let _=await s({appPath:e,signal:o});if(u.push(..._.diagnostics),!_.success)return{..._,diagnostics:u};let v={...Ke({manifest:p,builtFileInfos:g,outputDir:t}),translations:h};return await qe({appPath:e,manifest:v,relativeOutputDir:t}),{success:!0,data:{manifest:v,builtFileInfos:g},diagnostics:u}},Ye={[t.W.BuiltLogicFunction]:`built-logic-function`,[t.W.BuiltFrontComponent]:`built-front-component`,[t.W.Source]:`source`,[t.W.Dependencies]:`dependencies`,[t.W.PublicAsset]:`public-asset`},Xe=async({appPath:e,buildId:n,filesDirectory:r,manifest:i,builtFileInfos:a,signal:o})=>{let s=[];for(let n of a.values()){o?.throwIfAborted();let i=(0,h.join)(e,n.builtPath),a=(0,h.relative)(r,i),c=Ye[n.fileFolder];if(!t.zt(c)||(0,h.isAbsolute)(a)||a===`..`||a.startsWith(`..${h.sep}`))throw Error(`Invalid snapshot artifact: ${n.builtPath}`);let l=(0,p.createHash)(`sha256`),u=0;for await(let e of(0,_.createReadStream)(i,{signal:o}))l.update(e),u+=e.length;s.push({path:a.split(h.sep).join(`/`),sourcePath:n.sourcePath.split(h.sep).join(`/`),role:c,size:u,sha256:l.digest(`hex`)})}let c=s.sort((e,t)=>e.path<t.path?-1:+(e.path>t.path)),l=await(0,m.readFile)((0,h.join)(r,`manifest.json`)),u=(0,p.createHash)(`sha256`).update(JSON.stringify(c.map(({path:e,role:t,sha256:n})=>({path:e,role:t,sha256:n})))).update(`
206
- `).update(l).digest(`hex`),d=JSON.parse(await(0,m.readFile)((0,h.join)(r,`package.json`),`utf8`));if(!(0,L.isNonEmptyString)(d.name))throw Error(`The app package.json must declare a name.`);return{buildId:n,directory:r,contentHash:u,application:{universalIdentifier:i.application.universalIdentifier,name:d.name,displayName:i.application.displayName},manifestFormat:`twenty-application`,manifest:i,files:c}},$=new Map,Ze=async({appPath:e,signal:n})=>{let i=await r.t(e);if(!i.success)return i;let o,c=[],l=async()=>{if(t.zt(o))try{await(0,m.rm)(o,{recursive:!0,force:!0})}catch(e){c.push({severity:`warning`,code:`SNAPSHOT_CLEANUP_FAILED`,message:`Could not remove snapshot ${o}: ${e instanceof Error?e.message:String(e)}`})}};try{n?.throwIfAborted();let t=(0,p.randomUUID)(),r=(0,h.join)(e,`.twenty`,`cli`,`snapshots`);await(0,m.mkdir)(r,{recursive:!0}),o=await(0,m.mkdtemp)((0,h.join)(r,`build-`)),await(0,m.writeFile)((0,h.join)(o,`lease.json`),JSON.stringify({buildId:t,pid:process.pid,createdAt:new Date().toISOString()}),{flag:`wx`});let i=(0,h.join)(o,`files`),a=await Je({appPath:e,outputDir:(0,h.relative)(e,i),dereferenceSymlinks:!0,signal:n});if(c.push(...a.diagnostics),!a.success)return await l(),{...a,diagnostics:c};let s=await Xe({appPath:e,buildId:t,filesDirectory:i,manifest:a.data.manifest,builtFileInfos:a.data.builtFileInfos,signal:n});return n?.throwIfAborted(),$.set(t,o),{success:!0,data:s,diagnostics:c}}catch(e){return await l(),{success:!1,error:{code:n?.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:c}}},Qe=async({buildId:e})=>{let n=$.get(e);if(!t.zt(n))return{success:!1,error:{code:`SNAPSHOT_NOT_FOUND`,message:`This CLI worker does not hold the requested snapshot.`},diagnostics:[]};try{return await(0,m.rm)(n,{recursive:!0,force:!0}),$.delete(e),{success:!0,data:null,diagnostics:[]}}catch(e){return{success:!1,error:{code:`SNAPSHOT_RELEASE_FAILED`,message:e instanceof Error?e.message:String(e)},diagnostics:[]}}},$e=async({appPath:e,signal:t})=>{try{return t.throwIfAborted(),await u.t({appPath:e}),await Ze({appPath:e,signal:t})}catch(e){return{success:!1,error:{code:t.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:[]}}finally{await(0,v.stop)()}},et=Qe;exports.buildSourceSnapshot=$e,exports.releaseSourceSnapshot=et;
863
+ `),Fe=e=>{let t=new Map;for(let n of e){let e=T(n),r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.values()].filter(e=>e.length>1)},L=e.t(),Ie=async({appPath:e,sharedDependencies:r,outputDir:a=n.l,onFileBuilt:s})=>{let c=Fe(r.dependencies);if((0,L.isNonEmptyArray)(c))throw Error(`Shared dependencies map to the same bundle namespace: ${c.map(e=>e.join(` and `)).join(`, `)}`);let l=new Map(await Promise.all(r.dependencies.map(async t=>[t,await Ne({appPath:e,specifier:t})]))),u=(0,b.join)(a,r.builtPath),d=(0,b.join)(e,u);await o.r((0,b.dirname)(d)),await v.build({...A(),plugins:[...i.n(),...A().plugins??[]],stdin:{contents:Pe(l),resolveDir:e,sourcefile:`twenty-shared-dependencies-entry.js`,loader:`js`},outfile:d,outExtension:void 0,external:[]});let f=await(0,m.readFile)(d),p=x.default.createHash(`sha256`).update(f).digest(`hex`);return await s({fileFolder:t.I.BuiltFrontComponent,builtPath:u,sourcePath:`package.json`,checksum:p}),{exportNamesBySpecifier:l}},Le=async e=>{let t=b.default.join(e,d.n);if(!await o.i(t))return{};let n=(await(0,m.readdir)(t)).filter(e=>e.endsWith(`.json`)),r={};for(let e of n){let n=b.default.basename(e,`.json`);if(n===`en`||!f.t(n))continue;let i=l.n({catalog:await o.o(b.default.join(t,e))??{}});Object.keys(i).length>0&&(r[n]=i)}return r},Re=`__twentySdkFrontComponentTranslations__`,ze=async e=>{let r=e.outputDir??`.twenty/output`,i=(0,b.join)(e.appPath,r);await o.r(i),await o.n(i);let a=new Map,s=e=>{a.set(e.builtPath,{checksum:e.checksum,builtPath:e.builtPath,sourcePath:e.sourcePath,fileFolder:e.fileFolder,usesSdkClient:e.usesSdkClient})},{logicFunctions:c,frontComponents:l}=e.filePaths,u=e.manifest.application.frontComponentSharedDependencies,d=await Le(e.appPath),f=Object.keys(d).length?{js:`globalThis[${JSON.stringify(Re)}]=${JSON.stringify(d)};`}:void 0;await C({appPath:e.appPath,sourcePaths:c,fileFolder:t.I.BuiltLogicFunction,buildOptions:{bundle:!0,splitting:!1,format:`esm`,platform:`node`,outdir:i,outExtension:{".js":`.mjs`},external:ae,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),sourcemap:!0,metafile:!0,logLevel:`silent`,banner:n.s,plugins:[N(e.appPath)]},onFileBuilt:s});let p=t.Vt(u)?await Ie({appPath:e.appPath,outputDir:r,sharedDependencies:u,onFileBuilt:s}):null;await C({appPath:e.appPath,sourcePaths:l,fileFolder:t.I.BuiltFrontComponent,buildOptions:{...A(),outdir:i,tsconfig:(0,b.join)(e.appPath,`tsconfig.json`),jsx:`automatic`,sourcemap:!0,metafile:!0,logLevel:`silent`,...f===void 0?{}:{banner:f},plugins:[...k({getSharedDependenciesBuildContext:()=>p}),N(e.appPath)]},onFileBuilt:s}),await R({appPath:e.appPath,fileFolder:t.I.Source,filePaths:[...new Set([...c,...l])],collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.I.PublicAsset,filePaths:e.filePaths.publicAssets,collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),await R({appPath:e.appPath,fileFolder:t.I.Dependencies,filePaths:[`package.json`,`yarn.lock`].filter(t=>o.a((0,b.join)(e.appPath,t))),collectFileBuilt:s,outputDir:r,dereferenceSymlinks:e.dereferenceSymlinks});for(let t of e.generatedAssets??[])await Be({appPath:e.appPath,generatedAsset:t,outputDir:r,collectFileBuilt:s});return await ne({appPath:e.appPath,relativeOutputDir:r,dereferenceSymlinks:e.dereferenceSymlinks}),{builtFileInfos:a}},Be=async({appPath:e,generatedAsset:n,outputDir:r,collectFileBuilt:i})=>{let a=(0,b.join)(r,n.relativePath),s=(0,b.join)(e,a);await o.r((0,b.dirname)(s)),await(0,m.writeFile)(s,n.content);let c=x.default.createHash(`md5`).update(n.content).digest(`hex`);await i({fileFolder:t.I.PublicAsset,builtPath:a,sourcePath:n.relativePath,checksum:c})},R=async({appPath:e,fileFolder:t,filePaths:n,outputDir:r,dereferenceSymlinks:a=!1,collectFileBuilt:s})=>{for(let c of n){let n=(0,b.join)(e,c);if(i.r(n),!await o.i(n))continue;let l=(0,b.join)(r,c),u=(0,b.join)(e,l);await o.r((0,b.dirname)(u)),await S({sourcePath:n,destinationPath:u,dereferenceSymlinks:a});let d=await(0,m.readFile)(u);await s({fileFolder:t,builtPath:l,sourcePath:c,checksum:x.default.createHash(`md5`).update(d).digest(`hex`)})}},Ve=`data:image/png;base64,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`,He=`M6.822 14.174c0-2.435 1.996-4.411 4.456-4.411h8.574c.125 0 .241.075.293.19a.31.31 0 0 1-.056.344l-1.88 2.023c-.326.35-.787.552-1.27.552H11.3c-.738 0-1.338.594-1.338 1.325v3.336a.78.78 0 0 1-.783.777H7.61a.78.78 0 0 1-.783-.777v-3.36zM33.5 25.553c0 2.434-1.996 4.411-4.456 4.411h-3.642c-2.46 0-4.454-1.977-4.454-4.411v-6.315c0-.43.16-.842.456-1.16l2.124-2.285a.33.33 0 0 1 .355-.081.32.32 0 0 1 .205.295v9.527c0 .73.598 1.322 1.337 1.322h3.6a1.33 1.33 0 0 0 1.337-1.322V14.197c0-.73-.599-1.325-1.337-1.325H24.84c-.481 0-.938.201-1.265.547L11.088 26.856h7.503a.78.78 0 0 1 .784.778v1.552a.78.78 0 0 1-.784.778H8.481a1.655 1.655 0 0 1-1.662-1.644v-.824c0-.412.156-.809.44-1.114l13.999-15.06a4.9 4.9 0 0 1 3.594-1.56h4.189c2.46 0 4.454 1.977 4.454 4.412v11.379z`,z=1388,B=858,V=156,H=16,U=351,W=434,G=798,K=z/2,q=B/2,J=19,Y=8,X=`#b3b3b3`,Ue=V/40,We=async({logoBuffer:e,appPath:t})=>{let n=(0,g.createRequire)((0,h.join)(t,`package.json`))(`sharp`),r=`data:image/png;base64,${(await n(e).resize(V,V,{fit:`cover`,position:`centre`}).png().toBuffer()).toString(`base64`)}`,i=[`<svg xmlns="http://www.w3.org/2000/svg" width="${z}" height="${B}" viewBox="0 0 ${z} ${B}">`,`<image href="${Ve}" x="0" y="0" width="${z}" height="${B}" preserveAspectRatio="none" />`,`<defs>`,`<filter id="tileShadow" x="-40%" y="-40%" width="180%" height="180%">`,`<feDropShadow dx="0" dy="6" stdDeviation="10" flood-color="#0b0b0f" flood-opacity="0.14" />`,`</filter>`,`<clipPath id="leftLogoClip"><rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" /></clipPath>`,`</defs>`,`<g filter="url(#tileShadow)">`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#ffffff" />`,`<rect x="${G}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="#000000" />`,`</g>`,`<image href="${r}" x="${W}" y="${U}" width="${V}" height="${V}" preserveAspectRatio="xMidYMid slice" clip-path="url(#leftLogoClip)" />`,`<rect x="${W}" y="${U}" width="${V}" height="${V}" rx="${H}" fill="none" stroke="#000000" stroke-opacity="0.08" stroke-width="1" />`,`<g transform="translate(${G} ${U}) scale(${Ue})"><path d="${He}" fill="#ffffff" /></g>`,`<line x1="${K-J}" y1="${q-J}" x2="713" y2="448" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`<line x1="${K-J}" y1="448" x2="713" y2="${q-J}" stroke="${X}" stroke-width="${Y}" stroke-linecap="round" />`,`</svg>`].join(``);return n(Buffer.from(i)).png().toBuffer()},Z=`${n.r}/cover.generated.png`,Ge=e=>e.startsWith(`http://`)||e.startsWith(`https://`),Q=async({appPath:e,manifest:n})=>{let{logo:r,galleryImages:i}=n.application;if(!t.Vt(r)||Ge(r)||(i??[]).length>0)return{manifest:n,generatedAssets:[]};let a=(0,b.join)(e,r);if(!await o.i(a))return{manifest:n,generatedAssets:[]};let s=await We({logoBuffer:await(0,m.readFile)(a),appPath:e}),c={filePath:Z,fileName:(0,b.basename)(Z),fileType:(0,b.extname)(Z).replace(/^\./,``),checksum:null},l=[...n.publicAssets.filter(e=>e.filePath!==Z),c];return{manifest:{...n,application:{...n.application,galleryImages:[Z]},publicAssets:l},generatedAssets:[{relativePath:Z,content:s}]}},Ke=({manifest:e,builtFileInfos:r,outputDir:i=n.l})=>{let a=structuredClone(e);for(let[e,{fileFolder:n,checksum:o}]of r.entries()){let s=(0,b.relative)(i,e);if(n===t.I.BuiltLogicFunction){let e=a.logicFunctions,t=e.findIndex(e=>e.builtHandlerPath===s);if(t===-1)continue;a={...a,logicFunctions:e.map((e,n)=>n===t?{...e,builtHandlerChecksum:o}:e)}}if(n===t.I.PublicAsset){let e=a.publicAssets,t=e.findIndex(e=>e.filePath===s);if(t===-1)continue;a={...a,publicAssets:e.map((e,n)=>n===t?{...e,checksum:o}:e)};continue}if(n===t.I.BuiltFrontComponent){let n=a.application.frontComponentSharedDependencies;if(t.Vt(n)&&n.builtPath===s){a={...a,application:{...a.application,frontComponentSharedDependencies:{...n,builtChecksum:o}}};continue}let i=a.frontComponents,c=i.findIndex(e=>e.builtComponentPath===s)??-1;if(c===-1)continue;let l=r.get(e);a={...a,frontComponents:i.map((e,t)=>t===c?{...e,builtComponentChecksum:o,usesSdkClient:l?.usesSdkClient??!1}:e)}}n===t.I.Dependencies&&(s===`package.json`&&(a.application.packageJsonChecksum=o),s===`yarn.lock`&&(a.application.yarnLockChecksum=o))}return a},qe=async({appPath:e,manifest:t,relativeOutputDir:r=n.l})=>{let i=b.default.join(e,r);await o.r(i);let a=b.default.join(i,`manifest.json`);return await o.c(a,t),a},Je=async({appPath:e,outputDir:t=n.l,dereferenceSymlinks:r=!1,onProgress:i,onTranslationWarning:a,signal:o,typecheck:s=c.t})=>{let u=[],d=e=>{u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),i?.(`⚠ ${e}`)};o?.throwIfAborted(),i?.(`Building manifest...`);let f=await l.r(e);if(!f.success)return{success:!1,error:{code:`MANIFEST_BUILD_FAILED`,message:f.errors.join(`
864
+ `)},diagnostics:f.errors.map(e=>({severity:`error`,code:`MANIFEST_BUILD_FAILED`,message:e}))};f.warnings.forEach(d),o?.throwIfAborted();let{manifest:p,generatedAssets:m}=await Q({appPath:e,manifest:f.manifest}).catch(e=>(d(`Skipped cover image generation: ${e instanceof Error?e.message:String(e)}`),{manifest:f.manifest,generatedAssets:[]}));m.length>0&&i?.(`Generated cover image from logo`);let h=await l.t({appPath:e,onWarning:e=>{a?(u.push({severity:`warning`,code:`BUILD_WARNING`,message:e}),a(e)):d(e)}});o?.throwIfAborted(),i?.(`Building application files...`);let{builtFileInfos:g}=await ze({appPath:e,manifest:p,filePaths:f.filePaths,generatedAssets:m,outputDir:t,dereferenceSymlinks:r});i?.(`Running typecheck...`);let _=await s({appPath:e,signal:o});if(u.push(..._.diagnostics),!_.success)return{..._,diagnostics:u};let v={...Ke({manifest:p,builtFileInfos:g,outputDir:t}),translations:h};return await qe({appPath:e,manifest:v,relativeOutputDir:t}),{success:!0,data:{manifest:v,builtFileInfos:g},diagnostics:u}},Ye={[t.I.BuiltLogicFunction]:`built-logic-function`,[t.I.BuiltFrontComponent]:`built-front-component`,[t.I.Source]:`source`,[t.I.Dependencies]:`dependencies`,[t.I.PublicAsset]:`public-asset`},Xe=async({appPath:e,buildId:n,filesDirectory:r,manifest:i,builtFileInfos:a,signal:o})=>{let s=[];for(let n of a.values()){o?.throwIfAborted();let i=(0,h.join)(e,n.builtPath),a=(0,h.relative)(r,i),c=Ye[n.fileFolder];if(!t.Vt(c)||(0,h.isAbsolute)(a)||a===`..`||a.startsWith(`..${h.sep}`))throw Error(`Invalid snapshot artifact: ${n.builtPath}`);let l=(0,p.createHash)(`sha256`),u=0;for await(let e of(0,_.createReadStream)(i,{signal:o}))l.update(e),u+=e.length;s.push({path:a.split(h.sep).join(`/`),sourcePath:n.sourcePath.split(h.sep).join(`/`),role:c,size:u,sha256:l.digest(`hex`)})}let c=s.sort((e,t)=>e.path<t.path?-1:+(e.path>t.path)),l=await(0,m.readFile)((0,h.join)(r,`manifest.json`)),u=(0,p.createHash)(`sha256`).update(JSON.stringify(c.map(({path:e,role:t,sha256:n})=>({path:e,role:t,sha256:n})))).update(`
865
+ `).update(l).digest(`hex`),d=JSON.parse(await(0,m.readFile)((0,h.join)(r,`package.json`),`utf8`));if(!(0,L.isNonEmptyString)(d.name))throw Error(`The app package.json must declare a name.`);return{buildId:n,directory:r,contentHash:u,application:{universalIdentifier:i.application.universalIdentifier,name:d.name,displayName:i.application.displayName},manifestFormat:`twenty-application`,manifest:i,files:c}},$=new Map,Ze=async({appPath:e,signal:n})=>{let i=await r.t(e);if(!i.success)return i;let o,c=[],l=async()=>{if(t.Vt(o))try{await(0,m.rm)(o,{recursive:!0,force:!0})}catch(e){c.push({severity:`warning`,code:`SNAPSHOT_CLEANUP_FAILED`,message:`Could not remove snapshot ${o}: ${e instanceof Error?e.message:String(e)}`})}};try{n?.throwIfAborted();let t=(0,p.randomUUID)(),r=(0,h.join)(e,`.twenty`,`cli`,`snapshots`);await(0,m.mkdir)(r,{recursive:!0}),o=await(0,m.mkdtemp)((0,h.join)(r,`build-`)),await(0,m.writeFile)((0,h.join)(o,`lease.json`),JSON.stringify({buildId:t,pid:process.pid,createdAt:new Date().toISOString()}),{flag:`wx`});let i=(0,h.join)(o,`files`),a=await Je({appPath:e,outputDir:(0,h.relative)(e,i),dereferenceSymlinks:!0,signal:n});if(c.push(...a.diagnostics),!a.success)return await l(),{...a,diagnostics:c};let s=await Xe({appPath:e,buildId:t,filesDirectory:i,manifest:a.data.manifest,builtFileInfos:a.data.builtFileInfos,signal:n});return n?.throwIfAborted(),$.set(t,o),{success:!0,data:s,diagnostics:c}}catch(e){return await l(),{success:!1,error:{code:n?.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:c}}},Qe=async({buildId:e})=>{let n=$.get(e);if(!t.Vt(n))return{success:!1,error:{code:`SNAPSHOT_NOT_FOUND`,message:`This CLI worker does not hold the requested snapshot.`},diagnostics:[]};try{return await(0,m.rm)(n,{recursive:!0,force:!0}),$.delete(e),{success:!0,data:null,diagnostics:[]}}catch(e){return{success:!1,error:{code:`SNAPSHOT_RELEASE_FAILED`,message:e instanceof Error?e.message:String(e)},diagnostics:[]}}},$e=async({appPath:e,signal:t})=>{try{return t.throwIfAborted(),await u.t({appPath:e}),await Ze({appPath:e,signal:t})}catch(e){return{success:!1,error:{code:t.aborted?`CANCELLED`:e instanceof a.t?e.code:`BUILD_FAILED`,message:e instanceof Error?e.message:String(e),...s.t(e)},diagnostics:[]}}finally{await(0,v.stop)()}},et=Qe;exports.buildSourceSnapshot=$e,exports.releaseSourceSnapshot=et;