n8n-nodes-antony-cloud-office 0.1.3

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,279 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AntonyGraphql = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const transport_1 = require("../shared/transport");
6
+ const INTROSPECTION_QUERY = `
7
+ query IntrospectionQuery {
8
+ __schema {
9
+ queryType { name }
10
+ mutationType { name }
11
+ types {
12
+ kind
13
+ name
14
+ description
15
+ fields(includeDeprecated: true) {
16
+ name
17
+ description
18
+ args {
19
+ name
20
+ description
21
+ type { kind name ofType { kind name ofType { kind name } } }
22
+ }
23
+ type { kind name ofType { kind name ofType { kind name } } }
24
+ }
25
+ }
26
+ }
27
+ }`;
28
+ class AntonyGraphql {
29
+ constructor() {
30
+ this.description = {
31
+ displayName: 'Antony GraphQL',
32
+ name: 'antonyGraphql',
33
+ icon: 'file:antony.svg',
34
+ group: ['transform'],
35
+ version: 1,
36
+ description: 'Execute Antony GraphQL queries',
37
+ defaults: {
38
+ name: 'Antony GraphQL',
39
+ },
40
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
41
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
42
+ credentials: [
43
+ {
44
+ name: 'antonyApi',
45
+ required: true,
46
+ },
47
+ ],
48
+ properties: [
49
+ {
50
+ displayName: 'Operation',
51
+ name: 'operation',
52
+ type: 'options',
53
+ noDataExpression: true,
54
+ options: [
55
+ { name: 'Execute Query', value: 'executeQuery' },
56
+ { name: 'Introspect Schema', value: 'introspectSchema' },
57
+ ],
58
+ default: 'executeQuery',
59
+ },
60
+ {
61
+ displayName: 'Query',
62
+ name: 'query',
63
+ type: 'string',
64
+ typeOptions: {
65
+ rows: 16,
66
+ },
67
+ displayOptions: {
68
+ show: { operation: ['executeQuery'] },
69
+ },
70
+ default: '{\n allcontact(take: 10) {\n id\n firstName\n lastName\n email\n }\n}',
71
+ required: true,
72
+ },
73
+ {
74
+ displayName: 'Variables JSON',
75
+ name: 'variables',
76
+ type: 'json',
77
+ displayOptions: {
78
+ show: { operation: ['executeQuery'] },
79
+ },
80
+ default: '{}',
81
+ },
82
+ {
83
+ displayName: 'Normalize Result',
84
+ name: 'normalizeResult',
85
+ type: 'boolean',
86
+ displayOptions: {
87
+ show: { operation: ['executeQuery'] },
88
+ },
89
+ default: true,
90
+ description: 'Whether to split the first GraphQL result array into n8n items',
91
+ },
92
+ {
93
+ displayName: 'Include Debug Data',
94
+ name: 'includeDebugData',
95
+ type: 'boolean',
96
+ displayOptions: {
97
+ show: { operation: ['executeQuery'] },
98
+ },
99
+ default: false,
100
+ description: 'Whether to include the executed query, variables, and raw GraphQL response in the output',
101
+ },
102
+ ],
103
+ };
104
+ }
105
+ async execute() {
106
+ const items = this.getInputData();
107
+ const returnData = [];
108
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
109
+ let query = '';
110
+ let variables = {};
111
+ try {
112
+ const operation = this.getNodeParameter('operation', itemIndex);
113
+ if (operation === 'introspectSchema') {
114
+ const schema = await fetchSchema(this);
115
+ returnData.push({ json: schema, pairedItem: { item: itemIndex } });
116
+ continue;
117
+ }
118
+ query = this.getNodeParameter('query', itemIndex);
119
+ variables = parseVariables(this.getNodeParameter('variables', itemIndex, {}));
120
+ const normalizeResult = this.getNodeParameter('normalizeResult', itemIndex, true);
121
+ const includeDebugData = this.getNodeParameter('includeDebugData', itemIndex, false);
122
+ const { response, request } = await executeGraphql(this, query, variables);
123
+ if (response.errors) {
124
+ throw createGraphqlError('Antony GraphQL returned errors', request, response.errors, response);
125
+ }
126
+ if (!normalizeResult) {
127
+ returnData.push({
128
+ json: withDebugData(response, includeDebugData, request, response),
129
+ pairedItem: { item: itemIndex },
130
+ });
131
+ continue;
132
+ }
133
+ const firstValue = firstGraphqlValue(response.data);
134
+ for (const json of (0, transport_1.normalizeToItems)(firstValue)) {
135
+ returnData.push({
136
+ json: withDebugData(json, includeDebugData, request, response),
137
+ pairedItem: { item: itemIndex },
138
+ });
139
+ }
140
+ }
141
+ catch (error) {
142
+ if (this.continueOnFail()) {
143
+ returnData.push({ json: errorToItem(error, query, variables), pairedItem: { item: itemIndex } });
144
+ continue;
145
+ }
146
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex });
147
+ }
148
+ }
149
+ return [returnData];
150
+ }
151
+ }
152
+ exports.AntonyGraphql = AntonyGraphql;
153
+ async function executeGraphql(context, query, variables) {
154
+ const request = await buildGraphqlRequestDebug(context, query, variables ?? {});
155
+ try {
156
+ const response = await (0, transport_1.antonyRequest)(context, request);
157
+ return { response, request };
158
+ }
159
+ catch (error) {
160
+ throw createGraphqlError(`Antony GraphQL request failed: ${getErrorMessage(error)}`, request, undefined, getHttpResponseBody(error), getHttpStatus(error));
161
+ }
162
+ }
163
+ async function fetchSchema(context) {
164
+ const { response } = await executeGraphql(context, INTROSPECTION_QUERY);
165
+ return response;
166
+ }
167
+ function firstGraphqlValue(data) {
168
+ const key = Object.keys(data)[0];
169
+ return key ? data[key] : data;
170
+ }
171
+ function withDebugData(json, includeDebugData, request, response) {
172
+ if (!includeDebugData) {
173
+ return json;
174
+ }
175
+ return {
176
+ ...json,
177
+ __antonyGraphqlDebug: {
178
+ request,
179
+ response,
180
+ },
181
+ };
182
+ }
183
+ function createGraphqlError(message, request, graphqlErrors, response, status) {
184
+ const requestText = formatRequest(request);
185
+ const details = [
186
+ graphqlErrors ? `GraphQL errors:\n${formatValue(graphqlErrors)}` : undefined,
187
+ response ? `GraphQL response:\n${formatValue(response)}` : undefined,
188
+ `Request:\n${requestText}`,
189
+ ]
190
+ .filter((entry) => Boolean(entry))
191
+ .join('\n\n');
192
+ const errorMessage = [status ? `${message} (HTTP ${status})` : message, details].filter(Boolean).join('\n\n');
193
+ const error = new Error(errorMessage);
194
+ return error;
195
+ }
196
+ function errorToItem(error, query, variables) {
197
+ const errorWithDescription = error;
198
+ return {
199
+ error: getErrorMessage(error),
200
+ description: errorWithDescription.description,
201
+ query,
202
+ variables,
203
+ };
204
+ }
205
+ function getErrorMessage(error) {
206
+ if (error instanceof Error) {
207
+ return error.message;
208
+ }
209
+ return String(error);
210
+ }
211
+ function getHttpStatus(error) {
212
+ const errorObject = asDataObject(error);
213
+ const response = asDataObject(errorObject?.response);
214
+ const status = response?.status ?? response?.statusCode ?? errorObject?.status ?? errorObject?.statusCode;
215
+ return typeof status === 'string' || typeof status === 'number' ? status : undefined;
216
+ }
217
+ function getHttpResponseBody(error) {
218
+ const errorObject = asDataObject(error);
219
+ const response = asDataObject(errorObject?.response);
220
+ return response?.data ?? response?.body ?? errorObject?.error;
221
+ }
222
+ function parseVariables(value) {
223
+ if (value === undefined || value === null || value === '') {
224
+ return {};
225
+ }
226
+ if (typeof value === 'string') {
227
+ const parsed = JSON.parse(value);
228
+ if (isPlainObject(parsed)) {
229
+ return parsed;
230
+ }
231
+ throw new Error('Variables JSON must be an object, for example {}');
232
+ }
233
+ if (isPlainObject(value)) {
234
+ return value;
235
+ }
236
+ throw new Error('Variables JSON must be an object, for example {}');
237
+ }
238
+ function isPlainObject(value) {
239
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
240
+ }
241
+ async function buildGraphqlRequestDebug(context, query, variables) {
242
+ const credentials = await context.getCredentials('antonyApi');
243
+ const baseUrl = String(credentials.baseUrl).replace(/\/$/, '');
244
+ return {
245
+ method: 'POST',
246
+ url: `${baseUrl}/api/v2/graphql`,
247
+ body: {
248
+ query,
249
+ variables,
250
+ },
251
+ json: true,
252
+ };
253
+ }
254
+ function asDataObject(value) {
255
+ if (isPlainObject(value)) {
256
+ return value;
257
+ }
258
+ return undefined;
259
+ }
260
+ function formatValue(value) {
261
+ if (typeof value === 'string') {
262
+ return value;
263
+ }
264
+ try {
265
+ return JSON.stringify(value, null, 2);
266
+ }
267
+ catch {
268
+ return String(value);
269
+ }
270
+ }
271
+ function formatRequest(request) {
272
+ return [
273
+ `Method: ${request.method}`,
274
+ `URL: ${request.url}`,
275
+ `JSON: ${String(request.json)}`,
276
+ `Body:\n${formatValue(request.body)}`,
277
+ ].join('\n');
278
+ }
279
+ //# sourceMappingURL=AntonyGraphql.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AntonyGraphql.node.js","sourceRoot":"","sources":["../../../nodes/AntonyGraphql/AntonyGraphql.node.ts"],"names":[],"mappings":"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"}