n8n-nodes-nashir 0.13.3 → 0.13.4
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NashirInstagram.node.d.ts","sourceRoot":"","sources":["../../../nodes/NashirInstagram/NashirInstagram.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAItB,qBAAa,eAAgB,YAAW,SAAS;IAChD,WAAW,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"NashirInstagram.node.d.ts","sourceRoot":"","sources":["../../../nodes/NashirInstagram/NashirInstagram.node.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,MAAM,cAAc,CAAC;AAItB,qBAAa,eAAgB,YAAW,SAAS;IAChD,WAAW,EAAE,oBAAoB,CAkL/B;IAEF,OAAO;;wCAE6B,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;;MAIzF;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CA+FvE"}
|
|
@@ -59,13 +59,15 @@ class NashirInstagram {
|
|
|
59
59
|
displayName: 'Post Type',
|
|
60
60
|
name: 'postType',
|
|
61
61
|
type: 'options',
|
|
62
|
-
// Story
|
|
63
|
-
//
|
|
64
|
-
//
|
|
62
|
+
// Story + Carousel are both backed server-side now: post_type='story' → a
|
|
63
|
+
// real STORIES container; post_type='carousel' → the multi-step CAROUSEL
|
|
64
|
+
// flow (saas-starter publishInstagramCarousel on the shared images[] field).
|
|
65
|
+
// Carousel media is supplied as comma-separated URLs in the field below.
|
|
65
66
|
options: [
|
|
66
67
|
{ name: 'Feed Post', value: 'feed' },
|
|
67
68
|
{ name: 'Reel', value: 'reel' },
|
|
68
69
|
{ name: 'Story', value: 'story' },
|
|
70
|
+
{ name: 'Carousel', value: 'carousel' },
|
|
69
71
|
],
|
|
70
72
|
default: 'feed',
|
|
71
73
|
displayOptions: { show: { operation: ['publishPost', 'schedulePost'] } },
|
|
@@ -76,8 +78,21 @@ class NashirInstagram {
|
|
|
76
78
|
type: 'string',
|
|
77
79
|
default: 'data',
|
|
78
80
|
required: true,
|
|
79
|
-
description: 'Name of the binary property containing the media file (required for
|
|
80
|
-
|
|
81
|
+
description: 'Name of the binary property containing the media file (required for feed / reel / story). Carousel posts use the Carousel Image / Video URLs field instead.',
|
|
82
|
+
// Hidden for carousel — a carousel is supplied as comma-separated URLs,
|
|
83
|
+
// not a single binary, so the required binary field must not block it.
|
|
84
|
+
displayOptions: { show: { operation: ['publishPost', 'schedulePost'], postType: ['feed', 'reel', 'story'] } },
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
displayName: 'Carousel Image / Video URLs',
|
|
88
|
+
name: 'carousel_images',
|
|
89
|
+
type: 'string',
|
|
90
|
+
typeOptions: { rows: 3 },
|
|
91
|
+
default: '',
|
|
92
|
+
required: true,
|
|
93
|
+
description: 'Comma-separated public image/video URLs for the carousel (2-10 — Instagram caps carousels at 10). ' +
|
|
94
|
+
'Mixed photos and videos are allowed; order is the swipe order. URLs must be publicly reachable.',
|
|
95
|
+
displayOptions: { show: { operation: ['publishPost', 'schedulePost'], postType: ['carousel'] } },
|
|
81
96
|
},
|
|
82
97
|
// ── Thumbnail (optional, Reels / feed video posts only) ──────────────
|
|
83
98
|
{
|
|
@@ -173,25 +188,37 @@ class NashirInstagram {
|
|
|
173
188
|
const accountId = this.getNodeParameter('account', i);
|
|
174
189
|
const content = this.getNodeParameter('content', i);
|
|
175
190
|
const postType = this.getNodeParameter('postType', i);
|
|
176
|
-
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data');
|
|
177
|
-
const altText = this.getNodeParameter('altText', i, '');
|
|
178
|
-
const uploadedUrl = await (0, api_1.nashirUploadBinary)(this, i, binaryProp);
|
|
179
191
|
const body = {
|
|
180
192
|
content,
|
|
181
193
|
platforms: ['instagram'],
|
|
182
194
|
account_ids: [accountId],
|
|
183
195
|
post_type: postType,
|
|
184
|
-
image_url: uploadedUrl,
|
|
185
196
|
publish_now: operation === 'publishPost',
|
|
186
197
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
198
|
+
if (postType === 'carousel') {
|
|
199
|
+
// Carousel: comma-separated public URLs → the shared images[] array.
|
|
200
|
+
// No binary upload; mixed photo/video allowed; 2-10 items.
|
|
201
|
+
const urlsRaw = this.getNodeParameter('carousel_images', i, '');
|
|
202
|
+
const images = urlsRaw.split(',').map((u) => u.trim()).filter(Boolean);
|
|
203
|
+
if (images.length < 2) {
|
|
204
|
+
throw new Error('Instagram carousel needs at least 2 comma-separated image/video URLs.');
|
|
205
|
+
}
|
|
206
|
+
body.images = images;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
// feed / reel / story — single media via binary upload (unchanged).
|
|
210
|
+
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data');
|
|
211
|
+
const altText = this.getNodeParameter('altText', i, '');
|
|
212
|
+
body.image_url = await (0, api_1.nashirUploadBinary)(this, i, binaryProp);
|
|
213
|
+
// Optional Reels cover. Uploaded to nashir.ai storage; the server-side
|
|
214
|
+
// cron passes the resulting URL as `cover_url` on the IG REELS container.
|
|
215
|
+
const thumbnailProp = this.getNodeParameter('thumbnailBinaryPropertyName', i, '');
|
|
216
|
+
if (thumbnailProp) {
|
|
217
|
+
body.thumbnail_url = await (0, api_1.nashirUploadBinary)(this, i, thumbnailProp);
|
|
218
|
+
}
|
|
219
|
+
if (altText)
|
|
220
|
+
body.alt_text = altText;
|
|
192
221
|
}
|
|
193
|
-
if (altText)
|
|
194
|
-
body.alt_text = altText;
|
|
195
222
|
if (operation === 'schedulePost') {
|
|
196
223
|
body.scheduled_at = this.getNodeParameter('scheduledAt', i);
|
|
197
224
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NashirInstagram.node.js","sourceRoot":"","sources":["../../../nodes/NashirInstagram/NashirInstagram.node.ts"],"names":[],"mappings":";;;AAUA,uCAAmF;AAEnF,MAAa,eAAe;IAA5B;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8BAA8B;YACxC,WAAW,EAAE,oDAAoD;YACjE,QAAQ,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE;YACxD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE;wBAC9E,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE;wBACrE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;wBACtE,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE;wBACtE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;wBAC7D,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,EAAE;wBAC5E,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE;wBACjF,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE;wBACjF,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE;qBAC3E;oBACD,OAAO,EAAE,aAAa;iBACtB;gBAED;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,EAAE,iBAAiB,EAAE,uBAAuB,EAAE;oBAC3D,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,uCAAuC;oBACpD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,EAAE,EAAE;iBACxG;gBAED;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;oBACxB,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,qBAAqB;oBAClC,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,EAAE;iBACxE;gBAED;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,
|
|
1
|
+
{"version":3,"file":"NashirInstagram.node.js","sourceRoot":"","sources":["../../../nodes/NashirInstagram/NashirInstagram.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,13 +69,15 @@ export class NashirInstagram implements INodeType {
|
|
|
69
69
|
displayName: 'Post Type',
|
|
70
70
|
name: 'postType',
|
|
71
71
|
type: 'options',
|
|
72
|
-
// Story
|
|
73
|
-
//
|
|
74
|
-
//
|
|
72
|
+
// Story + Carousel are both backed server-side now: post_type='story' → a
|
|
73
|
+
// real STORIES container; post_type='carousel' → the multi-step CAROUSEL
|
|
74
|
+
// flow (saas-starter publishInstagramCarousel on the shared images[] field).
|
|
75
|
+
// Carousel media is supplied as comma-separated URLs in the field below.
|
|
75
76
|
options: [
|
|
76
77
|
{ name: 'Feed Post', value: 'feed' },
|
|
77
78
|
{ name: 'Reel', value: 'reel' },
|
|
78
79
|
{ name: 'Story', value: 'story' },
|
|
80
|
+
{ name: 'Carousel', value: 'carousel' },
|
|
79
81
|
],
|
|
80
82
|
default: 'feed',
|
|
81
83
|
displayOptions: { show: { operation: ['publishPost', 'schedulePost'] } },
|
|
@@ -87,8 +89,22 @@ export class NashirInstagram implements INodeType {
|
|
|
87
89
|
type: 'string',
|
|
88
90
|
default: 'data',
|
|
89
91
|
required: true,
|
|
90
|
-
description: 'Name of the binary property containing the media file (required for
|
|
91
|
-
|
|
92
|
+
description: 'Name of the binary property containing the media file (required for feed / reel / story). Carousel posts use the Carousel Image / Video URLs field instead.',
|
|
93
|
+
// Hidden for carousel — a carousel is supplied as comma-separated URLs,
|
|
94
|
+
// not a single binary, so the required binary field must not block it.
|
|
95
|
+
displayOptions: { show: { operation: ['publishPost', 'schedulePost'], postType: ['feed', 'reel', 'story'] } },
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
displayName: 'Carousel Image / Video URLs',
|
|
99
|
+
name: 'carousel_images',
|
|
100
|
+
type: 'string',
|
|
101
|
+
typeOptions: { rows: 3 },
|
|
102
|
+
default: '',
|
|
103
|
+
required: true,
|
|
104
|
+
description:
|
|
105
|
+
'Comma-separated public image/video URLs for the carousel (2-10 — Instagram caps carousels at 10). ' +
|
|
106
|
+
'Mixed photos and videos are allowed; order is the swipe order. URLs must be publicly reachable.',
|
|
107
|
+
displayOptions: { show: { operation: ['publishPost', 'schedulePost'], postType: ['carousel'] } },
|
|
92
108
|
},
|
|
93
109
|
|
|
94
110
|
// ── Thumbnail (optional, Reels / feed video posts only) ──────────────
|
|
@@ -196,28 +212,40 @@ export class NashirInstagram implements INodeType {
|
|
|
196
212
|
const accountId = this.getNodeParameter('account', i) as string;
|
|
197
213
|
const content = this.getNodeParameter('content', i) as string;
|
|
198
214
|
const postType = this.getNodeParameter('postType', i) as string;
|
|
199
|
-
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data') as string;
|
|
200
|
-
const altText = this.getNodeParameter('altText', i, '') as string;
|
|
201
|
-
|
|
202
|
-
const uploadedUrl = await nashirUploadBinary(this, i, binaryProp);
|
|
203
215
|
|
|
204
216
|
const body: IDataObject = {
|
|
205
217
|
content,
|
|
206
218
|
platforms: ['instagram'],
|
|
207
219
|
account_ids: [accountId],
|
|
208
220
|
post_type: postType,
|
|
209
|
-
image_url: uploadedUrl,
|
|
210
221
|
publish_now: operation === 'publishPost',
|
|
211
222
|
};
|
|
212
223
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
224
|
+
if (postType === 'carousel') {
|
|
225
|
+
// Carousel: comma-separated public URLs → the shared images[] array.
|
|
226
|
+
// No binary upload; mixed photo/video allowed; 2-10 items.
|
|
227
|
+
const urlsRaw = this.getNodeParameter('carousel_images', i, '') as string;
|
|
228
|
+
const images = urlsRaw.split(',').map((u) => u.trim()).filter(Boolean);
|
|
229
|
+
if (images.length < 2) {
|
|
230
|
+
throw new Error('Instagram carousel needs at least 2 comma-separated image/video URLs.');
|
|
231
|
+
}
|
|
232
|
+
body.images = images;
|
|
233
|
+
} else {
|
|
234
|
+
// feed / reel / story — single media via binary upload (unchanged).
|
|
235
|
+
const binaryProp = this.getNodeParameter('binaryPropertyName', i, 'data') as string;
|
|
236
|
+
const altText = this.getNodeParameter('altText', i, '') as string;
|
|
219
237
|
|
|
220
|
-
|
|
238
|
+
body.image_url = await nashirUploadBinary(this, i, binaryProp);
|
|
239
|
+
|
|
240
|
+
// Optional Reels cover. Uploaded to nashir.ai storage; the server-side
|
|
241
|
+
// cron passes the resulting URL as `cover_url` on the IG REELS container.
|
|
242
|
+
const thumbnailProp = this.getNodeParameter('thumbnailBinaryPropertyName', i, '') as string;
|
|
243
|
+
if (thumbnailProp) {
|
|
244
|
+
body.thumbnail_url = await nashirUploadBinary(this, i, thumbnailProp);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (altText) body.alt_text = altText;
|
|
248
|
+
}
|
|
221
249
|
|
|
222
250
|
if (operation === 'schedulePost') {
|
|
223
251
|
body.scheduled_at = this.getNodeParameter('scheduledAt', i) as string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-nashir",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.4",
|
|
4
4
|
"description": "n8n community nodes for nashir.ai — publish to Facebook, Instagram, Threads, TikTok, LinkedIn, YouTube, WhatsApp and Telegram, plus AI conversation management",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|