n8n-nodes-miroapp 1.0.1

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/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2022 n8n
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,349 @@
1
+ # n8n-nodes-miroapp
2
+
3
+ This is an n8n community node. It lets you interact with Miro in your n8n workflows.
4
+
5
+ Miro is a visual collaboration platform where distributed teams work together on an infinite canvas: they run workshops and retrospectives on sticky notes, map processes as diagrams and flowcharts, build mind maps and customer journeys, organise work on cards and in frames, and keep everything in shared boards that can be tagged, grouped and embedded elsewhere.
6
+
7
+ [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
8
+
9
+ [Installation](#installation)
10
+ [Credentials](#credentials)
11
+ [Operations](#operations)
12
+ [Pagination](#pagination)
13
+ [File uploads](#file-uploads)
14
+ [No trigger node](#no-trigger-node)
15
+ [Using as a Tool](#using-as-a-tool)
16
+ [Compatibility](#compatibility)
17
+ [Resources](#resources)
18
+
19
+ ## Installation
20
+
21
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
22
+
23
+ Alternatively, you can manually install it:
24
+
25
+ ```sh
26
+ git clone https://github.com/Elevate-Agency/n8n-nodes-miro.git
27
+ cd n8n-nodes-miro
28
+ npm install
29
+ ```
30
+
31
+ Then, place the node file in the `~/.n8n/custom-nodes` directory (or follow instructions specific to your n8n installation).
32
+
33
+ ## Credentials
34
+
35
+ This node covers version 2 of the Miro REST API and supports two ways to authenticate.
36
+
37
+ **Miro API (access token)** — the simplest option, and the default. In Miro, go to *Profile settings → Your apps → Create new app*, grant the app the scopes you need, then use **Install app and get OAuth token** and paste the token into the credential. The token does not expire.
38
+
39
+ **Miro OAuth2 API** — for the standard authorization code flow. Create an app the same way, add your n8n OAuth callback URL to the app's redirect URIs, then connect the credential. Note that Miro does **not** accept a `scope` parameter on the authorization URL: the permissions granted to the token are the ones ticked on the app's *Permissions* page, so set them there before connecting.
40
+
41
+ Which scopes you need depends on the operations you call. `boards:read` and `boards:write` cover boards and every item type; the `Governance - *` and `Organization - *` resources need the matching enterprise scopes (`organizations:read`, `organizations:teams:write`, `projects:read`, `auditlogs:read`, `boards:export`, and so on). Each operation's required scope is listed on its page in the [Miro API reference](https://developers.miro.com/reference), and the full list is on [Permission scopes](https://developers.miro.com/reference/scopes).
42
+
43
+ ## Operations
44
+
45
+ This node supports the following operations within Miro:
46
+ * **Apps - Metric**
47
+ - Gets app metrics
48
+ - Gets total app metrics
49
+ * **Authentication - Token**
50
+ - Revokes token
51
+ * **Boards - Board**
52
+ - Copies board
53
+ - Creates board
54
+ - Deletes board
55
+ - Gets boards
56
+ - Gets specific board
57
+ - Updates board
58
+ * **Boards - Export Job**
59
+ - Creates board export job
60
+ - Creates task export link
61
+ - Gets board export job status
62
+ - Gets board export job tasks list
63
+ - Gets board export jobs list
64
+ - Gets results for board export job
65
+ - Updates board export job status
66
+ * **Boards - Member**
67
+ - Gets all board members
68
+ - Gets specific board member
69
+ - Removes board member
70
+ - Shares board
71
+ - Updates board member
72
+ * **Boards - User Group Assignment**
73
+ - Creates board user group assignments
74
+ - Deletes board user group assignment
75
+ - Gets board user group assignments
76
+ * **Governance - AI Interaction Log**
77
+ - Gets AI interaction logs
78
+ * **Governance - Audit Log**
79
+ - Gets audit logs
80
+ * **Governance - Board Content Log**
81
+ - Gets content change logs of board items
82
+ * **Governance - Board Data Classification**
83
+ - Gets board classification
84
+ - Updates board classification
85
+ * **Governance - Legal Hold**
86
+ - Closes case
87
+ - Closes legal hold
88
+ - Creates case
89
+ - Creates legal hold
90
+ - Edits case
91
+ - Edits legal hold
92
+ - Gets all cases
93
+ - Gets all legal holds within a case
94
+ - Gets board export jobs of a case
95
+ - Gets case
96
+ - Gets content items under legal hold
97
+ - Gets legal hold information
98
+ * **Governance - Organization Data Classification**
99
+ - Gets organization settings
100
+ * **Governance - Team Data Classification**
101
+ - Bulk updates boards classification
102
+ - Gets team settings
103
+ - Updates team settings
104
+ * **Governance - User Session**
105
+ - Resets all sessions of a user
106
+ * **Items - App Card**
107
+ - Creates app card item
108
+ - Deletes app card item
109
+ - Gets app card item
110
+ - Updates app card item
111
+ * **Items - Card**
112
+ - Creates card item
113
+ - Deletes card item
114
+ - Gets card item
115
+ - Updates card item
116
+ * **Items - Code Widget**
117
+ - Creates code widget item
118
+ - Deletes code widget item
119
+ - Gets code widget item
120
+ - Gets code widget items
121
+ - Moves code widget item
122
+ - Updates code widget item
123
+ * **Items - Connector**
124
+ - Creates connector
125
+ - Deletes connector
126
+ - Gets connectors
127
+ - Gets specific connector
128
+ - Updates connector
129
+ * **Items - Doc Format**
130
+ - Creates doc format item
131
+ - Deletes doc format item
132
+ - Gets doc format item
133
+ * **Items - Document**
134
+ - Creates document item using file from device
135
+ - Creates document item using URL
136
+ - Deletes document item
137
+ - Gets document item
138
+ - Updates document item using file from device
139
+ - Updates document item using URL
140
+ * **Items - Embed**
141
+ - Creates embed item
142
+ - Deletes embed item
143
+ - Gets embed item
144
+ - Updates embed item
145
+ * **Items - Flowchart Shape**
146
+ - Creates shape item
147
+ - Deletes shape item
148
+ - Gets shape item
149
+ - Updates shape item
150
+ * **Items - Frame**
151
+ - Creates frame
152
+ - Deletes frame
153
+ - Gets frame
154
+ - Gets items within frame
155
+ - Updates frame
156
+ * **Items - Group**
157
+ - Creates group
158
+ - Deletes group and its items
159
+ - Gets a group by its ID
160
+ - Gets all groups on a board
161
+ - Gets items of a group by ID
162
+ - Ungroups items
163
+ - Updates group with new items
164
+ * **Items - Image**
165
+ - Creates image item using file from device
166
+ - Creates image item using URL
167
+ - Deletes image item
168
+ - Gets image item
169
+ - Updates image item using file from device
170
+ - Updates image item using URL
171
+ * **Items - Item**
172
+ - Creates items in bulk
173
+ - Creates items in bulk using file from device
174
+ - Deletes experimental item
175
+ - Deletes item
176
+ - Gets experimental items on board
177
+ - Gets items on board
178
+ - Gets specific experimental item on board
179
+ - Gets specific item on board
180
+ - Updates item position or parent
181
+ * **Items - Mind Map Node**
182
+ - Creates mind map node
183
+ - Deletes mind map node
184
+ - Gets mind map nodes
185
+ - Gets specific mind map node
186
+ * **Items - Shape**
187
+ - Creates shape item
188
+ - Deletes shape item
189
+ - Gets shape item
190
+ - Updates shape item
191
+ * **Items - Sticky Note**
192
+ - Creates sticky note item
193
+ - Deletes sticky note item
194
+ - Gets sticky note item
195
+ - Updates sticky note item
196
+ * **Items - Tag**
197
+ - Attaches tag to item
198
+ - Creates tag
199
+ - Deletes tag
200
+ - Gets items by tag
201
+ - Gets tag
202
+ - Gets tags from board
203
+ - Gets tags from item
204
+ - Removes tag from item
205
+ - Updates tag
206
+ * **Items - Text**
207
+ - Creates text item
208
+ - Deletes text item
209
+ - Gets text item
210
+ - Updates text item
211
+ * **Organization - Member**
212
+ - Gets organization member
213
+ - Gets organization members
214
+ * **Organization - Organization**
215
+ - Gets organization info
216
+ * **Organization - Project**
217
+ - Creates project
218
+ - Deletes project
219
+ - Gets project
220
+ - Gets projects
221
+ - Updates project
222
+ * **Organization - Project Member**
223
+ - Adds member in a project
224
+ - Gets project member
225
+ - Gets project members
226
+ - Removes project member
227
+ - Updates project member
228
+ * **Organization - Project Setting**
229
+ - Gets project settings
230
+ - Updates project settings
231
+ * **Organization - Project User Group Assignment**
232
+ - Creates project user group assignments
233
+ - Deletes project user group assignment
234
+ - Gets project user group assignments
235
+ * **Organization - Team**
236
+ - Creates team
237
+ - Deletes team
238
+ - Gets team
239
+ - Gets teams
240
+ - Updates team
241
+ * **Organization - Team Member**
242
+ - Deletes team member from team
243
+ - Gets team member
244
+ - Gets team members
245
+ - Invites team members
246
+ - Updates team member
247
+ * **Organization - Team Setting**
248
+ - Gets default team settings
249
+ - Gets team settings
250
+ - Updates team settings
251
+ * **Organization - Team User Group**
252
+ - Creates user group to team connection
253
+ - Deletes user group to team connection
254
+ - Gets user group of a team
255
+ - Gets user group to team connections
256
+ * **Organization - User Group**
257
+ - Creates user group
258
+ - Deletes user group
259
+ - Gets user group
260
+ - Gets user groups
261
+ - Updates user group
262
+ * **Organization - User Group Member**
263
+ - Bulk edits of membership in user group
264
+ - Creates user group member
265
+ - Deletes user group member
266
+ - Gets user group member
267
+ - Gets user group members
268
+ * **Organization - User Group Team**
269
+ - Gets teams of a user group
270
+ - Gets user group team
271
+
272
+ Retrieve information from the [Miro REST API](https://developers.miro.com/docs/rest-api-reference-guide).
273
+
274
+ Resources prefixed `Governance - ` and `Organization - `, plus `Boards - Export Job` and `Boards - User Group Assignment`, call `/v2/orgs/...` endpoints that require a Miro **Enterprise** plan (a few also require Enterprise Guard). Resources marked *experimental* call `/v2-experimental/...` endpoints, which Miro may change or remove without notice.
275
+
276
+ ## Pagination
277
+
278
+ This node does not paginate for you: it sends exactly one request per input item, so you stay in control of how many API credits you spend. Miro uses two conventions, and both are driven from the **Query Parameters** collection:
279
+
280
+ - **Cursor** (items, connectors, groups, mind map nodes, code widgets, teams, projects, audit logs, export jobs): set `Limit`, then feed the `cursor` field of the response back into the `Cursor` parameter on the next call. Stop when the response has no `cursor`.
281
+ - **Offset** (`Get Boards`, `Get All Board Members`, `Get Tags from Board`, `Get Items by Tag`): set `Limit` and `Offset`. Stop when `offset + size >= total`.
282
+
283
+ To collect every page, wrap the node in a loop: a **Loop Over Items** node, or an **If** node testing whether the response still carries a `cursor`, feeding the value back into the Miro node.
284
+
285
+ ## File uploads
286
+
287
+ Five operations upload a file instead of sending JSON, and expect binary data on the input item:
288
+
289
+ - `Items - Document → Create Document Item Using File from Device` / `Update Document Item Using File from Device`
290
+ - `Items - Image → Create Image Item Using File from Device` / `Update Image Item Using File from Device`
291
+ - `Items - Item → Create Items in Bulk Using File from Device`
292
+
293
+ Set **Binary Property** to the name of the binary property holding the file. For the bulk operation, **Binary Property** holds the JSON manifest and **Resource Binary Properties** lists the files to create, up to 20. **Miro rejects uploads larger than 6 MB.**
294
+
295
+ ## No trigger node
296
+
297
+ There is deliberately no Miro Trigger node. Miro removed its experimental webhooks (`/v2-experimental/webhooks/board_subscriptions`) on 5 December 2025 and has not announced a replacement, so no webhook-based trigger can work today.
298
+
299
+ To react to changes, poll instead: a **Schedule Trigger** followed by `Boards - Board → Get Boards` with `Sort` set to `Last Modified`, or `Items - Item → Get Items on Board`, comparing against what you saw last run.
300
+
301
+ ## Using as a Tool
302
+
303
+ This node can be used as a tool in n8n AI Agents. To enable community nodes as tools, you need to set the `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE` environment variable to `true`.
304
+
305
+ ### Setting the Environment Variable
306
+
307
+ **If you're using a bash/zsh shell:**
308
+ ```bash
309
+ export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
310
+ n8n start
311
+ ```
312
+
313
+ **If you're using Docker:**
314
+ Add to your docker-compose.yml file:
315
+ ```yaml
316
+ environment:
317
+ - N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
318
+ ```
319
+
320
+ **If you're using the desktop app:**
321
+ Create a `.env` file in the n8n directory:
322
+ ```
323
+ N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
324
+ ```
325
+
326
+ **If you want to set it permanently on Mac/Linux:**
327
+ Add to your `~/.zshrc` or `~/.bash_profile`:
328
+ ```bash
329
+ export N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
330
+ ```
331
+
332
+ ## Compatibility
333
+
334
+ - Tested with: TBD
335
+
336
+ The 181 operations have been exercised against the live API: 100 on a Miro developer team,
337
+ the remaining 81 on an Enterprise organization with the Company Admin role.
338
+
339
+ Two prerequisites sit on your own tenant rather than on the node. The board classification
340
+ operations need at least one data-classification label defined in the organization, which is
341
+ created in the admin console and has no API. The two `Apps - Metric` operations need an app
342
+ management API token from Developer Hub instead of the install token the rest of the node uses.
343
+
344
+ ## Resources
345
+
346
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
347
+ - [Miro REST API documentation](https://developers.miro.com/docs/rest-api-reference-guide)
348
+ - [Miro permission scopes](https://developers.miro.com/reference/scopes)
349
+ - [Miro rate limiting](https://developers.miro.com/reference/rate-limiting)
@@ -0,0 +1,10 @@
1
+ import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties, Icon } from 'n8n-workflow';
2
+ export declare class MiroApi implements ICredentialType {
3
+ name: string;
4
+ displayName: string;
5
+ documentationUrl: string;
6
+ icon: Icon;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiroApi = void 0;
4
+ class MiroApi {
5
+ constructor() {
6
+ this.name = 'miroApi';
7
+ this.displayName = 'Miro API';
8
+ this.documentationUrl = 'https://developers.miro.com/docs/getting-started-with-oauth';
9
+ this.icon = { light: 'file:icons/miro.svg', dark: 'file:icons/miro.dark.svg' };
10
+ this.properties = [
11
+ {
12
+ displayName: 'Miro Access Token',
13
+ name: 'miroAccessToken',
14
+ type: 'string',
15
+ typeOptions: { password: true },
16
+ default: '',
17
+ required: true,
18
+ description: 'Access token of your Miro app installation. Create an app in Miro (Profile settings, Your apps), then use "Install app and get OAuth token"',
19
+ },
20
+ ];
21
+ this.authenticate = {
22
+ type: 'generic',
23
+ properties: {
24
+ headers: {
25
+ Accept: 'application/json',
26
+ Authorization: '=Bearer {{$credentials.miroAccessToken}}',
27
+ },
28
+ },
29
+ };
30
+ this.test = {
31
+ request: {
32
+ method: 'GET',
33
+ baseURL: 'https://api.miro.com',
34
+ url: '/v2/boards',
35
+ qs: { limit: 1 },
36
+ },
37
+ };
38
+ }
39
+ }
40
+ exports.MiroApi = MiroApi;
41
+ //# sourceMappingURL=MiroApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiroApi.credentials.js","sourceRoot":"","sources":["../../credentials/MiroApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,OAAO;IAApB;QACC,SAAI,GAAG,SAAS,CAAC;QACjB,gBAAW,GAAG,UAAU,CAAC;QACzB,qBAAgB,GAAG,6DAA6D,CAAC;QAGjF,SAAI,GAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;QAChF,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EACV,6IAA6I;aAC9I;SACD,CAAC;QAKF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,aAAa,EAAE,0CAA0C;iBACzD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,sBAAsB;gBAC/B,GAAG,EAAE,YAAY;gBACjB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;aAChB;SACD,CAAC;IACH,CAAC;CAAA;AAzCD,0BAyCC"}
@@ -0,0 +1,9 @@
1
+ import { ICredentialType, INodeProperties, Icon } from 'n8n-workflow';
2
+ export declare class MiroOAuth2Api implements ICredentialType {
3
+ name: string;
4
+ extends: string[];
5
+ displayName: string;
6
+ documentationUrl: string;
7
+ icon: Icon;
8
+ properties: INodeProperties[];
9
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiroOAuth2Api = void 0;
4
+ class MiroOAuth2Api {
5
+ constructor() {
6
+ this.name = 'miroOAuth2Api';
7
+ this.extends = ['oAuth2Api'];
8
+ this.displayName = 'Miro OAuth2 API';
9
+ this.documentationUrl = 'https://developers.miro.com/docs/getting-started-with-oauth';
10
+ this.icon = { light: 'file:icons/miro.svg', dark: 'file:icons/miro.dark.svg' };
11
+ this.properties = [
12
+ {
13
+ displayName: 'Grant Type',
14
+ name: 'grantType',
15
+ type: 'hidden',
16
+ default: 'authorizationCode',
17
+ },
18
+ {
19
+ displayName: 'Authorization URL',
20
+ name: 'authUrl',
21
+ type: 'hidden',
22
+ default: 'https://miro.com/oauth/authorize',
23
+ },
24
+ {
25
+ displayName: 'Access Token URL',
26
+ name: 'accessTokenUrl',
27
+ type: 'hidden',
28
+ default: 'https://api.miro.com/v1/oauth/token',
29
+ },
30
+ {
31
+ displayName: 'Scope',
32
+ name: 'scope',
33
+ type: 'hidden',
34
+ default: '',
35
+ },
36
+ {
37
+ displayName: 'Auth URI Query Parameters',
38
+ name: 'authQueryParameters',
39
+ type: 'hidden',
40
+ default: '',
41
+ },
42
+ {
43
+ displayName: 'Authentication',
44
+ name: 'authentication',
45
+ type: 'hidden',
46
+ default: 'body',
47
+ },
48
+ ];
49
+ }
50
+ }
51
+ exports.MiroOAuth2Api = MiroOAuth2Api;
52
+ //# sourceMappingURL=MiroOAuth2Api.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiroOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/MiroOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAA1B;QACC,SAAI,GAAG,eAAe,CAAC;QACvB,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QACxB,gBAAW,GAAG,iBAAiB,CAAC;QAChC,qBAAgB,GAAG,6DAA6D,CAAC;QAGjF,SAAI,GAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;QAChF,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,kCAAkC;aAC3C;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qCAAqC;aAC9C;YACD;gBAGC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;SACD,CAAC;IACH,CAAC;CAAA;AAhDD,sCAgDC"}
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" role="img" aria-label="Miro"><path fill="#FFD02F" d="M17.392 0H13.9L17 4.808 10.444 0H6.949l3.102 6.3L3.494 0H0l3.05 8.131L0 24h3.494L10.05 6.985 6.949 24h3.494L17 5.494 13.899 24h3.493L24 3.672 17.392 0z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" role="img" aria-label="Miro"><path fill="#050038" d="M17.392 0H13.9L17 4.808 10.444 0H6.949l3.102 6.3L3.494 0H0l3.05 8.131L0 24h3.494L10.05 6.985 6.949 24h3.494L17 5.494 13.899 24h3.493L24 3.672 17.392 0z"/></svg>
@@ -0,0 +1,6 @@
1
+ import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Miro implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
6
+ export declare function executeItem(this: IExecuteFunctions, i: number): Promise<INodeExecutionData[]>;