twenty 2.46.0 → 2.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/CONTRIBUTING.md +25 -17
  2. package/dist/app-template/yarn.lock +165 -191
  3. package/dist/app-worker.cjs +1 -1
  4. package/dist/chunks/application-BE-X21OV.cjs +5 -0
  5. package/dist/chunks/build-pull-entities-caP3XupC.cjs +5 -0
  6. package/dist/chunks/{build-source-manifest-CLKH5vzc.cjs → build-source-manifest-DWRbCMVq.cjs} +1 -1
  7. package/dist/chunks/{build-source-snapshot-CbGsy1-v.cjs → build-source-snapshot-CtgBQfSx.cjs} +816 -157
  8. package/dist/chunks/{check-node-requirement-mqwNPktb.cjs → check-node-requirement-CGBKvEqH.cjs} +1 -1
  9. package/dist/chunks/cli-node-version-range.constant-D7fE8edk.cjs +1 -0
  10. package/dist/chunks/cli-version.constant-BBeYll5N.cjs +1 -0
  11. package/dist/chunks/collect-translatable-strings-GBVXMoaX.cjs +1 -0
  12. package/dist/chunks/{collect-watch-inputs-B9jWG4W0.cjs → collect-watch-inputs-CJVgCTo5.cjs} +1 -1
  13. package/dist/chunks/compile-application-translations-B4jILjGc.cjs +1 -0
  14. package/dist/chunks/{constants-CL6mrTMT-B748cNNG.cjs → constants-CemcuPi_-D7dbw2cv.cjs} +1 -1
  15. package/dist/chunks/{convert-to-label-BPBLtc_O.cjs → convert-to-label-DH4ArWop.cjs} +1 -1
  16. package/dist/chunks/create-app-not-installed-error-DY-iuPPx.cjs +1 -0
  17. package/dist/chunks/{create-http-status-error-D3gy3DzB.cjs → create-http-status-error-C6gJS0JS.cjs} +1 -1
  18. package/dist/chunks/create-metadata-client-BRD2ys8z.cjs +6 -0
  19. package/dist/chunks/create-pull-base-write-CX9yftCd.cjs +1 -0
  20. package/dist/chunks/create-rest-client-Cc5Cmakp.cjs +60 -0
  21. package/dist/chunks/create-tooling-failure-B2FmNwR2.cjs +1 -0
  22. package/dist/chunks/extract-manifest-from-file-mvb6OhWm.cjs +1 -0
  23. package/dist/chunks/extract-source-translations-Bd_030qL.cjs +1 -0
  24. package/dist/chunks/{fetch-metadata-inspection-Dp034TpK.cjs → fetch-metadata-inspection-CAmEp-xl.cjs} +1 -1
  25. package/dist/chunks/{fetch-signed-in-identity-BhvaL3zp.cjs → fetch-signed-in-identity-b_LbRuL-.cjs} +1 -1
  26. package/dist/chunks/{fetch-workspace-id-DJStmf_V.cjs → fetch-workspace-id-C9kY0s84.cjs} +1 -1
  27. package/dist/chunks/{format-body-VcKL4WXt.cjs → format-body-BIv-9Sd5.cjs} +1 -1
  28. package/dist/chunks/{format-data-value-B6rIbpJv.cjs → format-data-value-C7Njc7Sb.cjs} +1 -1
  29. package/dist/chunks/format-display-path-gEepVJDg.cjs +1 -0
  30. package/dist/chunks/{format-metadata-fields-DJnTg1R9.cjs → format-metadata-fields-BOG2kj2h.cjs} +1 -1
  31. package/dist/chunks/{format-metadata-owner-yUeocnwY.cjs → format-metadata-owner-CyEMvoQr.cjs} +1 -1
  32. package/dist/chunks/format-progress-line-DgxG_7p2.cjs +1 -0
  33. package/dist/chunks/generate-application-client-BOLnv8nr.cjs +1 -0
  34. package/dist/chunks/{get-app-plan-summary-B0uwHXbO.cjs → get-app-plan-summary-D1Dsd34P.cjs} +2 -2
  35. package/dist/chunks/get-client-generation-skip-reason-CUn0Y2Vu.cjs +1 -0
  36. package/dist/chunks/get-client-sdk-package-path-2U3kDCRq.cjs +1 -0
  37. package/dist/chunks/{get-function-input-schema-GNk3NRLJ-Bfph1o9z.cjs → get-function-input-schema-GNk3NRLJ-CWNFoyKh.cjs} +1 -1
  38. package/dist/chunks/global-flags.constant-0k222fHC.cjs +1 -0
  39. package/dist/chunks/{is-access-token-expiring-gICPXsbO.cjs → is-access-token-expiring-D-YfufId.cjs} +1 -1
  40. package/dist/chunks/{is-application-not-found-error-mNeGbxmT.cjs → is-application-not-found-error-4vnGlYbm.cjs} +1 -1
  41. package/dist/chunks/is-exported-manifest-dsiWCcjx.cjs +1 -0
  42. package/dist/chunks/is-inside-directory-DHVCQE5C.cjs +1 -0
  43. package/dist/chunks/{is-interaction-allowed-ycbAFMIj.cjs → is-interaction-allowed-CF-ko1KI.cjs} +1 -1
  44. package/dist/chunks/is-locale-catalog-CRn-mKHj.cjs +1 -0
  45. package/dist/chunks/is-supported-locale-BOZxTj7r.cjs +1 -0
  46. package/dist/chunks/{is-supported-locale-BAjnKnKj.cjs → locale-catalog-format-rg5FMb7l.cjs} +5 -5
  47. package/dist/chunks/metadata-Vepr2xeA.cjs +1 -0
  48. package/dist/chunks/{metadata-page.constant-BkG4ndrO.cjs → metadata-page.constant-thBSPIZT.cjs} +1 -1
  49. package/dist/chunks/{parse-api-url-BllxRdpE.cjs → parse-api-url-CEfjRyid.cjs} +1 -1
  50. package/dist/chunks/{parse-app-export-BkfflyUY.cjs → parse-app-export-DUZ2dQJ8.cjs} +1 -1
  51. package/dist/chunks/parse-extraction-locale-fg7K8vps.cjs +1 -0
  52. package/dist/chunks/{parse-graphql-response-CtP9KTS2.cjs → parse-graphql-response-DvoRiFPV.cjs} +1 -1
  53. package/dist/chunks/{parse-json-input-CvMTKAWw.cjs → parse-json-input-DE451WQG.cjs} +1 -1
  54. package/dist/chunks/{print-typescript-value-DhElcFzI.cjs → print-typescript-value-DaEFmMda.cjs} +1 -1
  55. package/dist/chunks/pull-source-D9QUEAsK.cjs +1 -0
  56. package/dist/chunks/read-app-identity-DtEnxiEF.cjs +1 -0
  57. package/dist/chunks/read-application-identifier-DyZcsUV4.cjs +1 -0
  58. package/dist/chunks/{read-application-identity-BFg_p84F.cjs → read-application-identity-CMJ-W5D8.cjs} +1 -1
  59. package/dist/chunks/{read-config-DUJ27809.cjs → read-config-DdtXhdPp.cjs} +1 -1
  60. package/dist/chunks/read-json-object-CgaXuNS0.cjs +1 -0
  61. package/dist/chunks/read-snapshot-file-dvWjVexO.cjs +1 -0
  62. package/dist/chunks/{read-source-identity-C8LG1v6U.cjs → read-source-identity-Ca7QkuwC.cjs} +1 -1
  63. package/dist/chunks/record-pull-base-Dfqth7Uy.cjs +1 -0
  64. package/dist/chunks/{record-typecheck-config-inputs-BDqkKCrj.cjs → record-typecheck-config-inputs-DZy2PhMY.cjs} +1 -1
  65. package/dist/chunks/{request-oauth-tokens-C4KKlTQT.cjs → request-oauth-tokens-BY5ew3aM.cjs} +1 -1
  66. package/dist/chunks/require-approval-D0FfoHhF.cjs +1 -0
  67. package/dist/chunks/resolve-app-project-dftvbB2P.cjs +1 -0
  68. package/dist/chunks/resolve-command-target-0k6iitOZ.cjs +1 -0
  69. package/dist/chunks/resolve-inside-sdk-6M8jy9bi.cjs +1 -0
  70. package/dist/chunks/{resolve-metadata-object-QoDi-Aik.cjs → resolve-metadata-object-DzDTQF_T.cjs} +1 -1
  71. package/dist/chunks/resolve-project-typescript-Cw2kvn6E.cjs +1 -0
  72. package/dist/chunks/{resolve-request-url-jC5kYwkn.cjs → resolve-request-url-Cnuxu_nj.cjs} +1 -1
  73. package/dist/chunks/resolve-source-sdk-B1Fxlsmt.cjs +1 -0
  74. package/dist/chunks/{run-api-graphql-command-Biy0WqXa.cjs → run-api-graphql-command-CzQ4IH4l.cjs} +1 -1
  75. package/dist/chunks/{run-api-rest-command-D9kdQceV.cjs → run-api-rest-command-BtXv11uz.cjs} +1 -1
  76. package/dist/chunks/{run-app-add-command-DcTQg7Si.cjs → run-app-add-command-DsgrCsEl.cjs} +5 -5
  77. package/dist/chunks/run-app-apply-command-X_XGAwRN.cjs +2 -0
  78. package/dist/chunks/{run-app-build-command-BRYb0one.cjs → run-app-build-command--t8qRNsn.cjs} +1 -1
  79. package/dist/chunks/run-app-dev-command-Cc-nhH2t.cjs +2 -0
  80. package/dist/chunks/run-app-exec-command-mdXCYmUn.cjs +3 -0
  81. package/dist/chunks/run-app-generate-client-command-3DMg-WyX.cjs +2 -0
  82. package/dist/chunks/run-app-init-command-BfS8IFmY.cjs +2 -0
  83. package/dist/chunks/run-app-install-command-DMbwFvtE.cjs +1 -0
  84. package/dist/chunks/run-app-logs-command-B7_iDOj1.cjs +9 -0
  85. package/dist/chunks/run-app-operation-DFCj0sG_.cjs +1 -0
  86. package/dist/chunks/run-app-plan-command-Dh_DFA7H.cjs +1 -0
  87. package/dist/chunks/run-app-publish-command-eJcYGb8S.cjs +3 -0
  88. package/dist/chunks/run-app-pull-command-BV2cMuLU.cjs +3 -0
  89. package/dist/chunks/run-app-translations-extract-command-CBBbk_vJ.cjs +2 -0
  90. package/dist/chunks/{run-app-typecheck-command-C8LqpOej.cjs → run-app-typecheck-command-pAHhuBGo.cjs} +1 -1
  91. package/dist/chunks/run-app-uninstall-command-C5um6udQ.cjs +2 -0
  92. package/dist/chunks/{run-auth-login-command-_zDgRcth.cjs → run-auth-login-command-C4VI44Xu.cjs} +1 -1
  93. package/dist/chunks/{run-auth-logout-command-BO6O7GVi.cjs → run-auth-logout-command-5Tvqclki.cjs} +1 -1
  94. package/dist/chunks/{run-auth-status-command-Cj-vqoHg.cjs → run-auth-status-command-CLH1bylR.cjs} +1 -1
  95. package/dist/chunks/{run-cli-c9TOR0zj.cjs → run-cli-BA0FsxzB.cjs} +8 -8
  96. package/dist/chunks/{run-commands-command-C6gvMpQ_.cjs → run-commands-command-CjzkTcrO.cjs} +1 -1
  97. package/dist/chunks/{run-data-get-command-jDEU4EG1.cjs → run-data-get-command-DoZIpf8O.cjs} +1 -1
  98. package/dist/chunks/{run-data-list-command-EnCdbuzc.cjs → run-data-list-command-DAoplyqj.cjs} +1 -1
  99. package/dist/chunks/{run-doctor-command-DnJ6io-m.cjs → run-doctor-command-D8cpt7FI.cjs} +2 -2
  100. package/dist/chunks/{run-metadata-field-describe-command-vJngpw2S.cjs → run-metadata-field-describe-command-BrZYIhjH.cjs} +1 -1
  101. package/dist/chunks/{run-metadata-field-list-command-CR4w7fI6.cjs → run-metadata-field-list-command-C9-pHXbx.cjs} +1 -1
  102. package/dist/chunks/{run-metadata-object-describe-command-CHP8K-W2.cjs → run-metadata-object-describe-command-WFdGu1Iq.cjs} +1 -1
  103. package/dist/chunks/{run-metadata-object-list-command-BqXMcAp6.cjs → run-metadata-object-list-command-8UKU3cMW.cjs} +1 -1
  104. package/dist/chunks/{run-open-command-DKl8acw0.cjs → run-open-command-B1pdHp36.cjs} +1 -1
  105. package/dist/chunks/{run-remote-list-command-DeAzr5Mn.cjs → run-remote-list-command-BRPcCOKx.cjs} +1 -1
  106. package/dist/chunks/{run-remote-remove-command-D0C5sWjP.cjs → run-remote-remove-command-CS6za2Pm.cjs} +1 -1
  107. package/dist/chunks/{run-remote-rename-command-Byq9WRHd.cjs → run-remote-rename-command-BOqWQUR4.cjs} +1 -1
  108. package/dist/chunks/{run-remote-use-command-B6VVDlMG.cjs → run-remote-use-command-BANiokD-.cjs} +1 -1
  109. package/dist/chunks/{run-version-command-BmSk8PUV.cjs → run-version-command-C0xgcPP6.cjs} +1 -1
  110. package/dist/chunks/{select-target-C1VZjf-A.cjs → select-target-CfuNLCQL.cjs} +1 -1
  111. package/dist/chunks/sign-in-to-remote-again-DYCWIDa9.cjs +1 -0
  112. package/dist/chunks/{sign-in-with-browser-C3kC6uP2.cjs → sign-in-with-browser-Ck4tOxtA.cjs} +1 -1
  113. package/dist/chunks/to-public-target-C0POrVoG.cjs +1 -0
  114. package/dist/chunks/{to-worker-output-diagnostics-lprh9b0l.cjs → to-worker-output-diagnostics-Bt_acI26.cjs} +1 -1
  115. package/dist/chunks/{typecheck-application-DGrovgX9.cjs → typecheck-application-DEO1SVdO.cjs} +2 -2
  116. package/dist/chunks/{update-config-BkKBEfAp.cjs → update-config-FzOzO3wZ.cjs} +1 -1
  117. package/dist/chunks/utils-ZOESAfF8-ub6jPiZ-.cjs +35 -0
  118. package/dist/chunks/with-phase-details-Dof8Ao9R.cjs +1 -0
  119. package/dist/chunks/{write-config-atomically-DRWTukU-.cjs → write-config-atomically-C-YMKq3P.cjs} +1 -1
  120. package/dist/cli.cjs +1 -1
  121. package/docs/commands.md +93 -5
  122. package/package.json +6 -6
  123. package/src/app/source/README.md +1 -1
  124. package/dist/chunks/application-DuIJE2qG.cjs +0 -5
  125. package/dist/chunks/build-pull-entities-zwArrVMk.cjs +0 -5
  126. package/dist/chunks/cli-version.constant-aSp8WZDh.cjs +0 -1
  127. package/dist/chunks/compile-application-translations-B59jYVWc.cjs +0 -1
  128. package/dist/chunks/create-app-not-installed-error-Cc8YZqI7.cjs +0 -1
  129. package/dist/chunks/create-metadata-client-ChjDalSi.cjs +0 -6
  130. package/dist/chunks/create-pull-base-write-rxjcKtD-.cjs +0 -1
  131. package/dist/chunks/create-rest-client-eAfOFfDA.cjs +0 -58
  132. package/dist/chunks/create-tooling-failure-DLI5FlQP.cjs +0 -1
  133. package/dist/chunks/extract-manifest-from-file-j-Y9wNas.cjs +0 -1
  134. package/dist/chunks/generate-application-client-CCVLjxTj.cjs +0 -1
  135. package/dist/chunks/global-flags.constant-8GfW0sNU.cjs +0 -1
  136. package/dist/chunks/is-exported-manifest-CriNOWvx.cjs +0 -1
  137. package/dist/chunks/is-inside-directory-t3ixLQDr.cjs +0 -1
  138. package/dist/chunks/metadata-D9sQOTRK.cjs +0 -1
  139. package/dist/chunks/package-CdYv4LEx.cjs +0 -1
  140. package/dist/chunks/pull-source-eoiJwFb9.cjs +0 -1
  141. package/dist/chunks/read-app-identity-SeleQ_D6.cjs +0 -1
  142. package/dist/chunks/record-pull-base-BbxvlnU8.cjs +0 -1
  143. package/dist/chunks/require-approval-fhegB1ap.cjs +0 -1
  144. package/dist/chunks/resolve-app-project-D5ZXIpsG.cjs +0 -1
  145. package/dist/chunks/resolve-inside-sdk-p-16gKb4.cjs +0 -1
  146. package/dist/chunks/resolve-project-typescript-CDY8BbmP.cjs +0 -1
  147. package/dist/chunks/resolve-source-sdk-mK-f4q55.cjs +0 -1
  148. package/dist/chunks/run-app-apply-command-DwLPPJ-Y.cjs +0 -2
  149. package/dist/chunks/run-app-dev-command-CVeh9Gab.cjs +0 -2
  150. package/dist/chunks/run-app-exec-command-DKLNLbL5.cjs +0 -3
  151. package/dist/chunks/run-app-init-command-CJj8_spC.cjs +0 -2
  152. package/dist/chunks/run-app-logs-command-Dusb8K-W.cjs +0 -9
  153. package/dist/chunks/run-app-operation-BWrY9YZK.cjs +0 -1
  154. package/dist/chunks/run-app-plan-command-C0_3e332.cjs +0 -1
  155. package/dist/chunks/run-app-pull-command-DcZqs8gR.cjs +0 -3
  156. package/dist/chunks/run-app-uninstall-command-ncWS_k-p.cjs +0 -2
  157. package/dist/chunks/sign-in-to-remote-again-CW8HPSTP.cjs +0 -1
  158. package/dist/chunks/to-public-target-CIAwoOKL.cjs +0 -1
  159. package/dist/chunks/utils-B8EXJeaX-DK3gCslL.cjs +0 -33
package/CONTRIBUTING.md CHANGED
@@ -108,6 +108,13 @@ registry access is required for installation; the commands do not contact a
108
108
  Twenty workspace. Temporary files are removed afterward, and nothing is
109
109
  published. CI runs the same target for CLI and dependency changes.
110
110
 
111
+ The CLI CI job also runs `scripts/test-app-publish.mjs` after building the CLI
112
+ and SDK. It starts a disposable Verdaccio registry with no upstream registries,
113
+ publishes a fixture with real npm, downloads and inspects the tarball, and checks
114
+ version rejection, incomplete packages and cleanup. On Linux CI the test runs
115
+ inside a network namespace with only loopback enabled, so it cannot reach public
116
+ npm. It uses temporary npm configuration and a local test token.
117
+
111
118
  ## Releases
112
119
 
113
120
  Publish the CLI when its changes warrant a release. A server release does not
@@ -131,29 +138,30 @@ to the next, unpublished SDK version right after each SDK release:
131
138
  3. Run the `Publish npm packages` workflow in `twenty-infra` with that tag as
132
139
  its `ref`. Creating the tag alone does not publish the package.
133
140
 
134
- `yarn npm publish` first runs `scripts/check-publish.mjs`, which needs a fresh
135
- build and npm registry access. It fails when the executable, worker, lazy chunks
136
- or templates are missing, when `dist` was built for another version, when one of
137
- its CLI runs fails or times out, or when `app init` would pin versions that are
138
- not on npm. An unreachable registry is reported separately from a missing
139
- version. The check does not read tags: it confirms that the pinned versions are
140
- published. Selecting the matching SDK release remains a release step.
141
-
142
- `prepublish` then runs `scripts/generate-template-lock.mjs`. It resolves the app
143
- template's dependencies with the repository's Yarn against the public registry,
144
- under a 3-day minimum release age that exempts the pinned Twenty packages, and
145
- writes `dist/app-template/yarn.lock`. Apps created with `app init` then install
146
- exact, integrity-checked versions, including for people who enforce a minimum
147
- release age. The lockfile keeps the template's placeholder name, and the first
141
+ `yarn npm publish` first runs `scripts/prepublish.mjs`, which needs a fresh
142
+ build and npm registry access. It checks the build first, and fails when the
143
+ executable, worker, lazy chunks or templates are missing, when `dist` was built
144
+ for another version, when one of its CLI runs fails or times out, or when
145
+ `app init` would pin versions that are not on npm. An unreachable registry is
146
+ reported separately from a missing version. The check does not read tags: it
147
+ confirms that the pinned versions are published. Selecting the matching SDK
148
+ release remains a release step.
149
+
150
+ Once the check passes, the script resolves the built app template's
151
+ dependencies, with the versions that `app init` pinned during the check, using
152
+ the repository's Yarn against the public registry, under a 3-day minimum
153
+ release age that exempts the pinned Twenty packages. It then writes
154
+ `dist/app-template/yarn.lock`. Apps created with `app init` then install exact,
155
+ integrity-checked versions, including for people who enforce a minimum release
156
+ age. The lockfile keeps the template's placeholder name, and the first
148
157
  `yarn install` renames that root entry.
149
158
 
150
- The tests of both scripts run with `twenty-cli:test:package`. To run the scripts
159
+ The tests of both steps run with `twenty-cli:test:package`. To run the script
151
160
  before tagging:
152
161
 
153
162
  ```bash
154
163
  yarn nx build twenty-cli
155
- node packages/twenty-cli/scripts/check-publish.mjs
156
- node packages/twenty-cli/scripts/generate-template-lock.mjs
164
+ node packages/twenty-cli/scripts/prepublish.mjs
157
165
  ```
158
166
 
159
167
  ## App integration tests