Files
twenty/packages/twenty-shared/package.json
T
Raphaël BosiandGitHub b11f77df2a [FRONT COMPONENTS] Introduce conditionalAvailabilityExpression to command menu items (#18319)
## PR Description

- Uses `expr-eval` to enable front components (SDK plugins) to define
conditional availability as declarative expressions.
- Moves shared types and constants to `twenty-shared`
- Introduces a `conditionalAvailabilityExpression` field on
`CommandMenuItemEntity`, allowing command menu items to store an
`expr-eval` compatible expression string that is evaluated against a
CommandMenuContext to determine if the item should be shown.
- Creates an esbuild transform plugin
`conditional-availability-transform-plugin` in `twenty-sdk` that
converts TypeScript conditional availability expressions into
`expr-eval` compatible syntax at build time, so SDK developers can write
natural TS expressions that get transformed to evaluable strings.
- Removes deprecated `forceRegisteredActionsByKey` state and its usage.
- Creates `useCommandMenuContext` hook that builds the full
`CommandMenuContext` object from React state, which is then passed to
`useCommandMenuItemFrontComponentActions` for evaluating conditional
availability expressions.
2026-03-04 16:33:58 +01:00

175 lines
4.2 KiB
JSON

{
"name": "twenty-shared",
"private": true,
"sideEffects": false,
"main": "dist/index.cjs",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"license": "AGPL-3.0",
"scripts": {
"build": "npx vite build"
},
"engines": {
"node": "^24.5.0",
"npm": "please-use-yarn",
"yarn": "^4.0.2"
},
"devDependencies": {
"@babel/preset-env": "^7.26.9",
"@lingui/core": "^5.1.2",
"@prettier/sync": "^0.5.2",
"@types/babel__preset-env": "^7",
"@types/handlebars": "^4.1.0",
"babel-plugin-module-resolver": "^5.0.2",
"glob": "^11.1.0",
"tsx": "^4.19.3",
"typescript": "^5.9.2",
"vite": "^7.0.0",
"vite-plugin-dts": "3.8.1",
"vite-tsconfig-paths": "^4.2.1"
},
"dependencies": {
"@sniptt/guards": "^0.2.0",
"class-validator": "^0.14.0",
"expr-eval": "^2.0.2",
"handlebars": "^4.7.8",
"libphonenumber-js": "^1.10.26",
"lodash.camelcase": "^4.3.0",
"qs": "^6.11.2",
"react-router-dom": "^6.4.4",
"transliteration": "^2.3.5",
"zod": "^4.1.11"
},
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs"
},
"./ai": {
"types": "./dist/ai/index.d.ts",
"import": "./dist/ai.mjs",
"require": "./dist/ai.cjs"
},
"./application": {
"types": "./dist/application/index.d.ts",
"import": "./dist/application.mjs",
"require": "./dist/application.cjs"
},
"./constants": {
"types": "./dist/constants/index.d.ts",
"import": "./dist/constants.mjs",
"require": "./dist/constants.cjs"
},
"./database-events": {
"types": "./dist/database-events/index.d.ts",
"import": "./dist/database-events.mjs",
"require": "./dist/database-events.cjs"
},
"./logic-function": {
"types": "./dist/logic-function/index.d.ts",
"import": "./dist/logic-function.mjs",
"require": "./dist/logic-function.cjs"
},
"./metadata": {
"types": "./dist/metadata/index.d.ts",
"import": "./dist/metadata.mjs",
"require": "./dist/metadata.cjs"
},
"./testing": {
"types": "./dist/testing/index.d.ts",
"import": "./dist/testing.mjs",
"require": "./dist/testing.cjs"
},
"./translations": {
"types": "./dist/translations/index.d.ts",
"import": "./dist/translations.mjs",
"require": "./dist/translations.cjs"
},
"./types": {
"types": "./dist/types/index.d.ts",
"import": "./dist/types.mjs",
"require": "./dist/types.cjs"
},
"./utils": {
"types": "./dist/utils/index.d.ts",
"import": "./dist/utils.mjs",
"require": "./dist/utils.cjs"
},
"./vite": {
"types": "./dist/vite/index.d.ts",
"import": "./dist/vite.mjs",
"require": "./dist/vite.cjs"
},
"./workflow": {
"types": "./dist/workflow/index.d.ts",
"import": "./dist/workflow.mjs",
"require": "./dist/workflow.cjs"
},
"./workspace": {
"types": "./dist/workspace/index.d.ts",
"import": "./dist/workspace.mjs",
"require": "./dist/workspace.cjs"
}
},
"files": [
"dist",
"ai",
"application",
"constants",
"database-events",
"logic-function",
"metadata",
"testing",
"translations",
"types",
"utils",
"vite",
"workflow",
"workspace"
],
"typesVersions": {
"*": {
"ai": [
"dist/ai/index.d.ts"
],
"application": [
"dist/application/index.d.ts"
],
"constants": [
"dist/constants/index.d.ts"
],
"database-events": [
"dist/database-events/index.d.ts"
],
"logic-function": [
"dist/logic-function/index.d.ts"
],
"metadata": [
"dist/metadata/index.d.ts"
],
"testing": [
"dist/testing/index.d.ts"
],
"translations": [
"dist/translations/index.d.ts"
],
"types": [
"dist/types/index.d.ts"
],
"utils": [
"dist/utils/index.d.ts"
],
"vite": [
"dist/vite/index.d.ts"
],
"workflow": [
"dist/workflow/index.d.ts"
],
"workspace": [
"dist/workspace/index.d.ts"
]
}
}
}