import type { IntegrationAccountRequirement, TriggerDefinition } from "../types" const KIT_ACCOUNT = { connectionOptions: [ { connectionMethodId: "oauth", requiredScopes: ["public"] }, { connectionMethodId: "api-key", requiredScopes: [] }, ], serviceId: "kit", } as const satisfies IntegrationAccountRequirement export const kitTriggerDefinitions = { kitBroadcastCreated: definition("kit.broadcast.created"), kitBroadcastDeleted: definition("kit.broadcast.deleted"), kitBroadcastSent: definition("kit.broadcast.sent"), kitCustomFieldCreated: definition("kit.customField.created"), kitCustomFieldDeleted: definition("kit.customField.deleted"), kitEvent: definition("kit.event"), kitPostPublished: definition("kit.post.published"), kitSequenceCreated: definition("kit.sequence.created"), kitSequenceDeleted: definition("kit.sequence.deleted"), kitSequenceDisabled: definition("kit.sequence.disabled"), kitSequencePublished: definition("kit.sequence.published"), kitSubscriberActivated: definition("kit.subscriber.activated"), kitSubscriberAddedToSequence: definition("kit.subscriber.addedToSequence"), kitSubscriberBounced: definition("kit.subscriber.bounced"), kitSubscriberComplained: definition("kit.subscriber.complained"), kitSubscriberCreated: definition("kit.subscriber.created"), kitSubscriberCustomFieldValueUpdated: definition( "kit.subscriber.customFieldValueUpdated", ), kitSubscriberSequenceCompleted: definition( "kit.subscriber.sequenceCompleted", ), kitSubscriberSubscribedToForm: definition("kit.subscriber.subscribedToForm"), kitSubscriberTagAdded: definition("kit.subscriber.tagAdded"), kitSubscriberTagRemoved: definition("kit.subscriber.tagRemoved"), kitSubscriberUnsubscribed: definition("kit.subscriber.unsubscribed"), kitTagCreated: definition("kit.tag.created"), kitTagDeleted: definition("kit.tag.deleted"), } as const satisfies Record /** * Builds one Kit catalog event definition. * * @param type Platform event type. */ function definition(type: TType) { return { account: KIT_ACCOUNT, type } as const }