n8n-nodes-orbitpage 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.
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pathParameters = exports.OrbitPage = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const description_1 = require("./description");
6
+ const operations_1 = require("./operations");
7
+ const transport_1 = require("./transport");
8
+ function parseJson(context, itemIndex, value, label) {
9
+ if (value && typeof value === 'object')
10
+ return value;
11
+ if (typeof value !== 'string' || !value.trim())
12
+ return {};
13
+ try {
14
+ return JSON.parse(value);
15
+ }
16
+ catch (error) {
17
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${label} must be valid JSON: ${error instanceof Error ? error.message : 'parse failed'}`, { itemIndex });
18
+ }
19
+ }
20
+ function parseJsonObject(context, itemIndex, value, label) {
21
+ const parsed = parseJson(context, itemIndex, value, label);
22
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed) || Buffer.isBuffer(parsed)) {
23
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${label} must be a JSON object`, { itemIndex });
24
+ }
25
+ return parsed;
26
+ }
27
+ function jsonObject(value) {
28
+ if (value && typeof value === 'object' && !Array.isArray(value) && !Buffer.isBuffer(value)) {
29
+ return value;
30
+ }
31
+ return { data: value };
32
+ }
33
+ function fullResponseOutput(response) {
34
+ return {
35
+ body: response.body,
36
+ headers: response.headers,
37
+ statusCode: response.statusCode,
38
+ ...(response.statusMessage ? { statusMessage: response.statusMessage } : {}),
39
+ };
40
+ }
41
+ function safeCustomPath(context, itemIndex, value) {
42
+ const path = value.trim();
43
+ if (!path.startsWith('/') || path.startsWith('//')) {
44
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Relative API Path must begin with one slash', {
45
+ itemIndex,
46
+ });
47
+ }
48
+ if (path.includes('?') || path.includes('#') || path.includes('://')) {
49
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Put query parameters in Query Parameters (JSON), not in Relative API Path', { itemIndex });
50
+ }
51
+ if (path === '/api/v1' || path.startsWith('/api/v1/')) {
52
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Relative API Path is already below /api/v1; for example, use /workspace', { itemIndex });
53
+ }
54
+ for (const segment of path.split('/')) {
55
+ let decoded = segment;
56
+ try {
57
+ decoded = decodeURIComponent(segment);
58
+ }
59
+ catch {
60
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Relative API Path contains invalid URL encoding', {
61
+ itemIndex,
62
+ });
63
+ }
64
+ if (decoded === '.' || decoded === '..') {
65
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Relative API Path cannot contain dot segments', {
66
+ itemIndex,
67
+ });
68
+ }
69
+ }
70
+ return path;
71
+ }
72
+ function operationPath(context, spec, itemIndex) {
73
+ var _a, _b;
74
+ let path = (_a = spec.path) !== null && _a !== void 0 ? _a : '';
75
+ for (const parameter of (_b = spec.parameters) !== null && _b !== void 0 ? _b : []) {
76
+ const value = context.getNodeParameter(parameter, itemIndex);
77
+ if (value === '' || value === undefined || value === null) {
78
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `${parameter} is required`, { itemIndex });
79
+ }
80
+ path = path.replace(`{${parameter}}`, encodeURIComponent(String(value)));
81
+ }
82
+ if (path.includes('{')) {
83
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'The operation path still contains an unresolved parameter', {
84
+ itemIndex,
85
+ });
86
+ }
87
+ return path;
88
+ }
89
+ function operationQuery(context, spec, itemIndex) {
90
+ const qs = {};
91
+ if (spec.publishQuery && context.getNodeParameter('publish', itemIndex, false) === true)
92
+ qs.publish = '1';
93
+ if (spec.value === 'getAnalytics')
94
+ qs.days = context.getNodeParameter('days', itemIndex, 30);
95
+ if (spec.value === 'exportBackup') {
96
+ const sections = context.getNodeParameter('sections', itemIndex, []);
97
+ if (sections.length)
98
+ qs.sections = sections.join(',');
99
+ }
100
+ if (spec.value === 'getShop' && context.getNodeParameter('refresh', itemIndex, false) === true)
101
+ qs.refresh = '1';
102
+ if (['getOperatorOverview', 'listCrmProspects'].includes(spec.value)) {
103
+ const search = String(context.getNodeParameter('search', itemIndex, '')).trim();
104
+ if (search)
105
+ qs.search = search;
106
+ }
107
+ if (spec.value === 'previewCrmAccountEmail') {
108
+ qs.action = context.getNodeParameter('emailAction', itemIndex);
109
+ qs.locale = context.getNodeParameter('emailLocale', itemIndex);
110
+ }
111
+ return qs;
112
+ }
113
+ async function revisionHeader(context, spec, itemIndex) {
114
+ if (!spec.revisionSource)
115
+ return undefined;
116
+ const revisionMode = context.getNodeParameter('revisionMode', itemIndex, 'auto');
117
+ if (revisionMode === 'manual') {
118
+ const revision = String(context.getNodeParameter('revision', itemIndex, '')).trim();
119
+ if (!revision) {
120
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'ETag or Revision is required in manual mode', {
121
+ itemIndex,
122
+ });
123
+ }
124
+ return revision;
125
+ }
126
+ const response = (0, transport_1.fullResponse)(await (0, transport_1.orbitPageApiRequest)(context, {
127
+ method: 'GET',
128
+ path: spec.revisionSource,
129
+ returnFullResponse: true,
130
+ }));
131
+ return (0, transport_1.responseRevision)(response);
132
+ }
133
+ function uploadResponse(value, file) {
134
+ const result = jsonObject(value);
135
+ return { ...result, uploadedFile: file };
136
+ }
137
+ async function putSignedBinary(context, itemIndex, uploadUrl, headers, buffer) {
138
+ const target = new URL(uploadUrl);
139
+ if (target.protocol !== 'https:') {
140
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'The direct upload URL did not use HTTPS', {
141
+ itemIndex,
142
+ });
143
+ }
144
+ await context.helpers.httpRequest({
145
+ method: 'PUT',
146
+ url: uploadUrl,
147
+ headers,
148
+ body: buffer,
149
+ json: false,
150
+ sendCredentialsOnCrossOriginRedirect: false,
151
+ allowedDomains: target.hostname,
152
+ });
153
+ }
154
+ function reservationObject(context, itemIndex, value) {
155
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
156
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'OrbitPage returned an invalid upload reservation', {
157
+ itemIndex,
158
+ });
159
+ }
160
+ return value;
161
+ }
162
+ async function uploadMediaBinary(context, itemIndex) {
163
+ const binaryPropertyName = String(context.getNodeParameter('binaryPropertyName', itemIndex, 'data'));
164
+ const binary = context.helpers.assertBinaryData(itemIndex, binaryPropertyName);
165
+ const buffer = await context.helpers.getBinaryDataBuffer(itemIndex, binary);
166
+ const contentType = binary.mimeType;
167
+ if (!['video/mp4', 'video/webm'].includes(contentType)) {
168
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'OrbitPage direct media upload accepts only MP4 or WebM video binaries', { itemIndex });
169
+ }
170
+ const filename = binary.fileName || `orbitpage-video.${contentType === 'video/mp4' ? 'mp4' : 'webm'}`;
171
+ const slot = String(context.getNodeParameter('mediaSlot', itemIndex, '')).trim();
172
+ const reserveBody = {
173
+ filename,
174
+ contentType,
175
+ sizeBytes: buffer.length,
176
+ purpose: context.getNodeParameter('mediaPurpose', itemIndex, 'upload'),
177
+ ...(slot ? { slot } : {}),
178
+ };
179
+ const reservation = reservationObject(context, itemIndex, await (0, transport_1.orbitPageApiRequest)(context, {
180
+ method: 'POST',
181
+ path: '/media/uploads/reserve',
182
+ body: reserveBody,
183
+ }));
184
+ const uploadUrl = String(reservation.uploadUrl || '');
185
+ const uploadToken = String(reservation.uploadToken || '');
186
+ const reservedSlot = String(reservation.slot || '');
187
+ if (!uploadUrl || !uploadToken || !reservedSlot) {
188
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Upload reservation is incomplete', { itemIndex });
189
+ }
190
+ try {
191
+ await putSignedBinary(context, itemIndex, uploadUrl, reservation.headers || {}, buffer);
192
+ const finalized = await (0, transport_1.orbitPageApiRequest)(context, {
193
+ method: 'POST',
194
+ path: '/media/uploads/finalize',
195
+ body: { slot: reservedSlot, uploadToken },
196
+ });
197
+ return uploadResponse(finalized, { filename, contentType, sizeBytes: buffer.length, slot: reservedSlot });
198
+ }
199
+ catch (error) {
200
+ await (0, transport_1.orbitPageApiRequest)(context, {
201
+ method: 'DELETE',
202
+ path: '/media/uploads',
203
+ body: { slot: reservedSlot, uploadToken },
204
+ }).catch(() => undefined);
205
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), error, { itemIndex });
206
+ }
207
+ }
208
+ async function uploadShopFileBinary(context, itemIndex) {
209
+ const productId = String(context.getNodeParameter('productId', itemIndex)).trim();
210
+ const binaryPropertyName = String(context.getNodeParameter('binaryPropertyName', itemIndex, 'data'));
211
+ const binary = context.helpers.assertBinaryData(itemIndex, binaryPropertyName);
212
+ const buffer = await context.helpers.getBinaryDataBuffer(itemIndex, binary);
213
+ const filename = binary.fileName || 'orbitpage-product-file';
214
+ const contentType = binary.mimeType || 'application/octet-stream';
215
+ const reservation = reservationObject(context, itemIndex, await (0, transport_1.orbitPageApiRequest)(context, {
216
+ method: 'POST',
217
+ path: '/shop/uploads/reserve',
218
+ body: { productId, filename, contentType, sizeBytes: buffer.length },
219
+ }));
220
+ const uploadUrl = String(reservation.uploadUrl || '');
221
+ const uploadToken = String(reservation.uploadToken || '');
222
+ if (!uploadUrl || !uploadToken) {
223
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Shop upload reservation is incomplete', {
224
+ itemIndex,
225
+ });
226
+ }
227
+ await putSignedBinary(context, itemIndex, uploadUrl, reservation.headers || {}, buffer);
228
+ const finalized = await (0, transport_1.orbitPageApiRequest)(context, {
229
+ method: 'POST',
230
+ path: '/shop/uploads/finalize',
231
+ body: { uploadToken },
232
+ });
233
+ return uploadResponse(finalized, { filename, contentType, sizeBytes: buffer.length, productId });
234
+ }
235
+ async function customRequest(context, itemIndex, includeResponseHeaders) {
236
+ const method = context.getNodeParameter('customMethod', itemIndex);
237
+ const path = safeCustomPath(context, itemIndex, String(context.getNodeParameter('customPath', itemIndex)));
238
+ const qs = parseJsonObject(context, itemIndex, context.getNodeParameter('customQuery', itemIndex, '{}'), 'Query Parameters');
239
+ const ifMatch = String(context.getNodeParameter('customIfMatch', itemIndex, '')).trim();
240
+ return await (0, transport_1.orbitPageApiRequest)(context, {
241
+ method,
242
+ path,
243
+ qs,
244
+ ...(method === 'GET'
245
+ ? {}
246
+ : {
247
+ body: parseJson(context, itemIndex, context.getNodeParameter('customBody', itemIndex, '{}'), 'Request Body'),
248
+ }),
249
+ ...(ifMatch ? { headers: { 'If-Match': ifMatch } } : {}),
250
+ returnFullResponse: includeResponseHeaders,
251
+ });
252
+ }
253
+ class OrbitPage {
254
+ constructor() {
255
+ this.description = {
256
+ displayName: 'OrbitPage',
257
+ name: 'orbitPage',
258
+ icon: {
259
+ light: 'file:../../icons/orbitpage.svg',
260
+ dark: 'file:../../icons/orbitpage.dark.svg',
261
+ },
262
+ group: ['input'],
263
+ version: 1,
264
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
265
+ description: 'Manage OrbitPage end to end through the Automation REST API',
266
+ defaults: { name: 'OrbitPage' },
267
+ usableAsTool: true,
268
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
269
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
270
+ credentials: [{ name: 'orbitPageApi', required: true }],
271
+ properties: description_1.orbitPageProperties,
272
+ };
273
+ }
274
+ async execute() {
275
+ const items = this.getInputData();
276
+ const returnData = [];
277
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
278
+ try {
279
+ const operation = String(this.getNodeParameter('operation', itemIndex));
280
+ const spec = (0, operations_1.operationSpec)(operation);
281
+ if (!spec) {
282
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported OrbitPage operation: ${operation}`, {
283
+ itemIndex,
284
+ });
285
+ }
286
+ const options = this.getNodeParameter('options', itemIndex, {});
287
+ const includeResponseHeaders = options.includeResponseHeaders === true;
288
+ let response;
289
+ if (spec.kind === 'mediaUpload')
290
+ response = await uploadMediaBinary(this, itemIndex);
291
+ else if (spec.kind === 'shopFileUpload')
292
+ response = await uploadShopFileBinary(this, itemIndex);
293
+ else if (spec.kind === 'custom')
294
+ response = await customRequest(this, itemIndex, includeResponseHeaders);
295
+ else {
296
+ const revision = await revisionHeader(this, spec, itemIndex);
297
+ response = await (0, transport_1.orbitPageApiRequest)(this, {
298
+ method: spec.method,
299
+ path: operationPath(this, spec, itemIndex),
300
+ qs: operationQuery(this, spec, itemIndex),
301
+ ...(spec.body
302
+ ? {
303
+ body: parseJson(this, itemIndex, this.getNodeParameter('jsonBody', itemIndex, '{}'), 'JSON Body'),
304
+ }
305
+ : {}),
306
+ ...(revision ? { headers: { 'If-Match': revision } } : {}),
307
+ returnFullResponse: includeResponseHeaders,
308
+ });
309
+ }
310
+ const output = includeResponseHeaders && spec.kind !== 'mediaUpload' && spec.kind !== 'shopFileUpload'
311
+ ? fullResponseOutput((0, transport_1.fullResponse)(response))
312
+ : jsonObject(response);
313
+ returnData.push({ json: output, pairedItem: { item: itemIndex } });
314
+ }
315
+ catch (error) {
316
+ if (this.continueOnFail()) {
317
+ returnData.push({
318
+ json: { error: error instanceof Error ? error.message : String(error) },
319
+ pairedItem: { item: itemIndex },
320
+ });
321
+ continue;
322
+ }
323
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
324
+ }
325
+ }
326
+ return [returnData];
327
+ }
328
+ }
329
+ exports.OrbitPage = OrbitPage;
330
+ exports.pathParameters = [
331
+ 'linkId',
332
+ 'key',
333
+ 'revision',
334
+ 'productId',
335
+ 'subscriberId',
336
+ 'campaignId',
337
+ 'memberUid',
338
+ 'invitationId',
339
+ 'prospectId',
340
+ 'activityId',
341
+ 'promotionCodeId',
342
+ 'tenantId',
343
+ ];
344
+ //# sourceMappingURL=OrbitPage.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrbitPage.node.js","sourceRoot":"","sources":["../../../nodes/OrbitPage/OrbitPage.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const orbitPageProperties: INodeProperties[];