twenty 0.3.0 → 2.46.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 (180) hide show
  1. package/CONTRIBUTING.md +166 -0
  2. package/LICENSE +21 -0
  3. package/README.md +86 -3
  4. package/dist/app-template/.nvmrc +1 -0
  5. package/dist/app-template/.oxlintrc.json +37 -0
  6. package/dist/app-template/AGENTS.md +70 -0
  7. package/dist/app-template/CHANGELOG.md +7 -0
  8. package/dist/app-template/README.md +34 -0
  9. package/dist/app-template/SETUP.md +47 -0
  10. package/dist/app-template/github/workflows/cd.yml +42 -0
  11. package/dist/app-template/github/workflows/ci.yml +60 -0
  12. package/dist/app-template/github/workflows/publish.yml +52 -0
  13. package/dist/app-template/gitignore +43 -0
  14. package/dist/app-template/locales/en.json +1 -0
  15. package/dist/app-template/package.json +36 -0
  16. package/dist/app-template/public/logo.svg +7 -0
  17. package/dist/app-template/src/__tests__/application-config.test.ts +14 -0
  18. package/dist/app-template/src/__tests__/global-setup.ts +56 -0
  19. package/dist/app-template/src/__tests__/run-twenty.ts +66 -0
  20. package/dist/app-template/src/__tests__/schema.integration-test.ts +46 -0
  21. package/dist/app-template/src/application-config.ts +13 -0
  22. package/dist/app-template/src/constants/universal-identifiers.ts +12 -0
  23. package/dist/app-template/src/default-role.ts +16 -0
  24. package/dist/app-template/src/front-components/main-page.tsx +287 -0
  25. package/dist/app-template/src/logic-functions/health-check.ts +11 -0
  26. package/dist/app-template/src/navigation-menu-items/main-page.navigation-menu-item.ts +19 -0
  27. package/dist/app-template/src/page-layouts/main-page.page-layout.ts +42 -0
  28. package/dist/app-template/tsconfig.json +37 -0
  29. package/dist/app-template/tsconfig.spec.json +9 -0
  30. package/dist/app-template/vitest.config.ts +31 -0
  31. package/dist/app-template/vitest.unit.config.ts +14 -0
  32. package/dist/app-template/yarn.lock +3374 -0
  33. package/dist/app-template/yarnrc.yml +1 -0
  34. package/dist/app-worker.cjs +1 -0
  35. package/dist/chunks/application-DuIJE2qG.cjs +5 -0
  36. package/dist/chunks/assert-pull-paths-BuQ1ZRvQ.cjs +1 -0
  37. package/dist/chunks/build-CX6FBrbu.cjs +1 -0
  38. package/dist/chunks/build-pull-entities-zwArrVMk.cjs +5 -0
  39. package/dist/chunks/build-source-manifest-CLKH5vzc.cjs +2 -0
  40. package/dist/chunks/build-source-snapshot-CbGsy1-v.cjs +206 -0
  41. package/dist/chunks/check-node-requirement-mqwNPktb.cjs +1 -0
  42. package/dist/chunks/cli-error-CSsayo0u.cjs +1 -0
  43. package/dist/chunks/cli-version.constant-aSp8WZDh.cjs +1 -0
  44. package/dist/chunks/collect-watch-inputs-B9jWG4W0.cjs +1 -0
  45. package/dist/chunks/compile-application-translations-B59jYVWc.cjs +1 -0
  46. package/dist/chunks/config-file-mode.constant-DLBzKKUl.cjs +1 -0
  47. package/dist/chunks/confirm-in-terminal-BxEM5lxE.cjs +1 -0
  48. package/dist/chunks/constants-CL6mrTMT-B748cNNG.cjs +23 -0
  49. package/dist/chunks/constants-Cf5-CwMu.cjs +1 -0
  50. package/dist/chunks/convert-to-label-BPBLtc_O.cjs +1 -0
  51. package/dist/chunks/create-app-not-installed-error-Cc8YZqI7.cjs +1 -0
  52. package/dist/chunks/create-cancelled-error-DgrNfOv2.cjs +1 -0
  53. package/dist/chunks/create-http-status-error-D3gy3DzB.cjs +1 -0
  54. package/dist/chunks/create-metadata-client-ChjDalSi.cjs +6 -0
  55. package/dist/chunks/create-pull-base-write-rxjcKtD-.cjs +1 -0
  56. package/dist/chunks/create-rest-client-eAfOFfDA.cjs +58 -0
  57. package/dist/chunks/create-tooling-failure-DLI5FlQP.cjs +1 -0
  58. package/dist/chunks/credential-kind-labels.constant-CKdoQF8o.cjs +1 -0
  59. package/dist/chunks/extract-manifest-from-file-j-Y9wNas.cjs +1 -0
  60. package/dist/chunks/fetch-metadata-inspection-Dp034TpK.cjs +1 -0
  61. package/dist/chunks/fetch-signed-in-identity-BhvaL3zp.cjs +1 -0
  62. package/dist/chunks/fetch-workspace-id-DJStmf_V.cjs +1 -0
  63. package/dist/chunks/find-remote-D48r20g0.cjs +1 -0
  64. package/dist/chunks/format-app-duration-gu2oRLB4.cjs +1 -0
  65. package/dist/chunks/format-body-VcKL4WXt.cjs +1 -0
  66. package/dist/chunks/format-data-value-B6rIbpJv.cjs +1 -0
  67. package/dist/chunks/format-details-COEwKz_M.cjs +2 -0
  68. package/dist/chunks/format-metadata-fields-DJnTg1R9.cjs +2 -0
  69. package/dist/chunks/format-metadata-owner-yUeocnwY.cjs +1 -0
  70. package/dist/chunks/format-table-4drtI5sP.cjs +2 -0
  71. package/dist/chunks/fs-utils-Bl1fQcaJ.cjs +2 -0
  72. package/dist/chunks/generate-application-client-CCVLjxTj.cjs +1 -0
  73. package/dist/chunks/get-app-plan-summary-B0uwHXbO.cjs +8 -0
  74. package/dist/chunks/get-config-path-C-D-QHuX.cjs +1 -0
  75. package/dist/chunks/get-credential-kind-JI9heHe2.cjs +1 -0
  76. package/dist/chunks/get-function-input-schema-GNk3NRLJ-Bfph1o9z.cjs +1 -0
  77. package/dist/chunks/get-tooling-error-context-C69TBSej.cjs +1 -0
  78. package/dist/chunks/global-flags.constant-8GfW0sNU.cjs +1 -0
  79. package/dist/chunks/has-yarn-plug-and-play-X3ay5Xl0.cjs +1 -0
  80. package/dist/chunks/is-access-token-expiring-gICPXsbO.cjs +1 -0
  81. package/dist/chunks/is-application-not-found-error-mNeGbxmT.cjs +1 -0
  82. package/dist/chunks/is-exported-manifest-CriNOWvx.cjs +1 -0
  83. package/dist/chunks/is-inside-directory-t3ixLQDr.cjs +1 -0
  84. package/dist/chunks/is-interaction-allowed-ycbAFMIj.cjs +1 -0
  85. package/dist/chunks/is-same-universal-identifier-BCBib3RP.cjs +1 -0
  86. package/dist/chunks/is-supported-locale-BAjnKnKj.cjs +20 -0
  87. package/dist/chunks/kebab-case-D0usAzG-.cjs +1 -0
  88. package/dist/chunks/list-application-source-files-jEau5Rie.cjs +1 -0
  89. package/dist/chunks/metadata-D9sQOTRK.cjs +1 -0
  90. package/dist/chunks/metadata-page.constant-BkG4ndrO.cjs +1 -0
  91. package/dist/chunks/oauth-timing.constant-BClMQcKn.cjs +1 -0
  92. package/dist/chunks/open-browser-LPuVspT7.cjs +1 -0
  93. package/dist/chunks/package-CdYv4LEx.cjs +1 -0
  94. package/dist/chunks/parse-api-url-BllxRdpE.cjs +1 -0
  95. package/dist/chunks/parse-app-export-BkfflyUY.cjs +1 -0
  96. package/dist/chunks/parse-graphql-response-CtP9KTS2.cjs +1 -0
  97. package/dist/chunks/parse-json-input-CvMTKAWw.cjs +1 -0
  98. package/dist/chunks/print-typescript-value-DhElcFzI.cjs +3 -0
  99. package/dist/chunks/pull-source-eoiJwFb9.cjs +1 -0
  100. package/dist/chunks/read-app-identity-SeleQ_D6.cjs +1 -0
  101. package/dist/chunks/read-application-identity-BFg_p84F.cjs +1 -0
  102. package/dist/chunks/read-command-values-uSJqBG_E.cjs +1 -0
  103. package/dist/chunks/read-config-DUJ27809.cjs +1 -0
  104. package/dist/chunks/read-input-value-Cxgh_r2g.cjs +1 -0
  105. package/dist/chunks/read-source-identity-C8LG1v6U.cjs +1 -0
  106. package/dist/chunks/read-watch-input-stamp-BxeOb0vI.cjs +1 -0
  107. package/dist/chunks/record-pull-base-BbxvlnU8.cjs +1 -0
  108. package/dist/chunks/record-typecheck-config-inputs-BDqkKCrj.cjs +1 -0
  109. package/dist/chunks/request-oauth-tokens-C4KKlTQT.cjs +1 -0
  110. package/dist/chunks/request-timeout-milliseconds.constant-DtyQHrll.cjs +1 -0
  111. package/dist/chunks/require-approval-fhegB1ap.cjs +1 -0
  112. package/dist/chunks/resolve-app-project-D5ZXIpsG.cjs +1 -0
  113. package/dist/chunks/resolve-inside-sdk-p-16gKb4.cjs +1 -0
  114. package/dist/chunks/resolve-metadata-object-QoDi-Aik.cjs +1 -0
  115. package/dist/chunks/resolve-project-typescript-CDY8BbmP.cjs +1 -0
  116. package/dist/chunks/resolve-request-url-jC5kYwkn.cjs +1 -0
  117. package/dist/chunks/resolve-source-sdk-mK-f4q55.cjs +1 -0
  118. package/dist/chunks/result-item-limit.constant-CDrOhiWD.cjs +1 -0
  119. package/dist/chunks/run-api-graphql-command-Biy0WqXa.cjs +1 -0
  120. package/dist/chunks/run-api-rest-command-D9kdQceV.cjs +1 -0
  121. package/dist/chunks/run-app-add-command-DcTQg7Si.cjs +163 -0
  122. package/dist/chunks/run-app-apply-command-DwLPPJ-Y.cjs +2 -0
  123. package/dist/chunks/run-app-build-command-BRYb0one.cjs +2 -0
  124. package/dist/chunks/run-app-dev-command-CVeh9Gab.cjs +2 -0
  125. package/dist/chunks/run-app-exec-command-DKLNLbL5.cjs +3 -0
  126. package/dist/chunks/run-app-init-command-CJj8_spC.cjs +2 -0
  127. package/dist/chunks/run-app-logs-command-Dusb8K-W.cjs +9 -0
  128. package/dist/chunks/run-app-operation-BWrY9YZK.cjs +1 -0
  129. package/dist/chunks/run-app-plan-command-C0_3e332.cjs +1 -0
  130. package/dist/chunks/run-app-pull-command-DcZqs8gR.cjs +3 -0
  131. package/dist/chunks/run-app-typecheck-command-C8LqpOej.cjs +1 -0
  132. package/dist/chunks/run-app-uninstall-command-ncWS_k-p.cjs +2 -0
  133. package/dist/chunks/run-auth-login-command-_zDgRcth.cjs +1 -0
  134. package/dist/chunks/run-auth-logout-command-BO6O7GVi.cjs +2 -0
  135. package/dist/chunks/run-auth-status-command-Cj-vqoHg.cjs +1 -0
  136. package/dist/chunks/run-auth-token-command-D4geJ-rx.cjs +1 -0
  137. package/dist/chunks/run-cli-c9TOR0zj.cjs +23 -0
  138. package/dist/chunks/run-commands-command-C6gvMpQ_.cjs +2 -0
  139. package/dist/chunks/run-data-get-command-jDEU4EG1.cjs +1 -0
  140. package/dist/chunks/run-data-list-command-EnCdbuzc.cjs +1 -0
  141. package/dist/chunks/run-doctor-command-DnJ6io-m.cjs +2 -0
  142. package/dist/chunks/run-metadata-field-describe-command-vJngpw2S.cjs +3 -0
  143. package/dist/chunks/run-metadata-field-list-command-CR4w7fI6.cjs +3 -0
  144. package/dist/chunks/run-metadata-object-describe-command-CHP8K-W2.cjs +3 -0
  145. package/dist/chunks/run-metadata-object-list-command-BqXMcAp6.cjs +2 -0
  146. package/dist/chunks/run-open-command-DKl8acw0.cjs +1 -0
  147. package/dist/chunks/run-remote-list-command-DeAzr5Mn.cjs +1 -0
  148. package/dist/chunks/run-remote-remove-command-D0C5sWjP.cjs +2 -0
  149. package/dist/chunks/run-remote-rename-command-Byq9WRHd.cjs +1 -0
  150. package/dist/chunks/run-remote-use-command-B6VVDlMG.cjs +1 -0
  151. package/dist/chunks/run-version-command-BmSk8PUV.cjs +1 -0
  152. package/dist/chunks/select-target-C1VZjf-A.cjs +1 -0
  153. package/dist/chunks/sign-in-to-remote-again-CW8HPSTP.cjs +1 -0
  154. package/dist/chunks/sign-in-with-browser-C3kC6uP2.cjs +1 -0
  155. package/dist/chunks/style-BR52fK4V.cjs +1 -0
  156. package/dist/chunks/target-environment-variable.constant-D7z8AihP.cjs +1 -0
  157. package/dist/chunks/to-cli-error-BBYf_wqo.cjs +1 -0
  158. package/dist/chunks/to-public-target-CIAwoOKL.cjs +1 -0
  159. package/dist/chunks/to-worker-output-diagnostics-lprh9b0l.cjs +2 -0
  160. package/dist/chunks/typecheck-application-DGrovgX9.cjs +2 -0
  161. package/dist/chunks/undici-D3mKdfwl.cjs +95 -0
  162. package/dist/chunks/update-config-BkKBEfAp.cjs +1 -0
  163. package/dist/chunks/utils-B8EXJeaX-DK3gCslL.cjs +33 -0
  164. package/dist/chunks/validate-app-path-Dau-PC0a.cjs +1 -0
  165. package/dist/chunks/validate-remote-name-w-qnr43w.cjs +1 -0
  166. package/dist/chunks/write-config-atomically-DRWTukU-.cjs +1 -0
  167. package/dist/cli.cjs +2 -0
  168. package/docs/commands.md +564 -0
  169. package/package.json +39 -3
  170. package/src/app/README.md +43 -0
  171. package/src/app/add/README.md +69 -0
  172. package/src/app/bundles/README.md +85 -0
  173. package/src/app/client/README.md +62 -0
  174. package/src/app/dev/README.md +35 -0
  175. package/src/app/exec/README.md +48 -0
  176. package/src/app/function-logs/README.md +44 -0
  177. package/src/app/manifest/README.md +74 -0
  178. package/src/app/pull/README.md +28 -0
  179. package/src/app/source/README.md +33 -0
  180. package/src/app/typecheck/README.md +67 -0
@@ -0,0 +1 @@
1
+ nodeLinker: node-modules
@@ -0,0 +1 @@
1
+ const e=require("./chunks/build-CX6FBrbu.cjs"),t=require("./chunks/constants-CL6mrTMT-B748cNNG.cjs");var n=e.t(),r=5e3,i=new AbortController,a,o=e=>{if(t.d(e)){if(e.type===`cancel`||e.type===`release`)return{type:e.type};if(e.type===`readSourceIdentity`||e.type===`buildManifest`||e.type===`typecheckSource`)return(0,n.isNonEmptyString)(e.appPath)?{type:e.type,appPath:e.appPath}:void 0;if(e.type===`bundleSnapshot`)return(0,n.isNonEmptyString)(e.appPath)?{type:`bundleSnapshot`,collectWatchInputs:e.collectWatchInputs===!0,appPath:e.appPath,holdSnapshot:e.holdSnapshot===!0}:void 0;if(e.type===`pull`)return!(0,n.isNonEmptyString)(e.appPath)||!t.d(e.target)||!(0,n.isNonEmptyString)(e.target.apiUrl)||!(0,n.isNonEmptyString)(e.target.workspaceId)||!t.d(e.applicationExport)||!t.d(e.applicationExport.application)||!(0,n.isNonEmptyString)(e.applicationExport.application.universalIdentifier)?void 0:{type:`pull`,appPath:e.appPath,target:{apiUrl:e.target.apiUrl,workspaceId:e.target.workspaceId},applicationExport:e.applicationExport};if(e.type===`generateSourceClient`)return(0,n.isNonEmptyString)(e.appPath)&&(0,n.isString)(e.schema)?{type:`generateSourceClient`,appPath:e.appPath,schema:e.schema}:void 0}},s=e=>{process.connected||process.exit(1),process.send?.(e,void 0,{},()=>process.exit(0))},c=async()=>{if(!t.zt(a))return null;let{snapshotApi:e,buildId:n}=a;return a=void 0,e.releaseSourceSnapshot({buildId:n})},l=()=>{c().then(()=>process.exit(1),()=>process.exit(1))},u=e=>{if(!process.connected){l();return}process.send?.(e)},d=e=>{if(!(!t.d(e)||e.success!==!0||!t.d(e.data)))return(0,n.isNonEmptyString)(e.data.buildId)?e.data.buildId:void 0},f=async({snapshotApi:e,appPath:n,holdSnapshot:r})=>{let o=i.signal,s=await e.buildSourceSnapshot({appPath:n,signal:o}),c=d(s);return t.zt(c)?r?(a={snapshotApi:e,buildId:c},{type:`result`,result:s,isSnapshotHeld:!0}):{type:`result`,result:s,release:await e.releaseSourceSnapshot({buildId:c}),isSnapshotHeld:!1}:{type:`result`,result:s,isSnapshotHeld:!1}},p=e=>({type:`failure`,message:e instanceof Error?e.message:String(e),...e instanceof Error&&`code`in e&&(0,n.isString)(e.code)?{code:e.code}:{},...e instanceof Error&&`hint`in e&&(0,n.isString)(e.hint)?{hint:e.hint}:{},...e instanceof Error&&`details`in e&&t.d(e.details)?{details:e.details}:{}});process.on(`SIGINT`,()=>void 0),process.on(`disconnect`,()=>{i.abort(),setTimeout(()=>process.exit(1),r),t.zt(a)&&l()}),process.on(`message`,e=>{let n=o(e);if(!t.zt(n)){s({type:`failure`,message:`The app worker received a request it cannot read.`});return}if(n.type===`cancel`){i.abort();return}if(n.type===`release`){c().then(e=>s({type:`released`,release:e}),e=>s(p(e)));return}if(n.type===`pull`){Promise.resolve().then(()=>require("./chunks/pull-source-eoiJwFb9.cjs")).then(async({pullSource:e})=>{s({type:`result`,result:await e({...n,signal:i.signal}),isSnapshotHeld:!1})}).catch(e=>s(p(e)));return}if(n.type===`bundleSnapshot`){Promise.resolve().then(()=>require("./chunks/build-source-snapshot-CbGsy1-v.cjs")).then(async({buildSourceSnapshot:e,releaseSourceSnapshot:t})=>{let r=()=>f({snapshotApi:{buildSourceSnapshot:e,releaseSourceSnapshot:t},appPath:n.appPath,holdSnapshot:n.holdSnapshot});if(!n.collectWatchInputs)return r();let{collectWatchInputs:i}=await Promise.resolve().then(()=>require("./chunks/collect-watch-inputs-B9jWG4W0.cjs")).then(e=>e.t),{recordTypecheckConfigInputs:a}=await Promise.resolve().then(()=>require("./chunks/record-typecheck-config-inputs-BDqkKCrj.cjs")),o=await i(async()=>(await a(n.appPath),r()));return{...o.result,watchInputs:o.watchInputs}}).then(e=>e.type===`result`&&e.isSnapshotHeld?u(e):s(e),e=>s(p(e)));return}if(n.type===`typecheckSource`){Promise.resolve().then(()=>require("./chunks/typecheck-application-DGrovgX9.cjs")).then(e=>e.n).then(async({typecheckApplication:e})=>{s({type:`result`,result:await e({appPath:n.appPath,signal:i.signal}),isSnapshotHeld:!1})}).catch(e=>s(p(e)));return}if(n.type===`buildManifest`){Promise.resolve().then(()=>require("./chunks/build-source-manifest-CLKH5vzc.cjs")).then(async({buildSourceManifest:e})=>{s({type:`result`,result:await e({appPath:n.appPath,signal:i.signal}),isSnapshotHeld:!1})}).catch(e=>s(p(e)));return}if(n.type===`readSourceIdentity`){Promise.resolve().then(()=>require("./chunks/read-source-identity-C8LG1v6U.cjs")).then(async({readSourceIdentity:e})=>{s({type:`result`,result:await e({appPath:n.appPath,signal:i.signal}),isSnapshotHeld:!1})}).catch(e=>s(p(e)));return}if(n.type===`generateSourceClient`){Promise.resolve().then(()=>require("./chunks/generate-application-client-CCVLjxTj.cjs")).then(async({generateApplicationClient:e})=>{s({type:`result`,result:await e({appPath:n.appPath,schema:n.schema,signal:i.signal}),isSnapshotHeld:!1})}).catch(e=>s(p(e)));return}});
@@ -0,0 +1,5 @@
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CL6mrTMT-B748cNNG.cjs"),n=require("./utils-B8EXJeaX-DK3gCslL.cjs");function r(e){if(!t.ft(e))throw TypeError(`Invalid UUID`);let n;return Uint8Array.of((n=parseInt(e.slice(0,8),16))>>>24,n>>>16&255,n>>>8&255,n&255,(n=parseInt(e.slice(9,13),16))>>>8,n&255,(n=parseInt(e.slice(14,18),16))>>>8,n&255,(n=parseInt(e.slice(19,23),16))>>>8,n&255,(n=parseInt(e.slice(24,36),16))/1099511627776&255,n/4294967296&255,n>>>24&255,n>>>16&255,n>>>8&255,n&255)}function i(e){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t}var a=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,o=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function s(e,n,a,o,s,c){let l=typeof a==`string`?i(a):a,u=typeof o==`string`?r(o):o;if(typeof o==`string`&&(o=r(o)),o?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let d=new Uint8Array(16+l.length);if(d.set(u),d.set(l,u.length),d=n(d),d[6]=d[6]&15|e,d[8]=d[8]&63|128,s){if(c||=0,c<0||c+16>s.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let e=0;e<16;++e)s[c+e]=d[e];return s}return t.dt(d)}function c(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:return t^n^r;case 2:return t&n^t&r^n&r;case 3:return t^n^r}}function l(e,t){return e<<t|e>>>32-t}function u(e){let t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520],r=new Uint8Array(e.length+1);r.set(e),r[e.length]=128,e=r;let i=e.length/4+2,a=Math.ceil(i/16),o=Array(a);for(let t=0;t<a;++t){let n=new Uint32Array(16);for(let r=0;r<16;++r)n[r]=e[t*64+r*4]<<24|e[t*64+r*4+1]<<16|e[t*64+r*4+2]<<8|e[t*64+r*4+3];o[t]=n}o[a-1][14]=(e.length-1)*8/2**32,o[a-1][14]=Math.floor(o[a-1][14]),o[a-1][15]=(e.length-1)*8&4294967295;for(let e=0;e<a;++e){let r=new Uint32Array(80);for(let t=0;t<16;++t)r[t]=o[e][t];for(let e=16;e<80;++e)r[e]=l(r[e-3]^r[e-8]^r[e-14]^r[e-16],1);let i=n[0],a=n[1],s=n[2],u=n[3],d=n[4];for(let e=0;e<80;++e){let n=Math.floor(e/20),o=l(i,5)+c(n,a,s,u)+d+t[n]+r[e]>>>0;d=u,u=s,s=l(a,30)>>>0,a=i,i=o}n[0]=n[0]+i>>>0,n[1]=n[1]+a>>>0,n[2]=n[2]+s>>>0,n[3]=n[3]+u>>>0,n[4]=n[4]+d>>>0}return Uint8Array.of(n[0]>>24,n[0]>>16,n[0]>>8,n[0],n[1]>>24,n[1]>>16,n[1]>>8,n[1],n[2]>>24,n[2]>>16,n[2]>>8,n[2],n[3]>>24,n[3]>>16,n[3]>>8,n[3],n[4]>>24,n[4]>>16,n[4]>>8,n[4])}function d(e,t,n,r){return s(80,u,e,t,n,r)}d.DNS=a,d.URL=o;function f(e){if(!t.ft(e))throw TypeError(`Invalid UUID`);return parseInt(e.slice(14,15),16)}function p(e){return e instanceof Boolean||typeof e==`boolean`}function m(e){return e instanceof String||typeof e==`string`}function h(e){return e!=null&&(typeof e==`object`||typeof e==`function`)&&!Array.isArray(e)}var ee=[`choice`,`score`,`boolean`],g=e.t(),_=function(e){return e.CODE=`CODE`,e.LOGIC_FUNCTION=`LOGIC_FUNCTION`,e.SEND_EMAIL=`SEND_EMAIL`,e.SEND_CHAT_MESSAGE=`SEND_CHAT_MESSAGE`,e.DRAFT_EMAIL=`DRAFT_EMAIL`,e.CREATE_CALENDAR_EVENT=`CREATE_CALENDAR_EVENT`,e.CREATE_RECORD=`CREATE_RECORD`,e.UPDATE_RECORD=`UPDATE_RECORD`,e.DELETE_RECORD=`DELETE_RECORD`,e.UPSERT_RECORD=`UPSERT_RECORD`,e.FIND_RECORDS=`FIND_RECORDS`,e.PICK_RECORD=`PICK_RECORD`,e.FORM=`FORM`,e.FILTER=`FILTER`,e.IF_ELSE=`IF_ELSE`,e.HTTP_REQUEST=`HTTP_REQUEST`,e.AI_AGENT=`AI_AGENT`,e.CLASSIFY=`CLASSIFY`,e.ITERATOR=`ITERATOR`,e.EMPTY=`EMPTY`,e.DELAY=`DELAY`,e.WAIT_FOR_EVENT=`WAIT_FOR_EVENT`,e}({}),v=`trigger`,te=e=>{let t=[],n=``,r=!1,i=0;for(;i<e.length;){let a=e[i];if(a===`[`&&!r){n.length>0&&(t.push(n),n=``),r=!0,i++;continue}if(a===`]`&&r){t.push(n),n=``,r=!1,i++,i<e.length&&e[i]===`.`&&i++;continue}if(a===`.`&&!r){n.length>0&&(t.push(n),n=``),i++;continue}n+=a,i++}return n.length>0&&t.push(n),t},ne=/{{([^{}]+)}}/g;function*y(e){if((0,g.isString)(e)){for(let[,n]of e.matchAll(ne))t.zt(n)&&(yield n);return}if((0,g.isObject)(e))for(let t of Object.values(e))yield*y(t)}var re=e=>[...y(e)],ie=(e,t)=>{let n=e.length+1,r=t.length+1,i=Array.from({length:n},()=>Array(r).fill(0));for(let e=0;e<n;e++)i[e][0]=e;for(let e=0;e<r;e++)i[0][e]=e;for(let a=1;a<n;a++){let n=i[a-1],o=i[a];for(let i=1;i<r;i++){let r=e[a-1]===t[i-1]?0:1;o[i]=Math.min(n[i]+1,o[i-1]+1,n[i-1]+r)}}return i[e.length][t.length]},ae=e=>{if(!t.zt(e)||!h(e)||Array.isArray(e))return!1;let n=Object.values(e);return n.length===0?!1:n.every(e=>t.zt(e)&&h(e)&&p(e.isLeaf))},b=(e,t=[])=>{let n=[];if(!(0,g.isObject)(e))return n;for(let[r,i]of Object.entries(e)){if(!(0,g.isObject)(i))continue;let e=[...t,r];n.push(e.join(`.`)),!i.isLeaf&&(0,g.isObject)(i.value)&&n.push(...b(i.value,e))}return n},oe=({schema:e,propertyPath:n})=>{let r=e;for(let e=0;e<n.length;e++){let i=n[e];if(!t.zt(i))return;if(!(0,g.isObject)(r))return{validPrefix:n.slice(0,e),failedSegment:i,availableKeys:[]};let a=r[i];if(!t.zt(a))return{validPrefix:n.slice(0,e),failedSegment:i,availableKeys:Object.keys(r)};if(a.isLeaf){let r=n[e+1];return t.zt(r)?{validPrefix:n.slice(0,e+1),failedSegment:r,availableKeys:[]}:void 0}r=a.value}},x={found:!1},S=e=>t.d(e)&&p(e.isLeaf),C=e=>t.d(e)&&e._outputSchemaType===`RECORD`&&t.d(e.fields),w=e=>t.d(e)&&!(`_outputSchemaType`in e)&&S(e.first)&&e.first.isLeaf===!1&&C(e.first.value)&&S(e.totalCount),T=e=>({found:!0,type:m(e.type)?e.type:void 0,label:m(e.label)?e.label:void 0}),E=(e,t)=>t.length===0?T(e):O(e.value,t),se=(e,t)=>{for(let n=1;n<=t.length;n++){let r=e[t.slice(0,n).join(`.`)];if(S(r))return E(r,t.slice(n))}return x},ce=(e,t)=>{let[n,...r]=t;if(n===`first`)return r.length===0?T(e.first):O(e.first.value,r);if(n===`all`||n===`totalCount`){let t=e[n];return r.length===0&&S(t)?T(t):x}return x},D=(e,n)=>{let[r,...i]=n;if(!t.zt(r))return x;let a=e[r];return S(a)?E(a,i):t.zt(a)?i.length===0?{found:!0}:t.d(a)?D(a,i):x:x},O=(e,n)=>n.length===0||!t.d(e)?x:C(e)?se(e.fields,n):w(e)?ce(e,n):D(e,n),le=({schema:e,propertyPath:t})=>O(e,t),k=e=>{let n=[];for(let[r,i]of Object.entries(e))if(S(i)){if(n.push(r),i.isLeaf)continue;let e=i.value;if(C(e))for(let t of k(e.fields))n.push(`${r}.${t}`);else if(t.d(e))for(let t of k(e))n.push(`${r}.${t}`)}else if(t.zt(i)&&(n.push(r),t.d(i)))for(let e of k(i))n.push(`${r}.${e}`);return n},A=e=>{if(!t.d(e))return[];if(C(e))return k(e.fields);if(w(e)){let n=[];if(S(e.first)){n.push(`first`);for(let t of A(e.first.value))n.push(`first.${t}`)}return t.zt(e.all)&&n.push(`all`),n.push(`totalCount`),n}return k(e)},ue=3,j=e=>t.d(e)?e._outputSchemaType===`RECORD`?!0:Object.values(e).some(e=>t.d(e)&&j(e.value)):!1,M=(e,t)=>t.map(t=>({candidate:t,distance:ie(e,t)})).filter(({candidate:e,distance:t})=>t<=Math.ceil(e.length/2)).sort((e,t)=>e.distance-t.distance).slice(0,ue).map(({candidate:e})=>e),de=({schema:e,propertyPath:n,referencedStepId:r})=>{if(!ae(e)||j(e)){let t=A(e);return M(n.join(`.`),t).map(e=>[r,e].join(`.`))}let i=oe({schema:e,propertyPath:n});if(!t.zt(i))return[];let a=M(i.failedSegment,i.availableKeys).map(e=>[r,...i.validPrefix,e].join(`.`));if((0,g.isNonEmptyArray)(a))return a;let o=b(e);return M(n.join(`.`),o).map(e=>[r,e].join(`.`))},fe=({workflow:e,graph:n,stepsById:r})=>{let i=[],a=new Set(e.steps?.map(e=>e.id)??[]);for(let o of e.steps??[]){let s=re(o.settings?.input),c=n.ancestorsByStepId.get(o.id)??new Set;for(let n of s){let s=te(n),l=s[0];if(!t.zt(l)){i.push({severity:`error`,code:`VARIABLE_INVALID_PATH`,message:`Step "${o.name??o.id}" has a variable "{{${n}}}" with an invalid path. Variable references must start with a step ID, e.g. "{{stepId.property}}".`,stepId:o.id,path:n});continue}let u=l===v;if(!u&&!a.has(l)){i.push({severity:`error`,code:`VARIABLE_UNKNOWN_STEP`,message:`Step "${o.name??o.id}" references variable "{{${n}}}" from an unknown step "${l}".`,stepId:o.id,path:n});continue}let d=l===o.id;if(!u&&!d&&!c.has(l)){let e=r.get(l)?.name??l;i.push({severity:`error`,code:`VARIABLE_NOT_UPSTREAM`,message:`Step "${o.name??o.id}" references variable "{{${n}}}" from step "${e}", which does not run before it. Ensure step "${e}" is an ancestor (connected via nextStepIds chain from the trigger, before this step).`,stepId:o.id,path:n});continue}i.push(...pe({step:o,variable:n,pathSegments:s,referencedStepId:l,isTriggerReference:u,trigger:e.trigger,stepsById:r}))}}return i},pe=({step:e,variable:n,pathSegments:r,referencedStepId:i,isTriggerReference:a,trigger:o,stepsById:s})=>{let c=r.slice(1);if(c.length===0)return[];let l=a?o?.settings?.outputSchema:s.get(i)?.settings?.outputSchema,u=t.zt(l)&&(0,g.isObject)(l)&&!Array.isArray(l)&&Object.keys(l).length===0;if(!t.zt(l)||u)return[];if(!le({schema:l,propertyPath:c}).found){let r=de({schema:l,propertyPath:c,referencedStepId:i}),a=he(l,i),o=(0,g.isNonEmptyArray)(r)?`Did you mean "{{${r[0]}}}"?${r.length>1?` Other options: ${r.slice(1).map(e=>`{{${e}}}`).join(`, `)}.`:``}`:(0,g.isNonEmptyArray)(a)?`Available paths: ${a.map(e=>`{{${e}}}`).join(`, `)}.`:void 0;return[{severity:`error`,code:`VARIABLE_PATH_NOT_FOUND`,message:`Step "${e.name??e.id}" references variable "{{${n}}}" but the path "${c.join(`.`)}" was not found in the output of step "${i}".`,stepId:e.id,path:n,...t.zt(o)?{hint:o}:{},...(0,g.isNonEmptyArray)(r)?{suggestions:r}:{},...(0,g.isNonEmptyArray)(a)?{availablePaths:a}:{}}]}return[]},me=20,he=(e,t)=>A(e).slice(0,me).map(e=>`${t}.${e}`),N=[1e3,5e3,15e3],P=t.kt({input:t.Et({}).describe(`Input data for the workflow action. Structure depends on the action type.`),outputSchema:t.Et({}).describe(`Schema defining the output data structure. This data can be referenced in subsequent steps using {{stepId.fieldName}}.`),errorHandlingOptions:t.kt({retryOnFailure:t.kt({value:t.At(e=>typeof e==`boolean`?Number(e):e,t.Ot().int().min(0).max(N.length).describe(`How many times to retry the action if it fails, between 0 and ${N.length}. 0 disables retries.`))}),continueOnFailure:t.kt({value:t.bt().describe(`Whether to continue to the next step if this action fails.`)})})}),ge={expectedOutputSchema:t.Et({}).optional().describe(`A sample output value declared by the user for steps whose output structure is only known at runtime.`)},_e=P.extend({input:t.kt({url:t.Nt(),method:t.gt([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),headers:t.jt(t.Nt(),t.Nt()).optional(),body:t.jt(t.Nt(),t.Pt([t.Nt(),t.Ot(),t.bt(),t._t(),t.yt(t.Pt([t.Nt(),t.Ot(),t.bt(),t._t()]))])).or(t.Nt()).optional()}),...ge}),ve=/^[a-zA-Z0-9_-]{1,64}$/,ye=t.kt({id:t.It().describe(`Stable identifier for this criterion row.`),name:t.Nt().describe(`Option name for a choice question, or the label of one score level.`),description:t.Nt().optional().describe(`What the model should understand this option to mean.`)}),be=t.kt({id:t.It().describe(`Stable identifier for this question row.`),name:t.Nt().regex(ve,`Answer name must be empty or contain 1 to 64 characters using only letters, digits, underscores and dashes`).or(t.Tt(``)).describe(`Answer key for this question, made of letters, digits, underscores and dashes. Downstream steps read {{stepId.answers.<name>}}.`),type:t.gt(ee).describe(`choice picks one option, score grades an ordered rubric, boolean estimates the probability that a statement holds.`),instructions:t.Nt().describe(`What the model should decide about the shared state.`),criteria:t.yt(ye).describe(`Options for a choice question, or ordered levels (lowest first) for a score question. Empty for boolean.`)}),xe=P.extend({input:t.kt({state:t.Nt().describe(`The shared state every question is asked about. Supports variables.`),questions:t.yt(be)})}),Se=P.extend({input:t.kt({items:t.Pt([t.yt(t.Pt([t.Nt(),t.Ot(),t.bt(),t._t(),t.jt(t.Nt(),t.vt()),t.vt()])),t.Nt()]).optional(),initialLoopStepIds:t.yt(t.Nt()).optional(),shouldContinueOnIterationFailure:t.bt().optional()})}),Ce=P.extend({input:t.kt({delayType:t.gt([`SCHEDULED_DATE`,`DURATION`]),scheduledDateTime:t.Nt().nullable().optional(),duration:t.kt({days:t.Pt([t.Ot().min(0),t.Nt()]).optional(),hours:t.Pt([t.Ot().min(0),t.Nt()]).optional(),minutes:t.Pt([t.Ot().min(0),t.Nt()]).optional(),seconds:t.Pt([t.Ot().min(0),t.Nt()]).optional()}).optional()})}),we=P.extend({input:t.kt({eventName:t.Nt().describe(`Event to wait for, in format objectName.action (e.g., "company.updated", "task.created", "person.deleted").`),recordId:t.Nt().nullable().optional().describe(`Only resume for this record. Usually a variable such as {{trigger.object.id}}. Leave empty to resume on any record.`),updatedFields:t.yt(t.Nt()).nullable().optional().describe(`For update events, only resume when one of these fields changed.`),timeout:t.kt({days:t.Pt([t.Ot().min(0),t.Nt()]).optional(),hours:t.Pt([t.Ot().min(0),t.Nt()]).optional(),minutes:t.Pt([t.Ot().min(0),t.Nt()]).optional()}).nullable().optional().describe(`Stop waiting after this duration. The step then succeeds with hasTimedOut set to true.`)})}),Te=P.extend({input:t.kt({})}),F=t.jt(t.Nt(),t.vt()).describe(`Record data object. Use nested objects for relationships (e.g., "company": {"id": "{{reference}}"}). Common patterns:
2
+ - Person: {"name": {"firstName": "John", "lastName": "Doe"}, "emails": {"primaryEmail": "john@example.com"}, "company": {"id": "{{trigger.object.id}}"}}
3
+ - Company: {"name": "Acme Corp", "domainName": {"primaryLinkUrl": "https://acme.com"}}
4
+ - Task: {"title": "Follow up", "status": "TODO", "assignee": {"id": "{{user.id}}"}}`),Ee=P.extend({input:t.kt({objectName:t.Nt().describe(`The name of the object to create a record in. Must be lowercase (e.g., "person", "company", "task").`),objectRecord:F.describe(`The record data to create.`)})}),De=P.extend({input:t.kt({objectName:t.Nt(),objectRecord:F,objectRecordId:t.Nt(),fieldsToUpdate:t.yt(t.Nt())})}),Oe=P.extend({input:t.kt({objectName:t.Nt(),objectRecord:F})}),ke=P.extend({input:t.kt({objectName:t.Nt(),objectRecordId:t.Nt()})}),I=t.Nt().regex(/^{{[^{}]+}}$/,`Expected a workflow variable reference like {{stepId.path}}`),Ae=P.extend({input:t.kt({objectName:t.Nt(),limit:t.Pt([t.Ot(),I]).optional(),offset:t.Pt([t.Ot().int().nonnegative(),I]).optional(),filter:t.kt({recordFilterGroups:t.yt(t.vt()).optional(),recordFilters:t.yt(t.vt()).optional()}).optional(),orderBy:t.kt({recordSorts:t.yt(t.vt()).optional(),gqlOperationOrderBy:t.yt(t.jt(t.Nt(),t.vt())).optional()}).optional()})}),je=t.kt({id:t.Nt(),name:t.Nt(),label:t.Nt(),type:t.Pt([t.Tt(t.rt.TEXT),t.Tt(t.rt.NUMBER),t.Tt(t.rt.DATE),t.Tt(t.rt.SELECT),t.Tt(t.rt.MULTI_SELECT),t.Tt(`RECORD`)]),placeholder:t.Nt().optional(),settings:t.jt(t.Nt(),t.vt()).optional(),value:t.vt().optional()}),Me=P.extend({input:t.yt(je),instructions:t.Nt().optional()}),L=t.kt({id:t.Nt(),logicalOperator:t.gt(t.N),parentStepFilterGroupId:t.Nt().optional(),positionInStepFilterGroup:t.Ot().optional()}),R=t.kt({id:t.Nt(),type:t.Nt(),stepOutputKey:t.Nt(),operand:t.gt(t.G).or(t.gt(t.I)),value:t.Nt(),stepFilterGroupId:t.Nt(),positionInStepFilterGroup:t.Ot().optional(),fieldMetadataId:t.Nt().optional(),compositeFieldSubFieldName:t.Nt().optional()}),Ne=P.extend({input:t.kt({stepFilterGroups:t.yt(L),stepFilters:t.yt(R)})}),Pe=t.kt({id:t.Nt(),nextStepIds:t.yt(t.Nt()),filterGroupId:t.Nt().optional()}),Fe=P.extend({input:t.kt({stepFilterGroups:t.yt(L),stepFilters:t.yt(R),branches:t.yt(Pe)})}),z=t.gt([`RANDOM`,`ROUND_ROBIN`,`LOAD_BALANCED`]);P.extend({input:t.kt({objectName:t.Nt(),strategy:z,recordIds:t.yt(t.Nt()),loadBalance:t.kt({objectNameSingular:t.Nt(),fieldName:t.Nt()}).optional()}).superRefine((e,n)=>{e.strategy===`LOAD_BALANCED`&&!t.zt(e.loadBalance)&&n.addIssue({code:t.ht.custom,path:[`loadBalance`],message:`loadBalance is required when strategy is LOAD_BALANCED`})})});var Ie=e=>{let t=e.settings?.input;return e.type===_.IF_ELSE&&(0,g.isObject)(t)&&`branches`in t&&Array.isArray(t.branches)},B=e=>{let t=e.settings?.input;return e.type===_.ITERATOR&&(0,g.isObject)(t)&&`initialLoopStepIds`in t&&(0,g.isNonEmptyArray)(t.initialLoopStepIds)},Le=e=>{let n=e.settings?.input;if(t.zt(n)&&(0,g.isObject)(n))return n},Re=e=>{let t=new Set(e.nextStepIds??[]);if(Ie(e))for(let n of e.settings.input.branches??[])for(let e of n?.nextStepIds??[])t.add(e);if(B(e))for(let n of e.settings.input.initialLoopStepIds??[])t.add(n);return[...t]},ze=({trigger:e,steps:n})=>{let r=new Map,i=t.zt(e?.nextStepIds)?e.nextStepIds.filter(t.zt):[];r.set(v,i);for(let e of n??[])r.set(e.id,Re(e));let a=new Set,o=[v];for(;o.length>0;){let e=o.shift();if(!(!t.zt(e)||a.has(e))){a.add(e);for(let t of r.get(e)??[])a.has(t)||o.push(t)}}return{childrenByStepId:r,reachableFromTrigger:a,ancestorsByStepId:Be(r)}},Be=e=>{let t=new Map;for(let[n,r]of e.entries())for(let e of r){let r=t.get(e)??new Set;r.add(n),t.set(e,r)}let n=new Map;for(let r of e.keys()){if(n.has(r))continue;let e=new Set,i=[...t.get(r)??[]];for(;i.length>0;){let n=i.shift();if(!e.has(n)){e.add(n);for(let r of t.get(n)??[])e.has(r)||i.push(r)}}n.set(r,e)}return n},Ve=({workflow:e,graph:n})=>{let r=[],i=new Set,a=new Set,o=new Map((e.steps??[]).map(e=>[e.id,e])),s=(e,c=[],l)=>{let u=c[c.length-1];if(i.has(e)){if(e!==l&&u===e)return;r.push({severity:`error`,code:`WORKFLOW_CYCLE`,stepId:e,message:`Workflow contains a cycle at step ${e}`});return}let d=o.get(e),f=`${e}:${c.join(`,`)}`;if(!t.zt(d)||a.has(f))return;i.add(e),B(d)&&(d.settings.input.initialLoopStepIds??[]).forEach(t=>s(t,[...c,e],e));let p=d.type===_.ITERATOR?d.nextStepIds??[]:n.childrenByStepId.get(e)??[];t.zt(u)&&p.length===0&&r.push({severity:`error`,code:`ITERATOR_MISSING_RETURN`,stepId:e,message:`Loop body step ${e} must return to iterator ${u}`}),p.forEach(t=>s(t,c,e)),i.delete(e),a.add(f)};return e.trigger?.nextStepIds?.forEach(e=>s(e)),r},He=({workflow:e,graph:r})=>{let i=[],a=e.steps??[],o=new Set(a.map(e=>e.id)),s=new Set;for(let e of a)s.has(e.id)&&i.push({severity:`error`,code:`DUPLICATE_STEP_ID`,message:`Duplicate step id "${e.id}". Every step id must be unique within the workflow.`,stepId:e.id}),s.add(e.id);let c=(e.trigger?.nextStepIds??[]).filter(t.zt);n.r(a)&&c.length===0&&i.push({severity:`error`,code:`TRIGGER_HAS_NO_NEXT_STEP`,message:`The trigger is not connected to any step. The trigger must have a "nextStepIds" array pointing to the first step (e.g. nextStepIds: ["${a[0].id}"]). If you used edges, also set trigger.nextStepIds.`});for(let e of c)o.has(e)||i.push({severity:`error`,code:`DANGLING_REFERENCE`,message:`The trigger references a non-existent step "${e}".`});for(let e of a){for(let t of r.childrenByStepId.get(e.id)??[])o.has(t)||i.push({severity:`error`,code:`DANGLING_REFERENCE`,message:`Step "${e.name??e.id}" references a non-existent step "${t}".`,stepId:e.id});i.push(...Ue(e))}for(let e of a)r.reachableFromTrigger.has(e.id)||i.push({severity:`error`,code:`UNREACHABLE_STEP`,message:`Step "${e.name??e.id}" is not reachable from the trigger. Ensure a chain of nextStepIds connects the trigger to this step. Check that the preceding step includes this step's id ("${e.id}") in its nextStepIds array.`,stepId:e.id});return i},Ue=e=>{let n=[],r=Le(e);if(e.type===_.IF_ELSE){let i=r?.branches,a=Array.isArray(i)?i:[];a.length<2&&n.push({severity:`warning`,code:`IF_ELSE_INSUFFICIENT_BRANCHES`,message:`If/Else step "${e.name??e.id}" should have at least two branches (a condition branch and an else branch).`,stepId:e.id});let o=r?.stepFilterGroups,s=new Set((Array.isArray(o)?o:[]).filter(t.zt).map(e=>e.id));for(let r of a){let i=r?.nextStepIds;(!Array.isArray(i)||i.length===0)&&n.push({severity:`error`,code:`IF_ELSE_BRANCH_HAS_NO_NEXT_STEP`,message:`A branch of If/Else step "${e.name??e.id}" is not connected to any step.`,stepId:e.id}),t.zt(r?.filterGroupId)&&!s.has(r.filterGroupId)&&n.push({severity:`error`,code:`INVALID_STEP_PARAMS`,message:`A branch of If/Else step "${e.name??e.id}" references filter group "${r.filterGroupId}", which does not exist.`,stepId:e.id})}}if(e.type===_.ITERATOR){let t=r,i=t?.items,a=typeof i==`string`&&i.length>0||Array.isArray(i)&&i.length>0,o=t?.initialLoopStepIds,s=Array.isArray(o)&&o.length>0;a&&!s&&n.push({severity:`error`,code:`ITERATOR_MISSING_LOOP_BODY`,message:`Iterator step "${e.name??e.id}" has items to iterate over but no steps inside the loop.`,stepId:e.id})}return n},We=`20202020-64aa-4b6f-b003-9c74b97cee20`,V=({entityNamespace:e,value:t,applicationUniversalIdentifier:n})=>d(`${e}:${t}`,n),Ge=({applicationUniversalIdentifier:e,objectUniversalIdentifier:t,name:n})=>V({entityNamespace:`fieldMetadata`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),H=({applicationUniversalIdentifier:e,objectUniversalIdentifier:t,name:n})=>V({entityNamespace:`pageLayout`,value:t?`${t}:${n}`:n,applicationUniversalIdentifier:e}),Ke=({objectMetadataApplicationUniversalIdentifier:e,pageLayoutUniversalIdentifier:t,title:n})=>V({entityNamespace:`pageLayoutTab`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),qe=({objectMetadataApplicationUniversalIdentifier:e,pageLayoutTabUniversalIdentifier:t,title:n})=>V({entityNamespace:`pageLayoutWidget`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),Je=({objectMetadataApplicationUniversalIdentifier:e,objectUniversalIdentifier:n})=>H({applicationUniversalIdentifier:e,objectUniversalIdentifier:n,name:t.q.RECORD_PAGE}),Ye=({applicationUniversalIdentifier:e,objectUniversalIdentifier:t,relationTargetObjectUniversalIdentifier:n})=>V({entityNamespace:`fieldMetadata`,value:`${t}:systemRelation:${n}`,applicationUniversalIdentifier:e}),Xe=({objectMetadataApplicationUniversalIdentifier:e,viewUniversalIdentifier:t,name:n})=>V({entityNamespace:`viewFieldGroup`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),Ze=({fieldMetadataApplicationUniversalIdentifier:e,viewUniversalIdentifier:t,fieldMetadataUniversalIdentifier:n})=>V({entityNamespace:`viewField`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),Qe={INDEX:`INDEX`,FIELDS_WIDGET:`FIELDS_WIDGET`},$e=({objectMetadataApplicationUniversalIdentifier:e,objectUniversalIdentifier:t,viewKey:n})=>V({entityNamespace:`view`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),U=function(e){return e.OK=`OK`,e.SUCCESS=`SUCCESS`,e.INFO=`INFO`,e.WARNING=`WARNING`,e.ERROR=`ERROR`,e.NEUTRAL=`NEUTRAL`,e.UNKNOWN=`UNKNOWN`,e}({});Object.values(U).filter(e=>e!==U.OK&&e!==U.UNKNOWN),t.rt.TEXT,t.rt.ARRAY,t.rt.BOOLEAN,t.rt.DATE,t.rt.DATE_TIME,t.rt.NUMBER,t.rt.NUMERIC,t.rt.RAW_JSON,t.rt.RICH_TEXT,t.rt.SELECT,t.rt.MULTI_SELECT,_.SEND_EMAIL,_.DRAFT_EMAIL,_.CREATE_CALENDAR_EVENT;var et=`public`,tt=`front-component-shared-dependencies.mjs`,nt=`twenty:front-component-shared-dependencies`,rt={js:`import { createRequire as __createRequire } from 'module';
5
+ const require = __createRequire(import.meta.url);`},it=`.twenty/output`,at=({applicationUniversalIdentifier:e,roleUniversalIdentifier:t,fieldUniversalIdentifier:n})=>V({entityNamespace:`fieldPermission`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),ot=({applicationUniversalIdentifier:e,roleUniversalIdentifier:t,objectUniversalIdentifier:n})=>V({entityNamespace:`objectPermission`,value:`${t}:${n}`,applicationUniversalIdentifier:e}),st=({objectMetadataApplicationUniversalIdentifier:e,objectUniversalIdentifier:n})=>H({applicationUniversalIdentifier:e,objectUniversalIdentifier:n,name:t.q.RECORD_FORM}),ct=({pageLayoutTabManifest:e,pageLayoutType:r})=>{let i=e.layoutMode??(r===t.q.STANDALONE_PAGE?t.ct.VERTICAL_LIST:t.ct.GRID),a=e.widgets??[],o=[];if(!Object.values(t.ct).some(e=>e===i))return{status:`fail`,errors:[`Page layout tab "${e.title}" defines unsupported layoutMode "${i}". Expected GRID, VERTICAL_LIST or CANVAS.`]};for(let n of a){let r=[n.heightBehavior,t.d(n.position)&&`heightBehavior`in n.position?n.position.heightBehavior:void 0].filter(t.zt);r.length>0&&i!==t.ct.VERTICAL_LIST&&o.push(`Page layout widget "${n.title}" defines heightBehavior, but its parent tab "${e.title}" uses ${i}. heightBehavior is only supported for VERTICAL_LIST tabs.`);for(let e of r)Object.values(t.st).some(t=>t===e)||o.push(`Page layout widget "${n.title}" defines unsupported heightBehavior "${e}". Expected FIT_CONTENT or TAB_VIEWPORT.`)}if(o.length>0)return{status:`fail`,errors:o};let s={...e,layoutMode:i,widgets:a.map(({heightBehavior:e,position:r,gridPosition:a,...o},s)=>{if(t.zt(r))return{...o,position:r.layoutMode===t.ct.VERTICAL_LIST&&t.zt(e)?{...r,heightBehavior:e}:r};if(t.zt(a))return{...o,position:{layoutMode:t.ct.GRID,...a}};switch(i){case t.ct.GRID:return{...o,position:{layoutMode:i,row:0,column:0,rowSpan:t._.default.h,columnSpan:t._.default.w}};case t.ct.VERTICAL_LIST:return{...o,position:{layoutMode:i,index:s,...t.zt(e)?{heightBehavior:e}:{}}};case t.ct.CANVAS:return{...o,position:{layoutMode:i}};default:return n.s(i)}})};for(let e of s.widgets)e.position.layoutMode!==i&&o.push(`Page layout widget "${e.title}" uses a ${e.position.layoutMode} position, but its parent tab "${s.title}" uses ${i}.`);if(i===t.ct.VERTICAL_LIST){let e=s.widgets.filter(({type:e,position:r})=>r.layoutMode===t.ct.VERTICAL_LIST&&n.i({widgetType:e,heightBehavior:r.heightBehavior})===t.st.TAB_VIEWPORT);e.length>1&&o.push(`Page layout tab "${s.title}" can contain only one TAB_VIEWPORT widget.`);let r=e.length===1?e[0]:void 0;t.zt(r)&&s.widgets.some(e=>e!==r&&e.position.layoutMode===t.ct.VERTICAL_LIST&&r.position.layoutMode===t.ct.VERTICAL_LIST&&e.position.index>=r.position.index)&&o.push(`Page layout tab "${s.title}" must place its TAB_VIEWPORT widget last.`)}return o.length>0?{status:`fail`,errors:o}:{status:`success`,pageLayoutTab:s}},W=[`canReadObjectRecords`,`canUpdateObjectRecords`,`canSoftDeleteObjectRecords`,`canDestroyObjectRecords`],G={canReadObjectRecords:`canReadAllObjectRecords`,canUpdateObjectRecords:`canUpdateAllObjectRecords`,canSoftDeleteObjectRecords:`canSoftDeleteAllObjectRecords`,canDestroyObjectRecords:`canDestroyAllObjectRecords`},K=({role:e,objectUniversalIdentifier:t})=>{let n=e.objectPermissions?.find(e=>e.objectUniversalIdentifier===t);return{canReadObjectRecords:n?.canReadObjectRecords??e[G.canReadObjectRecords]??!1,canUpdateObjectRecords:n?.canUpdateObjectRecords??e[G.canUpdateObjectRecords]??!1,canSoftDeleteObjectRecords:n?.canSoftDeleteObjectRecords??e[G.canSoftDeleteObjectRecords]??!1,canDestroyObjectRecords:n?.canDestroyObjectRecords??e[G.canDestroyObjectRecords]??!1}},lt=e=>JSON.stringify(e,(e,n)=>t.d(n)?Object.fromEntries(Object.entries(n).sort(([e],[t])=>e.localeCompare(t))):n),ut=({groupsByUniversalIdentifier:e,predicateGroupUniversalIdentifier:n})=>{let r=[],i=new Set,a=n;for(;t.zt(a)&&!i.has(a);){i.add(a);let n=e.get(a);if(!t.zt(n))break;r.push(n.logicalOperator),a=n.parentPredicateGroupUniversalIdentifier}return r},q=({role:e,objectUniversalIdentifier:t})=>{let n=new Map((e.rowLevelPermissionPredicateGroups??[]).map(e=>[e.universalIdentifier,e]));return(e.rowLevelPermissionPredicates??[]).filter(e=>e.objectUniversalIdentifier===t).map(e=>lt({fieldUniversalIdentifier:e.fieldUniversalIdentifier,subFieldName:e.subFieldName??null,operand:e.operand,value:e.value??null,workspaceMemberFieldUniversalIdentifier:e.workspaceMemberFieldUniversalIdentifier??null,workspaceMemberSubFieldName:e.workspaceMemberSubFieldName??null,groupOperatorPath:ut({groupsByUniversalIdentifier:n,predicateGroupUniversalIdentifier:e.predicateGroupUniversalIdentifier})})).sort()},dt=t.n.map(e=>t.f[e]),ft=({roleSignature:e,supersetSignature:t})=>e.length===t.length&&e.every((e,n)=>e===t[n]),pt=({role:e,superset:t})=>[...W.filter(n=>{let r=G[n];return e[r]&&!t[r]}).map(e=>({type:`ALL_OBJECT_RECORDS`,action:e})),...e.canUpdateAllSettings&&!t.canUpdateAllSettings?[{type:`ALL_SETTINGS`}]:[],...e.canAccessAllTools&&!t.canAccessAllTools?[{type:`ALL_TOOLS`}]:[]],mt=({role:e,superset:t,toolPermissionFlagUniversalIdentifiers:n})=>{let r=new Set([...dt,...n]),i=new Set(t.permissionFlagUniversalIdentifiers??[]);return[...new Set(e.permissionFlagUniversalIdentifiers??[])].filter(e=>!(r.has(e)?t.canAccessAllTools:t.canUpdateAllSettings)&&!i.has(e)).map(e=>({type:`PERMISSION_FLAG`,permissionFlagUniversalIdentifier:e}))},ht=({role:e,superset:t})=>[...new Set([...[...e.objectPermissions??[],...t.objectPermissions??[]].map(e=>e.objectUniversalIdentifier),...(t.rowLevelPermissionPredicates??[]).map(e=>e.objectUniversalIdentifier)])].flatMap(n=>{let r=K({role:e,objectUniversalIdentifier:n}),i=K({role:t,objectUniversalIdentifier:n}),a=W.filter(e=>r[e]&&!i[e]).map(e=>({type:`OBJECT_RECORDS`,objectUniversalIdentifier:n,action:e})),o=W.some(e=>r[e]),s=q({role:t,objectUniversalIdentifier:n}),c=q({role:e,objectUniversalIdentifier:n});return o&&s.length>0&&!ft({roleSignature:c,supersetSignature:s})?[...a,{type:`ROW_LEVEL_RESTRICTION`,objectUniversalIdentifier:n}]:a}),gt=({role:e,superset:t})=>(t.fieldPermissions??[]).flatMap(t=>{let{objectUniversalIdentifier:n,fieldUniversalIdentifier:r}=t,i=K({role:e,objectUniversalIdentifier:n}),a=e.fieldPermissions?.find(e=>e.objectUniversalIdentifier===n&&e.fieldUniversalIdentifier===r),o=t.canReadFieldValue===!1&&i.canReadObjectRecords&&a?.canReadFieldValue!==!1,s=t.canUpdateFieldValue===!1&&i.canUpdateObjectRecords&&a?.canUpdateFieldValue!==!1;return[...o?[{type:`FIELD_VALUE`,objectUniversalIdentifier:n,fieldUniversalIdentifier:r,action:`canReadFieldValue`}]:[],...s?[{type:`FIELD_VALUE`,objectUniversalIdentifier:n,fieldUniversalIdentifier:r,action:`canUpdateFieldValue`}]:[]]}),_t=({role:e,superset:t,toolPermissionFlagUniversalIdentifiers:n})=>[...pt({role:e,superset:t}),...mt({role:e,superset:t,toolPermissionFlagUniversalIdentifiers:n}),...ht({role:e,superset:t}),...gt({role:e,superset:t})],vt=e=>t.ft(e)&&f(e)>=4,J={universalIdentifier:t.It(),name:t.Nt().min(1),nextStepIds:t.yt(t.It()),position:t.kt({x:t.Ot(),y:t.Ot()}).optional(),outputSchema:t.jt(t.Nt(),t.Ft()).optional(),expectedOutputSchema:t.jt(t.Nt(),t.Ft()).optional(),errorHandlingOptions:P.shape.errorHandlingOptions.optional()},Y=(e,n)=>t.Mt({...J,type:t.Tt(e),input:n}),X=t.Et({fieldMetadataUniversalIdentifier:t.It(),fieldMetadataId:t.Dt().optional()}),Z=R.omit({fieldMetadataId:!0}).extend({fieldMetadataUniversalIdentifier:t.It().optional()}).strict(),Q={objectUniversalIdentifier:t.It()},yt=t.xt(`type`,[t.Mt({...J,type:t.Tt(`LOGIC_FUNCTION`),logicFunctionUniversalIdentifier:t.It(),input:t.jt(t.Nt(),t.Ft())}),Y(`HTTP_REQUEST`,_e.shape.input),Y(`CLASSIFY`,xe.shape.input),Y(`ITERATOR`,Se.shape.input),Y(`DELAY`,Ce.shape.input),Y(`WAIT_FOR_EVENT`,we.shape.input),Y(`EMPTY`,Te.shape.input),Y(`CREATE_RECORD`,Ee.shape.input.omit({objectName:!0}).extend(Q).strict()),Y(`UPDATE_RECORD`,De.shape.input.omit({objectName:!0}).extend(Q).strict()),Y(`UPSERT_RECORD`,Oe.shape.input.omit({objectName:!0}).extend(Q).strict()),Y(`DELETE_RECORD`,ke.shape.input.omit({objectName:!0}).extend(Q).strict()),Y(`FIND_RECORDS`,Ae.shape.input.omit({objectName:!0,filter:!0,orderBy:!0}).extend({...Q,filter:t.Mt({recordFilterGroups:t.yt(t.jt(t.Nt(),t.Ft())).optional(),recordFilters:t.yt(X).optional()}).optional(),orderBy:t.Mt({recordSorts:t.yt(X.extend({direction:t.gt([`ASC`,`DESC`]),subFieldName:t.Nt().nullable().optional()})).optional()}).optional()}).strict()),Y(`PICK_RECORD`,t.Mt({...Q,strategy:z,recordIds:t.yt(t.Nt()),loadBalance:t.Mt({objectUniversalIdentifier:t.It(),fieldUniversalIdentifier:t.It()}).optional()}).superRefine((e,n)=>{e.strategy===`LOAD_BALANCED`&&!t.zt(e.loadBalance)&&n.addIssue({code:`custom`,path:[`loadBalance`],message:`loadBalance is required when strategy is LOAD_BALANCED`})})),Y(`FILTER`,Ne.shape.input.extend({stepFilters:t.yt(Z)})),Y(`IF_ELSE`,Fe.shape.input.extend({stepFilters:t.yt(Z)})),Y(`FORM`,t.yt(Me.shape.input.element.extend({settings:t.jt(t.Nt(),t.Ft()).optional()}).superRefine((e,n)=>{e.type===`RECORD`&&!t.It().safeParse(e.settings?.objectUniversalIdentifier).success&&n.addIssue({code:`custom`,path:[`settings`,`objectUniversalIdentifier`],message:`Record picker fields require an object universal identifier`})}))),Y(`AI_AGENT`,t.Mt({agentUniversalIdentifier:t.It().optional(),prompt:t.Nt()}))]),bt=t.xt(`type`,[t.Mt({type:t.Tt(`GLOBAL`)}),t.Mt({type:t.Tt(`SINGLE_RECORD`),objectUniversalIdentifier:t.It()}),t.Mt({type:t.Tt(`BULK_RECORDS`),objectUniversalIdentifier:t.It()})]),$=[t.Mt({universalIdentifier:t.It(),type:t.Tt(`MANUAL`),nextStepIds:t.yt(t.It()).min(1),settings:t.Mt({availability:bt.optional(),icon:t.Nt().optional(),isPinned:t.bt().optional()}).superRefine((e,n)=>{!t.zt(e.availability)&&(t.zt(e.icon)||t.zt(e.isPinned))&&n.addIssue({code:`custom`,path:[`availability`],message:`Set an availability for the icon and pin to show in the command menu`})}).optional()})],xt=$.map(e=>e.shape.type.value),St=t.xt(`type`,$,{error:e=>e.code===`invalid_union`?`Unsupported trigger type. Application workflows support: ${xt.join(`, `)}`:void 0});t.Mt({universalIdentifier:t.It(),name:t.Nt().min(1),version:t.Mt({trigger:St,steps:t.yt(yt).min(1)})}).superRefine((e,t)=>{let{steps:n,trigger:r}=e.version,i=[e.universalIdentifier,r.universalIdentifier,...n.map(e=>e.universalIdentifier)];new Set(i).size!==i.length&&t.addIssue({code:`custom`,message:`Workflow, trigger and steps must have distinct universal identifiers`});let a={trigger:{type:r.type,nextStepIds:r.nextStepIds},steps:n.map(e=>({...e,id:e.universalIdentifier,settings:{input:e.input}}))},o=ze(a);for(let e of[...He({workflow:a,graph:o}),...Ve({workflow:a,graph:o}),...fe({workflow:a,graph:o,stepsById:new Map(a.steps.map(e=>[e.id,e]))})])e.severity===`error`&&t.addIssue({code:`custom`,message:e.message})}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return st}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return rt}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return ot}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return _t}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return tt}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return it}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Ze}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return nt}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return vt}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return at}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return $e}});
@@ -0,0 +1 @@
1
+ const e=require("./cli-error-CSsayo0u.cjs");let t=require("node:fs/promises"),n=require("node:path");var r=class extends Error{},i=async({appPath:i,relativePaths:a})=>{for(let o of a){let a=(0,n.relative)(i,(0,n.resolve)(i,o));if(a.length===0||a===`..`||a.startsWith(`..${n.sep}`)||(0,n.isAbsolute)(a))throw new r(`Path leaves the application directory: ${o}`);let s=i;for(let i of a.split(n.sep)){s=(0,n.resolve)(s,i);try{if((await(0,t.lstat)(s)).isSymbolicLink())throw new r(`Cannot follow symbolic links: ${o}`)}catch(t){if(e.r(t,`ENOENT`))break;throw t}}}};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
@@ -0,0 +1 @@
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isSymbol=e.isBigInt=e.isString=e.isNumber=e.isBoolean=e.isUndefined=void 0,e.isUndefined=e=>e===void 0,e.isBoolean=e=>typeof e==`boolean`,e.isNumber=e=>typeof e==`number`&&!Number.isNaN(e),e.isString=e=>typeof e==`string`,e.isBigInt=e=>typeof e==`bigint`,e.isSymbol=e=>typeof e==`symbol`})),d=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isDate=e.isWeakSet=e.isWeakMap=e.isSet=e.isMap=e.isArray=e.isObject=e.isFunction=e.isNull=void 0,e.isNull=e=>e===null,e.isFunction=e=>typeof e==`function`,e.isObject=t=>!e.isNull(t)&&typeof t==`object`,e.isArray=e=>Array.isArray(e),e.isMap=e=>e instanceof Map,e.isSet=e=>e instanceof Set,e.isWeakMap=e=>e instanceof WeakMap,e.isWeakSet=e=>e instanceof WeakSet,e.isDate=e=>e instanceof Date})),f=o((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isNegativeInteger=e.isNonNegativeInteger=e.isPositiveInteger=e.isInteger=e.isNumberOrNaN=e.isNonEmptyString=e.isNonEmptyArray=e.isObjectOrNull=void 0;var t=u(),n=d();e.isObjectOrNull=e=>typeof e==`object`,e.isNonEmptyArray=e=>n.isArray(e)&&e.length>0,e.isNonEmptyString=e=>t.isString(e)&&e.length>0,e.isNumberOrNaN=e=>typeof e==`number`,e.isInteger=e=>t.isNumber(e)&&Number.isInteger(e),e.isPositiveInteger=t=>e.isInteger(t)&&t>0,e.isNonNegativeInteger=t=>e.isInteger(t)&&t>=0,e.isNegativeInteger=t=>e.isInteger(t)&&t<0})),p=o((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.structural=e.primitives=e.convenience=void 0,e.convenience=r(f()),i(f(),e),e.primitives=r(u()),i(u(),e),e.structural=r(d()),i(d(),e)}));Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
@@ -0,0 +1,5 @@
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CL6mrTMT-B748cNNG.cjs"),n=require("./application-DuIJE2qG.cjs"),r=require("./metadata-D9sQOTRK.cjs"),i=require("./print-typescript-value-DhElcFzI.cjs"),a=require("./kebab-case-D0usAzG-.cjs");var o=80,s=e=>[{path:[...e,`type`],symbol:`FieldType`,members:t.rt},{path:[...e,`writability`],symbol:`MetadataWritability`,members:t.J},{path:[...e,`universalSettings`,`relationType`],symbol:`RelationType`,members:t.B},{path:[...e,`universalSettings`,`onDelete`],symbol:`OnDeleteAction`,members:t.M},{path:[...e,`universalSettings`,`dataType`],symbol:`NumberDataType`,members:t.R},{path:[...e,`universalSettings`,`displayFormat`],symbol:`DateDisplayFormat`,members:t.V}],c=s([]),l=[{path:[`writability`],symbol:`MetadataWritability`,members:t.J},{path:[`openRecordIn`],symbol:`ObjectOpenRecordIn`,members:t.tt},...s([`fields`,`[]`])],u=[{path:[`indexType`],symbol:`IndexType`,members:t.P}],d=[{path:[`rowLevelPermissionPredicateGroups`,`[]`,`logicalOperator`],symbol:`RowLevelPermissionPredicateGroupLogicalOperator`,members:t.Q},{path:[`rowLevelPermissionPredicates`,`[]`,`operand`],symbol:`RowLevelPermissionPredicateOperand`,members:t.O},{path:[`permissionFlagUniversalIdentifiers`,`[]`],symbol:`SystemPermissionFlag`,members:t.f}],f=e=>({path:e,symbol:`AggregateOperations`,members:t.it}),p=[f([`aggregateOperation`])],m=[{path:[`type`],symbol:`ViewType`,members:t.L},{path:[`visibility`],symbol:`ViewVisibility`,members:t.nt},{path:[`openRecordIn`],symbol:`ViewOpenRecordIn`,members:t.K},f([`kanbanAggregateOperation`]),{path:[`calendarLayout`],symbol:`ViewCalendarLayout`,members:t.lt},f([`fields`,`[]`,`aggregateOperation`]),{path:[`filters`,`[]`,`operand`],symbol:`ViewFilterOperand`,members:t.G},{path:[`filterGroups`,`[]`,`logicalOperator`],symbol:`ViewFilterGroupLogicalOperator`,members:t.k},{path:[`sorts`,`[]`,`direction`],symbol:`ViewSortDirection`,members:t.F}],h=e=>[{path:[...e,`type`],symbol:`WidgetType`,members:t.H},{path:[...e,`position`,`layoutMode`],symbol:`PageLayoutTabLayoutMode`,members:t.ct},f([...e,`configuration`,`aggregateOperation`]),...[`dateGranularity`,`primaryAxisDateGranularity`,`secondaryAxisGroupByDateGranularity`].map(n=>({path:[...e,`configuration`,n],symbol:`ObjectRecordGroupByDateGranularity`,members:t.Z}))],g=e=>[{path:[...e,`layoutMode`],symbol:`PageLayoutTabLayoutMode`,members:t.ct},...h([...e,`widgets`,`[]`])],_=h([]),v=g([]),y=[{path:[`type`],symbol:`NavigationMenuItemType`,members:t.X}],b=[{path:[`type`],symbol:`PageLayoutType`,members:t.q},...g([`tabs`,`[]`])],x=(e,t)=>e.length===t.length&&e.every((e,n)=>e===t[n]),S=({definer:e,config:n,enumBindings:r=[]})=>{let a=new Set,s=i.t({value:n,resolveEnumSymbol:({path:e,value:n})=>{let i=r.find(t=>x(t.path,e));if(!t.zt(i))return;let o=Object.keys(i.members).find(e=>i.members[e]===n);if(t.zt(o))return a.add(i.symbol),`${i.symbol}.${o}`}}),c=[e,...[...a].sort()],l=`import { ${c.join(`, `)} } from 'twenty-sdk/define';`;return{content:`${l.length<=o?l:`import {\n${c.map(e=>` ${e},`).join(`
2
+ `)}\n} from 'twenty-sdk/define';`}
3
+
4
+ export default ${e}(${s});
5
+ `,requiredSdkExports:c}},C=e.t(),w=80,T=new Map(Object.entries(r.i).flatMap(([e,t])=>Object.entries(t).map(([t,{universalIdentifier:n}])=>[n,{objectName:e,fieldName:t}]))),E=e=>(0,C.isNonEmptyString)(e)&&(0,C.isNonEmptyString)(a.t(e).replace(/-+/g,``)),D=e=>e.slice(0,w).replace(/-+$/g,``),O=({segments:e,universalIdentifier:n})=>{let r=D(e.filter(t.zt).map(a.t).join(`-`).replace(/-{2,}/g,`-`).replace(/^-+|-+$/g,``));return(0,C.isNonEmptyString)(r)?r:n.slice(0,8)},k=({indexManifest:e,objectName:t,fieldLocationByUniversalIdentifier:n})=>O({segments:[t,...e.fields.map(({fieldUniversalIdentifier:e})=>n.get(e)?.fieldName??null)],universalIdentifier:e.universalIdentifier}),A=({viewFieldManifest:e,fieldLocationByUniversalIdentifier:n})=>{let r=n.get(e.fieldMetadataUniversalIdentifier)??T.get(e.fieldMetadataUniversalIdentifier);return O({segments:t.zt(r)?[r.objectName,r.fieldName]:[],universalIdentifier:e.universalIdentifier})},j=`__typename`,M=e=>Array.isArray(e)?e.map(M):typeof e!=`object`||!e?e:Object.fromEntries(Object.entries(e).filter(([e])=>e!==j).map(([e,t])=>[e,M(t)])),N=new Set([`packageJsonChecksum`,`yarnLockChecksum`,`requiredServerVersionRange`,`aboutDescription`,`postInstallLogicFunction`,`preInstallLogicFunction`,`uninstallLogicFunction`,`healthCheckLogicFunction`,`settingsFrontComponent`,`settingsCustomTabFrontComponentUniversalIdentifier`,`frontComponentSharedDependencies`,`logoUrl`,`screenshots`]),P=`public/cover.generated.png`,F=e=>(e.roles??[]).some(({universalIdentifier:t})=>t===e.application.defaultRoleUniversalIdentifier),I=e=>{let t=Object.fromEntries(Object.entries(e.application).filter(([t])=>!N.has(t)&&!(t===`defaultRoleUniversalIdentifier`&&F(e)))),{galleryImages:n}=t;if(!Array.isArray(n)||n.length===0||n.every(e=>e===P)){let{galleryImages:e,...n}=t;return n}return t},L=({permissions:e,getDerivedUniversalIdentifier:t})=>e.map(({universalIdentifier:e,...n})=>e===t(n)?n:{universalIdentifier:e,...n}),R=({roleManifest:e,applicationUniversalIdentifier:r})=>{let{universalIdentifier:i,objectPermissions:a,fieldPermissions:o}=e;return{...e,...t.zt(a)?{objectPermissions:L({permissions:a,getDerivedUniversalIdentifier:({objectUniversalIdentifier:e})=>n.d({applicationUniversalIdentifier:r,roleUniversalIdentifier:i,objectUniversalIdentifier:e})})}:{},...t.zt(o)?{fieldPermissions:L({permissions:o,getDerivedUniversalIdentifier:({fieldUniversalIdentifier:e})=>n.u({applicationUniversalIdentifier:r,roleUniversalIdentifier:i,fieldUniversalIdentifier:e})})}:{}}},z=({objectName:e,fieldName:t,fieldUniversalIdentifier:n})=>O({segments:[e,t],universalIdentifier:n}),B=new Map(Object.entries(r.t).map(([e,t])=>[t,e])),V=({objectUniversalIdentifier:e,manifest:t})=>(t.objects??[]).find(t=>t.universalIdentifier===e)?.nameSingular??B.get(e)??null,H=new Map(Object.entries(r.r).map(([e,{universalIdentifier:t}])=>[t,e])),U=({pageLayoutUniversalIdentifier:e,manifest:r})=>{let i=r.pageLayouts?.find(t=>t.universalIdentifier===e);if(t.zt(i))return i.name;let a=H.get(e);if(t.zt(a))return a;let o=r.application.universalIdentifier;for(let t of r.objects??[]){let r={objectMetadataApplicationUniversalIdentifier:o,objectUniversalIdentifier:t.universalIdentifier};if(n.f(r)===e)return`${t.nameSingular}RecordPage`;if(n.a(r)===e)return`${t.nameSingular}RecordForm`}return null},W=({viewUniversalIdentifier:e,manifest:r})=>{let i=r.views?.find(t=>t.universalIdentifier===e);if(t.zt(i))return i.name;let a=r.application.universalIdentifier;for(let t of r.objects??[])if(n.y({objectMetadataApplicationUniversalIdentifier:a,objectUniversalIdentifier:t.universalIdentifier,viewKey:n.m.INDEX})===e)return`${t.nameSingular}IndexView`;return null},G=({navigationMenuItemManifest:e,manifest:n})=>{let{type:r,name:i,targetObjectUniversalIdentifier:a,viewUniversalIdentifier:o,pageLayoutUniversalIdentifier:s}=e;return E(i)?i:r===t.X.OBJECT&&t.zt(a)?V({objectUniversalIdentifier:a,manifest:n}):r===t.X.VIEW&&t.zt(o)?W({viewUniversalIdentifier:o,manifest:n}):r===t.X.PAGE_LAYOUT&&t.zt(s)?U({pageLayoutUniversalIdentifier:s,manifest:n}):null},K=({navigationMenuItemManifest:e,manifest:t})=>O({segments:[G({navigationMenuItemManifest:e,manifest:t})],universalIdentifier:e.universalIdentifier}),q=({folderUniversalIdentifier:e,manifest:t})=>{let n=t.navigationMenuItems?.find(t=>t.universalIdentifier===e)?.name;return E(n)?n:null},J=[`application`,`object`,`field`,`index`,`permissionFlag`,`role`,`view`,`viewField`,`pageLayout`,`pageLayoutTab`,`navigationMenuItem`,`pageLayoutWidget`],Y=(e,n=new Map)=>{let r=e.application.universalIdentifier,i=[],o=[];i.push({kind:`application`,universalIdentifier:r,definer:`defineApplication`,config:I(e),enumBindings:[],defaultFolder:`src`,fileSuffix:`.config.ts`,fileBaseName:`application`,parentName:null});let s=new Set,f=new Map,h=[...e.fields??[]];for(let t of e.objects??[]){let e=[];for(let r of t.fields??[])f.set(r.universalIdentifier,{objectName:t.nameSingular,fieldName:r.name}),n.get(r.universalIdentifier.toLowerCase())?.entityKey===`fields`?h.push({...r,objectUniversalIdentifier:t.universalIdentifier}):e.push(r);s.add(t.universalIdentifier),i.push({kind:`object`,universalIdentifier:t.universalIdentifier,definer:`defineObject`,config:{...t,fields:e},enumBindings:l,defaultFolder:`src/objects`,fileSuffix:`.object.ts`,fileBaseName:a.t(t.nameSingular),parentName:null})}for(let t of h){let n=V({objectUniversalIdentifier:t.objectUniversalIdentifier,manifest:e});f.set(t.universalIdentifier,{objectName:n,fieldName:t.name}),i.push({kind:`field`,universalIdentifier:t.universalIdentifier,definer:`defineField`,config:t,enumBindings:c,defaultFolder:`src/fields`,fileSuffix:`.field.ts`,fileBaseName:z({objectName:n,fieldName:t.name,fieldUniversalIdentifier:t.universalIdentifier}),parentName:n})}for(let t of e.indexes??[]){if(!s.has(t.objectUniversalIdentifier)){o.push({kind:`index`,universalIdentifier:t.universalIdentifier,reason:`its object is not part of the written source`});continue}let n=V({objectUniversalIdentifier:t.objectUniversalIdentifier,manifest:e});i.push({kind:`index`,universalIdentifier:t.universalIdentifier,definer:`defineIndex`,config:t,enumBindings:u,defaultFolder:`src/indexes`,fileSuffix:`.index.ts`,fileBaseName:k({indexManifest:t,objectName:n,fieldLocationByUniversalIdentifier:f}),parentName:n})}for(let t of e.permissionFlags??[])i.push({kind:`permissionFlag`,universalIdentifier:t.universalIdentifier,definer:`definePermissionFlag`,config:t,enumBindings:[],defaultFolder:`src/permission-flags`,fileSuffix:`.permission-flag.ts`,fileBaseName:O({segments:[t.key],universalIdentifier:t.universalIdentifier}),parentName:null});for(let t of e.roles??[])i.push({kind:`role`,universalIdentifier:t.universalIdentifier,definer:t.universalIdentifier===e.application.defaultRoleUniversalIdentifier?`defineApplicationRole`:`defineRole`,config:R({roleManifest:t,applicationUniversalIdentifier:r}),enumBindings:d,defaultFolder:`src/roles`,fileSuffix:`.role.ts`,fileBaseName:O({segments:[t.label],universalIdentifier:t.universalIdentifier}),parentName:null});for(let t of e.views??[])i.push({kind:`view`,universalIdentifier:t.universalIdentifier,definer:`defineView`,config:t,enumBindings:m,defaultFolder:`src/views`,fileSuffix:`.view.ts`,fileBaseName:O({segments:[t.name],universalIdentifier:t.universalIdentifier}),parentName:V({objectUniversalIdentifier:t.objectUniversalIdentifier,manifest:e})});for(let t of e.viewFields??[])i.push({kind:`viewField`,universalIdentifier:t.universalIdentifier,definer:`defineViewField`,config:t,enumBindings:p,defaultFolder:`src/view-fields`,fileSuffix:`.view-field.ts`,fileBaseName:A({viewFieldManifest:t,fieldLocationByUniversalIdentifier:f}),parentName:null});for(let n of e.pageLayouts??[])i.push({kind:`pageLayout`,universalIdentifier:n.universalIdentifier,definer:`definePageLayout`,config:M(n),enumBindings:b,defaultFolder:`src/page-layouts`,fileSuffix:`.page-layout.ts`,fileBaseName:O({segments:[n.name],universalIdentifier:n.universalIdentifier}),parentName:t.zt(n.objectUniversalIdentifier)?V({objectUniversalIdentifier:n.objectUniversalIdentifier,manifest:e}):null});for(let n of e.pageLayoutTabs??[]){let{pageLayoutUniversalIdentifier:r}=n;if(!t.zt(r)){o.push({kind:`pageLayoutTab`,universalIdentifier:n.universalIdentifier,reason:`it does not name the page layout it belongs to`});continue}i.push({kind:`pageLayoutTab`,universalIdentifier:n.universalIdentifier,definer:`definePageLayoutTab`,config:M(n),enumBindings:v,defaultFolder:`src/page-layout-tabs`,fileSuffix:`.page-layout-tab.ts`,fileBaseName:O({segments:[n.title],universalIdentifier:n.universalIdentifier}),parentName:U({pageLayoutUniversalIdentifier:r,manifest:e})})}for(let n of e.navigationMenuItems??[]){let{folderUniversalIdentifier:r}=n;i.push({kind:`navigationMenuItem`,universalIdentifier:n.universalIdentifier,definer:`defineNavigationMenuItem`,config:n,enumBindings:y,defaultFolder:`src/navigation-menu-items`,fileSuffix:`.navigation-menu-item.ts`,fileBaseName:K({navigationMenuItemManifest:n,manifest:e}),parentName:t.zt(r)?q({folderUniversalIdentifier:r,manifest:e}):null})}for(let n of e.pageLayoutWidgets??[]){let{objectUniversalIdentifier:r}=n;i.push({kind:`pageLayoutWidget`,universalIdentifier:n.universalIdentifier,definer:`definePageLayoutWidget`,config:M(n),enumBindings:_,defaultFolder:`src/page-layout-widgets`,fileSuffix:`.page-layout-widget.ts`,fileBaseName:O({segments:[n.title],universalIdentifier:n.universalIdentifier}),parentName:t.zt(r)?V({objectUniversalIdentifier:r,manifest:e}):null})}return{entities:i,skipped:o}};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return J}});
@@ -0,0 +1,2 @@
1
+ const e=require("./cli-error-CSsayo0u.cjs"),t=require("./get-tooling-error-context-C69TBSej.cjs"),n=require("./compile-application-translations-B59jYVWc.cjs"),r=require("./resolve-source-sdk-mK-f4q55.cjs");let i=require("esbuild");var a=async({appPath:a,signal:o})=>{let s=[],c=e=>{s.push({severity:`warning`,code:`BUILD_WARNING`,message:e})};try{o.throwIfAborted(),await r.t({appPath:a});let e=await n.r(a);if(o.throwIfAborted(),!e.success)return{success:!1,error:{code:`MANIFEST_BUILD_FAILED`,message:e.errors.join(`
2
+ `)},diagnostics:e.errors.map(e=>({severity:`error`,code:`MANIFEST_BUILD_FAILED`,message:e}))};e.warnings.forEach(c);let t=await n.t({appPath:a,onWarning:c});return o.throwIfAborted(),{success:!0,data:{manifest:{...e.manifest,translations:t},filePaths:e.filePaths},diagnostics:s}}catch(n){return{success:!1,error:{code:o.aborted?`CANCELLED`:n instanceof e.t?n.code:`MANIFEST_BUILD_FAILED`,message:n instanceof Error?n.message:String(n),...t.t(n)},diagnostics:s}}finally{await(0,i.stop)()}};exports.buildSourceManifest=a;
@@ -0,0 +1,206 @@
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');
4
+ 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
+ }
24
+
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
+ }
33
+
34
+ var _reactToDomEvent = {
35
+ ondoubleclick: 'ondblclick',
36
+ };
37
+
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
+ }
47
+
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
+ }
66
+ }
67
+ return { cleanProps: cleanProps || props, events: events };
68
+ }
69
+
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
+ }
77
+ }
78
+ if (typeof userRef === 'function') userRef(el);
79
+ else if (userRef != null && typeof userRef === 'object') userRef.current = el;
80
+ };
81
+ }`,de=`import {
82
+ jsx as _originalJsx,
83
+ jsxs as _originalJsxs,
84
+ Fragment,
85
+ } from '__real_react_jsx_runtime__';
86
+
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);
119
+ };
120
+ }
121
+
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__';
126
+
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;
149
+ }
150
+
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);
165
+ }
166
+ }
167
+ return _originalCreateElement.apply(null, args);
168
+ }
169
+
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';
172
+ 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=`
174
+ // Auto-generated stub for twenty-sdk/define injected by the Twenty CLI.
175
+ // Real implementations would pull in zod, twenty-shared and ~1MB of code; at
176
+ // runtime only \`default.config.handler\` is consumed, so tiny no-ops suffice.
177
+ const __defineFactoryStub = (config) => ({
178
+ success: true,
179
+ config,
180
+ errors: [],
181
+ });
182
+
183
+ const __anyHandler = {
184
+ get(_target, prop) {
185
+ if (prop === '__esModule') return true;
186
+ if (prop === Symbol.toPrimitive) return () => '';
187
+ if (typeof prop === 'symbol') return undefined;
188
+ return new Proxy(() => undefined, __anyHandler);
189
+ },
190
+ apply() {
191
+ return new Proxy(() => undefined, __anyHandler);
192
+ },
193
+ };
194
+ const __anyStub = new Proxy(() => undefined, __anyHandler);
195
+ `,we=e=>{let t=xe(e),n=[];for(let e of t.factories)n.push(`export const ${e} = __defineFactoryStub;`);for(let r of t.plainData){let t=e[r];n.push(`export const ${r} = ${JSON.stringify(t)};`)}for(let e of t.any)n.push(`export const ${e} = __anyStub;`);return`${Ce}\n${n.join(`
196
+ `)}\n`},N=e=>({name:`twenty-sdk-define-stub`,setup(t){t.onResolve({filter:/^twenty-sdk\/define$/},()=>({path:Se,namespace:M})),t.onLoad({filter:/.*/,namespace:M},()=>({contents:we((0,g.createRequire)((0,h.join)(e,`package.json`))(`twenty-sdk/define`)),loader:`js`}))}}),P,Te=new Uint8Array(new Uint16Array([1]).buffer)[0]===1;function Ee(e,t=`@`){if(!P)throw Error(`Not initialized`);let n=e.length+1,r=(P.__heap_base.value||P.__heap_base)+4*n-P.memory.buffer.byteLength;r>0&&P.memory.grow(Math.ceil(r/65536));let i=P.sa(n);(Te?ke:Oe)(e,new Uint16Array(P.memory.buffer,i,n));let a=P.parseCJS(i,e.length,0,0,0);if(a){let n=Error(`Parse error ${t}${P.e()}:${e.slice(0,P.e()).split(`
197
+ `).length}:${P.e()-e.lastIndexOf(`
198
+ `,P.e()-1)}`);throw Object.assign(n,{idx:P.e()}),a!==5&&a!==6&&a!==7||Object.assign(n,{code:`ERR_LEXER_ESM_SYNTAX`}),n}let o=new Set,s=new Set,c=new Set;for(;P.rre();){let t=F(e.slice(P.res(),P.ree()));t&&s.add(t)}for(;P.ru();)c.add(F(e.slice(P.us(),P.ue())));for(;P.re();){let t=F(e.slice(P.es(),P.ee()));t===void 0||c.has(t)||o.add(t)}return{exports:[...o],reexports:[...s]}}function F(e){if(e[0]!==`"`&&e[0]!==`'`)return e;try{let t=function(e){let t=e[0];if(t===`"`)try{return JSON.parse(e)}catch{}else if(t===`'`&&e.length>1&&e[e.length-1]===`'`&&e.indexOf(`"`)===-1)try{return JSON.parse(`"`+e.slice(1,-1)+`"`)}catch{}let n=``,r={v:1};for(;r.v<e.length;){let i=e[r.v];switch(i){case t:return n;case`\\`:++r.v,n+=De(e,r);break;case`\r`:case`
199
+ `: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
+ `&&++t.v;case`
201
+ `: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(`
203
+ `)}).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;