@trigger.dev/linear 0.0.0-prerelease-20230922185725
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +3 -0
- package/dist/index.d.ts +17604 -0
- package/dist/index.js +4050 -0
- package/dist/index.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/events.ts","../src/payload-examples/AttachmentCreated.json","../src/payload-examples/AttachmentRemoved.json","../src/payload-examples/AttachmentUpdated.json","../src/payload-examples/CommentCreated.json","../src/payload-examples/CommentRemoved.json","../src/payload-examples/CommentUpdated.json","../src/payload-examples/CycleCreated.json","../src/payload-examples/CycleRemoved.json","../src/payload-examples/CycleUpdated.json","../src/payload-examples/IssueCreated.json","../src/payload-examples/IssueRemoved.json","../src/payload-examples/IssueUpdated.json","../src/payload-examples/IssueLabelCreated.json","../src/payload-examples/IssueLabelRemoved.json","../src/payload-examples/IssueLabelUpdated.json","../src/payload-examples/ProjectCreated.json","../src/payload-examples/ProjectRemoved.json","../src/payload-examples/ProjectUpdated.json","../src/payload-examples/ProjectUpdateCreated.json","../src/payload-examples/ProjectUpdateRemoved.json","../src/payload-examples/ProjectUpdateUpdated.json","../src/payload-examples/ReactionCreated.json","../src/payload-examples/ReactionRemoved.json","../src/payload-examples/ReactionUpdated.json","../src/payload-examples/index.ts","../src/utils.ts","../src/webhooks.ts","../src/schemas.ts"],"names":["retry","LinearClient","LinearDocument","L","LinearError","RatelimitedLinearError","attachmentCreated","id","name","payload","AttachmentCreated","attachmentRemoved","AttachmentRemoved","attachmentUpdated","AttachmentUpdated","commentCreated","CommentCreated","commentRemoved","CommentRemoved","commentUpdated","CommentUpdated","cycleCreated","CycleCreated","cycleRemoved","CycleRemoved","cycleUpdated","CycleUpdated","issueCreated","IssueCreated","issueRemoved","IssueRemoved","issueUpdated","IssueUpdated","issueLabelCreated","IssueLabelCreated","issueLabelRemoved","IssueLabelRemoved","issueLabelUpdated","IssueLabelUpdated","projectCreated","ProjectCreated","projectRemoved","ProjectRemoved","projectUpdated","ProjectUpdated","projectUpdateCreated","ProjectUpdateCreated","projectUpdateRemoved","ProjectUpdateRemoved","projectUpdateUpdated","ProjectUpdateUpdated","reactionCreated","ReactionCreated","reactionRemoved","ReactionRemoved","reactionUpdated","ReactionUpdated","onCommentProperties","label","text","data","issueId","issue","title","url","undefined","onIssueProperties","team","key","number","queryProperties","query","after","before","first","String","last","orderBy","includeArchived","updatedFromProperties","action","Object","keys","updatedFrom","filter","includes","join","onAttachment","source","icon","examples","parsePayload","runProperties","onAttachmentCreated","onAttachmentRemoved","onAttachmentUpdated","onComment","onCommentCreated","onCommentRemoved","onCommentUpdated","onCycle","onCycleCreated","onCycleRemoved","onCycleUpdated","onIssue","onIssueCreated","onIssueRemoved","onIssueUpdated","onIssueLabel","onIssueLabelCreated","onIssueLabelRemoved","onIssueLabelUpdated","onIssueSLA","issueData","onIssueSLASet","onIssueSLABreached","onIssueSLAHighRisk","onProject","onProjectCreated","onProjectRemoved","onProjectUpdated","onProjectUpdate","onProjectUpdateCreated","onProjectUpdateRemoved","onProjectUpdateUpdated","onReaction","onReactionCreated","onReactionRemoved","onReactionUpdated","ExternalSource","ExternalSourceTrigger","LinearWebhooks","LINEAR_WEBHOOK_SIGNATURE_HEADER","LINEAR_WEBHOOK_TS_FIELD","z","WebhookResourceTypeSchema","union","literal","WebhookChangeActionTypeSchema","WebhookSLAActionTypeSchema","WebhookActionTypeSchema","or","IssueLabelDataSchema","object","archivedAt","coerce","date","optional","nullable","color","string","createdAt","creatorId","description","organizationId","parentId","teamId","updatedAt","IssueDataSchema","assignee","assigneeId","autoArchivedAt","autoClosedAt","boardOrder","canceledAt","completedAt","cycleId","dueDate","estimate","favoriteId","labelIds","array","labels","pick","previousIdentifiers","priority","priorityLabel","projectId","sortOrder","state","type","startedAt","stateId","subIssueSortOrder","subscriberIds","trashed","boolean","triagedAt","AttachmentDataSchema","groupBySource","metadata","passthrough","imageUrl","partial","sourceType","subtitle","CommentDataSchema","body","botActorId","editedAt","reactionData","userId","ReactionDataSchema","comment","emoji","user","MilestoneDataSchema","targetDate","RoadmapDataSchema","ownerId","slugId","ProjectDataSchema","completedIssueCountHistory","completedScopeHistory","content","convertedFromIssueId","inProgressScopeHistory","integrationsSettingsId","issueCountHistory","leadId","memberIds","milestones","progress","projectUpdateRemindersPausedUntilAt","roadmaps","scope","scopeHistory","slackIssueComments","slackIssueStatuses","slackNewIssue","startDate","teamIds","ProjectUpdateDataSchema","health","infoSnapshot","project","CycleDataSchema","endsAt","startsAt","uncompletedIssuesUponCloseIds","WebhookPayloadBaseSchema","webhookId","webhookTimestamp","CREATE","REMOVE","UPDATE","AttachmentEventBaseSchema","extend","AttachmentEventSchema","discriminatedUnion","CommentEventBaseSchema","CommentEventSchema","CycleEventBaseSchema","CycleEventSchema","IssueEventBaseSchema","IssueEventSchema","IssueLabelEventBaseSchema","IssueLabelEventSchema","IssueSLAEventBaseSchema","IssueSLAEventSchema","ProjectEventBaseSchema","ProjectEventSchema","ProjectUpdateEventBaseSchema","ProjectUpdateEventSchema","ReactionEventBaseSchema","ReactionEventSchema","WebhookPayloadSchema","Webhooks","constructor","runTask","webhook","params","client","task","io","serializeLinearOutput","properties","webhooks","connections","hooks","nodes","pageInfo","hasNextPage","fetchNext","push","createWebhook","allPublicTeams","resourceTypes","deleteWebhook","updateWebhook","input","createTrigger","event","options","WebhookRegistrationDataSchema","success","enabled","createWebhookEventSource","integration","schema","version","handler","webhookHandler","register","ctx","httpSource","webhookData","safeParse","allEvents","Array","from","Set","desired","missing","registeredOptions","active","hasMissingOptions","values","some","option","length","updatedWebhook","secret","parse","listResponse","existingWebhook","find","w","createPayload","logger","debug","rawEvent","request","LINEAR_IPS","clientIp","headers","get","split","error","Error","payloadUuid","payloadEvent","events","signature","rawBody","JSON","webhookHelper","verify","Buffer","webhookPayload","context","Linear","apiKey","_options","authSource","cloneForRun","connectionKey","auth","linear","_io","_connectionKey","_client","createClient","accessToken","callback","errorCallback","standardBackoff","onError","getAll","boundTask","bind","edges","i","endCursor","concat","attachment","entity","attachments","createAttachment","deleteAttachment","updateAttachment","attachmentLinkDiscord","channelId","messageId","variables","attachmentLinkFront","conversationId","attachmentLinkIntercom","attachmentLinkJiraIssue","jiraIssueId","attachmentLinkSlack","channel","latest","attachmentLinkURL","attachmentLinkZendesk","ticketId","comments","createComment","deleteComment","updateComment","archiveCycle","createCycle","cycle","toISOString","updateCycle","document","documents","createDocument","searchDocuments","term","favorite","favorites","createFavorite","issues","archiveIssue","createIssue","deleteIssue","searchIssues","updateIssue","issueLabel","issueLabels","createIssueLabel","deleteIssueLabel","updateIssueLabel","issuePriorityValues","issueRelation","issueRelations","createIssueRelation","relatedIssueId","notification","notifications","archiveNotification","createNotificationSubscription","organization","createOrganizationFromOnboarding","urlKey","createOrganizationInvite","organizationInvite","email","projects","archiveProject","createProject","deleteProject","searchProjects","updateProject","projectLink","projectLinks","createProjectLink","createProjectMilestone","projectMilestone","projectUpdate","projectUpdates","createProjectUpdate","deleteProjectUpdate","updateProjectUpdate","createReaction","reaction","commentId","projectUpdateId","deleteReaction","archiveRoadmap","createRoadmap","roadmap","teams","createTeam","teamMembership","teamMemberships","createTeamMembership","template","templates","users","updateUser","viewer","workflowState","workflowStates","archiveWorkflowState","createWorkflowState","errors","e","userError","skipRetrying","rateLimitRemaining","raw","response","rateLimitReset","resetDate","Date","Number","retryAt","queryComplexity","complexityRemaining","complexityReset","obj","stringify","value","startsWith","PaginationOrderBy"],"mappings":"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","sourcesContent":["import {\n ConnectionAuth,\n IO,\n IOTask,\n IntegrationTaskKey,\n Json,\n Prettify,\n RunTaskErrorCallback,\n RunTaskOptions,\n TriggerIntegration,\n retry,\n} from \"@trigger.dev/sdk\";\nimport {\n Attachment,\n AttachmentConnection,\n AttachmentPayload,\n Comment,\n CommentConnection,\n CommentPayload,\n Connection,\n CreateOrJoinOrganizationResponse,\n CycleArchivePayload,\n CyclePayload,\n DeletePayload,\n Document,\n DocumentConnection,\n DocumentPayload,\n DocumentSearchPayload,\n Favorite,\n FavoriteConnection,\n FavoritePayload,\n FrontAttachmentPayload,\n Issue,\n IssueArchivePayload,\n IssueConnection,\n IssueLabel,\n IssueLabelConnection,\n IssueLabelPayload,\n IssuePayload,\n IssuePriorityValue,\n IssueRelation,\n IssueRelationConnection,\n IssueRelationPayload,\n IssueSearchPayload,\n LinearClient,\n LinearDocument as L,\n LinearError,\n Notification,\n NotificationArchivePayload,\n NotificationConnection,\n NotificationSubscriptionPayload,\n Organization,\n OrganizationInvitePayload,\n Project,\n ProjectArchivePayload,\n ProjectConnection,\n ProjectLink,\n ProjectLinkConnection,\n ProjectLinkPayload,\n ProjectMilestonePayload,\n ProjectPayload,\n ProjectSearchPayload,\n ProjectUpdate,\n ProjectUpdateConnection,\n ProjectUpdatePayload,\n RatelimitedLinearError,\n ReactionPayload,\n RoadmapArchivePayload,\n RoadmapPayload,\n Team,\n TeamConnection,\n TeamMembership,\n TeamMembershipConnection,\n TeamMembershipPayload,\n TeamPayload,\n Template,\n User,\n UserConnection,\n UserPayload,\n WorkflowState,\n WorkflowStateArchivePayload,\n WorkflowStateConnection,\n WorkflowStatePayload,\n} from \"@linear/sdk\";\n\nimport * as events from \"./events\";\nimport { AwaitNested, LinearReturnType, SerializedLinearOutput } from \"./types\";\nimport { Nullable, QueryVariables, queryProperties } from \"./utils\";\nimport { TriggerParams, Webhooks, createTrigger, createWebhookEventSource } from \"./webhooks\";\n\nexport type LinearIntegrationOptions = {\n id: string;\n apiKey?: string;\n};\n\nexport type LinearRunTask = InstanceType<typeof Linear>[\"runTask\"];\n\nexport class Linear implements TriggerIntegration {\n private _options: LinearIntegrationOptions;\n private _client?: LinearClient;\n private _io?: IO;\n private _connectionKey?: string;\n\n constructor(private options: LinearIntegrationOptions) {\n if (Object.keys(options).includes(\"apiKey\") && !options.apiKey) {\n throw `Can't create Linear integration (${options.id}) as apiKey was undefined`;\n }\n\n this._options = options;\n }\n\n get authSource() {\n return this._options.apiKey ? \"LOCAL\" : \"HOSTED\";\n }\n\n get id() {\n return this._options.id;\n }\n\n get metadata() {\n return { id: \"linear\", name: \"Linear\" };\n }\n\n get source() {\n return createWebhookEventSource(this);\n }\n\n cloneForRun(io: IO, connectionKey: string, auth?: ConnectionAuth) {\n const linear = new Linear(this._options);\n linear._io = io;\n linear._connectionKey = connectionKey;\n linear._client = this.createClient(auth);\n return linear;\n }\n\n createClient(auth?: ConnectionAuth) {\n if (auth) {\n return new LinearClient({\n accessToken: auth.accessToken,\n });\n }\n\n if (this._options.apiKey) {\n return new LinearClient({\n apiKey: this._options.apiKey,\n });\n }\n\n throw new Error(\"No auth\");\n }\n\n runTask<T, TResult extends Json<T> | void>(\n key: IntegrationTaskKey,\n callback: (client: LinearClient, task: IOTask, io: IO) => Promise<TResult>,\n options?: RunTaskOptions,\n errorCallback?: RunTaskErrorCallback\n ): Promise<TResult> {\n if (!this._io) throw new Error(\"No IO\");\n if (!this._connectionKey) throw new Error(\"No connection key\");\n\n return this._io.runTask<TResult>(\n key,\n (task, io) => {\n if (!this._client) throw new Error(\"No client\");\n return callback(this._client, task, io);\n },\n {\n icon: \"linear\",\n retry: retry.standardBackoff,\n ...(options ?? {}),\n connectionKey: this._connectionKey,\n },\n errorCallback ?? onError\n );\n }\n\n async getAll<\n TTask extends (\n key: IntegrationTaskKey,\n params: Partial<Nullable<QueryVariables>>\n ) => LinearReturnType<Connection<unknown>>,\n >(\n task: TTask,\n key: IntegrationTaskKey,\n params: Nullable<QueryVariables> = {}\n ): Promise<Awaited<ReturnType<TTask>>[\"nodes\"]> {\n const boundTask = task.bind(this as any);\n\n let edges = await boundTask(`${key}-0`, params);\n let nodes = edges.nodes;\n\n for (let i = 1; edges.pageInfo.hasNextPage; i++) {\n edges = await boundTask(`${key}-${i}`, { ...params, after: edges.pageInfo.endCursor });\n nodes = nodes.concat(edges.nodes);\n }\n\n return nodes;\n }\n\n attachment(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Attachment> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.attachment(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Attachment\",\n params,\n properties: [{ label: \"Attachment ID\", text: params.id }],\n }\n );\n }\n\n attachments(\n key: IntegrationTaskKey,\n params: L.AttachmentsQueryVariables = {}\n ): LinearReturnType<AttachmentConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.attachments(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Attachments\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createAttachment(\n key: IntegrationTaskKey,\n params: L.AttachmentCreateInput\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createAttachment(params);\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Create Attachment\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Title\", text: params.title },\n { label: \"URL\", text: params.url },\n ],\n }\n );\n }\n\n deleteAttachment(key: IntegrationTaskKey, params: { id: string }): Promise<DeletePayload> {\n return this.runTask(key, (client) => client.deleteAttachment(params.id), {\n name: \"Delete Attachment\",\n params,\n properties: [{ label: \"Attachment ID\", text: params.id }],\n });\n }\n\n updateAttachment(\n key: IntegrationTaskKey,\n params: { id: string; input: L.AttachmentUpdateInput }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateAttachment(params.id, params.input);\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Update Attachment\",\n params,\n properties: [{ label: \"Attachment ID\", text: params.id }],\n }\n );\n }\n\n attachmentLinkDiscord(\n key: IntegrationTaskKey,\n params: {\n channelId: string;\n issueId: string;\n messageId: string;\n url: string;\n variables?: Omit<\n L.AttachmentLinkDiscordMutationVariables,\n \"channelId\" | \"issueId\" | \"messageId\" | \"url\"\n >;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkDiscord(\n params.channelId,\n params.issueId,\n params.messageId,\n params.url,\n params.variables\n );\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link Discord Message\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Channel ID\", text: params.channelId },\n { label: \"Message ID\", text: params.messageId },\n { label: \"URL\", text: params.url },\n ],\n }\n );\n }\n\n attachmentLinkFront(\n key: IntegrationTaskKey,\n params: {\n conversationId: string;\n issueId: string;\n variables?: Omit<L.AttachmentLinkFrontMutationVariables, \"conversationId\" | \"issueId\">;\n }\n ): LinearReturnType<FrontAttachmentPayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkFront(\n params.conversationId,\n params.issueId,\n params.variables\n );\n return serializeLinearOutput(payload);\n },\n {\n name: \"Link Front Conversation\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Conversation ID\", text: params.conversationId },\n ],\n }\n );\n }\n\n attachmentLinkIntercom(\n key: IntegrationTaskKey,\n params: {\n conversationId: string;\n issueId: string;\n variables?: Omit<L.AttachmentLinkIntercomMutationVariables, \"conversationId\" | \"issueId\">;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkIntercom(\n params.conversationId,\n params.issueId,\n params.variables\n );\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link Intercom Conversation\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Conversation ID\", text: params.conversationId },\n ],\n }\n );\n }\n\n attachmentLinkJiraIssue(\n key: IntegrationTaskKey,\n params: {\n issueId: string;\n jiraIssueId: string;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkJiraIssue(params.issueId, params.jiraIssueId);\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link Jira Issue\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Jira Issue ID\", text: params.jiraIssueId },\n ],\n }\n );\n }\n\n attachmentLinkSlack(\n key: IntegrationTaskKey,\n params: {\n channel: string;\n issueId: string;\n latest: string;\n url: string;\n variables?: Omit<\n L.AttachmentLinkSlackMutationVariables,\n \"channel\" | \"issueId\" | \"latest\" | \"url\"\n >;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkSlack(\n params.channel,\n params.issueId,\n params.latest,\n params.url,\n params.variables\n );\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link Slack Message\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Channel\", text: params.channel },\n { label: \"Latest\", text: params.latest },\n { label: \"URL\", text: params.url },\n ],\n }\n );\n }\n\n attachmentLinkURL(\n key: IntegrationTaskKey,\n params: {\n issueId: string;\n url: string;\n variables?: Omit<L.AttachmentLinkUrlMutationVariables, \"issueId\" | \"url\">;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkURL(\n params.issueId,\n params.url,\n params.variables\n );\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link URL\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"URL\", text: params.url },\n ],\n }\n );\n }\n\n attachmentLinkZendesk(\n key: IntegrationTaskKey,\n params: {\n issueId: string;\n ticketId: string;\n variables?: Omit<L.AttachmentLinkZendeskMutationVariables, \"issueId\" | \"ticketId\">;\n }\n ): LinearReturnType<AttachmentPayload, \"attachment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.attachmentLinkZendesk(\n params.issueId,\n params.ticketId,\n params.variables\n );\n return serializeLinearOutput(await payload.attachment);\n },\n {\n name: \"Link Zendesk Ticket\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Ticket ID\", text: params.ticketId },\n ],\n }\n );\n }\n\n comment(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Comment> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.comment(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Comment\",\n params,\n properties: [{ label: \"Comment ID\", text: params.id }],\n }\n );\n }\n\n comments(\n key: IntegrationTaskKey,\n params: L.CommentsQueryVariables = {}\n ): LinearReturnType<CommentConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.comments(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Comments\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createComment(\n key: IntegrationTaskKey,\n params: L.CommentCreateInput\n ): LinearReturnType<CommentPayload, \"comment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createComment(params);\n return serializeLinearOutput(await payload.comment);\n },\n {\n name: \"Create Comment\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Body\", text: params.body ?? \"\" },\n ],\n }\n );\n }\n\n deleteComment(key: IntegrationTaskKey, params: { id: string }): Promise<DeletePayload> {\n return this.runTask(key, (client) => client.deleteComment(params.id), {\n name: \"Delete Comment\",\n params,\n properties: [{ label: \"Comment ID\", text: params.id }],\n });\n }\n\n updateComment(\n key: IntegrationTaskKey,\n params: { id: string; input: L.CommentUpdateInput }\n ): LinearReturnType<CommentPayload, \"comment\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateComment(params.id, params.input);\n return serializeLinearOutput(await payload.comment);\n },\n {\n name: \"Update Comment\",\n params,\n properties: [{ label: \"Comment ID\", text: params.id }],\n }\n );\n }\n\n archiveCycle(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<AwaitNested<CycleArchivePayload, \"entity\">> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveCycle(params.id);\n return serializeLinearOutput({\n ...payload,\n entity: await payload.entity,\n });\n },\n {\n name: \"Archive Cycle\",\n params,\n properties: [{ label: \"Cycle ID\", text: params.id }],\n }\n );\n }\n\n createCycle(\n key: IntegrationTaskKey,\n params: L.CycleCreateInput\n ): LinearReturnType<CyclePayload, \"cycle\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createCycle(params);\n return serializeLinearOutput(await payload.cycle);\n },\n {\n name: \"Create Cycle\",\n params,\n properties: [\n { label: \"Team ID\", text: params.teamId },\n { label: \"Start at\", text: params.startsAt.toISOString() },\n { label: \"Ends at\", text: params.endsAt.toISOString() },\n ],\n }\n );\n }\n\n // deleteCycle() does not exist\n\n updateCycle(\n key: IntegrationTaskKey,\n params: { id: string; input: L.CycleUpdateInput }\n ): LinearReturnType<CyclePayload, \"cycle\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateCycle(params.id, params.input);\n return serializeLinearOutput(await payload.cycle);\n },\n {\n name: \"Update Cycle\",\n params,\n properties: [{ label: \"Cycle ID\", text: params.id }],\n }\n );\n }\n\n document(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Document> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.document(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Document\",\n params,\n properties: [{ label: \"Document ID\", text: params.id }],\n }\n );\n }\n\n documents(\n key: IntegrationTaskKey,\n params: L.DocumentsQueryVariables\n ): LinearReturnType<DocumentConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.documents(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Documents\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createDocument(\n key: IntegrationTaskKey,\n params: L.DocumentCreateInput\n ): LinearReturnType<DocumentPayload, \"document\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createDocument(params);\n return serializeLinearOutput(await payload.document);\n },\n {\n name: \"Create Document\",\n params,\n properties: [\n { label: \"Project ID\", text: params.projectId },\n { label: \"Title\", text: params.title },\n ],\n }\n );\n }\n\n searchDocuments(\n key: IntegrationTaskKey,\n params: {\n term: string;\n variables?: L.SearchDocumentsQueryVariables;\n }\n ): LinearReturnType<DocumentSearchPayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.searchDocuments(params.term, params.variables);\n return serializeLinearOutput(payload);\n },\n {\n name: \"Search Documents\",\n params,\n properties: [{ label: \"Search Term\", text: params.term }],\n }\n );\n }\n\n favorite(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Favorite> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.favorite(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Favorite\",\n params,\n properties: [{ label: \"Favorite ID\", text: params.id }],\n }\n );\n }\n\n favorites(\n key: IntegrationTaskKey,\n params: L.FavoritesQueryVariables = {}\n ): LinearReturnType<FavoriteConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.favorites(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Favorites\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createFavorite(\n key: IntegrationTaskKey,\n params: L.FavoriteCreateInput\n ): LinearReturnType<FavoritePayload, \"favorite\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createFavorite(params);\n return serializeLinearOutput(await payload.favorite);\n },\n {\n name: \"Create Favorite\",\n params,\n }\n );\n }\n\n issue(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Issue> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.issue(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Issue\",\n params,\n properties: [{ label: \"Issue ID\", text: params.id }],\n }\n );\n }\n\n issues(\n key: IntegrationTaskKey,\n params: L.IssuesQueryVariables = {}\n ): LinearReturnType<IssueConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.issues(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Issues\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n archiveIssue(\n key: IntegrationTaskKey,\n params: {\n id: string;\n variables?: Omit<L.ArchiveIssueMutationVariables, \"id\">;\n }\n ): LinearReturnType<AwaitNested<IssueArchivePayload, \"entity\">> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveIssue(params.id, params.variables);\n return serializeLinearOutput({\n ...payload,\n entity: await payload.entity,\n });\n },\n {\n name: \"Archive Issue\",\n params,\n properties: [{ label: \"Issue ID\", text: params.id }],\n }\n );\n }\n\n createIssue(\n key: IntegrationTaskKey,\n params: L.IssueCreateInput & { title: string }\n ): LinearReturnType<IssuePayload, \"issue\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createIssue(params);\n return serializeLinearOutput(await payload.issue);\n },\n {\n name: \"Create Issue\",\n params,\n properties: [\n { label: \"Team ID\", text: params.teamId },\n { label: \"Title\", text: params.title },\n ],\n }\n );\n }\n\n deleteIssue(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<IssuePayload, \"issue\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.deleteIssue(params.id);\n return serializeLinearOutput(await payload.entity);\n },\n {\n name: \"Delete Issue\",\n params,\n properties: [{ label: \"Issue ID\", text: params.id }],\n }\n );\n }\n\n searchIssues(\n key: IntegrationTaskKey,\n params: {\n term: string;\n variables?: L.SearchIssuesQueryVariables;\n }\n ): LinearReturnType<IssueSearchPayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.searchIssues(params.term, params.variables);\n return serializeLinearOutput(payload);\n },\n {\n name: \"Search Issues\",\n params,\n properties: [{ label: \"Search Term\", text: params.term }],\n }\n );\n }\n\n updateIssue(\n key: IntegrationTaskKey,\n params: { id: string; input: L.IssueUpdateInput }\n ): LinearReturnType<IssuePayload, \"issue\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateIssue(params.id, params.input);\n return serializeLinearOutput(await payload.issue);\n },\n {\n name: \"Update Issue\",\n params,\n properties: [{ label: \"Issue ID\", text: params.id }],\n }\n );\n }\n\n issueLabel(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<IssueLabel> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.issueLabel(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get IssueLabel\",\n params,\n properties: [{ label: \"IssueLabel ID\", text: params.id }],\n }\n );\n }\n\n issueLabels(\n key: IntegrationTaskKey,\n params: L.IssueLabelsQueryVariables = {}\n ): LinearReturnType<IssueLabelConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.issueLabels(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get IssueLabels\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createIssueLabel(\n key: IntegrationTaskKey,\n params: L.IssueLabelCreateInput\n ): LinearReturnType<IssueLabelPayload, \"issueLabel\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createIssueLabel(params);\n return serializeLinearOutput(await payload.issueLabel);\n },\n {\n name: \"Create IssueLabel\",\n params,\n properties: [{ label: \"Label name\", text: params.name }],\n }\n );\n }\n\n deleteIssueLabel(key: IntegrationTaskKey, params: { id: string }): Promise<DeletePayload> {\n return this.runTask(key, (client) => client.deleteIssueLabel(params.id), {\n name: \"Delete IssueLabel\",\n params,\n properties: [{ label: \"Label ID\", text: params.id }],\n });\n }\n\n updateIssueLabel(\n key: IntegrationTaskKey,\n params: { id: string; input: L.IssueLabelUpdateInput }\n ): LinearReturnType<IssueLabelPayload, \"issueLabel\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateIssueLabel(params.id, params.input);\n return serializeLinearOutput(await payload.issueLabel);\n },\n {\n name: \"Update IssueLabel\",\n params,\n properties: [{ label: \"Label ID\", text: params.id }],\n }\n );\n }\n\n issuePriorityValues(key: IntegrationTaskKey): LinearReturnType<IssuePriorityValue[]> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.issuePriorityValues;\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Issue Priority Values\",\n }\n );\n }\n\n issueRelation(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<IssueRelation> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.issueRelation(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get IssueRelation\",\n params,\n properties: [{ label: \"IssueRelation ID\", text: params.id }],\n }\n );\n }\n\n issueRelations(\n key: IntegrationTaskKey,\n params: L.IssueRelationsQueryVariables = {}\n ): LinearReturnType<IssueRelationConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.issueRelations(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get IssueRelations\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createIssueRelation(\n key: IntegrationTaskKey,\n params: L.IssueRelationCreateInput\n ): LinearReturnType<IssueRelationPayload, \"issueRelation\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createIssueRelation(params);\n return serializeLinearOutput(await payload.issueRelation);\n },\n {\n name: \"Create IssueRelation\",\n params,\n properties: [\n { label: \"Issue ID\", text: params.issueId },\n { label: \"Related Issue ID\", text: params.relatedIssueId },\n { label: \"Relation Type\", text: params.type },\n ],\n }\n );\n }\n\n notification(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Notification> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.notification(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Notification\",\n params,\n properties: [{ label: \"Notification ID\", text: params.id }],\n }\n );\n }\n\n notifications(\n key: IntegrationTaskKey,\n params: L.NotificationsQueryVariables = {}\n ): LinearReturnType<NotificationConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.notifications(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Notifications\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n archiveNotification(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<NotificationArchivePayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveNotification(params.id);\n return serializeLinearOutput(payload);\n },\n {\n name: \"Archive Notification\",\n params,\n properties: [{ label: \"Notification ID\", text: params.id }],\n }\n );\n }\n\n createNotificationSubscription(\n key: IntegrationTaskKey,\n params: {\n input: L.NotificationSubscriptionCreateInput;\n }\n ): LinearReturnType<NotificationSubscriptionPayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createNotificationSubscription(params.input);\n return serializeLinearOutput(payload);\n },\n {\n name: \"Create Notification Subscription\",\n params,\n }\n );\n }\n\n organization(key: IntegrationTaskKey): LinearReturnType<Organization> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.organization;\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Viewer's Organization\",\n }\n );\n }\n\n createOrganizationFromOnboarding(\n key: IntegrationTaskKey,\n params: {\n input: L.CreateOrganizationInput;\n variables?: Omit<L.CreateOrganizationFromOnboardingMutationVariables, \"input\">;\n }\n ): LinearReturnType<CreateOrJoinOrganizationResponse, \"organization\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createOrganizationFromOnboarding(\n params.input,\n params.variables\n );\n return serializeLinearOutput(await payload.organization);\n },\n {\n name: \"Create Organization\",\n params,\n properties: [\n { label: \"Name\", text: params.input.name },\n { label: \"URL Key\", text: params.input.urlKey },\n ],\n }\n );\n }\n\n /** WARNING: Causes internal server errors on Linear's side, regardless of input. */\n createOrganizationInvite(\n key: IntegrationTaskKey,\n params: {\n input: L.OrganizationInviteCreateInput;\n }\n ): LinearReturnType<OrganizationInvitePayload, \"organizationInvite\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createOrganizationInvite(params.input);\n return serializeLinearOutput(await payload.organizationInvite);\n },\n {\n name: \"Create Organization Invite\",\n params,\n properties: [{ label: \"Invitee Email\", text: params.input.email }],\n }\n );\n }\n\n project(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Project> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.project(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Project\",\n params,\n properties: [{ label: \"Project ID\", text: params.id }],\n }\n );\n }\n\n projects(\n key: IntegrationTaskKey,\n params: L.ProjectsQueryVariables = {}\n ): LinearReturnType<ProjectConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.projects(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Projects\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n archiveProject(\n key: IntegrationTaskKey,\n params: {\n id: string;\n variables?: Omit<L.ArchiveProjectMutationVariables, \"id\">;\n }\n ): LinearReturnType<AwaitNested<ProjectArchivePayload, \"entity\">> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveProject(params.id, params.variables);\n return serializeLinearOutput({\n ...payload,\n entity: await payload.entity,\n });\n },\n {\n name: \"Archive Project\",\n params,\n properties: [{ label: \"Project ID\", text: params.id }],\n }\n );\n }\n\n createProject(\n key: IntegrationTaskKey,\n params: L.ProjectCreateInput\n ): LinearReturnType<ProjectPayload, \"project\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createProject(params);\n return serializeLinearOutput(await payload.project);\n },\n {\n name: \"Create Project\",\n params,\n properties: [\n { label: \"Team IDs\", text: params.teamIds.join(\", \") },\n { label: \"Project name\", text: params.name },\n ],\n }\n );\n }\n\n deleteProject(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<ProjectPayload, \"project\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.deleteProject(params.id);\n return serializeLinearOutput(await payload.entity);\n },\n {\n name: \"Delete Project\",\n params,\n properties: [{ label: \"Project ID\", text: params.id }],\n }\n );\n }\n\n searchProjects(\n key: IntegrationTaskKey,\n params: {\n term: string;\n variables?: L.SearchProjectsQueryVariables;\n }\n ): LinearReturnType<ProjectSearchPayload> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.searchProjects(params.term, params.variables);\n return serializeLinearOutput(payload);\n },\n {\n name: \"Search Projects\",\n params,\n properties: [{ label: \"Search Term\", text: params.term }],\n }\n );\n }\n\n updateProject(\n key: IntegrationTaskKey,\n params: { id: string; input: L.ProjectUpdateInput }\n ): LinearReturnType<ProjectPayload, \"project\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateProject(params.id, params.input);\n return serializeLinearOutput(await payload.project);\n },\n {\n name: \"Update Project\",\n params,\n properties: [{ label: \"Project ID\", text: params.id }],\n }\n );\n }\n\n projectLink(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<ProjectLink> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.projectLink(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get ProjectLink\",\n params,\n properties: [{ label: \"ProjectLink ID\", text: params.id }],\n }\n );\n }\n\n projectLinks(\n key: IntegrationTaskKey,\n params: L.ProjectLinksQueryVariables = {}\n ): LinearReturnType<ProjectLinkConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.projectLinks(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get ProjectLinks\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createProjectLink(\n key: IntegrationTaskKey,\n params: L.ProjectLinkCreateInput\n ): LinearReturnType<ProjectLinkPayload, \"projectLink\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createProjectLink(params);\n return serializeLinearOutput(await payload.projectLink);\n },\n {\n name: \"Create ProjectLink\",\n params,\n properties: [\n { label: \"Project ID\", text: params.projectId },\n { label: \"Link Label\", text: params.label },\n { label: \"Link URL\", text: params.url },\n ],\n }\n );\n }\n\n createProjectMilestone(\n key: IntegrationTaskKey,\n params: L.ProjectMilestoneCreateInput\n ): LinearReturnType<ProjectMilestonePayload, \"projectMilestone\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createProjectMilestone(params);\n return serializeLinearOutput(await payload.projectMilestone);\n },\n {\n name: \"Create ProjectMilestone\",\n params,\n properties: [\n { label: \"Project ID\", text: params.projectId },\n { label: \"Milestone Name\", text: params.name },\n ],\n }\n );\n }\n\n projectUpdate(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<ProjectUpdate> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.projectUpdate(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get ProjectUpdate\",\n params,\n properties: [{ label: \"ProjectUpdate ID\", text: params.id }],\n }\n );\n }\n\n projectUpdates(\n key: IntegrationTaskKey,\n params: L.ProjectUpdatesQueryVariables = {}\n ): LinearReturnType<ProjectUpdateConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.projectUpdates(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get ProjectUpdates\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createProjectUpdate(\n key: IntegrationTaskKey,\n params: L.ProjectUpdateCreateInput\n ): LinearReturnType<ProjectUpdatePayload, \"projectUpdate\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createProjectUpdate(params);\n return serializeLinearOutput(await payload.projectUpdate);\n },\n {\n name: \"Create ProjectUpdate\",\n params,\n properties: [{ label: \"Project ID\", text: params.projectId }],\n }\n );\n }\n\n deleteProjectUpdate(key: IntegrationTaskKey, params: { id: string }): Promise<DeletePayload> {\n return this.runTask(key, (client) => client.deleteProjectUpdate(params.id), {\n name: \"Delete ProjectUpdate\",\n params,\n properties: [{ label: \"ProjectUpdate ID\", text: params.id }],\n });\n }\n\n updateProjectUpdate(\n key: IntegrationTaskKey,\n params: { id: string; input: L.ProjectUpdateUpdateInput }\n ): LinearReturnType<ProjectUpdatePayload, \"projectUpdate\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateProjectUpdate(params.id, params.input);\n return serializeLinearOutput(await payload.projectUpdate);\n },\n {\n name: \"Update ProjectUpdate\",\n params,\n properties: [{ label: \"ProjectUpdate ID\", text: params.id }],\n }\n );\n }\n\n createReaction(\n key: IntegrationTaskKey,\n params: L.ReactionCreateInput & { emoji: string }\n ): LinearReturnType<ReactionPayload, \"reaction\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createReaction(params);\n return serializeLinearOutput(await payload.reaction);\n },\n {\n name: \"Create Reaction\",\n params,\n properties: [\n ...(params.commentId ? [{ label: \"Comment ID\", text: params.commentId }] : []),\n ...(params.issueId ? [{ label: \"Issue ID\", text: params.issueId }] : []),\n ...(params.projectUpdateId\n ? [{ label: \"ProjectUpdate ID\", text: params.projectUpdateId }]\n : []),\n { label: \"Emoji\", text: params.emoji },\n ],\n }\n );\n }\n\n deleteReaction(key: IntegrationTaskKey, params: { id: string }): Promise<DeletePayload> {\n return this.runTask(key, (client) => client.deleteReaction(params.id), {\n name: \"Delete Reaction\",\n params,\n properties: [{ label: \"Reaction ID\", text: params.id }],\n });\n }\n\n archiveRoadmap(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<AwaitNested<RoadmapArchivePayload, \"entity\">> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveRoadmap(params.id);\n return serializeLinearOutput({\n ...payload,\n entity: await payload.entity,\n });\n },\n {\n name: \"Archive Roadmap\",\n params,\n properties: [{ label: \"Roadmap ID\", text: params.id }],\n }\n );\n }\n\n createRoadmap(\n key: IntegrationTaskKey,\n params: L.RoadmapCreateInput\n ): LinearReturnType<RoadmapPayload, \"roadmap\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createRoadmap(params);\n return serializeLinearOutput(await payload.roadmap);\n },\n {\n name: \"Create Roadmap\",\n params,\n properties: [{ label: \"Roadmap Name\", text: params.name }],\n }\n );\n }\n\n team(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Team> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.team(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Team\",\n params,\n properties: [{ label: \"Team ID\", text: params.id }],\n }\n );\n }\n\n teams(\n key: IntegrationTaskKey,\n params: L.TeamsQueryVariables = {}\n ): LinearReturnType<TeamConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.teams(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Teams\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createTeam(\n key: IntegrationTaskKey,\n params: L.TeamCreateInput\n ): LinearReturnType<TeamPayload, \"team\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createTeam(params);\n return serializeLinearOutput(await payload.team);\n },\n {\n name: \"Create Team\",\n params,\n properties: [{ label: \"Team Name\", text: params.name }],\n }\n );\n }\n\n teamMembership(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<TeamMembership> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.teamMembership(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get TeamMembership\",\n params,\n properties: [{ label: \"TeamMembership ID\", text: params.id }],\n }\n );\n }\n\n teamMemberships(\n key: IntegrationTaskKey,\n params: L.TeamMembershipsQueryVariables = {}\n ): LinearReturnType<TeamMembershipConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.teamMemberships(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get TeamMemberships\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n createTeamMembership(\n key: IntegrationTaskKey,\n params: L.TeamMembershipCreateInput\n ): LinearReturnType<TeamMembershipPayload, \"teamMembership\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createTeamMembership(params);\n return serializeLinearOutput(await payload.teamMembership);\n },\n {\n name: \"Create TeamMembership\",\n params,\n properties: [\n { label: \"Team ID\", text: params.teamId },\n { label: \"User ID\", text: params.userId },\n ],\n }\n );\n }\n\n template(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Template> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.template(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Template\",\n properties: [{ label: \"Template ID\", text: params.id }],\n }\n );\n }\n\n templates(key: IntegrationTaskKey): LinearReturnType<Template[]> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.templates;\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Templates\",\n }\n );\n }\n\n user(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<User> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.user(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get User\",\n params,\n properties: [{ label: \"User ID\", text: params.id }],\n }\n );\n }\n\n users(\n key: IntegrationTaskKey,\n params: L.UsersQueryVariables = {}\n ): LinearReturnType<UserConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.users(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get Users\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n updateUser(\n key: IntegrationTaskKey,\n params: { id: string; input: L.UpdateUserInput }\n ): LinearReturnType<UserPayload, \"user\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.updateUser(params.id, params.input);\n return serializeLinearOutput(await payload.user);\n },\n {\n name: \"Update User\",\n params,\n properties: [{ label: \"User ID\", text: params.id }],\n }\n );\n }\n\n viewer(key: IntegrationTaskKey): LinearReturnType<User> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.viewer;\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get Viewer\",\n }\n );\n }\n\n workflowState(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<WorkflowState> {\n return this.runTask(\n key,\n async (client) => {\n const entity = await client.workflowState(params.id);\n return serializeLinearOutput(entity);\n },\n {\n name: \"Get WorkflowState\",\n params,\n properties: [{ label: \"WorkflowState ID\", text: params.id }],\n }\n );\n }\n\n workflowStates(\n key: IntegrationTaskKey,\n params: L.WorkflowStatesQueryVariables = {}\n ): LinearReturnType<WorkflowStateConnection> {\n return this.runTask(\n key,\n async (client) => {\n const edges = await client.workflowStates(params);\n return serializeLinearOutput(edges);\n },\n {\n name: \"Get WorkflowStates\",\n params,\n properties: queryProperties(params),\n }\n );\n }\n\n archiveWorkflowState(\n key: IntegrationTaskKey,\n params: { id: string }\n ): LinearReturnType<AwaitNested<WorkflowStateArchivePayload, \"entity\">> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.archiveWorkflowState(params.id);\n return serializeLinearOutput({\n ...payload,\n entity: await payload.entity,\n });\n },\n {\n name: \"Archive WorkflowState\",\n params,\n properties: [{ label: \"WorkflowState ID\", text: params.id }],\n }\n );\n }\n\n createWorkflowState(\n key: IntegrationTaskKey,\n params: L.WorkflowStateCreateInput\n ): LinearReturnType<WorkflowStatePayload, \"workflowState\"> {\n return this.runTask(\n key,\n async (client) => {\n const payload = await client.createWorkflowState(params);\n return serializeLinearOutput(await payload.workflowState);\n },\n {\n name: \"Create WorkflowState\",\n params,\n properties: [\n { label: \"Team ID\", text: params.teamId },\n { label: \"Workflow Type\", text: params.type },\n { label: \"State Name\", text: params.name },\n { label: \"State Color\", text: params.color },\n ],\n }\n );\n }\n\n // updateReaction() does not exist\n\n /** **WARNING:** Still in alpha - use with caution! */\n onAttachment(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onAttachment, params);\n }\n\n /** **WARNING:** Still in alpha - use with caution! */\n onAttachmentCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onAttachmentCreated, params);\n }\n\n /** **WARNING:** Still in alpha - use with caution! */\n onAttachmentRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onAttachmentRemoved, params);\n }\n\n /** **WARNING:** Still in alpha - use with caution! */\n onAttachmentUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onAttachmentUpdated, params);\n }\n\n onComment(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onComment, params);\n }\n\n onCommentCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCommentCreated, params);\n }\n\n onCommentRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCommentRemoved, params);\n }\n\n onCommentUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCommentUpdated, params);\n }\n\n onCycle(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCycle, params);\n }\n\n onCycleCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCycleCreated, params);\n }\n\n onCycleRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCycleRemoved, params);\n }\n\n onCycleUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onCycleUpdated, params);\n }\n\n onIssue(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssue, params);\n }\n\n onIssueCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueCreated, params);\n }\n\n onIssueRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueRemoved, params);\n }\n\n onIssueUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueUpdated, params);\n }\n\n onIssueLabel(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueLabel, params);\n }\n\n onIssueLabelCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueLabelCreated, params);\n }\n\n onIssueLabelRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueLabelRemoved, params);\n }\n\n onIssueLabelUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueLabelUpdated, params);\n }\n\n onIssueSLA(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueSLA, params);\n }\n\n onIssueSLASet(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueSLASet, params);\n }\n\n onIssueSLABreached(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueSLABreached, params);\n }\n\n onIssueSLAHighRisk(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onIssueSLAHighRisk, params);\n }\n\n onProject(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProject, params);\n }\n\n onProjectCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectCreated, params);\n }\n\n onProjectRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectRemoved, params);\n }\n\n onProjectUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectUpdated, params);\n }\n\n onProjectUpdate(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectUpdate, params);\n }\n\n onProjectUpdateCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectUpdateCreated, params);\n }\n\n onProjectUpdateRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectUpdateRemoved, params);\n }\n\n onProjectUpdateUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onProjectUpdateUpdated, params);\n }\n\n onReaction(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onReaction, params);\n }\n\n onReactionCreated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onReactionCreated, params);\n }\n\n onReactionRemoved(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onReactionRemoved, params);\n }\n\n /** Good luck ever triggering this! */\n onReactionUpdated(params: TriggerParams = {}) {\n return createTrigger(this.source, events.onReactionUpdated, params);\n }\n\n get #webhooks() {\n return new Webhooks(this.runTask.bind(this));\n }\n\n webhook = this.#webhooks.webhook;\n webhooks = this.#webhooks.webhooks;\n\n createWebhook = this.#webhooks.createWebhook;\n deleteWebhook = this.#webhooks.deleteWebhook;\n updateWebhook = this.#webhooks.updateWebhook;\n}\n\nexport function onError(error: unknown): ReturnType<RunTaskErrorCallback> {\n if (error instanceof LinearError) {\n // fail fast on user errors\n if (error.errors?.some((e) => e.userError)) {\n return {\n skipRetrying: true,\n };\n }\n }\n\n if (!(error instanceof RatelimitedLinearError)) {\n return;\n }\n\n const rateLimitRemaining = error.raw?.response?.headers?.get(\"X-RateLimit-Requests-Remaining\");\n const rateLimitReset = error.raw?.response?.headers?.get(\"X-RateLimit-Requests-Reset\");\n\n if (rateLimitRemaining === \"0\" && rateLimitReset) {\n const resetDate = new Date(Number(rateLimitReset) * 1000);\n\n return {\n retryAt: resetDate,\n error,\n };\n }\n\n const queryComplexity = error.raw?.response?.headers?.get(\"X-Complexity\");\n const complexityRemaining = error.raw?.response?.headers?.get(\"X-RateLimit-Complexity-Remaining\");\n const complexityReset = error.raw?.response?.headers?.get(\"X-RateLimit-Complexity-Reset\");\n\n if (\n (complexityRemaining === \"0\" || Number(complexityRemaining) < Number(queryComplexity)) &&\n complexityReset\n ) {\n const resetDate = new Date(Number(complexityReset) * 1000);\n\n return {\n retryAt: resetDate,\n error,\n };\n }\n}\n\nexport const serializeLinearOutput = <T>(obj: T): Prettify<SerializedLinearOutput<T>> => {\n return JSON.parse(JSON.stringify(obj), (key, value) => {\n if (typeof value === \"function\" || key.startsWith(\"_\")) {\n return undefined;\n }\n return value;\n });\n};\n\nexport { events };\n\nexport const PaginationOrderBy = L.PaginationOrderBy;\n","import { EventSpecification } from \"@trigger.dev/sdk\";\nimport {\n AttachmentEvent,\n CommentEvent,\n CycleEvent,\n IssueEvent,\n IssueLabelEvent,\n IssueSLAEvent,\n ProjectEvent,\n ProjectUpdateEvent,\n ReactionEvent,\n} from \"./schemas\";\nimport { GetLinearPayload } from \"./types\";\nimport {\n attachmentCreated,\n attachmentRemoved,\n attachmentUpdated,\n commentCreated,\n commentRemoved,\n commentUpdated,\n cycleCreated,\n cycleRemoved,\n cycleUpdated,\n issueCreated,\n issueRemoved,\n issueUpdated,\n issueLabelCreated,\n issueLabelRemoved,\n issueLabelUpdated,\n projectCreated,\n projectRemoved,\n projectUpdated,\n projectUpdateCreated,\n projectUpdateRemoved,\n projectUpdateUpdated,\n reactionCreated,\n reactionRemoved,\n reactionUpdated,\n} from \"./payload-examples\";\nimport { onCommentProperties, onIssueProperties, updatedFromProperties } from \"./utils\";\n\n/** **WARNING:** Still in alpha - use with caution! */\nexport const onAttachment: EventSpecification<GetLinearPayload<AttachmentEvent>> = {\n name: \"Attachment\",\n title: \"On Attachment\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [attachmentCreated, attachmentRemoved, attachmentUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<AttachmentEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"Attachment ID\", text: payload.data.id },\n ],\n};\n\n/** **WARNING:** Still in alpha - use with caution! */\nexport const onAttachmentCreated: EventSpecification<GetLinearPayload<AttachmentEvent, \"create\">> =\n {\n name: \"Attachment\",\n title: \"On Attachment Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [attachmentCreated],\n parsePayload: (payload) => payload as GetLinearPayload<AttachmentEvent, \"create\">,\n runProperties: (payload) => [{ label: \"Attachment ID\", text: payload.data.id }],\n };\n\n/** **WARNING:** Still in alpha - use with caution! */\nexport const onAttachmentRemoved: EventSpecification<GetLinearPayload<AttachmentEvent, \"remove\">> =\n {\n name: \"Attachment\",\n title: \"On Attachment Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [attachmentRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<AttachmentEvent, \"remove\">,\n runProperties: (payload) => [{ label: \"Attachment ID\", text: payload.data.id }],\n };\n\n/** **WARNING:** Still in alpha - use with caution! */\nexport const onAttachmentUpdated: EventSpecification<GetLinearPayload<AttachmentEvent, \"update\">> =\n {\n name: \"Attachment\",\n title: \"On Attachment Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [attachmentUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<AttachmentEvent, \"update\">,\n runProperties: (payload) => [{ label: \"Attachment ID\", text: payload.data.id }],\n };\n\nexport const onComment: EventSpecification<GetLinearPayload<CommentEvent>> = {\n name: \"Comment\",\n title: \"On Comment\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [commentCreated, commentRemoved, commentUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<CommentEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n ...onCommentProperties(payload),\n ...updatedFromProperties(payload),\n ],\n};\n\nexport const onCommentCreated: EventSpecification<GetLinearPayload<CommentEvent, \"create\">> = {\n name: \"Comment\",\n title: \"On Comment Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [commentCreated],\n parsePayload: (payload) => payload as GetLinearPayload<CommentEvent, \"create\">,\n runProperties: (payload) => onCommentProperties(payload),\n};\n\nexport const onCommentRemoved: EventSpecification<GetLinearPayload<CommentEvent, \"remove\">> = {\n name: \"Comment\",\n title: \"On Comment Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [commentRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<CommentEvent, \"remove\">,\n runProperties: (payload) => onCommentProperties(payload),\n};\n\nexport const onCommentUpdated: EventSpecification<GetLinearPayload<CommentEvent, \"update\">> = {\n name: \"Comment\",\n title: \"On Comment Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [commentUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<CommentEvent, \"update\">,\n runProperties: (payload) => [...onCommentProperties(payload), ...updatedFromProperties(payload)],\n};\n\nexport const onCycle: EventSpecification<GetLinearPayload<CycleEvent>> = {\n name: \"Cycle\",\n title: \"On Cycle\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [cycleCreated, cycleRemoved, cycleUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<CycleEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"Cycle ID\", text: payload.data.id },\n ],\n};\n\nexport const onCycleCreated: EventSpecification<GetLinearPayload<CycleEvent, \"create\">> = {\n name: \"Cycle\",\n title: \"On Cycle Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [cycleCreated],\n parsePayload: (payload) => payload as GetLinearPayload<CycleEvent, \"create\">,\n runProperties: (payload) => [{ label: \"Cycle ID\", text: payload.data.id }],\n};\n\nexport const onCycleRemoved: EventSpecification<GetLinearPayload<CycleEvent, \"remove\">> = {\n name: \"Cycle\",\n title: \"On Cycle Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [cycleRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<CycleEvent, \"remove\">,\n runProperties: (payload) => [{ label: \"Cycle ID\", text: payload.data.id }],\n};\n\nexport const onCycleUpdated: EventSpecification<GetLinearPayload<CycleEvent, \"update\">> = {\n name: \"Cycle\",\n title: \"On Cycle Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [cycleUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<CycleEvent, \"update\">,\n runProperties: (payload) => [{ label: \"Cycle ID\", text: payload.data.id }],\n};\n\nexport const onIssue: EventSpecification<GetLinearPayload<IssueEvent>> = {\n name: \"Issue\",\n title: \"On Issue\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [issueCreated, issueRemoved, issueUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n ...onIssueProperties(payload),\n ...updatedFromProperties(payload),\n ],\n};\n\nexport const onIssueCreated: EventSpecification<GetLinearPayload<IssueEvent, \"create\">> = {\n name: \"Issue\",\n title: \"On Issue Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [issueCreated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueEvent, \"create\">,\n runProperties: (payload) => onIssueProperties(payload),\n};\n\nexport const onIssueRemoved: EventSpecification<GetLinearPayload<IssueEvent, \"remove\">> = {\n name: \"Issue\",\n title: \"On Issue Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [issueRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<IssueEvent, \"remove\">,\n runProperties: (payload) => onIssueProperties(payload),\n};\n\nexport const onIssueUpdated: EventSpecification<GetLinearPayload<IssueEvent, \"update\">> = {\n name: \"Issue\",\n title: \"On Issue Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [issueUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueEvent, \"update\">,\n runProperties: (payload) => [...onIssueProperties(payload), ...updatedFromProperties(payload)],\n};\n\nexport const onIssueLabel: EventSpecification<GetLinearPayload<IssueLabelEvent>> = {\n name: \"IssueLabel\",\n title: \"On IssueLabel\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [issueLabelCreated, issueLabelRemoved, issueLabelUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueLabelEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"IssueLabel ID\", text: payload.data.id },\n ],\n};\n\nexport const onIssueLabelCreated: EventSpecification<GetLinearPayload<IssueLabelEvent, \"create\">> =\n {\n name: \"IssueLabel\",\n title: \"On IssueLabel Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [issueLabelCreated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueLabelEvent, \"create\">,\n runProperties: (payload) => [{ label: \"IssueLabel ID\", text: payload.data.id }],\n };\n\nexport const onIssueLabelRemoved: EventSpecification<GetLinearPayload<IssueLabelEvent, \"remove\">> =\n {\n name: \"IssueLabel\",\n title: \"On IssueLabel Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [issueLabelRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<IssueLabelEvent, \"remove\">,\n runProperties: (payload) => [{ label: \"IssueLabel ID\", text: payload.data.id }],\n };\n\nexport const onIssueLabelUpdated: EventSpecification<GetLinearPayload<IssueLabelEvent, \"update\">> =\n {\n name: \"IssueLabel\",\n title: \"On IssueLabel Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [issueLabelUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<IssueLabelEvent, \"update\">,\n runProperties: (payload) => [{ label: \"IssueLabel ID\", text: payload.data.id }],\n };\n\n// TODO: this needs to be tested\nexport const onIssueSLA: EventSpecification<GetLinearPayload<IssueSLAEvent>> = {\n name: \"IssueSLA\",\n title: \"On Issue SLA\",\n source: \"linear.app\",\n icon: \"linear\",\n parsePayload: (payload) => payload as GetLinearPayload<IssueSLAEvent>,\n runProperties: (payload) => [\n { label: \"SLA action\", text: payload.action },\n { label: \"Issue ID\", text: payload.issueData.id },\n ],\n};\n\nexport const onIssueSLASet: EventSpecification<GetLinearPayload<IssueSLAEvent, \"set\">> = {\n name: \"IssueSLA\",\n title: \"On Issue SLA Set\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"set\"],\n },\n parsePayload: (payload) => payload as GetLinearPayload<IssueSLAEvent, \"set\">,\n runProperties: (payload) => [{ label: \"Issue ID\", text: payload.issueData.id }],\n};\n\nexport const onIssueSLABreached: EventSpecification<GetLinearPayload<IssueSLAEvent, \"breached\">> = {\n name: \"IssueSLA\",\n title: \"On Issue SLA Breached\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"breached\"],\n },\n parsePayload: (payload) => payload as GetLinearPayload<IssueSLAEvent, \"breached\">,\n runProperties: (payload) => [{ label: \"Issue ID\", text: payload.issueData.id }],\n};\n\nexport const onIssueSLAHighRisk: EventSpecification<GetLinearPayload<IssueSLAEvent, \"highRisk\">> = {\n name: \"IssueSLA\",\n title: \"On Issue SLA High Risk\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"highRisk\"],\n },\n parsePayload: (payload) => payload as GetLinearPayload<IssueSLAEvent, \"highRisk\">,\n runProperties: (payload) => [{ label: \"Issue ID\", text: payload.issueData.id }],\n};\n\nexport const onProject: EventSpecification<GetLinearPayload<ProjectEvent>> = {\n name: \"Project\",\n title: \"On Project\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [projectCreated, projectRemoved, projectUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"Project ID\", text: payload.data.id },\n { label: \"Project Name\", text: payload.data.name, url: payload.url ?? undefined },\n ...updatedFromProperties(payload),\n ],\n};\n\nexport const onProjectCreated: EventSpecification<GetLinearPayload<ProjectEvent, \"create\">> = {\n name: \"Project\",\n title: \"On Project Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [projectCreated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectEvent, \"create\">,\n runProperties: (payload) => [\n { label: \"Project ID\", text: payload.data.id },\n { label: \"Project Name\", text: payload.data.name, url: payload.url ?? undefined },\n ],\n};\n\nexport const onProjectRemoved: EventSpecification<GetLinearPayload<ProjectEvent, \"remove\">> = {\n name: \"Project\",\n title: \"On Project Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [projectRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectEvent, \"remove\">,\n runProperties: (payload) => [\n { label: \"Project ID\", text: payload.data.id },\n { label: \"Project Name\", text: payload.data.name, url: payload.url ?? undefined },\n ],\n};\n\nexport const onProjectUpdated: EventSpecification<GetLinearPayload<ProjectEvent, \"update\">> = {\n name: \"Project\",\n title: \"On Project Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [projectUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectEvent, \"update\">,\n runProperties: (payload) => [\n { label: \"Project ID\", text: payload.data.id },\n { label: \"Project Name\", text: payload.data.name, url: payload.url ?? undefined },\n ...updatedFromProperties(payload),\n ],\n};\n\nexport const onProjectUpdate: EventSpecification<GetLinearPayload<ProjectUpdateEvent>> = {\n name: \"ProjectUpdate\",\n title: \"On ProjectUpdate\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [projectUpdateCreated, projectUpdateRemoved, projectUpdateUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectUpdateEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"ProjectUpdate ID\", text: payload.data.id },\n ],\n};\n\nexport const onProjectUpdateCreated: EventSpecification<\n GetLinearPayload<ProjectUpdateEvent, \"create\">\n> = {\n name: \"ProjectUpdate\",\n title: \"On ProjectUpdate Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [projectUpdateCreated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectUpdateEvent, \"create\">,\n runProperties: (payload) => [{ label: \"ProjectUpdate ID\", text: payload.data.id }],\n};\n\nexport const onProjectUpdateRemoved: EventSpecification<\n GetLinearPayload<ProjectUpdateEvent, \"remove\">\n> = {\n name: \"ProjectUpdate\",\n title: \"On ProjectUpdate Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [projectUpdateRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectUpdateEvent, \"remove\">,\n runProperties: (payload) => [{ label: \"ProjectUpdate ID\", text: payload.data.id }],\n};\n\nexport const onProjectUpdateUpdated: EventSpecification<\n GetLinearPayload<ProjectUpdateEvent, \"update\">\n> = {\n name: \"ProjectUpdate\",\n title: \"On ProjectUpdate Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [projectUpdateUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ProjectUpdateEvent, \"update\">,\n runProperties: (payload) => [{ label: \"ProjectUpdate ID\", text: payload.data.id }],\n};\n\nexport const onReaction: EventSpecification<GetLinearPayload<ReactionEvent>> = {\n name: \"Reaction\",\n title: \"On Reaction\",\n source: \"linear.app\",\n icon: \"linear\",\n examples: [reactionCreated, reactionRemoved, reactionUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ReactionEvent>,\n runProperties: (payload) => [\n { label: \"Event action\", text: payload.action },\n { label: \"Reaction ID\", text: payload.data.id },\n ],\n};\n\nexport const onReactionCreated: EventSpecification<GetLinearPayload<ReactionEvent, \"create\">> = {\n name: \"Reaction\",\n title: \"On Reaction Created\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"create\"],\n },\n examples: [reactionCreated],\n parsePayload: (payload) => payload as GetLinearPayload<ReactionEvent, \"create\">,\n runProperties: (payload) => [{ label: \"Reaction ID\", text: payload.data.id }],\n};\n\nexport const onReactionRemoved: EventSpecification<GetLinearPayload<ReactionEvent, \"remove\">> = {\n name: \"Reaction\",\n title: \"On Reaction Removed\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"remove\"],\n },\n examples: [reactionRemoved],\n parsePayload: (payload) => payload as GetLinearPayload<ReactionEvent, \"remove\">,\n runProperties: (payload) => [{ label: \"Reaction ID\", text: payload.data.id }],\n};\n\nexport const onReactionUpdated: EventSpecification<GetLinearPayload<ReactionEvent, \"update\">> = {\n name: \"Reaction\",\n title: \"On Reaction Updated\",\n source: \"linear.app\",\n icon: \"linear\",\n filter: {\n action: [\"update\"],\n },\n examples: [reactionUpdated],\n parsePayload: (payload) => payload as GetLinearPayload<ReactionEvent, \"update\">,\n runProperties: (payload) => [{ label: \"Reaction ID\", text: payload.data.id }],\n};\n","{\n \"data\": {\n \"id\": \"8a4c109b-3288-4bef-8a80-8c1618e0f4ad\",\n \"url\": \"https://www.rickastley.co.uk/\",\n \"title\": \"My Personal Website\",\n \"source\": {\n \"type\": \"api\",\n \"imageUrl\": \"https://uploads.linear.app/attachment-icons/6fca65e5bca9d4ac8eb9d9442c5e3170081f0aa3eb820eebd58766b53fe7236c\"\n },\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"metadata\": {},\n \"subtitle\": \"Rick Astley Official Site\",\n \"createdAt\": \"2023-09-17T10:51:34.932Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T10:51:34.932Z\",\n \"sourceType\": \"api\",\n \"groupBySource\": false\n },\n \"type\": \"Attachment\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T10:51:34.932Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:51:37.795Z\"\n}","{\n \"data\": {\n \"id\": \"8a4c109b-3288-4bef-8a80-8c1618e0f4ad\",\n \"url\": \"https://www.rickastley.co.uk/\",\n \"title\": \"Will Never Give You Up\",\n \"source\": {\n \"type\": \"api\",\n \"imageUrl\": \"https://uploads.linear.app/attachment-icons/6fca65e5bca9d4ac8eb9d9442c5e3170081f0aa3eb820eebd58766b53fe7236c\"\n },\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"metadata\": {},\n \"subtitle\": \"Rick Astley Official Site\",\n \"createdAt\": \"2023-09-17T10:51:34.932Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T10:51:55.751Z\",\n \"sourceType\": \"api\",\n \"groupBySource\": false\n },\n \"type\": \"Attachment\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T10:52:15.457Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:52:15.938Z\"\n}","{\n \"data\": {\n \"id\": \"8a4c109b-3288-4bef-8a80-8c1618e0f4ad\",\n \"url\": \"https://www.rickastley.co.uk/\",\n \"title\": \"Will Never Give You Up\",\n \"source\": {\n \"type\": \"api\",\n \"imageUrl\": \"https://uploads.linear.app/attachment-icons/6fca65e5bca9d4ac8eb9d9442c5e3170081f0aa3eb820eebd58766b53fe7236c\"\n },\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"metadata\": {},\n \"subtitle\": \"Rick Astley Official Site\",\n \"createdAt\": \"2023-09-17T10:51:34.932Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T10:51:55.751Z\",\n \"sourceType\": \"api\",\n \"groupBySource\": false\n },\n \"type\": \"Attachment\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T10:51:55.751Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"title\": \"My Personal Website\",\n \"updatedAt\": \"2023-09-17T10:51:34.932Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:51:55.809Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/issue/TRI-1/welcome-to-linear-👋#comment-a4083fcd\",\n \"data\": {\n \"id\": \"a4083fcd-2513-4a9b-9a73-bab21cd56a95\",\n \"body\": \"I just wanna tell you how I'm feeling\",\n \"issue\": {\n \"id\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"title\": \"Welcome to Rick's World ❤️🔥\"\n },\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"createdAt\": \"2023-09-17T10:57:11.751Z\",\n \"updatedAt\": \"2023-09-17T10:57:11.751Z\",\n \"reactionData\": []\n },\n \"type\": \"Comment\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T10:57:11.751Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:57:11.842Z\"\n}","{\n \"data\": {\n \"id\": \"a4083fcd-2513-4a9b-9a73-bab21cd56a95\",\n \"body\": \"Gotta make you understand\",\n \"issue\": {\n \"id\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"title\": \"Welcome to Rick's World ❤️🔥\"\n },\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"editedAt\": \"2023-09-17T10:57:24.386Z\",\n \"createdAt\": \"2023-09-17T10:57:11.751Z\",\n \"updatedAt\": \"2023-09-17T10:57:24.387Z\",\n \"reactionData\": []\n },\n \"type\": \"Comment\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T10:57:37.324Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:57:37.376Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/issue/TRI-1/welcome-to-linear-👋#comment-a4083fcd\",\n \"data\": {\n \"id\": \"a4083fcd-2513-4a9b-9a73-bab21cd56a95\",\n \"body\": \"Gotta make you understand\",\n \"issue\": {\n \"id\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"title\": \"Welcome to Rick's World ❤️🔥\"\n },\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"issueId\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"editedAt\": \"2023-09-17T10:57:24.386Z\",\n \"createdAt\": \"2023-09-17T10:57:11.751Z\",\n \"updatedAt\": \"2023-09-17T10:57:24.387Z\",\n \"reactionData\": []\n },\n \"type\": \"Comment\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T10:57:24.387Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"body\": \"I just wanna tell you how I'm feeling\",\n \"editedAt\": null,\n \"updatedAt\": \"2023-09-17T10:57:11.751Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:57:24.446Z\"\n}","{\n \"data\": {\n \"id\": \"cf1f0ba0-a769-402c-a5a4-308bca3ff53c\",\n \"endsAt\": \"2023-10-08T23:00:00.000Z\",\n \"number\": 1,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"startsAt\": \"2023-09-24T23:00:00.000Z\",\n \"createdAt\": \"2023-09-17T11:00:19.616Z\",\n \"updatedAt\": \"2023-09-17T11:00:19.616Z\",\n \"scopeHistory\": [],\n \"issueCountHistory\": [],\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": [],\n \"uncompletedIssuesUponCloseIds\": []\n },\n \"type\": \"Cycle\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:00:19.616Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:00:19.696Z\"\n}","{\n \"data\": {\n \"id\": \"fe7092dd-8a68-4a07-9477-b7c0a6f2136d\",\n \"endsAt\": \"2023-11-13T00:00:00.000Z\",\n \"number\": 2,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"startsAt\": \"2023-10-15T23:00:00.000Z\",\n \"createdAt\": \"2023-09-17T11:00:19.616Z\",\n \"updatedAt\": \"2023-09-17T11:00:47.427Z\",\n \"scopeHistory\": [],\n \"issueCountHistory\": [],\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": [],\n \"uncompletedIssuesUponCloseIds\": []\n },\n \"type\": \"Cycle\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:01:08.772Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:01:08.807Z\"\n}","{\n \"data\": {\n \"id\": \"fe7092dd-8a68-4a07-9477-b7c0a6f2136d\",\n \"endsAt\": \"2023-11-13T00:00:00.000Z\",\n \"number\": 2,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"startsAt\": \"2023-10-15T23:00:00.000Z\",\n \"createdAt\": \"2023-09-17T11:00:19.616Z\",\n \"updatedAt\": \"2023-09-17T11:00:47.427Z\",\n \"scopeHistory\": [],\n \"issueCountHistory\": [],\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": [],\n \"uncompletedIssuesUponCloseIds\": []\n },\n \"type\": \"Cycle\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T11:00:47.427Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"endsAt\": \"2023-11-12T23:00:00.000Z\",\n \"updatedAt\": \"2023-09-17T11:00:47.414Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:00:47.463Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/issue/TRI-10/you-know-the-rules\",\n \"data\": {\n \"id\": \"4ceeeecb-3442-4972-b27a-4ac7198d4eac\",\n \"team\": {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"key\": \"TRI\",\n \"name\": \"Trigger.dev\"\n },\n \"state\": {\n \"id\": \"6b6fd762-cc10-4da8-9775-dfc0784d2a3b\",\n \"name\": \"Backlog\",\n \"type\": \"backlog\",\n \"color\": \"#bec2c8\"\n },\n \"title\": \"You know the rules\",\n \"labels\": [],\n \"number\": 10,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"stateId\": \"6b6fd762-cc10-4da8-9775-dfc0784d2a3b\",\n \"labelIds\": [],\n \"priority\": 0,\n \"createdAt\": \"2023-09-17T11:02:48.688Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"sortOrder\": -81,\n \"updatedAt\": \"2023-09-17T11:02:48.688Z\",\n \"boardOrder\": 0,\n \"description\": \"And so do I\",\n \"priorityLabel\": \"No priority\",\n \"subscriberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"previousIdentifiers\": []\n },\n \"type\": \"Issue\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:02:48.688Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:02:48.800Z\"\n}","{\n \"data\": {\n \"id\": \"4ceeeecb-3442-4972-b27a-4ac7198d4eac\",\n \"team\": {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"key\": \"TRI\",\n \"name\": \"Trigger.dev\"\n },\n \"state\": {\n \"id\": \"6b6fd762-cc10-4da8-9775-dfc0784d2a3b\",\n \"name\": \"Backlog\",\n \"type\": \"backlog\",\n \"color\": \"#bec2c8\"\n },\n \"title\": \"You know the rules\",\n \"labels\": [],\n \"number\": 10,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"stateId\": \"6b6fd762-cc10-4da8-9775-dfc0784d2a3b\",\n \"trashed\": true,\n \"labelIds\": [],\n \"priority\": 0,\n \"createdAt\": \"2023-09-17T11:02:48.688Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"sortOrder\": -81,\n \"updatedAt\": \"2023-09-17T11:02:48.689Z\",\n \"archivedAt\": \"2023-09-17T11:02:58.487Z\",\n \"boardOrder\": 0,\n \"description\": \"And so do I\",\n \"priorityLabel\": \"No priority\",\n \"subscriberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"previousIdentifiers\": []\n },\n \"type\": \"Issue\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:02:58.487Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:02:58.564Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/issue/TRI-1/welcome-to-ricks-world-👋\",\n \"data\": {\n \"id\": \"ee4d5612-0752-441a-95cd-2a0de56689d3\",\n \"team\": {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"key\": \"TRI\",\n \"name\": \"Trigger.dev\"\n },\n \"state\": {\n \"id\": \"8b77cd9c-f0cc-4be0-bd9b-52326d5c62a2\",\n \"name\": \"Todo\",\n \"type\": \"unstarted\",\n \"color\": \"#e2e2e2\"\n },\n \"title\": \"Welcome to Rick's World ❤️🔥\",\n \"labels\": [],\n \"number\": 1,\n \"teamId\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"stateId\": \"8b77cd9c-f0cc-4be0-bd9b-52326d5c62a2\",\n \"labelIds\": [],\n \"priority\": 2,\n \"createdAt\": \"2023-09-17T10:43:20.862Z\",\n \"sortOrder\": -13701.52,\n \"updatedAt\": \"2023-09-17T10:52:49.321Z\",\n \"boardOrder\": 0,\n \"description\": \"Hi there. Complete these issues to learn how to use Linear and discover ✨**ProTips.** When you're done, delete them or move them to another team for others to view.\\n\\n### **To start, type** `C` to **create your first issue.**\\n\\nCreate issues from any view using `C` or by clicking the `New issue` button.\\n\\n \\n\\n[1189b618-97f2-4e2c-ae25-4f25467679e7](https://uploads.linear.app/fe63b3e2-bf87-46c0-8784-cd7d639287c8/532d146d-bcd6-4602-bf1f-83f674b70fff/1189b618-97f2-4e2c-ae25-4f25467679e7)\\n\\nOur issue editor and comments support Markdown. You can also: \\n\\n* @mention a teammate\\n* Drag & drop images or video (Loom & Youtube embed automatically)\\n* Use emoji ✅\",\n \"priorityLabel\": \"High\",\n \"subscriberIds\": [],\n \"previousIdentifiers\": []\n },\n \"type\": \"Issue\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T10:52:49.321Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"title\": \"Welcome to Linear 👋\",\n \"updatedAt\": \"2023-09-17T10:52:16.952Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T10:52:49.762Z\"\n}","{\n \"data\": {\n \"id\": \"ef8d9e0d-7286-460f-b398-7aaf7d182c16\",\n \"name\": \"Give You Up\",\n \"color\": \"#26b5ce\",\n \"createdAt\": \"2023-09-17T11:08:22.426Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T11:08:22.426Z\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\"\n },\n \"type\": \"IssueLabel\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:08:22.426Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:08:22.463Z\"\n}","{\n \"data\": {\n \"id\": \"ef8d9e0d-7286-460f-b398-7aaf7d182c16\",\n \"name\": \"Let You Down\",\n \"color\": \"#f2994a\",\n \"createdAt\": \"2023-09-17T11:08:22.426Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T11:08:31.484Z\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\"\n },\n \"type\": \"IssueLabel\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:08:35.517Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:08:35.556Z\"\n}","{\n \"data\": {\n \"id\": \"ef8d9e0d-7286-460f-b398-7aaf7d182c16\",\n \"name\": \"Let You Down\",\n \"color\": \"#f2994a\",\n \"createdAt\": \"2023-09-17T11:08:22.426Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"updatedAt\": \"2023-09-17T11:08:31.484Z\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\"\n },\n \"type\": \"IssueLabel\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T11:08:31.484Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"name\": \"Give You Up\",\n \"color\": \"#26b5ce\",\n \"updatedAt\": \"2023-09-17T11:08:22.426Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:08:31.527Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/project/ricks-world-1e55e5e64512\",\n \"data\": {\n \"id\": \"708440e6-648c-40f9-be87-9e00bbd8d1ec\",\n \"name\": \"Rick's World\",\n \"color\": \"#bec2c8\",\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"slugId\": \"1e55e5e64512\",\n \"teamIds\": [\n \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\"\n ],\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:24:43.171Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"sortOrder\": 8161.55,\n \"updatedAt\": \"2023-09-17T11:24:43.171Z\",\n \"milestones\": [],\n \"description\": \"We know the game and we're gonna play it\",\n \"scopeHistory\": [],\n \"slackNewIssue\": true,\n \"issueCountHistory\": [],\n \"slackIssueComments\": true,\n \"slackIssueStatuses\": true,\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": []\n },\n \"type\": \"Project\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:24:43.171Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:24:43.228Z\"\n}","{\n \"data\": {\n \"id\": \"708440e6-648c-40f9-be87-9e00bbd8d1ec\",\n \"name\": \"Rick's World\",\n \"color\": \"#bec2c8\",\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"slugId\": \"1e55e5e64512\",\n \"teamIds\": [\n \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\"\n ],\n \"trashed\": true,\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:24:43.171Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"sortOrder\": 8161.55,\n \"updatedAt\": \"2023-09-17T11:25:09.384Z\",\n \"archivedAt\": \"2023-09-17T11:25:16.188Z\",\n \"milestones\": [],\n \"targetDate\": \"2024-02-14T00:00:00.000Z\",\n \"description\": \"We know the game and we're gonna play it\",\n \"scopeHistory\": [],\n \"slackNewIssue\": true,\n \"issueCountHistory\": [],\n \"slackIssueComments\": true,\n \"slackIssueStatuses\": true,\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": []\n },\n \"type\": \"Project\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:25:16.188Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:25:16.358Z\"\n}","{\n \"url\": \"https://linear.app/triggerdotdev/project/ricks-world-1e55e5e64512\",\n \"data\": {\n \"id\": \"708440e6-648c-40f9-be87-9e00bbd8d1ec\",\n \"name\": \"Rick's World\",\n \"color\": \"#bec2c8\",\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"slugId\": \"1e55e5e64512\",\n \"teamIds\": [\n \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\"\n ],\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:24:43.171Z\",\n \"creatorId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"sortOrder\": 8161.55,\n \"updatedAt\": \"2023-09-17T11:25:09.383Z\",\n \"milestones\": [],\n \"targetDate\": \"2024-02-14T00:00:00.000Z\",\n \"description\": \"We know the game and we're gonna play it\",\n \"scopeHistory\": [],\n \"slackNewIssue\": true,\n \"issueCountHistory\": [],\n \"slackIssueComments\": true,\n \"slackIssueStatuses\": true,\n \"completedScopeHistory\": [],\n \"inProgressScopeHistory\": [],\n \"completedIssueCountHistory\": []\n },\n \"type\": \"Project\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T11:25:09.383Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"updatedAt\": \"2023-09-17T11:24:43.171Z\",\n \"targetDate\": null\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:25:09.419Z\"\n}","{\n \"data\": {\n \"id\": \"e5b2ae4e-acb5-4c6c-a22a-56c883e353b4\",\n \"body\": \"We're no strangers to love\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"health\": \"onTrack\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"project\": {\n \"id\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"name\": \"Rick's World\"\n },\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:28:23.406Z\",\n \"projectId\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"updatedAt\": \"2023-09-17T11:28:23.406Z\",\n \"infoSnapshot\": {\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"teamsInfo\": [\n {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"issueInfo\": {\n \"triageCount\": 0,\n \"backlogCount\": 0,\n \"startedCount\": 0,\n \"canceledCount\": 0,\n \"completedCount\": 0,\n \"unstartedCount\": 0\n }\n }\n ],\n \"milestonesInfo\": []\n }\n },\n \"type\": \"ProjectUpdate\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:28:23.406Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:28:23.479Z\"\n}","{\n \"data\": {\n \"id\": \"e5b2ae4e-acb5-4c6c-a22a-56c883e353b4\",\n \"body\": \"You know the rules and so do I\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"health\": \"onTrack\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"project\": {\n \"id\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"name\": \"Rick's World\"\n },\n \"editedAt\": \"2023-09-17T11:28:39.142Z\",\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:28:23.406Z\",\n \"projectId\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"updatedAt\": \"2023-09-17T11:28:39.142Z\",\n \"infoSnapshot\": {\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"teamsInfo\": [\n {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"issueInfo\": {\n \"triageCount\": 0,\n \"backlogCount\": 0,\n \"startedCount\": 0,\n \"canceledCount\": 0,\n \"completedCount\": 0,\n \"unstartedCount\": 0\n }\n }\n ],\n \"milestonesInfo\": []\n }\n },\n \"type\": \"ProjectUpdate\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:28:45.146Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:28:45.213Z\"\n}","{\n \"data\": {\n \"id\": \"e5b2ae4e-acb5-4c6c-a22a-56c883e353b4\",\n \"body\": \"You know the rules and so do I\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"health\": \"onTrack\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"project\": {\n \"id\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"name\": \"Rick's World\"\n },\n \"editedAt\": \"2023-09-17T11:28:39.142Z\",\n \"roadmaps\": [],\n \"createdAt\": \"2023-09-17T11:28:23.406Z\",\n \"projectId\": \"54dac280-389f-4339-8d5d-de347a56eb79\",\n \"updatedAt\": \"2023-09-17T11:28:39.142Z\",\n \"infoSnapshot\": {\n \"state\": \"backlog\",\n \"leadId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"memberIds\": [\n \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n ],\n \"teamsInfo\": [\n {\n \"id\": \"0d9e46fb-bf4a-4d7b-9bb0-d5928d8b1c9f\",\n \"issueInfo\": {\n \"triageCount\": 0,\n \"backlogCount\": 0,\n \"startedCount\": 0,\n \"canceledCount\": 0,\n \"completedCount\": 0,\n \"unstartedCount\": 0\n }\n }\n ],\n \"milestonesInfo\": []\n }\n },\n \"type\": \"ProjectUpdate\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T11:28:39.142Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"body\": \"We're no strangers to love\",\n \"editedAt\": null,\n \"updatedAt\": \"2023-09-17T11:28:23.406Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:28:39.181Z\"\n}","{\n \"data\": {\n \"id\": \"a22b3a1f-109f-427f-aa59-78b4ab1d2944\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"emoji\": \"heart\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"comment\": {\n \"id\": \"3f44c353-a3a1-45a4-b5da-259818ae21dd\",\n \"body\": \"Never gonna!\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n },\n \"createdAt\": \"2023-09-17T11:31:27.394Z\",\n \"updatedAt\": \"2023-09-17T11:31:27.394Z\"\n },\n \"type\": \"Reaction\",\n \"action\": \"create\",\n \"createdAt\": \"2023-09-17T11:31:27.394Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:31:27.477Z\"\n}","{\n \"data\": {\n \"id\": \"a22b3a1f-109f-427f-aa59-78b4ab1d2944\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"emoji\": \"heart\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"comment\": {\n \"id\": \"3f44c353-a3a1-45a4-b5da-259818ae21dd\",\n \"body\": \"Never gonna!\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n },\n \"createdAt\": \"2023-09-17T11:31:27.394Z\",\n \"updatedAt\": \"2023-09-17T11:31:27.394Z\"\n },\n \"type\": \"Reaction\",\n \"action\": \"remove\",\n \"createdAt\": \"2023-09-17T11:32:07.003Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T11:32:07.088Z\"\n}","{\n \"data\": {\n \"id\": \"a22b3a1f-109f-427f-aa59-78b4ab1d2944\",\n \"user\": {\n \"id\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"name\": \"Rick Astley\"\n },\n \"emoji\": \"heart_on_fire\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\",\n \"comment\": {\n \"id\": \"3f44c353-a3a1-45a4-b5da-259818ae21dd\",\n \"body\": \"Never gonna!\",\n \"userId\": \"b552c442-62c9-40da-9932-ed8cb6e15a3f\"\n },\n \"createdAt\": \"2023-09-17T12:31:27.394Z\",\n \"updatedAt\": \"2023-09-17T12:32:14.394Z\"\n },\n \"type\": \"Reaction\",\n \"action\": \"update\",\n \"createdAt\": \"2023-09-17T12:31:27.394Z\",\n \"webhookId\": \"d617c08b-47b6-4b09-a611-2e2f6d8fb99f\",\n \"updatedFrom\": {\n \"emoji\": \"heart\",\n \"updatedAt\": \"2023-09-17T12:31:27.394Z\"\n },\n \"organizationId\": \"7c0221e0-76d2-45eb-b803-6163c046c534\",\n \"webhookTimestamp\": \"2023-09-17T12:31:27.477Z\"\n}","import { EventSpecificationExample } from \"@trigger.dev/sdk\";\n\nimport AttachmentCreated from \"./AttachmentCreated.json\"\nimport AttachmentRemoved from \"./AttachmentRemoved.json\"\nimport AttachmentUpdated from \"./AttachmentUpdated.json\"\nimport CommentCreated from \"./CommentCreated.json\"\nimport CommentRemoved from \"./CommentRemoved.json\"\nimport CommentUpdated from \"./CommentUpdated.json\"\nimport CycleCreated from \"./CycleCreated.json\"\nimport CycleRemoved from \"./CycleRemoved.json\"\nimport CycleUpdated from \"./CycleUpdated.json\"\nimport IssueCreated from \"./IssueCreated.json\"\nimport IssueRemoved from \"./IssueRemoved.json\"\nimport IssueUpdated from \"./IssueUpdated.json\"\nimport IssueLabelCreated from \"./IssueLabelCreated.json\"\nimport IssueLabelRemoved from \"./IssueLabelRemoved.json\"\nimport IssueLabelUpdated from \"./IssueLabelUpdated.json\"\nimport ProjectCreated from \"./ProjectCreated.json\"\nimport ProjectRemoved from \"./ProjectRemoved.json\"\nimport ProjectUpdated from \"./ProjectUpdated.json\"\nimport ProjectUpdateCreated from \"./ProjectUpdateCreated.json\"\nimport ProjectUpdateRemoved from \"./ProjectUpdateRemoved.json\"\nimport ProjectUpdateUpdated from \"./ProjectUpdateUpdated.json\"\nimport ReactionCreated from \"./ReactionCreated.json\"\nimport ReactionRemoved from \"./ReactionRemoved.json\"\nimport ReactionUpdated from \"./ReactionUpdated.json\"\n\nexport const attachmentCreated: EventSpecificationExample = {\n id: \"AttachmentCreated\",\n name: \"Attachment created\",\n payload: AttachmentCreated,\n};\nexport const attachmentRemoved: EventSpecificationExample = {\n id: \"AttachmentRemoved\",\n name: \"Attachment removed\",\n payload: AttachmentRemoved,\n};\nexport const attachmentUpdated: EventSpecificationExample = {\n id: \"AttachmentUpdated\",\n name: \"Attachment updated\",\n payload: AttachmentUpdated,\n};\n\nexport const commentCreated: EventSpecificationExample = {\n id: \"CommentCreated\",\n name: \"Comment created\",\n payload: CommentCreated,\n};\nexport const commentRemoved: EventSpecificationExample = {\n id: \"CommentRemoved\",\n name: \"Comment removed\",\n payload: CommentRemoved,\n};\nexport const commentUpdated: EventSpecificationExample = {\n id: \"CommentUpdated\",\n name: \"Comment updated\",\n payload: CommentUpdated,\n};\n\nexport const cycleCreated: EventSpecificationExample = {\n id: \"CycleCreated\",\n name: \"Cycle created\",\n payload: CycleCreated,\n};\nexport const cycleRemoved: EventSpecificationExample = {\n id: \"CycleRemoved\",\n name: \"Cycle removed\",\n payload: CycleRemoved,\n};\nexport const cycleUpdated: EventSpecificationExample = {\n id: \"CycleUpdated\",\n name: \"Cycle updated\",\n payload: CycleUpdated,\n};\n\nexport const issueCreated: EventSpecificationExample = {\n id: \"IssueCreated\",\n name: \"Issue created\",\n payload: IssueCreated,\n};\nexport const issueRemoved: EventSpecificationExample = {\n id: \"IssueRemoved\",\n name: \"Issue removed\",\n payload: IssueRemoved,\n};\nexport const issueUpdated: EventSpecificationExample = {\n id: \"IssueUpdated\",\n name: \"Issue updated\",\n payload: IssueUpdated,\n};\n\nexport const issueLabelCreated: EventSpecificationExample = {\n id: \"IssueLabelCreated\",\n name: \"IssueLabel created\",\n payload: IssueLabelCreated,\n};\nexport const issueLabelRemoved: EventSpecificationExample = {\n id: \"IssueLabelRemoved\",\n name: \"IssueLabel removed\",\n payload: IssueLabelRemoved,\n};\nexport const issueLabelUpdated: EventSpecificationExample = {\n id: \"IssueLabelUpdated\",\n name: \"IssueLabel updated\",\n payload: IssueLabelUpdated,\n};\n\nexport const projectCreated: EventSpecificationExample = {\n id: \"ProjectCreated\",\n name: \"Project created\",\n payload: ProjectCreated,\n};\nexport const projectRemoved: EventSpecificationExample = {\n id: \"ProjectRemoved\",\n name: \"Project removed\",\n payload: ProjectRemoved,\n};\nexport const projectUpdated: EventSpecificationExample = {\n id: \"ProjectUpdated\",\n name: \"Project updated\",\n payload: ProjectUpdated,\n};\n\nexport const projectUpdateCreated: EventSpecificationExample = {\n id: \"ProjectUpdateCreated\",\n name: \"ProjectUpdate created\",\n payload: ProjectUpdateCreated,\n};\nexport const projectUpdateRemoved: EventSpecificationExample = {\n id: \"ProjectUpdateRemoved\",\n name: \"ProjectUpdate removed\",\n payload: ProjectUpdateRemoved,\n};\nexport const projectUpdateUpdated: EventSpecificationExample = {\n id: \"ProjectUpdateUpdated\",\n name: \"ProjectUpdate updated\",\n payload: ProjectUpdateUpdated,\n};\n\nexport const reactionCreated: EventSpecificationExample = {\n id: \"ReactionCreated\",\n name: \"Reaction created\",\n payload: ReactionCreated,\n};\nexport const reactionRemoved: EventSpecificationExample = {\n id: \"ReactionRemoved\",\n name: \"Reaction removed\",\n payload: ReactionRemoved,\n};\nexport const reactionUpdated: EventSpecificationExample = {\n id: \"ReactionUpdated\",\n name: \"Reaction updated\",\n payload: ReactionUpdated,\n};","import { CommentEvent, IssueEvent, WebhookPayload } from \"./schemas\";\nimport { GetLinearPayload } from \"./types\";\nimport { LinearDocument as L } from \"@linear/sdk\";\n\nexport type QueryVariables = {\n after: string;\n before: string;\n first: number;\n includeArchived: boolean;\n last: number;\n orderBy: L.PaginationOrderBy;\n};\n\nexport type Nullable<T> = Partial<{\n [K in keyof T]: T[K] | null;\n}>;\n\nexport const onCommentProperties = (payload: GetLinearPayload<CommentEvent>) => {\n return [\n { label: \"Comment ID\", text: payload.data.id },\n { label: \"Issue ID\", text: payload.data.issueId },\n { label: \"Issue Title\", text: payload.data.issue.title, url: payload.url ?? undefined },\n ];\n};\n\nexport const onIssueProperties = (payload: GetLinearPayload<IssueEvent>) => {\n return [\n { label: \"Issue ID\", text: payload.data.id },\n {\n label: \"Issue\",\n text: `[${payload.data.team.key}-${payload.data.number}] ${payload.data.title}`,\n url: payload.url ?? undefined,\n },\n ];\n};\n\nexport const queryProperties = (query: Nullable<QueryVariables>) => {\n return [\n ...(query.after ? [{ label: \"After\", text: query.after }] : []),\n ...(query.before ? [{ label: \"Before\", text: query.before }] : []),\n ...(query.first ? [{ label: \"First\", text: String(query.first) }] : []),\n ...(query.last ? [{ label: \"Last\", text: String(query.last) }] : []),\n ...(query.orderBy ? [{ label: \"Order by\", text: query.orderBy }] : []),\n ...(query.includeArchived\n ? [{ label: \"Include archived\", text: String(query.includeArchived) }]\n : []),\n ];\n};\n\nexport const updatedFromProperties = (payload: WebhookPayload) => {\n if (payload.action !== \"update\") return [];\n return [\n {\n label: \"Updated Keys\",\n text: Object.keys(payload.updatedFrom)\n .filter((key) => ![\"editedAt\", \"updatedAt\"].includes(key))\n .join(\", \"),\n },\n ];\n};\n","import {\n EventFilter,\n ExternalSource,\n ExternalSourceTrigger,\n HandlerEvent,\n IntegrationTaskKey,\n Logger,\n} from \"@trigger.dev/sdk\";\nimport {\n LinearDocument as L,\n LinearWebhooks,\n LINEAR_WEBHOOK_SIGNATURE_HEADER,\n LINEAR_WEBHOOK_TS_FIELD,\n WebhookPayload,\n DeletePayload,\n Webhook,\n} from \"@linear/sdk\";\nimport { z } from \"zod\";\nimport * as events from \"./events\";\nimport { Linear, LinearRunTask, serializeLinearOutput } from \"./index\";\nimport { WebhookPayloadSchema } from \"./schemas\";\nimport { LinearReturnType } from \"./types\";\nimport { queryProperties } from \"./utils\";\n\nexport class Webhooks {\n runTask: LinearRunTask;\n\n constructor(runTask: LinearRunTask) {\n this.runTask = runTask;\n }\n\n webhook(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<Webhook> {\n return this.runTask(\n key,\n async (client, task, io) => {\n return serializeLinearOutput(await client.webhook(params.id));\n },\n {\n name: \"Get Webhook\",\n params,\n properties: [{ label: \"Webhook ID\", text: params.id }],\n }\n );\n }\n\n webhooks(key: IntegrationTaskKey, params?: L.WebhooksQueryVariables): LinearReturnType<Webhook[]> {\n return this.runTask(\n key,\n async (client, task, io) => {\n let connections = await client.webhooks(params);\n const hooks = connections.nodes;\n while (connections.pageInfo.hasNextPage) {\n connections = await connections.fetchNext();\n hooks.push(...connections.nodes);\n }\n return serializeLinearOutput(hooks);\n },\n {\n name: \"List Webhooks\",\n params,\n properties: queryProperties(params ?? {}),\n }\n );\n }\n\n createWebhook(\n key: IntegrationTaskKey,\n params: L.WebhookCreateInput\n ): LinearReturnType<Omit<WebhookPayload, \"webhook\"> & { webhook: Webhook | undefined }> {\n return this.runTask(\n key,\n async (client, task, io) => {\n const payload = await client.createWebhook({ ...params, allPublicTeams: !params.teamId });\n return serializeLinearOutput({\n ...payload,\n webhook: await payload.webhook,\n });\n },\n {\n name: \"Create Webhook\",\n params,\n properties: [\n { label: \"Webhook URL\", text: params.url },\n { label: \"Resource Types\", text: params.resourceTypes.join(\", \") },\n ],\n }\n );\n }\n\n deleteWebhook(key: IntegrationTaskKey, params: { id: string }): LinearReturnType<DeletePayload> {\n return this.runTask(\n key,\n async (client, task, io) => {\n return serializeLinearOutput(await client.deleteWebhook(params.id));\n },\n {\n name: \"Delete Webhook\",\n params,\n properties: [{ label: \"Webhook ID\", text: params.id }],\n }\n );\n }\n\n updateWebhook(\n key: IntegrationTaskKey,\n params: { id: string; input: L.WebhookUpdateInput }\n ): LinearReturnType<Omit<WebhookPayload, \"webhook\"> & { webhook: Webhook | undefined }> {\n return this.runTask(\n key,\n async (client, task) => {\n const payload = await client.updateWebhook(params.id, params.input);\n return serializeLinearOutput({\n ...payload,\n webhook: await payload.webhook,\n });\n },\n {\n name: \"Update Webhook\",\n params,\n properties: [\n { label: \"Webhook ID\", text: params.id },\n ...(params.input.url ? [{ label: \"Webhook URL\", text: params.input.url }] : []),\n ...(params.input.resourceTypes\n ? [{ label: \"Resource Types\", text: params.input.resourceTypes.join(\", \") }]\n : []),\n ],\n }\n );\n }\n}\n\ntype LinearEvents = (typeof events)[keyof typeof events];\n\nexport type TriggerParams = {\n teamId?: string;\n filter?: EventFilter;\n};\n\ntype CreateTriggersResult<TEventSpecification extends LinearEvents> = ExternalSourceTrigger<\n TEventSpecification,\n ReturnType<typeof createWebhookEventSource>\n>;\n\nexport function createTrigger<TEventSpecification extends LinearEvents>(\n source: ReturnType<typeof createWebhookEventSource>,\n event: TEventSpecification,\n params: TriggerParams\n): CreateTriggersResult<TEventSpecification> {\n return new ExternalSourceTrigger({\n event,\n params,\n source,\n options: {},\n });\n}\n\nconst WebhookRegistrationDataSchema = z.object({\n success: z.literal(true),\n webhook: z.object({\n id: z.string(),\n enabled: z.boolean(),\n }),\n});\n\nexport function createWebhookEventSource(\n integration: Linear\n): ExternalSource<Linear, TriggerParams, \"HTTP\", {}> {\n return new ExternalSource(\"HTTP\", {\n id: \"linear.webhook\",\n schema: z.object({\n teamId: z.string().optional(),\n }),\n version: \"0.1.0\",\n integration,\n key: (params) => `${params.teamId ? params.teamId : \"all\"}`,\n handler: webhookHandler,\n register: async (event, io, ctx) => {\n const { params, source: httpSource, options } = event;\n\n // (key-specific) stored data, undefined if not registered yet\n const webhookData = WebhookRegistrationDataSchema.safeParse(httpSource.data);\n\n // set of events to register\n const allEvents = Array.from(new Set([...options.event.desired, ...options.event.missing]));\n const registeredOptions = {\n event: allEvents,\n };\n\n // easily identify webhooks on linear\n const label = `trigger.${params.teamId ? params.teamId : \"all\"}`;\n\n if (httpSource.active && webhookData.success) {\n const hasMissingOptions = Object.values(options).some(\n (option) => option.missing.length > 0\n );\n if (!hasMissingOptions) return;\n\n const updatedWebhook = await io.integration.updateWebhook(\"update-webhook\", {\n id: webhookData.data.webhook.id,\n input: {\n label,\n resourceTypes: allEvents,\n secret: httpSource.secret,\n url: httpSource.url,\n },\n });\n\n return {\n data: WebhookRegistrationDataSchema.parse(updatedWebhook),\n options: registeredOptions,\n };\n }\n\n // check for existing hooks that match url\n const listResponse = await io.integration.webhooks(\"list-webhooks\");\n const existingWebhook = listResponse.find((w) => w.url === httpSource.url);\n\n if (existingWebhook) {\n const updatedWebhook = await io.integration.updateWebhook(\"update-webhook\", {\n id: existingWebhook.id,\n input: {\n label,\n resourceTypes: allEvents,\n secret: httpSource.secret,\n url: httpSource.url,\n },\n });\n\n return {\n data: WebhookRegistrationDataSchema.parse(updatedWebhook),\n options: registeredOptions,\n };\n }\n\n const createPayload = await io.integration.createWebhook(\"create-webhook\", {\n label,\n resourceTypes: allEvents,\n secret: httpSource.secret,\n teamId: params.teamId,\n url: httpSource.url,\n });\n\n return {\n data: WebhookRegistrationDataSchema.parse(createPayload),\n secret: (await createPayload.webhook)?.secret,\n options: registeredOptions,\n };\n },\n });\n}\n\nasync function webhookHandler(event: HandlerEvent<\"HTTP\">, logger: Logger, integration: Linear) {\n logger.debug(\"[@trigger.dev/linear] Handling webhook payload\");\n\n const { rawEvent: request, source } = event;\n\n const LINEAR_IPS = [\"35.231.147.226\", \"35.243.134.228\"];\n\n const clientIp =\n request.headers.get(\"cf-connecting-ip\") ??\n (\n request.headers.get(\"x-real-ip\") ??\n request.headers.get(\"x-forwarded-for\") ??\n // default to allowing request if expected headers missing\n LINEAR_IPS[0]\n ).split(\",\")[0];\n\n if (!LINEAR_IPS.includes(clientIp)) {\n logger.error(\"[@trigger.dev/linear] Error validating webhook source, IP invalid.\");\n throw Error(\"[@trigger.dev/linear] Invalid source IP.\");\n }\n\n const payloadUuid = request.headers.get(\"Linear-Delivery\");\n const payloadEvent = request.headers.get(\"Linear-Event\");\n\n if (!payloadUuid || !payloadEvent) {\n logger.debug(\"[@trigger.dev/linear] Missing required Linear headers\");\n return { events: [] };\n }\n\n if (!request.body) {\n logger.debug(\"[@trigger.dev/linear] No body found\");\n return { events: [] };\n }\n\n const signature = request.headers.get(LINEAR_WEBHOOK_SIGNATURE_HEADER);\n\n if (!signature) {\n logger.error(\"[@trigger.dev/linear] Error validating webhook signature, no signature found\");\n throw Error(\"[@trigger.dev/linear] No signature found\");\n }\n\n const rawBody = await request.text();\n const body = JSON.parse(rawBody);\n const webhookHelper = new LinearWebhooks(source.secret);\n\n if (!webhookHelper.verify(Buffer.from(rawBody), signature, body[LINEAR_WEBHOOK_TS_FIELD])) {\n logger.error(\"[@trigger.dev/linear] Error validating webhook signature, they don't match\");\n throw Error(\"[@trigger.dev/linear] Invalid signature\");\n }\n\n const webhookPayload = WebhookPayloadSchema.parse(body);\n\n return {\n events: [\n {\n id: payloadUuid,\n name: payloadEvent,\n source: \"linear.app\",\n payload: webhookPayload,\n context: {},\n },\n ],\n };\n}\n","import { z } from \"zod\";\n\nexport const WebhookResourceTypeSchema = z.union([\n z.literal(\"Attachment\"),\n z.literal(\"Comment\"),\n z.literal(\"Cycle\"),\n z.literal(\"Issue\"),\n z.literal(\"IssueLabel\"),\n z.literal(\"IssueSLA\"),\n z.literal(\"Project\"),\n z.literal(\"ProjectUpdate\"),\n z.literal(\"Reaction\"),\n]);\nexport type WebhookResourceType = z.infer<typeof WebhookResourceTypeSchema>;\n\nexport const WebhookChangeActionTypeSchema = z.union([\n z.literal(\"create\"),\n z.literal(\"remove\"),\n z.literal(\"update\"),\n]);\nexport type WebhookChangeActionType = z.infer<typeof WebhookChangeActionTypeSchema>;\n\nexport const WebhookSLAActionTypeSchema = z.union([\n z.literal(\"set\"),\n z.literal(\"breached\"),\n z.literal(\"highRisk\"),\n]);\nexport type WebhookSLAActionType = z.infer<typeof WebhookSLAActionTypeSchema>;\n\nexport const WebhookActionTypeSchema = WebhookChangeActionTypeSchema.or(WebhookSLAActionTypeSchema);\nexport type WebhookActionType = z.infer<typeof WebhookActionTypeSchema>;\n\nconst IssueLabelDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n color: z.string(),\n createdAt: z.coerce.date(),\n creatorId: z.string().optional().nullable(),\n description: z.string().optional().nullable(),\n id: z.string(),\n // isGroup: z.boolean(), // missing\n name: z.string(),\n organizationId: z.string(),\n parentId: z.string().optional().nullable(),\n teamId: z.string().optional().nullable(),\n updatedAt: z.coerce.date(),\n});\n\nconst IssueDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n assignee: z.object({ id: z.string(), name: z.string() }).optional().nullable(),\n assigneeId: z.string().optional().nullable(),\n autoArchivedAt: z.coerce.date().optional().nullable(),\n autoClosedAt: z.coerce.date().optional().nullable(),\n boardOrder: z.number(),\n canceledAt: z.coerce.date().optional().nullable(),\n completedAt: z.coerce.date().optional().nullable(),\n createdAt: z.coerce.date(),\n creatorId: z.string().optional().nullable(),\n cycleId: z.string().optional().nullable(),\n description: z.string().optional().nullable(),\n dueDate: z.coerce.date().optional().nullable(), // timeless\n estimate: z.number().optional().nullable(),\n favoriteId: z.string().optional().nullable(),\n id: z.string(),\n labelIds: z.array(z.string()),\n labels: z.array(IssueLabelDataSchema.pick({ id: true, color: true, name: true })),\n number: z.number(),\n parentId: z.string().optional().nullable(),\n previousIdentifiers: z.array(z.string()),\n priority: z.number(),\n priorityLabel: z.string(),\n projectId: z.string().optional().nullable(),\n sortOrder: z.number(),\n state: z.object({ id: z.string(), color: z.string(), name: z.string(), type: z.string() }),\n startedAt: z.coerce.date().optional().nullable(),\n stateId: z.string(),\n subIssueSortOrder: z.number().optional().nullable(),\n subscriberIds: z.array(z.string()),\n team: z.object({ id: z.string(), key: z.string(), name: z.string() }),\n teamId: z.string(),\n title: z.string(),\n trashed: z.boolean().optional().nullable(),\n triagedAt: z.coerce.date().optional().nullable(),\n updatedAt: z.coerce.date(),\n});\n\n/** **WARNING:** Still in alpha - use with caution! */\nconst AttachmentDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n createdAt: z.coerce.date(),\n creatorId: z.string().optional().nullable(),\n groupBySource: z.boolean(),\n id: z.string(),\n issueId: z.string(),\n metadata: z.object({}).passthrough(), // JSONObject\n source: z\n .object({\n type: z.string().nullable(),\n imageUrl: z.string().url().nullable(),\n })\n .passthrough()\n .partial()\n .nullable(), // JSONObject\n sourceType: z.string().optional().nullable(),\n subtitle: z.string().optional().nullable(),\n title: z.string(),\n updatedAt: z.coerce.date(),\n url: z.string().url(),\n});\n\nconst CommentDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n body: z.string(),\n botActorId: z.string().optional().nullable(),\n createdAt: z.coerce.date(),\n editedAt: z.string().optional().nullable(),\n id: z.string(),\n issue: IssueDataSchema.pick({ id: true, title: true }),\n issueId: z.string(),\n parentId: z.string().optional().nullable(),\n reactionData: z.array(z.object({}).passthrough()), // JSONObject\n updatedAt: z.coerce.date(),\n userId: z.string().optional().nullable(),\n});\n\nconst ReactionDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n comment: CommentDataSchema.pick({\n id: true,\n body: true,\n userId: true,\n })\n .optional()\n .nullable(), // missing from official schema\n createdAt: z.coerce.date(),\n emoji: z.string(),\n id: z.string(),\n updatedAt: z.coerce.date(),\n user: z.object({ id: z.string(), name: z.string() }).optional().nullable(),\n userId: z.string().optional().nullable(),\n});\n\nconst MilestoneDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n createdAt: z.coerce.date(),\n description: z.string().optional().nullable(),\n id: z.string(),\n name: z.string(),\n projectId: z.string().optional().nullable(),\n sortOrder: z.number(),\n targetDate: z.coerce.date().optional().nullable(), // timeless\n updatedAt: z.coerce.date(),\n});\n\nconst RoadmapDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n color: z.string().optional().nullable(),\n createdAt: z.coerce.date(),\n creatorId: z.string(),\n description: z.string().optional().nullable(),\n id: z.string(),\n name: z.string(),\n organizationId: z.string(),\n ownerId: z.string(),\n slugId: z.string(),\n sortOrder: z.number(),\n updatedAt: z.coerce.date(),\n});\n\nconst ProjectDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n autoArchivedAt: z.coerce.date().optional().nullable(),\n canceledAt: z.coerce.date().optional().nullable(),\n color: z.string(),\n completedAt: z.coerce.date().optional().nullable(),\n completedIssueCountHistory: z.array(z.number()),\n completedScopeHistory: z.array(z.number()),\n content: z.string().optional().nullable(),\n convertedFromIssueId: z.string().optional().nullable(),\n createdAt: z.coerce.date(),\n creatorId: z.string(),\n description: z.string(),\n icon: z.string().optional().nullable(),\n id: z.string(),\n inProgressScopeHistory: z.array(z.number()),\n integrationsSettingsId: z.string().optional().nullable(),\n issueCountHistory: z.array(z.number()),\n leadId: z.string(),\n memberIds: z.array(z.string()),\n milestones: z.array(MilestoneDataSchema.pick({ id: true, name: true })), // at projectMilestones key in official schema\n name: z.string(),\n progress: z.number().optional().nullable(), // missing, should be NonNullable\n projectUpdateRemindersPausedUntilAt: z.coerce.date().optional().nullable(),\n roadmaps: z\n .array(RoadmapDataSchema.pick({ id: true, name: true }))\n .optional()\n .nullable(), // missing from official schema\n scope: z.number().optional().nullable(), // missing, should be NonNullable\n scopeHistory: z.array(z.number()),\n slackIssueComments: z.boolean(),\n slackIssueStatuses: z.boolean(),\n slackNewIssue: z.boolean(),\n slugId: z.string(),\n sortOrder: z.number(),\n startDate: z.coerce.date().optional().nullable(), // timeless\n startedAt: z.coerce.date().optional().nullable(),\n state: z.string(),\n targetDate: z.coerce.date().optional().nullable(), // timeless\n teamIds: z.array(z.string()),\n trashed: z.boolean().optional().nullable(),\n updatedAt: z.coerce.date(),\n});\n\nconst ProjectUpdateDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n body: z.string(),\n createdAt: z.coerce.date(),\n // diff: z.any().optional().nullable(), // missing, \"stringified\" JSON but typed as Record\n editedAt: z.coerce.date().optional().nullable(),\n health: z.string(),\n id: z.string(),\n infoSnapshot: z.object({}).passthrough().optional().nullable(), // JSONObject, marked as \"internal\"\n project: ProjectDataSchema.pick({ id: true, name: true }),\n projectId: z.string(),\n roadmaps: z\n .array(RoadmapDataSchema.pick({ id: true, name: true }))\n .optional()\n .nullable(), // missing from official schema\n updatedAt: z.coerce.date(),\n user: z.object({ id: z.string(), name: z.string() }),\n userId: z.string(),\n});\n\nconst CycleDataSchema = z.object({\n archivedAt: z.coerce.date().optional().nullable(),\n autoArchivedAt: z.coerce.date().optional().nullable(),\n completedAt: z.coerce.date().optional().nullable(),\n completedIssueCountHistory: z.array(z.number()),\n completedScopeHistory: z.array(z.number()),\n createdAt: z.coerce.date(),\n description: z.string().optional().nullable(),\n endsAt: z.coerce.date(),\n id: z.string(),\n inProgressScopeHistory: z.array(z.number()),\n issueCountHistory: z.array(z.number()),\n name: z.string().optional().nullable(),\n number: z.number(),\n progress: z.number().optional().nullable(), // missing, should be NonNullable\n scopeHistory: z.array(z.number()),\n startsAt: z.coerce.date(),\n teamId: z.string(),\n uncompletedIssuesUponCloseIds: z.array(z.string()),\n updatedAt: z.coerce.date(),\n});\n\nexport const WebhookPayloadBaseSchema = z.object({\n createdAt: z.coerce.date(),\n organizationId: z.string().optional().nullable(), // missing from official schema - workspace id?\n url: z.string().url().optional().nullable(),\n webhookId: z.string(),\n webhookTimestamp: z.coerce.date(),\n});\n\nconst CREATE = z.literal(\"create\");\nconst REMOVE = z.literal(\"remove\");\nconst UPDATE = z.literal(\"update\");\n\n/** **WARNING:** Still in alpha - use with caution! */\nexport const AttachmentEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Attachment\"),\n data: AttachmentDataSchema,\n});\nexport const AttachmentEventSchema = z.discriminatedUnion(\"action\", [\n AttachmentEventBaseSchema.extend({\n action: CREATE,\n }),\n AttachmentEventBaseSchema.extend({\n action: REMOVE,\n }),\n AttachmentEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: AttachmentDataSchema.partial(),\n }),\n]);\nexport type AttachmentEvent = z.infer<typeof AttachmentEventSchema>;\n\nexport const CommentEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Comment\"),\n data: CommentDataSchema,\n});\nexport const CommentEventSchema = z.discriminatedUnion(\"action\", [\n CommentEventBaseSchema.extend({\n action: CREATE,\n }),\n CommentEventBaseSchema.extend({\n action: REMOVE,\n }),\n CommentEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: CommentDataSchema.partial(),\n }),\n]);\nexport type CommentEvent = z.infer<typeof CommentEventSchema>;\n\nexport const CycleEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Cycle\"),\n data: CycleDataSchema,\n});\nexport const CycleEventSchema = z.discriminatedUnion(\"action\", [\n CycleEventBaseSchema.extend({\n action: CREATE,\n }),\n CycleEventBaseSchema.extend({\n action: REMOVE,\n }),\n CycleEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: CycleDataSchema.partial(),\n }),\n]);\nexport type CycleEvent = z.infer<typeof CycleEventSchema>;\n\nexport const IssueEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Issue\"),\n data: IssueDataSchema,\n});\nexport const IssueEventSchema = z.discriminatedUnion(\"action\", [\n IssueEventBaseSchema.extend({\n action: CREATE,\n }),\n IssueEventBaseSchema.extend({\n action: REMOVE,\n }),\n IssueEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: IssueDataSchema.partial(),\n }),\n]);\nexport type IssueEvent = z.infer<typeof IssueEventSchema>;\n\nexport const IssueLabelEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"IssueLabel\"),\n data: IssueLabelDataSchema,\n});\nexport const IssueLabelEventSchema = z.discriminatedUnion(\"action\", [\n IssueLabelEventBaseSchema.extend({\n action: CREATE,\n }),\n IssueLabelEventBaseSchema.extend({\n action: REMOVE,\n }),\n IssueLabelEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: IssueLabelDataSchema.partial(),\n }),\n]);\nexport type IssueLabelEvent = z.infer<typeof IssueLabelEventSchema>;\n\n// TODO: confirm this with real-world payload(s)\nexport const IssueSLAEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"IssueSLA\"),\n issueData: IssueDataSchema,\n});\nexport const IssueSLAEventSchema = z.discriminatedUnion(\"action\", [\n IssueSLAEventBaseSchema.extend({\n action: z.literal(\"set\"),\n }),\n IssueSLAEventBaseSchema.extend({\n action: z.literal(\"highRisk\"),\n }),\n IssueSLAEventBaseSchema.extend({\n action: z.literal(\"breached\"),\n }),\n]);\nexport type IssueSLAEvent = z.infer<typeof IssueSLAEventSchema>;\nexport type IssueSLAEventBreached = Extract<IssueSLAEvent, { action: \"breached\" }>;\n\nexport const ProjectEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Project\"),\n data: ProjectDataSchema,\n});\nexport const ProjectEventSchema = z.discriminatedUnion(\"action\", [\n ProjectEventBaseSchema.extend({\n action: CREATE,\n }),\n ProjectEventBaseSchema.extend({\n action: REMOVE,\n }),\n ProjectEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: ProjectDataSchema.partial(),\n }),\n]);\nexport type ProjectEvent = z.infer<typeof ProjectEventSchema>;\n\nexport const ProjectUpdateEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"ProjectUpdate\"),\n data: ProjectUpdateDataSchema,\n});\nexport const ProjectUpdateEventSchema = z.discriminatedUnion(\"action\", [\n ProjectUpdateEventBaseSchema.extend({\n action: CREATE,\n }),\n ProjectUpdateEventBaseSchema.extend({\n action: REMOVE,\n }),\n ProjectUpdateEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: ProjectUpdateDataSchema.partial(),\n }),\n]);\nexport type ProjectUpdateEvent = z.infer<typeof ProjectUpdateEventSchema>;\n\nexport const ReactionEventBaseSchema = WebhookPayloadBaseSchema.extend({\n type: z.literal(\"Reaction\"),\n data: ReactionDataSchema,\n});\nexport const ReactionEventSchema = z.discriminatedUnion(\"action\", [\n ReactionEventBaseSchema.extend({\n action: CREATE,\n }),\n ReactionEventBaseSchema.extend({\n action: REMOVE,\n }),\n ReactionEventBaseSchema.extend({\n action: UPDATE,\n updatedFrom: ReactionDataSchema.partial(),\n }),\n]);\nexport type ReactionEvent = z.infer<typeof ReactionEventSchema>;\n\nexport const WebhookPayloadSchema = z.union([\n AttachmentEventSchema,\n CommentEventSchema,\n CycleEventSchema,\n IssueEventSchema,\n IssueLabelEventSchema,\n IssueSLAEventSchema,\n ProjectEventSchema,\n ProjectUpdateEventSchema,\n ReactionEventSchema,\n]);\n\nexport type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@trigger.dev/linear",
|
|
3
|
+
"version": "0.0.0-prerelease-20230922185725",
|
|
4
|
+
"description": "Trigger.dev integration for @linear/sdk",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/index.js",
|
|
12
|
+
"dist/index.d.ts",
|
|
13
|
+
"dist/index.js.map"
|
|
14
|
+
],
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@types/node": "16.x",
|
|
17
|
+
"rimraf": "^3.0.2",
|
|
18
|
+
"tsup": "7.1.x",
|
|
19
|
+
"typescript": "4.9.4",
|
|
20
|
+
"@trigger.dev/tsconfig": "0.0.0"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@linear/sdk": "^8.0.0",
|
|
24
|
+
"@trigger.dev/integration-kit": "0.0.0-prerelease-20230922185725",
|
|
25
|
+
"@trigger.dev/sdk": "0.0.0-prerelease-20230922185725",
|
|
26
|
+
"zod": "3.21.4"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=16.8.0"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"clean": "rimraf dist",
|
|
33
|
+
"build": "npm run clean && npm run build:tsup",
|
|
34
|
+
"build:tsup": "tsup",
|
|
35
|
+
"typecheck": "tsc --noEmit"
|
|
36
|
+
}
|
|
37
|
+
}
|