Compile with swc on twenty-server (#4863)

Experiment using swc instead of tsc (as we did the switch on
twenty-front)

It's **much** faster (at least 5x) but has stricter requirements.
I fixed the build but there's still an error while starting the server,
opening this PR for discussion.

Checkout the branch and try `nx build:swc twenty-server`

Read: https://docs.nestjs.com/recipes/swc#common-pitfalls
This commit is contained in:
Félix Malfait 2024-04-14 09:09:51 +02:00 committed by GitHub
parent f82b1ff9ef
commit 9aa24ed803
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
50 changed files with 600 additions and 152 deletions

View File

@ -220,6 +220,7 @@
"@storybook/testing-library": "^0.2.2",
"@stylistic/eslint-plugin": "^1.5.0",
"@swc-node/register": "1.8.0",
"@swc/cli": "^0.3.12",
"@swc/core": "~1.3.100",
"@swc/helpers": "~0.5.2",
"@testing-library/jest-dom": "^6.1.5",

View File

@ -0,0 +1,14 @@
{
"$schema": "https://json.schemastore.org/swcrc",
"sourceMaps": true,
"jsc": {
"parser": {
"syntax": "typescript",
"decorators": true,
"dynamicImport": true
},
"baseUrl": "./../../"
},
"minify": false
}

View File

@ -6,3 +6,9 @@ type DeepPartial<T> = {
// eslint-disable-next-line @typescript-eslint/ban-types
type ExcludeFunctions<T> = T extends Function ? never : T;
/**
* Wrapper type used to circumvent ESM modules circular dependency issue
* caused by reflection metadata saving the type of the property.
*/
type CircularDep<T> = T;

View File

@ -1,5 +1,9 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
"sourceRoot": "src",
"compilerOptions": {
"builder": "swc",
"typeCheck": true
}
}

View File

@ -9,7 +9,7 @@
"cwd": "packages/twenty-server",
"commands": ["rimraf dist", "nest build --path ./tsconfig.build.json"]
}
},
},
"build:packageJson": {
"executor": "@nx/js:tsc",
"options": {

View File

@ -25,7 +25,7 @@ export class RelationFieldAliasFactory {
constructor(
@Inject(forwardRef(() => FieldsStringFactory))
private readonly fieldsStringFactory: FieldsStringFactory,
private readonly fieldsStringFactory: CircularDep<FieldsStringFactory>,
private readonly argsStringFactory: ArgsStringFactory,
private readonly objectMetadataService: ObjectMetadataService,
) {}

View File

@ -30,7 +30,7 @@ export interface InputTypeDefinition {
export class InputTypeDefinitionFactory {
constructor(
@Inject(forwardRef(() => InputTypeFactory))
private readonly inputTypeFactory: InputTypeFactory,
private readonly inputTypeFactory: CircularDep<InputTypeFactory>,
private readonly typeMapperService: TypeMapperService,
) {}

View File

@ -8,6 +8,7 @@ import {
JoinColumn,
CreateDateColumn,
UpdateDateColumn,
Relation,
} from 'typeorm';
import { BeforeCreateOne, IDField } from '@ptc-org/nestjs-query-graphql';
@ -33,7 +34,7 @@ export class AppToken {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'userId' })
user: User;
user: Relation<User>;
@Column()
userId: string;
@ -42,7 +43,7 @@ export class AppToken {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'workspaceId' })
workspace: Workspace;
workspace: Relation<Workspace>;
@Column({ nullable: true })
workspaceId: string;

View File

@ -4,6 +4,7 @@ import {
Entity,
ManyToOne,
PrimaryGeneratedColumn,
Relation,
Unique,
UpdateDateColumn,
} from 'typeorm';
@ -42,7 +43,7 @@ export class BillingSubscriptionItem {
onDelete: 'CASCADE',
},
)
billingSubscription: BillingSubscription;
billingSubscription: Relation<BillingSubscription>;
@Column({ nullable: false })
stripeProductId: string;

View File

@ -8,6 +8,7 @@ import {
ManyToOne,
OneToMany,
PrimaryGeneratedColumn,
Relation,
UpdateDateColumn,
} from 'typeorm';
import Stripe from 'stripe';
@ -37,7 +38,7 @@ export class BillingSubscription {
onDelete: 'CASCADE',
})
@JoinColumn()
workspace: Workspace;
workspace: Relation<Workspace>;
@Column({ nullable: false, type: 'uuid' })
workspaceId: string;
@ -48,17 +49,17 @@ export class BillingSubscription {
@Column({ unique: true, nullable: false })
stripeSubscriptionId: string;
@Field()
@Column({ nullable: false })
@Field(() => String)
@Column({ type: 'text', nullable: false })
status: Stripe.Subscription.Status;
@Field({ nullable: true })
@Column({ nullable: true })
@Field(() => String, { nullable: true })
@Column({ type: 'text', nullable: true })
interval: Stripe.Price.Recurring.Interval;
@OneToMany(
() => BillingSubscriptionItem,
(billingSubscriptionItem) => billingSubscriptionItem.billingSubscription,
)
billingSubscriptionItems: BillingSubscriptionItem[];
billingSubscriptionItems: Relation<BillingSubscriptionItem[]>;
}

View File

@ -8,6 +8,7 @@ import {
CreateDateColumn,
UpdateDateColumn,
ManyToOne,
Relation,
} from 'typeorm';
import { IDField } from '@ptc-org/nestjs-query-graphql';
@ -43,7 +44,7 @@ export class FeatureFlagEntity {
@ManyToOne(() => Workspace, (workspace) => workspace.featureFlags, {
onDelete: 'CASCADE',
})
workspace: Workspace;
workspace: Relation<Workspace>;
@Field()
@Column({ nullable: false })

View File

@ -8,6 +8,7 @@ import {
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
Relation,
Unique,
UpdateDateColumn,
} from 'typeorm';
@ -29,7 +30,7 @@ export class UserWorkspace {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'userId' })
user: User;
user: Relation<User>;
@Field({ nullable: false })
@Column()
@ -40,7 +41,7 @@ export class UserWorkspace {
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'workspaceId' })
workspace: Workspace;
workspace: Relation<Workspace>;
@Field({ nullable: false })
@Column()

View File

@ -8,6 +8,7 @@ import {
UpdateDateColumn,
OneToMany,
ManyToOne,
Relation,
} from 'typeorm';
import { IDField } from '@ptc-org/nestjs-query-graphql';
@ -72,7 +73,7 @@ export class User {
@ManyToOne(() => Workspace, (workspace) => workspace.users, {
onDelete: 'SET NULL',
})
defaultWorkspace: Workspace;
defaultWorkspace: Relation<Workspace>;
@Field()
@Column()
@ -89,12 +90,12 @@ export class User {
@OneToMany(() => AppToken, (appToken) => appToken.user, {
cascade: true,
})
appTokens: AppToken[];
appTokens: Relation<AppToken[]>;
@Field(() => WorkspaceMember, { nullable: true })
workspaceMember: WorkspaceMember;
workspaceMember: Relation<WorkspaceMember>;
@Field(() => [UserWorkspace])
@OneToMany(() => UserWorkspace, (userWorkspace) => userWorkspace.user)
workspaces: UserWorkspace[];
workspaces: Relation<UserWorkspace[]>;
}

View File

@ -7,6 +7,7 @@ import {
Entity,
OneToMany,
PrimaryGeneratedColumn,
Relation,
UpdateDateColumn,
} from 'typeorm';
import Stripe from 'stripe';
@ -60,25 +61,25 @@ export class Workspace {
@OneToMany(() => AppToken, (appToken) => appToken.workspace, {
cascade: true,
})
appTokens: AppToken[];
appTokens: Relation<AppToken[]>;
@OneToMany(() => User, (user) => user.defaultWorkspace)
users: User[];
users: Relation<User[]>;
@OneToMany(() => UserWorkspace, (userWorkspace) => userWorkspace.workspace, {
onDelete: 'CASCADE',
})
workspaceUsers: UserWorkspace[];
workspaceUsers: Relation<UserWorkspace[]>;
@Field()
@Column({ default: true })
allowImpersonation: boolean;
@OneToMany(() => FeatureFlagEntity, (featureFlag) => featureFlag.workspace)
featureFlags: FeatureFlagEntity[];
featureFlags: Relation<FeatureFlagEntity[]>;
@Field()
@Column({ default: 'incomplete' })
@Field(() => String)
@Column({ type: 'text', default: 'incomplete' })
subscriptionStatus: Stripe.Subscription.Status;
@Field({ nullable: true })
@ -91,5 +92,5 @@ export class Workspace {
() => BillingSubscription,
(billingSubscription) => billingSubscription.workspace,
)
billingSubscriptions: BillingSubscription[];
billingSubscriptions: Relation<BillingSubscription[]>;
}

View File

@ -1,6 +1,7 @@
import { Field, ObjectType, registerEnumType } from '@nestjs/graphql';
import { IsEnum, IsNotEmpty } from 'class-validator';
import { Relation } from 'typeorm';
import { FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
import { ObjectMetadataDTO } from 'src/engine/metadata-modules/object-metadata/dtos/object-metadata.dto';
@ -22,19 +23,19 @@ registerEnumType(RelationDefinitionType, {
export class RelationDefinitionDTO {
@IsNotEmpty()
@Field(() => ObjectMetadataDTO)
sourceObjectMetadata: ObjectMetadataDTO;
sourceObjectMetadata: Relation<ObjectMetadataDTO>;
@IsNotEmpty()
@Field(() => ObjectMetadataDTO)
targetObjectMetadata: ObjectMetadataDTO;
targetObjectMetadata: Relation<ObjectMetadataDTO>;
@IsNotEmpty()
@Field(() => FieldMetadataDTO)
sourceFieldMetadata: FieldMetadataDTO;
sourceFieldMetadata: Relation<FieldMetadataDTO>;
@IsNotEmpty()
@Field(() => FieldMetadataDTO)
targetFieldMetadata: FieldMetadataDTO;
targetFieldMetadata: Relation<FieldMetadataDTO>;
@IsEnum(RelationDefinitionType)
@IsNotEmpty()

View File

@ -8,6 +8,7 @@ import {
OneToOne,
CreateDateColumn,
UpdateDateColumn,
Relation,
} from 'typeorm';
import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface';
@ -63,7 +64,7 @@ export class FieldMetadataEntity<
onDelete: 'CASCADE',
})
@JoinColumn({ name: 'objectMetadataId' })
object: ObjectMetadataEntity;
object: Relation<ObjectMetadataEntity>;
@Column({ nullable: false })
type: FieldMetadataType;
@ -105,13 +106,13 @@ export class FieldMetadataEntity<
() => RelationMetadataEntity,
(relation: RelationMetadataEntity) => relation.fromFieldMetadata,
)
fromRelationMetadata: RelationMetadataEntity;
fromRelationMetadata: Relation<RelationMetadataEntity>;
@OneToOne(
() => RelationMetadataEntity,
(relation: RelationMetadataEntity) => relation.toFieldMetadata,
)
toRelationMetadata: RelationMetadataEntity;
toRelationMetadata: Relation<RelationMetadataEntity>;
@CreateDateColumn({ type: 'timestamptz' })
createdAt: Date;

View File

@ -7,6 +7,7 @@ import {
CreateDateColumn,
UpdateDateColumn,
ManyToOne,
Relation,
} from 'typeorm';
import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/object-metadata.interface';
@ -79,7 +80,7 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
@OneToMany(() => FieldMetadataEntity, (field) => field.object, {
cascade: true,
})
fields: FieldMetadataEntity[];
fields: Relation<FieldMetadataEntity[]>;
@OneToMany(
() => RelationMetadataEntity,
@ -88,7 +89,7 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
cascade: true,
},
)
fromRelations: RelationMetadataEntity[];
fromRelations: Relation<RelationMetadataEntity[]>;
@OneToMany(
() => RelationMetadataEntity,
@ -97,12 +98,12 @@ export class ObjectMetadataEntity implements ObjectMetadataInterface {
cascade: true,
},
)
toRelations: RelationMetadataEntity[];
toRelations: Relation<RelationMetadataEntity[]>;
@ManyToOne(() => DataSourceEntity, (dataSource) => dataSource.objects, {
onDelete: 'CASCADE',
})
dataSource: DataSourceEntity;
dataSource: Relation<DataSourceEntity>;
@CreateDateColumn({ type: 'timestamptz' })
createdAt: Date;

View File

@ -6,6 +6,7 @@ import {
ManyToOne,
OneToOne,
PrimaryGeneratedColumn,
Relation,
UpdateDateColumn,
} from 'typeorm';
@ -65,7 +66,7 @@ export class RelationMetadataEntity implements RelationMetadataInterface {
onDelete: 'CASCADE',
},
)
fromObjectMetadata: ObjectMetadataEntity;
fromObjectMetadata: Relation<ObjectMetadataEntity>;
@ManyToOne(
() => ObjectMetadataEntity,
@ -74,21 +75,21 @@ export class RelationMetadataEntity implements RelationMetadataInterface {
onDelete: 'CASCADE',
},
)
toObjectMetadata: ObjectMetadataEntity;
toObjectMetadata: Relation<ObjectMetadataEntity>;
@OneToOne(
() => FieldMetadataEntity,
(field: FieldMetadataEntity) => field.fromRelationMetadata,
)
@JoinColumn()
fromFieldMetadata: FieldMetadataEntity;
fromFieldMetadata: Relation<FieldMetadataEntity>;
@OneToOne(
() => FieldMetadataEntity,
(field: FieldMetadataEntity) => field.toRelationMetadata,
)
@JoinColumn()
toFieldMetadata: FieldMetadataEntity;
toFieldMetadata: Relation<FieldMetadataEntity>;
@CreateDateColumn({ type: 'timestamptz' })
createdAt: Date;

View File

@ -39,7 +39,7 @@ export class RemoteServerEntity<T extends RemoteServerType> {
@Generated('uuid')
foreignDataWrapperId: string;
@Column({ nullable: true })
@Column({ type: 'text', nullable: true })
foreignDataWrapperType: T;
@Column({ nullable: true, type: 'jsonb' })

View File

@ -1,6 +1,6 @@
import { EntityManager } from 'typeorm';
import companiesDemo from './companies-demo.json';
import { companiesDemo } from 'src/engine/workspace-manager/demo-objects-prefill-data/companies-demo.json';
export const companyPrefillDemoData = async (
entityManager: EntityManager,

View File

@ -1,6 +1,6 @@
import { EntityManager } from 'typeorm';
import peopleDemo from './people-demo.json';
import { peopleDemo } from 'src/engine/workspace-manager/demo-objects-prefill-data/people-demo.json';
export const personPrefillDemoData = async (
entityManager: EntityManager,

View File

@ -0,0 +1,5 @@
/**
* Wrapper type used to circumvent ESM modules circular dependency issue
* caused by reflection metadata saving the type of the property.
*/
export type Relation<T> = T;

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { activityTargetStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -32,7 +34,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'activityId',
})
@IsNullable()
activity: ActivityObjectMetadata;
activity: Relation<ActivityObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.person,
@ -43,7 +45,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.company,
@ -54,7 +56,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: activityTargetStandardFieldIds.opportunity,
@ -65,7 +67,7 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: 'opportunityId',
})
@IsNullable()
opportunity: OpportunityObjectMetadata;
opportunity: Relation<OpportunityObjectMetadata>;
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
standardId: activityTargetStandardFieldIds.custom,
@ -75,5 +77,5 @@ export class ActivityTargetObjectMetadata extends BaseObjectMetadata {
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
icon: 'IconBuildingSkyscraper',
}))
custom: CustomObjectMetadata;
custom: Relation<CustomObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -97,7 +99,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
activityTargets: ActivityTargetObjectMetadata[];
activityTargets: Relation<ActivityTargetObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.attachments,
@ -112,7 +114,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
attachments: AttachmentObjectMetadata[];
attachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.comments,
@ -127,7 +129,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
comments: CommentObjectMetadata[];
comments: Relation<CommentObjectMetadata[]>;
@FieldMetadata({
standardId: activityStandardFieldIds.author,
@ -138,7 +140,7 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'authorId',
})
@IsNullable()
author: WorkspaceMemberObjectMetadata;
author: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: activityStandardFieldIds.assignee,
@ -149,5 +151,5 @@ export class ActivityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'assigneeId',
})
@IsNullable()
assignee: WorkspaceMemberObjectMetadata;
assignee: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { commentStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -35,7 +37,7 @@ export class CommentObjectMetadata extends BaseObjectMetadata {
icon: 'IconCircleUser',
joinColumn: 'authorId',
})
author: WorkspaceMemberObjectMetadata;
author: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: commentStandardFieldIds.activity,
@ -45,5 +47,5 @@ export class CommentObjectMetadata extends BaseObjectMetadata {
icon: 'IconNotes',
joinColumn: 'activityId',
})
activity: ActivityObjectMetadata;
activity: Relation<ActivityObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { attachmentStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -59,7 +61,7 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
icon: 'IconCircleUser',
joinColumn: 'authorId',
})
author: WorkspaceMemberObjectMetadata;
author: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: attachmentStandardFieldIds.activity,
@ -70,7 +72,7 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
joinColumn: 'activityId',
})
@IsNullable()
activity: ActivityObjectMetadata;
activity: Relation<ActivityObjectMetadata>;
@FieldMetadata({
standardId: attachmentStandardFieldIds.person,
@ -81,7 +83,7 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: attachmentStandardFieldIds.company,
@ -92,7 +94,7 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: attachmentStandardFieldIds.opportunity,
@ -103,7 +105,7 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
joinColumn: 'opportunityId',
})
@IsNullable()
opportunity: OpportunityObjectMetadata;
opportunity: Relation<OpportunityObjectMetadata>;
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
standardId: attachmentStandardFieldIds.custom,
@ -113,5 +115,5 @@ export class AttachmentObjectMetadata extends BaseObjectMetadata {
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
icon: 'IconBuildingSkyscraper',
}))
custom: CustomObjectMetadata;
custom: Relation<CustomObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FeatureFlagKeys } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { calendarChannelEventAssociationStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
@ -30,7 +32,7 @@ export class CalendarChannelEventAssociationObjectMetadata extends BaseObjectMet
icon: 'IconCalendar',
joinColumn: 'calendarChannelId',
})
calendarChannel: CalendarEventObjectMetadata;
calendarChannel: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelEventAssociationStandardFieldIds.calendarEvent,
@ -40,7 +42,7 @@ export class CalendarChannelEventAssociationObjectMetadata extends BaseObjectMet
icon: 'IconCalendar',
joinColumn: 'calendarEventId',
})
calendarEvent: CalendarEventObjectMetadata;
calendarEvent: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelEventAssociationStandardFieldIds.eventExternalId,

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import {
RelationMetadataType,
RelationOnDeleteAction,
@ -41,7 +43,7 @@ export class CalendarChannelObjectMetadata extends BaseObjectMetadata {
icon: 'IconUserCircle',
joinColumn: 'connectedAccountId',
})
connectedAccount: ConnectedAccountObjectMetadata;
connectedAccount: Relation<ConnectedAccountObjectMetadata>;
@FieldMetadata({
standardId: calendarChannelStandardFieldIds.handle,
@ -119,5 +121,7 @@ export class CalendarChannelObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => CalendarChannelEventAssociationObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
calendarChannelEventAssociations: CalendarChannelEventAssociationObjectMetadata[];
calendarChannelEventAssociations: Relation<
CalendarChannelEventAssociationObjectMetadata[]
>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { calendarEventParticipantStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -39,7 +41,7 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
icon: 'IconCalendar',
joinColumn: 'calendarEventId',
})
calendarEvent: CalendarEventObjectMetadata;
calendarEvent: Relation<CalendarEventObjectMetadata>;
@FieldMetadata({
standardId: calendarEventParticipantStandardFieldIds.handle,
@ -114,7 +116,7 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: calendarEventParticipantStandardFieldIds.workspaceMember,
@ -125,5 +127,5 @@ export class CalendarEventParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'workspaceMemberId',
})
@IsNullable()
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator';
import { FeatureFlagKeys } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
@ -168,7 +170,9 @@ export class CalendarEventObjectMetadata extends BaseObjectMetadata {
@Gate({
featureFlag: 'IS_CALENDAR_ENABLED',
})
calendarChannelEventAssociations: CalendarChannelEventAssociationObjectMetadata[];
calendarChannelEventAssociations: Relation<
CalendarChannelEventAssociationObjectMetadata[]
>;
@FieldMetadata({
standardId: calendarEventStandardFieldIds.calendarEventParticipants,
@ -182,5 +186,5 @@ export class CalendarEventObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => CalendarEventParticipantObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
calendarEventParticipants: CalendarEventParticipantObjectMetadata[];
calendarEventParticipants: Relation<CalendarEventParticipantObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { CurrencyMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/currency.composite-type';
import { LinkMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/link.composite-type';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
@ -135,7 +137,7 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
people: PersonObjectMetadata[];
people: Relation<PersonObjectMetadata[]>;
@FieldMetadata({
standardId: companyStandardFieldIds.accountOwner,
@ -162,7 +164,7 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
activityTargets: ActivityTargetObjectMetadata[];
activityTargets: Relation<ActivityTargetObjectMetadata[]>;
@FieldMetadata({
standardId: companyStandardFieldIds.opportunities,
@ -177,7 +179,7 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
opportunities: OpportunityObjectMetadata[];
opportunities: Relation<OpportunityObjectMetadata[]>;
@FieldMetadata({
standardId: companyStandardFieldIds.favorites,
@ -193,7 +195,7 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
})
@IsNullable()
@IsSystem()
favorites: FavoriteObjectMetadata[];
favorites: Relation<FavoriteObjectMetadata[]>;
@FieldMetadata({
standardId: companyStandardFieldIds.attachments,
@ -208,7 +210,7 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
attachments: AttachmentObjectMetadata[];
attachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: companyStandardFieldIds.events,
@ -224,5 +226,5 @@ export class CompanyObjectMetadata extends BaseObjectMetadata {
})
@IsNullable()
@IsSystem()
events: EventObjectMetadata[];
events: Relation<EventObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { blocklistStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -34,5 +36,5 @@ export class BlocklistObjectMetadata extends BaseObjectMetadata {
icon: 'IconCircleUser',
joinColumn: 'workspaceMemberId',
})
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FeatureFlagKeys } from 'src/engine/core-modules/feature-flag/feature-flag.entity';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
@ -75,7 +77,7 @@ export class ConnectedAccountObjectMetadata extends BaseObjectMetadata {
icon: 'IconUserCircle',
joinColumn: 'accountOwnerId',
})
accountOwner: WorkspaceMemberObjectMetadata;
accountOwner: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: connectedAccountStandardFieldIds.lastSyncHistoryId,
@ -108,7 +110,7 @@ export class ConnectedAccountObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => MessageChannelObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
messageChannels: MessageChannelObjectMetadata[];
messageChannels: Relation<MessageChannelObjectMetadata[]>;
@FieldMetadata({
standardId: connectedAccountStandardFieldIds.calendarChannels,
@ -125,5 +127,5 @@ export class ConnectedAccountObjectMetadata extends BaseObjectMetadata {
@Gate({
featureFlag: FeatureFlagKeys.IsCalendarEnabled,
})
calendarChannels: CalendarChannelObjectMetadata[];
calendarChannels: Relation<CalendarChannelObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { eventStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -53,7 +55,7 @@ export class EventObjectMetadata extends BaseObjectMetadata {
joinColumn: 'workspaceMemberId',
})
@IsNullable()
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: eventStandardFieldIds.person,
@ -64,7 +66,7 @@ export class EventObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: eventStandardFieldIds.company,
@ -75,7 +77,7 @@ export class EventObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: eventStandardFieldIds.opportunity,
@ -86,7 +88,7 @@ export class EventObjectMetadata extends BaseObjectMetadata {
joinColumn: 'opportunityId',
})
@IsNullable()
opportunity: OpportunityObjectMetadata;
opportunity: Relation<OpportunityObjectMetadata>;
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
standardId: eventStandardFieldIds.custom,
@ -96,5 +98,5 @@ export class EventObjectMetadata extends BaseObjectMetadata {
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
icon: 'IconBuildingSkyscraper',
}))
custom: CustomObjectMetadata;
custom: Relation<CustomObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { favoriteStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -42,7 +44,7 @@ export class FavoriteObjectMetadata extends BaseObjectMetadata {
icon: 'IconCircleUser',
joinColumn: 'workspaceMemberId',
})
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
@FieldMetadata({
standardId: favoriteStandardFieldIds.person,
@ -53,7 +55,7 @@ export class FavoriteObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: favoriteStandardFieldIds.company,
@ -64,7 +66,7 @@ export class FavoriteObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: favoriteStandardFieldIds.opportunity,
@ -75,7 +77,7 @@ export class FavoriteObjectMetadata extends BaseObjectMetadata {
joinColumn: 'opportunityId',
})
@IsNullable()
opportunity: OpportunityObjectMetadata;
opportunity: Relation<OpportunityObjectMetadata>;
@DynamicRelationFieldMetadata((oppositeObjectMetadata) => ({
standardId: favoriteStandardFieldIds.custom,
@ -85,5 +87,5 @@ export class FavoriteObjectMetadata extends BaseObjectMetadata {
joinColumn: `${oppositeObjectMetadata.nameSingular}Id`,
icon: 'IconBuildingSkyscraper',
}))
custom: CustomObjectMetadata;
custom: Relation<CustomObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { messageChannelMessageAssociationStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -29,7 +31,7 @@ export class MessageChannelMessageAssociationObjectMetadata extends BaseObjectMe
joinColumn: 'messageChannelId',
})
@IsNullable()
messageChannel: MessageChannelObjectMetadata;
messageChannel: Relation<MessageChannelObjectMetadata>;
@FieldMetadata({
standardId: messageChannelMessageAssociationStandardFieldIds.message,
@ -40,7 +42,7 @@ export class MessageChannelMessageAssociationObjectMetadata extends BaseObjectMe
joinColumn: 'messageId',
})
@IsNullable()
message: MessageObjectMetadata;
message: Relation<MessageObjectMetadata>;
@FieldMetadata({
standardId:
@ -62,7 +64,7 @@ export class MessageChannelMessageAssociationObjectMetadata extends BaseObjectMe
joinColumn: 'messageThreadId',
})
@IsNullable()
messageThread: MessageThreadObjectMetadata;
messageThread: Relation<MessageThreadObjectMetadata>;
@FieldMetadata({
standardId:

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -89,7 +91,7 @@ export class MessageChannelObjectMetadata extends BaseObjectMetadata {
icon: 'IconUserCircle',
joinColumn: 'connectedAccountId',
})
connectedAccount: ConnectedAccountObjectMetadata;
connectedAccount: Relation<ConnectedAccountObjectMetadata>;
@FieldMetadata({
standardId: messageChannelStandardFieldIds.type,
@ -139,7 +141,9 @@ export class MessageChannelObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
messageChannelMessageAssociations: MessageChannelMessageAssociationObjectMetadata[];
messageChannelMessageAssociations: Relation<
MessageChannelMessageAssociationObjectMetadata[]
>;
@FieldMetadata({
standardId: messageChannelStandardFieldIds.syncCursor,

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { messageParticipantStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -28,7 +30,7 @@ export class MessageParticipantObjectMetadata extends BaseObjectMetadata {
icon: 'IconMessage',
joinColumn: 'messageId',
})
message: MessageObjectMetadata;
message: Relation<MessageObjectMetadata>;
@FieldMetadata({
standardId: messageParticipantStandardFieldIds.role,
@ -73,7 +75,7 @@ export class MessageParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'personId',
})
@IsNullable()
person: PersonObjectMetadata;
person: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: messageParticipantStandardFieldIds.workspaceMember,
@ -84,5 +86,5 @@ export class MessageParticipantObjectMetadata extends BaseObjectMetadata {
joinColumn: 'workspaceMemberId',
})
@IsNullable()
workspaceMember: WorkspaceMemberObjectMetadata;
workspaceMember: Relation<WorkspaceMemberObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -37,7 +39,7 @@ export class MessageThreadObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
messages: MessageObjectMetadata[];
messages: Relation<MessageObjectMetadata[]>;
@FieldMetadata({
standardId: messageThreadStandardFieldIds.messageChannelMessageAssociations,
@ -52,5 +54,7 @@ export class MessageThreadObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.RESTRICT,
})
@IsNullable()
messageChannelMessageAssociations: MessageChannelMessageAssociationObjectMetadata[];
messageChannelMessageAssociations: Relation<
MessageChannelMessageAssociationObjectMetadata[]
>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -43,7 +45,7 @@ export class MessageObjectMetadata extends BaseObjectMetadata {
joinColumn: 'messageThreadId',
})
@IsNullable()
messageThread: MessageThreadObjectMetadata;
messageThread: Relation<MessageThreadObjectMetadata>;
@FieldMetadata({
standardId: messageStandardFieldIds.direction,
@ -101,7 +103,7 @@ export class MessageObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
messageParticipants: MessageParticipantObjectMetadata[];
messageParticipants: Relation<MessageParticipantObjectMetadata[]>;
@FieldMetadata({
standardId: messageStandardFieldIds.messageChannelMessageAssociations,
@ -116,5 +118,7 @@ export class MessageObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
messageChannelMessageAssociations: MessageChannelMessageAssociationObjectMetadata[];
messageChannelMessageAssociations: Relation<
MessageChannelMessageAssociationObjectMetadata[]
>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { CurrencyMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/currency.composite-type';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
@ -109,7 +111,7 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'pointOfContactId',
})
@IsNullable()
pointOfContact: PersonObjectMetadata;
pointOfContact: Relation<PersonObjectMetadata>;
@FieldMetadata({
standardId: opportunityStandardFieldIds.company,
@ -120,7 +122,7 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: opportunityStandardFieldIds.favorites,
@ -136,7 +138,7 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
})
@IsNullable()
@IsSystem()
favorites: FavoriteObjectMetadata[];
favorites: Relation<FavoriteObjectMetadata[]>;
@FieldMetadata({
standardId: opportunityStandardFieldIds.activityTargets,
@ -151,7 +153,7 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
activityTargets: ActivityTargetObjectMetadata[];
activityTargets: Relation<ActivityTargetObjectMetadata[]>;
@FieldMetadata({
standardId: opportunityStandardFieldIds.attachments,
@ -166,7 +168,7 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsNullable()
attachments: AttachmentObjectMetadata[];
attachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: opportunityStandardFieldIds.events,
@ -181,5 +183,5 @@ export class OpportunityObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
events: EventObjectMetadata[];
events: Relation<EventObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FullNameMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/full-name.composite-type';
import { LinkMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/link.composite-type';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
@ -129,7 +131,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
joinColumn: 'companyId',
})
@IsNullable()
company: CompanyObjectMetadata;
company: Relation<CompanyObjectMetadata>;
@FieldMetadata({
standardId: personStandardFieldIds.pointOfContactForOpportunities,
@ -144,7 +146,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'pointOfContact',
onDelete: RelationOnDeleteAction.SET_NULL,
})
pointOfContactForOpportunities: OpportunityObjectMetadata[];
pointOfContactForOpportunities: Relation<OpportunityObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.activityTargets,
@ -158,7 +160,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => ActivityTargetObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
activityTargets: ActivityTargetObjectMetadata[];
activityTargets: Relation<ActivityTargetObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.favorites,
@ -173,7 +175,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.CASCADE,
})
@IsSystem()
favorites: FavoriteObjectMetadata[];
favorites: Relation<FavoriteObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.attachments,
@ -187,7 +189,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => AttachmentObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
attachments: AttachmentObjectMetadata[];
attachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.messageParticipants,
@ -203,7 +205,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsSystem()
messageParticipants: MessageParticipantObjectMetadata[];
messageParticipants: Relation<MessageParticipantObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.calendarEventParticipants,
@ -221,7 +223,7 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
featureFlag: 'IS_CALENDAR_ENABLED',
})
@IsSystem()
calendarEventParticipants: CalendarEventParticipantObjectMetadata[];
calendarEventParticipants: Relation<CalendarEventParticipantObjectMetadata[]>;
@FieldMetadata({
standardId: personStandardFieldIds.events,
@ -237,5 +239,5 @@ export class PersonObjectMetadata extends BaseObjectMetadata {
})
@IsNullable()
@IsSystem()
events: EventObjectMetadata[];
events: Relation<EventObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { viewFilterStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -60,5 +62,5 @@ export class ViewFilterObjectMetadata extends BaseObjectMetadata {
joinColumn: 'viewId',
})
@IsNullable()
view: ViewObjectMetadata;
view: Relation<ViewObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { viewSortStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
@ -45,5 +47,5 @@ export class ViewSortObjectMetadata extends BaseObjectMetadata {
joinColumn: 'viewId',
})
@IsNullable()
view: ViewObjectMetadata;
view: Relation<ViewObjectMetadata>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
RelationMetadataType,
@ -108,7 +110,7 @@ export class ViewObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
viewFields: ViewFieldObjectMetadata[];
viewFields: Relation<ViewFieldObjectMetadata[]>;
@FieldMetadata({
standardId: viewStandardFieldIds.viewFilters,
@ -123,7 +125,7 @@ export class ViewObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
viewFilters: ViewFilterObjectMetadata[];
viewFilters: Relation<ViewFilterObjectMetadata[]>;
@FieldMetadata({
standardId: viewStandardFieldIds.viewSorts,
@ -138,5 +140,5 @@ export class ViewObjectMetadata extends BaseObjectMetadata {
onDelete: RelationOnDeleteAction.SET_NULL,
})
@IsNullable()
viewSorts: ViewSortObjectMetadata[];
viewSorts: Relation<ViewSortObjectMetadata[]>;
}

View File

@ -1,3 +1,5 @@
import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface';
import { FullNameMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/full-name.composite-type';
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import {
@ -104,7 +106,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'author',
onDelete: RelationOnDeleteAction.SET_NULL,
})
authoredActivities: ActivityObjectMetadata[];
authoredActivities: Relation<ActivityObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.assignedActivities,
@ -119,7 +121,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'assignee',
onDelete: RelationOnDeleteAction.SET_NULL,
})
assignedActivities: ActivityObjectMetadata[];
assignedActivities: Relation<ActivityObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.favorites,
@ -133,7 +135,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideTarget: () => FavoriteObjectMetadata,
onDelete: RelationOnDeleteAction.CASCADE,
})
favorites: FavoriteObjectMetadata[];
favorites: Relation<FavoriteObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.accountOwnerForCompanies,
@ -148,7 +150,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'accountOwner',
onDelete: RelationOnDeleteAction.SET_NULL,
})
accountOwnerForCompanies: CompanyObjectMetadata[];
accountOwnerForCompanies: Relation<CompanyObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.authoredAttachments,
@ -163,7 +165,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'author',
onDelete: RelationOnDeleteAction.SET_NULL,
})
authoredAttachments: AttachmentObjectMetadata[];
authoredAttachments: Relation<AttachmentObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.authoredComments,
@ -178,7 +180,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'author',
onDelete: RelationOnDeleteAction.SET_NULL,
})
authoredComments: CommentObjectMetadata[];
authoredComments: Relation<CommentObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.connectedAccounts,
@ -193,7 +195,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'accountOwner',
onDelete: RelationOnDeleteAction.CASCADE,
})
connectedAccounts: ConnectedAccountObjectMetadata[];
connectedAccounts: Relation<ConnectedAccountObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.messageParticipants,
@ -208,7 +210,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'workspaceMember',
onDelete: RelationOnDeleteAction.SET_NULL,
})
messageParticipants: MessageParticipantObjectMetadata[];
messageParticipants: Relation<MessageParticipantObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.blocklist,
@ -223,7 +225,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
inverseSideFieldKey: 'workspaceMember',
onDelete: RelationOnDeleteAction.SET_NULL,
})
blocklist: BlocklistObjectMetadata[];
blocklist: Relation<BlocklistObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.calendarEventParticipants,
@ -241,7 +243,7 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
@Gate({
featureFlag: 'IS_CALENDAR_ENABLED',
})
calendarEventParticipants: CalendarEventParticipantObjectMetadata[];
calendarEventParticipants: Relation<CalendarEventParticipantObjectMetadata[]>;
@FieldMetadata({
standardId: workspaceMemberStandardFieldIds.events,
@ -257,5 +259,5 @@ export class WorkspaceMemberObjectMetadata extends BaseObjectMetadata {
})
@IsNullable()
@IsSystem()
events: EventObjectMetadata[];
events: Relation<EventObjectMetadata[]>;
}

View File

@ -20,10 +20,16 @@ export function generateFrontConfig(): void {
)};`;
const distPath = path.join(__dirname, '../..', 'front');
const filePath = path.join(distPath, 'env-config.js');
if (!fs.existsSync(distPath)) {
fs.mkdirSync(distPath, { recursive: true });
}
fs.writeFileSync(path.join(distPath, 'env-config.js'), configString, 'utf8');
if (
!fs.existsSync(filePath) ||
fs.readFileSync(filePath, 'utf8') !== configString
) {
fs.writeFileSync(filePath, configString, 'utf8');
}
}

371
yarn.lock
View File

@ -7597,6 +7597,22 @@ __metadata:
languageName: node
linkType: hard
"@mole-inc/bin-wrapper@npm:^8.0.1":
version: 8.0.1
resolution: "@mole-inc/bin-wrapper@npm:8.0.1"
dependencies:
bin-check: "npm:^4.1.0"
bin-version-check: "npm:^5.0.0"
content-disposition: "npm:^0.5.4"
ext-name: "npm:^5.0.0"
file-type: "npm:^17.1.6"
filenamify: "npm:^5.0.2"
got: "npm:^11.8.5"
os-filter-obj: "npm:^2.0.0"
checksum: 70cfed319a46b1b8e3878dc4bdff4ced81aa913a6d9ab557b41e40f7ebdd5d39b0506b008609d8620739b63c2e4396fe0deec072487e84c717a1f3b24836ef94
languageName: node
linkType: hard
"@motionone/animation@npm:^10.12.0":
version: 10.16.3
resolution: "@motionone/animation@npm:10.16.3"
@ -14848,6 +14864,33 @@ __metadata:
languageName: node
linkType: hard
"@swc/cli@npm:^0.3.12":
version: 0.3.12
resolution: "@swc/cli@npm:0.3.12"
dependencies:
"@mole-inc/bin-wrapper": "npm:^8.0.1"
"@swc/counter": "npm:^0.1.3"
commander: "npm:^8.3.0"
fast-glob: "npm:^3.2.5"
minimatch: "npm:^9.0.3"
piscina: "npm:^4.3.0"
semver: "npm:^7.3.8"
slash: "npm:3.0.0"
source-map: "npm:^0.7.3"
peerDependencies:
"@swc/core": ^1.2.66
chokidar: ^3.5.1
peerDependenciesMeta:
chokidar:
optional: true
bin:
spack: bin/spack.js
swc: bin/swc.js
swcx: bin/swcx.js
checksum: 6e95e7d9fce97f788ff5047b8498d65624db7a4439486ba2c4dbf162bbbb62cd6d72a469c24eaee558f27f42d61ecc3ef864070d6b70a86cc24049ce60876362
languageName: node
linkType: hard
"@swc/core-darwin-arm64@npm:1.3.101":
version: 1.3.101
resolution: "@swc/core-darwin-arm64@npm:1.3.101"
@ -15087,6 +15130,13 @@ __metadata:
languageName: node
linkType: hard
"@swc/counter@npm:^0.1.3":
version: 0.1.3
resolution: "@swc/counter@npm:0.1.3"
checksum: 8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356
languageName: node
linkType: hard
"@swc/helpers@npm:0.5.2":
version: 0.5.2
resolution: "@swc/helpers@npm:0.5.2"
@ -18795,6 +18845,13 @@ __metadata:
languageName: node
linkType: hard
"arch@npm:^2.1.0":
version: 2.2.0
resolution: "arch@npm:2.2.0"
checksum: 4ceaf8d8207817c216ebc4469742052cb0a097bc45d9b7fcd60b7507220da545a28562ab5bdd4dfe87921bb56371a0805da4e10d704e01f93a15f83240f1284c
languageName: node
linkType: hard
"archiver-utils@npm:^2.1.0":
version: 2.1.0
resolution: "archiver-utils@npm:2.1.0"
@ -20586,6 +20643,16 @@ __metadata:
languageName: node
linkType: hard
"bin-check@npm:^4.1.0":
version: 4.1.0
resolution: "bin-check@npm:4.1.0"
dependencies:
execa: "npm:^0.7.0"
executable: "npm:^4.1.0"
checksum: b1ad144672ab033af879bb493011f694ef11e7c1a250ce15cbdbbc2e5e6feb114046943927654b5ac3d1ce668cff01ec3b6b2703e367f357b1f918b480020d86
languageName: node
linkType: hard
"bin-links@npm:^2.2.1":
version: 2.3.0
resolution: "bin-links@npm:2.3.0"
@ -20600,6 +20667,27 @@ __metadata:
languageName: node
linkType: hard
"bin-version-check@npm:^5.0.0":
version: 5.1.0
resolution: "bin-version-check@npm:5.1.0"
dependencies:
bin-version: "npm:^6.0.0"
semver: "npm:^7.5.3"
semver-truncate: "npm:^3.0.0"
checksum: f2a855b53b41e7200ab10fe6981fbd564430c2d58f7ae48cf71fe74b0071b802963efc0fa11fa066c0116057e8072e0a7cd63e2dae79283e37cc444a023116b4
languageName: node
linkType: hard
"bin-version@npm:^6.0.0":
version: 6.0.0
resolution: "bin-version@npm:6.0.0"
dependencies:
execa: "npm:^5.0.0"
find-versions: "npm:^5.0.0"
checksum: e06083cdeb056910009740687ae9ba3175d42c72082408d4c5cb88c91fa102d5a8aef9112c127e94c3b48b611ce048abef390a9b8376521e42541635dbd3c506
languageName: node
linkType: hard
"binary-extensions@npm:^2.0.0":
version: 2.2.0
resolution: "binary-extensions@npm:2.2.0"
@ -22858,7 +22946,7 @@ __metadata:
languageName: node
linkType: hard
"content-disposition@npm:0.5.4":
"content-disposition@npm:0.5.4, content-disposition@npm:^0.5.4":
version: 0.5.4
resolution: "content-disposition@npm:0.5.4"
dependencies:
@ -26395,6 +26483,21 @@ __metadata:
languageName: node
linkType: hard
"execa@npm:^0.7.0":
version: 0.7.0
resolution: "execa@npm:0.7.0"
dependencies:
cross-spawn: "npm:^5.0.1"
get-stream: "npm:^3.0.0"
is-stream: "npm:^1.1.0"
npm-run-path: "npm:^2.0.0"
p-finally: "npm:^1.0.0"
signal-exit: "npm:^3.0.0"
strip-eof: "npm:^1.0.0"
checksum: 812f1776e2a6b2226532e43c1af87d8a12e26de03a06e7e043f653acf5565e0656f5f6c64d66726fefa17178ac129caaa419a50905934e7c4a846417abb25d4a
languageName: node
linkType: hard
"execa@npm:^4.0.2":
version: 4.1.0
resolution: "execa@npm:4.1.0"
@ -26446,6 +26549,15 @@ __metadata:
languageName: node
linkType: hard
"executable@npm:^4.1.0":
version: 4.1.1
resolution: "executable@npm:4.1.1"
dependencies:
pify: "npm:^2.2.0"
checksum: c3cc5d2d2e3cdb1b7d7b0639ebd5566d113d7ada21cfa07f5226d55ba2a210320116720e07570ed5659ef2ec516bc00c8f0488dac75d112fd324ef25c2100173
languageName: node
linkType: hard
"exit@npm:^0.1.2":
version: 0.1.2
resolution: "exit@npm:0.1.2"
@ -26544,6 +26656,25 @@ __metadata:
languageName: node
linkType: hard
"ext-list@npm:^2.0.0":
version: 2.2.2
resolution: "ext-list@npm:2.2.2"
dependencies:
mime-db: "npm:^1.28.0"
checksum: bfdb435f333dccbf3f9698dc9d8e38eb47b42d756800bfafa9ec0c1c8aace877c40095baf36f691bcfd09bb88ed247c6e51596e75a158280fa19cf8588a7e258
languageName: node
linkType: hard
"ext-name@npm:^5.0.0":
version: 5.0.0
resolution: "ext-name@npm:5.0.0"
dependencies:
ext-list: "npm:^2.0.0"
sort-keys-length: "npm:^1.0.0"
checksum: 6750b34636bb6dca78e1bcc797615af68ecf50d62cf774624a32ee7879da99c949b5c41e8aa56ede4eb15c6abad6b1a8858d0934faab75ff6e2fd6f408debe18
languageName: node
linkType: hard
"ext@npm:^1.1.2":
version: 1.7.0
resolution: "ext@npm:1.7.0"
@ -26687,7 +26818,7 @@ __metadata:
languageName: node
linkType: hard
"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2":
"fast-glob@npm:3.3.2, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.5, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2":
version: 3.3.2
resolution: "fast-glob@npm:3.3.2"
dependencies:
@ -26985,6 +27116,17 @@ __metadata:
languageName: node
linkType: hard
"file-type@npm:^17.1.6":
version: 17.1.6
resolution: "file-type@npm:17.1.6"
dependencies:
readable-web-to-node-stream: "npm:^3.0.2"
strtok3: "npm:^7.0.0-alpha.9"
token-types: "npm:^5.0.0-alpha.2"
checksum: e75a00f4b57aadb81bac60e7315a7d15fa37276a8d2e7b551418388a039f89883e4e53fdb8e3ec6eb151f55f32e6f6a71c5069d6054c5dee20d2898fe853dcf2
languageName: node
linkType: hard
"file-uri-to-path@npm:1.0.0":
version: 1.0.0
resolution: "file-uri-to-path@npm:1.0.0"
@ -27001,6 +27143,24 @@ __metadata:
languageName: node
linkType: hard
"filename-reserved-regex@npm:^3.0.0":
version: 3.0.0
resolution: "filename-reserved-regex@npm:3.0.0"
checksum: 2b1df851a37f84723f9d8daf885ddfadd3dea2a124474db405295962abc1a01d6c9b6b27edec33bad32ef601e1a220f8a34d34f30ca5a911709700e2b517e268
languageName: node
linkType: hard
"filenamify@npm:^5.0.2":
version: 5.1.1
resolution: "filenamify@npm:5.1.1"
dependencies:
filename-reserved-regex: "npm:^3.0.0"
strip-outer: "npm:^2.0.0"
trim-repeated: "npm:^2.0.0"
checksum: e644fdcb03059e5f98082214c74ce00e11175e766f4807a08d2c37f65b72b6698e5e07e6e4a18369f5c0adab57fb1a987baea034d6660ca4c6dab3e3ba5de66d
languageName: node
linkType: hard
"filesize@npm:^8.0.6":
version: 8.0.7
resolution: "filesize@npm:8.0.7"
@ -27156,6 +27316,15 @@ __metadata:
languageName: node
linkType: hard
"find-versions@npm:^5.0.0":
version: 5.1.0
resolution: "find-versions@npm:5.1.0"
dependencies:
semver-regex: "npm:^4.0.5"
checksum: f1ef79d0850e0bd1eba03def02892d31feccdef75129c14b2a2d1cec563e2c51ad5a01f6a7a2d59ddbf9ecca1014ff8a6353ff2e2885e004f7a81ab1488899d4
languageName: node
linkType: hard
"find-yarn-workspace-root2@npm:1.2.16":
version: 1.2.16
resolution: "find-yarn-workspace-root2@npm:1.2.16"
@ -27884,6 +28053,13 @@ __metadata:
languageName: node
linkType: hard
"get-stream@npm:^3.0.0":
version: 3.0.0
resolution: "get-stream@npm:3.0.0"
checksum: 003f5f3b8870da59c6aafdf6ed7e7b07b48c2f8629cd461bd3900726548b6b8cfa2e14d6b7814fbb08f07a42f4f738407fa70b989928b2783a76b278505bba22
languageName: node
linkType: hard
"get-stream@npm:^4.1.0":
version: 4.1.0
resolution: "get-stream@npm:4.1.0"
@ -28285,7 +28461,7 @@ __metadata:
languageName: node
linkType: hard
"got@npm:^11.8.3":
"got@npm:^11.8.3, got@npm:^11.8.5":
version: 11.8.6
resolution: "got@npm:11.8.6"
dependencies:
@ -30907,6 +31083,13 @@ __metadata:
languageName: node
linkType: hard
"is-plain-obj@npm:^1.0.0":
version: 1.1.0
resolution: "is-plain-obj@npm:1.1.0"
checksum: daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c
languageName: node
linkType: hard
"is-plain-obj@npm:^2.0.0":
version: 2.1.0
resolution: "is-plain-obj@npm:2.1.0"
@ -31032,6 +31215,13 @@ __metadata:
languageName: node
linkType: hard
"is-stream@npm:^1.1.0":
version: 1.1.0
resolution: "is-stream@npm:1.1.0"
checksum: b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002
languageName: node
linkType: hard
"is-stream@npm:^2.0.0":
version: 2.0.1
resolution: "is-stream@npm:2.0.1"
@ -35936,7 +36126,7 @@ __metadata:
languageName: node
linkType: hard
"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.52.0":
"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0, mime-db@npm:^1.52.0":
version: 1.52.0
resolution: "mime-db@npm:1.52.0"
checksum: 0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa
@ -36775,6 +36965,17 @@ __metadata:
languageName: node
linkType: hard
"nice-napi@npm:^1.0.2":
version: 1.0.2
resolution: "nice-napi@npm:1.0.2"
dependencies:
node-addon-api: "npm:^3.0.0"
node-gyp: "npm:latest"
node-gyp-build: "npm:^4.2.2"
conditions: "!os=win32"
languageName: node
linkType: hard
"no-case@npm:^3.0.4":
version: 3.0.4
resolution: "no-case@npm:3.0.4"
@ -36801,6 +37002,15 @@ __metadata:
languageName: node
linkType: hard
"node-addon-api@npm:^3.0.0":
version: 3.2.1
resolution: "node-addon-api@npm:3.2.1"
dependencies:
node-gyp: "npm:latest"
checksum: 41f21c9d12318875a2c429befd06070ce367065a3ef02952cfd4ea17ef69fa14012732f510b82b226e99c254da8d671847ea018cad785f839a5366e02dd56302
languageName: node
linkType: hard
"node-addon-api@npm:^5.0.0":
version: 5.1.0
resolution: "node-addon-api@npm:5.1.0"
@ -36936,6 +37146,17 @@ __metadata:
languageName: node
linkType: hard
"node-gyp-build@npm:^4.2.2":
version: 4.8.0
resolution: "node-gyp-build@npm:4.8.0"
bin:
node-gyp-build: bin.js
node-gyp-build-optional: optional.js
node-gyp-build-test: build-test.js
checksum: 85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad
languageName: node
linkType: hard
"node-gyp@npm:^7.1.0":
version: 7.1.2
resolution: "node-gyp@npm:7.1.2"
@ -37330,6 +37551,15 @@ __metadata:
languageName: node
linkType: hard
"npm-run-path@npm:^2.0.0":
version: 2.0.2
resolution: "npm-run-path@npm:2.0.2"
dependencies:
path-key: "npm:^2.0.0"
checksum: 95549a477886f48346568c97b08c4fda9cdbf7ce8a4fbc2213f36896d0d19249e32d68d7451bdcbca8041b5fba04a6b2c4a618beaf19849505c05b700740f1de
languageName: node
linkType: hard
"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1":
version: 4.0.1
resolution: "npm-run-path@npm:4.0.1"
@ -37907,6 +38137,15 @@ __metadata:
languageName: node
linkType: hard
"os-filter-obj@npm:^2.0.0":
version: 2.0.0
resolution: "os-filter-obj@npm:2.0.0"
dependencies:
arch: "npm:^2.1.0"
checksum: 2734dcef67dfa027b3aeb8c721893c9c97b4d261efebd2a8469330d8b62ccaae072599aef0d3037bf285385fa14fb745f2e6d6958805924bb008031691cc7253
languageName: node
linkType: hard
"os-homedir@npm:^1.0.0, os-homedir@npm:^1.0.1":
version: 1.0.2
resolution: "os-homedir@npm:1.0.2"
@ -38617,6 +38856,13 @@ __metadata:
languageName: node
linkType: hard
"path-key@npm:^2.0.0":
version: 2.0.1
resolution: "path-key@npm:2.0.1"
checksum: dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b
languageName: node
linkType: hard
"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
version: 3.1.1
resolution: "path-key@npm:3.1.1"
@ -38777,6 +39023,13 @@ __metadata:
languageName: node
linkType: hard
"peek-readable@npm:^5.0.0":
version: 5.0.0
resolution: "peek-readable@npm:5.0.0"
checksum: 060aece3a907a157b4839aa923b61b664b59cac7296dc8d8e0ddcc39065a4f1e328dd2f171c8a49e869aabc6e076a1be59f939183fb0ababc81f3c870006d672
languageName: node
linkType: hard
"peek-stream@npm:^1.1.0":
version: 1.1.3
resolution: "peek-stream@npm:1.1.3"
@ -38932,7 +39185,7 @@ __metadata:
languageName: node
linkType: hard
"pify@npm:^2.3.0":
"pify@npm:^2.2.0, pify@npm:^2.3.0":
version: 2.3.0
resolution: "pify@npm:2.3.0"
checksum: 551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc
@ -38960,6 +39213,18 @@ __metadata:
languageName: node
linkType: hard
"piscina@npm:^4.3.0":
version: 4.4.0
resolution: "piscina@npm:4.4.0"
dependencies:
nice-napi: "npm:^1.0.2"
dependenciesMeta:
nice-napi:
optional: true
checksum: df6c2a2b673b0633a625f8dfc32f4519155e74ee24e31be9e69d2937e76d6cec8640278b4a50195652a943cccf8c634ed406f08598933c57e959d242b5fe5d1d
languageName: node
linkType: hard
"pkg-dir@npm:^3.0.0":
version: 3.0.0
resolution: "pkg-dir@npm:3.0.0"
@ -41322,7 +41587,7 @@ __metadata:
languageName: node
linkType: hard
"readable-web-to-node-stream@npm:^3.0.0":
"readable-web-to-node-stream@npm:^3.0.0, readable-web-to-node-stream@npm:^3.0.2":
version: 3.0.2
resolution: "readable-web-to-node-stream@npm:3.0.2"
dependencies:
@ -42890,6 +43155,22 @@ __metadata:
languageName: node
linkType: hard
"semver-regex@npm:^4.0.5":
version: 4.0.5
resolution: "semver-regex@npm:4.0.5"
checksum: c270eda133691dfaab90318df995e96222e4c26c47b17f7c8bd5e5fe88b81ed67b59695fe27546e0314b0f0423c7faed1f93379ad9db47c816df2ddf770918ff
languageName: node
linkType: hard
"semver-truncate@npm:^3.0.0":
version: 3.0.0
resolution: "semver-truncate@npm:3.0.0"
dependencies:
semver: "npm:^7.3.5"
checksum: faede4e69e81590ee6b4141f5e89ae1162cd0ecafe660f0ae72bca45f16677a01a3bc26283201b695cec8409e1e861b8b2b10b0621c1661983e7ab10736caeee
languageName: node
linkType: hard
"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0":
version: 5.7.2
resolution: "semver@npm:5.7.2"
@ -43333,6 +43614,13 @@ __metadata:
languageName: node
linkType: hard
"slash@npm:3.0.0, slash@npm:^3.0.0":
version: 3.0.0
resolution: "slash@npm:3.0.0"
checksum: e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b
languageName: node
linkType: hard
"slash@npm:^1.0.0":
version: 1.0.0
resolution: "slash@npm:1.0.0"
@ -43347,13 +43635,6 @@ __metadata:
languageName: node
linkType: hard
"slash@npm:^3.0.0":
version: 3.0.0
resolution: "slash@npm:3.0.0"
checksum: e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b
languageName: node
linkType: hard
"slash@npm:^4.0.0":
version: 4.0.0
resolution: "slash@npm:4.0.0"
@ -43468,6 +43749,24 @@ __metadata:
languageName: node
linkType: hard
"sort-keys-length@npm:^1.0.0":
version: 1.0.1
resolution: "sort-keys-length@npm:1.0.1"
dependencies:
sort-keys: "npm:^1.0.0"
checksum: 4567d08aa859c7e48b7e2cba14a8ae09a100f6a3bd7cf5d21dccd808d6332c945b9a7e2230a95c16e0e6eac1a943cd050ae51a5d1b4c8ec4b1e89a5801be9aa2
languageName: node
linkType: hard
"sort-keys@npm:^1.0.0":
version: 1.1.2
resolution: "sort-keys@npm:1.1.2"
dependencies:
is-plain-obj: "npm:^1.0.0"
checksum: 5dd383b0299a40277051f7498c3999520138e2eb50d422962f658738341c9e82349fad4a3024d5ba1a3122688fbaf958f2a472d4c53bade55515097c2ce15420
languageName: node
linkType: hard
"sort-keys@npm:^4.2.0":
version: 4.2.0
resolution: "sort-keys@npm:4.2.0"
@ -43530,7 +43829,7 @@ __metadata:
languageName: node
linkType: hard
"source-map@npm:0.7.4, source-map@npm:^0.7.0, source-map@npm:^0.7.4":
"source-map@npm:0.7.4, source-map@npm:^0.7.0, source-map@npm:^0.7.3, source-map@npm:^0.7.4":
version: 0.7.4
resolution: "source-map@npm:0.7.4"
checksum: dc0cf3768fe23c345ea8760487f8c97ef6fca8a73c83cd7c9bf2fde8bc2c34adb9c0824d6feb14bc4f9e37fb522e18af621543f1289038a66ac7586da29aa7dc
@ -44314,6 +44613,13 @@ __metadata:
languageName: node
linkType: hard
"strip-eof@npm:^1.0.0":
version: 1.0.0
resolution: "strip-eof@npm:1.0.0"
checksum: f336beed8622f7c1dd02f2cbd8422da9208fae81daf184f73656332899978919d5c0ca84dc6cfc49ad1fc4dd7badcde5412a063cf4e0d7f8ed95a13a63f68f45
languageName: node
linkType: hard
"strip-final-newline@npm:^2.0.0":
version: 2.0.0
resolution: "strip-final-newline@npm:2.0.0"
@ -44369,6 +44675,13 @@ __metadata:
languageName: node
linkType: hard
"strip-outer@npm:^2.0.0":
version: 2.0.0
resolution: "strip-outer@npm:2.0.0"
checksum: 6633b62914884dd63bc94221368b8d8a8df4cbde3d50849de0cfa3bf9f76751828108c9cc9195bcd1b70d73317cc25d3c1c4d6b717be437a1f6161206f44fe75
languageName: node
linkType: hard
"stripe@npm:^14.17.0":
version: 14.17.0
resolution: "stripe@npm:14.17.0"
@ -44409,6 +44722,16 @@ __metadata:
languageName: node
linkType: hard
"strtok3@npm:^7.0.0-alpha.9":
version: 7.0.0
resolution: "strtok3@npm:7.0.0"
dependencies:
"@tokenizer/token": "npm:^0.3.0"
peek-readable: "npm:^5.0.0"
checksum: 63a72b10a302719242bfd31ca53955a06bb091dfec46ef14ca10c4b17ab15780ed8365cd5b270cfbde92d571f677539957add436e4bf9cccdf9977b40d762583
languageName: node
linkType: hard
"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0":
version: 4.1.0
resolution: "style-mod@npm:4.1.0"
@ -45155,6 +45478,16 @@ __metadata:
languageName: node
linkType: hard
"token-types@npm:^5.0.0-alpha.2":
version: 5.0.1
resolution: "token-types@npm:5.0.1"
dependencies:
"@tokenizer/token": "npm:^0.3.0"
ieee754: "npm:^1.2.1"
checksum: cb671b2b52271362816d22b7a076082b0da033cd7807992b81ae53cfd8541bd013ac29e455c3c7a8bb4f88aa1c5315a12353c3599b7f568df238d3c1723f9d8d
languageName: node
linkType: hard
"toposort@npm:^2.0.2":
version: 2.0.2
resolution: "toposort@npm:2.0.2"
@ -45262,6 +45595,15 @@ __metadata:
languageName: node
linkType: hard
"trim-repeated@npm:^2.0.0":
version: 2.0.0
resolution: "trim-repeated@npm:2.0.0"
dependencies:
escape-string-regexp: "npm:^5.0.0"
checksum: 7c81ea60fc5eb509142735e41fbc41d964aeeb491f0deceea9e030a630d05ed236031f69946b5944156dbdd564f4d86cde5e9c775c321a5e96308761679128cf
languageName: node
linkType: hard
"trim-right@npm:^1.0.1":
version: 1.0.1
resolution: "trim-right@npm:1.0.1"
@ -45840,6 +46182,7 @@ __metadata:
"@storybook/testing-library": "npm:^0.2.2"
"@stylistic/eslint-plugin": "npm:^1.5.0"
"@swc-node/register": "npm:1.8.0"
"@swc/cli": "npm:^0.3.12"
"@swc/core": "npm:~1.3.100"
"@swc/helpers": "npm:~0.5.2"
"@swc/jest": "npm:^0.2.29"