@shipfox/api-integration-jira-dto 4.0.0

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.
@@ -0,0 +1,120 @@
1
+ import { integrationConnectionDtoSchema } from '@shipfox/api-integration-core-dto';
2
+ import { z } from 'zod';
3
+ export const JIRA_PROVIDER = 'jira';
4
+ export const jiraIssueWebhookEventNames = [
5
+ 'jira:issue_created',
6
+ 'jira:issue_updated',
7
+ 'jira:issue_deleted'
8
+ ];
9
+ export const jiraCommentWebhookEventNames = [
10
+ 'comment_created',
11
+ 'comment_updated',
12
+ 'comment_deleted'
13
+ ];
14
+ export const jiraWebhookEventNames = [
15
+ ...jiraIssueWebhookEventNames,
16
+ ...jiraCommentWebhookEventNames
17
+ ];
18
+ export const jiraWebhookEventNameSchema = z.enum(jiraWebhookEventNames);
19
+ export const jiraWebhookUserSchema = z.object({
20
+ accountId: z.string().min(1),
21
+ displayName: z.string().min(1).optional()
22
+ }).passthrough();
23
+ const jiraWebhookNamedResourceSchema = z.object({
24
+ id: z.string().min(1).optional(),
25
+ name: z.string().min(1).optional()
26
+ }).passthrough();
27
+ export const jiraWebhookIssueSchema = z.object({
28
+ id: z.string().min(1),
29
+ key: z.string().min(1),
30
+ fields: z.object({
31
+ summary: z.string().optional(),
32
+ status: jiraWebhookNamedResourceSchema.nullable().optional(),
33
+ assignee: jiraWebhookUserSchema.nullable().optional()
34
+ }).passthrough()
35
+ }).passthrough();
36
+ const jiraWebhookChangelogItemSchema = z.object({
37
+ field: z.string().min(1),
38
+ fieldtype: z.string().min(1).optional(),
39
+ fieldId: z.string().min(1).optional(),
40
+ from: z.string().nullable().optional(),
41
+ fromString: z.string().nullable().optional(),
42
+ to: z.string().nullable().optional(),
43
+ toString: z.string().nullable().optional()
44
+ }).passthrough();
45
+ export const jiraWebhookChangelogSchema = z.object({
46
+ id: z.string().min(1).optional(),
47
+ items: z.array(jiraWebhookChangelogItemSchema)
48
+ }).passthrough();
49
+ export const jiraWebhookCommentSchema = z.object({
50
+ id: z.string().min(1),
51
+ author: jiraWebhookUserSchema,
52
+ body: z.unknown()
53
+ }).passthrough();
54
+ export const jiraWebhookBaseEnvelopeSchema = z.object({
55
+ webhookEvent: z.string().min(1),
56
+ timestamp: z.number().int(),
57
+ issue: jiraWebhookIssueSchema,
58
+ user: jiraWebhookUserSchema,
59
+ matchedWebhookIds: z.array(z.number().int().positive()).optional()
60
+ }).passthrough();
61
+ export const jiraIssueWebhookEnvelopeSchema = jiraWebhookBaseEnvelopeSchema.extend({
62
+ webhookEvent: z.enum(jiraIssueWebhookEventNames),
63
+ issue_event_type_name: z.string().min(1),
64
+ changelog: jiraWebhookChangelogSchema.optional()
65
+ });
66
+ export const jiraCommentWebhookEnvelopeSchema = jiraWebhookBaseEnvelopeSchema.extend({
67
+ webhookEvent: z.enum(jiraCommentWebhookEventNames),
68
+ comment: jiraWebhookCommentSchema
69
+ });
70
+ export const jiraWebhookEnvelopeSchema = z.discriminatedUnion('webhookEvent', [
71
+ jiraIssueWebhookEnvelopeSchema,
72
+ jiraCommentWebhookEnvelopeSchema
73
+ ]);
74
+ const jiraCloudIdSchema = z.string().min(1);
75
+ export const jiraIssueEventPayloadSchema = jiraIssueWebhookEnvelopeSchema.extend({
76
+ cloudId: jiraCloudIdSchema
77
+ });
78
+ export const jiraCommentEventPayloadSchema = jiraCommentWebhookEnvelopeSchema.extend({
79
+ cloudId: jiraCloudIdSchema
80
+ });
81
+ export const jiraEventPayloadSchema = z.discriminatedUnion('webhookEvent', [
82
+ jiraIssueEventPayloadSchema,
83
+ jiraCommentEventPayloadSchema
84
+ ]);
85
+ export const createJiraInstallBodySchema = z.object({
86
+ workspace_id: z.string().uuid()
87
+ });
88
+ export const createJiraInstallResponseSchema = z.object({
89
+ install_url: z.string().url()
90
+ });
91
+ export const jiraCallbackQuerySchema = z.union([
92
+ z.object({
93
+ code: z.string().min(1),
94
+ state: z.string().min(1)
95
+ }),
96
+ z.object({
97
+ error: z.string().min(1),
98
+ error_description: z.string().min(1).optional(),
99
+ state: z.string().min(1)
100
+ })
101
+ ]);
102
+ export const jiraAccessibleResourceSchema = z.object({
103
+ cloud_id: jiraCloudIdSchema,
104
+ name: z.string().min(1),
105
+ url: z.string().url(),
106
+ scopes: z.array(z.string().min(1))
107
+ });
108
+ export const jiraAccessibleResourcesSchema = z.array(jiraAccessibleResourceSchema);
109
+ export const jiraSiteSelectionResponseSchema = z.object({
110
+ sites: jiraAccessibleResourcesSchema.min(2)
111
+ });
112
+ export const completeJiraSiteSelectionBodySchema = z.object({
113
+ cloud_id: jiraCloudIdSchema
114
+ });
115
+ export const jiraCallbackResponseSchema = z.union([
116
+ integrationConnectionDtoSchema,
117
+ jiraSiteSelectionResponseSchema
118
+ ]);
119
+
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schemas/index.ts"],"sourcesContent":["import {integrationConnectionDtoSchema} from '@shipfox/api-integration-core-dto';\nimport {z} from 'zod';\n\nexport const JIRA_PROVIDER = 'jira';\nexport type JiraProvider = typeof JIRA_PROVIDER;\n\nexport const jiraIssueWebhookEventNames = [\n 'jira:issue_created',\n 'jira:issue_updated',\n 'jira:issue_deleted',\n] as const;\nexport const jiraCommentWebhookEventNames = [\n 'comment_created',\n 'comment_updated',\n 'comment_deleted',\n] as const;\nexport const jiraWebhookEventNames = [\n ...jiraIssueWebhookEventNames,\n ...jiraCommentWebhookEventNames,\n] as const;\n\nexport const jiraWebhookEventNameSchema = z.enum(jiraWebhookEventNames);\nexport type JiraIssueWebhookEventName = (typeof jiraIssueWebhookEventNames)[number];\nexport type JiraCommentWebhookEventName = (typeof jiraCommentWebhookEventNames)[number];\nexport type JiraWebhookEventName = z.infer<typeof jiraWebhookEventNameSchema>;\n\nexport const jiraWebhookUserSchema = z\n .object({\n accountId: z.string().min(1),\n displayName: z.string().min(1).optional(),\n })\n .passthrough();\nexport type JiraWebhookUserDto = z.infer<typeof jiraWebhookUserSchema>;\n\nconst jiraWebhookNamedResourceSchema = z\n .object({\n id: z.string().min(1).optional(),\n name: z.string().min(1).optional(),\n })\n .passthrough();\n\nexport const jiraWebhookIssueSchema = z\n .object({\n id: z.string().min(1),\n key: z.string().min(1),\n fields: z\n .object({\n summary: z.string().optional(),\n status: jiraWebhookNamedResourceSchema.nullable().optional(),\n assignee: jiraWebhookUserSchema.nullable().optional(),\n })\n .passthrough(),\n })\n .passthrough();\nexport type JiraWebhookIssueDto = z.infer<typeof jiraWebhookIssueSchema>;\n\nconst jiraWebhookChangelogItemSchema = z\n .object({\n field: z.string().min(1),\n fieldtype: z.string().min(1).optional(),\n fieldId: z.string().min(1).optional(),\n from: z.string().nullable().optional(),\n fromString: z.string().nullable().optional(),\n to: z.string().nullable().optional(),\n toString: z.string().nullable().optional(),\n })\n .passthrough();\n\nexport const jiraWebhookChangelogSchema = z\n .object({\n id: z.string().min(1).optional(),\n items: z.array(jiraWebhookChangelogItemSchema),\n })\n .passthrough();\nexport type JiraWebhookChangelogDto = z.infer<typeof jiraWebhookChangelogSchema>;\n\nexport const jiraWebhookCommentSchema = z\n .object({\n id: z.string().min(1),\n author: jiraWebhookUserSchema,\n body: z.unknown(),\n })\n .passthrough();\nexport type JiraWebhookCommentDto = z.infer<typeof jiraWebhookCommentSchema>;\n\nexport const jiraWebhookBaseEnvelopeSchema = z\n .object({\n webhookEvent: z.string().min(1),\n timestamp: z.number().int(),\n issue: jiraWebhookIssueSchema,\n user: jiraWebhookUserSchema,\n matchedWebhookIds: z.array(z.number().int().positive()).optional(),\n })\n .passthrough();\nexport type JiraWebhookBaseEnvelopeDto = z.infer<typeof jiraWebhookBaseEnvelopeSchema>;\n\nexport const jiraIssueWebhookEnvelopeSchema = jiraWebhookBaseEnvelopeSchema.extend({\n webhookEvent: z.enum(jiraIssueWebhookEventNames),\n issue_event_type_name: z.string().min(1),\n changelog: jiraWebhookChangelogSchema.optional(),\n});\nexport type JiraIssueWebhookEnvelopeDto = z.infer<typeof jiraIssueWebhookEnvelopeSchema>;\n\nexport const jiraCommentWebhookEnvelopeSchema = jiraWebhookBaseEnvelopeSchema.extend({\n webhookEvent: z.enum(jiraCommentWebhookEventNames),\n comment: jiraWebhookCommentSchema,\n});\nexport type JiraCommentWebhookEnvelopeDto = z.infer<typeof jiraCommentWebhookEnvelopeSchema>;\n\nexport const jiraWebhookEnvelopeSchema = z.discriminatedUnion('webhookEvent', [\n jiraIssueWebhookEnvelopeSchema,\n jiraCommentWebhookEnvelopeSchema,\n]);\nexport type JiraWebhookEnvelopeDto = z.infer<typeof jiraWebhookEnvelopeSchema>;\n\nconst jiraCloudIdSchema = z.string().min(1);\n\nexport const jiraIssueEventPayloadSchema = jiraIssueWebhookEnvelopeSchema.extend({\n cloudId: jiraCloudIdSchema,\n});\nexport type JiraIssueEventPayloadDto = z.infer<typeof jiraIssueEventPayloadSchema>;\n\nexport const jiraCommentEventPayloadSchema = jiraCommentWebhookEnvelopeSchema.extend({\n cloudId: jiraCloudIdSchema,\n});\nexport type JiraCommentEventPayloadDto = z.infer<typeof jiraCommentEventPayloadSchema>;\n\nexport const jiraEventPayloadSchema = z.discriminatedUnion('webhookEvent', [\n jiraIssueEventPayloadSchema,\n jiraCommentEventPayloadSchema,\n]);\nexport type JiraEventPayloadDto = z.infer<typeof jiraEventPayloadSchema>;\n\nexport const createJiraInstallBodySchema = z.object({\n workspace_id: z.string().uuid(),\n});\nexport type CreateJiraInstallBodyDto = z.infer<typeof createJiraInstallBodySchema>;\n\nexport const createJiraInstallResponseSchema = z.object({\n install_url: z.string().url(),\n});\nexport type CreateJiraInstallResponseDto = z.infer<typeof createJiraInstallResponseSchema>;\n\nexport const jiraCallbackQuerySchema = z.union([\n z.object({\n code: z.string().min(1),\n state: z.string().min(1),\n }),\n z.object({\n error: z.string().min(1),\n error_description: z.string().min(1).optional(),\n state: z.string().min(1),\n }),\n]);\nexport type JiraCallbackQueryDto = z.infer<typeof jiraCallbackQuerySchema>;\n\nexport const jiraAccessibleResourceSchema = z.object({\n cloud_id: jiraCloudIdSchema,\n name: z.string().min(1),\n url: z.string().url(),\n scopes: z.array(z.string().min(1)),\n});\nexport type JiraAccessibleResourceDto = z.infer<typeof jiraAccessibleResourceSchema>;\n\nexport const jiraAccessibleResourcesSchema = z.array(jiraAccessibleResourceSchema);\nexport type JiraAccessibleResourcesDto = z.infer<typeof jiraAccessibleResourcesSchema>;\n\nexport const jiraSiteSelectionResponseSchema = z.object({\n sites: jiraAccessibleResourcesSchema.min(2),\n});\nexport type JiraSiteSelectionResponseDto = z.infer<typeof jiraSiteSelectionResponseSchema>;\n\nexport const completeJiraSiteSelectionBodySchema = z.object({\n cloud_id: jiraCloudIdSchema,\n});\nexport type CompleteJiraSiteSelectionBodyDto = z.infer<typeof completeJiraSiteSelectionBodySchema>;\n\nexport const jiraCallbackResponseSchema = z.union([\n integrationConnectionDtoSchema,\n jiraSiteSelectionResponseSchema,\n]);\nexport type JiraCallbackResponseDto = z.infer<typeof jiraCallbackResponseSchema>;\n"],"names":["integrationConnectionDtoSchema","z","JIRA_PROVIDER","jiraIssueWebhookEventNames","jiraCommentWebhookEventNames","jiraWebhookEventNames","jiraWebhookEventNameSchema","enum","jiraWebhookUserSchema","object","accountId","string","min","displayName","optional","passthrough","jiraWebhookNamedResourceSchema","id","name","jiraWebhookIssueSchema","key","fields","summary","status","nullable","assignee","jiraWebhookChangelogItemSchema","field","fieldtype","fieldId","from","fromString","to","toString","jiraWebhookChangelogSchema","items","array","jiraWebhookCommentSchema","author","body","unknown","jiraWebhookBaseEnvelopeSchema","webhookEvent","timestamp","number","int","issue","user","matchedWebhookIds","positive","jiraIssueWebhookEnvelopeSchema","extend","issue_event_type_name","changelog","jiraCommentWebhookEnvelopeSchema","comment","jiraWebhookEnvelopeSchema","discriminatedUnion","jiraCloudIdSchema","jiraIssueEventPayloadSchema","cloudId","jiraCommentEventPayloadSchema","jiraEventPayloadSchema","createJiraInstallBodySchema","workspace_id","uuid","createJiraInstallResponseSchema","install_url","url","jiraCallbackQuerySchema","union","code","state","error","error_description","jiraAccessibleResourceSchema","cloud_id","scopes","jiraAccessibleResourcesSchema","jiraSiteSelectionResponseSchema","sites","completeJiraSiteSelectionBodySchema","jiraCallbackResponseSchema"],"mappings":"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"}