@pakoor/n8n-nodes-instagram 0.1.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.
Files changed (51) hide show
  1. package/README.md +271 -0
  2. package/dist/__tests__/helpers/index.d.ts +2 -0
  3. package/dist/__tests__/helpers/index.d.ts.map +1 -0
  4. package/dist/__tests__/helpers/index.js +18 -0
  5. package/dist/__tests__/helpers/index.js.map +1 -0
  6. package/dist/__tests__/helpers/testUtils.d.ts +104 -0
  7. package/dist/__tests__/helpers/testUtils.d.ts.map +1 -0
  8. package/dist/__tests__/helpers/testUtils.js +175 -0
  9. package/dist/__tests__/helpers/testUtils.js.map +1 -0
  10. package/dist/credentials/InstagramAccessTokenApi.credentials.d.ts +19 -0
  11. package/dist/credentials/InstagramAccessTokenApi.credentials.d.ts.map +1 -0
  12. package/dist/credentials/InstagramAccessTokenApi.credentials.js +130 -0
  13. package/dist/credentials/InstagramAccessTokenApi.credentials.js.map +1 -0
  14. package/dist/credentials/InstagramOAuth2Api.credentials.d.ts +20 -0
  15. package/dist/credentials/InstagramOAuth2Api.credentials.d.ts.map +1 -0
  16. package/dist/credentials/InstagramOAuth2Api.credentials.js +177 -0
  17. package/dist/credentials/InstagramOAuth2Api.credentials.js.map +1 -0
  18. package/dist/index.d.ts +5 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +23 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/nodes/Instagram/Instagram.node.d.ts +10 -0
  23. package/dist/nodes/Instagram/Instagram.node.d.ts.map +1 -0
  24. package/dist/nodes/Instagram/Instagram.node.js +1152 -0
  25. package/dist/nodes/Instagram/Instagram.node.js.map +1 -0
  26. package/dist/nodes/Instagram/InstagramTrigger.node.d.ts +61 -0
  27. package/dist/nodes/Instagram/InstagramTrigger.node.d.ts.map +1 -0
  28. package/dist/nodes/Instagram/InstagramTrigger.node.js +315 -0
  29. package/dist/nodes/Instagram/InstagramTrigger.node.js.map +1 -0
  30. package/dist/nodes/Instagram/instagram.svg +15 -0
  31. package/dist/services/InstagramApiClient.d.ts +261 -0
  32. package/dist/services/InstagramApiClient.d.ts.map +1 -0
  33. package/dist/services/InstagramApiClient.js +548 -0
  34. package/dist/services/InstagramApiClient.js.map +1 -0
  35. package/dist/services/TokenManager.d.ts +73 -0
  36. package/dist/services/TokenManager.d.ts.map +1 -0
  37. package/dist/services/TokenManager.js +150 -0
  38. package/dist/services/TokenManager.js.map +1 -0
  39. package/dist/services/ValidationUtils.d.ts +44 -0
  40. package/dist/services/ValidationUtils.d.ts.map +1 -0
  41. package/dist/services/ValidationUtils.js +203 -0
  42. package/dist/services/ValidationUtils.js.map +1 -0
  43. package/dist/services/WebhookHandler.d.ts +206 -0
  44. package/dist/services/WebhookHandler.d.ts.map +1 -0
  45. package/dist/services/WebhookHandler.js +261 -0
  46. package/dist/services/WebhookHandler.js.map +1 -0
  47. package/dist/services/index.d.ts +5 -0
  48. package/dist/services/index.d.ts.map +1 -0
  49. package/dist/services/index.js +21 -0
  50. package/dist/services/index.js.map +1 -0
  51. package/package.json +69 -0
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Instagram API Client
3
+ * Handles all Instagram Graph API interactions
4
+ */
5
+ export type MediaType = 'image' | 'audio' | 'video';
6
+ export type ContainerType = 'IMAGE' | 'VIDEO' | 'REELS' | 'STORIES';
7
+ export interface IMessageResponse {
8
+ recipient_id: string;
9
+ message_id: string;
10
+ }
11
+ export interface IButton {
12
+ type: 'web_url' | 'postback';
13
+ title: string;
14
+ url?: string;
15
+ payload?: string;
16
+ }
17
+ export interface ICarouselElement {
18
+ title: string;
19
+ subtitle?: string;
20
+ image_url?: string;
21
+ buttons?: IButton[];
22
+ }
23
+ export interface IQuickReply {
24
+ content_type: 'text';
25
+ title: string;
26
+ payload: string;
27
+ image_url?: string;
28
+ }
29
+ export interface IUserProfile {
30
+ id: string;
31
+ name?: string;
32
+ username?: string;
33
+ profile_pic?: string;
34
+ }
35
+ export interface IBusinessAccount {
36
+ id: string;
37
+ username: string;
38
+ name?: string;
39
+ profile_picture_url?: string;
40
+ followers_count?: number;
41
+ media_count?: number;
42
+ }
43
+ export interface IPaginationOptions {
44
+ limit?: number;
45
+ after?: string;
46
+ before?: string;
47
+ }
48
+ export interface IPaging {
49
+ cursors?: {
50
+ before: string;
51
+ after: string;
52
+ };
53
+ next?: string;
54
+ previous?: string;
55
+ }
56
+ export interface IComment {
57
+ id: string;
58
+ text: string;
59
+ timestamp: string;
60
+ from: {
61
+ id: string;
62
+ username: string;
63
+ };
64
+ like_count?: number;
65
+ hidden?: boolean;
66
+ }
67
+ export interface ICommentsResponse {
68
+ data: IComment[];
69
+ paging?: IPaging;
70
+ }
71
+ export interface IMediaContainer {
72
+ id: string;
73
+ status?: 'EXPIRED' | 'ERROR' | 'FINISHED' | 'IN_PROGRESS' | 'PUBLISHED';
74
+ status_code?: string;
75
+ }
76
+ export interface IMediaDetails {
77
+ id: string;
78
+ media_type: 'IMAGE' | 'VIDEO' | 'CAROUSEL_ALBUM' | 'REELS';
79
+ media_url?: string;
80
+ permalink?: string;
81
+ caption?: string;
82
+ timestamp: string;
83
+ like_count?: number;
84
+ comments_count?: number;
85
+ }
86
+ export interface IUserTag {
87
+ username: string;
88
+ x: number;
89
+ y: number;
90
+ }
91
+ export interface IMediaOptions {
92
+ caption?: string;
93
+ location_id?: string;
94
+ user_tags?: IUserTag[];
95
+ collaborators?: string[];
96
+ thumb_offset?: number;
97
+ audio_name?: string;
98
+ }
99
+ export interface IInstagramError {
100
+ code: number;
101
+ message: string;
102
+ subcode?: number;
103
+ fbtrace_id?: string;
104
+ type?: string;
105
+ suggestion?: string;
106
+ retryable?: boolean;
107
+ retryAfter?: number;
108
+ }
109
+ /** Raw API error response structure */
110
+ interface IApiErrorResponse {
111
+ error: {
112
+ message: string;
113
+ type?: string;
114
+ code: number;
115
+ error_subcode?: number;
116
+ fbtrace_id?: string;
117
+ };
118
+ }
119
+ export declare class InstagramApiError extends Error {
120
+ readonly code: number;
121
+ readonly subcode?: number;
122
+ readonly fbtrace_id?: string;
123
+ readonly type?: string;
124
+ readonly suggestion?: string;
125
+ readonly retryable: boolean;
126
+ readonly retryAfter?: number;
127
+ constructor(error: IInstagramError);
128
+ toJSON(): IInstagramError;
129
+ }
130
+ export declare class InstagramApiClient {
131
+ protected readonly baseUrl = "https://graph.facebook.com/v18.0";
132
+ protected readonly accessToken: string;
133
+ protected readonly accountId: string;
134
+ constructor(accessToken: string, accountId: string);
135
+ /**
136
+ * Parse API error response and return enhanced error object
137
+ * Requirements: 14.1, 14.2, 14.3
138
+ */
139
+ protected parseErrorResponse(response: IApiErrorResponse): IInstagramError;
140
+ /**
141
+ * Make authenticated GET request to Instagram Graph API
142
+ */
143
+ protected get<T>(endpoint: string, params?: Record<string, string>): Promise<T>;
144
+ /**
145
+ * Make authenticated POST request to Instagram Graph API
146
+ */
147
+ protected post<T>(endpoint: string, body?: Record<string, unknown>): Promise<T>;
148
+ /**
149
+ * Make authenticated DELETE request to Instagram Graph API
150
+ */
151
+ protected delete<T>(endpoint: string): Promise<T>;
152
+ /**
153
+ * Send a text message to a user
154
+ * Requirements: 3.1, 3.2, 3.4
155
+ */
156
+ sendTextMessage(recipientId: string, text: string): Promise<IMessageResponse>;
157
+ /**
158
+ * Send a media message (image, audio, video)
159
+ * Requirements: 4.1, 4.2, 4.3, 4.4, 4.5
160
+ */
161
+ sendMediaMessage(recipientId: string, mediaType: MediaType, mediaUrl: string): Promise<IMessageResponse>;
162
+ /**
163
+ * Send a button template message
164
+ * Requirements: 5.1, 5.2, 5.6
165
+ */
166
+ sendButtonTemplate(recipientId: string, text: string, buttons: IButton[]): Promise<IMessageResponse>;
167
+ /**
168
+ * Send a generic template (carousel) message
169
+ * Requirements: 5.3, 5.6
170
+ */
171
+ sendGenericTemplate(recipientId: string, elements: ICarouselElement[]): Promise<IMessageResponse>;
172
+ /**
173
+ * Send quick replies
174
+ * Requirements: 5.4, 5.5, 5.6
175
+ */
176
+ sendQuickReplies(recipientId: string, text: string, quickReplies: IQuickReply[]): Promise<IMessageResponse>;
177
+ /**
178
+ * Get user profile by IGSID
179
+ * Requirements: 6.1, 6.3
180
+ */
181
+ getUserProfile(userId: string): Promise<IUserProfile>;
182
+ /**
183
+ * Get authenticated account profile
184
+ * Requirements: 6.2, 6.3
185
+ */
186
+ getMyProfile(): Promise<IBusinessAccount>;
187
+ /**
188
+ * Get comments on a media with pagination
189
+ * Requirements: 7.1
190
+ */
191
+ getComments(mediaId: string, options?: IPaginationOptions): Promise<ICommentsResponse>;
192
+ /**
193
+ * Get replies to a comment
194
+ * Requirements: 7.2
195
+ */
196
+ getReplies(commentId: string): Promise<ICommentsResponse>;
197
+ /**
198
+ * Reply to a comment publicly
199
+ * Requirements: 7.3
200
+ */
201
+ replyToComment(commentId: string, message: string): Promise<IComment>;
202
+ /**
203
+ * Send private reply to a commenter (DM)
204
+ * Requirements: 7.4, 7.5
205
+ */
206
+ sendPrivateReply(commentId: string, message: string): Promise<IMessageResponse>;
207
+ /**
208
+ * Delete a comment
209
+ * Requirements: 7.6
210
+ */
211
+ deleteComment(commentId: string): Promise<{
212
+ success: boolean;
213
+ }>;
214
+ /**
215
+ * Hide or unhide a comment
216
+ * Requirements: 7.7
217
+ */
218
+ toggleCommentVisibility(commentId: string, hide: boolean): Promise<{
219
+ success: boolean;
220
+ hidden: boolean;
221
+ }>;
222
+ /**
223
+ * Create a media container for single posts, stories, or reels
224
+ * Requirements: 8.1, 8.2, 10.1, 10.2, 10.4
225
+ */
226
+ createMediaContainer(mediaType: ContainerType, mediaUrl: string, options?: IMediaOptions): Promise<IMediaContainer>;
227
+ /**
228
+ * Create a carousel container from child media containers
229
+ * Requirements: 9.4, 9.5
230
+ */
231
+ createCarouselContainer(childrenIds: string[], caption?: string): Promise<IMediaContainer>;
232
+ /**
233
+ * Publish a media container
234
+ * Requirements: 8.3, 9.5, 10.5
235
+ */
236
+ publishMedia(containerId: string): Promise<{
237
+ id: string;
238
+ }>;
239
+ /**
240
+ * List media with pagination
241
+ * Requirements: 11.1
242
+ */
243
+ listMedia(options?: IPaginationOptions): Promise<{
244
+ data: IMediaDetails[];
245
+ paging?: IPaging;
246
+ }>;
247
+ /**
248
+ * Get media details by ID
249
+ * Requirements: 11.2
250
+ */
251
+ getMedia(mediaId: string): Promise<IMediaDetails>;
252
+ /**
253
+ * Get carousel children
254
+ * Requirements: 11.3
255
+ */
256
+ getMediaChildren(mediaId: string): Promise<{
257
+ data: IMediaDetails[];
258
+ }>;
259
+ }
260
+ export {};
261
+ //# sourceMappingURL=InstagramApiClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstagramApiClient.d.ts","sourceRoot":"","sources":["../../src/services/InstagramApiClient.ts"],"names":[],"mappings":"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"}