From 267af42412fe9b59d6f5fd0d6cacce548383a6de Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Mon, 27 Oct 2025 09:44:41 +0100 Subject: [PATCH] Centralize v2 errors types in `twenty-shared` (#15358) # Introduction Followup of https://github.com/twentyhq/twenty/pull/15331 ( Reducing size by concerns ) This PR centralizes v2 format error types in `twenty-shared` and consuming them in the existing v2 error format logic in `twenty-server` ## Next This https://github.com/twentyhq/twenty/pull/15360 handles the frontend v2 format error refactor ## Conclusion Related to https://github.com/twentyhq/core-team-issues/issues/1776 --- .../application/application-sync.service.ts | 3 +- .../graphql/utils/graphql-errors.util.ts | 1 + ...ll-flat-entity-maps-properties.constant.ts | 3 +- ...rties-to-compare-and-stringify.constant.ts | 3 +- ...metadata-many-to-one-relations.constant.ts | 2 +- ...quired-metadata-for-validation.constant.ts | 3 +- .../empty-all-flat-entity-maps.constant.ts | 7 +- ...ntity-by-metadata-engine-name-test.type.ts | 2 +- .../flat-entity-properties-to-compare.type.ts | 3 +- ...lat-entity-properties-to-stringify.type.ts | 3 +- .../flat-entity-properties-updates.type.ts | 3 +- .../types/flat-entity-property-update.type.ts | 3 +- .../flat-entity/types/metadata-entity.type.ts | 3 +- .../types/metadata-flat-entity-maps.type.ts | 3 +- .../types/metadata-flat-entity.type.ts | 3 +- ...many-to-one-related-metadata-names.type.ts | 3 +- .../types/metadata-name-and-relations.type.ts | 3 +- ...data-related-flat-entity-maps-keys.type.ts | 3 +- .../types/metadata-related-types.type.ts | 3 +- .../types/metadata-to-flat-entity-maps-key.ts | 2 +- ...-validation-related-metadata-names.type.ts | 2 +- ...etadata-workspace-migration-action.type.ts | 3 +- ...y-and-related-entity-maps-or-throw.util.ts | 3 +- .../utils/compare-two-flat-entity.util.ts | 2 +- .../get-metadata-flat-entity-maps-key.util.ts | 2 +- ...-to-flat-field-metadatas-to-create.spec.ts | 2 +- .../utils/global-exception-handler.util.ts | 1 + .../workspace-flat-map-cache.decorator.ts | 3 +- ...ty-orchestrator-actions-report.constant.ts | 3 +- ...ty-orchestrator-failure-report.constant.ts | 3 +- .../types/validate-error-response.type.ts | 28 ---- ...metadata-validation-response-error.util.ts | 35 +++++ ...ption-to-validation-response-error.util.ts | 41 ----- ...orchestrator-failure-report-errors.util.ts | 61 ++++++++ .../utils/translate-validation-errors.util.ts | 48 ------ ...igration-builder-exception-v2-formatter.ts | 22 +-- ...igration-validate-build-and-run-service.ts | 7 +- .../workspace-migration-orchestrator.type.ts | 2 +- .../find-flat-entity-property-update.util.ts | 3 +- ...-created-updated-matrix-dispatcher.util.ts | 2 +- ...-workspace-migration-action-record.util.ts | 3 +- ...-v2-cron-trigger-action-builder.service.ts | 3 +- ...e-event-trigger-actions-builder.service.ts | 3 +- ...ration-v2-field-actions-builder.service.ts | 2 +- ...ration-v2-index-actions-builder.service.ts | 2 +- ...ation-v2-object-actions-builder.service.ts | 3 +- ...2-route-trigger-actions-builder.service.ts | 3 +- ...erless-function-actions-builder.service.ts | 3 +- .../failed-flat-entity-validation.type.ts | 3 +- ...n-v2-view-field-actions-builder.service.ts | 2 +- ...-v2-view-filter-actions-builder.service.ts | 2 +- ...n-v2-view-group-actions-builder.service.ts | 2 +- ...gration-v2-view-actions-builder.service.ts | 2 +- ...ace-entity-migration-builder-v2.service.ts | 2 +- ...led-flat-entity-validate-and-build.type.ts | 5 +- ...flat-entity-update-validation-args.type.ts | 3 +- .../types/flat-entity-validation-args.type.ts | 5 +- .../flat-entity-validation-result.type.ts | 3 +- ...ful-flat-entity-validate-and-build.type.ts | 3 +- .../workspace-migration-action-common-v2.ts | 3 +- ...orkspace-migration-builder-options.type.ts | 2 +- .../flat-cron-trigger-validator.service.ts | 2 +- ...atabase-event-trigger-validator.service.ts | 2 +- .../flat-field-metadata-validator.service.ts | 2 +- .../flat-index-metadata-validator.service.ts | 2 +- .../flat-object-metadata-validator.service.ts | 2 +- .../flat-route-trigger-validator.service.ts | 2 +- ...t-serverless-function-validator.service.ts | 2 +- .../flat-view-field-validator.service.ts | 2 +- .../flat-view-filter-validator.service.ts | 2 +- .../flat-view-group-validator.service.ts | 2 +- .../services/flat-view-validator.service.ts | 2 +- ...runner-action-handler-service.interface.ts | 3 +- .../workspace-migration.exception.ts | 7 +- .../group-by-resolver.integration-spec.ts | 2 +- ...ate-view-field-v2.integration-spec.ts.snap | 6 +- ...ect-on-view-field.integration-spec.ts.snap | 10 +- .../utils/graphql-test-assertions.util.ts | 2 +- ...ne-field-metadata.integration-spec.ts.snap | 2 +- ...ne-field-metadata.integration-spec.ts.snap | 4 +- ...-metadata-enum-v2.integration-spec.ts.snap | 140 +++++++++--------- ...field-metadata-v2.integration-spec.ts.snap | 136 ++++++++--------- ...tandard-field-metadata.integration-spec.ts | 2 +- ...morph-relation-v2.integration-spec.ts.snap | 34 ++--- ...relation-creation.integration-spec.ts.snap | 40 ++--- ...a-relation-update.integration-spec.ts.snap | 4 +- ...tandard-field-metadata.integration-spec.ts | 2 +- ...ue-field-metadata.integration-spec.ts.snap | 4 +- ...-on-object-creation-v2.integration-spec.ts | 2 +- ...x-on-relation-field-v2.integration-spec.ts | 2 +- ...bject-metadata-v2.integration-spec.ts.snap | 42 +++--- ...e-object-metadata.integration-spec.ts.snap | 6 +- ...andard-object-metadata.integration-spec.ts | 2 +- ...ta-with-morph-relation.integration-spec.ts | 2 +- ...metadata-with-relation.integration-spec.ts | 4 +- ...andard-object-metadata.integration-spec.ts | 2 +- ...=> jest-expect-to-be-defined.util.test.ts} | 2 +- packages/twenty-shared/package.json | 10 ++ packages/twenty-shared/project.json | 2 + .../src/metadata/MetadataValidationError.ts | 30 ++++ .../metadata/all-metadata-name.constant.ts | 13 ++ .../src/metadata/all-metadata-name.type.ts | 3 + packages/twenty-shared/src/metadata/index.ts | 17 +++ yarn.lock | 29 ++++ 104 files changed, 549 insertions(+), 430 deletions(-) delete mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/types/validate-error-response.type.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-metadata-validation-response-error.util.ts delete mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-validation-response-error.util.ts create mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-orchestrator-failure-report-errors.util.ts delete mode 100644 packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util.ts rename packages/twenty-server/test/utils/{expect-to-be-defined.util.test.ts => jest-expect-to-be-defined.util.test.ts} (65%) create mode 100644 packages/twenty-shared/src/metadata/MetadataValidationError.ts create mode 100644 packages/twenty-shared/src/metadata/all-metadata-name.constant.ts create mode 100644 packages/twenty-shared/src/metadata/all-metadata-name.type.ts create mode 100644 packages/twenty-shared/src/metadata/index.ts diff --git a/packages/twenty-server/src/engine/core-modules/application/application-sync.service.ts b/packages/twenty-server/src/engine/core-modules/application/application-sync.service.ts index 5769405898..5edd4fabc4 100644 --- a/packages/twenty-server/src/engine/core-modules/application/application-sync.service.ts +++ b/packages/twenty-server/src/engine/core-modules/application/application-sync.service.ts @@ -1,6 +1,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME, AllMetadataName } from 'twenty-shared/metadata'; import { ApplicationEntity } from 'src/engine/core-modules/application/application.entity'; import { @@ -22,10 +23,8 @@ import { FlatCronTrigger } from 'src/engine/metadata-modules/cron-trigger/types/ import { DataSourceService } from 'src/engine/metadata-modules/data-source/data-source.service'; import { DatabaseEventTriggerV2Service } from 'src/engine/metadata-modules/database-event-trigger/services/database-event-trigger-v2.service'; import { FlatDatabaseEventTrigger } from 'src/engine/metadata-modules/database-event-trigger/types/flat-database-event-trigger.type'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/metadata-modules/flat-entity/constant/empty-flat-entity-maps.constant'; import { WorkspaceManyOrAllFlatEntityMapsCacheService } from 'src/engine/metadata-modules/flat-entity/services/workspace-many-or-all-flat-entity-maps-cache.service'; -import { AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { getFlatEntitiesByApplicationId } from 'src/engine/metadata-modules/flat-entity/utils/get-flat-entities-by-application-id.util'; import { getSubFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/get-sub-flat-entity-maps-or-throw.util'; import { ObjectMetadataServiceV2 } from 'src/engine/metadata-modules/object-metadata/object-metadata-v2.service'; diff --git a/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts b/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts index e12d5b96b7..a45e5a26e7 100644 --- a/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts +++ b/packages/twenty-server/src/engine/core-modules/graphql/utils/graphql-errors.util.ts @@ -31,6 +31,7 @@ export enum ErrorCode { CONFLICT = 'CONFLICT', TIMEOUT = 'TIMEOUT', INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR', + METADATA_VALIDATION_FAILED = 'METADATA_VALIDATION_FAILED', } type RestrictedGraphQLErrorExtensions = { diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-maps-properties.constant.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-maps-properties.constant.ts index 2081fc0179..4310cf2b44 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-maps-properties.constant.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-maps-properties.constant.ts @@ -1,4 +1,5 @@ -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { getMetadataFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util'; export const ALL_FLAT_ENTITY_MAPS_PROPERTIES = Object.keys( diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant.ts index 44cdc9e2b3..b294056411 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant.ts @@ -1,6 +1,7 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { FLAT_CRON_TRIGGER_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/cron-trigger/constants/flat-cron-trigger-editable-properties.constant'; import { FLAT_DATABASE_EVENT_TRIGGER_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/database-event-trigger/constants/flat-database-event-trigger-editable-properties.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { FLAT_FIELD_METADATA_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/flat-field-metadata/constants/flat-field-metadata-editable-properties.constant'; import { FLAT_OBJECT_METADATA_EDITABLE_PROPERTIES } from 'src/engine/metadata-modules/flat-object-metadata/constants/flat-object-metadata-editable-properties.constant'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant.ts index 4169ab0fb5..6ec79a3658 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant.ts @@ -1,6 +1,6 @@ import { type ExtractPropertiesThatEndsWithId } from 'twenty-shared/types'; +import { type AllMetadataName } from 'twenty-shared/metadata'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-entity.type'; type ExtractEntityRelations> = { diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant.ts index 5193daa8df..651efd9f10 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataManyToOneRelatedMetadataNames } from 'src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type'; type MetadataRequiredForValidation = { diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/empty-all-flat-entity-maps.constant.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/empty-all-flat-entity-maps.constant.ts index 0beadbc3c6..a75246485c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/empty-all-flat-entity-maps.constant.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/constant/empty-all-flat-entity-maps.constant.ts @@ -1,7 +1,10 @@ -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { + ALL_METADATA_NAME, + type AllMetadataName, +} from 'twenty-shared/metadata'; + import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/metadata-modules/flat-entity/constant/empty-flat-entity-maps.constant'; import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-maps.type'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { getMetadataFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util'; export const EMPTY_ALL_FLAT_ENTITY_MAPS = ( diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/all-flat-entity-by-metadata-engine-name-test.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/all-flat-entity-by-metadata-engine-name-test.type.ts index bfe8ee69fa..39ecb83512 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/all-flat-entity-by-metadata-engine-name-test.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/all-flat-entity-by-metadata-engine-name-test.type.ts @@ -1,7 +1,7 @@ import { type Expect } from 'twenty-shared/testing'; +import { type AllMetadataName } from 'twenty-shared/metadata'; import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type FlatEntity } from 'src/engine/metadata-modules/flat-entity/types/flat-entity.type'; import { type WorkspaceMigrationActionV2 } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type.ts index 1ed8d55e2c..81335a4fb2 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type ALL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY } from 'src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type FlatEntityPropertiesToCompare = (typeof ALL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY)[T]['propertiesToCompare'][number]; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-stringify.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-stringify.type.ts index 8d40f90e12..03d3d577d6 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-stringify.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-stringify.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type ALL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY } from 'src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type FlatEntityPropertiesToStringify = (typeof ALL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY)[T]['propertiesToStringify'][number]; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type.ts index 91c603c7ab..8dd1fd947b 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type FlatEntityPropertiesToCompare } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type'; import { type FlatEntityPropertyUpdate } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type.ts index c9e61c1a79..f247cdb4af 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type FlatEntityPropertiesToCompare } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type PropertyUpdate } from 'src/engine/workspace-manager/workspace-migration-v2/types/property-update.type'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-entity.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-entity.type.ts index 1c52dce70f..a6521d7738 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-entity.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-entity.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type MetadataEntity = AllFlatEntityTypesByMetadataName[T]['entity']; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type.ts index 3d860aad1a..1fbe6861f8 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type FlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-maps.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type.ts index 983a7717e6..524ac58de5 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type MetadataFlatEntity = AllFlatEntityTypesByMetadataName[T]['flatEntity']; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type.ts index 8c504d8800..efef68a37c 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type ALL_METADATA_RELATED_METADATA_BY_FOREIGN_KEY } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type MetadataManyToOneRelatedMetadataNames = Extract< diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-name-and-relations.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-name-and-relations.type.ts index e5be0dbb21..03ba8a9869 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-name-and-relations.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-name-and-relations.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-entity.type'; type ExtractRelationIdProperties = { diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type.ts index fdc54fe9db..13e212351f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataManyToOneRelatedMetadataNames } from 'src/engine/metadata-modules/flat-entity/types/metadata-many-to-one-related-metadata-names.type'; import { type MetadataToFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-types.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-types.type.ts index 03278e5001..b618224c2f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-types.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-related-types.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-maps.type'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataRelatedFlatEntityMapsKeys } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type'; import { type MetadataToFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key'; import { type MetadataValidationRelatedMetadataNames } from 'src/engine/metadata-modules/flat-entity/types/metadata-validation-related-metadata-names.type'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key.ts index b11d71601b..ddf64d8fec 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key.ts @@ -1,4 +1,4 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; export type MetadataToFlatEntityMapsKey = T extends AllMetadataName ? `flat${Capitalize}Maps` : never; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-validation-related-metadata-names.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-validation-related-metadata-names.type.ts index f2a1bc5de6..e453fa4382 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-validation-related-metadata-names.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-validation-related-metadata-names.type.ts @@ -1,7 +1,7 @@ import { type IsEmptyRecord } from 'twenty-shared/types'; +import { type AllMetadataName } from 'twenty-shared/metadata'; import { type ALL_METADATA_REQUIRED_METADATA_FOR_VALIDATION } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-required-metadata-for-validation.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type MetadataValidationRelatedMetadataNames = IsEmptyRecord< diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type.ts index 53c29f0889..996ae3d362 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type.ts @@ -1,5 +1,6 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; export type MetadataWorkspaceMigrationActionsRecord = { diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-and-related-entity-maps-or-throw.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-and-related-entity-maps-or-throw.util.ts index 0834d25211..7912e03fd3 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-and-related-entity-maps-or-throw.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-and-related-entity-maps-or-throw.util.ts @@ -1,9 +1,10 @@ +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { ALL_METADATA_RELATED_METADATA_BY_FOREIGN_KEY } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-many-to-one-relations.constant'; import { FlatEntityMapsException, FlatEntityMapsExceptionCode, } from 'src/engine/metadata-modules/flat-entity/exceptions/flat-entity-maps.exception'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type MetadataFlatEntityAndRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/compare-two-flat-entity.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/compare-two-flat-entity.util.ts index 2b5b701714..704264854f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/compare-two-flat-entity.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/compare-two-flat-entity.util.ts @@ -1,8 +1,8 @@ import diff from 'microdiff'; import { type FromTo } from 'twenty-shared/types'; import { parseJson } from 'twenty-shared/utils'; +import { type AllMetadataName } from 'twenty-shared/metadata'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type FlatEntityPropertiesToCompare } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type'; import { type FlatEntityPropertiesUpdates } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util.ts b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util.ts index 898796a10a..4a5085a917 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-entity/utils/get-metadata-flat-entity-maps-key.util.ts @@ -1,6 +1,6 @@ import { capitalize } from 'twenty-shared/utils'; +import { type AllMetadataName } from 'twenty-shared/metadata'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataToFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key'; export const getMetadataFlatEntityMapsKey = ( diff --git a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__tests__/morph-relation-from-create-field-input-to-flat-field-metadatas-to-create.spec.ts b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__tests__/morph-relation-from-create-field-input-to-flat-field-metadatas-to-create.spec.ts index 6f4ed85220..9632fb11bf 100644 --- a/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__tests__/morph-relation-from-create-field-input-to-flat-field-metadatas-to-create.spec.ts +++ b/packages/twenty-server/src/engine/metadata-modules/flat-field-metadata/__tests__/morph-relation-from-create-field-input-to-flat-field-metadatas-to-create.spec.ts @@ -1,5 +1,5 @@ -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { type EachTestingContext } from 'twenty-shared/testing'; import { FieldMetadataType } from 'twenty-shared/types'; diff --git a/packages/twenty-server/src/engine/utils/global-exception-handler.util.ts b/packages/twenty-server/src/engine/utils/global-exception-handler.util.ts index 181bf02318..f8c98b4ae0 100644 --- a/packages/twenty-server/src/engine/utils/global-exception-handler.util.ts +++ b/packages/twenty-server/src/engine/utils/global-exception-handler.util.ts @@ -39,6 +39,7 @@ export const graphQLErrorCodesToFilter = [ ErrorCode.TIMEOUT, ErrorCode.CONFLICT, ErrorCode.BAD_USER_INPUT, + ErrorCode.METADATA_VALIDATION_FAILED, ]; export const handleExceptionAndConvertToGraphQLError = ( diff --git a/packages/twenty-server/src/engine/workspace-flat-map-cache/decorators/workspace-flat-map-cache.decorator.ts b/packages/twenty-server/src/engine/workspace-flat-map-cache/decorators/workspace-flat-map-cache.decorator.ts index 4acd19193d..519326ae78 100644 --- a/packages/twenty-server/src/engine/workspace-flat-map-cache/decorators/workspace-flat-map-cache.decorator.ts +++ b/packages/twenty-server/src/engine/workspace-flat-map-cache/decorators/workspace-flat-map-cache.decorator.ts @@ -1,6 +1,7 @@ import { SetMetadata } from '@nestjs/common'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataToFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key'; export const WORKSPACE_FLAT_MAP_CACHE_KEY = 'workspaceFlatMapCacheKey'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-actions-report.constant.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-actions-report.constant.ts index e1be967c4d..03599b150c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-actions-report.constant.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-actions-report.constant.ts @@ -1,4 +1,5 @@ -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { type OrchestratorActionsReport } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; import { getMetadataEmptyWorkspaceMigrationActionRecord } from 'src/engine/workspace-manager/workspace-migration-v2/utils/get-metadata-empty-workspace-migration-action-record.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-failure-report.constant.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-failure-report.constant.ts index 5a18a7447c..031fb04ac2 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-failure-report.constant.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-failure-report.constant.ts @@ -1,4 +1,5 @@ -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { type OrchestratorFailureReport } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; export const EMPTY_ORCHESTRATOR_FAILURE_REPORT = ( diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/types/validate-error-response.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/types/validate-error-response.type.ts deleted file mode 100644 index 1df46cba19..0000000000 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/types/validate-error-response.type.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { type AllFlatEntityTypesByMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-types-by-metadata-name'; -import { type FieldMetadataMinimalInformation } from 'src/engine/metadata-modules/flat-field-metadata/types/field-metadata-minimal-information.type'; -import { type ObjectMetadataMinimalInformation } from 'src/engine/metadata-modules/flat-object-metadata/types/object-metadata-minimal-information.type'; -import { type TranslatedFlatEntityValidationError } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util'; -import { type OrchestratorFailureReport } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; -import { type WorkspaceMigrationFieldActionTypeV2 } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/field/types/workspace-migration-field-action-v2'; -import { type WorkspaceMigrationObjectActionTypeV2 } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/types/workspace-migration-object-action-v2'; - -export type ValidationErrorFieldResponse = - Partial & { - operation: WorkspaceMigrationFieldActionTypeV2; - errors: TranslatedFlatEntityValidationError[]; - }; -export type ValidationErrorObjectResponse = - Partial & { - operation: WorkspaceMigrationObjectActionTypeV2; - errors: TranslatedFlatEntityValidationError[]; - fields: ValidationErrorFieldResponse[]; - }; - -export type ValidationErrorResponse = { - summary: { - totalErrors: number; - } & { - [P in keyof AllFlatEntityTypesByMetadataName as `invalid${Capitalize

}`]: number; - }; - errors: OrchestratorFailureReport; -}; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-metadata-validation-response-error.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-metadata-validation-response-error.util.ts new file mode 100644 index 0000000000..d921f02fef --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-metadata-validation-response-error.util.ts @@ -0,0 +1,35 @@ +import { type I18n } from '@lingui/core'; +import { type MetadataValidationErrorResponse } from 'twenty-shared/metadata'; + +import { type WorkspaceMigrationBuilderExceptionV2 } from 'src/engine/workspace-manager/workspace-migration-v2/exceptions/workspace-migration-builder-exception-v2'; +import { translateOrchestratorFailureReportErrors } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-orchestrator-failure-report-errors.util'; + +export const fromWorkspaceMigrationBuilderExceptionToMetadataValidationResponseError = + ( + workspaceMigrationBuilderException: WorkspaceMigrationBuilderExceptionV2, + i18n: I18n, + ): MetadataValidationErrorResponse => { + const translatedReport = translateOrchestratorFailureReportErrors( + workspaceMigrationBuilderException.failedWorkspaceMigrationBuildResult + .report, + i18n, + ); + + return { + summary: { + invalidViewFilter: 0, + invalidObjectMetadata: 0, + invalidView: 0, + invalidViewField: 0, + invalidIndex: 0, + invalidServerlessFunction: 0, + invalidDatabaseEventTrigger: 0, + invalidCronTrigger: 0, + invalidRouteTrigger: 0, + invalidFieldMetadata: 0, + invalidViewGroup: 0, + totalErrors: 0, + }, + errors: translatedReport, + }; + }; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-validation-response-error.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-validation-response-error.util.ts deleted file mode 100644 index 334496f543..0000000000 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-validation-response-error.util.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { type I18n } from '@lingui/core'; - -import { EMPTY_ORCHESTRATOR_FAILURE_REPORT } from 'src/engine/workspace-manager/workspace-migration-v2/constant/empty-orchestrator-failure-report.constant'; -import { type WorkspaceMigrationBuilderExceptionV2 } from 'src/engine/workspace-manager/workspace-migration-v2/exceptions/workspace-migration-builder-exception-v2'; -import { type ValidationErrorResponse } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/types/validate-error-response.type'; -import { translateOrchestratorFailureReport } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util'; - -export const fromWorkspaceMigrationBuilderExceptionToValidationResponseError = ( - workspaceMigrationBuilderException: WorkspaceMigrationBuilderExceptionV2, - i18n: I18n, -): ValidationErrorResponse => { - const emptyResponseError: ValidationErrorResponse = { - summary: { - invalidViewFilter: 0, - invalidObjectMetadata: 0, - invalidView: 0, - invalidViewField: 0, - invalidIndex: 0, - invalidServerlessFunction: 0, - invalidDatabaseEventTrigger: 0, - invalidCronTrigger: 0, - invalidRouteTrigger: 0, - invalidFieldMetadata: 0, - invalidViewGroup: 0, - totalErrors: 0, - }, - errors: EMPTY_ORCHESTRATOR_FAILURE_REPORT, - }; - - const report = - workspaceMigrationBuilderException.failedWorkspaceMigrationBuildResult - .report; - - // Translate all MessageDescriptors in the report structure - const translatedReport = translateOrchestratorFailureReport(report, i18n); - - return { - ...emptyResponseError, - errors: translatedReport, - }; -}; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-orchestrator-failure-report-errors.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-orchestrator-failure-report-errors.util.ts new file mode 100644 index 0000000000..dc98944d33 --- /dev/null +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-orchestrator-failure-report-errors.util.ts @@ -0,0 +1,61 @@ +import { type I18n, type MessageDescriptor } from '@lingui/core'; +import { type MetadataValidationErrorResponse } from 'twenty-shared/metadata'; +import { isDefined } from 'twenty-shared/utils'; + +import { type OrchestratorFailureReport } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; +import { type FlatEntityValidationError } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; + +const isMessageDescriptor = (obj: unknown): obj is MessageDescriptor => + isDefined(obj) && + typeof obj === 'object' && + Object.prototype.hasOwnProperty.call(obj, 'id') && + Object.prototype.hasOwnProperty.call(obj, 'message') && + typeof (obj as MessageDescriptor).id === 'string'; + +const translateUserFriendlyMessageInFlatEntityValidationError = ( + obj: T, + i18n: I18n, + parentKey?: string, +): T => { + if (!obj || typeof obj !== 'object') { + return obj; + } + + if ( + isMessageDescriptor(obj) && + isDefined(parentKey) && + parentKey === + ('userFriendlyMessage' as const satisfies keyof FlatEntityValidationError) + ) { + return i18n._(obj) as T; + } + + if (Array.isArray(obj)) { + return obj.map((item) => + translateUserFriendlyMessageInFlatEntityValidationError( + item, + i18n, + parentKey, + ), + ) as T; + } + + const result = {} as T; + + for (const [key, value] of Object.entries(obj)) { + (result as Record)[key] = + translateUserFriendlyMessageInFlatEntityValidationError(value, i18n, key); + } + + return result; +}; + +export const translateOrchestratorFailureReportErrors = ( + report: OrchestratorFailureReport, + i18n: I18n, +) => { + return translateUserFriendlyMessageInFlatEntityValidationError( + report, + i18n, + ) as MetadataValidationErrorResponse['errors']; +}; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util.ts deleted file mode 100644 index d9dbf8aef2..0000000000 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/translate-validation-errors.util.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { type I18n, type MessageDescriptor } from '@lingui/core'; - -import { type OrchestratorFailureReport } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; - -export type TranslatedFlatEntityValidationError = - { - code: TCode; - message: string; - userFriendlyMessage?: string; - value?: unknown; - }; - -const translateMessageDescriptorsInObject = (obj: T, i18n: I18n): T => { - if (!obj || typeof obj !== 'object') { - return obj; - } - - if ( - typeof obj === 'object' && - 'id' in obj && - 'message' in obj && - typeof (obj as MessageDescriptor).id === 'string' - ) { - return i18n._(obj as MessageDescriptor) as T; - } - - if (Array.isArray(obj)) { - return obj.map((item) => - translateMessageDescriptorsInObject(item, i18n), - ) as T; - } - - const result = {} as T; - - for (const [key, value] of Object.entries(obj)) { - (result as Record)[key] = - translateMessageDescriptorsInObject(value, i18n); - } - - return result; -}; - -export const translateOrchestratorFailureReport = ( - report: OrchestratorFailureReport, - i18n: I18n, -): OrchestratorFailureReport => { - return translateMessageDescriptorsInObject(report, i18n); -}; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/workspace-migration-builder-exception-v2-formatter.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/workspace-migration-builder-exception-v2-formatter.ts index 78a970f25a..ea13ef8d3c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/workspace-migration-builder-exception-v2-formatter.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/interceptors/workspace-migration-builder-exception-v2-formatter.ts @@ -6,23 +6,27 @@ import { ErrorCode, } from 'src/engine/core-modules/graphql/utils/graphql-errors.util'; import { type WorkspaceMigrationBuilderExceptionV2 } from 'src/engine/workspace-manager/workspace-migration-v2/exceptions/workspace-migration-builder-exception-v2'; -import { fromWorkspaceMigrationBuilderExceptionToValidationResponseError } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-validation-response-error.util'; +import { fromWorkspaceMigrationBuilderExceptionToMetadataValidationResponseError } from 'src/engine/workspace-manager/workspace-migration-v2/interceptors/utils/from-workspace-migration-builder-exception-to-metadata-validation-response-error.util'; export const workspaceMigrationBuilderExceptionV2Formatter = ( error: WorkspaceMigrationBuilderExceptionV2, i18n: I18n, ) => { const { errors, summary } = - fromWorkspaceMigrationBuilderExceptionToValidationResponseError( + fromWorkspaceMigrationBuilderExceptionToMetadataValidationResponseError( error, i18n, ); - throw new BaseGraphQLError(error.message, ErrorCode.BAD_USER_INPUT, { - code: 'METADATA_VALIDATION_ERROR', - errors, - summary, - message: `Validation failed for 0 object(s) and 0 field(s)`, - userFriendlyMessage: msg`Validation failed for 0 object(s) and 0 field(s)`, - }); + throw new BaseGraphQLError( + error.message, + ErrorCode.METADATA_VALIDATION_FAILED, + { + code: 'METADATA_VALIDATION_ERROR', + errors, + summary, + message: `Validation failed for 0 object(s) and 0 field(s)`, + userFriendlyMessage: msg`Validation failed for 0 object(s) and 0 field(s)`, + }, + ); }; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-validate-build-and-run-service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-validate-build-and-run-service.ts index e53a3c17e1..02272a91ee 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-validate-build-and-run-service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-validate-build-and-run-service.ts @@ -1,15 +1,14 @@ import { Injectable, Logger } from '@nestjs/common'; +import { WorkspaceMigrationV2ExceptionCode } from 'twenty-shared/metadata'; + import { WorkspaceMigrationBuildOrchestratorService } from 'src/engine/workspace-manager/workspace-migration-v2/services/workspace-migration-build-orchestrator.service'; import { WorkspaceMigrationOrchestratorBuildArgs, WorkspaceMigrationOrchestratorFailedResult, } from 'src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type'; import { WorkspaceMigrationRunnerV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/services/workspace-migration-runner-v2.service'; -import { - WorkspaceMigrationV2Exception, - WorkspaceMigrationV2ExceptionCode, -} from 'src/engine/workspace-manager/workspace-migration.exception'; +import { WorkspaceMigrationV2Exception } from 'src/engine/workspace-manager/workspace-migration.exception'; @Injectable() export class WorkspaceMigrationValidateBuildAndRunService { diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type.ts index ab792a8ee9..73a53ca7ed 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/types/workspace-migration-orchestrator.type.ts @@ -1,7 +1,7 @@ import { type FromTo } from 'twenty-shared/types'; +import { type AllMetadataName } from 'twenty-shared/metadata'; import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-maps.type'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type MetadataWorkspaceMigrationActionsRecord } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; import { type FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/find-flat-entity-property-update.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/find-flat-entity-property-update.util.ts index e08c0e01fb..f2cc438650 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/find-flat-entity-property-update.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/find-flat-entity-property-update.util.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type FlatEntityPropertiesToCompare } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type'; import { type FlatEntityPropertiesUpdates } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type'; import { type FlatEntityPropertyUpdate } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-property-update.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/flat-entity-deleted-created-updated-matrix-dispatcher.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/flat-entity-deleted-created-updated-matrix-dispatcher.util.ts index 9d4dd2d60b..315906b51c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/flat-entity-deleted-created-updated-matrix-dispatcher.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/flat-entity-deleted-created-updated-matrix-dispatcher.util.ts @@ -1,9 +1,9 @@ import { type FromTo } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; +import { type AllMetadataName } from 'twenty-shared/metadata'; import { ALL_FLAT_ENTITY_PROPERTIES_TO_COMPARE_AND_STRINGIFY } from 'src/engine/metadata-modules/flat-entity/constant/all-flat-entity-properties-to-compare-and-stringify.constant'; import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/metadata-modules/flat-entity/constant/empty-flat-entity-maps.constant'; -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { type FlatEntityPropertiesToCompare } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-compare.type'; import { type FlatEntityPropertiesToStringify } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-to-stringify.type'; import { type FlatEntityPropertiesUpdates } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/get-metadata-empty-workspace-migration-action-record.util.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/get-metadata-empty-workspace-migration-action-record.util.ts index 8dd7de36e5..63d99ac5c6 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/get-metadata-empty-workspace-migration-action-record.util.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/utils/get-metadata-empty-workspace-migration-action-record.util.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataWorkspaceMigrationActionsRecord } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; export const getMetadataEmptyWorkspaceMigrationActionRecord = < diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/cron-trigger/workspace-migration-v2-cron-trigger-action-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/cron-trigger/workspace-migration-v2-cron-trigger-action-builder.service.ts index 4eed6d8c45..06329ef53d 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/cron-trigger/workspace-migration-v2-cron-trigger-action-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/cron-trigger/workspace-migration-v2-cron-trigger-action-builder.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { UpdateCronTriggerAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/cron-trigger/types/workspace-migration-cron-trigger-action-v2.type'; import { WorkspaceEntityMigrationBuilderV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/database-event-trigger/workspace-migration-v2-database-event-trigger-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/database-event-trigger/workspace-migration-v2-database-event-trigger-actions-builder.service.ts index ba2fd75975..60d983dd04 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/database-event-trigger/workspace-migration-v2-database-event-trigger-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/database-event-trigger/workspace-migration-v2-database-event-trigger-actions-builder.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { UpdateDatabaseEventTriggerAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/database-event-trigger/types/workspace-migration-database-event-trigger-action-v2.type'; import { WorkspaceEntityMigrationBuilderV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/field/workspace-migration-v2-field-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/field/workspace-migration-v2-field-actions-builder.service.ts index c47474ec24..f259cb474d 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/field/workspace-migration-v2-field-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/field/workspace-migration-v2-field-actions-builder.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/index/workspace-migration-v2-index-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/index/workspace-migration-v2-index-actions-builder.service.ts index 6e82178836..cce05d6d2c 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/index/workspace-migration-v2-index-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/index/workspace-migration-v2-index-actions-builder.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/metadata-modules/flat-entity/constant/empty-flat-entity-maps.constant'; import { FlatEntityMapsExceptionCode } from 'src/engine/metadata-modules/flat-entity/exceptions/flat-entity-maps.exception'; import { deleteFlatEntityFromFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/delete-flat-entity-from-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/workspace-migration-v2-object-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/workspace-migration-v2-object-actions-builder.service.ts index 03f6b42fd7..9f8fa839c5 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/workspace-migration-v2-object-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/workspace-migration-v2-object-actions-builder.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { UpdateObjectAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/object/types/workspace-migration-object-action-v2'; import { WorkspaceEntityMigrationBuilderV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/route-trigger/workspace-migration-v2-route-trigger-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/route-trigger/workspace-migration-v2-route-trigger-actions-builder.service.ts index 3c73676eb7..ae9dab46a3 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/route-trigger/workspace-migration-v2-route-trigger-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/route-trigger/workspace-migration-v2-route-trigger-actions-builder.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { UpdateRouteTriggerAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/route-trigger/types/workspace-migration-route-trigger-action-v2.type'; import { WorkspaceEntityMigrationBuilderV2Service } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/serverless-function/workspace-migration-v2-serverless-function-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/serverless-function/workspace-migration-v2-serverless-function-actions-builder.service.ts index 4e797c83d1..bd8bb42e61 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/serverless-function/workspace-migration-v2-serverless-function-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/serverless-function/workspace-migration-v2-serverless-function-actions-builder.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; + import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { UpdateServerlessFunctionAction } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/serverless-function/types/workspace-migration-serverless-function-action-v2.type'; import { diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type.ts index 9464a1d777..37e1f50354 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type.ts @@ -4,13 +4,12 @@ import { type FlatEntity } from 'src/engine/metadata-modules/flat-entity/types/f import { type WorkspaceMigrationActionTypeV2 } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2'; export type FlatEntityValidationError = { - code: TCode; // should be a better extends + code: TCode; message: string; userFriendlyMessage?: MessageDescriptor; value?: unknown; }; -// Should be improved to be scoped to a given set of actions export type FailedFlatEntityValidation = { type: WorkspaceMigrationActionTypeV2; errors: FlatEntityValidationError[]; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-field/workspace-migration-v2-view-field-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-field/workspace-migration-v2-view-field-actions-builder.service.ts index 82688e89d2..b0cc2b35bc 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-field/workspace-migration-v2-view-field-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-field/workspace-migration-v2-view-field-actions-builder.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-filter/workspace-migration-v2-view-filter-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-filter/workspace-migration-v2-view-filter-actions-builder.service.ts index c55dad0078..b78ad8dad3 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-filter/workspace-migration-v2-view-filter-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-filter/workspace-migration-v2-view-filter-actions-builder.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-group/workspace-migration-v2-view-group-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-group/workspace-migration-v2-view-group-actions-builder.service.ts index 67c64b536a..3b1ac05279 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-group/workspace-migration-v2-view-group-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view-group/workspace-migration-v2-view-group-actions-builder.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view/workspace-migration-v2-view-actions-builder.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view/workspace-migration-v2-view-actions-builder.service.ts index e4bb79c920..1c99021bbe 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view/workspace-migration-v2-view-actions-builder.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/view/workspace-migration-v2-view-actions-builder.service.ts @@ -1,8 +1,8 @@ import { Injectable } from '@nestjs/common'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { replaceFlatEntityInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/replace-flat-entity-in-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service.ts index 689e11702e..0b66fa445e 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/services/workspace-entity-migration-builder-v2.service.ts @@ -2,13 +2,13 @@ import { Inject } from '@nestjs/common'; import { type FromTo } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; +import { AllMetadataName } from 'twenty-shared/metadata'; import { LoggerService } from 'src/engine/core-modules/logger/logger.service'; import { FlatEntityMapsException, FlatEntityMapsExceptionCode, } from 'src/engine/metadata-modules/flat-entity/exceptions/flat-entity-maps.exception'; -import { AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { MetadataFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type'; import { MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { addFlatEntityToFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/add-flat-entity-to-flat-entity-maps-or-throw.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/failed-flat-entity-validate-and-build.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/failed-flat-entity-validate-and-build.type.ts index de5dcf644d..96c772c5c0 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/failed-flat-entity-validate-and-build.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/failed-flat-entity-validate-and-build.type.ts @@ -1,6 +1,7 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; -import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type'; +import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { type FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type.ts index 0dcd1a7bef..72fbe44cfb 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type FlatEntityPropertiesUpdates } from 'src/engine/metadata-modules/flat-entity/types/flat-entity-properties-updates.type'; import { type FlatEntityValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type.ts index 923624e4df..43bd0516f1 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type.ts @@ -1,6 +1,7 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; -import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type'; +import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { type WorkspaceMigrationBuilderOptions } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-builder-options.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-result.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-result.type.ts index 8ee09c22e2..82b8b2c509 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-result.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-result.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataFlatEntity } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity.type'; import { type MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { type MetadataWorkspaceMigrationAction } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/successful-flat-entity-validate-and-build.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/successful-flat-entity-validate-and-build.type.ts index f49b9d639d..7d5f915c8a 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/successful-flat-entity-validate-and-build.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/successful-flat-entity-validate-and-build.type.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-flat-entity-maps.type'; import { type MetadataValidationRelatedFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-types.type'; import { type MetadataWorkspaceMigrationActionsRecord } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2.ts index 074a966ef4..9b8dd4d758 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-action-common-v2.ts @@ -1,4 +1,5 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; + import { type MetadataWorkspaceMigrationAction } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; export type WorkspaceMigrationActionV2 = diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-builder-options.type.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-builder-options.type.ts index 5686fc22ad..2d3325570b 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-builder-options.type.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/workspace-migration-builder-options.type.ts @@ -1,4 +1,4 @@ -import { type AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; +import { type AllMetadataName } from 'twenty-shared/metadata'; export type WorkspaceMigrationBuilderOptions = { inferDeletionFromMissingEntities?: Partial>; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-cron-trigger-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-cron-trigger-validator.service.ts index 420b724eab..961388be0a 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-cron-trigger-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-cron-trigger-validator.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; import { CronTriggerExceptionCode } from 'src/engine/metadata-modules/cron-trigger/exceptions/cron-trigger.exception'; import { FlatCronTrigger } from 'src/engine/metadata-modules/cron-trigger/types/flat-cron-trigger.type'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; import { FlatEntityValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-database-event-trigger-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-database-event-trigger-validator.service.ts index 54fe33937f..17e4a247b9 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-database-event-trigger-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-database-event-trigger-validator.service.ts @@ -2,10 +2,10 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; import { DatabaseEventTriggerExceptionCode } from 'src/engine/metadata-modules/database-event-trigger/exceptions/database-event-trigger.exception'; import { FlatDatabaseEventTrigger } from 'src/engine/metadata-modules/database-event-trigger/types/flat-database-event-trigger.type'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; import { FlatEntityUpdateValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-update-validation-args.type'; import { FlatEntityValidationArgs } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/types/flat-entity-validation-args.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service.ts index 64a21f731e..b4d571178e 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-field-metadata-validator.service.ts @@ -2,9 +2,9 @@ import { Injectable } from '@nestjs/common'; import { msg } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; import { FieldMetadataExceptionCode } from 'src/engine/metadata-modules/field-metadata/field-metadata.exception'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { EMPTY_FLAT_ENTITY_MAPS } from 'src/engine/metadata-modules/flat-entity/constant/empty-flat-entity-maps.constant'; import { FLAT_FIELD_METADATA_RELATION_PROPERTIES_TO_COMPARE } from 'src/engine/metadata-modules/flat-field-metadata/constants/flat-field-metadata-relation-properties-to-compare.constant'; import { FlatFieldMetadataTypeValidatorService } from 'src/engine/metadata-modules/flat-field-metadata/services/flat-field-metadata-type-validator.service'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-index-metadata-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-index-metadata-validator.service.ts index 730dd2cf59..27e0bf778f 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-index-metadata-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-index-metadata-validator.service.ts @@ -3,10 +3,10 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { FieldMetadataType } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; import { compositeTypeDefinitions } from 'src/engine/metadata-modules/field-metadata/composite-types'; import { isValidUniqueFieldDefaultValueCombination } from 'src/engine/metadata-modules/field-metadata/utils/is-valid-unique-input.util'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { FlatEntityMapsExceptionCode } from 'src/engine/metadata-modules/flat-entity/exceptions/flat-entity-maps.exception'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { isCompositeFlatFieldMetadata } from 'src/engine/metadata-modules/flat-field-metadata/utils/is-composite-flat-field-metadata.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-object-metadata-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-object-metadata-validator.service.ts index 06a548bc27..d9250c5dd5 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-object-metadata-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-object-metadata-validator.service.ts @@ -1,9 +1,9 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; import { isDefined } from 'twenty-shared/utils'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { FlatObjectMetadata } from 'src/engine/metadata-modules/flat-object-metadata/types/flat-object-metadata.type'; import { validateFlatObjectMetadataIdentifiers } from 'src/engine/metadata-modules/flat-object-metadata/validators/utils/validate-flat-object-metadata-identifiers.util'; import { validateFlatObjectMetadataNameAndLabels } from 'src/engine/metadata-modules/flat-object-metadata/validators/utils/validate-flat-object-metadata-name-and-labels.util'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-route-trigger-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-route-trigger-validator.service.ts index 62cad16ad0..3a56ec4c51 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-route-trigger-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-route-trigger-validator.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { RouteTriggerExceptionCode } from 'src/engine/metadata-modules/route-trigger/exceptions/route-trigger.exception'; import { FlatRouteTrigger } from 'src/engine/metadata-modules/route-trigger/types/flat-route-trigger.type'; import { FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-serverless-function-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-serverless-function-validator.service.ts index 214128d56b..341be845ae 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-serverless-function-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-serverless-function-validator.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { ServerlessFunctionExceptionCode } from 'src/engine/metadata-modules/serverless-function/serverless-function.exception'; import { FlatServerlessFunction } from 'src/engine/metadata-modules/serverless-function/types/flat-serverless-function.type'; import { FailedFlatEntityValidation } from 'src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/builders/types/failed-flat-entity-validation.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-field-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-field-validator.service.ts index 88f2c18b26..a5b4fc8236 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-field-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-field-validator.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { findManyFlatEntityByIdInFlatEntityMapsOrThrow } from 'src/engine/metadata-modules/flat-entity/utils/find-many-flat-entity-by-id-in-flat-entity-maps-or-throw.util'; import { FlatViewField } from 'src/engine/metadata-modules/flat-view-field/types/flat-view-field.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-filter-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-filter-validator.service.ts index 2783a2cdea..4d380e618f 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-filter-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-filter-validator.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { type FlatViewFilter } from 'src/engine/metadata-modules/flat-view-filter/types/flat-view-filter.type'; import { ViewFilterExceptionCode } from 'src/engine/metadata-modules/view-filter/exceptions/view-filter.exception'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-group-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-group-validator.service.ts index ce5295cf34..5c80bffa2b 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-group-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-group-validator.service.ts @@ -2,8 +2,8 @@ import { Injectable } from '@nestjs/common'; import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { FlatViewGroup } from 'src/engine/metadata-modules/flat-view-group/types/flat-view-group.type'; import { ViewExceptionCode } from 'src/engine/metadata-modules/view/exceptions/view.exception'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-validator.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-validator.service.ts index d1a7d133d2..6c7a2deb35 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-validator.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-builder-v2/validators/services/flat-view-validator.service.ts @@ -1,7 +1,7 @@ import { msg, t } from '@lingui/core/macro'; import { isDefined } from 'twenty-shared/utils'; +import { type ALL_METADATA_NAME } from 'twenty-shared/metadata'; -import { type ALL_METADATA_NAME } from 'src/engine/metadata-modules/flat-entity/constant/all-metadata-name.constant'; import { findFlatEntityByIdInFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/utils/find-flat-entity-by-id-in-flat-entity-maps.util'; import { type FlatView } from 'src/engine/metadata-modules/flat-view/types/flat-view.type'; import { ViewExceptionCode } from 'src/engine/metadata-modules/view/exceptions/view.exception'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/interfaces/workspace-migration-runner-action-handler-service.interface.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/interfaces/workspace-migration-runner-action-handler-service.interface.ts index 94b51e2a34..d1fed02cf0 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/interfaces/workspace-migration-runner-action-handler-service.interface.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration-v2/workspace-migration-runner-v2/interfaces/workspace-migration-runner-action-handler-service.interface.ts @@ -1,8 +1,9 @@ import { Inject, SetMetadata } from '@nestjs/common'; +import { AllMetadataName } from 'twenty-shared/metadata'; + import { LoggerService } from 'src/engine/core-modules/logger/logger.service'; import { type AllFlatEntityMaps } from 'src/engine/metadata-modules/flat-entity/types/all-flat-entity-maps.type'; -import { AllMetadataName } from 'src/engine/metadata-modules/flat-entity/types/all-metadata-name.type'; import { MetadataRelatedFlatEntityMapsKeys } from 'src/engine/metadata-modules/flat-entity/types/metadata-related-flat-entity-maps-keys.type'; import { MetadataToFlatEntityMapsKey } from 'src/engine/metadata-modules/flat-entity/types/metadata-to-flat-entity-maps-key'; import { FromWorkspaceMigrationActionToMetadataName } from 'src/engine/metadata-modules/flat-entity/types/metadata-workspace-migration-action.type'; diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration.exception.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration.exception.ts index 2d24e26b27..12f68cd193 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration.exception.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration.exception.ts @@ -1,8 +1,5 @@ +import { type WorkspaceMigrationV2ExceptionCode } from 'twenty-shared/metadata'; + import { CustomException } from 'src/utils/custom-exception'; export class WorkspaceMigrationV2Exception extends CustomException {} - -export enum WorkspaceMigrationV2ExceptionCode { - BUILDER_INTERNAL_SERVER_ERROR = 'BUILDER_INTERNAL_SERVER_ERROR', - RUNNER_INTERNAL_SERVER_ERROR = 'RUNNER_INTERNAL_SERVER_ERROR', -} diff --git a/packages/twenty-server/test/integration/graphql/suites/group-by-resolver.integration-spec.ts b/packages/twenty-server/test/integration/graphql/suites/group-by-resolver.integration-spec.ts index 5f8497ff7a..0d176af3a4 100644 --- a/packages/twenty-server/test/integration/graphql/suites/group-by-resolver.integration-spec.ts +++ b/packages/twenty-server/test/integration/graphql/suites/group-by-resolver.integration-spec.ts @@ -9,7 +9,7 @@ import { makeGraphqlAPIRequest } from 'test/integration/graphql/utils/make-graph import { findManyObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata.util'; import { createOneCoreViewFilter } from 'test/integration/metadata/suites/view-filter/utils/create-one-core-view-filter.util'; import { createOneCoreView } from 'test/integration/metadata/suites/view/utils/create-one-core-view.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { ViewFilterOperand } from 'twenty-shared/types'; import { type FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto'; diff --git a/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/failing-create-view-field-v2.integration-spec.ts.snap b/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/failing-create-view-field-v2.integration-spec.ts.snap index e09312f8b5..4842d9e52b 100644 --- a/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/failing-create-view-field-v2.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/failing-create-view-field-v2.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`View Field Resolver - Failing Create Operation - v2 Should fail to create a conflicting view field on view and field metadata 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -59,7 +59,7 @@ exports[`View Field Resolver - Failing Create Operation - v2 Should fail to crea exports[`View Field Resolver - Failing Create Operation - v2 should fail to create view field when non-existent field metadata 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -115,7 +115,7 @@ exports[`View Field Resolver - Failing Create Operation - v2 should fail to crea exports[`View Field Resolver - Failing Create Operation - v2 should fail to create view field when non-existent view metadata 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/object-identifier-update-side-effect-on-view-field.integration-spec.ts.snap b/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/object-identifier-update-side-effect-on-view-field.integration-spec.ts.snap index 7bad3ed92d..dec21dc50f 100644 --- a/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/object-identifier-update-side-effect-on-view-field.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/graphql/suites/view/view-field/__snapshots__/object-identifier-update-side-effect-on-view-field.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`View Field Resolver - Successful object metadata identifier update side effect on view field Should not allow creating a view field with a position lower than the label identifier view field 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -59,7 +59,7 @@ exports[`View Field Resolver - Successful object metadata identifier update side exports[`View Field Resolver - Successful object metadata identifier update side effect on view field Should not allow deleting a label identifier view field 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -115,7 +115,7 @@ exports[`View Field Resolver - Successful object metadata identifier update side exports[`View Field Resolver - Successful object metadata identifier update side effect on view field Should not allow destroying a label identifier view field 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -169,7 +169,7 @@ exports[`View Field Resolver - Successful object metadata identifier update side exports[`View Field Resolver - Successful object metadata identifier update side effect on view field Should not allow updating a label identifier view field visibility to false 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -225,7 +225,7 @@ exports[`View Field Resolver - Successful object metadata identifier update side exports[`View Field Resolver - Successful object metadata identifier update side effect on view field Should not allow updating labelIdentifier view field with a position higher than existing other view field 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/graphql/utils/graphql-test-assertions.util.ts b/packages/twenty-server/test/integration/graphql/utils/graphql-test-assertions.util.ts index 3405c71146..c9b6442e25 100644 --- a/packages/twenty-server/test/integration/graphql/utils/graphql-test-assertions.util.ts +++ b/packages/twenty-server/test/integration/graphql/utils/graphql-test-assertions.util.ts @@ -1,5 +1,5 @@ -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { type BaseGraphQLError, diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/create-one-field-metadata.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/create-one-field-metadata.integration-spec.ts.snap index 60e9a81311..644f52d61e 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/create-one-field-metadata.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/create-one-field-metadata.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`createOne FieldMetadataService name/label sync should return an error when name and label are not synced but isLabelSyncedWithName is true 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/update-one-field-metadata.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/update-one-field-metadata.integration-spec.ts.snap index ca4d100c04..09c7f7a047 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/update-one-field-metadata.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/__snapshots__/update-one-field-metadata.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`updateOne failing update should not update a field name if it is not sy [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -62,7 +62,7 @@ exports[`updateOne failing update should throw if the field name is not availabl [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-create-one-field-metadata-enum-v2.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-create-one-field-metadata-enum-v2.integration-spec.ts.snap index dd6269f94a..21044fc4dc 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-create-one-field-metadata-enum-v2.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-create-one-field-metadata-enum-v2.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -63,7 +63,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -122,7 +122,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -180,7 +180,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -253,7 +253,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -326,7 +326,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -399,7 +399,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -472,7 +472,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -530,7 +530,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -589,7 +589,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -652,7 +652,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -710,7 +710,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -769,7 +769,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -827,7 +827,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -900,7 +900,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -958,7 +958,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1016,7 +1016,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1075,7 +1075,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1134,7 +1134,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1192,7 +1192,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1251,7 +1251,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1309,7 +1309,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1372,7 +1372,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1430,7 +1430,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1489,7 +1489,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1547,7 +1547,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1610,7 +1610,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1668,7 +1668,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1727,7 +1727,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1785,7 +1785,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1848,7 +1848,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1906,7 +1906,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1964,7 +1964,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2027,7 +2027,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2085,7 +2085,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2143,7 +2143,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2202,7 +2202,7 @@ exports[`Failing create field metadata MULTI_SELECT tests suite v2 Create should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2260,7 +2260,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2323,7 +2323,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2381,7 +2381,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2439,7 +2439,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2512,7 +2512,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2585,7 +2585,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2658,7 +2658,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2731,7 +2731,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2790,7 +2790,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2853,7 +2853,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2911,7 +2911,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2970,7 +2970,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3028,7 +3028,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3086,7 +3086,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3144,7 +3144,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3203,7 +3203,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3261,7 +3261,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3320,7 +3320,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3378,7 +3378,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3441,7 +3441,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3499,7 +3499,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3558,7 +3558,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3616,7 +3616,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3679,7 +3679,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3737,7 +3737,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3796,7 +3796,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3854,7 +3854,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3917,7 +3917,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3975,7 +3975,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4033,7 +4033,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4096,7 +4096,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4154,7 +4154,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4212,7 +4212,7 @@ exports[`Failing create field metadata SELECT tests suite v2 Create should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-update-one-enum-field-metadata-v2.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-update-one-enum-field-metadata-v2.integration-spec.ts.snap index f51467921a..4339031111 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-update-one-enum-field-metadata-v2.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/enum/__snapshots__/failing-update-one-enum-field-metadata-v2.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -63,7 +63,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -122,7 +122,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -180,7 +180,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -253,7 +253,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -326,7 +326,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -399,7 +399,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -472,7 +472,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -530,7 +530,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -589,7 +589,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -652,7 +652,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -710,7 +710,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -769,7 +769,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -827,7 +827,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -900,7 +900,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -958,7 +958,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1016,7 +1016,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1075,7 +1075,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1134,7 +1134,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1192,7 +1192,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1251,7 +1251,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1309,7 +1309,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1372,7 +1372,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1430,7 +1430,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1488,7 +1488,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1551,7 +1551,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1609,7 +1609,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1668,7 +1668,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1726,7 +1726,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1789,7 +1789,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1847,7 +1847,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1905,7 +1905,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1968,7 +1968,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2026,7 +2026,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2084,7 +2084,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2142,7 +2142,7 @@ exports[`Failing update field metadata MULTI_SELECT tests suite v2 Update should [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2200,7 +2200,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2263,7 +2263,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2321,7 +2321,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2379,7 +2379,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2452,7 +2452,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2525,7 +2525,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2598,7 +2598,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2671,7 +2671,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2730,7 +2730,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2793,7 +2793,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2851,7 +2851,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2910,7 +2910,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2968,7 +2968,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3026,7 +3026,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3084,7 +3084,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3143,7 +3143,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3201,7 +3201,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3260,7 +3260,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3318,7 +3318,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3381,7 +3381,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3439,7 +3439,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3497,7 +3497,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3560,7 +3560,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3618,7 +3618,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3677,7 +3677,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3735,7 +3735,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3798,7 +3798,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3856,7 +3856,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3914,7 +3914,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3977,7 +3977,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4035,7 +4035,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4093,7 +4093,7 @@ exports[`Failing update field metadata SELECT tests suite v2 Update should fail [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/failing-update-one-standard-field-metadata.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/field-metadata/failing-update-one-standard-field-metadata.integration-spec.ts index f69407fb6c..8d9fa1d454 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/failing-update-one-standard-field-metadata.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/failing-update-one-standard-field-metadata.integration-spec.ts @@ -1,7 +1,7 @@ import { expectOneNotInternalServerErrorSnapshot } from 'test/integration/graphql/utils/expect-one-not-internal-server-error-snapshot.util'; import { updateOneFieldMetadata } from 'test/integration/metadata/suites/field-metadata/utils/update-one-field-metadata.util'; import { findManyObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { eachTestingContextFilter, type EachTestingContext, diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/morph-relation/__snapshots__/failing-create-one-field-metadata-morph-relation-v2.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/morph-relation/__snapshots__/failing-create-one-field-metadata-morph-relation-v2.integration-spec.ts.snap index fb79527be4..ba30b23624 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/morph-relation/__snapshots__/failing-create-one-field-metadata-morph-relation-v2.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/morph-relation/__snapshots__/failing-create-one-field-metadata-morph-relation-v2.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 Morh relation collision tests suite it should fail to create a already existing morph relation with samefield 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -108,7 +108,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 Morh re exports[`failing createOne FieldMetadataService morph relation fields v2 Morh relation collision tests suite it should fail to create a field with name than result in existing morph relation field join column 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -165,7 +165,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 Morh re exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field on source object itself 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -216,7 +216,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field that has several references to same object 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -267,7 +267,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when targetFieldLabel contains only whitespace 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -346,7 +346,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when targetFieldLabel exceeds maximum length 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -419,7 +419,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when targetFieldLabel has a first degree conflicts with an existing field on target object metadata id 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -492,7 +492,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when targetFieldLabel is empty 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -571,7 +571,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when targetObjectMetadataId is unknown 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -630,7 +630,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when type is a wrong value 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -689,7 +689,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field when type is not provided 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -747,7 +747,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with empty morphRelationCreationPayload 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -798,7 +798,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with malformed morphRelationCreationPayload occurrence 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -849,7 +849,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with many relation types 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -900,7 +900,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with not an array morphRelationCreationPayload 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -954,7 +954,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with null morphRelationCreationPayload 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1006,7 +1006,7 @@ exports[`failing createOne FieldMetadataService morph relation fields v2 it shou exports[`failing createOne FieldMetadataService morph relation fields v2 it should fail to create a MORPH_RELATION field with undefined morphRelationCreationPayload 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-creation.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-creation.integration-spec.ts.snap index 38c8c0dff1..fddc198911 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-creation.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-creation.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -63,7 +63,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -122,7 +122,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -187,7 +187,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -246,7 +246,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -311,7 +311,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -370,7 +370,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -429,7 +429,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -487,7 +487,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE when [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -578,7 +578,7 @@ exports[`Field metadata relation creation should fail relation MANY_TO_ONE when [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -637,7 +637,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -712,7 +712,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -787,7 +787,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -868,7 +868,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -943,7 +943,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1024,7 +1024,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1083,7 +1083,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1142,7 +1142,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY (rela [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1200,7 +1200,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY when [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1291,7 +1291,7 @@ exports[`Field metadata relation creation should fail relation ONE_TO_MANY when [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-update.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-update.integration-spec.ts.snap index dcbcc7b29b..eab957c4af 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-update.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/relation/__snapshots__/failing-field-metadata-relation-update.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`Field metadata relation update should fail relation when name is change [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -78,7 +78,7 @@ exports[`Field metadata relation update should fail relation when name is not in [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/successful-update-one-standard-field-metadata.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/field-metadata/successful-update-one-standard-field-metadata.integration-spec.ts index e037c8b396..254b12b5d1 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/successful-update-one-standard-field-metadata.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/successful-update-one-standard-field-metadata.integration-spec.ts @@ -1,7 +1,7 @@ import { updateOneFieldMetadata } from 'test/integration/metadata/suites/field-metadata/utils/update-one-field-metadata.util'; import { findManyObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { eachTestingContextFilter, type EachTestingContext, diff --git a/packages/twenty-server/test/integration/metadata/suites/field-metadata/unique-field/__snapshots__/create-one-unique-field-metadata.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/field-metadata/unique-field/__snapshots__/create-one-unique-field-metadata.integration-spec.ts.snap index 041ac9c9eb..f877f706e2 100644 --- a/packages/twenty-server/test/integration/metadata/suites/field-metadata/unique-field/__snapshots__/create-one-unique-field-metadata.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/field-metadata/unique-field/__snapshots__/create-one-unique-field-metadata.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`failing createOne unique field metadata should fail for composite type without unique subfields (FULL_NAME) 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -58,7 +58,7 @@ exports[`failing createOne unique field metadata should fail for composite type exports[`failing createOne unique field metadata should fail when field has custom default value 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/index/successful-index-creation-on-object-creation-v2.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/index/successful-index-creation-on-object-creation-v2.integration-spec.ts index 6dd72cbef0..aa65321698 100644 --- a/packages/twenty-server/test/integration/metadata/suites/index/successful-index-creation-on-object-creation-v2.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/index/successful-index-creation-on-object-creation-v2.integration-spec.ts @@ -3,7 +3,7 @@ import { createOneObjectMetadata } from 'test/integration/metadata/suites/object import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util'; import { findManyObjectMetadataWithIndexes } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata-with-indexes.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { FieldMetadataType } from 'twenty-shared/types'; const findObjectWithIndex = async ({ diff --git a/packages/twenty-server/test/integration/metadata/suites/index/successful-index-on-relation-field-v2.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/index/successful-index-on-relation-field-v2.integration-spec.ts index 8df59956ae..78363d616c 100644 --- a/packages/twenty-server/test/integration/metadata/suites/index/successful-index-on-relation-field-v2.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/index/successful-index-on-relation-field-v2.integration-spec.ts @@ -7,8 +7,8 @@ import { createOneObjectMetadata } from 'test/integration/metadata/suites/object import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util'; import { findManyObjectMetadataWithIndexes } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata-with-indexes.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { FieldMetadataType, RelationType } from 'twenty-shared/types'; describe('Index metadata creation on relation field creation v2', () => { diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-create-one-object-metadata-v2.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-create-one-object-metadata-v2.integration-spec.ts.snap index 60751bfffd..f0e0fd5d72 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-create-one-object-metadata-v2.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-create-one-object-metadata-v2.integration-spec.ts.snap @@ -3,7 +3,7 @@ exports[`Object metadata creation should fail v2 when labelPlural contains only whitespace 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -616,7 +616,7 @@ exports[`Object metadata creation should fail v2 when labelPlural contains only exports[`Object metadata creation should fail v2 when labelPlural exceeds maximum length 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1229,7 +1229,7 @@ exports[`Object metadata creation should fail v2 when labelPlural exceeds maximu exports[`Object metadata creation should fail v2 when labelPlural is empty 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -1842,7 +1842,7 @@ exports[`Object metadata creation should fail v2 when labelPlural is empty 1`] = exports[`Object metadata creation should fail v2 when labelSingular contains only whitespace 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -2455,7 +2455,7 @@ exports[`Object metadata creation should fail v2 when labelSingular contains onl exports[`Object metadata creation should fail v2 when labelSingular exceeds maximum length 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3068,7 +3068,7 @@ exports[`Object metadata creation should fail v2 when labelSingular exceeds maxi exports[`Object metadata creation should fail v2 when labelSingular is empty 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -3681,7 +3681,7 @@ exports[`Object metadata creation should fail v2 when labelSingular is empty 1`] exports[`Object metadata creation should fail v2 when labels are identical 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4295,7 +4295,7 @@ exports[`Object metadata creation should fail v2 when labels are identical 1`] = exports[`Object metadata creation should fail v2 when labels with whitespaces result to be identical 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -4909,7 +4909,7 @@ exports[`Object metadata creation should fail v2 when labels with whitespaces re exports[`Object metadata creation should fail v2 when name exceeds maximum length 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -5552,7 +5552,7 @@ exports[`Object metadata creation should fail v2 when name exceeds maximum lengt exports[`Object metadata creation should fail v2 when namePlural has invalid characters 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -6165,7 +6165,7 @@ exports[`Object metadata creation should fail v2 when namePlural has invalid cha exports[`Object metadata creation should fail v2 when namePlural is a reserved keyword 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -6778,7 +6778,7 @@ exports[`Object metadata creation should fail v2 when namePlural is a reserved k exports[`Object metadata creation should fail v2 when namePlural is an empty string 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -7396,7 +7396,7 @@ exports[`Object metadata creation should fail v2 when namePlural is an empty str exports[`Object metadata creation should fail v2 when namePlural is not camelCased 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -8014,7 +8014,7 @@ exports[`Object metadata creation should fail v2 when namePlural is not camelCas exports[`Object metadata creation should fail v2 when nameSingular contains only one char and whitespaces 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -8692,7 +8692,7 @@ exports[`Object metadata creation should fail v2 when nameSingular contains only exports[`Object metadata creation should fail v2 when nameSingular contains only whitespaces 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -9370,7 +9370,7 @@ exports[`Object metadata creation should fail v2 when nameSingular contains only exports[`Object metadata creation should fail v2 when nameSingular has invalid characters 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -10013,7 +10013,7 @@ exports[`Object metadata creation should fail v2 when nameSingular has invalid c exports[`Object metadata creation should fail v2 when nameSingular is a reserved keyword 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -10656,7 +10656,7 @@ exports[`Object metadata creation should fail v2 when nameSingular is a reserved exports[`Object metadata creation should fail v2 when nameSingular is an empty string 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -11334,7 +11334,7 @@ exports[`Object metadata creation should fail v2 when nameSingular is an empty s exports[`Object metadata creation should fail v2 when nameSingular is not camelCased 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -12012,7 +12012,7 @@ exports[`Object metadata creation should fail v2 when nameSingular is not camelC exports[`Object metadata creation should fail v2 when names are identical 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -12626,7 +12626,7 @@ exports[`Object metadata creation should fail v2 when names are identical 1`] = exports[`Object metadata creation should fail v2 when names with whitespaces result to be identical 1`] = ` { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-update-one-object-metadata.integration-spec.ts.snap b/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-update-one-object-metadata.integration-spec.ts.snap index 140c563ef0..c199b171d4 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-update-one-object-metadata.integration-spec.ts.snap +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/__snapshots__/failing-update-one-object-metadata.integration-spec.ts.snap @@ -4,7 +4,7 @@ exports[`Object metadata update should fail when labelIdentifier is not a TEXT o [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -79,7 +79,7 @@ exports[`Object metadata update should fail when labelIdentifier is not a known [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], @@ -176,7 +176,7 @@ exports[`Object metadata update should fail when labelIdentifier is null 1`] = ` [ { "extensions": { - "code": "BAD_USER_INPUT", + "code": "METADATA_VALIDATION_FAILED", "errors": { "cronTrigger": [], "databaseEventTrigger": [], diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/failing-update-one-standard-object-metadata.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/object-metadata/failing-update-one-standard-object-metadata.integration-spec.ts index 471b7cc789..fe74653b94 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/failing-update-one-standard-object-metadata.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/failing-update-one-standard-object-metadata.integration-spec.ts @@ -1,7 +1,7 @@ import { expectOneNotInternalServerErrorSnapshot } from 'test/integration/graphql/utils/expect-one-not-internal-server-error-snapshot.util'; import { findManyObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { eachTestingContextFilter, type EachTestingContext, diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/morph-relation/delete-one-object-metadata-with-morph-relation.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/object-metadata/morph-relation/delete-one-object-metadata-with-morph-relation.integration-spec.ts index 09bf5ac81d..b595548b6e 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/morph-relation/delete-one-object-metadata-with-morph-relation.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/morph-relation/delete-one-object-metadata-with-morph-relation.integration-spec.ts @@ -4,8 +4,8 @@ import { createOneObjectMetadata } from 'test/integration/metadata/suites/object import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; import { makeMetadataAPIRequest } from 'test/integration/metadata/suites/utils/make-metadata-api-request.util'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { FieldMetadataType } from 'twenty-shared/types'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { isDefined } from 'twenty-shared/utils'; import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/relation/delete-one-object-metadata-with-relation.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/object-metadata/relation/delete-one-object-metadata-with-relation.integration-spec.ts index 7ea6ff8a43..883c9dc147 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/relation/delete-one-object-metadata-with-relation.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/relation/delete-one-object-metadata-with-relation.integration-spec.ts @@ -1,12 +1,12 @@ import { findManyFieldsMetadataQueryFactory } from 'test/integration/metadata/suites/field-metadata/utils/find-many-fields-metadata-query-factory.util'; +import { createOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/create-one-object-metadata.util'; import { createRelationBetweenObjects } from 'test/integration/metadata/suites/object-metadata/utils/create-relation-between-objects.util'; import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; import { makeMetadataAPIRequest } from 'test/integration/metadata/suites/utils/make-metadata-api-request.util'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { type EachTestingContext } from 'twenty-shared/testing'; import { FieldMetadataType } from 'twenty-shared/types'; -import { createOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/create-one-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { isDefined } from 'twenty-shared/utils'; import { RelationType } from 'src/engine/metadata-modules/field-metadata/interfaces/relation-type.interface'; diff --git a/packages/twenty-server/test/integration/metadata/suites/object-metadata/successful-update-one-standard-object-metadata.integration-spec.ts b/packages/twenty-server/test/integration/metadata/suites/object-metadata/successful-update-one-standard-object-metadata.integration-spec.ts index b0de7b75af..a6d59c6156 100644 --- a/packages/twenty-server/test/integration/metadata/suites/object-metadata/successful-update-one-standard-object-metadata.integration-spec.ts +++ b/packages/twenty-server/test/integration/metadata/suites/object-metadata/successful-update-one-standard-object-metadata.integration-spec.ts @@ -1,7 +1,7 @@ import { findManyObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/find-many-object-metadata.util'; import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util'; -import { jestExpectToBeDefined } from 'test/utils/expect-to-be-defined.util.test'; import { extractRecordIdsAndDatesAsExpectAny } from 'test/utils/extract-record-ids-and-dates-as-expect-any'; +import { jestExpectToBeDefined } from 'test/utils/jest-expect-to-be-defined.util.test'; import { eachTestingContextFilter, type EachTestingContext, diff --git a/packages/twenty-server/test/utils/expect-to-be-defined.util.test.ts b/packages/twenty-server/test/utils/jest-expect-to-be-defined.util.test.ts similarity index 65% rename from packages/twenty-server/test/utils/expect-to-be-defined.util.test.ts rename to packages/twenty-server/test/utils/jest-expect-to-be-defined.util.test.ts index 87661903d6..043bc8721d 100644 --- a/packages/twenty-server/test/utils/expect-to-be-defined.util.test.ts +++ b/packages/twenty-server/test/utils/jest-expect-to-be-defined.util.test.ts @@ -1,6 +1,6 @@ type AssertIsDefined = (value: T) => asserts value is NonNullable; -export const jestExpectToBeDefined: AssertIsDefined = (value: T) => { +export const jestExpectToBeDefined: AssertIsDefined = (value) => { expect(value).toBeDefined(); expect(value).not.toBeNull(); }; diff --git a/packages/twenty-shared/package.json b/packages/twenty-shared/package.json index 5f56ac51ea..5b63203b68 100644 --- a/packages/twenty-shared/package.json +++ b/packages/twenty-shared/package.json @@ -14,6 +14,7 @@ }, "devDependencies": { "@babel/preset-env": "^7.26.9", + "@lingui/core": "^5.5.1", "@prettier/sync": "^0.5.2", "@types/babel__preset-env": "^7", "@types/handlebars": "^4.1.0", @@ -48,6 +49,11 @@ "import": "./dist/constants.mjs", "require": "./dist/constants.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", @@ -83,6 +89,7 @@ "dist", "ai", "constants", + "metadata", "testing", "translations", "types", @@ -98,6 +105,9 @@ "constants": [ "dist/constants/index.d.ts" ], + "metadata": [ + "dist/metadata/index.d.ts" + ], "testing": [ "dist/testing/index.d.ts" ], diff --git a/packages/twenty-shared/project.json b/packages/twenty-shared/project.json index cd4aad853c..f8fd5a97ed 100644 --- a/packages/twenty-shared/project.json +++ b/packages/twenty-shared/project.json @@ -18,6 +18,8 @@ "{projectRoot}/ai/dist", "{projectRoot}/constants/package.json", "{projectRoot}/constants/dist", + "{projectRoot}/metadata/package.json", + "{projectRoot}/metadata/dist", "{projectRoot}/testing/package.json", "{projectRoot}/testing/dist", "{projectRoot}/translations/package.json", diff --git a/packages/twenty-shared/src/metadata/MetadataValidationError.ts b/packages/twenty-shared/src/metadata/MetadataValidationError.ts new file mode 100644 index 0000000000..fa23696c0c --- /dev/null +++ b/packages/twenty-shared/src/metadata/MetadataValidationError.ts @@ -0,0 +1,30 @@ +import { type AllMetadataName } from '@/metadata/all-metadata-name.type'; + +export type FailedMetadataValidationError = { + code: string; + message: string; + userFriendlyMessage?: string; + value?: unknown; +}; + +export type FailedMetadataValidation = { + type: string; + errors: FailedMetadataValidationError[]; + flatEntityMinimalInformation: Record; +}; + +export type MetadataValidationErrorResponse = { + summary: { + totalErrors: number; + } & { + [P in AllMetadataName as `invalid${Capitalize

}`]: number; + }; + errors: { + [P in AllMetadataName]: FailedMetadataValidation[]; + }; +}; + +export enum WorkspaceMigrationV2ExceptionCode { + BUILDER_INTERNAL_SERVER_ERROR = 'BUILDER_INTERNAL_SERVER_ERROR', + RUNNER_INTERNAL_SERVER_ERROR = 'RUNNER_INTERNAL_SERVER_ERROR', +} diff --git a/packages/twenty-shared/src/metadata/all-metadata-name.constant.ts b/packages/twenty-shared/src/metadata/all-metadata-name.constant.ts new file mode 100644 index 0000000000..ba65f2c301 --- /dev/null +++ b/packages/twenty-shared/src/metadata/all-metadata-name.constant.ts @@ -0,0 +1,13 @@ +export const ALL_METADATA_NAME = { + fieldMetadata: 'fieldMetadata', + objectMetadata: 'objectMetadata', + view: 'view', + viewField: 'viewField', + viewGroup: 'viewGroup', + index: 'index', + serverlessFunction: 'serverlessFunction', + cronTrigger: 'cronTrigger', + databaseEventTrigger: 'databaseEventTrigger', + routeTrigger: 'routeTrigger', + viewFilter: 'viewFilter', +} as const; diff --git a/packages/twenty-shared/src/metadata/all-metadata-name.type.ts b/packages/twenty-shared/src/metadata/all-metadata-name.type.ts new file mode 100644 index 0000000000..5243cb289a --- /dev/null +++ b/packages/twenty-shared/src/metadata/all-metadata-name.type.ts @@ -0,0 +1,3 @@ +import { type ALL_METADATA_NAME } from '@/metadata/all-metadata-name.constant'; + +export type AllMetadataName = keyof typeof ALL_METADATA_NAME; diff --git a/packages/twenty-shared/src/metadata/index.ts b/packages/twenty-shared/src/metadata/index.ts new file mode 100644 index 0000000000..210424d4ee --- /dev/null +++ b/packages/twenty-shared/src/metadata/index.ts @@ -0,0 +1,17 @@ +/* + * _____ _ + *|_ _|_ _____ _ __ | |_ _ _ + * | | \ \ /\ / / _ \ '_ \| __| | | | Auto-generated file + * | | \ V V / __/ | | | |_| |_| | Any edits to this will be overridden + * |_| \_/\_/ \___|_| |_|\__|\__, | + * |___/ + */ + +export { ALL_METADATA_NAME } from './all-metadata-name.constant'; +export type { AllMetadataName } from './all-metadata-name.type'; +export type { + FailedMetadataValidationError, + FailedMetadataValidation, + MetadataValidationErrorResponse, +} from './MetadataValidationError'; +export { WorkspaceMigrationV2ExceptionCode } from './MetadataValidationError'; diff --git a/yarn.lock b/yarn.lock index 7242c3a4a2..619331165e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9199,6 +9199,24 @@ __metadata: languageName: node linkType: hard +"@lingui/core@npm:^5.5.1": + version: 5.5.1 + resolution: "@lingui/core@npm:5.5.1" + dependencies: + "@babel/runtime": "npm:^7.20.13" + "@lingui/message-utils": "npm:5.5.1" + peerDependencies: + "@lingui/babel-plugin-lingui-macro": 5.5.1 + babel-plugin-macros: 2 || 3 + peerDependenciesMeta: + "@lingui/babel-plugin-lingui-macro": + optional: true + babel-plugin-macros: + optional: true + checksum: 10c0/8d416fbefb63beec51e6e293f7143089db3a9910095482502099afd82ce873d20cefd69ecc489617da6f85e94ac1583c53825a906be8146db041c6b430b37b37 + languageName: node + linkType: hard + "@lingui/detect-locale@npm:^5.2.0": version: 5.2.0 resolution: "@lingui/detect-locale@npm:5.2.0" @@ -9218,6 +9236,16 @@ __metadata: languageName: node linkType: hard +"@lingui/message-utils@npm:5.5.1": + version: 5.5.1 + resolution: "@lingui/message-utils@npm:5.5.1" + dependencies: + "@messageformat/parser": "npm:^5.0.0" + js-sha256: "npm:^0.10.1" + checksum: 10c0/4049edf098d163a2f5eba2e3c00c6a7d3fd313fb3c9c382d34688bcf9391c0f123103d327d66aa694e78abd41b11fdb35034a5289a59222e1ae027bbc05cfb8a + languageName: node + linkType: hard + "@lingui/message-utils@npm:^5.1.2": version: 5.1.2 resolution: "@lingui/message-utils@npm:5.1.2" @@ -52846,6 +52874,7 @@ __metadata: resolution: "twenty-shared@workspace:packages/twenty-shared" dependencies: "@babel/preset-env": "npm:^7.26.9" + "@lingui/core": "npm:^5.5.1" "@prettier/sync": "npm:^0.5.2" "@sniptt/guards": "npm:^0.2.0" "@types/babel__preset-env": "npm:^7"