@bubblelab/bubble-core 0.1.277 → 0.1.280

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.
Files changed (173) hide show
  1. package/dist/bubble-bundle.d.ts +178 -157
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +3 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-trigger/index.d.ts +2 -0
  6. package/dist/bubble-trigger/index.d.ts.map +1 -0
  7. package/dist/bubble-trigger/index.js +2 -0
  8. package/dist/bubble-trigger/index.js.map +1 -0
  9. package/dist/bubble-trigger/types.d.ts +87 -0
  10. package/dist/bubble-trigger/types.d.ts.map +1 -0
  11. package/dist/bubble-trigger/types.js +14 -0
  12. package/dist/bubble-trigger/types.js.map +1 -0
  13. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  14. package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
  15. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  16. package/dist/bubbles/service-bubble/apify/actors/app-rankings-scraper.d.ts +6 -6
  17. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  18. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  19. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  20. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  21. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
  22. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  23. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  24. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  25. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  26. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +132 -132
  27. package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
  28. package/dist/bubbles/service-bubble/asana/asana.d.ts +1 -1
  29. package/dist/bubbles/service-bubble/asana/asana.schema.d.ts +1 -1
  30. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +20 -20
  31. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +28 -28
  32. package/dist/bubbles/service-bubble/assembled/assembled.d.ts +8 -8
  33. package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts +8 -8
  34. package/dist/bubbles/service-bubble/attio/attio.d.ts +6 -6
  35. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
  36. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +2 -2
  37. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +2 -2
  38. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +10 -10
  39. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
  40. package/dist/bubbles/service-bubble/discord/discord.d.ts +12 -12
  41. package/dist/bubbles/service-bubble/discord/discord.schema.d.ts +12 -12
  42. package/dist/bubbles/service-bubble/firecrawl.d.ts +330 -330
  43. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  44. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  45. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  46. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  47. package/dist/bubbles/service-bubble/google-drive.d.ts +4 -4
  48. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  49. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  50. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  51. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  52. package/dist/bubbles/service-bubble/http.d.ts +6 -6
  53. package/dist/bubbles/service-bubble/hubspot/hubspot.d.ts +2 -2
  54. package/dist/bubbles/service-bubble/hubspot/hubspot.schema.d.ts +2 -2
  55. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  56. package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
  57. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  58. package/dist/bubbles/service-bubble/looker/index.d.ts +3 -0
  59. package/dist/bubbles/service-bubble/looker/index.d.ts.map +1 -0
  60. package/dist/bubbles/service-bubble/looker/index.js +3 -0
  61. package/dist/bubbles/service-bubble/looker/index.js.map +1 -0
  62. package/dist/bubbles/service-bubble/looker/looker.d.ts +768 -0
  63. package/dist/bubbles/service-bubble/looker/looker.d.ts.map +1 -0
  64. package/dist/bubbles/service-bubble/looker/looker.js +319 -0
  65. package/dist/bubbles/service-bubble/looker/looker.js.map +1 -0
  66. package/dist/bubbles/service-bubble/looker/looker.schema.d.ts +735 -0
  67. package/dist/bubbles/service-bubble/looker/looker.schema.d.ts.map +1 -0
  68. package/dist/bubbles/service-bubble/looker/looker.schema.js +264 -0
  69. package/dist/bubbles/service-bubble/looker/looker.schema.js.map +1 -0
  70. package/dist/bubbles/service-bubble/metabase/index.d.ts +4 -0
  71. package/dist/bubbles/service-bubble/metabase/index.d.ts.map +1 -0
  72. package/dist/bubbles/service-bubble/metabase/index.js +4 -0
  73. package/dist/bubbles/service-bubble/metabase/index.js.map +1 -0
  74. package/dist/bubbles/service-bubble/metabase/metabase.d.ts +746 -0
  75. package/dist/bubbles/service-bubble/metabase/metabase.d.ts.map +1 -0
  76. package/dist/bubbles/service-bubble/metabase/metabase.js +221 -0
  77. package/dist/bubbles/service-bubble/metabase/metabase.js.map +1 -0
  78. package/dist/bubbles/service-bubble/metabase/metabase.schema.d.ts +1125 -0
  79. package/dist/bubbles/service-bubble/metabase/metabase.schema.d.ts.map +1 -0
  80. package/dist/bubbles/service-bubble/metabase/metabase.schema.js +222 -0
  81. package/dist/bubbles/service-bubble/metabase/metabase.schema.js.map +1 -0
  82. package/dist/bubbles/service-bubble/metabase/metabase.utils.d.ts +15 -0
  83. package/dist/bubbles/service-bubble/metabase/metabase.utils.d.ts.map +1 -0
  84. package/dist/bubbles/service-bubble/metabase/metabase.utils.js +32 -0
  85. package/dist/bubbles/service-bubble/metabase/metabase.utils.js.map +1 -0
  86. package/dist/bubbles/service-bubble/notion/notion.d.ts +168 -168
  87. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +16 -16
  88. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  89. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +10 -10
  90. package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
  91. package/dist/bubbles/service-bubble/pylon/index.d.ts +3 -0
  92. package/dist/bubbles/service-bubble/pylon/index.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/pylon/index.js +3 -0
  94. package/dist/bubbles/service-bubble/pylon/index.js.map +1 -0
  95. package/dist/bubbles/service-bubble/pylon/pylon.d.ts +435 -0
  96. package/dist/bubbles/service-bubble/pylon/pylon.d.ts.map +1 -0
  97. package/dist/bubbles/service-bubble/pylon/pylon.js +375 -0
  98. package/dist/bubbles/service-bubble/pylon/pylon.js.map +1 -0
  99. package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts +408 -0
  100. package/dist/bubbles/service-bubble/pylon/pylon.schema.d.ts.map +1 -0
  101. package/dist/bubbles/service-bubble/pylon/pylon.schema.js +249 -0
  102. package/dist/bubbles/service-bubble/pylon/pylon.schema.js.map +1 -0
  103. package/dist/bubbles/service-bubble/resend.d.ts +12 -12
  104. package/dist/bubbles/service-bubble/slack/slack.d.ts +392 -392
  105. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  106. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  107. package/dist/bubbles/service-bubble/slack.js +1536 -0
  108. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  109. package/dist/bubbles/service-bubble/snowflake/snowflake.d.ts +4 -4
  110. package/dist/bubbles/service-bubble/snowflake/snowflake.schema.d.ts +4 -4
  111. package/dist/bubbles/service-bubble/sortly/sortly.d.ts +36 -36
  112. package/dist/bubbles/service-bubble/sortly/sortly.schema.d.ts +40 -40
  113. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  114. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  115. package/dist/bubbles/service-bubble/xero/xero.d.ts +2 -2
  116. package/dist/bubbles/service-bubble/xero/xero.schema.d.ts +2 -2
  117. package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +166 -20
  118. package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts.map +1 -1
  119. package/dist/bubbles/service-bubble/zendesk/zendesk.js +105 -11
  120. package/dist/bubbles/service-bubble/zendesk/zendesk.js.map +1 -1
  121. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts +163 -20
  122. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts.map +1 -1
  123. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js +57 -0
  124. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js.map +1 -1
  125. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  126. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  127. package/dist/bubbles/tool-bubble/app-rankings-tool.d.ts +8 -8
  128. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  129. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +4 -4
  130. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
  131. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts +3 -0
  132. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.d.ts.map +1 -0
  133. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js +3 -0
  134. package/dist/bubbles/tool-bubble/linkedin-connection-tool/index.js.map +1 -0
  135. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +160 -0
  136. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts.map +1 -0
  137. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js +706 -0
  138. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.js.map +1 -0
  139. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts +93 -0
  140. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.d.ts.map +1 -0
  141. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js +50 -0
  142. package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.schema.js.map +1 -0
  143. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +384 -384
  144. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
  145. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  146. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  147. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  148. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  149. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  150. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
  151. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  152. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +114 -0
  153. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -0
  154. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +777 -0
  155. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -0
  156. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  157. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +24 -24
  158. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  159. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +34 -34
  160. package/dist/bubbles.json +675 -3
  161. package/dist/index.d.ts +1 -0
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +1 -0
  164. package/dist/index.js.map +1 -1
  165. package/dist/types/ai-models.d.ts +4 -0
  166. package/dist/types/ai-models.d.ts.map +1 -0
  167. package/dist/types/ai-models.js +16 -0
  168. package/dist/types/ai-models.js.map +1 -0
  169. package/dist/utils/param-helper.d.ts +2 -0
  170. package/dist/utils/param-helper.d.ts.map +1 -0
  171. package/dist/utils/param-helper.js +5 -0
  172. package/dist/utils/param-helper.js.map +1 -0
  173. package/package.json +2 -2
@@ -82,6 +82,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
82
82
  value: string | number | boolean | string[] | null;
83
83
  id: number;
84
84
  }>, "many">>;
85
+ uploads: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
85
86
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
86
87
  }, "strip", import("zod").ZodTypeAny, {
87
88
  operation: "create_ticket";
@@ -89,8 +90,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
89
90
  subject: string;
90
91
  type?: "question" | "task" | "problem" | "incident" | undefined;
91
92
  credentials?: Partial<Record<CredentialType, string>> | undefined;
92
- tags?: string[] | undefined;
93
93
  priority?: "low" | "high" | "urgent" | "normal" | undefined;
94
+ tags?: string[] | undefined;
94
95
  custom_fields?: {
95
96
  value: string | number | boolean | string[] | null;
96
97
  id: number;
@@ -98,14 +99,15 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
98
99
  requester_email?: string | undefined;
99
100
  requester_name?: string | undefined;
100
101
  assignee_id?: number | undefined;
102
+ uploads?: string[] | undefined;
101
103
  }, {
102
104
  operation: "create_ticket";
103
105
  body: string;
104
106
  subject: string;
105
107
  type?: "question" | "task" | "problem" | "incident" | undefined;
106
108
  credentials?: Partial<Record<CredentialType, string>> | undefined;
107
- tags?: string[] | undefined;
108
109
  priority?: "low" | "high" | "urgent" | "normal" | undefined;
110
+ tags?: string[] | undefined;
109
111
  custom_fields?: {
110
112
  value: string | number | boolean | string[] | null;
111
113
  id: number;
@@ -113,6 +115,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
113
115
  requester_email?: string | undefined;
114
116
  requester_name?: string | undefined;
115
117
  assignee_id?: number | undefined;
118
+ uploads?: string[] | undefined;
116
119
  }>, import("zod").ZodObject<{
117
120
  operation: import("zod").ZodLiteral<"update_ticket">;
118
121
  ticket_id: import("zod").ZodString;
@@ -132,6 +135,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
132
135
  value: string | number | boolean | string[] | null;
133
136
  id: number;
134
137
  }>, "many">>;
138
+ uploads: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
135
139
  credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
136
140
  }, "strip", import("zod").ZodTypeAny, {
137
141
  operation: "update_ticket";
@@ -139,21 +143,22 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
139
143
  ticket_id: string;
140
144
  status?: "pending" | "open" | "closed" | "new" | "hold" | "solved" | undefined;
141
145
  credentials?: Partial<Record<CredentialType, string>> | undefined;
142
- tags?: string[] | undefined;
143
146
  priority?: "low" | "high" | "urgent" | "normal" | undefined;
147
+ tags?: string[] | undefined;
144
148
  comment?: string | undefined;
145
149
  custom_fields?: {
146
150
  value: string | number | boolean | string[] | null;
147
151
  id: number;
148
152
  }[] | undefined;
149
153
  assignee_id?: number | undefined;
154
+ uploads?: string[] | undefined;
150
155
  }, {
151
156
  operation: "update_ticket";
152
157
  ticket_id: string;
153
158
  status?: "pending" | "open" | "closed" | "new" | "hold" | "solved" | undefined;
154
159
  credentials?: Partial<Record<CredentialType, string>> | undefined;
155
- tags?: string[] | undefined;
156
160
  priority?: "low" | "high" | "urgent" | "normal" | undefined;
161
+ tags?: string[] | undefined;
157
162
  public?: boolean | undefined;
158
163
  comment?: string | undefined;
159
164
  custom_fields?: {
@@ -161,6 +166,7 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
161
166
  id: number;
162
167
  }[] | undefined;
163
168
  assignee_id?: number | undefined;
169
+ uploads?: string[] | undefined;
164
170
  }>, import("zod").ZodObject<{
165
171
  operation: import("zod").ZodLiteral<"list_ticket_comments">;
166
172
  ticket_id: import("zod").ZodString;
@@ -588,6 +594,24 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
588
594
  page?: number | undefined;
589
595
  per_page?: number | undefined;
590
596
  active?: boolean | undefined;
597
+ }>, import("zod").ZodObject<{
598
+ operation: import("zod").ZodLiteral<"upload_attachment">;
599
+ filename: import("zod").ZodString;
600
+ content: import("zod").ZodString;
601
+ content_type: import("zod").ZodOptional<import("zod").ZodString>;
602
+ credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
603
+ }, "strip", import("zod").ZodTypeAny, {
604
+ content: string;
605
+ operation: "upload_attachment";
606
+ filename: string;
607
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
608
+ content_type?: string | undefined;
609
+ }, {
610
+ content: string;
611
+ operation: "upload_attachment";
612
+ filename: string;
613
+ credentials?: Partial<Record<CredentialType, string>> | undefined;
614
+ content_type?: string | undefined;
591
615
  }>]>;
592
616
  static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
593
617
  operation: import("zod").ZodLiteral<"list_tickets">;
@@ -620,8 +644,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
620
644
  type?: string | null | undefined;
621
645
  description?: string | undefined;
622
646
  status?: string | undefined;
623
- tags?: string[] | undefined;
624
647
  priority?: string | null | undefined;
648
+ tags?: string[] | undefined;
625
649
  subject?: string | undefined;
626
650
  created_at?: string | undefined;
627
651
  updated_at?: string | undefined;
@@ -637,8 +661,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
637
661
  type?: string | null | undefined;
638
662
  description?: string | undefined;
639
663
  status?: string | undefined;
640
- tags?: string[] | undefined;
641
664
  priority?: string | null | undefined;
665
+ tags?: string[] | undefined;
642
666
  subject?: string | undefined;
643
667
  created_at?: string | undefined;
644
668
  updated_at?: string | undefined;
@@ -663,8 +687,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
663
687
  type?: string | null | undefined;
664
688
  description?: string | undefined;
665
689
  status?: string | undefined;
666
- tags?: string[] | undefined;
667
690
  priority?: string | null | undefined;
691
+ tags?: string[] | undefined;
668
692
  subject?: string | undefined;
669
693
  created_at?: string | undefined;
670
694
  updated_at?: string | undefined;
@@ -687,8 +711,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
687
711
  type?: string | null | undefined;
688
712
  description?: string | undefined;
689
713
  status?: string | undefined;
690
- tags?: string[] | undefined;
691
714
  priority?: string | null | undefined;
715
+ tags?: string[] | undefined;
692
716
  subject?: string | undefined;
693
717
  created_at?: string | undefined;
694
718
  updated_at?: string | undefined;
@@ -732,8 +756,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
732
756
  type?: string | null | undefined;
733
757
  description?: string | undefined;
734
758
  status?: string | undefined;
735
- tags?: string[] | undefined;
736
759
  priority?: string | null | undefined;
760
+ tags?: string[] | undefined;
737
761
  subject?: string | undefined;
738
762
  created_at?: string | undefined;
739
763
  updated_at?: string | undefined;
@@ -749,8 +773,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
749
773
  type?: string | null | undefined;
750
774
  description?: string | undefined;
751
775
  status?: string | undefined;
752
- tags?: string[] | undefined;
753
776
  priority?: string | null | undefined;
777
+ tags?: string[] | undefined;
754
778
  subject?: string | undefined;
755
779
  created_at?: string | undefined;
756
780
  updated_at?: string | undefined;
@@ -772,8 +796,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
772
796
  type?: string | null | undefined;
773
797
  description?: string | undefined;
774
798
  status?: string | undefined;
775
- tags?: string[] | undefined;
776
799
  priority?: string | null | undefined;
800
+ tags?: string[] | undefined;
777
801
  subject?: string | undefined;
778
802
  created_at?: string | undefined;
779
803
  updated_at?: string | undefined;
@@ -794,8 +818,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
794
818
  type?: string | null | undefined;
795
819
  description?: string | undefined;
796
820
  status?: string | undefined;
797
- tags?: string[] | undefined;
798
821
  priority?: string | null | undefined;
822
+ tags?: string[] | undefined;
799
823
  subject?: string | undefined;
800
824
  created_at?: string | undefined;
801
825
  updated_at?: string | undefined;
@@ -838,8 +862,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
838
862
  type?: string | null | undefined;
839
863
  description?: string | undefined;
840
864
  status?: string | undefined;
841
- tags?: string[] | undefined;
842
865
  priority?: string | null | undefined;
866
+ tags?: string[] | undefined;
843
867
  subject?: string | undefined;
844
868
  created_at?: string | undefined;
845
869
  updated_at?: string | undefined;
@@ -855,8 +879,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
855
879
  type?: string | null | undefined;
856
880
  description?: string | undefined;
857
881
  status?: string | undefined;
858
- tags?: string[] | undefined;
859
882
  priority?: string | null | undefined;
883
+ tags?: string[] | undefined;
860
884
  subject?: string | undefined;
861
885
  created_at?: string | undefined;
862
886
  updated_at?: string | undefined;
@@ -878,8 +902,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
878
902
  type?: string | null | undefined;
879
903
  description?: string | undefined;
880
904
  status?: string | undefined;
881
- tags?: string[] | undefined;
882
905
  priority?: string | null | undefined;
906
+ tags?: string[] | undefined;
883
907
  subject?: string | undefined;
884
908
  created_at?: string | undefined;
885
909
  updated_at?: string | undefined;
@@ -900,8 +924,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
900
924
  type?: string | null | undefined;
901
925
  description?: string | undefined;
902
926
  status?: string | undefined;
903
- tags?: string[] | undefined;
904
927
  priority?: string | null | undefined;
928
+ tags?: string[] | undefined;
905
929
  subject?: string | undefined;
906
930
  created_at?: string | undefined;
907
931
  updated_at?: string | undefined;
@@ -944,8 +968,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
944
968
  type?: string | null | undefined;
945
969
  description?: string | undefined;
946
970
  status?: string | undefined;
947
- tags?: string[] | undefined;
948
971
  priority?: string | null | undefined;
972
+ tags?: string[] | undefined;
949
973
  subject?: string | undefined;
950
974
  created_at?: string | undefined;
951
975
  updated_at?: string | undefined;
@@ -961,8 +985,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
961
985
  type?: string | null | undefined;
962
986
  description?: string | undefined;
963
987
  status?: string | undefined;
964
- tags?: string[] | undefined;
965
988
  priority?: string | null | undefined;
989
+ tags?: string[] | undefined;
966
990
  subject?: string | undefined;
967
991
  created_at?: string | undefined;
968
992
  updated_at?: string | undefined;
@@ -984,8 +1008,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
984
1008
  type?: string | null | undefined;
985
1009
  description?: string | undefined;
986
1010
  status?: string | undefined;
987
- tags?: string[] | undefined;
988
1011
  priority?: string | null | undefined;
1012
+ tags?: string[] | undefined;
989
1013
  subject?: string | undefined;
990
1014
  created_at?: string | undefined;
991
1015
  updated_at?: string | undefined;
@@ -1006,8 +1030,8 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
1006
1030
  type?: string | null | undefined;
1007
1031
  description?: string | undefined;
1008
1032
  status?: string | undefined;
1009
- tags?: string[] | undefined;
1010
1033
  priority?: string | null | undefined;
1034
+ tags?: string[] | undefined;
1011
1035
  subject?: string | undefined;
1012
1036
  created_at?: string | undefined;
1013
1037
  updated_at?: string | undefined;
@@ -1028,9 +1052,35 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
1028
1052
  html_body: import("zod").ZodOptional<import("zod").ZodString>;
1029
1053
  public: import("zod").ZodOptional<import("zod").ZodBoolean>;
1030
1054
  author_id: import("zod").ZodOptional<import("zod").ZodNumber>;
1055
+ attachments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
1056
+ id: import("zod").ZodNumber;
1057
+ file_name: import("zod").ZodString;
1058
+ content_url: import("zod").ZodString;
1059
+ content_type: import("zod").ZodString;
1060
+ size: import("zod").ZodNumber;
1061
+ }, "strip", import("zod").ZodTypeAny, {
1062
+ id: number;
1063
+ size: number;
1064
+ file_name: string;
1065
+ content_type: string;
1066
+ content_url: string;
1067
+ }, {
1068
+ id: number;
1069
+ size: number;
1070
+ file_name: string;
1071
+ content_type: string;
1072
+ content_url: string;
1073
+ }>, "many">>;
1031
1074
  created_at: import("zod").ZodOptional<import("zod").ZodString>;
1032
1075
  }, "strip", import("zod").ZodTypeAny, {
1033
1076
  id: number;
1077
+ attachments?: {
1078
+ id: number;
1079
+ size: number;
1080
+ file_name: string;
1081
+ content_type: string;
1082
+ content_url: string;
1083
+ }[] | undefined;
1034
1084
  public?: boolean | undefined;
1035
1085
  body?: string | undefined;
1036
1086
  created_at?: string | undefined;
@@ -1038,6 +1088,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
1038
1088
  author_id?: number | undefined;
1039
1089
  }, {
1040
1090
  id: number;
1091
+ attachments?: {
1092
+ id: number;
1093
+ size: number;
1094
+ file_name: string;
1095
+ content_type: string;
1096
+ content_url: string;
1097
+ }[] | undefined;
1041
1098
  public?: boolean | undefined;
1042
1099
  body?: string | undefined;
1043
1100
  created_at?: string | undefined;
@@ -1054,6 +1111,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
1054
1111
  count?: number | undefined;
1055
1112
  comments?: {
1056
1113
  id: number;
1114
+ attachments?: {
1115
+ id: number;
1116
+ size: number;
1117
+ file_name: string;
1118
+ content_type: string;
1119
+ content_url: string;
1120
+ }[] | undefined;
1057
1121
  public?: boolean | undefined;
1058
1122
  body?: string | undefined;
1059
1123
  created_at?: string | undefined;
@@ -1068,6 +1132,13 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
1068
1132
  count?: number | undefined;
1069
1133
  comments?: {
1070
1134
  id: number;
1135
+ attachments?: {
1136
+ id: number;
1137
+ size: number;
1138
+ file_name: string;
1139
+ content_type: string;
1140
+ content_url: string;
1141
+ }[] | undefined;
1071
1142
  public?: boolean | undefined;
1072
1143
  body?: string | undefined;
1073
1144
  created_at?: string | undefined;
@@ -2237,6 +2308,78 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
2237
2308
  ids?: number[] | undefined;
2238
2309
  } | null | undefined;
2239
2310
  }[] | undefined;
2311
+ }>, import("zod").ZodObject<{
2312
+ operation: import("zod").ZodLiteral<"upload_attachment">;
2313
+ success: import("zod").ZodBoolean;
2314
+ upload: import("zod").ZodOptional<import("zod").ZodObject<{
2315
+ token: import("zod").ZodString;
2316
+ attachment: import("zod").ZodObject<{
2317
+ id: import("zod").ZodNumber;
2318
+ file_name: import("zod").ZodString;
2319
+ content_url: import("zod").ZodString;
2320
+ size: import("zod").ZodNumber;
2321
+ content_type: import("zod").ZodString;
2322
+ }, "strip", import("zod").ZodTypeAny, {
2323
+ id: number;
2324
+ size: number;
2325
+ file_name: string;
2326
+ content_type: string;
2327
+ content_url: string;
2328
+ }, {
2329
+ id: number;
2330
+ size: number;
2331
+ file_name: string;
2332
+ content_type: string;
2333
+ content_url: string;
2334
+ }>;
2335
+ }, "strip", import("zod").ZodTypeAny, {
2336
+ token: string;
2337
+ attachment: {
2338
+ id: number;
2339
+ size: number;
2340
+ file_name: string;
2341
+ content_type: string;
2342
+ content_url: string;
2343
+ };
2344
+ }, {
2345
+ token: string;
2346
+ attachment: {
2347
+ id: number;
2348
+ size: number;
2349
+ file_name: string;
2350
+ content_type: string;
2351
+ content_url: string;
2352
+ };
2353
+ }>>;
2354
+ error: import("zod").ZodString;
2355
+ }, "strip", import("zod").ZodTypeAny, {
2356
+ error: string;
2357
+ success: boolean;
2358
+ operation: "upload_attachment";
2359
+ upload?: {
2360
+ token: string;
2361
+ attachment: {
2362
+ id: number;
2363
+ size: number;
2364
+ file_name: string;
2365
+ content_type: string;
2366
+ content_url: string;
2367
+ };
2368
+ } | undefined;
2369
+ }, {
2370
+ error: string;
2371
+ success: boolean;
2372
+ operation: "upload_attachment";
2373
+ upload?: {
2374
+ token: string;
2375
+ attachment: {
2376
+ id: number;
2377
+ size: number;
2378
+ file_name: string;
2379
+ content_type: string;
2380
+ content_url: string;
2381
+ };
2382
+ } | undefined;
2240
2383
  }>]>;
2241
2384
  static readonly shortDescription = "Zendesk integration for tickets, comments, users, and help center";
2242
2385
  static readonly longDescription = "\n Zendesk customer support integration for ticket management and help center.\n\n Features:\n - Create, retrieve, update, and list support tickets\n - List ticket comments and add replies (public or internal notes)\n - List and retrieve users and organizations\n - Unified search across tickets, users, and organizations\n - Help Center article listing and retrieval\n\n Use cases:\n - Automated ticket triage and response\n - Customer support workflow automation\n - Help center content management\n - Support analytics and reporting\n\n Security Features:\n - OAuth 2.0 authentication with Zendesk\n - Subdomain-scoped API access\n - Secure credential handling and validation\n ";
@@ -2276,6 +2419,9 @@ export declare class ZendeskBubble<T extends ZendeskParamsInput = ZendeskParamsI
2276
2419
  private updateMacro;
2277
2420
  private deleteMacro;
2278
2421
  private searchMacros;
2422
+ private static readonly MIME_TYPES;
2423
+ private inferContentType;
2424
+ private uploadAttachment;
2279
2425
  private mapTicket;
2280
2426
  private mapComment;
2281
2427
  private mapUser;
@@ -1 +1 @@
1
- {"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CACjD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,aAAa,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACtD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,aAAa;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IACnD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uEACsC;IACtE,MAAM,CAAC,QAAQ,CAAC,eAAe,guBAoB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAa;gBAGhC,MAAM,GAAE,CAEF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;YAKlC,qBAAqB;cA2CnB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YAuKnD,WAAW;YAyCX,SAAS;YAeT,YAAY;YAwCZ,YAAY;YA+BZ,gBAAgB;YA8BhB,iBAAiB;YA2CjB,iBAAiB;YAiBjB,kBAAkB;YAwBlB,SAAS;YAuCT,OAAO;YAiBP,iBAAiB;YAqCjB,eAAe;YAiBf,MAAM;YA2BN,YAAY;YAmDZ,UAAU;YAmBV,UAAU;YAoCV,QAAQ;YAeR,UAAU;YA0BV,WAAW;YAyBX,WAAW;YAyBX,WAAW;YAeX,YAAY;IA4B1B,OAAO,CAAC,SAAS,CAcd;IAEH,OAAO,CAAC,UAAU,CAOf;IAEH,OAAO,CAAC,OAAO,CAQZ;IAEH,OAAO,CAAC,eAAe,CAMpB;IAEH,OAAO,CAAC,QAAQ,CASb;IAEH,OAAO,CAAC,UAAU,CAUf;CACJ"}
1
+ {"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAIL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa,CACxB,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CACjD,SAAQ,aAAa,CACrB,CAAC,EACD,OAAO,CAAC,aAAa,EAAE;IAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC,CACtD;IACC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAU;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAG,OAAO,CAAU;IAC5C,MAAM,CAAC,QAAQ,CAAC,UAAU,aAAa;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IAC7C,MAAM,CAAC,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAAuB;IACnD,MAAM,CAAC,QAAQ,CAAC,gBAAgB,uEACsC;IACtE,MAAM,CAAC,QAAQ,CAAC,eAAe,guBAoB7B;IACF,MAAM,CAAC,QAAQ,CAAC,KAAK,aAAa;gBAGhC,MAAM,GAAE,CAEF,EACN,OAAO,CAAC,EAAE,aAAa;IAKZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAsB/C;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAqCxB,SAAS,CAAC,gBAAgB,IAAI,MAAM,GAAG,SAAS;YAKlC,qBAAqB;cAmDnB,aAAa,CAC3B,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE;QAAE,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;KAAE,CAAC,CAAC;YA8KnD,WAAW;YAyCX,SAAS;YAeT,YAAY;YA2CZ,YAAY;YAsCZ,gBAAgB;YA8BhB,iBAAiB;YA2CjB,iBAAiB;YAiBjB,kBAAkB;YAwBlB,SAAS;YAuCT,OAAO;YAiBP,iBAAiB;YAqCjB,eAAe;YAiBf,MAAM;YA2BN,YAAY;YAmDZ,UAAU;YAmBV,UAAU;YAoCV,QAAQ;YAeR,UAAU;YA0BV,WAAW;YAyBX,WAAW;YAyBX,WAAW;YAeX,YAAY;IA0B1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAwBhC;IAEF,OAAO,CAAC,gBAAgB;YASV,gBAAgB;IAkD9B,OAAO,CAAC,SAAS,CAcd;IAEH,OAAO,CAAC,UAAU,CAcf;IAEH,OAAO,CAAC,OAAO,CAQZ;IAEH,OAAO,CAAC,eAAe,CAMpB;IAEH,OAAO,CAAC,QAAQ,CASb;IAEH,OAAO,CAAC,UAAU,CAUf;CACJ"}
@@ -103,7 +103,7 @@ export class ZendeskBubble extends ServiceBubble {
103
103
  const creds = this.parseCredentials();
104
104
  return creds?.accessToken;
105
105
  }
106
- async makeZendeskApiRequest(endpoint, method = 'GET', body) {
106
+ async makeZendeskApiRequest(endpoint, method = 'GET', body, options) {
107
107
  const creds = this.parseCredentials();
108
108
  if (!creds) {
109
109
  throw new Error('Invalid Zendesk credentials. Expected base64-encoded JSON with { accessToken, subdomain }.');
@@ -111,17 +111,23 @@ export class ZendeskBubble extends ServiceBubble {
111
111
  const url = endpoint.startsWith('https://')
112
112
  ? endpoint
113
113
  : `https://${creds.subdomain}.zendesk.com${endpoint}`;
114
- const requestInit = {
115
- method,
116
- headers: {
117
- Authorization: `Bearer ${creds.accessToken}`,
118
- 'Content-Type': 'application/json',
119
- Accept: 'application/json',
120
- },
114
+ const headers = {
115
+ Authorization: `Bearer ${creds.accessToken}`,
116
+ Accept: 'application/json',
121
117
  };
122
- if (body && method !== 'GET') {
123
- requestInit.body = JSON.stringify(body);
118
+ const requestInit = { method };
119
+ if (options?.binary) {
120
+ headers['Content-Type'] =
121
+ options.contentType ?? 'application/octet-stream';
122
+ requestInit.body = options.binary;
124
123
  }
124
+ else {
125
+ headers['Content-Type'] = 'application/json';
126
+ if (body && method !== 'GET') {
127
+ requestInit.body = JSON.stringify(body);
128
+ }
129
+ }
130
+ requestInit.headers = headers;
125
131
  const response = await fetch(url, requestInit);
126
132
  if (!response.ok) {
127
133
  const errorText = await response.text();
@@ -184,6 +190,8 @@ export class ZendeskBubble extends ServiceBubble {
184
190
  return await this.deleteMacro(parsedParams);
185
191
  case 'search_macros':
186
192
  return await this.searchMacros(parsedParams);
193
+ case 'upload_attachment':
194
+ return await this.uploadAttachment(parsedParams);
187
195
  default:
188
196
  throw new Error(`Unsupported operation: ${operation}`);
189
197
  }
@@ -248,7 +256,10 @@ export class ZendeskBubble extends ServiceBubble {
248
256
  async createTicket(params) {
249
257
  const ticketBody = {
250
258
  subject: params.subject,
251
- comment: { body: params.body },
259
+ comment: {
260
+ body: params.body,
261
+ ...(params.uploads?.length ? { uploads: params.uploads } : {}),
262
+ },
252
263
  };
253
264
  if (params.requester_email) {
254
265
  const requester = {
@@ -287,6 +298,14 @@ export class ZendeskBubble extends ServiceBubble {
287
298
  ticketBody.comment = {
288
299
  body: params.comment,
289
300
  public: params.public ?? true,
301
+ ...(params.uploads?.length ? { uploads: params.uploads } : {}),
302
+ };
303
+ }
304
+ else if (params.uploads?.length) {
305
+ ticketBody.comment = {
306
+ body: '',
307
+ public: params.public ?? true,
308
+ uploads: params.uploads,
290
309
  };
291
310
  }
292
311
  if (params.status)
@@ -702,6 +721,74 @@ export class ZendeskBubble extends ServiceBubble {
702
721
  error: '',
703
722
  };
704
723
  }
724
+ static MIME_TYPES = {
725
+ pdf: 'application/pdf',
726
+ doc: 'application/msword',
727
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
728
+ xls: 'application/vnd.ms-excel',
729
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
730
+ ppt: 'application/vnd.ms-powerpoint',
731
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
732
+ csv: 'text/csv',
733
+ txt: 'text/plain',
734
+ html: 'text/html',
735
+ htm: 'text/html',
736
+ json: 'application/json',
737
+ xml: 'application/xml',
738
+ zip: 'application/zip',
739
+ png: 'image/png',
740
+ jpg: 'image/jpeg',
741
+ jpeg: 'image/jpeg',
742
+ gif: 'image/gif',
743
+ svg: 'image/svg+xml',
744
+ webp: 'image/webp',
745
+ mp4: 'video/mp4',
746
+ mp3: 'audio/mpeg',
747
+ wav: 'audio/wav',
748
+ };
749
+ inferContentType(filename, explicit) {
750
+ if (explicit)
751
+ return explicit;
752
+ const ext = filename.split('.').pop()?.toLowerCase();
753
+ if (ext && ext in ZendeskBubble.MIME_TYPES) {
754
+ return ZendeskBubble.MIME_TYPES[ext];
755
+ }
756
+ return 'application/octet-stream';
757
+ }
758
+ async uploadAttachment(params) {
759
+ const { filename, content, content_type } = params;
760
+ let fileBuffer = Buffer.from(content, 'base64');
761
+ const resolvedContentType = this.inferContentType(filename, content_type);
762
+ // Strip UTF-8 BOM if present — Zendesk rejects text files with BOM
763
+ // as "file type and file extension do not match"
764
+ if (resolvedContentType.startsWith('text/') &&
765
+ fileBuffer.length >= 3 &&
766
+ fileBuffer[0] === 0xef &&
767
+ fileBuffer[1] === 0xbb &&
768
+ fileBuffer[2] === 0xbf) {
769
+ fileBuffer = fileBuffer.subarray(3);
770
+ }
771
+ const response = await this.makeZendeskApiRequest(`/api/v2/uploads.json?filename=${encodeURIComponent(filename)}`, 'POST', undefined, {
772
+ binary: fileBuffer,
773
+ contentType: resolvedContentType,
774
+ });
775
+ const upload = response.upload;
776
+ return {
777
+ operation: 'upload_attachment',
778
+ success: true,
779
+ upload: {
780
+ token: upload.token,
781
+ attachment: {
782
+ id: upload.attachment.id,
783
+ file_name: upload.attachment.file_name,
784
+ content_url: upload.attachment.content_url,
785
+ size: upload.attachment.size,
786
+ content_type: upload.attachment.content_type,
787
+ },
788
+ },
789
+ error: '',
790
+ };
791
+ }
705
792
  // ---- Mappers ----
706
793
  mapTicket = (t) => ({
707
794
  id: t.id,
@@ -724,6 +811,13 @@ export class ZendeskBubble extends ServiceBubble {
724
811
  html_body: c.html_body,
725
812
  public: c.public,
726
813
  author_id: c.author_id,
814
+ attachments: (c.attachments || []).map((a) => ({
815
+ id: a.id,
816
+ file_name: a.file_name,
817
+ content_url: a.content_url,
818
+ content_type: a.content_type,
819
+ size: a.size,
820
+ })),
727
821
  created_at: c.created_at,
728
822
  });
729
823
  mapUser = (u) => ({