@blickwerk/n8n-nodes-microsoft-planner 1.5.5 → 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 (40) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +527 -459
  3. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.d.ts +2 -2
  4. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js +9 -28
  5. package/dist/credentials/MicrosoftPlannerOAuth2Api.credentials.js.map +1 -0
  6. package/dist/nodes/MicrosoftPlanner/BucketDescription.js +30 -23
  7. package/dist/nodes/MicrosoftPlanner/BucketDescription.js.map +1 -0
  8. package/dist/nodes/MicrosoftPlanner/CommentDescription.js +10 -14
  9. package/dist/nodes/MicrosoftPlanner/CommentDescription.js.map +1 -0
  10. package/dist/nodes/MicrosoftPlanner/GenericFunctions.d.ts +15 -18
  11. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js +222 -70
  12. package/dist/nodes/MicrosoftPlanner/GenericFunctions.js.map +1 -0
  13. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.d.ts +6 -10
  14. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js +100 -826
  15. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.js.map +1 -0
  16. package/dist/nodes/MicrosoftPlanner/MicrosoftPlanner.node.json +18 -0
  17. package/dist/nodes/MicrosoftPlanner/PlanDescription.js +207 -57
  18. package/dist/nodes/MicrosoftPlanner/PlanDescription.js.map +1 -0
  19. package/dist/nodes/MicrosoftPlanner/SharedFields.d.ts +10 -0
  20. package/dist/nodes/MicrosoftPlanner/SharedFields.js +316 -0
  21. package/dist/nodes/MicrosoftPlanner/SharedFields.js.map +1 -0
  22. package/dist/nodes/MicrosoftPlanner/TaskDescription.d.ts +1 -1
  23. package/dist/nodes/MicrosoftPlanner/TaskDescription.js +226 -583
  24. package/dist/nodes/MicrosoftPlanner/TaskDescription.js.map +1 -0
  25. package/dist/nodes/MicrosoftPlanner/actions/bucket.d.ts +2 -0
  26. package/dist/nodes/MicrosoftPlanner/actions/bucket.js +72 -0
  27. package/dist/nodes/MicrosoftPlanner/actions/bucket.js.map +1 -0
  28. package/dist/nodes/MicrosoftPlanner/actions/comment.d.ts +2 -0
  29. package/dist/nodes/MicrosoftPlanner/actions/comment.js +100 -0
  30. package/dist/nodes/MicrosoftPlanner/actions/comment.js.map +1 -0
  31. package/dist/nodes/MicrosoftPlanner/actions/plan.d.ts +4 -0
  32. package/dist/nodes/MicrosoftPlanner/actions/plan.js +116 -0
  33. package/dist/nodes/MicrosoftPlanner/actions/plan.js.map +1 -0
  34. package/dist/nodes/MicrosoftPlanner/actions/task.d.ts +4 -0
  35. package/dist/nodes/MicrosoftPlanner/actions/task.js +392 -0
  36. package/dist/nodes/MicrosoftPlanner/actions/task.js.map +1 -0
  37. package/dist/nodes/MicrosoftPlanner/planner.svg +51 -51
  38. package/dist/package.json +60 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/package.json +60 -63
@@ -1,10 +1,10 @@
1
- import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
1
+ import type { ICredentialTestRequest, ICredentialType, Icon, INodeProperties } from 'n8n-workflow';
2
2
  export declare class MicrosoftPlannerOAuth2Api implements ICredentialType {
3
3
  name: string;
4
4
  extends: string[];
5
5
  displayName: string;
6
+ icon: Icon;
6
7
  documentationUrl: string;
7
8
  properties: INodeProperties[];
8
- authenticate: IAuthenticateGeneric;
9
9
  test: ICredentialTestRequest;
10
10
  }
@@ -6,8 +6,11 @@ class MicrosoftPlannerOAuth2Api {
6
6
  this.name = 'microsoftPlannerOAuth2Api';
7
7
  this.extends = ['oAuth2Api'];
8
8
  this.displayName = 'Microsoft Planner OAuth2 API';
9
- // eslint-disable-next-line n8n-nodes-base/cred-class-field-documentation-url-miscased
10
- this.documentationUrl = 'https://docs.microsoft.com/en-us/graph/auth-v2-user';
9
+ this.icon = {
10
+ light: 'file:../nodes/MicrosoftPlanner/planner.svg',
11
+ dark: 'file:../nodes/MicrosoftPlanner/planner.svg',
12
+ };
13
+ this.documentationUrl = 'https://github.com/blickwerk/n8n-nodes-microsoft-planner?tab=readme-ov-file#credentials';
11
14
  this.properties = [
12
15
  {
13
16
  displayName: 'Grant Type',
@@ -20,6 +23,7 @@ class MicrosoftPlannerOAuth2Api {
20
23
  name: 'authUrl',
21
24
  type: 'string',
22
25
  default: 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
26
+ description: 'For single-tenant app registrations, replace "common" with your Directory (tenant) ID',
23
27
  required: true,
24
28
  },
25
29
  {
@@ -27,13 +31,14 @@ class MicrosoftPlannerOAuth2Api {
27
31
  name: 'accessTokenUrl',
28
32
  type: 'string',
29
33
  default: 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
34
+ description: 'For single-tenant app registrations, replace "common" with your Directory (tenant) ID',
30
35
  required: true,
31
36
  },
32
37
  {
33
38
  displayName: 'Scope',
34
39
  name: 'scope',
35
40
  type: 'hidden',
36
- default: 'openid offline_access Tasks.ReadWrite Group.ReadWrite.All',
41
+ default: 'openid offline_access User.Read User.ReadBasic.All Tasks.ReadWrite Group.ReadWrite.All',
37
42
  },
38
43
  {
39
44
  displayName: 'Auth URI Query Parameters',
@@ -47,32 +52,7 @@ class MicrosoftPlannerOAuth2Api {
47
52
  type: 'hidden',
48
53
  default: 'body',
49
54
  },
50
- {
51
- displayName: 'Client ID',
52
- name: 'clientId',
53
- type: 'string',
54
- default: '',
55
- required: true,
56
- },
57
- {
58
- displayName: 'Client Secret',
59
- name: 'clientSecret',
60
- type: 'string',
61
- typeOptions: {
62
- password: true,
63
- },
64
- default: '',
65
- required: true,
66
- },
67
55
  ];
68
- this.authenticate = {
69
- type: 'generic',
70
- properties: {
71
- headers: {
72
- Authorization: '={{$credentials.tokenType}} {{$credentials.accessToken}}',
73
- },
74
- },
75
- };
76
56
  this.test = {
77
57
  request: {
78
58
  baseURL: 'https://graph.microsoft.com/v1.0',
@@ -82,3 +62,4 @@ class MicrosoftPlannerOAuth2Api {
82
62
  }
83
63
  }
84
64
  exports.MicrosoftPlannerOAuth2Api = MicrosoftPlannerOAuth2Api;
65
+ //# sourceMappingURL=MicrosoftPlannerOAuth2Api.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MicrosoftPlannerOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/MicrosoftPlannerOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,yBAAyB;IAAtC;QACC,SAAI,GAAG,2BAA2B,CAAC;QAEnC,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,8BAA8B,CAAC;QAE7C,SAAI,GAAS;YACZ,KAAK,EAAE,4CAA4C;YACnD,IAAI,EAAE,4CAA4C;SAClD,CAAC;QAEF,qBAAgB,GACf,yFAAyF,CAAC;QAE3F,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;aAC5B;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gEAAgE;gBACzE,WAAW,EACV,uFAAuF;gBACxF,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,4DAA4D;gBACrE,WAAW,EACV,uFAAuF;gBACxF,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EACN,wFAAwF;aACzF;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qBAAqB;aAC9B;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,kCAAkC;gBAC3C,GAAG,EAAE,KAAK;aACV;SACD,CAAC;IACH,CAAC;CAAA;AAnED,8DAmEC"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.bucketFields = exports.bucketOperations = void 0;
4
- // ----------------------------------
5
- // Bucket operations
6
- // ----------------------------------
7
4
  exports.bucketOperations = [
8
5
  {
9
6
  displayName: 'Operation',
@@ -22,6 +19,12 @@ exports.bucketOperations = [
22
19
  description: 'Create a new bucket in a plan',
23
20
  action: 'Create a bucket',
24
21
  },
22
+ {
23
+ name: 'Delete',
24
+ value: 'delete',
25
+ description: 'Delete a bucket',
26
+ action: 'Delete a bucket',
27
+ },
25
28
  {
26
29
  name: 'Get',
27
30
  value: 'get',
@@ -40,23 +43,11 @@ exports.bucketOperations = [
40
43
  description: 'Update a bucket',
41
44
  action: 'Update a bucket',
42
45
  },
43
- {
44
- name: 'Delete',
45
- value: 'delete',
46
- description: 'Delete a bucket',
47
- action: 'Delete a bucket',
48
- },
49
46
  ],
50
47
  default: 'getAll',
51
48
  },
52
49
  ];
53
- // ----------------------------------
54
- // Bucket fields
55
- // ----------------------------------
56
50
  exports.bucketFields = [
57
- // ----------------------------------
58
- // bucket:create
59
- // ----------------------------------
60
51
  {
61
52
  displayName: 'Plan ID',
62
53
  name: 'planId',
@@ -71,10 +62,6 @@ exports.bucketFields = [
71
62
  default: '',
72
63
  description: 'The ID of the plan this bucket belongs to',
73
64
  },
74
- // ----------------------------------
75
- // bucket:getAll
76
- // ----------------------------------
77
- // No Return All / Limit options; Graph does not support $top/$limit for Planner.
78
65
  {
79
66
  displayName: 'Name',
80
67
  name: 'name',
@@ -102,6 +89,28 @@ exports.bucketFields = [
102
89
  },
103
90
  description: 'Whether to return the existing bucket if one with the same name already exists in the plan',
104
91
  },
92
+ {
93
+ displayName: 'Additional Fields',
94
+ name: 'additionalFields',
95
+ type: 'collection',
96
+ placeholder: 'Add Field',
97
+ default: {},
98
+ displayOptions: {
99
+ show: {
100
+ resource: ['bucket'],
101
+ operation: ['create'],
102
+ },
103
+ },
104
+ options: [
105
+ {
106
+ displayName: 'Order Hint',
107
+ name: 'orderHint',
108
+ type: 'string',
109
+ default: '',
110
+ description: 'Used to sort buckets in the plan (e.g. " !" to put the bucket first)',
111
+ },
112
+ ],
113
+ },
105
114
  {
106
115
  displayName: 'Additional Fields',
107
116
  name: 'additionalFields',
@@ -120,13 +129,10 @@ exports.bucketFields = [
120
129
  name: 'select',
121
130
  type: 'string',
122
131
  default: '',
123
- description: 'Comma-separated list of properties to specify which fields to return (e.g. id,name)',
132
+ description: 'Comma-separated list of properties to specify which fields to return (e.g. name,orderHint). The ID is always returned.',
124
133
  },
125
134
  ],
126
135
  },
127
- // ----------------------------------
128
- // bucket:get / bucket:update / bucket:delete
129
- // ----------------------------------
130
136
  {
131
137
  displayName: 'Bucket ID',
132
138
  name: 'bucketId',
@@ -171,3 +177,4 @@ exports.bucketFields = [
171
177
  ],
172
178
  },
173
179
  ];
180
+ //# sourceMappingURL=BucketDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BucketDescription.js","sourceRoot":"","sources":["../../../nodes/MicrosoftPlanner/BucketDescription.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.commentFields = exports.commentOperations = void 0;
4
- // ----------------------------------
5
- // Comment operations
6
- // ----------------------------------
7
4
  exports.commentOperations = [
8
5
  {
9
6
  displayName: 'Operation',
@@ -25,20 +22,14 @@ exports.commentOperations = [
25
22
  {
26
23
  name: 'Get Many',
27
24
  value: 'getAll',
28
- description: 'Get all comments from a task',
25
+ description: 'Get many comments from a task',
29
26
  action: 'Get many comments',
30
27
  },
31
28
  ],
32
29
  default: 'create',
33
30
  },
34
31
  ];
35
- // ----------------------------------
36
- // Comment fields
37
- // ----------------------------------
38
32
  exports.commentFields = [
39
- // ----------------------------------
40
- // comment:create
41
- // ----------------------------------
42
33
  {
43
34
  displayName: 'Task',
44
35
  name: 'taskId',
@@ -110,9 +101,6 @@ exports.commentFields = [
110
101
  },
111
102
  ],
112
103
  },
113
- // ----------------------------------
114
- // comment:getAll
115
- // ----------------------------------
116
104
  {
117
105
  displayName: 'Task',
118
106
  name: 'taskId',
@@ -153,8 +141,16 @@ exports.commentFields = [
153
141
  name: 'select',
154
142
  type: 'string',
155
143
  default: '',
156
- description: 'Comma-separated list of properties to specify which fields to return (e.g. id,content)',
144
+ description: 'Comma-separated list of post properties to request (e.g. body,from,createdDateTime). The ID is always returned.',
145
+ },
146
+ {
147
+ displayName: 'Split Into Items',
148
+ name: 'splitIntoItems',
149
+ type: 'boolean',
150
+ default: false,
151
+ description: 'Whether to output one item per comment instead of one item containing all comments',
157
152
  },
158
153
  ],
159
154
  },
160
155
  ];
156
+ //# sourceMappingURL=CommentDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommentDescription.js","sourceRoot":"","sources":["../../../nodes/MicrosoftPlanner/CommentDescription.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,21 @@
1
- import { IDataObject, IExecuteFunctions, IHookFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
2
- export declare function microsoftApiRequest(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, resource: string, body?: IDataObject, qs?: IDataObject, uri?: string, headers?: IDataObject): Promise<any>;
3
- export declare function microsoftApiRequestAllItems(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, propertyName: string, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<any>;
1
+ import type { IDataObject, IExecuteFunctions, IHookFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
2
+ export type PlannerContext = IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions;
3
+ export declare const GRAPH_BASE_URL = "https://graph.microsoft.com/v1.0";
4
+ export declare function microsoftApiRequest(this: PlannerContext, method: IHttpRequestMethods, resource: string, body?: IDataObject, qs?: IDataObject, uri?: string, headers?: IDataObject): Promise<any>;
5
+ export declare function microsoftApiRequestAllItems(this: PlannerContext, propertyName: string, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<IDataObject[]>;
4
6
  export declare function cleanETag(eTag: string): string;
5
- export declare function formatDateTime(dateTime: string | undefined): string | undefined;
6
- export declare function getUserIdByEmail(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, email: string): Promise<string>;
7
+ export declare function patchWithETag(this: PlannerContext, endpoint: string, buildBody: (current: IDataObject) => IDataObject | Promise<IDataObject>): Promise<IDataObject>;
8
+ export declare function deleteWithETag(this: PlannerContext, endpoint: string): Promise<void>;
9
+ export declare function formatDateTime(dateTime: unknown): string | undefined;
10
+ export declare function getUserIdByEmail(this: PlannerContext, email: string, cache?: Map<string, string>): Promise<string>;
11
+ export declare function resolveUserIds(this: PlannerContext, input: unknown, cache?: Map<string, string>): Promise<string[]>;
12
+ export declare function parseList(value: unknown): string[];
7
13
  export declare function parseAssignments(assignments: string | string[]): string[];
8
14
  export declare function createAssignmentsObject(userIds: string[]): IDataObject;
9
- /**
10
- * Encodes a URL for use as a key in plannerExternalReferences.
11
- * OData requires keys in open types to be free of certain special characters like '.',
12
- * which must be encoded.
13
- */
14
15
  export declare function encodeReferenceKey(url: string): string;
15
- /**
16
- * Generates a GUID/UUID v4.
17
- * Useful for creating new ID keys for checklist items.
18
- */
16
+ export declare function decodeReferenceKey(key: string): string;
19
17
  export declare function generateGuid(): string;
20
- /**
21
- * Formats comment content for Microsoft Graph API conversation posts.
22
- * Wraps plain text in HTML paragraph tags if needed.
23
- */
24
18
  export declare function formatCommentContent(content: string, contentType?: string): IDataObject;
19
+ export declare function parseJson<T>(this: PlannerContext, value: unknown, fieldName: string, itemIndex: number): T;
20
+ export declare const CATEGORY_COLORS: Record<string, string>;
21
+ export declare function getPlanGroupId(this: PlannerContext, planId: string): Promise<string>;