@advenimuss/n8n-nodes-msgraph 0.2.0 → 0.2.2
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.
- package/README.md +180 -1
- package/dist/credentials/MsGraphOAuth2Api.credentials.d.ts +1 -0
- package/dist/credentials/MsGraphOAuth2Api.credentials.js +17 -23
- package/dist/credentials/MsGraphOAuth2Api.credentials.js.map +1 -1
- package/dist/nodes/MsGraph.node.js +192 -285
- package/dist/nodes/MsGraph.node.js.map +1 -1
- package/dist/nodes/msgraph.svg +1 -0
- package/package.json +6 -6
- /package/dist/{icons → nodes}/icon.svg +0 -0
package/README.md
CHANGED
|
@@ -1 +1,180 @@
|
|
|
1
|
-
|
|
1
|
+
# n8n-nodes-msgraph
|
|
2
|
+
|
|
3
|
+
This is a custom n8n node that provides enhanced Microsoft Graph API integration with built-in rate limiting and retry handling. It allows you to make requests to any Microsoft Graph API endpoint while automatically handling throttling responses (HTTP 429) using Microsoft's recommended retry-after approach.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
* 🔄 Automatic rate limit handling with retry logic
|
|
8
|
+
* ⏱️ Configurable retry intervals using Microsoft's retry-after header
|
|
9
|
+
* 🎯 Support for all Microsoft Graph API endpoints
|
|
10
|
+
* 🔐 OAuth2 authentication support
|
|
11
|
+
* 📝 Detailed error handling and logging
|
|
12
|
+
* 🛠️ Configurable request parameters (method, URL, headers, query parameters, body)
|
|
13
|
+
* 📦 Response format selection (JSON/String)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
You can install this node in your n8n instance by:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @advenimuss/n8n-nodes-msgraph
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
1. Create a new Microsoft Graph API credential in n8n:
|
|
28
|
+
* Go to Settings > Credentials > New
|
|
29
|
+
* Search for "Microsoft Graph API"
|
|
30
|
+
* Configure with your Azure AD application details (or with an existing access token via a previous API call to get the token with a client secret)
|
|
31
|
+
2. In your workflow:
|
|
32
|
+
* Add the "Microsoft Graph" node
|
|
33
|
+
* Select your credential
|
|
34
|
+
* Configure the HTTP method, URL, and other parameters
|
|
35
|
+
* Enable/configure rate limit handling if needed
|
|
36
|
+
|
|
37
|
+
## Rate Limiting Features
|
|
38
|
+
|
|
39
|
+
The node includes smart handling of Microsoft Graph API rate limits:
|
|
40
|
+
|
|
41
|
+
* Automatically detects HTTP 429 responses
|
|
42
|
+
* Uses the retry-after header from Microsoft's response
|
|
43
|
+
* Configurable maximum retry attempts
|
|
44
|
+
* Customizable retry delay with expression support
|
|
45
|
+
* Detailed logging of retry attempts
|
|
46
|
+
|
|
47
|
+
## Development Setup
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
1. Clone this repository:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git clone https://github.com/advenimuss/n8n-nodes-msgraph.git
|
|
54
|
+
cd n8n-nodes-msgraph
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
2. Install dependencies:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm install
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
3. Build the node:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm run build
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
4. Link for local testing:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm link
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
5. In your local n8n installation directory:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npm link @advenimuss/n8n-nodes-msgraph
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Testing
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
1. Run the linter:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm run lint
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
2. Fix linting issues:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm run lintfix
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Building for Production
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
1. Update version in package.json
|
|
105
|
+
2. Build the project:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npm run build
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
3. Test the build:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npm run lint
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Publishing to npm
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
1. Login to npm:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npm login
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
2. Publish the package:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npm publish --access public
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Example Usage
|
|
135
|
+
|
|
136
|
+
### Basic GET Request
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
{
|
|
140
|
+
"resource": "custom",
|
|
141
|
+
"method": "GET",
|
|
142
|
+
"url": "https://graph.microsoft.com/v1.0/me",
|
|
143
|
+
"authentication": "msGraphOAuth2Api"
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Handling Rate Limits
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
{
|
|
151
|
+
"resource": "custom",
|
|
152
|
+
"method": "GET",
|
|
153
|
+
"url": "https://graph.microsoft.com/v1.0/users",
|
|
154
|
+
"authentication": "msGraphOAuth2Api",
|
|
155
|
+
"options": {
|
|
156
|
+
"enableThrottling": true,
|
|
157
|
+
"maxRetries": 5,
|
|
158
|
+
"retryAfter": "{{$response.headers['retry-after'] || 2}}"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
[MIT](LICENSE)
|
|
166
|
+
|
|
167
|
+
## Support
|
|
168
|
+
|
|
169
|
+
* Create an issue in this repository
|
|
170
|
+
|
|
171
|
+
## Contributing
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
1. Fork the repository
|
|
175
|
+
2. Create a feature branch
|
|
176
|
+
3. Commit your changes
|
|
177
|
+
4. Push to the branch
|
|
178
|
+
5. Create a Pull Request
|
|
179
|
+
|
|
180
|
+
|
|
@@ -4,22 +4,24 @@ exports.MsGraphOAuth2Api = void 0;
|
|
|
4
4
|
class MsGraphOAuth2Api {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.name = 'msGraphOAuth2Api';
|
|
7
|
+
this.extends = ['oAuth2Api']; // CRITICAL: Enables n8n's OAuth handler
|
|
7
8
|
this.displayName = 'Microsoft Graph OAuth2 API';
|
|
8
|
-
this.documentationUrl = 'https://docs.microsoft.com/en-us/graph/auth-v2-
|
|
9
|
+
this.documentationUrl = 'https://docs.microsoft.com/en-us/graph/auth-v2-service';
|
|
9
10
|
this.properties = [
|
|
10
11
|
{
|
|
11
|
-
displayName: '
|
|
12
|
-
name: '
|
|
13
|
-
type: '
|
|
14
|
-
default: '
|
|
15
|
-
required: true,
|
|
12
|
+
displayName: 'Grant Type',
|
|
13
|
+
name: 'grantType',
|
|
14
|
+
type: 'hidden',
|
|
15
|
+
default: 'clientCredentials', // App-only flow (no user interaction)
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
displayName: 'Token URL',
|
|
19
|
-
name: '
|
|
18
|
+
displayName: 'Access Token URL',
|
|
19
|
+
name: 'accessTokenUrl',
|
|
20
20
|
type: 'string',
|
|
21
|
-
default: '
|
|
21
|
+
default: '',
|
|
22
22
|
required: true,
|
|
23
|
+
placeholder: 'https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token',
|
|
24
|
+
description: 'Token endpoint URL. Replace {tenant-id} with your Azure AD Tenant ID (GUID). Client credentials flow requires tenant-specific URL - cannot use /common/.',
|
|
23
25
|
},
|
|
24
26
|
{
|
|
25
27
|
displayName: 'Client ID',
|
|
@@ -27,6 +29,7 @@ class MsGraphOAuth2Api {
|
|
|
27
29
|
type: 'string',
|
|
28
30
|
default: '',
|
|
29
31
|
required: true,
|
|
32
|
+
description: 'Application (client) ID from your Azure AD app registration',
|
|
30
33
|
},
|
|
31
34
|
{
|
|
32
35
|
displayName: 'Client Secret',
|
|
@@ -37,30 +40,21 @@ class MsGraphOAuth2Api {
|
|
|
37
40
|
},
|
|
38
41
|
default: '',
|
|
39
42
|
required: true,
|
|
43
|
+
description: 'Client secret value (not the secret ID) from Azure AD app registration → Certificates & secrets',
|
|
40
44
|
},
|
|
41
45
|
{
|
|
42
46
|
displayName: 'Scope',
|
|
43
47
|
name: 'scope',
|
|
44
48
|
type: 'string',
|
|
45
|
-
default: '
|
|
46
|
-
description: 'Space-separated list of scopes to request',
|
|
49
|
+
default: 'https://graph.microsoft.com/.default',
|
|
47
50
|
required: true,
|
|
51
|
+
description: 'For client credentials, use .default to get all granted Application permissions. Do not change unless you know what you are doing.',
|
|
48
52
|
},
|
|
49
53
|
{
|
|
50
54
|
displayName: 'Authentication',
|
|
51
55
|
name: 'authentication',
|
|
52
|
-
type: '
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
name: 'Body',
|
|
56
|
-
value: 'body',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'Header',
|
|
60
|
-
value: 'header',
|
|
61
|
-
},
|
|
62
|
-
],
|
|
63
|
-
default: 'header',
|
|
56
|
+
type: 'hidden',
|
|
57
|
+
default: 'body', // Microsoft prefers credentials in body for client credentials
|
|
64
58
|
},
|
|
65
59
|
];
|
|
66
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsGraphOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/MsGraphOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAKA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAC1B,gBAAW,GAAG,4BAA4B,CAAC;QAC3C,qBAAgB,GAAG,
|
|
1
|
+
{"version":3,"file":"MsGraphOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/MsGraphOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAKA,MAAa,gBAAgB;IAA7B;QACC,SAAI,GAAG,kBAAkB,CAAC;QAC1B,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,wCAAwC;QACjE,gBAAW,GAAG,4BAA4B,CAAC;QAC3C,qBAAgB,GAAG,wDAAwD,CAAC;QAE5E,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB,EAAE,sCAAsC;aACpE;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,iEAAiE;gBAC9E,WAAW,EAAE,0JAA0J;aACvK;YACD;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,6DAA6D;aAC1E;YACD;gBACC,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,iGAAiG;aAC9G;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,sCAAsC;gBAC/C,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,oIAAoI;aACjJ;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM,EAAE,+DAA+D;aAChF;SACD,CAAC;IACH,CAAC;CAAA;AAxDD,4CAwDC"}
|
|
@@ -7,7 +7,7 @@ class MsGraph {
|
|
|
7
7
|
this.description = {
|
|
8
8
|
displayName: 'Microsoft Graph',
|
|
9
9
|
name: 'msGraph',
|
|
10
|
-
icon: 'file
|
|
10
|
+
icon: 'file:msgraph.svg',
|
|
11
11
|
group: ['transform'],
|
|
12
12
|
version: 1,
|
|
13
13
|
subtitle: '={{$parameter["method"] + ": " + $parameter["url"]}}',
|
|
@@ -15,263 +15,165 @@ class MsGraph {
|
|
|
15
15
|
defaults: {
|
|
16
16
|
name: 'Microsoft Graph',
|
|
17
17
|
},
|
|
18
|
-
// @ts-expect-error - n8n types issue
|
|
19
18
|
inputs: ['main'],
|
|
20
|
-
// @ts-expect-error - n8n types issue
|
|
21
19
|
outputs: ['main'],
|
|
22
20
|
credentials: [
|
|
23
21
|
{
|
|
24
22
|
name: 'msGraphOAuth2Api',
|
|
25
23
|
required: false,
|
|
24
|
+
displayOptions: {
|
|
25
|
+
show: {
|
|
26
|
+
authentication: ['oauth2'],
|
|
27
|
+
},
|
|
28
|
+
},
|
|
26
29
|
},
|
|
27
30
|
],
|
|
28
31
|
properties: [
|
|
32
|
+
// ==================== Authentication ====================
|
|
29
33
|
{
|
|
30
34
|
displayName: 'Authentication',
|
|
31
35
|
name: 'authentication',
|
|
32
36
|
type: 'options',
|
|
33
37
|
options: [
|
|
34
38
|
{
|
|
35
|
-
name: 'OAuth2 (
|
|
39
|
+
name: 'OAuth2 (Client Credentials)',
|
|
36
40
|
value: 'oauth2',
|
|
41
|
+
description: 'Use OAuth2 credentials configured in n8n (recommended)',
|
|
37
42
|
},
|
|
38
43
|
{
|
|
39
|
-
name: 'Access Token',
|
|
44
|
+
name: 'Access Token (Manual)',
|
|
40
45
|
value: 'accessToken',
|
|
46
|
+
description: 'Provide a pre-obtained access token',
|
|
41
47
|
},
|
|
42
48
|
],
|
|
43
49
|
default: 'oauth2',
|
|
44
|
-
description: '
|
|
50
|
+
description: 'How to authenticate with Microsoft Graph API',
|
|
45
51
|
},
|
|
46
52
|
{
|
|
47
53
|
displayName: 'Access Token',
|
|
48
54
|
name: 'accessToken',
|
|
49
55
|
type: 'string',
|
|
56
|
+
typeOptions: {
|
|
57
|
+
password: true,
|
|
58
|
+
},
|
|
50
59
|
displayOptions: {
|
|
51
60
|
show: {
|
|
52
61
|
authentication: ['accessToken'],
|
|
53
62
|
},
|
|
54
63
|
},
|
|
55
64
|
default: '',
|
|
56
|
-
description: 'Access token obtained from Microsoft Identity Platform (Azure AD). Can be set via an expression from the result of a previous node.',
|
|
57
65
|
required: true,
|
|
66
|
+
description: 'Bearer token obtained from Microsoft Identity Platform. Can use an expression to reference output from a previous node.',
|
|
58
67
|
},
|
|
68
|
+
// ==================== Request Configuration ====================
|
|
59
69
|
{
|
|
60
70
|
displayName: 'HTTP Method',
|
|
61
71
|
name: 'method',
|
|
62
72
|
type: 'options',
|
|
63
73
|
options: [
|
|
64
|
-
{
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'GET',
|
|
70
|
-
value: 'GET',
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: 'PATCH',
|
|
74
|
-
value: 'PATCH',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: 'POST',
|
|
78
|
-
value: 'POST',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: 'PUT',
|
|
82
|
-
value: 'PUT',
|
|
83
|
-
},
|
|
74
|
+
{ name: 'GET', value: 'GET' },
|
|
75
|
+
{ name: 'POST', value: 'POST' },
|
|
76
|
+
{ name: 'PATCH', value: 'PATCH' },
|
|
77
|
+
{ name: 'PUT', value: 'PUT' },
|
|
78
|
+
{ name: 'DELETE', value: 'DELETE' },
|
|
84
79
|
],
|
|
85
80
|
default: 'GET',
|
|
86
|
-
description: '
|
|
81
|
+
description: 'HTTP method for the request',
|
|
87
82
|
},
|
|
88
83
|
{
|
|
89
84
|
displayName: 'URL',
|
|
90
85
|
name: 'url',
|
|
91
86
|
type: 'string',
|
|
92
87
|
default: '',
|
|
93
|
-
placeholder: 'https://graph.microsoft.com/v1.0/
|
|
94
|
-
description: 'The URL to make the request to',
|
|
88
|
+
placeholder: 'https://graph.microsoft.com/v1.0/users',
|
|
95
89
|
required: true,
|
|
90
|
+
description: 'Full Microsoft Graph API URL. Use v1.0 for production, beta for preview features.',
|
|
96
91
|
},
|
|
97
92
|
{
|
|
98
|
-
displayName: '
|
|
99
|
-
name: '
|
|
100
|
-
|
|
93
|
+
displayName: 'Request Body',
|
|
94
|
+
name: 'body',
|
|
95
|
+
type: 'json',
|
|
96
|
+
displayOptions: {
|
|
97
|
+
show: {
|
|
98
|
+
method: ['PATCH', 'POST', 'PUT'],
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
default: '',
|
|
102
|
+
description: 'JSON body for the request',
|
|
103
|
+
},
|
|
104
|
+
// ==================== Query Parameters ====================
|
|
105
|
+
{
|
|
106
|
+
displayName: 'Query Parameters',
|
|
107
|
+
name: 'queryParameters',
|
|
108
|
+
placeholder: 'Add Parameter',
|
|
101
109
|
type: 'fixedCollection',
|
|
102
110
|
typeOptions: {
|
|
103
111
|
multipleValues: true,
|
|
104
112
|
},
|
|
105
113
|
default: {},
|
|
114
|
+
description: 'OData query parameters like $select, $filter, $expand, $top, etc.',
|
|
106
115
|
options: [
|
|
107
116
|
{
|
|
108
117
|
name: 'parameter',
|
|
109
|
-
displayName: '
|
|
118
|
+
displayName: 'Parameter',
|
|
110
119
|
values: [
|
|
111
120
|
{
|
|
112
121
|
displayName: 'Name',
|
|
113
122
|
name: 'name',
|
|
114
123
|
type: 'string',
|
|
115
124
|
default: '',
|
|
116
|
-
|
|
125
|
+
placeholder: '$select',
|
|
126
|
+
description: 'Parameter name (e.g., $select, $filter, $expand, $top, $orderby)',
|
|
117
127
|
},
|
|
118
128
|
{
|
|
119
129
|
displayName: 'Value',
|
|
120
130
|
name: 'value',
|
|
121
131
|
type: 'string',
|
|
122
132
|
default: '',
|
|
123
|
-
|
|
133
|
+
placeholder: 'id,displayName,mail',
|
|
134
|
+
description: 'Parameter value',
|
|
124
135
|
},
|
|
125
136
|
],
|
|
126
137
|
},
|
|
127
138
|
],
|
|
128
139
|
},
|
|
140
|
+
// ==================== Headers ====================
|
|
129
141
|
{
|
|
130
|
-
displayName: '
|
|
131
|
-
name: '
|
|
132
|
-
placeholder: 'Add
|
|
142
|
+
displayName: 'Headers',
|
|
143
|
+
name: 'headers',
|
|
144
|
+
placeholder: 'Add Header',
|
|
133
145
|
type: 'fixedCollection',
|
|
134
146
|
typeOptions: {
|
|
135
147
|
multipleValues: true,
|
|
136
148
|
},
|
|
137
149
|
default: {},
|
|
150
|
+
description: 'Custom HTTP headers to include in the request',
|
|
138
151
|
options: [
|
|
139
152
|
{
|
|
140
153
|
name: 'parameter',
|
|
141
|
-
displayName: '
|
|
154
|
+
displayName: 'Header',
|
|
142
155
|
values: [
|
|
143
156
|
{
|
|
144
157
|
displayName: 'Name',
|
|
145
158
|
name: 'name',
|
|
146
159
|
type: 'string',
|
|
147
160
|
default: '',
|
|
148
|
-
|
|
161
|
+
placeholder: 'ConsistencyLevel',
|
|
162
|
+
description: 'Header name',
|
|
149
163
|
},
|
|
150
164
|
{
|
|
151
165
|
displayName: 'Value',
|
|
152
166
|
name: 'value',
|
|
153
167
|
type: 'string',
|
|
154
168
|
default: '',
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
],
|
|
158
|
-
},
|
|
159
|
-
],
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
displayName: 'Body',
|
|
163
|
-
name: 'body',
|
|
164
|
-
type: 'json',
|
|
165
|
-
displayOptions: {
|
|
166
|
-
show: {
|
|
167
|
-
method: ['PATCH', 'POST', 'PUT'],
|
|
168
|
-
},
|
|
169
|
-
},
|
|
170
|
-
default: '',
|
|
171
|
-
description: 'Body of the request',
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
displayName: 'Response Format',
|
|
175
|
-
name: 'responseFormat',
|
|
176
|
-
type: 'options',
|
|
177
|
-
options: [
|
|
178
|
-
{
|
|
179
|
-
name: 'JSON',
|
|
180
|
-
value: 'json',
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
name: 'String',
|
|
184
|
-
value: 'string',
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
default: 'json',
|
|
188
|
-
description: 'The format in which the data gets returned from the URL',
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
displayName: 'Handle Throttling',
|
|
192
|
-
name: 'handleThrottling',
|
|
193
|
-
type: 'fixedCollection',
|
|
194
|
-
typeOptions: {
|
|
195
|
-
multipleValues: false,
|
|
196
|
-
},
|
|
197
|
-
default: {},
|
|
198
|
-
options: [
|
|
199
|
-
{
|
|
200
|
-
name: 'values',
|
|
201
|
-
displayName: 'Values',
|
|
202
|
-
values: [
|
|
203
|
-
{
|
|
204
|
-
displayName: 'Enable Throttle Handling',
|
|
205
|
-
name: 'enabled',
|
|
206
|
-
type: 'boolean',
|
|
207
|
-
default: true,
|
|
208
|
-
description: 'Whether to handle rate limiting (HTTP 429 responses)',
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
displayName: 'Retry After (Seconds)',
|
|
212
|
-
name: 'retryAfterExpression',
|
|
213
|
-
displayOptions: {
|
|
214
|
-
show: {
|
|
215
|
-
enabled: [true],
|
|
216
|
-
},
|
|
217
|
-
},
|
|
218
|
-
type: 'string',
|
|
219
|
-
default: '={{$response.headers["retry-after"] || 2}}',
|
|
220
|
-
description: 'Expression to determine how long to wait before retry. Access the retry-after header with $response.headers["retry-after"]',
|
|
221
|
-
},
|
|
222
|
-
{
|
|
223
|
-
displayName: 'Limit Number of Retries',
|
|
224
|
-
name: 'limitRetries',
|
|
225
|
-
displayOptions: {
|
|
226
|
-
show: {
|
|
227
|
-
enabled: [true],
|
|
228
|
-
},
|
|
229
|
-
},
|
|
230
|
-
type: 'boolean',
|
|
231
|
-
default: true,
|
|
232
|
-
description: 'Whether to limit the number of retry attempts',
|
|
233
|
-
},
|
|
234
|
-
{
|
|
235
|
-
displayName: 'Maximum Retries',
|
|
236
|
-
name: 'maxRetries',
|
|
237
|
-
displayOptions: {
|
|
238
|
-
show: {
|
|
239
|
-
enabled: [true],
|
|
240
|
-
limitRetries: [true],
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
type: 'number',
|
|
244
|
-
default: 5,
|
|
245
|
-
description: 'Maximum number of retries to attempt if rate limited',
|
|
246
|
-
},
|
|
247
|
-
],
|
|
248
|
-
},
|
|
249
|
-
],
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
displayName: 'Error Handling',
|
|
253
|
-
name: 'errorHandling',
|
|
254
|
-
type: 'fixedCollection',
|
|
255
|
-
typeOptions: {
|
|
256
|
-
multipleValues: false,
|
|
257
|
-
},
|
|
258
|
-
default: {},
|
|
259
|
-
options: [
|
|
260
|
-
{
|
|
261
|
-
name: 'values',
|
|
262
|
-
displayName: 'Values',
|
|
263
|
-
values: [
|
|
264
|
-
{
|
|
265
|
-
displayName: 'Continue On Error',
|
|
266
|
-
name: 'continueOnError',
|
|
267
|
-
type: 'boolean',
|
|
268
|
-
default: false,
|
|
269
|
-
description: 'Whether to continue execution even when an error occurs',
|
|
169
|
+
placeholder: 'eventual',
|
|
170
|
+
description: 'Header value',
|
|
270
171
|
},
|
|
271
172
|
],
|
|
272
173
|
},
|
|
273
174
|
],
|
|
274
175
|
},
|
|
176
|
+
// ==================== Options (Collapsible) ====================
|
|
275
177
|
{
|
|
276
178
|
displayName: 'Options',
|
|
277
179
|
name: 'options',
|
|
@@ -279,19 +181,56 @@ class MsGraph {
|
|
|
279
181
|
placeholder: 'Add Option',
|
|
280
182
|
default: {},
|
|
281
183
|
options: [
|
|
184
|
+
{
|
|
185
|
+
displayName: 'Response Format',
|
|
186
|
+
name: 'responseFormat',
|
|
187
|
+
type: 'options',
|
|
188
|
+
options: [
|
|
189
|
+
{ name: 'JSON', value: 'json' },
|
|
190
|
+
{ name: 'Text', value: 'string' },
|
|
191
|
+
],
|
|
192
|
+
default: 'json',
|
|
193
|
+
description: 'How to parse the response from Microsoft Graph',
|
|
194
|
+
},
|
|
282
195
|
{
|
|
283
196
|
displayName: 'Full Response',
|
|
284
197
|
name: 'fullResponse',
|
|
285
198
|
type: 'boolean',
|
|
286
199
|
default: false,
|
|
287
|
-
description: 'Whether to return the full response
|
|
200
|
+
description: 'Whether to return the full response including headers and status code',
|
|
288
201
|
},
|
|
289
202
|
{
|
|
290
|
-
displayName: 'Timeout',
|
|
203
|
+
displayName: 'Timeout (ms)',
|
|
291
204
|
name: 'timeout',
|
|
292
205
|
type: 'number',
|
|
293
206
|
default: 10000,
|
|
294
|
-
description: '
|
|
207
|
+
description: 'Request timeout in milliseconds',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
displayName: 'Handle Rate Limiting',
|
|
211
|
+
name: 'handleRateLimiting',
|
|
212
|
+
type: 'boolean',
|
|
213
|
+
default: true,
|
|
214
|
+
description: 'Whether to automatically retry when rate limited (HTTP 429)',
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
displayName: 'Max Retries',
|
|
218
|
+
name: 'maxRetries',
|
|
219
|
+
type: 'number',
|
|
220
|
+
default: 5,
|
|
221
|
+
description: 'Maximum number of retry attempts when rate limited',
|
|
222
|
+
displayOptions: {
|
|
223
|
+
show: {
|
|
224
|
+
handleRateLimiting: [true],
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
displayName: 'Continue On Error',
|
|
230
|
+
name: 'continueOnError',
|
|
231
|
+
type: 'boolean',
|
|
232
|
+
default: false,
|
|
233
|
+
description: 'Whether to continue workflow execution when this node encounters an error',
|
|
295
234
|
},
|
|
296
235
|
],
|
|
297
236
|
},
|
|
@@ -299,198 +238,166 @@ class MsGraph {
|
|
|
299
238
|
};
|
|
300
239
|
}
|
|
301
240
|
async execute() {
|
|
302
|
-
var _a, _b, _c;
|
|
241
|
+
var _a, _b, _c, _d, _e;
|
|
303
242
|
const items = this.getInputData();
|
|
304
243
|
const returnItems = [];
|
|
305
244
|
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
306
245
|
try {
|
|
307
|
-
// Get authentication
|
|
246
|
+
// Get authentication method and token
|
|
308
247
|
const authMethod = this.getNodeParameter('authentication', itemIndex, 'oauth2');
|
|
309
248
|
let accessToken;
|
|
310
249
|
if (authMethod === 'oauth2') {
|
|
311
|
-
// Get credentials for MS Graph API
|
|
312
250
|
const credentials = await this.getCredentials('msGraphOAuth2Api');
|
|
313
|
-
|
|
251
|
+
// n8n's OAuth2 handler stores the token in oauthTokenData.access_token
|
|
252
|
+
const oauthTokenData = credentials.oauthTokenData;
|
|
253
|
+
accessToken = (oauthTokenData === null || oauthTokenData === void 0 ? void 0 : oauthTokenData.access_token) || credentials.access_token;
|
|
254
|
+
if (!accessToken) {
|
|
255
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No access token found in credentials. Please reconnect your OAuth2 credentials.', { itemIndex });
|
|
256
|
+
}
|
|
314
257
|
}
|
|
315
258
|
else {
|
|
316
|
-
// Get the access token directly from the parameter
|
|
317
259
|
accessToken = this.getNodeParameter('accessToken', itemIndex, '');
|
|
318
260
|
if (!accessToken) {
|
|
319
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Access Token is required
|
|
320
|
-
itemIndex,
|
|
321
|
-
});
|
|
261
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Access Token is required when using manual token authentication', { itemIndex });
|
|
322
262
|
}
|
|
323
263
|
}
|
|
324
|
-
// Get parameters
|
|
264
|
+
// Get request parameters
|
|
325
265
|
const method = this.getNodeParameter('method', itemIndex);
|
|
326
266
|
const url = this.getNodeParameter('url', itemIndex);
|
|
327
|
-
const responseFormat = this.getNodeParameter('responseFormat', itemIndex);
|
|
328
267
|
const options = this.getNodeParameter('options', itemIndex, {});
|
|
329
|
-
//
|
|
330
|
-
const
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
});
|
|
336
|
-
// Get body, headers and query parameters
|
|
268
|
+
// Set defaults for options
|
|
269
|
+
const responseFormat = options.responseFormat || 'json';
|
|
270
|
+
const timeout = options.timeout || 10000;
|
|
271
|
+
const handleRateLimiting = options.handleRateLimiting !== false;
|
|
272
|
+
const maxRetries = (_a = options.maxRetries) !== null && _a !== void 0 ? _a : 5;
|
|
273
|
+
// Get body for POST/PATCH/PUT
|
|
337
274
|
let body;
|
|
338
275
|
if (['PATCH', 'POST', 'PUT'].includes(method)) {
|
|
339
|
-
|
|
340
|
-
if (
|
|
341
|
-
// Try to parse the body as JSON
|
|
276
|
+
const bodyParam = this.getNodeParameter('body', itemIndex, '');
|
|
277
|
+
if (bodyParam && bodyParam.trim() !== '') {
|
|
342
278
|
try {
|
|
343
|
-
body = JSON.parse(
|
|
279
|
+
body = JSON.parse(bodyParam);
|
|
344
280
|
}
|
|
345
281
|
catch {
|
|
346
|
-
|
|
347
|
-
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Body must be a valid JSON', {
|
|
348
|
-
itemIndex,
|
|
349
|
-
});
|
|
282
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Request body must be valid JSON', { itemIndex });
|
|
350
283
|
}
|
|
351
284
|
}
|
|
352
285
|
}
|
|
353
|
-
//
|
|
354
|
-
const
|
|
355
|
-
const headers = {
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
286
|
+
// Build headers
|
|
287
|
+
const headerParams = this.getNodeParameter('headers', itemIndex, {});
|
|
288
|
+
const headers = {
|
|
289
|
+
Authorization: `Bearer ${accessToken}`,
|
|
290
|
+
Accept: 'application/json',
|
|
291
|
+
};
|
|
292
|
+
if (['PATCH', 'POST', 'PUT'].includes(method)) {
|
|
293
|
+
headers['Content-Type'] = 'application/json';
|
|
294
|
+
}
|
|
295
|
+
// Add custom headers (can override defaults)
|
|
296
|
+
if (headerParams.parameter) {
|
|
297
|
+
for (const param of headerParams.parameter) {
|
|
298
|
+
if (param.name) {
|
|
299
|
+
headers[param.name] = param.value;
|
|
300
|
+
}
|
|
359
301
|
}
|
|
360
302
|
}
|
|
361
|
-
//
|
|
362
|
-
const
|
|
303
|
+
// Build query string
|
|
304
|
+
const queryParams = this.getNodeParameter('queryParameters', itemIndex, {});
|
|
363
305
|
const qs = {};
|
|
364
|
-
if (
|
|
365
|
-
for (const param of
|
|
366
|
-
|
|
306
|
+
if (queryParams.parameter) {
|
|
307
|
+
for (const param of queryParams.parameter) {
|
|
308
|
+
if (param.name) {
|
|
309
|
+
qs[param.name] = param.value;
|
|
310
|
+
}
|
|
367
311
|
}
|
|
368
312
|
}
|
|
369
|
-
//
|
|
370
|
-
headers.Authorization = `Bearer ${accessToken}`;
|
|
371
|
-
// Add Content-Type header if not present
|
|
372
|
-
if (!headers['Content-Type'] && ['PATCH', 'POST', 'PUT'].includes(method)) {
|
|
373
|
-
headers['Content-Type'] = 'application/json';
|
|
374
|
-
}
|
|
375
|
-
// Add Accept header if not present
|
|
376
|
-
if (!headers.Accept) {
|
|
377
|
-
headers.Accept = 'application/json';
|
|
378
|
-
}
|
|
379
|
-
// Execute the request with retry logic for rate limiting
|
|
313
|
+
// Execute request with retry logic
|
|
380
314
|
let response;
|
|
381
|
-
let retryCount = 0;
|
|
382
|
-
let retryAfter = 0;
|
|
383
315
|
let responseHeaders = {};
|
|
384
|
-
|
|
385
|
-
|
|
316
|
+
let statusCode = 200;
|
|
317
|
+
let retryCount = 0;
|
|
318
|
+
let shouldRetry = true;
|
|
319
|
+
while (shouldRetry) {
|
|
320
|
+
shouldRetry = false;
|
|
386
321
|
try {
|
|
387
|
-
//
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
392
|
-
// Make the request
|
|
322
|
+
// When json:false, body must be stringified manually
|
|
323
|
+
const requestBody = body
|
|
324
|
+
? (responseFormat === 'json' ? body : JSON.stringify(body))
|
|
325
|
+
: undefined;
|
|
393
326
|
const requestOptions = {
|
|
394
327
|
method,
|
|
395
328
|
url,
|
|
396
329
|
headers,
|
|
397
|
-
qs,
|
|
398
|
-
body,
|
|
330
|
+
qs: Object.keys(qs).length > 0 ? qs : undefined,
|
|
331
|
+
body: requestBody,
|
|
399
332
|
json: responseFormat === 'json',
|
|
400
|
-
timeout
|
|
333
|
+
timeout,
|
|
401
334
|
resolveWithFullResponse: true,
|
|
402
335
|
};
|
|
403
|
-
// Use any instead of the actual type because response.headers is not recognized in n8n types
|
|
404
336
|
const fullResponse = await this.helpers.request(requestOptions);
|
|
405
337
|
response = fullResponse.body;
|
|
406
338
|
responseHeaders = fullResponse.headers || {};
|
|
407
|
-
|
|
408
|
-
break;
|
|
339
|
+
statusCode = fullResponse.statusCode || 200;
|
|
409
340
|
}
|
|
410
341
|
catch (error) {
|
|
411
|
-
|
|
412
|
-
//
|
|
413
|
-
if (
|
|
342
|
+
const err = error;
|
|
343
|
+
// Handle rate limiting (HTTP 429)
|
|
344
|
+
if (err.statusCode === 429 && handleRateLimiting && retryCount < maxRetries) {
|
|
414
345
|
retryCount++;
|
|
415
|
-
//
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
else {
|
|
424
|
-
// Default to exponential backoff if expression doesn't evaluate to a number
|
|
425
|
-
retryAfter = Math.pow(2, retryCount);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
catch {
|
|
429
|
-
// If expression evaluation fails, use fallback
|
|
430
|
-
const headerRetryAfter = parseInt((responseHeaders === null || responseHeaders === void 0 ? void 0 : responseHeaders['retry-after']) || (responseHeaders === null || responseHeaders === void 0 ? void 0 : responseHeaders['Retry-After']) || '0', 10);
|
|
431
|
-
retryAfter = headerRetryAfter || Math.pow(2, retryCount);
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
else {
|
|
435
|
-
// Use header value if no expression is provided
|
|
436
|
-
const headerRetryAfter = parseInt((responseHeaders === null || responseHeaders === void 0 ? void 0 : responseHeaders['retry-after']) || (responseHeaders === null || responseHeaders === void 0 ? void 0 : responseHeaders['Retry-After']) || '0', 10);
|
|
437
|
-
retryAfter = headerRetryAfter || Math.pow(2, retryCount);
|
|
438
|
-
}
|
|
439
|
-
// Continue to the next iteration which will wait and retry
|
|
346
|
+
// Case-insensitive header lookup for Retry-After
|
|
347
|
+
const responseHeaders = ((_b = err.response) === null || _b === void 0 ? void 0 : _b.headers) || {};
|
|
348
|
+
const retryAfterHeader = (_c = Object.entries(responseHeaders)
|
|
349
|
+
.find(([key]) => key.toLowerCase() === 'retry-after')) === null || _c === void 0 ? void 0 : _c[1];
|
|
350
|
+
const retryAfter = retryAfterHeader ? parseInt(String(retryAfterHeader), 10) : Math.pow(2, retryCount);
|
|
351
|
+
this.logger.info(`Rate limited by Microsoft Graph. Waiting ${retryAfter}s before retry ${retryCount}/${maxRetries}`);
|
|
352
|
+
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
|
|
353
|
+
shouldRetry = true;
|
|
440
354
|
continue;
|
|
441
355
|
}
|
|
442
|
-
// For other errors or if we've exhausted retries, throw the error
|
|
443
356
|
throw error;
|
|
444
357
|
}
|
|
445
358
|
}
|
|
446
|
-
//
|
|
447
|
-
let
|
|
448
|
-
if (
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
}
|
|
359
|
+
// Format response
|
|
360
|
+
let outputData;
|
|
361
|
+
if (options.fullResponse) {
|
|
362
|
+
outputData = {
|
|
363
|
+
body: response,
|
|
364
|
+
headers: responseHeaders,
|
|
365
|
+
statusCode,
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
else if (responseFormat === 'string') {
|
|
369
|
+
outputData = { data: typeof response === 'object' ? JSON.stringify(response) : String(response) };
|
|
457
370
|
}
|
|
458
371
|
else {
|
|
459
|
-
|
|
460
|
-
responseData = typeof response === 'object' ? JSON.stringify(response) : (response || '').toString();
|
|
461
|
-
if (options.fullResponse === true) {
|
|
462
|
-
responseData = {
|
|
463
|
-
body: responseData,
|
|
464
|
-
headers: responseHeaders,
|
|
465
|
-
statusCode: 200,
|
|
466
|
-
};
|
|
467
|
-
}
|
|
372
|
+
outputData = response;
|
|
468
373
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
json: responseData,
|
|
472
|
-
binary: {},
|
|
374
|
+
returnItems.push({
|
|
375
|
+
json: outputData,
|
|
473
376
|
pairedItem: { item: itemIndex },
|
|
474
|
-
};
|
|
475
|
-
returnItems.push(newItem);
|
|
377
|
+
});
|
|
476
378
|
}
|
|
477
379
|
catch (error) {
|
|
478
|
-
|
|
380
|
+
const err = error;
|
|
381
|
+
// Check if we should continue on error
|
|
382
|
+
const options = this.getNodeParameter('options', itemIndex, {});
|
|
383
|
+
if (options.continueOnError || this.continueOnFail()) {
|
|
479
384
|
returnItems.push({
|
|
480
385
|
json: {
|
|
481
|
-
error:
|
|
482
|
-
statusCode:
|
|
386
|
+
error: err.message || 'Unknown error',
|
|
387
|
+
statusCode: err.statusCode,
|
|
483
388
|
url: this.getNodeParameter('url', itemIndex),
|
|
484
389
|
method: this.getNodeParameter('method', itemIndex),
|
|
485
|
-
|
|
486
|
-
|
|
390
|
+
responseHeaders: ((_d = err.response) === null || _d === void 0 ? void 0 : _d.headers) || {},
|
|
391
|
+
responseBody: ((_e = err.response) === null || _e === void 0 ? void 0 : _e.body) || null,
|
|
487
392
|
},
|
|
488
|
-
binary: {},
|
|
489
393
|
pairedItem: { item: itemIndex },
|
|
490
394
|
});
|
|
491
395
|
continue;
|
|
492
396
|
}
|
|
493
|
-
throw
|
|
397
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), err.message || 'Request failed', {
|
|
398
|
+
itemIndex,
|
|
399
|
+
description: `Status: ${err.statusCode || 'unknown'}. Check that your app has the required Application permissions in Azure AD.`,
|
|
400
|
+
});
|
|
494
401
|
}
|
|
495
402
|
}
|
|
496
403
|
return this.prepareOutputData(returnItems);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MsGraph.node.js","sourceRoot":"","sources":["../../nodes/MsGraph.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MsGraph.node.js","sourceRoot":"","sources":["../../nodes/MsGraph.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18"><defs><linearGradient id="a" x1="-6941.93" y1="-2082.96" x2="-6941.93" y2="-2101.68" gradientTransform="matrix(.5 0 0 -.5 3476.4 -1033.45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#5ea0ef"/><stop offset=".18" stop-color="#589eed"/><stop offset=".41" stop-color="#4897e9"/><stop offset=".66" stop-color="#2e8ce1"/><stop offset=".94" stop-color="#0a7cd7"/><stop offset="1" stop-color="#0078d4"/></linearGradient><linearGradient id="b" x1="11.5" y1="12.45" x2="11.5" y2=".55" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#198ab3"/><stop offset=".24" stop-color="#22a5cb"/><stop offset=".53" stop-color="#2bbfe2"/><stop offset=".79" stop-color="#30cff0"/><stop offset="1" stop-color="#32d4f5"/></linearGradient></defs><path d="M5.59 13.13h4.32V17a.5.5 0 01-.5.5H5.59zm-4.44 4.32h3.72v-4.32H.55v3.72a.6.6 0 00.6.6zm-.6-5h4.32V8.09H1.05a.5.5 0 00-.5.5z" fill="url(#a)"/><path d="M11.5.55a5.89 5.89 0 015.95 6 5.89 5.89 0 01-5.95 5.95H5.55v-6A5.89 5.89 0 0111.5.55z" fill-rule="evenodd" fill="url(#b)"/><path d="M15.16 3.24a1 1 0 00-1 1 1 1 0 00.22.62l-1.67 2.99h-.13a1 1 0 00-.53.16l-1.29-1.32a1 1 0 00.08-.39 1 1 0 10-2.05 0 1 1 0 00.13.48L7.75 8.32a1.26 1.26 0 00-.28 0 1 1 0 101 1 1 1 0 00-.13-.47L9.57 7.3a1 1 0 00.25 0 1.05 1.05 0 00.36-.08l1.41 1.48a1.1 1.1 0 000 .18 1 1 0 002 0 1.1 1.1 0 00-.2-.6l1.67-3h.1a1 1 0 001-1 1 1 0 00-1-1.04z" fill="#fff"/></svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@advenimuss/n8n-nodes-msgraph",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "n8n node for Microsoft Graph API with retry handling",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"main": "index.js",
|
|
23
23
|
"type": "commonjs",
|
|
24
24
|
"scripts": {
|
|
25
|
-
"build": "tsc",
|
|
25
|
+
"build": "tsc && cp nodes/*.svg dist/nodes/",
|
|
26
26
|
"dev": "tsc --watch",
|
|
27
27
|
"format": "prettier --write .",
|
|
28
28
|
"lint": "eslint nodes credentials --ext .ts",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
49
49
|
"@typescript-eslint/parser": "^8.26.1",
|
|
50
50
|
"eslint": "^8.57.1",
|
|
51
|
-
"eslint-plugin-n8n-nodes-base": "^1.16.1"
|
|
51
|
+
"eslint-plugin-n8n-nodes-base": "^1.16.1",
|
|
52
|
+
"typescript": "^5.3.0"
|
|
52
53
|
},
|
|
53
|
-
"
|
|
54
|
+
"peerDependencies": {
|
|
54
55
|
"n8n-core": "^1.0.0",
|
|
55
|
-
"n8n-workflow": "^1.0.0"
|
|
56
|
-
"typescript": "^4.9.0"
|
|
56
|
+
"n8n-workflow": "^1.0.0"
|
|
57
57
|
}
|
|
58
58
|
}
|
|
File without changes
|