twenty-sdk 2.9.1 → 2.10.1

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 (45) hide show
  1. package/dist/billing/index.cjs.map +1 -1
  2. package/dist/billing/index.mjs.map +1 -1
  3. package/dist/{catalog-sync-BCebNxby.js → catalog-sync-BjFX6eQu.js} +1 -1
  4. package/dist/{catalog-sync-Zp1B_jdA.mjs → catalog-sync-hdRK4nlg.mjs} +1 -1
  5. package/dist/cli/commands/dev/dev-once.d.ts +1 -0
  6. package/dist/cli/operations/dev-once.d.ts +1 -0
  7. package/dist/cli/utilities/api/api-response-type.d.ts +5 -5
  8. package/dist/cli/utilities/api/api-service.d.ts +8 -2
  9. package/dist/cli/utilities/api/application-api.d.ts +7 -1
  10. package/dist/cli/utilities/api/file-api.d.ts +2 -1
  11. package/dist/cli/utilities/build/manifest/manifest-extract-config.d.ts +2 -0
  12. package/dist/cli/utilities/dev/orchestrator/steps/format-sync-actions-summary.d.ts +3 -0
  13. package/dist/cli/utilities/dev/ui/components/dev-ui-application-panel.d.ts +2 -1
  14. package/dist/cli/utilities/dev/ui/components/dev-ui-entity-section.d.ts +3 -0
  15. package/dist/cli/utilities/dev/ui/components/dev-ui.d.ts +1 -1
  16. package/dist/cli/utilities/dev/ui/dev-ui-constants.d.ts +6 -0
  17. package/dist/cli/utilities/entity/entity-view-field-template.d.ts +3 -0
  18. package/dist/cli/utilities/error/format-manifest-validation-errors.d.ts +2 -1
  19. package/dist/cli/utilities/error/get-sync-error-recovery-hint.d.ts +1 -0
  20. package/dist/cli.cjs +117 -100
  21. package/dist/cli.mjs +2383 -2286
  22. package/dist/define/index.cjs +7 -7
  23. package/dist/define/index.cjs.map +1 -1
  24. package/dist/define/index.d.ts +181 -47
  25. package/dist/define/index.mjs +367 -247
  26. package/dist/define/index.mjs.map +1 -1
  27. package/dist/front-component/index.cjs.map +1 -1
  28. package/dist/front-component/index.mjs.map +1 -1
  29. package/dist/{get-function-input-schema-DTlcRJz3-Dv2yR3dh.mjs → get-function-input-schema-DTlcRJz3-CYRpYtm8.mjs} +1 -1
  30. package/dist/{get-function-input-schema-DTlcRJz3-dBL33k9U.js → get-function-input-schema-DTlcRJz3-Cpo6yw4B.js} +1 -1
  31. package/dist/logic-function/index.cjs +37 -1
  32. package/dist/logic-function/index.cjs.map +1 -1
  33. package/dist/logic-function/index.d.ts +33 -2
  34. package/dist/logic-function/index.mjs +97 -28
  35. package/dist/logic-function/index.mjs.map +1 -1
  36. package/dist/{login-oauth-CR6NzLmb.js → login-oauth-CU95X9A-.js} +55 -52
  37. package/dist/{login-oauth-rznAUORX.mjs → login-oauth-wSHikxei.mjs} +3608 -3414
  38. package/dist/operations.cjs +1 -1
  39. package/dist/operations.mjs +2 -2
  40. package/dist/ui/index.cjs +28 -28
  41. package/dist/ui/index.d.ts +12 -12
  42. package/dist/ui/index.mjs +7582 -7474
  43. package/dist/utils/index.cjs.map +1 -1
  44. package/dist/utils/index.mjs.map +1 -1
  45. package/package.json +5 -8
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../twenty-shared/dist/application.mjs","../../src/sdk/billing/charge-credits.ts"],"sourcesContent":["const _ = \"public\", A = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", r = \"TWENTY_APP_ACCESS_TOKEN\", t = \"generated\", N = {\n js: `import { createRequire as __createRequire } from 'module';\nconst require = __createRequire(import.meta.url);`\n}, u = \".twenty/output\", I = \"Standard\", n = \"20202020-64aa-4b6f-b003-9c74b97cee20\";\nvar e = /* @__PURE__ */ ((o) => (o.Object = \"object\", o.Field = \"field\", o.LogicFunction = \"logicFunction\", o.FrontComponent = \"frontComponent\", o.Role = \"role\", o.Skill = \"skill\", o.Agent = \"agent\", o.ConnectionProvider = \"connectionProvider\", o.View = \"view\", o.NavigationMenuItem = \"navigationMenuItem\", o.PageLayout = \"pageLayout\", o.PageLayoutTab = \"pageLayoutTab\", o.CommandMenuItem = \"commandMenuItem\", o))(e || {});\nexport {\n _ as ASSETS_DIR,\n A as DEFAULT_API_KEY_NAME,\n T as DEFAULT_API_URL_NAME,\n r as DEFAULT_APP_ACCESS_TOKEN_NAME,\n t as GENERATED_DIR,\n N as NODE_ESM_CJS_BANNER,\n u as OUTPUT_DIR,\n e as SyncableEntity,\n I as TWENTY_STANDARD_APPLICATION_NAME,\n n as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER\n};\n","import {\n DEFAULT_API_URL_NAME,\n DEFAULT_APP_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\nconst BILLING_CHARGE_TIMEOUT_MS = 5_000;\n\nexport type ChargeCreditsParams = {\n creditsUsedMicro: number;\n operationType: string;\n quantity?: number;\n resourceContext?: string;\n};\n\n// Records credit usage against the running application via the Twenty\n// server's `/app/billing/charge` endpoint. Reads `TWENTY_API_URL` and\n// `TWENTY_APP_ACCESS_TOKEN` from the execution env (injected by the\n// logic-function runtime). No-ops silently when either is missing so\n// local/test runs don't crash. Failures are non-fatal — a billing error\n// never surfaces as a tool failure.\nexport const chargeCredits = async ({\n creditsUsedMicro,\n operationType,\n quantity = 1,\n resourceContext,\n}: ChargeCreditsParams): Promise<void> => {\n const apiUrl = process.env[DEFAULT_API_URL_NAME];\n const token = process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n\n if (!apiUrl || !token) {\n return;\n }\n\n try {\n const response = await fetch(\n `${apiUrl.replace(/\\/$/, '')}/app/billing/charge`,\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n creditsUsedMicro,\n quantity,\n operationType,\n resourceContext,\n }),\n signal: AbortSignal.timeout(BILLING_CHARGE_TIMEOUT_MS),\n },\n );\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n\n console.error(\n `chargeCredits: ${response.status} ${response.statusText}: ${body}`,\n );\n }\n } catch (error) {\n console.error(\n `chargeCredits: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n};\n"],"names":["T","r","BILLING_CHARGE_TIMEOUT_MS","chargeCredits","creditsUsedMicro","operationType","quantity","resourceContext","apiUrl","DEFAULT_API_URL_NAME","token","DEFAULT_APP_ACCESS_TOKEN_NAME","response","body","error"],"mappings":"gFAAK,MAAqCA,EAAI,iBAAkBC,EAAI,0BCK9DC,EAA4B,IAerBC,EAAgB,MAAO,CAClC,iBAAAC,EACA,cAAAC,EACA,SAAAC,EAAW,EACX,gBAAAC,CACF,IAA0C,CACxC,MAAMC,EAAS,QAAQ,IAAIC,CAAoB,EACzCC,EAAQ,QAAQ,IAAIC,CAA6B,EAEvD,GAAI,GAACH,GAAU,CAACE,GAIhB,GAAI,CACF,MAAME,EAAW,MAAM,MACrB,GAAGJ,EAAO,QAAQ,MAAO,EAAE,CAAC,sBAC5B,CACE,OAAQ,OACR,QAAS,CACP,cAAe,UAAUE,CAAK,GAC9B,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CACnB,iBAAAN,EACA,SAAAE,EACA,cAAAD,EACA,gBAAAE,CAAA,CACD,EACD,OAAQ,YAAY,QAAQL,CAAyB,CAAA,CACvD,EAGF,GAAI,CAACU,EAAS,GAAI,CAChB,MAAMC,EAAO,MAAMD,EAAS,OAAO,MAAM,IAAM,EAAE,EAEjD,QAAQ,MACN,kBAAkBA,EAAS,MAAM,IAAIA,EAAS,UAAU,KAAKC,CAAI,EAAA,CAErE,CACF,OAASC,EAAO,CACd,QAAQ,MACN,kBAAkBA,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,EAAA,CAE5E,CACF"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../twenty-shared/dist/application.mjs","../../src/sdk/billing/charge-credits.ts"],"sourcesContent":["const _ = \"public\", A = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", r = \"TWENTY_APP_ACCESS_TOKEN\", N = \"generated\", t = {\n js: `import { createRequire as __createRequire } from 'module';\nconst require = __createRequire(import.meta.url);`\n}, u = \".twenty/output\", I = \"Standard\", P = \"20202020-64aa-4b6f-b003-9c74b97cee20\";\nvar o = /* @__PURE__ */ ((e) => (e.Object = \"object\", e.Field = \"field\", e.LogicFunction = \"logicFunction\", e.FrontComponent = \"frontComponent\", e.Role = \"role\", e.Skill = \"skill\", e.Agent = \"agent\", e.ConnectionProvider = \"connectionProvider\", e.View = \"view\", e.ViewField = \"viewField\", e.NavigationMenuItem = \"navigationMenuItem\", e.PageLayout = \"pageLayout\", e.PageLayoutTab = \"pageLayoutTab\", e.CommandMenuItem = \"commandMenuItem\", e))(o || {});\nexport {\n _ as ASSETS_DIR,\n A as DEFAULT_API_KEY_NAME,\n T as DEFAULT_API_URL_NAME,\n r as DEFAULT_APP_ACCESS_TOKEN_NAME,\n N as GENERATED_DIR,\n t as NODE_ESM_CJS_BANNER,\n u as OUTPUT_DIR,\n o as SyncableEntity,\n I as TWENTY_STANDARD_APPLICATION_NAME,\n P as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER\n};\n","import {\n DEFAULT_API_URL_NAME,\n DEFAULT_APP_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\nconst BILLING_CHARGE_TIMEOUT_MS = 5_000;\n\nexport type ChargeCreditsParams = {\n creditsUsedMicro: number;\n operationType: string;\n quantity?: number;\n resourceContext?: string;\n};\n\n// Records credit usage against the running application via the Twenty\n// server's `/app/billing/charge` endpoint. Reads `TWENTY_API_URL` and\n// `TWENTY_APP_ACCESS_TOKEN` from the execution env (injected by the\n// logic-function runtime). No-ops silently when either is missing so\n// local/test runs don't crash. Failures are non-fatal — a billing error\n// never surfaces as a tool failure.\nexport const chargeCredits = async ({\n creditsUsedMicro,\n operationType,\n quantity = 1,\n resourceContext,\n}: ChargeCreditsParams): Promise<void> => {\n const apiUrl = process.env[DEFAULT_API_URL_NAME];\n const token = process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n\n if (!apiUrl || !token) {\n return;\n }\n\n try {\n const response = await fetch(\n `${apiUrl.replace(/\\/$/, '')}/app/billing/charge`,\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n creditsUsedMicro,\n quantity,\n operationType,\n resourceContext,\n }),\n signal: AbortSignal.timeout(BILLING_CHARGE_TIMEOUT_MS),\n },\n );\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n\n console.error(\n `chargeCredits: ${response.status} ${response.statusText}: ${body}`,\n );\n }\n } catch (error) {\n console.error(\n `chargeCredits: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n};\n"],"names":["T","r","BILLING_CHARGE_TIMEOUT_MS","chargeCredits","creditsUsedMicro","operationType","quantity","resourceContext","apiUrl","DEFAULT_API_URL_NAME","token","DEFAULT_APP_ACCESS_TOKEN_NAME","response","body","error"],"mappings":"gFAAK,MAAqCA,EAAI,iBAAkBC,EAAI,0BCK9DC,EAA4B,IAerBC,EAAgB,MAAO,CAClC,iBAAAC,EACA,cAAAC,EACA,SAAAC,EAAW,EACX,gBAAAC,CACF,IAA0C,CACxC,MAAMC,EAAS,QAAQ,IAAIC,CAAoB,EACzCC,EAAQ,QAAQ,IAAIC,CAA6B,EAEvD,GAAI,GAACH,GAAU,CAACE,GAIhB,GAAI,CACF,MAAME,EAAW,MAAM,MACrB,GAAGJ,EAAO,QAAQ,MAAO,EAAE,CAAC,sBAC5B,CACE,OAAQ,OACR,QAAS,CACP,cAAe,UAAUE,CAAK,GAC9B,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CACnB,iBAAAN,EACA,SAAAE,EACA,cAAAD,EACA,gBAAAE,CAAA,CACD,EACD,OAAQ,YAAY,QAAQL,CAAyB,CAAA,CACvD,EAGF,GAAI,CAACU,EAAS,GAAI,CAChB,MAAMC,EAAO,MAAMD,EAAS,OAAO,MAAM,IAAM,EAAE,EAEjD,QAAQ,MACN,kBAAkBA,EAAS,MAAM,IAAIA,EAAS,UAAU,KAAKC,CAAI,EAAA,CAErE,CACF,OAASC,EAAO,CACd,QAAQ,MACN,kBAAkBA,aAAiB,MAAQA,EAAM,QAAU,OAAOA,CAAK,CAAC,EAAA,CAE5E,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../twenty-shared/dist/application.mjs","../../src/sdk/billing/charge-credits.ts"],"sourcesContent":["const _ = \"public\", A = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", r = \"TWENTY_APP_ACCESS_TOKEN\", t = \"generated\", N = {\n js: `import { createRequire as __createRequire } from 'module';\nconst require = __createRequire(import.meta.url);`\n}, u = \".twenty/output\", I = \"Standard\", n = \"20202020-64aa-4b6f-b003-9c74b97cee20\";\nvar e = /* @__PURE__ */ ((o) => (o.Object = \"object\", o.Field = \"field\", o.LogicFunction = \"logicFunction\", o.FrontComponent = \"frontComponent\", o.Role = \"role\", o.Skill = \"skill\", o.Agent = \"agent\", o.ConnectionProvider = \"connectionProvider\", o.View = \"view\", o.NavigationMenuItem = \"navigationMenuItem\", o.PageLayout = \"pageLayout\", o.PageLayoutTab = \"pageLayoutTab\", o.CommandMenuItem = \"commandMenuItem\", o))(e || {});\nexport {\n _ as ASSETS_DIR,\n A as DEFAULT_API_KEY_NAME,\n T as DEFAULT_API_URL_NAME,\n r as DEFAULT_APP_ACCESS_TOKEN_NAME,\n t as GENERATED_DIR,\n N as NODE_ESM_CJS_BANNER,\n u as OUTPUT_DIR,\n e as SyncableEntity,\n I as TWENTY_STANDARD_APPLICATION_NAME,\n n as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER\n};\n","import {\n DEFAULT_API_URL_NAME,\n DEFAULT_APP_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\nconst BILLING_CHARGE_TIMEOUT_MS = 5_000;\n\nexport type ChargeCreditsParams = {\n creditsUsedMicro: number;\n operationType: string;\n quantity?: number;\n resourceContext?: string;\n};\n\n// Records credit usage against the running application via the Twenty\n// server's `/app/billing/charge` endpoint. Reads `TWENTY_API_URL` and\n// `TWENTY_APP_ACCESS_TOKEN` from the execution env (injected by the\n// logic-function runtime). No-ops silently when either is missing so\n// local/test runs don't crash. Failures are non-fatal — a billing error\n// never surfaces as a tool failure.\nexport const chargeCredits = async ({\n creditsUsedMicro,\n operationType,\n quantity = 1,\n resourceContext,\n}: ChargeCreditsParams): Promise<void> => {\n const apiUrl = process.env[DEFAULT_API_URL_NAME];\n const token = process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n\n if (!apiUrl || !token) {\n return;\n }\n\n try {\n const response = await fetch(\n `${apiUrl.replace(/\\/$/, '')}/app/billing/charge`,\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n creditsUsedMicro,\n quantity,\n operationType,\n resourceContext,\n }),\n signal: AbortSignal.timeout(BILLING_CHARGE_TIMEOUT_MS),\n },\n );\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n\n console.error(\n `chargeCredits: ${response.status} ${response.statusText}: ${body}`,\n );\n }\n } catch (error) {\n console.error(\n `chargeCredits: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n};\n"],"names":["T","r","chargeCredits","creditsUsedMicro","operationType","quantity","resourceContext","apiUrl","DEFAULT_API_URL_NAME","token","DEFAULT_APP_ACCESS_TOKEN_NAME","response","body","error"],"mappings":"AAAK,MAAqCA,IAAI,kBAAkBC,IAAI;ACoB7D,MAAMC,IAAgB,OAAO;AAAA,EAClC,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,iBAAAC;AACF,MAA0C;AACxC,QAAMC,IAAS,QAAQ,IAAIC,CAAoB,GACzCC,IAAQ,QAAQ,IAAIC,CAA6B;AAEvD,MAAI,GAACH,KAAU,CAACE;AAIhB,QAAI;AACF,YAAME,IAAW,MAAM;AAAA,QACrB,GAAGJ,EAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QAC5B;AAAA,UACE,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,eAAe,UAAUE,CAAK;AAAA,YAC9B,gBAAgB;AAAA,UAAA;AAAA,UAElB,MAAM,KAAK,UAAU;AAAA,YACnB,kBAAAN;AAAA,YACA,UAAAE;AAAA,YACA,eAAAD;AAAA,YACA,iBAAAE;AAAA,UAAA,CACD;AAAA,UACD,QAAQ,YAAY,QAAQ,GAAyB;AAAA,QAAA;AAAA,MACvD;AAGF,UAAI,CAACK,EAAS,IAAI;AAChB,cAAMC,IAAO,MAAMD,EAAS,OAAO,MAAM,MAAM,EAAE;AAEjD,gBAAQ;AAAA,UACN,kBAAkBA,EAAS,MAAM,IAAIA,EAAS,UAAU,KAAKC,CAAI;AAAA,QAAA;AAAA,MAErE;AAAA,IACF,SAASC,GAAO;AACd,cAAQ;AAAA,QACN,kBAAkBA,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,MAAA;AAAA,IAE5E;AACF;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../twenty-shared/dist/application.mjs","../../src/sdk/billing/charge-credits.ts"],"sourcesContent":["const _ = \"public\", A = \"TWENTY_API_KEY\", T = \"TWENTY_API_URL\", r = \"TWENTY_APP_ACCESS_TOKEN\", N = \"generated\", t = {\n js: `import { createRequire as __createRequire } from 'module';\nconst require = __createRequire(import.meta.url);`\n}, u = \".twenty/output\", I = \"Standard\", P = \"20202020-64aa-4b6f-b003-9c74b97cee20\";\nvar o = /* @__PURE__ */ ((e) => (e.Object = \"object\", e.Field = \"field\", e.LogicFunction = \"logicFunction\", e.FrontComponent = \"frontComponent\", e.Role = \"role\", e.Skill = \"skill\", e.Agent = \"agent\", e.ConnectionProvider = \"connectionProvider\", e.View = \"view\", e.ViewField = \"viewField\", e.NavigationMenuItem = \"navigationMenuItem\", e.PageLayout = \"pageLayout\", e.PageLayoutTab = \"pageLayoutTab\", e.CommandMenuItem = \"commandMenuItem\", e))(o || {});\nexport {\n _ as ASSETS_DIR,\n A as DEFAULT_API_KEY_NAME,\n T as DEFAULT_API_URL_NAME,\n r as DEFAULT_APP_ACCESS_TOKEN_NAME,\n N as GENERATED_DIR,\n t as NODE_ESM_CJS_BANNER,\n u as OUTPUT_DIR,\n o as SyncableEntity,\n I as TWENTY_STANDARD_APPLICATION_NAME,\n P as TWENTY_STANDARD_APPLICATION_UNIVERSAL_IDENTIFIER\n};\n","import {\n DEFAULT_API_URL_NAME,\n DEFAULT_APP_ACCESS_TOKEN_NAME,\n} from 'twenty-shared/application';\n\nconst BILLING_CHARGE_TIMEOUT_MS = 5_000;\n\nexport type ChargeCreditsParams = {\n creditsUsedMicro: number;\n operationType: string;\n quantity?: number;\n resourceContext?: string;\n};\n\n// Records credit usage against the running application via the Twenty\n// server's `/app/billing/charge` endpoint. Reads `TWENTY_API_URL` and\n// `TWENTY_APP_ACCESS_TOKEN` from the execution env (injected by the\n// logic-function runtime). No-ops silently when either is missing so\n// local/test runs don't crash. Failures are non-fatal — a billing error\n// never surfaces as a tool failure.\nexport const chargeCredits = async ({\n creditsUsedMicro,\n operationType,\n quantity = 1,\n resourceContext,\n}: ChargeCreditsParams): Promise<void> => {\n const apiUrl = process.env[DEFAULT_API_URL_NAME];\n const token = process.env[DEFAULT_APP_ACCESS_TOKEN_NAME];\n\n if (!apiUrl || !token) {\n return;\n }\n\n try {\n const response = await fetch(\n `${apiUrl.replace(/\\/$/, '')}/app/billing/charge`,\n {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n creditsUsedMicro,\n quantity,\n operationType,\n resourceContext,\n }),\n signal: AbortSignal.timeout(BILLING_CHARGE_TIMEOUT_MS),\n },\n );\n\n if (!response.ok) {\n const body = await response.text().catch(() => '');\n\n console.error(\n `chargeCredits: ${response.status} ${response.statusText}: ${body}`,\n );\n }\n } catch (error) {\n console.error(\n `chargeCredits: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n};\n"],"names":["T","r","chargeCredits","creditsUsedMicro","operationType","quantity","resourceContext","apiUrl","DEFAULT_API_URL_NAME","token","DEFAULT_APP_ACCESS_TOKEN_NAME","response","body","error"],"mappings":"AAAK,MAAqCA,IAAI,kBAAkBC,IAAI;ACoB7D,MAAMC,IAAgB,OAAO;AAAA,EAClC,kBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,iBAAAC;AACF,MAA0C;AACxC,QAAMC,IAAS,QAAQ,IAAIC,CAAoB,GACzCC,IAAQ,QAAQ,IAAIC,CAA6B;AAEvD,MAAI,GAACH,KAAU,CAACE;AAIhB,QAAI;AACF,YAAME,IAAW,MAAM;AAAA,QACrB,GAAGJ,EAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QAC5B;AAAA,UACE,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,eAAe,UAAUE,CAAK;AAAA,YAC9B,gBAAgB;AAAA,UAAA;AAAA,UAElB,MAAM,KAAK,UAAU;AAAA,YACnB,kBAAAN;AAAA,YACA,UAAAE;AAAA,YACA,eAAAD;AAAA,YACA,iBAAAE;AAAA,UAAA,CACD;AAAA,UACD,QAAQ,YAAY,QAAQ,GAAyB;AAAA,QAAA;AAAA,MACvD;AAGF,UAAI,CAACK,EAAS,IAAI;AAChB,cAAMC,IAAO,MAAMD,EAAS,OAAO,MAAM,MAAM,EAAE;AAEjD,gBAAQ;AAAA,UACN,kBAAkBA,EAAS,MAAM,IAAIA,EAAS,UAAU,KAAKC,CAAI;AAAA,QAAA;AAAA,MAErE;AAAA,IACF,SAASC,GAAO;AACd,cAAQ;AAAA,QACN,kBAAkBA,aAAiB,QAAQA,EAAM,UAAU,OAAOA,CAAK,CAAC;AAAA,MAAA;AAAA,IAE5E;AACF;"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./login-oauth-CR6NzLmb.js"),l=require("chalk"),n=e=>e&&e.__esModule?e:{default:e},a=n(l);class s{async execute(c){c.remote&&o.ConfigService.setActiveRemote(c.remote);const r=o.ConfigService.getActiveRemote();console.log(a.default.blue(`Syncing marketplace catalog on ${r}...`));const t=await new o.ApiService().syncMarketplaceCatalog();t.success||(console.error(a.default.red(`Catalog sync failed: ${t.error instanceof Error?t.error.message:String(t.error)}`)),process.exit(1)),console.log(a.default.green("✓ Marketplace catalog synced successfully"))}}exports.CatalogSyncCommand=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./login-oauth-CU95X9A-.js"),l=require("chalk"),n=e=>e&&e.__esModule?e:{default:e},a=n(l);class s{async execute(c){c.remote&&o.ConfigService.setActiveRemote(c.remote);const r=o.ConfigService.getActiveRemote();console.log(a.default.blue(`Syncing marketplace catalog on ${r}...`));const t=await new o.ApiService().syncMarketplaceCatalog();t.success||(console.error(a.default.red(`Catalog sync failed: ${t.error instanceof Error?t.error.message:String(t.error)}`)),process.exit(1)),console.log(a.default.green("✓ Marketplace catalog synced successfully"))}}exports.CatalogSyncCommand=s;
@@ -1,4 +1,4 @@
1
- import { C as c, A as t } from "./login-oauth-rznAUORX.mjs";
1
+ import { C as c, A as t } from "./login-oauth-wSHikxei.mjs";
2
2
  import r from "chalk";
3
3
  class m {
4
4
  async execute(o) {
@@ -1,6 +1,7 @@
1
1
  export type AppDevOnceCommandOptions = {
2
2
  appPath?: string;
3
3
  verbose?: boolean;
4
+ dryRun?: boolean;
4
5
  };
5
6
  export declare class AppDevOnceCommand {
6
7
  execute(options: AppDevOnceCommandOptions): Promise<void>;
@@ -2,6 +2,7 @@ import { type CommandResult } from '../../cli/types';
2
2
  export type AppDevOnceOptions = {
3
3
  appPath: string;
4
4
  verbose?: boolean;
5
+ dryRun?: boolean;
5
6
  onProgress?: (message: string) => void;
6
7
  };
7
8
  export type AppDevOnceResult = {
@@ -1,12 +1,12 @@
1
- type SuccessfulApiResponse<T = unknown> = {
1
+ type SuccessfulApiResponse<TData = unknown> = {
2
2
  success: true;
3
- data: T;
3
+ data: TData;
4
4
  message?: string;
5
5
  };
6
- type FailingApiResponse = {
6
+ type FailingApiResponse<TError = unknown> = {
7
7
  success: false;
8
- error?: unknown;
8
+ error?: TError;
9
9
  message?: string;
10
10
  };
11
- export type ApiResponse<T = unknown> = SuccessfulApiResponse<T> | FailingApiResponse;
11
+ export type ApiResponse<TData = unknown, TError = unknown> = SuccessfulApiResponse<TData> | FailingApiResponse<TError>;
12
12
  export {};
@@ -3,6 +3,7 @@ import { ApplicationApi } from '../../../cli/utilities/api/application-api';
3
3
  import { FileApi } from '../../../cli/utilities/api/file-api';
4
4
  import { LogicFunctionApi } from '../../../cli/utilities/api/logic-function-api';
5
5
  import { type Manifest } from 'twenty-shared/application';
6
+ import { type MetadataValidationErrorResponse, type SyncAction } from 'twenty-shared/metadata';
6
7
  type ApiServiceOptions = {
7
8
  disableInterceptors?: boolean;
8
9
  serverUrl?: string;
@@ -43,7 +44,12 @@ export declare class ApiService {
43
44
  id: string;
44
45
  universalIdentifier: string;
45
46
  }>>;
46
- syncApplication(manifest: Manifest): Promise<ApiResponse>;
47
+ syncApplication(manifest: Manifest, options?: {
48
+ dryRun?: boolean;
49
+ }): Promise<ApiResponse<{
50
+ applicationUniversalIdentifier: string;
51
+ actions: SyncAction[];
52
+ }, MetadataValidationErrorResponse>>;
47
53
  uninstallApplication(universalIdentifier: string): Promise<ApiResponse>;
48
54
  syncMarketplaceCatalog(): Promise<ApiResponse<boolean>>;
49
55
  getSchema(options?: {
@@ -75,7 +81,7 @@ export declare class ApiService {
75
81
  universalIdentifier: string;
76
82
  name: string;
77
83
  }>>;
78
- installTarballApp(...args: Parameters<FileApi['installTarballApp']>): Promise<ApiResponse<boolean>>;
84
+ installTarballApp(...args: Parameters<FileApi['installTarballApp']>): Promise<ApiResponse<boolean, MetadataValidationErrorResponse>>;
79
85
  uploadFile(...args: Parameters<FileApi['uploadFile']>): Promise<ApiResponse<boolean>>;
80
86
  }
81
87
  export {};
@@ -1,6 +1,7 @@
1
1
  import { type ApiResponse } from '../../../cli/utilities/api/api-response-type';
2
2
  import { type AxiosInstance } from 'axios';
3
3
  import { type Manifest } from 'twenty-shared/application';
4
+ import { type MetadataValidationErrorResponse, type SyncAction } from 'twenty-shared/metadata';
4
5
  export declare class ApplicationApi {
5
6
  private readonly client;
6
7
  constructor(client: AxiosInstance);
@@ -32,6 +33,11 @@ export declare class ApplicationApi {
32
33
  id: string;
33
34
  universalIdentifier: string;
34
35
  }>>;
35
- syncApplication(manifest: Manifest): Promise<ApiResponse>;
36
+ syncApplication(manifest: Manifest, options?: {
37
+ dryRun?: boolean;
38
+ }): Promise<ApiResponse<{
39
+ applicationUniversalIdentifier: string;
40
+ actions: SyncAction[];
41
+ }, MetadataValidationErrorResponse>>;
36
42
  uninstallApplication(universalIdentifier: string): Promise<ApiResponse>;
37
43
  }
@@ -1,5 +1,6 @@
1
1
  import { type ApiResponse } from '../../../cli/utilities/api/api-response-type';
2
2
  import { type AxiosInstance } from 'axios';
3
+ import { type MetadataValidationErrorResponse } from 'twenty-shared/metadata';
3
4
  import { type FileFolder } from 'twenty-shared/types';
4
5
  export declare class FileApi {
5
6
  private readonly client;
@@ -14,7 +15,7 @@ export declare class FileApi {
14
15
  }>>;
15
16
  installTarballApp({ universalIdentifier }: {
16
17
  universalIdentifier: string;
17
- }): Promise<ApiResponse<boolean>>;
18
+ }): Promise<ApiResponse<boolean, MetadataValidationErrorResponse>>;
18
19
  uploadFile({ filePath, builtHandlerPath, fileFolder, applicationUniversalIdentifier }: {
19
20
  filePath: string;
20
21
  builtHandlerPath: string;
@@ -14,6 +14,7 @@ export declare enum TargetFunction {
14
14
  DefineConnectionProvider = "defineConnectionProvider",
15
15
  DefineFrontComponent = "defineFrontComponent",
16
16
  DefineView = "defineView",
17
+ DefineViewField = "defineViewField",
17
18
  DefineNavigationMenuItem = "defineNavigationMenuItem",
18
19
  DefinePageLayout = "definePageLayout",
19
20
  DefinePageLayoutTab = "definePageLayoutTab",
@@ -33,6 +34,7 @@ export declare enum ManifestEntityKey {
33
34
  FrontComponents = "frontComponents",
34
35
  PublicAssets = "publicAssets",
35
36
  Views = "views",
37
+ ViewFields = "viewFields",
36
38
  NavigationMenuItems = "navigationMenuItems",
37
39
  PageLayouts = "pageLayouts",
38
40
  PageLayoutTabs = "pageLayoutTabs",
@@ -0,0 +1,3 @@
1
+ import { type OrchestratorStateStepEvent } from '../../../../../cli/utilities/dev/orchestrator/dev-mode-orchestrator-state';
2
+ import { type SyncAction } from 'twenty-shared/metadata';
3
+ export declare const formatSyncActionsSummary: (actions: SyncAction[] | undefined) => OrchestratorStateStepEvent[];
@@ -7,6 +7,7 @@ export declare const DevUiStepStatusLabel: ({ label, status, }: {
7
7
  label: string;
8
8
  status: OrchestratorStateStepStatus;
9
9
  }) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
10
- export declare const DevUiApplicationPanel: ({ state, }: {
10
+ export declare const DevUiApplicationPanel: ({ state, verbose, }: {
11
11
  state: OrchestratorState;
12
+ verbose?: boolean | undefined;
12
13
  }) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -12,5 +12,8 @@ export declare const DevUiEntitySection: ({ type, entities, }: {
12
12
  type: SyncableEntity;
13
13
  entities: OrchestratorStateEntityInfo[];
14
14
  }) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null;
15
+ export declare const DevUiEntitySummary: ({ entities, }: {
16
+ entities: OrchestratorStateEntityInfo[];
17
+ }) => React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | null;
15
18
  export declare const DevUiEntityLegend: () => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
16
19
  export { ENTITY_ORDER };
@@ -1,4 +1,4 @@
1
1
  import { type DevUiStateManager } from '../../../../../cli/utilities/dev/ui/dev-ui-state-manager';
2
- export declare const renderDevUI: (uiStateManager: DevUiStateManager) => Promise<{
2
+ export declare const renderDevUI: (uiStateManager: DevUiStateManager, verbose?: boolean) => Promise<{
3
3
  unmount: () => void;
4
4
  }>;
@@ -18,6 +18,12 @@ export declare const EVENT_COLORS: Record<OrchestratorStateEvent['status'], stri
18
18
  export declare const formatTime: (date: Date) => string;
19
19
  export declare const shortenPath: (path: string, maxLength?: number) => string;
20
20
  export declare const groupEntitiesByType: (entities: Map<string, OrchestratorStateEntityInfo>) => Map<SyncableEntity, OrchestratorStateEntityInfo[]>;
21
+ export type DevUiEntityStatusSummaryPart = {
22
+ status: OrchestratorStateFileStatus;
23
+ count: number;
24
+ label: string;
25
+ };
26
+ export declare const summarizeEntityStatuses: (entities: OrchestratorStateEntityInfo[]) => DevUiEntityStatusSummaryPart[];
21
27
  export declare const getApplicationUrl: (state: OrchestratorState) => string | null;
22
28
  export declare const mergeStepStatuses: (statuses: OrchestratorStateStepStatus[]) => OrchestratorStateStepStatus;
23
29
  export type DevUiPipelineRow = {
@@ -0,0 +1,3 @@
1
+ export declare const getViewFieldBaseFile: ({ universalIdentifier, }: {
2
+ universalIdentifier?: string | undefined;
3
+ }) => string;
@@ -1,2 +1,3 @@
1
+ import { type MetadataValidationErrorResponse } from 'twenty-shared/metadata';
1
2
  import { type OrchestratorStateStepEvent } from '../../../cli/utilities/dev/orchestrator/dev-mode-orchestrator-state';
2
- export declare const formatManifestValidationErrors: (error: unknown) => OrchestratorStateStepEvent[] | null;
3
+ export declare const formatManifestValidationErrors: (error: MetadataValidationErrorResponse | undefined) => OrchestratorStateStepEvent[] | null;
@@ -0,0 +1 @@
1
+ export declare const getSyncErrorRecoveryHint: (message: string | undefined) => string | undefined;