twenty 2.48.0 → 2.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/app-template/yarn.lock +157 -183
  2. package/dist/app-worker.cjs +1 -1
  3. package/dist/chunks/application-BE-X21OV.cjs +5 -0
  4. package/dist/chunks/{build-pull-entities-BBNc4zkt.cjs → build-pull-entities-caP3XupC.cjs} +2 -2
  5. package/dist/chunks/{build-source-manifest-BMjw7BvT.cjs → build-source-manifest-DWRbCMVq.cjs} +1 -1
  6. package/dist/chunks/{build-source-snapshot-BbQlyo_m.cjs → build-source-snapshot-CtgBQfSx.cjs} +813 -154
  7. package/dist/chunks/cli-version.constant-BBeYll5N.cjs +1 -0
  8. package/dist/chunks/{collect-translatable-strings-C3TWaO1V.cjs → collect-translatable-strings-GBVXMoaX.cjs} +1 -1
  9. package/dist/chunks/{collect-watch-inputs-Cexr5YYZ.cjs → collect-watch-inputs-CJVgCTo5.cjs} +1 -1
  10. package/dist/chunks/compile-application-translations-B4jILjGc.cjs +1 -0
  11. package/dist/chunks/{constants-Du9J-8Ug-CD8GTrut.cjs → constants-CemcuPi_-D7dbw2cv.cjs} +1 -1
  12. package/dist/chunks/{convert-to-label-D24GvvpW.cjs → convert-to-label-DH4ArWop.cjs} +1 -1
  13. package/dist/chunks/{create-http-status-error-Dd3336c8.cjs → create-http-status-error-C6gJS0JS.cjs} +1 -1
  14. package/dist/chunks/create-metadata-client-BRD2ys8z.cjs +6 -0
  15. package/dist/chunks/{create-pull-base-write-Cl1jfQ6l.cjs → create-pull-base-write-CX9yftCd.cjs} +1 -1
  16. package/dist/chunks/{create-rest-client-r3OA3fUu.cjs → create-rest-client-Cc5Cmakp.cjs} +17 -17
  17. package/dist/chunks/extract-manifest-from-file-mvb6OhWm.cjs +1 -0
  18. package/dist/chunks/{extract-source-translations-BLQ-XFuN.cjs → extract-source-translations-Bd_030qL.cjs} +1 -1
  19. package/dist/chunks/{fetch-metadata-inspection-BwJjaHCB.cjs → fetch-metadata-inspection-CAmEp-xl.cjs} +1 -1
  20. package/dist/chunks/{fetch-signed-in-identity-CWFlsW7e.cjs → fetch-signed-in-identity-b_LbRuL-.cjs} +1 -1
  21. package/dist/chunks/{fetch-workspace-id-DJFdCITG.cjs → fetch-workspace-id-C9kY0s84.cjs} +1 -1
  22. package/dist/chunks/format-body-BIv-9Sd5.cjs +1 -0
  23. package/dist/chunks/{format-data-value-C5itQm1i.cjs → format-data-value-C7Njc7Sb.cjs} +1 -1
  24. package/dist/chunks/{format-metadata-fields-BozY419E.cjs → format-metadata-fields-BOG2kj2h.cjs} +1 -1
  25. package/dist/chunks/{format-metadata-owner-C6CksDIK.cjs → format-metadata-owner-CyEMvoQr.cjs} +1 -1
  26. package/dist/chunks/format-progress-line-DgxG_7p2.cjs +1 -0
  27. package/dist/chunks/{generate-application-client-BApuJWQO.cjs → generate-application-client-BOLnv8nr.cjs} +1 -1
  28. package/dist/chunks/{get-app-plan-summary-F_MjZOGe.cjs → get-app-plan-summary-D1Dsd34P.cjs} +1 -1
  29. package/dist/chunks/{get-client-generation-skip-reason-B5f_gcok.cjs → get-client-generation-skip-reason-CUn0Y2Vu.cjs} +1 -1
  30. package/dist/chunks/{get-function-input-schema-GNk3NRLJ-oQ5Evald.cjs → get-function-input-schema-GNk3NRLJ-CWNFoyKh.cjs} +1 -1
  31. package/dist/chunks/{global-flags.constant-BPHQAhn7.cjs → global-flags.constant-0k222fHC.cjs} +1 -1
  32. package/dist/chunks/{is-access-token-expiring-DIimejBr.cjs → is-access-token-expiring-D-YfufId.cjs} +1 -1
  33. package/dist/chunks/{is-application-not-found-error-D0BAcKyX.cjs → is-application-not-found-error-4vnGlYbm.cjs} +1 -1
  34. package/dist/chunks/{is-exported-manifest-RF_O2ibz.cjs → is-exported-manifest-dsiWCcjx.cjs} +1 -1
  35. package/dist/chunks/{is-locale-catalog-Dzj6m_Xt.cjs → is-locale-catalog-CRn-mKHj.cjs} +1 -1
  36. package/dist/chunks/is-supported-locale-BOZxTj7r.cjs +1 -0
  37. package/dist/chunks/{locale-catalog-format-BT6ommA1.cjs → locale-catalog-format-rg5FMb7l.cjs} +2 -2
  38. package/dist/chunks/metadata-Vepr2xeA.cjs +1 -0
  39. package/dist/chunks/{metadata-page.constant-CnR03vnh.cjs → metadata-page.constant-thBSPIZT.cjs} +1 -1
  40. package/dist/chunks/{parse-api-url-C9MmGtLY.cjs → parse-api-url-CEfjRyid.cjs} +1 -1
  41. package/dist/chunks/{parse-app-export-BT6nM7Ki.cjs → parse-app-export-DUZ2dQJ8.cjs} +1 -1
  42. package/dist/chunks/{parse-extraction-locale-CM7sARBo.cjs → parse-extraction-locale-fg7K8vps.cjs} +1 -1
  43. package/dist/chunks/{parse-graphql-response-DbYu3YlQ.cjs → parse-graphql-response-DvoRiFPV.cjs} +1 -1
  44. package/dist/chunks/{parse-json-input-DaXTn_6C.cjs → parse-json-input-DE451WQG.cjs} +1 -1
  45. package/dist/chunks/{print-typescript-value-BoxeFXca.cjs → print-typescript-value-DaEFmMda.cjs} +1 -1
  46. package/dist/chunks/{pull-source-DNswr_80.cjs → pull-source-D9QUEAsK.cjs} +1 -1
  47. package/dist/chunks/{read-app-identity-CtO3wiSx.cjs → read-app-identity-DtEnxiEF.cjs} +1 -1
  48. package/dist/chunks/{read-application-identifier-B51ax_Q6.cjs → read-application-identifier-DyZcsUV4.cjs} +1 -1
  49. package/dist/chunks/{read-application-identity-Bx8B9Bel.cjs → read-application-identity-CMJ-W5D8.cjs} +1 -1
  50. package/dist/chunks/{read-config-LKYhSPOb.cjs → read-config-DdtXhdPp.cjs} +1 -1
  51. package/dist/chunks/{read-json-object-BONMjSVo.cjs → read-json-object-CgaXuNS0.cjs} +1 -1
  52. package/dist/chunks/{read-snapshot-file-ClIpemjz.cjs → read-snapshot-file-dvWjVexO.cjs} +1 -1
  53. package/dist/chunks/{read-source-identity-C4eKC14c.cjs → read-source-identity-Ca7QkuwC.cjs} +1 -1
  54. package/dist/chunks/{record-pull-base-CdTOndSf.cjs → record-pull-base-Dfqth7Uy.cjs} +1 -1
  55. package/dist/chunks/{record-typecheck-config-inputs-DcCY-_Z1.cjs → record-typecheck-config-inputs-DZy2PhMY.cjs} +1 -1
  56. package/dist/chunks/{request-oauth-tokens-CS79pVAp.cjs → request-oauth-tokens-BY5ew3aM.cjs} +1 -1
  57. package/dist/chunks/{resolve-app-project-BQnFOdLH.cjs → resolve-app-project-dftvbB2P.cjs} +1 -1
  58. package/dist/chunks/{resolve-command-target-CKYtQQPx.cjs → resolve-command-target-0k6iitOZ.cjs} +1 -1
  59. package/dist/chunks/{resolve-inside-sdk-Cc_y-RWT.cjs → resolve-inside-sdk-6M8jy9bi.cjs} +1 -1
  60. package/dist/chunks/{resolve-metadata-object-CRWbF9Ce.cjs → resolve-metadata-object-DzDTQF_T.cjs} +1 -1
  61. package/dist/chunks/{resolve-project-typescript-CZW_p97L.cjs → resolve-project-typescript-Cw2kvn6E.cjs} +1 -1
  62. package/dist/chunks/{resolve-request-url-BrqiqInn.cjs → resolve-request-url-Cnuxu_nj.cjs} +1 -1
  63. package/dist/chunks/{resolve-source-sdk-CGEJC-UH.cjs → resolve-source-sdk-B1Fxlsmt.cjs} +1 -1
  64. package/dist/chunks/{run-api-graphql-command-KlIMjpOY.cjs → run-api-graphql-command-CzQ4IH4l.cjs} +1 -1
  65. package/dist/chunks/{run-api-rest-command-W4gCU562.cjs → run-api-rest-command-BtXv11uz.cjs} +1 -1
  66. package/dist/chunks/{run-app-add-command-C6rIt02R.cjs → run-app-add-command-DsgrCsEl.cjs} +1 -1
  67. package/dist/chunks/{run-app-apply-command-BckNNni9.cjs → run-app-apply-command-X_XGAwRN.cjs} +1 -1
  68. package/dist/chunks/{run-app-build-command-DW0r-w2C.cjs → run-app-build-command--t8qRNsn.cjs} +1 -1
  69. package/dist/chunks/{run-app-dev-command-C3U-3OiV.cjs → run-app-dev-command-Cc-nhH2t.cjs} +1 -1
  70. package/dist/chunks/{run-app-exec-command-DNeCk5qs.cjs → run-app-exec-command-mdXCYmUn.cjs} +1 -1
  71. package/dist/chunks/{run-app-generate-client-command-HAgBNVFU.cjs → run-app-generate-client-command-3DMg-WyX.cjs} +1 -1
  72. package/dist/chunks/{run-app-init-command-dTbY28oS.cjs → run-app-init-command-BfS8IFmY.cjs} +1 -1
  73. package/dist/chunks/{run-app-install-command-BX30OsrQ.cjs → run-app-install-command-DMbwFvtE.cjs} +1 -1
  74. package/dist/chunks/{run-app-logs-command-CdAXR-XY.cjs → run-app-logs-command-B7_iDOj1.cjs} +1 -1
  75. package/dist/chunks/{run-app-operation--X_q0SAn.cjs → run-app-operation-DFCj0sG_.cjs} +1 -1
  76. package/dist/chunks/{run-app-plan-command-Bm1eXl7V.cjs → run-app-plan-command-Dh_DFA7H.cjs} +1 -1
  77. package/dist/chunks/{run-app-publish-command-Cdb3OlI2.cjs → run-app-publish-command-eJcYGb8S.cjs} +1 -1
  78. package/dist/chunks/{run-app-pull-command-DljZP4Ey.cjs → run-app-pull-command-BV2cMuLU.cjs} +1 -1
  79. package/dist/chunks/{run-app-translations-extract-command-Cc053lZ6.cjs → run-app-translations-extract-command-CBBbk_vJ.cjs} +1 -1
  80. package/dist/chunks/{run-app-typecheck-command-B7o20_BR.cjs → run-app-typecheck-command-pAHhuBGo.cjs} +1 -1
  81. package/dist/chunks/{run-app-uninstall-command-DJsWZtoI.cjs → run-app-uninstall-command-C5um6udQ.cjs} +1 -1
  82. package/dist/chunks/{run-auth-login-command-21pHzpvT.cjs → run-auth-login-command-C4VI44Xu.cjs} +1 -1
  83. package/dist/chunks/{run-auth-logout-command-DWOafJmL.cjs → run-auth-logout-command-5Tvqclki.cjs} +1 -1
  84. package/dist/chunks/{run-auth-status-command-BBAcouvs.cjs → run-auth-status-command-CLH1bylR.cjs} +1 -1
  85. package/dist/chunks/{run-cli-D1VWVXar.cjs → run-cli-BA0FsxzB.cjs} +1 -1
  86. package/dist/chunks/{run-commands-command-6x3V48LL.cjs → run-commands-command-CjzkTcrO.cjs} +1 -1
  87. package/dist/chunks/{run-data-get-command-DrgvC-zi.cjs → run-data-get-command-DoZIpf8O.cjs} +1 -1
  88. package/dist/chunks/{run-data-list-command-Cs8GAHbD.cjs → run-data-list-command-DAoplyqj.cjs} +1 -1
  89. package/dist/chunks/{run-doctor-command-BM4pkNY0.cjs → run-doctor-command-D8cpt7FI.cjs} +1 -1
  90. package/dist/chunks/{run-metadata-field-describe-command-CrmzNFh8.cjs → run-metadata-field-describe-command-BrZYIhjH.cjs} +1 -1
  91. package/dist/chunks/{run-metadata-field-list-command-B2CbERvZ.cjs → run-metadata-field-list-command-C9-pHXbx.cjs} +1 -1
  92. package/dist/chunks/{run-metadata-object-describe-command-PLt5ySLJ.cjs → run-metadata-object-describe-command-WFdGu1Iq.cjs} +1 -1
  93. package/dist/chunks/{run-metadata-object-list-command-BcnWKmgh.cjs → run-metadata-object-list-command-8UKU3cMW.cjs} +1 -1
  94. package/dist/chunks/{run-open-command-CzMO5wI4.cjs → run-open-command-B1pdHp36.cjs} +1 -1
  95. package/dist/chunks/{run-remote-list-command-37zf0rSp.cjs → run-remote-list-command-BRPcCOKx.cjs} +1 -1
  96. package/dist/chunks/{run-remote-remove-command-B-XUqYBY.cjs → run-remote-remove-command-CS6za2Pm.cjs} +1 -1
  97. package/dist/chunks/{run-remote-rename-command-Bmg3nZfB.cjs → run-remote-rename-command-BOqWQUR4.cjs} +1 -1
  98. package/dist/chunks/{run-remote-use-command-r2NUlgWw.cjs → run-remote-use-command-BANiokD-.cjs} +1 -1
  99. package/dist/chunks/{run-version-command-DfDcA927.cjs → run-version-command-C0xgcPP6.cjs} +1 -1
  100. package/dist/chunks/{select-target-CEy96CC9.cjs → select-target-CfuNLCQL.cjs} +1 -1
  101. package/dist/chunks/{sign-in-to-remote-again-9cHGpXda.cjs → sign-in-to-remote-again-DYCWIDa9.cjs} +1 -1
  102. package/dist/chunks/{sign-in-with-browser-StQ_Fkku.cjs → sign-in-with-browser-Ck4tOxtA.cjs} +1 -1
  103. package/dist/chunks/{to-public-target-T4zHrdLQ.cjs → to-public-target-C0POrVoG.cjs} +1 -1
  104. package/dist/chunks/{to-worker-output-diagnostics-BeJKIsDG.cjs → to-worker-output-diagnostics-Bt_acI26.cjs} +1 -1
  105. package/dist/chunks/{typecheck-application-DLdoLIDx.cjs → typecheck-application-DEO1SVdO.cjs} +1 -1
  106. package/dist/chunks/{update-config-CNOHxgkF.cjs → update-config-FzOzO3wZ.cjs} +1 -1
  107. package/dist/chunks/{utils-BEfQWzTA-z2Y1wZJq.cjs → utils-ZOESAfF8-ub6jPiZ-.cjs} +1 -1
  108. package/dist/chunks/{write-config-atomically-gr2Ldzm8.cjs → write-config-atomically-C-YMKq3P.cjs} +1 -1
  109. package/dist/cli.cjs +1 -1
  110. package/package.json +2 -2
  111. package/dist/chunks/application-VJqniwXy.cjs +0 -5
  112. package/dist/chunks/cli-version.constant-BJdY4dXs.cjs +0 -1
  113. package/dist/chunks/compile-application-translations-Dhfvrs__.cjs +0 -1
  114. package/dist/chunks/create-metadata-client-DEBMHFDo.cjs +0 -6
  115. package/dist/chunks/extract-manifest-from-file-D3w7Ampa.cjs +0 -1
  116. package/dist/chunks/format-body-CJyi3Ukr.cjs +0 -1
  117. package/dist/chunks/format-progress-line-C5nYDVHB.cjs +0 -1
  118. package/dist/chunks/is-supported-locale-C9iuFQ39.cjs +0 -1
  119. package/dist/chunks/metadata-BtOyR6x0.cjs +0 -1
@@ -0,0 +1 @@
1
+ var e=`2.49.0`;Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return e}});
@@ -1 +1 @@
1
- const e=require("./build-CX6FBrbu.cjs"),t=require("./locale-catalog-format-BT6ommA1.cjs");let n=require("node:fs/promises"),r=require("typescript");r=e.i(r);var i=(e,t)=>t!==void 0&&t.length>0?`${t}${e}`:e,a=e=>e.replace(/\s+/g,` `).trim(),o=new Set([`t`,`msg`]),s=`Trans`,c=e=>{if(e!==void 0&&(r.isStringLiteral(e)||r.isNoSubstitutionTemplateLiteral(e)))return e.text},l=e=>{if(e===void 0)return;let t=c(e);if(t!==void 0)return{message:t};if(!r.isObjectLiteralExpression(e))return;let n=e.properties.find(e=>e.name!==void 0&&r.isIdentifier(e.name)&&e.name.text===`message`);if(n===void 0||!r.isPropertyAssignment(n))return;let i=c(n.initializer);if(i===void 0)return;let a=e.properties.find(e=>e.name!==void 0&&r.isIdentifier(e.name)&&e.name.text===`context`),o=a!==void 0&&r.isPropertyAssignment(a)?c(a.initializer):void 0;return o===void 0?{message:i}:{message:i,context:o}},u=(e,t)=>{let n=e.attributes.properties.find(e=>r.isJsxAttribute(e)&&e.name.getText()===t);if(n===void 0||!r.isJsxAttribute(n))return;let i=n.initializer;if(i!==void 0){if(r.isStringLiteral(i))return i.text;if(r.isJsxExpression(i))return c(i.expression)}},d=e=>{let t=e.children;if(t.some(e=>r.isJsxExpression(e)||r.isJsxElement(e)||r.isJsxSelfClosingElement(e)))return;let n=a(t.filter(e=>r.isJsxText(e)).map(e=>e.getText()).join(``));return n.length>0?n:void 0},f=e=>{let t=new Map;for(let n of e)t.set(i(n.message,n.context),n);return[...t.values()]},p=async e=>{if(e.length===0)return[];let t=[];for(let i=0;i<e.length;i++){let a;try{a=await(0,n.readFile)(e[i],`utf8`)}catch{continue}let c=r.createSourceFile(`front-component-${i}.tsx`,a,r.ScriptTarget.Latest,!0,r.ScriptKind.TSX),f=e=>{if(r.isCallExpression(e)){let n=e.expression;if(r.isIdentifier(n)&&o.has(n.text)){let n=l(e.arguments[0]);n!==void 0&&t.push(n)}return}if(r.isJsxSelfClosingElement(e)){if(e.tagName.getText()!==s)return;let n=u(e,`message`);if(n!==void 0&&n.length>0){let r=u(e,`context`);t.push(r===void 0?{message:n}:{message:n,context:r})}return}if(r.isJsxElement(e)){let n=e.openingElement;if(n.tagName.getText()!==s)return;let r=u(n,`message`)??d(e);if(r!==void 0&&r.length>0){let e=u(n,`context`);t.push(e===void 0?{message:r}:{message:r,context:e})}}},p=e=>{f(e),r.forEachChild(e,p)};r.forEachChild(c,p)}return f(t)},m={objectMetadata:`objects`,fieldMetadata:`fields`,view:`views`,pageLayout:`pageLayouts`,pageLayoutTab:`pageLayoutTabs`,pageLayoutWidget:`pageLayoutWidgets`,commandMenuItem:`commandMenuItems`,navigationMenuItem:`navigationMenuItems`,timelineActivityType:`timelineActivityTypes`,settingsMenuItem:`settingsMenuItems`},h=e=>{let n=new Map,r=(e,r)=>{if(!(typeof e!=`object`||!e))for(let i of t.r[r]){let a=e[i];if(typeof a!=`string`||a.length===0)continue;let o=t.a(r,i);n.set(JSON.stringify([o,a]),{message:a,context:o})}};for(let[t,n]of Object.entries(m)){let i=e[n];if(Array.isArray(i))for(let e of i)r(e,t)}for(let t of e.objects??[])for(let e of t.fields??[])r(e,`fieldMetadata`);for(let t of e.pageLayouts??[])for(let e of t.tabs??[]){r(e,`pageLayoutTab`);for(let t of e.widgets??[])r(t,`pageLayoutWidget`)}for(let t of e.pageLayoutTabs??[])for(let e of t.widgets??[])r(e,`pageLayoutWidget`);return[...n.values()]};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./locale-catalog-format-rg5FMb7l.cjs");let n=require("node:fs/promises"),r=require("typescript");r=e.i(r);var i=(e,t)=>t!==void 0&&t.length>0?`${t}${e}`:e,a=e=>e.replace(/\s+/g,` `).trim(),o=new Set([`t`,`msg`]),s=`Trans`,c=e=>{if(e!==void 0&&(r.isStringLiteral(e)||r.isNoSubstitutionTemplateLiteral(e)))return e.text},l=e=>{if(e===void 0)return;let t=c(e);if(t!==void 0)return{message:t};if(!r.isObjectLiteralExpression(e))return;let n=e.properties.find(e=>e.name!==void 0&&r.isIdentifier(e.name)&&e.name.text===`message`);if(n===void 0||!r.isPropertyAssignment(n))return;let i=c(n.initializer);if(i===void 0)return;let a=e.properties.find(e=>e.name!==void 0&&r.isIdentifier(e.name)&&e.name.text===`context`),o=a!==void 0&&r.isPropertyAssignment(a)?c(a.initializer):void 0;return o===void 0?{message:i}:{message:i,context:o}},u=(e,t)=>{let n=e.attributes.properties.find(e=>r.isJsxAttribute(e)&&e.name.getText()===t);if(n===void 0||!r.isJsxAttribute(n))return;let i=n.initializer;if(i!==void 0){if(r.isStringLiteral(i))return i.text;if(r.isJsxExpression(i))return c(i.expression)}},d=e=>{let t=e.children;if(t.some(e=>r.isJsxExpression(e)||r.isJsxElement(e)||r.isJsxSelfClosingElement(e)))return;let n=a(t.filter(e=>r.isJsxText(e)).map(e=>e.getText()).join(``));return n.length>0?n:void 0},f=e=>{let t=new Map;for(let n of e)t.set(i(n.message,n.context),n);return[...t.values()]},p=async e=>{if(e.length===0)return[];let t=[];for(let i=0;i<e.length;i++){let a;try{a=await(0,n.readFile)(e[i],`utf8`)}catch{continue}let c=r.createSourceFile(`front-component-${i}.tsx`,a,r.ScriptTarget.Latest,!0,r.ScriptKind.TSX),f=e=>{if(r.isCallExpression(e)){let n=e.expression;if(r.isIdentifier(n)&&o.has(n.text)){let n=l(e.arguments[0]);n!==void 0&&t.push(n)}return}if(r.isJsxSelfClosingElement(e)){if(e.tagName.getText()!==s)return;let n=u(e,`message`);if(n!==void 0&&n.length>0){let r=u(e,`context`);t.push(r===void 0?{message:n}:{message:n,context:r})}return}if(r.isJsxElement(e)){let n=e.openingElement;if(n.tagName.getText()!==s)return;let r=u(n,`message`)??d(e);if(r!==void 0&&r.length>0){let e=u(n,`context`);t.push(e===void 0?{message:r}:{message:r,context:e})}}},p=e=>{f(e),r.forEachChild(e,p)};r.forEachChild(c,p)}return f(t)},m={objectMetadata:`objects`,fieldMetadata:`fields`,view:`views`,pageLayout:`pageLayouts`,pageLayoutTab:`pageLayoutTabs`,pageLayoutWidget:`pageLayoutWidgets`,commandMenuItem:`commandMenuItems`,navigationMenuItem:`navigationMenuItems`,timelineActivityType:`timelineActivityTypes`,settingsMenuItem:`settingsMenuItems`},h=e=>{let n=new Map,r=(e,r)=>{if(!(typeof e!=`object`||!e))for(let i of t.i[r]){let a=e[i];if(typeof a!=`string`||a.length===0)continue;let o=t.r(r,i);n.set(JSON.stringify([o,a]),{message:a,context:o})}};for(let[t,n]of Object.entries(m)){let i=e[n];if(Array.isArray(i))for(let e of i)r(e,t)}for(let t of e.objects??[])for(let e of t.fields??[])r(e,`fieldMetadata`);for(let t of e.pageLayouts??[])for(let e of t.tabs??[]){r(e,`pageLayoutTab`);for(let t of e.widgets??[])r(t,`pageLayoutWidget`)}for(let t of e.pageLayoutTabs??[])for(let e of t.widgets??[])r(e,`pageLayoutWidget`);return[...n.values()]};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
@@ -1 +1 @@
1
- const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-Du9J-8Ug-CD8GTrut.cjs"),n=require("./read-watch-input-stamp-BxeOb0vI.cjs");let r=require("node:async_hooks"),i=require("node:path"),a=require("node:fs");var o=e.r({collectWatchInputs:()=>c,getWatchInputPlugins:()=>p,recordWatchFile:()=>d,recordWatchProbe:()=>f}),s=new r.AsyncLocalStorage,c=async e=>{let t=new Map,n=new Map,r=await s.run({inputs:t,probes:n},e),a=new Set([...t.values()].filter(e=>e.kind===`file`&&e.stamp!==null).map(e=>(0,i.dirname)(e.path)));for(let[e,r]of n)a.has((0,i.dirname)(r.path))&&!t.has(e)&&t.set(e,r);return{result:r,watchInputs:[...t.values()]}},l=(e,t,r)=>{let o;try{o=(0,a.realpathSync)(t)}catch{o=(0,i.resolve)(t)}if(n.n(o))return;let s=`${r}:${o}`;if(!e.has(s)){let t={path:o,kind:r};e.set(s,{...t,stamp:n.t(t)})}return o},u=(e,t)=>{let n=(0,i.dirname)(t);for(;(0,i.dirname)(n)!==n;){try{if((0,a.statSync)(n).isDirectory()){l(e,n,`directory`);return}}catch{}n=(0,i.dirname)(n)}},d=e=>{let n=s.getStore();if(!t.Vt(n))return;let r=l(n.inputs,e,`file`);t.Vt(r)&&u(n.inputs,r)},f=e=>{let n=s.getStore();t.Vt(n)&&l(n.probes,e,`file`)},p=()=>{let e=s.getStore();if(!t.Vt(e))return[];let{inputs:n}=e;return[{name:`collect-watch-inputs`,setup:e=>{e.onLoad({filter:/.*/,namespace:`file`},({path:e})=>{let r=l(n,e,`file`);t.Vt(r)&&u(n,r)}),e.onResolve({filter:/^\./},({path:e,resolveDir:t})=>{t.length>0&&u(n,(0,i.resolve)(t,e))})}}]};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./constants-CemcuPi_-D7dbw2cv.cjs"),n=require("./read-watch-input-stamp-BxeOb0vI.cjs");let r=require("node:async_hooks"),i=require("node:path"),a=require("node:fs");var o=e.r({collectWatchInputs:()=>c,getWatchInputPlugins:()=>p,recordWatchFile:()=>d,recordWatchProbe:()=>f}),s=new r.AsyncLocalStorage,c=async e=>{let t=new Map,n=new Map,r=await s.run({inputs:t,probes:n},e),a=new Set([...t.values()].filter(e=>e.kind===`file`&&e.stamp!==null).map(e=>(0,i.dirname)(e.path)));for(let[e,r]of n)a.has((0,i.dirname)(r.path))&&!t.has(e)&&t.set(e,r);return{result:r,watchInputs:[...t.values()]}},l=(e,t,r)=>{let o;try{o=(0,a.realpathSync)(t)}catch{o=(0,i.resolve)(t)}if(n.n(o))return;let s=`${r}:${o}`;if(!e.has(s)){let t={path:o,kind:r};e.set(s,{...t,stamp:n.t(t)})}return o},u=(e,t)=>{let n=(0,i.dirname)(t);for(;(0,i.dirname)(n)!==n;){try{if((0,a.statSync)(n).isDirectory()){l(e,n,`directory`);return}}catch{}n=(0,i.dirname)(n)}},d=e=>{let n=s.getStore();if(!t.Vt(n))return;let r=l(n.inputs,e,`file`);t.Vt(r)&&u(n.inputs,r)},f=e=>{let n=s.getStore();t.Vt(n)&&l(n.probes,e,`file`)},p=()=>{let e=s.getStore();if(!t.Vt(e))return[];let{inputs:n}=e;return[{name:`collect-watch-inputs`,setup:e=>{e.onLoad({filter:/.*/,namespace:`file`},({path:e})=>{let r=l(n,e,`file`);t.Vt(r)&&u(n,r)}),e.onResolve({filter:/^\./},({path:e,resolveDir:t})=>{t.length>0&&u(n,(0,i.resolve)(t,e))})}}]};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return o}});
@@ -0,0 +1 @@
1
+ const e=require("./build-CX6FBrbu.cjs"),t=require("./utils-ZOESAfF8-ub6jPiZ-.cjs"),n=require("./constants-CemcuPi_-D7dbw2cv.cjs"),r=require("./application-BE-X21OV.cjs"),i=require("./fs-utils-Bl1fQcaJ.cjs"),a=require("./list-application-source-files-jEau5Rie.cjs"),o=require("./extract-manifest-from-file-mvb6OhWm.cjs"),s=require("./metadata-Vepr2xeA.cjs"),c=require("./locale-catalog-format-rg5FMb7l.cjs"),l=require("./constants-Cf5-CwMu.cjs"),u=require("./is-supported-locale-BOZxTj7r.cjs");let d=require("node:fs/promises"),f=require("node:path"),p=require("node:fs"),m=require("tinyglobby"),h=require("typescript");h=e.i(h);let g=require("path");g=e.i(g);var _=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;function v(e){return typeof e==`string`&&_.test(e)}function y(e){if(!v(e))throw TypeError(`Invalid UUID`);let t;return Uint8Array.of((t=parseInt(e.slice(0,8),16))>>>24,t>>>16&255,t>>>8&255,t&255,(t=parseInt(e.slice(9,13),16))>>>8,t&255,(t=parseInt(e.slice(14,18),16))>>>8,t&255,(t=parseInt(e.slice(19,23),16))>>>8,t&255,(t=parseInt(e.slice(24,36),16))/1099511627776&255,t/4294967296&255,t>>>24&255,t>>>16&255,t>>>8&255,t&255)}var b=[];for(let e=0;e<256;++e)b.push((e+256).toString(16).slice(1));function ee(e,t=0){return(b[e[t+0]]+b[e[t+1]]+b[e[t+2]]+b[e[t+3]]+`-`+b[e[t+4]]+b[e[t+5]]+`-`+b[e[t+6]]+b[e[t+7]]+`-`+b[e[t+8]]+b[e[t+9]]+`-`+b[e[t+10]]+b[e[t+11]]+b[e[t+12]]+b[e[t+13]]+b[e[t+14]]+b[e[t+15]]).toLowerCase()}function te(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 ne=`6ba7b810-9dad-11d1-80b4-00c04fd430c8`,x=`6ba7b811-9dad-11d1-80b4-00c04fd430c8`;function S(e,t,n,r,i,a){let o=typeof n==`string`?te(n):n,s=typeof r==`string`?y(r):r;if(typeof r==`string`&&(r=y(r)),r?.length!==16)throw TypeError(`Namespace must be array-like (16 iterable integer values, 0-255)`);let c=new Uint8Array(16+o.length);if(c.set(s),c.set(o,s.length),c=t(c),c[6]=c[6]&15|e,c[8]=c[8]&63|128,i){if(a||=0,a<0||a+16>i.length)throw RangeError(`UUID byte range ${a}:${a+15} is out of buffer bounds`);for(let e=0;e<16;++e)i[a+e]=c[e];return i}return ee(c)}function re(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 C(e,t){return e<<t|e>>>32-t}function ie(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]=C(r[e-3]^r[e-8]^r[e-14]^r[e-16],1);let i=n[0],a=n[1],s=n[2],c=n[3],l=n[4];for(let e=0;e<80;++e){let n=Math.floor(e/20),o=C(i,5)+re(n,a,s,c)+l+t[n]+r[e]>>>0;l=c,c=s,s=C(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]+c>>>0,n[4]=n[4]+l>>>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 w(e,t,n,r){return S(80,ie,e,t,n,r)}w.DNS=ne,w.URL=x;function ae(e){if(!v(e))throw TypeError(`Invalid UUID`);return parseInt(e.slice(14,15),16)}var T=`a80ff791-b940-4c47-a522-2bb478515415`,oe=e=>e.type!==n.ot.SELECT&&e.type!==n.ot.MULTI_SELECT||e.options===void 0||e.options===null?e:{...e,options:e.options.map(t=>({...t,id:t.id??w(`${t.label}-${e.universalIdentifier}`,T)}))},E=({fields:e,labelIdentifierFieldMetadataUniversalIdentifier:t})=>n.Vt(t)&&!e.some(e=>e.universalIdentifier===t),D=({objectConfig:e,applicationUniversalIdentifier:t})=>({name:`name`,label:`Name`,description:`Name`,icon:`IconAbc`,isNullable:!0,defaultValue:null,type:n.ot.TEXT,universalIdentifier:r.h({applicationUniversalIdentifier:t,objectUniversalIdentifier:e.universalIdentifier,name:`name`})}),O=({objectConfig:e,applicationUniversalIdentifier:t})=>{let n=(e.fields??[]).map(e=>e.name),r=[...e.fields??[]],i=D({objectConfig:e,applicationUniversalIdentifier:t}),a=E({fields:e.fields??[],labelIdentifierFieldMetadataUniversalIdentifier:e.labelIdentifierFieldMetadataUniversalIdentifier});return!n.includes(i.name)&&!a&&r.push(i),{objectFields:r}},se=({objectConfig:e,applicationUniversalIdentifier:t})=>{let{objectFields:n}=O({objectConfig:e,applicationUniversalIdentifier:t}),r=e.labelIdentifierFieldMetadataUniversalIdentifier??n.find(e=>e.name===`name`)?.universalIdentifier;return r?{objectManifest:{...e,fields:n.map(oe),labelIdentifierFieldMetadataUniversalIdentifier:r},errors:[]}:{objectManifest:null,errors:[`No label identifier field found for object ${e.nameSingular}. Please add a field with name "name" to your object.`]}},k=e.t(),A=e=>(e?.type===`record`||e?.type===`object`)&&(0,k.isNonEmptyString)(e.objectUniversalIdentifier),j=(e,t)=>{let n=(0,k.isNonEmptyString)(e)?t?.(e):void 0;return`Id of the ${(0,k.isNonEmptyString)(n)?n:`linked`} record`},M=(e,t)=>{if(A(e))return{type:`string`,description:j(e.objectUniversalIdentifier,t)};if(e.type===`records`)return{type:`array`,items:{type:`string`,description:j(e.objectUniversalIdentifier,t)}};let{objectUniversalIdentifier:r,multiline:i,label:a,items:o,properties:s,additionalProperties:c,...l}=e,u={...l};return n.Vt(o)&&(u.items=M(o,t)),n.Vt(s)&&(u.properties=Object.fromEntries(Object.entries(s).map(([e,n])=>[e,M(n,t)]))),n.Vt(c)&&(u.additionalProperties=(0,k.isObject)(c)?M(c,t):c),u},N={type:`object`,properties:{}},P=e=>{let t={type:`unknown`};switch(e.type){case`string`:t.type=`string`;break;case`number`:case`integer`:t.type=`number`;break;case`boolean`:t.type=`boolean`;break;case`array`:t.type=`array`,e.items&&(t.items=P(e.items));break;case`object`:t.type=`object`,e.properties&&(t.properties=Object.fromEntries(Object.entries(e.properties).map(([e,t])=>[e,P(t)])));break;case`record`:t.type=`record`;break;case`records`:t.type=`records`;break;default:t.type=`unknown`}return Array.isArray(e.enum)&&(t.enum=e.enum.filter(e=>typeof e==`string`)),e.multiline===!0&&(t.multiline=!0),(0,k.isNonEmptyString)(e.label)&&(t.label=e.label),(0,k.isNonEmptyString)(e.objectUniversalIdentifier)&&(t.objectUniversalIdentifier=e.objectUniversalIdentifier),t},F=e=>[P(e)];F({type:`object`,properties:{a:{type:`string`},b:{type:`number`}}});var I=async e=>{let{getFunctionInputSchema:t}=await Promise.resolve().then(()=>require("./get-function-input-schema-GNk3NRLJ-CWNFoyKh.cjs")),r=t(e)[0];return r?.type===`object`&&n.Vt(r.properties)?{type:`object`,properties:r.properties}:N},L=e=>!n.Vt(e)||e===null?`unknown`:typeof e==`string`?`string`:typeof e==`number`?`number`:typeof e==`boolean`?`boolean`:Array.isArray(e)?`array`:`unknown`,R=e=>e?Object.entries(e).reduce((e,[t,n])=>((0,k.isObject)(n)&&!Array.isArray(n)?e[t]={isLeaf:!1,type:`object`,label:t,value:R(n)}:e[t]={isLeaf:!0,value:n,type:L(n),label:t},e),{}):{},z=(e,t)=>e?`${e}.${t}`:t,B=(e,t,r=``)=>{let i=[];for(let[a,o]of Object.entries(t)){let t=z(r,a),s=e[a];if(!n.Vt(s)){i.push(`Missing key "${t}" in declared output schema.`);continue}if(o.isLeaf!==s.isLeaf){i.push(`Type mismatch at "${t}": expected ${o.isLeaf?o.type:`object`} but declared ${s.isLeaf?s.type:`object`}.`);continue}if(!o.isLeaf&&!s.isLeaf){i.push(...B(s.value,o.value,t));continue}o.isLeaf&&s.isLeaf&&o.type!==`unknown`&&s.type!==`unknown`&&o.type!==s.type&&i.push(`Type mismatch at "${t}": expected ${o.type} but declared ${s.type}.`)}return i},V=[`string`,`number`,`boolean`,`array`,`unknown`],H=e=>V.includes(e),U=(e,t)=>{let n=t.label??e;return t.type===`record`?{isLeaf:!0,type:`string`,label:n,value:null}:t.type===`records`?{isLeaf:!0,type:`array`,label:n,value:null}:t.type===`object`?{isLeaf:!1,type:`object`,label:n,value:(0,k.isObject)(t.properties)?W(t.properties):{}}:{isLeaf:!0,type:H(t.type)?t.type:`unknown`,label:n,value:null}},W=e=>Object.entries(e).reduce((e,[t,n])=>(e[t]=U(t,n),e),{}),ce=async({logicFunctionConfig:e,sourceCode:t,sourcePath:n})=>{let{handler:r,...i}=e,a=i.toolTriggerSettings&&!i.toolTriggerSettings.inputSchema||i.workflowActionTriggerSettings&&!i.workflowActionTriggerSettings.inputSchema?await I(t):null,o=i.toolTriggerSettings?{...i.toolTriggerSettings,inputSchema:i.toolTriggerSettings.inputSchema??a??void 0}:void 0,s=i.workflowActionTriggerSettings?{...i.workflowActionTriggerSettings,inputSchema:i.workflowActionTriggerSettings.inputSchema??(a?F(a):void 0)}:void 0;return{...i,...o?{toolTriggerSettings:o}:{},...s?{workflowActionTriggerSettings:s}:{},handlerName:`default.config.handler`,sourceHandlerPath:n,builtHandlerPath:n.replace(/\.tsx?$/,`.mjs`),builtHandlerChecksum:`[default-checksum]`}},le=({frontComponentConfig:e,sourcePath:t})=>{let{component:n,...r}=e;return{...r,componentName:n.name,sourceComponentPath:t,builtComponentPath:t.replace(/\.tsx?$/,`.mjs`),builtComponentChecksum:``,isHeadless:r.isHeadless??!1}},ue=({roleConfig:e,applicationUniversalIdentifier:t})=>({...e,objectPermissions:(e.objectPermissions??[]).map(n=>({...n,universalIdentifier:n.universalIdentifier??r.t({applicationUniversalIdentifier:t,roleUniversalIdentifier:e.universalIdentifier,objectUniversalIdentifier:n.objectUniversalIdentifier})})),fieldPermissions:(e.fieldPermissions??[]).map(n=>({...n,universalIdentifier:n.universalIdentifier??r.d({applicationUniversalIdentifier:t,roleUniversalIdentifier:e.universalIdentifier,fieldUniversalIdentifier:n.fieldUniversalIdentifier})})),rowLevelPermissionPredicateGroups:e.rowLevelPermissionPredicateGroups??[],rowLevelPermissionPredicates:e.rowLevelPermissionPredicates??[],permissionFlagUniversalIdentifiers:e.permissionFlagUniversalIdentifiers??[]}),G=e=>{let t=new Set(e);return t.has(`react`)&&t.add(`react/jsx-runtime`),[...t].sort()},K=[`twenty-client-sdk`,`twenty-sdk`],q=e=>{let t=[],n=new Set;for(let r of e){if(!(0,k.isNonEmptyString)(r)){t.push(`"frontComponentSharedDependencies" entries in package.json must be non-empty strings`);continue}if(r.startsWith(`.`)||g.default.posix.isAbsolute(r)||g.default.win32.isAbsolute(r)){t.push(`Shared dependency "${r}" must be a package specifier, not a relative or absolute path`);continue}if(r===`twenty:front-component-shared-dependencies`){t.push(`Shared dependency "${r}" is reserved and cannot be shared`);continue}if(K.some(e=>r===e||r.startsWith(`${e}/`))){t.push(`Shared dependency "${r}" is already served separately and cannot be shared`);continue}if(n.has(r)){t.push(`Shared dependency "${r}" is declared twice`);continue}n.add(r)}return t},de=async e=>{let t=g.default.join(e,`package.json`);if(!await i.i(t))return{errors:[]};let n=(await i.o(t)).frontComponentSharedDependencies;if(n===void 0)return{errors:[]};if(!Array.isArray(n))return{errors:[`"frontComponentSharedDependencies" in package.json must be an array of package specifiers`]};if(!(0,k.isNonEmptyArray)(n))return{errors:[]};let a=q(n);return(0,k.isNonEmptyArray)(a)?{errors:a}:{sharedDependencies:{dependencies:G(n),builtPath:r.u,builtChecksum:null},errors:[]}},J=`pageType.isInSidePanel.isDashboardPageLayoutInEditMode.isLayoutCustomizationModeEnabled.favoriteRecordIds.isSelectAll.hasAnySoftDeleteFilterOnView.numberOfSelectedRecords.objectPermissions.selectedRecords.featureFlags.targetObjectReadPermissions.targetObjectWritePermissions.canImpersonate.canAccessFullAdminPanel.objectMetadataItem.objectMetadataLabel.isDefined.isNonEmptyString.includes.every.everyDefined.everyEquals.some.someDefined.someEquals.none.noneDefined.noneEquals.someNonEmptyString.includesEvery`.split(`.`),Y=`conditionalAvailabilityExpression`,fe=[`twenty-sdk/define`,`twenty-sdk`],X=new Set(J),pe=(e,t)=>{let r=[];for(let i of e.statements){if(!h.default.isImportDeclaration(i)||!h.default.isStringLiteral(i.moduleSpecifier)||!fe.includes(i.moduleSpecifier.text))continue;let a=i.importClause;if(!n.Vt(a)||a.phaseModifier===h.default.SyntaxKind.TypeKeyword)continue;let o=a.namedBindings;if(n.Vt(o)){if(h.default.isNamespaceImport(o)){let n=t.getSymbolAtLocation(o.name),i=e=>{h.default.isImportDeclaration(e)||h.default.isTypeNode(e)||(h.default.isPropertyAccessExpression(e)&&h.default.isIdentifier(e.expression)&&t.getSymbolAtLocation(e.expression)===n&&X.has(e.name.text)&&r.push({importedName:e.name.text,node:e}),h.default.forEachChild(e,i))};i(e);continue}if(h.default.isNamedImports(o))for(let i of o.elements){if(i.isTypeOnly)continue;let a=(i.propertyName??i.name).text;if(X.has(a)){let o=t.getSymbolAtLocation(i.name),s,c=e=>{if(!(n.Vt(s)||h.default.isImportDeclaration(e)||h.default.isTypeNode(e))){if(h.default.isIdentifier(e)){let r=h.default.isShorthandPropertyAssignment(e.parent)?t.getShorthandAssignmentValueSymbol(e.parent):t.getSymbolAtLocation(e);n.Vt(o)&&r===o&&(s=e)}h.default.forEachChild(e,c)}};c(e),n.Vt(s)&&r.push({importedName:a,node:s})}}}}return r},me=e=>{let t=!1,n=e=>{if(!t){if((h.default.isPropertyAssignment(e)||h.default.isShorthandPropertyAssignment(e))&&(h.default.isIdentifier(e.name)||h.default.isStringLiteral(e.name))&&e.name.text===Y){t=!0;return}h.default.forEachChild(e,n)}};return n(e),t},he=(e,t)=>{if(!J.some(t=>e.includes(t)))return[];let n=h.default.createSourceFile(t,e,h.default.ScriptTarget.Latest,!0,t.endsWith(`.tsx`)?h.default.ScriptKind.TSX:h.default.ScriptKind.TS);if(me(n))return[];let r={noLib:!0,noResolve:!0},i=h.default.createCompilerHost(r);return i.getSourceFile=e=>e===n.fileName?n:void 0,pe(n,h.default.createProgram([n.fileName],r,i).getTypeChecker()).map(({importedName:e,node:r})=>{let{line:i,character:a}=n.getLineAndCharacterOfPosition(r.getStart(n));return`${t}:${i+1}:${a+1} - "${e}" is a conditional-availability expression variable from twenty-sdk but this file has no ${Y}. These variables can only be used inside a command's ${Y}, not at runtime.`})},Z={canReadObjectRecords:`read`,canUpdateObjectRecords:`update`,canSoftDeleteObjectRecords:`soft-delete`,canDestroyObjectRecords:`destroy`},ge=Object.fromEntries(Object.entries(n.S).map(([e,t])=>[t,e])),_e=Object.fromEntries(Object.entries(s.n).map(([e,{universalIdentifier:t}])=>[t,e])),ve=({grant:e,objects:t,permissionFlags:n})=>{let r=e=>t.find(t=>t.universalIdentifier===e)?.nameSingular??_e[e]??e;switch(e.type){case`ALL_OBJECT_RECORDS`:return`${Z[e.action]} all object records`;case`ALL_SETTINGS`:return`update all settings`;case`ALL_TOOLS`:return`access all tools`;case`PERMISSION_FLAG`:return`permission flag ${n.find(t=>t.universalIdentifier===e.permissionFlagUniversalIdentifier)?.key??ge[e.permissionFlagUniversalIdentifier]??e.permissionFlagUniversalIdentifier}`;case`OBJECT_RECORDS`:return`${Z[e.action]} ${r(e.objectUniversalIdentifier)} records`;case`FIELD_VALUE`:return`${e.action===`canReadFieldValue`?`read`:`update`} field ${e.fieldUniversalIdentifier} of ${r(e.objectUniversalIdentifier)}`;case`ROW_LEVEL_RESTRICTION`:return`${r(e.objectUniversalIdentifier)} records without the row-level restriction`}},ye=e=>e.map(e=>`"${e}"`).join(`, `),Q=({agents:e,defaultRoleUniversalIdentifier:t})=>{let r=new Map;for(let i of e)!n.Vt(i.roleUniversalIdentifier)||i.roleUniversalIdentifier===t||r.set(i.roleUniversalIdentifier,[...r.get(i.roleUniversalIdentifier)??[],i.name]);return r},be=({applicationRole:e,defaultRoleUniversalIdentifier:t})=>n.Vt(e)?[]:[`Application default role "${t}" is not defined by this application.`],$=({agentNamesByRoleUniversalIdentifier:e,roles:t})=>[...e].filter(([e])=>!t.some(t=>t.universalIdentifier===e)).map(([e,t])=>`Agent ${ye(t)} references role "${e}", which is not defined by this application.`),xe=({agentNamesByRoleUniversalIdentifier:e,applicationRole:t,roles:i,objects:a,permissionFlags:o})=>{let s=o.filter(e=>(e.permissionType??`tool`)===`tool`).map(e=>e.universalIdentifier);return[...e].flatMap(([e,c])=>{let l=i.find(t=>t.universalIdentifier===e);if(!n.Vt(l))return[];let u=r.c({role:l,superset:t,toolPermissionFlagUniversalIdentifiers:s});if(u.length===0)return[];let d=u.map(e=>ve({grant:e,objects:a,permissionFlags:o})).join(`, `);return[`Role "${l.label}" used by agent ${ye(c)} grants more than the application role "${t.label}": ${d}. The application role must cover every permission an agent role grants.`]})},Se=({agents:e,roles:t,objects:r,permissionFlags:i,defaultRoleUniversalIdentifier:a})=>{let o=t.find(e=>e.universalIdentifier===a),s=Q({agents:e,defaultRoleUniversalIdentifier:a});return[...be({applicationRole:o,defaultRoleUniversalIdentifier:a}),...$({agentNamesByRoleUniversalIdentifier:s,roles:t}),...n.Vt(o)?xe({agentNamesByRoleUniversalIdentifier:s,applicationRole:o,roles:t,objects:r,permissionFlags:i}):[]]},Ce=({views:e,objects:r,fields:i})=>{let a=[],o=new Map;for(let e of i)o.set(e.universalIdentifier,e);for(let e of r)for(let t of e.fields)o.set(t.universalIdentifier,t);for(let r of e)for(let e of r.filters??[]){let r=o.get(e.fieldMetadataUniversalIdentifier);if(!n.Vt(r))continue;let i=(r.type===n.ot.RELATION||r.type===n.ot.MORPH_RELATION)&&n.Vt(e.relationTargetFieldMetadataUniversalIdentifier)?o.get(e.relationTargetFieldMetadataUniversalIdentifier)?.type??r.type:r.type;if(!(i in t.i))continue;let s=t.a({filterType:i,subFieldName:e.subFieldName});s.includes(e.operand)||a.push(`Operand "${e.operand}" is not supported on field "${r.name}" (type "${i}"). Supported operands: ${s.join(`, `)}.`)}return a},we=e=>{try{let t=JSON.parse((0,p.readFileSync)((0,f.join)(e,`package.json`),`utf-8`)).engines?.twenty;return typeof t==`string`&&t.trim()!==``?t.trim():null}catch{return null}},Te=e=>a.t(e),Ee=async e=>(await(0,m.glob)([`${r.r}/**/*`],{cwd:e,absolute:!0,onlyFiles:!0})).sort(),De=async e=>{try{let t=await(0,d.readFile)((0,g.join)(e,`README.md`),`utf-8`);return t.trim().length>0?t:void 0}catch{return}},Oe=async e=>{let r=await Te(e),i=await De(e),a=[],s=[],c,l=[],u=[],f=[],p=[],m=[],h=[],_=[],v=[],y=[],b=[],ee=[],te=[],ne=[],x=[],S=[],re=[],C=[],ie=[],w=[],ae=[],T=[],E=[],D=[],O=[],k=[],A=[],j=[],M=[],N=[],P=[],F=[],I=[],L=[],R=[],z=[],B=[],V=[],H=[],U=[],W=[],G=[],K=[],q=[],J=[],Y=[],fe=[],X=[],pe=[],me=[],Z=[],ge=[];for(let i of r){let r=await(0,d.readFile)(i,`utf-8`),f=(0,g.relative)(e,i);a.push(...he(r,f));let _=o.r(r);if(!_)continue;let x=o.n[_];switch(x){case`application`:{let t=await o.t({appPath:e,filePath:i});c=t.config,a.push(...t.errors),s.push(...t.warnings??[]),P.push(f);break}case`objects`:{let t=await o.t({appPath:e,filePath:i});l.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),F.push(f);break}case`fields`:{let t=await o.t({appPath:e,filePath:i}),n=oe(t.config);p.push(n),a.push(...t.errors),s.push(...t.warnings??[]),I.push(f);break}case`permissionFlags`:{let t=await o.t({appPath:e,filePath:i});h.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),R.push(f);break}case`roles`:{let t=await o.t({appPath:e,filePath:i});u.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),z.push(f),_===`defineApplicationRole`&&N.push(t.config.universalIdentifier);break}case`skills`:{let t=await o.t({appPath:e,filePath:i});v.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),B.push(f);break}case`agents`:{let t=await o.t({appPath:e,filePath:i});y.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),V.push(f);break}case`workflows`:{let t=await o.t({appPath:e,filePath:i});b.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),H.push(f);break}case`connectionProviders`:{let t=await o.t({appPath:e,filePath:i});ee.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),U.push(f);break}case`logicFunctions`:{let t=await o.t({appPath:e,filePath:i});a.push(...t.errors),s.push(...t.warnings??[]),_===`definePreInstallLogicFunction`&&n.Vt(t.config.serverRouteTriggerSettings)&&a.push(`${f}: pre-install logic functions cannot define serverRouteTriggerSettings.`);let c=await ce({logicFunctionConfig:t.config,sourceCode:r,sourcePath:f});if(te.push(c),W.push(f),_===`definePostInstallLogicFunction`){let e=t.config;O.push({universalIdentifier:t.config.universalIdentifier,shouldRunOnVersionUpgrade:e.shouldRunOnVersionUpgrade??!1,shouldRunSynchronously:e.shouldRunSynchronously??!1})}if(_===`definePreInstallLogicFunction`){let e=t.config;k.push({universalIdentifier:t.config.universalIdentifier,shouldRunOnVersionUpgrade:e.shouldRunOnVersionUpgrade??!1})}_===`defineUninstallLogicFunction`&&A.push({universalIdentifier:t.config.universalIdentifier}),_===`defineHealthCheck`&&j.push({universalIdentifier:t.config.universalIdentifier});break}case`frontComponents`:{let t=await o.t({appPath:e,filePath:i});a.push(...t.errors),s.push(...t.warnings??[]);let n=le({frontComponentConfig:t.config,sourcePath:f});ne.push(n),G.push(f),_===`defineSettingsFrontComponent`&&M.push(t.config.universalIdentifier);break}case`views`:{let t=await o.t({appPath:e,filePath:i}),n={...t.config};S.push(n),a.push(...t.errors),s.push(...t.warnings??[]),q.push(f);break}case`viewFields`:{let t=await o.t({appPath:e,filePath:i});re.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),J.push(f);break}case`navigationMenuItems`:{let t=await o.t({appPath:e,filePath:i});C.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),Y.push(f);break}case`pageLayouts`:{let t=await o.t({appPath:e,filePath:i}),n={...t.config};ie.push(n),a.push(...t.errors),s.push(...t.warnings??[]),fe.push(f);break}case`indexes`:{let t=await o.t({appPath:e,filePath:i}),n={...t.config};m.push(n),a.push(...t.errors),s.push(...t.warnings??[]),L.push(f);break}case`pageLayoutTabs`:{let t=await o.t({appPath:e,filePath:i}),n={...t.config};w.push(n),a.push(...t.errors),s.push(...t.warnings??[]),X.push(f);break}case`pageLayoutWidgets`:{let t=await o.t({appPath:e,filePath:i});ae.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),pe.push(f);break}case`commandMenuItems`:{let t=await o.t({appPath:e,filePath:i});T.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),me.push(f);break}case`timelineActivityTypes`:{let t=await o.t({appPath:e,filePath:i});E.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),Z.push(f);break}case`settingsMenuItems`:{let t=await o.t({appPath:e,filePath:i});D.push(t.config),a.push(...t.errors),s.push(...t.warnings??[]),ge.push(f);break}default:t.o(x)}}let _e=await Ee(e);for(let t of _e){let n=(0,g.relative)(e,t);x.push({filePath:n,fileName:(0,g.basename)(t),fileType:(0,g.extname)(t).replace(/^\./,``),checksum:null}),K.push(n)}if(c||a.push(`Cannot build application, please export default defineApplication() to define an application`),c){for(let e of l){let{objectManifest:t,errors:n}=se({objectConfig:e,applicationUniversalIdentifier:c.universalIdentifier});a.push(...n),t&&f.push(t)}for(let e of u)_.push(ue({roleConfig:e,applicationUniversalIdentifier:c.universalIdentifier}))}O.length>1&&a.push(`Only one post install logic function is allowed per application`),k.length>1&&a.push(`Only one pre install logic function is allowed per application`),A.length>1&&a.push(`Only one uninstall logic function is allowed per application`),j.length>1&&a.push(`Only one health check is allowed per application`),M.length>1&&a.push(`Only one settings front component is allowed per application`),N.length>1&&a.push(`Only one defineApplicationRole is allowed per application`);let{sharedDependencies:ve,errors:ye}=await de(e);a.push(...ye);let Q=c?.defaultRoleUniversalIdentifier??(N.length===1?N[0]:void 0);c&&!Q&&a.push("Application must declare a default role: either pass `defaultRoleUniversalIdentifier` to defineApplication() or mark a role file with defineApplicationRole()"),a.push(...Ce({views:S,objects:f,fields:p})),n.Vt(c)&&n.Vt(Q)&&a.push(...Se({agents:y,roles:_,objects:f,permissionFlags:h,defaultRoleUniversalIdentifier:Q}));let be=c&&Q?(()=>{let{logoUrl:t,screenshots:r,...a}=c;return{...a,logo:c.logo,galleryImages:c.galleryImages??[],defaultRoleUniversalIdentifier:Q,aboutDescription:i,yarnLockChecksum:null,packageJsonChecksum:null,requiredServerVersionRange:we(e),...O.length>=1?{postInstallLogicFunction:O[0]}:{},...k.length>=1?{preInstallLogicFunction:k[0]}:{},...A.length>=1?{uninstallLogicFunction:A[0]}:{},...j.length>=1?{healthCheckLogicFunction:j[0]}:{},...M.length>=1?{settingsFrontComponent:{universalIdentifier:M[0]}}:{},...n.Vt(ve)?{frontComponentSharedDependencies:ve}:{}}})():void 0,$=(e,t)=>e.universalIdentifier.localeCompare(t.universalIdentifier);return{manifest:be?{application:be,objects:f.sort($),fields:p.sort($),indexes:m.sort($),permissionFlags:h.sort($),roles:_.sort($),skills:v.sort($),agents:y.sort($),workflows:b.sort($),connectionProviders:ee.sort($),logicFunctions:te.sort($),frontComponents:ne.sort($),publicAssets:x.sort((e,t)=>e.filePath.localeCompare(t.filePath)),views:S.sort($),viewFields:re.sort($),navigationMenuItems:C.sort($),pageLayouts:ie.sort($),pageLayoutTabs:w.sort($),pageLayoutWidgets:ae.sort($),commandMenuItems:T.sort($),timelineActivityTypes:E.sort($),settingsMenuItems:D.sort($)}:null,filePaths:{application:P,objects:F,fields:I,indexes:L,permissionFlags:R,roles:z,skills:B,agents:V,workflows:H,connectionProviders:U,logicFunctions:W,frontComponents:G,publicAssets:K,views:q,viewFields:J,navigationMenuItems:Y,pageLayouts:fe,pageLayoutTabs:X,pageLayoutWidgets:pe,commandMenuItems:me,timelineActivityTypes:Z,settingsMenuItems:ge},errors:a,warnings:s}},ke=[n.ot.RELATION,n.ot.MORPH_RELATION],Ae=e=>ke.includes(e.type),je=e=>{let t=new Set,n=new Set;for(let r of e)t.has(r)?n.add(r):t.add(r);return Array.from(n)},Me=({manifest:e,pageLayoutWidgets:t})=>{let r=new Set([e.application.settingsFrontComponent?.universalIdentifier,...e.settingsMenuItems.map(e=>e.frontComponentUniversalIdentifier),...e.commandMenuItems.map(e=>e.frontComponentUniversalIdentifier),...e.timelineActivityTypes.map(e=>e.frontComponentUniversalIdentifier),...t.map(({configuration:e})=>n.Vt(e)&&`frontComponentUniversalIdentifier`in e?e.frontComponentUniversalIdentifier:void 0)].filter(n.Vt));return e.frontComponents.filter(e=>!e.isHeadless&&!n.Vt(e.widgetAvailability)&&!r.has(e.universalIdentifier)).map(e=>`Front component "${e.name??e.componentName}" declares no widgetAvailability, so it is not offered in any widget picker. Set widgetAvailability to let users add it to record pages or dashboards.`)},Ne=e=>{let t=[],r=[...e.pageLayouts.flatMap(({tabs:e})=>e??[]),...e.pageLayoutTabs];for(let e of r){e.layoutMode===n.J.CANVAS&&t.push(`Page layout tab "${e.title}" uses deprecated CANVAS. For a full-height widget, use VERTICAL_LIST and set the widget's heightBehavior to 'TAB_VIEWPORT'. Existing Canvas layouts remain supported and are not converted.`);for(let r of e.widgets??[])r.position?.layoutMode===n.J.VERTICAL_LIST&&t.push(`Page layout widget "${r.title}" uses a deprecated vertical-list position. Order the widgets array by position.index, remove position, and move any position.heightBehavior to heightBehavior. Existing positions remain supported and keep their indices.`),`gridPosition`in r&&n.Vt(r.gridPosition)&&t.push(`Page layout widget "${r.title}" uses deprecated gridPosition. If position is already set, it takes precedence; remove the ignored gridPosition. Use position with layoutMode: 'GRID' and the same row, column, rowSpan and columnSpan only when position is absent. Existing gridPosition remains supported as a fallback.`)}return t},Pe=[`id`,`createdAt`,`createdBy`,`updatedAt`,`updatedBy`,`deletedAt`,`position`,`searchVector`],Fe=e=>e.objects.flatMap(t=>{let i=t.labelIdentifierFieldMetadataUniversalIdentifier?.toLowerCase();return n.Vt(i)?[...(t.fields??[]).map(e=>e.universalIdentifier.toLowerCase()),...e.fields.filter(e=>e.objectUniversalIdentifier.toLowerCase()===t.universalIdentifier.toLowerCase()).map(e=>e.universalIdentifier.toLowerCase()),...Pe.map(n=>r.h({applicationUniversalIdentifier:e.application.universalIdentifier,objectUniversalIdentifier:t.universalIdentifier,name:n}))].includes(i)?[]:[`Object "${t.nameSingular}" references label field ${i}, which is not declared in this app or a recognized generated field. Check the identifier; the server must resolve this reference before applying.`]:[]}),Ie=e=>{let i=[],a=je(e.timelineActivityTypes.map(e=>e.name)),o=new Set(e.frontComponents.map(e=>e.universalIdentifier));for(let e of a)i.push(`Timeline activity type name "${e}" is used more than once. Names must be unique within an application.`);for(let a of e.timelineActivityTypes){n.Vt(a.frontComponentUniversalIdentifier)&&!o.has(a.frontComponentUniversalIdentifier)&&i.push(`Timeline activity type "${a.name}" references front component "${a.frontComponentUniversalIdentifier}", which is not defined by this application.`);let s=a.emit,c=a.replacesTimelineActivityTypeUniversalIdentifier;if(!n.Vt(s)){n.Vt(c)&&i.push(`Timeline activity type "${a.name}" declares replacesTimelineActivityTypeUniversalIdentifier without an automatic emit contract.`);continue}let l=s.through,u=l?.triggerFieldUniversalIdentifiers,d=r.a(s.objectUniversalIdentifier);d||i.push(`Timeline activity type "${a.name}" references an invalid object universal identifier "${s.objectUniversalIdentifier}".`),(s.on===`linked`||s.on===`unlinked`)&&!n.Vt(l)&&i.push(`Timeline activity type "${a.name}" must declare emit.through for a ${s.on} event.`),n.Vt(u)&&(s.on!==`updated`||!t.r(u)||new Set(u).size!==u.length)&&i.push(`Timeline activity type "${a.name}" trigger fields must be a non-empty list of unique fields on an updated through event.`);let f=d?e.objects.find(e=>e.universalIdentifier===s.objectUniversalIdentifier):void 0;if(!n.Vt(f)){d&&!n.Vt(c)&&i.push(`Timeline activity type "${a.name}" targets object "${s.objectUniversalIdentifier}", which is not defined by this application. Types targeting another application's object must declare replacesTimelineActivityTypeUniversalIdentifier.`),n.Vt(c)&&!r.a(c)&&i.push(`Timeline activity type "${a.name}" references an invalid replacement universal identifier "${c}".`),n.Vt(l)&&!r.a(l.relationFieldUniversalIdentifier)&&i.push(`Timeline activity type "${a.name}" references an invalid through relation field universal identifier "${l.relationFieldUniversalIdentifier}".`);let e=u?.filter(e=>!r.a(e))??[];e.length>0&&i.push(`Timeline activity type "${a.name}" references invalid trigger field universal identifiers: ${e.join(`, `)}.`);continue}n.Vt(c)&&i.push(`Timeline activity type "${a.name}" targets an object defined by this application and must not replace another application's type.`);let p=[...f.fields,...e.fields.filter(e=>e.objectUniversalIdentifier===f.universalIdentifier)];if(!n.Vt(l))continue;let m=p.find(e=>e.universalIdentifier===l.relationFieldUniversalIdentifier);if(n.Vt(m)?Ae(m)&&n.Vt(m.universalSettings)&&(m.universalSettings.relationType===n.B.MANY_TO_ONE||m.universalSettings.relationType===n.B.ONE_TO_MANY&&(0,k.isNonEmptyString)(m.universalSettings.junctionTargetFieldUniversalIdentifier))||i.push(`Timeline activity type "${a.name}" must route through a MANY_TO_ONE relation or a junction-backed ONE_TO_MANY relation.`):i.push(`Timeline activity type "${a.name}" references relation field "${l.relationFieldUniversalIdentifier}", which is not defined on object "${f.nameSingular}".`),n.Vt(u)){let e=new Set(p.map(e=>e.universalIdentifier)),t=u.filter(t=>!e.has(t));t.length>0&&i.push(`Timeline activity type "${a.name}" references trigger fields that are not defined on object "${f.nameSingular}": ${t.join(`, `)}.`)}}return i},Le=[n.B.MANY_TO_ONE,n.B.ONE_TO_MANY],Re=`aggregateFieldMetadataId`,ze=e=>n.Vt(e)&&n.lt.some(t=>t===e.configurationType),Be=e=>{let t=[];if(!e)return[];for(let[n,r]of Object.entries(e))n===`universalIdentifier`&&typeof r==`string`&&t.push(r),!(n===`postInstallLogicFunction`||n===`preInstallLogicFunction`||n===`uninstallLogicFunction`||n===`healthCheckLogicFunction`||n===`identifyAccountLogicFunction`||n===`onConnectLogicFunction`||n===`onDisconnectLogicFunction`||n===`settingsFrontComponent`||n===`input`||n===`expectedBody`||n===`outputSchema`||n===`expectedOutputSchema`)&&typeof r==`object`&&t.push(...Be(r));return t},Ve=e=>{let t=[];for(let r of e){if(!Ae(r))continue;let e=r.universalSettings;if(!e?.relationType){t.push(`Relation field "${r.name}" is missing relationType. ${r.type} fields must declare a relationType (${Le.join(` or `)}) in universalSettings.`);continue}if(!Le.includes(e.relationType)){t.push(`Relation field "${r.name}" has invalid relationType "${e.relationType}". Expected ${Le.join(` or `)}.`);continue}e.relationType===n.B.MANY_TO_ONE&&!e.joinColumnName&&t.push(`MANY_TO_ONE relation field "${r.name}" is missing joinColumnName. MANY_TO_ONE relations must declare a joinColumnName in universalSettings.`)}return t},He=e=>{let t=e.pageLayouts.flatMap(e=>e.tabs?.flatMap(e=>e.widgets??[])??[]),n=e.pageLayoutTabs.flatMap(e=>e.widgets??[]);return[...t,...n,...e.pageLayoutWidgets??[]]},Ue=e=>{let t=[];for(let n of e){let e=n.configuration;if(ze(e)&&!(0,k.isNonEmptyString)(e.aggregateFieldMetadataUniversalIdentifier)){let r=Re in e?` Reference the aggregate field with "aggregateFieldMetadataUniversalIdentifier" (not "${Re}").`:``;t.push(`Graph widget "${n.title}" is missing aggregateFieldMetadataUniversalIdentifier.${r}`)}}return t},We=({pageLayoutTab:e,pageLayoutType:t})=>{let n=r.i({pageLayoutTabManifest:e,pageLayoutType:t});return n.status===`fail`?n.errors:[]},Ge=e=>{let t=new Map(e.pageLayouts.map(e=>[e.universalIdentifier,e.type])),r=e.pageLayouts.flatMap(e=>(e.tabs??[]).flatMap(t=>We({pageLayoutTab:t,pageLayoutType:e.type}))),i=e.pageLayoutTabs.flatMap(e=>We({pageLayoutTab:e,pageLayoutType:n.Vt(e.pageLayoutUniversalIdentifier)?t.get(e.pageLayoutUniversalIdentifier):void 0}));return[...r,...i]},Ke=e=>{let t=[],n=new Set;for(let i of e){if(n.has(i))continue;if(n.add(i),!v(i)){t.push(`Universal identifier "${i}" is not a valid UUID.`);continue}let e=ae(i);r.a(i)||t.push(`Universal identifier "${i}" is UUID version ${e}. Only UUID version 4 or higher is allowed.`)}return t},qe=e=>{let t=[],r=He(e),i=[...Ne(e),...Fe(e),...Me({manifest:e,pageLayoutWidgets:r})],a=Be(e),o=je(a.map(e=>e.toLowerCase()));o.length>0&&t.push(`Duplicate universal identifiers: ${o.join(`, `)}`);let s=Ke(a);s.length>0&&t.push(`Invalid universal identifiers: ${s.join(`, `)}`);let c=[...e.fields,...e.objects.flatMap(e=>e.fields)];for(let e of c)if((e.type===n.ot.SELECT||e.type===n.ot.MULTI_SELECT||e.type===n.ot.RATING)&&n.Vt(e.options)){e.options.some(({id:e})=>n.Vt(e)&&!(0,k.isNonEmptyString)(e))&&t.push(`Field "${e.name}" has empty option IDs. Set distinct non-empty IDs on these options.`);let r=je(e.options.map(e=>e.id).filter(n.Vt).map(e=>e.toLowerCase()));r.length>0&&t.push(`Field "${e.name}" has duplicate option IDs: ${r.join(`, `)}. Set distinct explicit IDs on these options.`)}return t.push(...Ve(c)),t.push(...Ge(e)),t.push(...Ue(r)),t.push(...Ie(e)),{errors:t,warnings:i,isValid:t.length===0}},Je={"twenty-sdk":`"twenty-sdk" is listed under "dependencies" in package.json. It is a build-time only tool and should be moved to "devDependencies".`,"twenty-client-sdk":`"twenty-client-sdk" is listed under "dependencies" in package.json. It is provided at runtime by Twenty's injected SDK and should be moved to "devDependencies".`},Ye=async e=>{let t=g.default.join(e,`package.json`);if(!await i.i(t))return[];let r=await i.o(t);return[`dependencies`,`optionalDependencies`].flatMap(e=>Object.entries(Je).filter(([t])=>n.Vt(r[e]?.[t])).map(([,t])=>t.replace(`"dependencies"`,`"${e}"`)))},Xe=async e=>await i.i(e)&&(await(0,d.stat)(e)).size===0?[`yarn.lock is empty. Run "yarn install" to regenerate it before building.`]:[],Ze=e=>Xe(g.default.join(e,`yarn.lock`)),Qe=async e=>{let t=await Oe(e);if(t.errors.length>0||!t.manifest)return{success:!1,errors:t.errors.length>0?t.errors:[`Failed to build manifest.`]};let n=qe(t.manifest);if(!n.isValid)return{success:!1,errors:n.errors};let r=await Ze(e);if(r.length>0)return{success:!1,errors:r};let i=await Ye(e);return{success:!0,manifest:t.manifest,filePaths:t.filePaths,warnings:[...t.warnings,...n.warnings,...i]}},$e=({catalog:e,onCollision:t})=>{let r={},i=new Map;for(let{message:a,context:o,translation:s}of c.n(e)){if(s.length===0)continue;let e=n.Vt(o)?`${o} ${a}`:a,l=c.a(a,o),u=i.get(l);n.Vt(u)&&u!==e&&t?.({messageId:l,keptKey:e,droppedKey:u}),i.set(l,e),r[l]=s}return r},et=async({filePath:e,onWarning:t})=>{let r;try{r=await i.o(e)}catch{return t(`Skipping translation file "${g.default.basename(e)}": it is not valid JSON.`),null}return!n.Vt(r)||typeof r!=`object`||Array.isArray(r)?(t(`Skipping translation file "${g.default.basename(e)}": expected a JSON object.`),null):r},tt=async({appPath:e,onWarning:t})=>{let n=g.default.join(e,l.t);if(!await i.i(n))return{};let r={};for(let e of(await(0,d.readdir)(n)).filter(e=>e.endsWith(`.json`))){let i=g.default.basename(e,`.json`);if(i===`en`)continue;if(!u.t(i)){t(`Skipping compiled translation file "${e}": "${i}" is not a supported locale.`);continue}let a=await et({filePath:g.default.join(n,e),onWarning:t});if(a===null)continue;let o=Object.fromEntries(Object.entries(a).filter(e=>typeof e[1]==`string`&&e[1].length>0));Object.keys(o).length>0&&(r[i]=o)}return r},nt=async({appPath:e,onWarning:t=e=>console.warn(e)})=>{let n=g.default.join(e,l.n);if(!await i.i(n))return;let r=(await(0,d.readdir)(n)).filter(e=>e.endsWith(`.json`)),a={};for(let e of r){let r=g.default.basename(e,`.json`);if(r===`en`)continue;if(!u.t(r)){t(`Skipping translation file "${e}": "${r}" is not a supported locale.`);continue}let i=await et({filePath:g.default.join(n,e),onWarning:t});if(i===null)continue;let o=$e({catalog:i,onCollision:({messageId:n,keptKey:r,droppedKey:i})=>t(`Message id collision in "${e}": "${r}" and "${i}" share id "${n}". Keeping "${r}".`)});Object.keys(o).length>0&&(a[r]=o)}for(let[n,r]of Object.entries(await tt({appPath:e,onWarning:t})))a[n]={...r,...a[n]??{}};return a};Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $e}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return nt}});