@blickwerk/n8n-nodes-microsoft-planner 1.4.0 → 1.6.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 (42) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +233 -30
  3. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.d.ts +2 -2
  4. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js +11 -29
  5. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js.map +1 -0
  6. package/dist/nodes/MicrosoftPlanner/BucketDescription.d.ts +3 -0
  7. package/dist/nodes/MicrosoftPlanner/BucketDescription.js +180 -0
  8. package/dist/nodes/MicrosoftPlanner/BucketDescription.js.map +1 -0
  9. package/dist/nodes/MicrosoftPlanner/CommentDescription.d.ts +3 -0
  10. package/dist/nodes/MicrosoftPlanner/CommentDescription.js +156 -0
  11. package/dist/nodes/MicrosoftPlanner/CommentDescription.js.map +1 -0
  12. package/dist/nodes/MicrosoftPlanner/GenericFunctions.d.ts +19 -6
  13. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js +251 -34
  14. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js.map +1 -0
  15. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.d.ts +6 -7
  16. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js +118 -279
  17. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js.map +1 -0
  18. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.json +18 -0
  19. package/dist/nodes/MicrosoftPlanner/PlanDescription.d.ts +3 -0
  20. package/dist/nodes/MicrosoftPlanner/PlanDescription.js +435 -0
  21. package/dist/nodes/MicrosoftPlanner/PlanDescription.js.map +1 -0
  22. package/dist/nodes/MicrosoftPlanner/SharedFields.d.ts +10 -0
  23. package/dist/nodes/MicrosoftPlanner/SharedFields.js +316 -0
  24. package/dist/nodes/MicrosoftPlanner/SharedFields.js.map +1 -0
  25. package/dist/nodes/MicrosoftPlanner/TaskDescription.d.ts +1 -1
  26. package/dist/nodes/MicrosoftPlanner/TaskDescription.js +271 -177
  27. package/dist/nodes/MicrosoftPlanner/TaskDescription.js.map +1 -0
  28. package/dist/nodes/MicrosoftPlanner/actions/bucket.d.ts +2 -0
  29. package/dist/nodes/MicrosoftPlanner/actions/bucket.js +72 -0
  30. package/dist/nodes/MicrosoftPlanner/actions/bucket.js.map +1 -0
  31. package/dist/nodes/MicrosoftPlanner/actions/comment.d.ts +2 -0
  32. package/dist/nodes/MicrosoftPlanner/actions/comment.js +100 -0
  33. package/dist/nodes/MicrosoftPlanner/actions/comment.js.map +1 -0
  34. package/dist/nodes/MicrosoftPlanner/actions/plan.d.ts +4 -0
  35. package/dist/nodes/MicrosoftPlanner/actions/plan.js +116 -0
  36. package/dist/nodes/MicrosoftPlanner/actions/plan.js.map +1 -0
  37. package/dist/nodes/MicrosoftPlanner/actions/task.d.ts +4 -0
  38. package/dist/nodes/MicrosoftPlanner/actions/task.js +392 -0
  39. package/dist/nodes/MicrosoftPlanner/actions/task.js.map +1 -0
  40. package/dist/package.json +60 -0
  41. package/dist/tsconfig.tsbuildinfo +1 -0
  42. package/package.json +22 -20
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeTask = executeTask;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const GenericFunctions_1 = require("../GenericFunctions");
6
+ const has = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
7
+ function getLocatorValue(name, i) {
8
+ return this.getNodeParameter(name, i, '', { extractValue: true });
9
+ }
10
+ function buildReferences(ui, i) {
11
+ var _a, _b, _c;
12
+ const references = {};
13
+ const attachments = ui === null || ui === void 0 ? void 0 : ui.attachments;
14
+ if (!attachments) {
15
+ return references;
16
+ }
17
+ let list = [];
18
+ if (((_a = attachments.mode) !== null && _a !== void 0 ? _a : 'manual') === 'manual') {
19
+ list = (_c = (_b = attachments.items) === null || _b === void 0 ? void 0 : _b.reference) !== null && _c !== void 0 ? _c : [];
20
+ }
21
+ else if (attachments.json) {
22
+ const parsed = GenericFunctions_1.parseJson.call(this, attachments.json, 'Attachments (JSON)', i);
23
+ if (!Array.isArray(parsed)) {
24
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid JSON in Attachments (JSON) field. It must be an array of objects.', { itemIndex: i });
25
+ }
26
+ list = parsed;
27
+ }
28
+ for (const reference of list) {
29
+ const url = reference.url;
30
+ if (!url)
31
+ continue;
32
+ const value = {
33
+ '@odata.type': '#microsoft.graph.plannerExternalReference',
34
+ alias: reference.alias || '',
35
+ type: reference.type || 'Other',
36
+ };
37
+ if (reference.previewPriority) {
38
+ value.previewPriority = reference.previewPriority;
39
+ }
40
+ references[(0, GenericFunctions_1.encodeReferenceKey)(url)] = value;
41
+ }
42
+ return references;
43
+ }
44
+ function buildChecklist(ui, i) {
45
+ var _a, _b, _c;
46
+ const checklistItems = {};
47
+ const checklist = ui === null || ui === void 0 ? void 0 : ui.checklist;
48
+ if (!checklist) {
49
+ return checklistItems;
50
+ }
51
+ let list = [];
52
+ if (((_a = checklist.mode) !== null && _a !== void 0 ? _a : 'manual') === 'manual') {
53
+ list = (_c = (_b = checklist.items) === null || _b === void 0 ? void 0 : _b.item) !== null && _c !== void 0 ? _c : [];
54
+ }
55
+ else if (checklist.json) {
56
+ const parsed = GenericFunctions_1.parseJson.call(this, checklist.json, 'Checklist (JSON)', i);
57
+ if (!Array.isArray(parsed)) {
58
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Invalid JSON in Checklist (JSON) field. It must be an array of objects.', { itemIndex: i });
59
+ }
60
+ list = parsed;
61
+ }
62
+ for (const item of list) {
63
+ if (!item.title)
64
+ continue;
65
+ const value = {
66
+ '@odata.type': '#microsoft.graph.plannerChecklistItem',
67
+ title: item.title,
68
+ isChecked: !!item.isChecked,
69
+ };
70
+ if (item.orderHint) {
71
+ value.orderHint = item.orderHint;
72
+ }
73
+ checklistItems[item.id || (0, GenericFunctions_1.generateGuid)()] = value;
74
+ }
75
+ return checklistItems;
76
+ }
77
+ function buildDetailsBody(fields, current, i, isUpdate) {
78
+ var _a, _b, _c, _d;
79
+ const body = {};
80
+ if (isUpdate ? has(fields, 'description') : fields.description) {
81
+ body.description = fields.description;
82
+ }
83
+ if (fields.previewType) {
84
+ body.previewType = fields.previewType;
85
+ }
86
+ const references = {};
87
+ const currentReferences = (_a = current.references) !== null && _a !== void 0 ? _a : {};
88
+ const attachments = (_b = fields.attachmentsUi) === null || _b === void 0 ? void 0 : _b.attachments;
89
+ if (isUpdate && (attachments === null || attachments === void 0 ? void 0 : attachments.operationMode) === 'replace') {
90
+ for (const key of Object.keys(currentReferences)) {
91
+ references[key] = null;
92
+ }
93
+ }
94
+ for (const url of (0, GenericFunctions_1.parseList)(fields.removeAttachmentUrls)) {
95
+ const existingKey = Object.keys(currentReferences).find((key) => key === url || (0, GenericFunctions_1.decodeReferenceKey)(key) === url || key === (0, GenericFunctions_1.encodeReferenceKey)(url));
96
+ references[existingKey !== null && existingKey !== void 0 ? existingKey : (0, GenericFunctions_1.encodeReferenceKey)(url)] = null;
97
+ }
98
+ Object.assign(references, buildReferences.call(this, fields.attachmentsUi, i));
99
+ if (Object.keys(references).length > 0) {
100
+ body.references = references;
101
+ }
102
+ const checklistItems = {};
103
+ const currentChecklist = (_c = current.checklist) !== null && _c !== void 0 ? _c : {};
104
+ const checklist = (_d = fields.checklistUi) === null || _d === void 0 ? void 0 : _d.checklist;
105
+ if (isUpdate && (checklist === null || checklist === void 0 ? void 0 : checklist.operationMode) === 'replace') {
106
+ for (const key of Object.keys(currentChecklist)) {
107
+ checklistItems[key] = null;
108
+ }
109
+ }
110
+ for (const id of (0, GenericFunctions_1.parseList)(fields.removeChecklistItemIds)) {
111
+ checklistItems[id] = null;
112
+ }
113
+ Object.assign(checklistItems, buildChecklist.call(this, fields.checklistUi, i));
114
+ if (Object.keys(checklistItems).length > 0) {
115
+ body.checklist = checklistItems;
116
+ }
117
+ return body;
118
+ }
119
+ const DETAILS_FIELDS = [
120
+ 'description',
121
+ 'previewType',
122
+ 'attachmentsUi',
123
+ 'checklistUi',
124
+ 'removeAttachmentUrls',
125
+ 'removeChecklistItemIds',
126
+ ];
127
+ function hasDetailsFields(fields) {
128
+ return DETAILS_FIELDS.some((key) => has(fields, key));
129
+ }
130
+ function buildAppliedCategories(add, remove) {
131
+ const categories = {};
132
+ for (const category of (0, GenericFunctions_1.parseList)(remove)) {
133
+ categories[category] = false;
134
+ }
135
+ for (const category of (0, GenericFunctions_1.parseList)(add)) {
136
+ categories[category] = true;
137
+ }
138
+ return categories;
139
+ }
140
+ async function create(i, userCache) {
141
+ const planId = this.getNodeParameter('planId', i);
142
+ const bucketId = getLocatorValue.call(this, 'bucketId', i);
143
+ const title = this.getNodeParameter('title', i);
144
+ const additionalFields = this.getNodeParameter('additionalFields', i, {});
145
+ const body = { planId, bucketId, title };
146
+ if (additionalFields.priority !== undefined) {
147
+ body.priority = additionalFields.priority;
148
+ }
149
+ if (additionalFields.percentComplete !== undefined) {
150
+ body.percentComplete = additionalFields.percentComplete;
151
+ }
152
+ const dueDateTime = (0, GenericFunctions_1.formatDateTime)(additionalFields.dueDateTime);
153
+ if (dueDateTime) {
154
+ body.dueDateTime = dueDateTime;
155
+ }
156
+ const startDateTime = (0, GenericFunctions_1.formatDateTime)(additionalFields.startDateTime);
157
+ if (startDateTime) {
158
+ body.startDateTime = startDateTime;
159
+ }
160
+ for (const key of ['orderHint', 'assigneePriority', 'conversationThreadId']) {
161
+ if (additionalFields[key]) {
162
+ body[key] = additionalFields[key];
163
+ }
164
+ }
165
+ const categories = buildAppliedCategories(additionalFields.appliedCategories, undefined);
166
+ if (Object.keys(categories).length > 0) {
167
+ body.appliedCategories = categories;
168
+ }
169
+ if (additionalFields.assignments) {
170
+ const userIds = await GenericFunctions_1.resolveUserIds.call(this, additionalFields.assignments, userCache);
171
+ if (userIds.length > 0) {
172
+ body.assignments = (0, GenericFunctions_1.createAssignmentsObject)(userIds);
173
+ }
174
+ }
175
+ const task = (await GenericFunctions_1.microsoftApiRequest.call(this, 'POST', '/planner/tasks', body));
176
+ if (additionalFields.description ||
177
+ additionalFields.previewType ||
178
+ additionalFields.attachmentsUi ||
179
+ additionalFields.checklistUi) {
180
+ let detailsChanged = false;
181
+ const details = await GenericFunctions_1.patchWithETag.call(this, `/planner/tasks/${task.id}/details`, (current) => {
182
+ const detailsBody = buildDetailsBody.call(this, additionalFields, current, i, false);
183
+ detailsChanged = Object.keys(detailsBody).length > 0;
184
+ return detailsBody;
185
+ });
186
+ if (detailsChanged) {
187
+ if (additionalFields.description) {
188
+ task.description = additionalFields.description;
189
+ }
190
+ task.details = details;
191
+ }
192
+ }
193
+ return task;
194
+ }
195
+ async function get(i) {
196
+ const taskId = getLocatorValue.call(this, 'taskId', i);
197
+ const additionalFields = this.getNodeParameter('additionalFields', i, {});
198
+ const task = (await GenericFunctions_1.microsoftApiRequest.call(this, 'GET', `/planner/tasks/${taskId}`));
199
+ if (additionalFields.includeDetails) {
200
+ task.details = await GenericFunctions_1.microsoftApiRequest.call(this, 'GET', `/planner/tasks/${taskId}/details`);
201
+ }
202
+ return task;
203
+ }
204
+ async function getAll(i, userCache) {
205
+ const filterBy = this.getNodeParameter('filterBy', i);
206
+ const additionalFields = this.getNodeParameter('additionalFields', i, {});
207
+ let endpoint;
208
+ if (filterBy === 'plan') {
209
+ endpoint = `/planner/plans/${this.getNodeParameter('planId', i)}/tasks`;
210
+ }
211
+ else if (filterBy === 'bucket') {
212
+ endpoint = `/planner/buckets/${getLocatorValue.call(this, 'bucketId', i)}/tasks`;
213
+ }
214
+ else if (filterBy === 'my') {
215
+ endpoint = '/me/planner/tasks';
216
+ }
217
+ else if (filterBy === 'user') {
218
+ const [userId] = await GenericFunctions_1.resolveUserIds.call(this, this.getNodeParameter('userId', i), userCache);
219
+ endpoint = `/users/${userId}/planner/tasks`;
220
+ }
221
+ else {
222
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown filter "${filterBy}"`, {
223
+ itemIndex: i,
224
+ });
225
+ }
226
+ const qs = {};
227
+ if (additionalFields.select) {
228
+ const select = (0, GenericFunctions_1.parseList)(additionalFields.select);
229
+ if (additionalFields.excludeCompleted && !select.includes('percentComplete')) {
230
+ select.push('percentComplete');
231
+ }
232
+ qs.$select = select.join(',');
233
+ }
234
+ if (additionalFields.includeDetails) {
235
+ qs.$expand = 'details';
236
+ }
237
+ let tasks = await GenericFunctions_1.microsoftApiRequestAllItems.call(this, 'value', 'GET', endpoint, {}, qs);
238
+ if (additionalFields.excludeCompleted) {
239
+ tasks = tasks.filter((task) => task.percentComplete !== 100);
240
+ }
241
+ return tasks;
242
+ }
243
+ async function update(i, userCache) {
244
+ const taskId = getLocatorValue.call(this, 'taskId', i);
245
+ const updateFields = this.getNodeParameter('updateFields', i, {});
246
+ const body = {};
247
+ if (updateFields.title) {
248
+ body.title = updateFields.title;
249
+ }
250
+ if (updateFields.priority !== undefined) {
251
+ body.priority = updateFields.priority;
252
+ }
253
+ if (updateFields.percentComplete !== undefined) {
254
+ body.percentComplete = updateFields.percentComplete;
255
+ }
256
+ if (updateFields.bucketId) {
257
+ body.bucketId = updateFields.bucketId;
258
+ }
259
+ for (const key of ['orderHint', 'assigneePriority', 'conversationThreadId']) {
260
+ if (updateFields[key]) {
261
+ body[key] = updateFields[key];
262
+ }
263
+ }
264
+ if (updateFields.clearDueDateTime) {
265
+ body.dueDateTime = null;
266
+ }
267
+ else {
268
+ const dueDateTime = (0, GenericFunctions_1.formatDateTime)(updateFields.dueDateTime);
269
+ if (dueDateTime)
270
+ body.dueDateTime = dueDateTime;
271
+ }
272
+ if (updateFields.clearStartDateTime) {
273
+ body.startDateTime = null;
274
+ }
275
+ else {
276
+ const startDateTime = (0, GenericFunctions_1.formatDateTime)(updateFields.startDateTime);
277
+ if (startDateTime)
278
+ body.startDateTime = startDateTime;
279
+ }
280
+ const categories = buildAppliedCategories(updateFields.labelsToAdd, updateFields.labelsToRemove);
281
+ if (Object.keys(categories).length > 0) {
282
+ body.appliedCategories = categories;
283
+ }
284
+ const assignUserIds = updateFields.assignments
285
+ ? await GenericFunctions_1.resolveUserIds.call(this, updateFields.assignments, userCache)
286
+ : [];
287
+ const unassignUserIds = updateFields.removeAssignments
288
+ ? await GenericFunctions_1.resolveUserIds.call(this, updateFields.removeAssignments, userCache)
289
+ : [];
290
+ const replaceAssignments = updateFields.assignmentsMode === 'replace' && has(updateFields, 'assignments');
291
+ let task = await GenericFunctions_1.patchWithETag.call(this, `/planner/tasks/${taskId}`, (current) => {
292
+ var _a;
293
+ const patchBody = { ...body };
294
+ const assignments = {};
295
+ if (replaceAssignments) {
296
+ for (const userId of Object.keys((_a = current.assignments) !== null && _a !== void 0 ? _a : {})) {
297
+ if (!assignUserIds.includes(userId)) {
298
+ assignments[userId] = null;
299
+ }
300
+ }
301
+ }
302
+ for (const userId of unassignUserIds) {
303
+ assignments[userId] = null;
304
+ }
305
+ Object.assign(assignments, (0, GenericFunctions_1.createAssignmentsObject)(assignUserIds));
306
+ if (Object.keys(assignments).length > 0) {
307
+ patchBody.assignments = assignments;
308
+ }
309
+ return patchBody;
310
+ });
311
+ if (hasDetailsFields(updateFields)) {
312
+ task = { ...task };
313
+ task.details = await GenericFunctions_1.patchWithETag.call(this, `/planner/tasks/${taskId}/details`, (current) => buildDetailsBody.call(this, updateFields, current, i, true));
314
+ }
315
+ return task;
316
+ }
317
+ async function remove(i) {
318
+ const taskId = getLocatorValue.call(this, 'taskId', i);
319
+ await GenericFunctions_1.deleteWithETag.call(this, `/planner/tasks/${taskId}`);
320
+ return { success: true, taskId };
321
+ }
322
+ async function getFiles(i) {
323
+ var _a;
324
+ const taskId = getLocatorValue.call(this, 'taskId', i);
325
+ const details = (await GenericFunctions_1.microsoftApiRequest.call(this, 'GET', `/planner/tasks/${taskId}/details`));
326
+ const references = (_a = details.references) !== null && _a !== void 0 ? _a : {};
327
+ const files = Object.keys(references).map((encodedUrl) => ({
328
+ url: (0, GenericFunctions_1.decodeReferenceKey)(encodedUrl),
329
+ alias: references[encodedUrl].alias,
330
+ type: references[encodedUrl].type,
331
+ previewPriority: references[encodedUrl].previewPriority,
332
+ lastModifiedDateTime: references[encodedUrl].lastModifiedDateTime,
333
+ lastModifiedBy: references[encodedUrl].lastModifiedBy,
334
+ }));
335
+ return {
336
+ taskId,
337
+ fileCount: files.length,
338
+ files,
339
+ };
340
+ }
341
+ async function getBoardFormat(i) {
342
+ const taskId = getLocatorValue.call(this, 'taskId', i);
343
+ const formatType = this.getNodeParameter('boardFormatType', i);
344
+ return (await GenericFunctions_1.microsoftApiRequest.call(this, 'GET', `/planner/tasks/${taskId}/${formatType}`));
345
+ }
346
+ async function updateBoardFormat(i) {
347
+ const taskId = getLocatorValue.call(this, 'taskId', i);
348
+ const formatType = this.getNodeParameter('boardFormatType', i);
349
+ const body = {};
350
+ if (formatType === 'assignedToTaskBoardFormat') {
351
+ const unassignedOrderHint = this.getNodeParameter('unassignedOrderHint', i, '');
352
+ if (unassignedOrderHint) {
353
+ body.unassignedOrderHint = unassignedOrderHint;
354
+ }
355
+ const orderHints = GenericFunctions_1.parseJson.call(this, this.getNodeParameter('orderHintsByAssignee', i, '{}'), 'Order Hints by Assignee (JSON)', i);
356
+ if (orderHints && typeof orderHints === 'object' && Object.keys(orderHints).length > 0) {
357
+ body.orderHintsByAssignee = orderHints;
358
+ }
359
+ }
360
+ else {
361
+ body.orderHint = this.getNodeParameter('boardOrderHint', i);
362
+ }
363
+ if (Object.keys(body).length === 0) {
364
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Nothing to update', { itemIndex: i });
365
+ }
366
+ return await GenericFunctions_1.patchWithETag.call(this, `/planner/tasks/${taskId}/${formatType}`, () => body);
367
+ }
368
+ async function executeTask(operation, i, userCache) {
369
+ switch (operation) {
370
+ case 'create':
371
+ return await create.call(this, i, userCache);
372
+ case 'get':
373
+ return await get.call(this, i);
374
+ case 'getAll':
375
+ return await getAll.call(this, i, userCache);
376
+ case 'update':
377
+ return await update.call(this, i, userCache);
378
+ case 'delete':
379
+ return await remove.call(this, i);
380
+ case 'getFiles':
381
+ return await getFiles.call(this, i);
382
+ case 'getBoardFormat':
383
+ return await getBoardFormat.call(this, i);
384
+ case 'updateBoardFormat':
385
+ return await updateBoardFormat.call(this, i);
386
+ default:
387
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unsupported task operation "${operation}"`, {
388
+ itemIndex: i,
389
+ });
390
+ }
391
+ }
392
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../nodes/MicrosoftPlanner/actions/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@blickwerk/n8n-nodes-microsoft-planner",
3
+ "version": "1.6.0",
4
+ "description": "n8n community node for Microsoft Planner - manage plans, buckets, tasks, checklists, attachments, labels and comments via Microsoft Graph",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "microsoft",
9
+ "planner",
10
+ "microsoft-graph",
11
+ "tasks"
12
+ ],
13
+ "license": "MIT",
14
+ "homepage": "https://github.com/blickwerk/n8n-nodes-microsoft-planner",
15
+ "author": {
16
+ "name": "Blickwerk Media UG",
17
+ "email": "hello@blickwerk.media",
18
+ "url": "https://blickwerk.media"
19
+ },
20
+ "contributors": [
21
+ "United Workspace GmbH <hello@united-workspace.de> (https://united-workspace.de)"
22
+ ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/blickwerk/n8n-nodes-microsoft-planner.git"
26
+ },
27
+ "scripts": {
28
+ "build": "n8n-node build",
29
+ "build:watch": "tsc --watch",
30
+ "dev": "n8n-node dev",
31
+ "format": "prettier nodes credentials --write",
32
+ "lint": "n8n-node lint",
33
+ "lint:fix": "n8n-node lint --fix",
34
+ "release": "n8n-node release",
35
+ "prepublishOnly": "n8n-node prerelease"
36
+ },
37
+ "files": [
38
+ "dist"
39
+ ],
40
+ "n8n": {
41
+ "n8nNodesApiVersion": 1,
42
+ "strict": true,
43
+ "credentials": [
44
+ "dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js"
45
+ ],
46
+ "nodes": [
47
+ "dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js"
48
+ ]
49
+ },
50
+ "devDependencies": {
51
+ "@n8n/node-cli": "^0.55.5",
52
+ "eslint": "9.32.0",
53
+ "prettier": "3.6.2",
54
+ "release-it": "^21.1.0",
55
+ "typescript": "5.9.2"
56
+ },
57
+ "peerDependencies": {
58
+ "n8n-workflow": "*"
59
+ }
60
+ }