n8n-nodes-runrunit 1.1.19 → 1.1.20

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 (45) hide show
  1. package/README.md +330 -108
  2. package/dist/README.md +384 -0
  3. package/dist/nodes/Runrunit/resources/boardStage/getAll.js +22 -0
  4. package/dist/nodes/Runrunit/resources/boardStage/getAll.js.map +1 -1
  5. package/dist/nodes/Runrunit/resources/checklistItems/getAll.js +22 -0
  6. package/dist/nodes/Runrunit/resources/checklistItems/getAll.js.map +1 -1
  7. package/dist/nodes/Runrunit/resources/clients/getAll.js +22 -0
  8. package/dist/nodes/Runrunit/resources/clients/getAll.js.map +1 -1
  9. package/dist/nodes/Runrunit/resources/comments/getAll.js +22 -0
  10. package/dist/nodes/Runrunit/resources/comments/getAll.js.map +1 -1
  11. package/dist/nodes/Runrunit/resources/descendants/getAll.js +22 -0
  12. package/dist/nodes/Runrunit/resources/descendants/getAll.js.map +1 -1
  13. package/dist/nodes/Runrunit/resources/documents/getAll.js +22 -0
  14. package/dist/nodes/Runrunit/resources/documents/getAll.js.map +1 -1
  15. package/dist/nodes/Runrunit/resources/executers/BoardStageExecute.js +5 -0
  16. package/dist/nodes/Runrunit/resources/executers/BoardStageExecute.js.map +1 -1
  17. package/dist/nodes/Runrunit/resources/executers/ChecklistItemsExecute.js +5 -0
  18. package/dist/nodes/Runrunit/resources/executers/ChecklistItemsExecute.js.map +1 -1
  19. package/dist/nodes/Runrunit/resources/executers/ClientsExecute.js +5 -0
  20. package/dist/nodes/Runrunit/resources/executers/ClientsExecute.js.map +1 -1
  21. package/dist/nodes/Runrunit/resources/executers/CommentsExecute.js +5 -0
  22. package/dist/nodes/Runrunit/resources/executers/CommentsExecute.js.map +1 -1
  23. package/dist/nodes/Runrunit/resources/executers/DescendantsExecute.js +5 -0
  24. package/dist/nodes/Runrunit/resources/executers/DescendantsExecute.js.map +1 -1
  25. package/dist/nodes/Runrunit/resources/executers/DocumentsExecute.js +5 -0
  26. package/dist/nodes/Runrunit/resources/executers/DocumentsExecute.js.map +1 -1
  27. package/dist/nodes/Runrunit/resources/executers/ProjectsExecute.js +5 -0
  28. package/dist/nodes/Runrunit/resources/executers/ProjectsExecute.js.map +1 -1
  29. package/dist/nodes/Runrunit/resources/executers/TaskExecute.js +5 -0
  30. package/dist/nodes/Runrunit/resources/executers/TaskExecute.js.map +1 -1
  31. package/dist/nodes/Runrunit/resources/executers/TeamExecute.js +5 -0
  32. package/dist/nodes/Runrunit/resources/executers/TeamExecute.js.map +1 -1
  33. package/dist/nodes/Runrunit/resources/executers/UserExecute.js +5 -0
  34. package/dist/nodes/Runrunit/resources/executers/UserExecute.js.map +1 -1
  35. package/dist/nodes/Runrunit/resources/projects/getAll.js +22 -0
  36. package/dist/nodes/Runrunit/resources/projects/getAll.js.map +1 -1
  37. package/dist/nodes/Runrunit/resources/task/getAll.js +22 -0
  38. package/dist/nodes/Runrunit/resources/task/getAll.js.map +1 -1
  39. package/dist/nodes/Runrunit/resources/team/getAll.js +22 -0
  40. package/dist/nodes/Runrunit/resources/team/getAll.js.map +1 -1
  41. package/dist/nodes/Runrunit/resources/user/getAll.js +22 -0
  42. package/dist/nodes/Runrunit/resources/user/getAll.js.map +1 -1
  43. package/dist/package.json +2 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +2 -1
package/README.md CHANGED
@@ -1,162 +1,384 @@
1
1
  # n8n-nodes-runrunit
2
2
 
3
- Node n8n para integrar com a API do Runrun.it (API v1.0).
3
+ Node comunitário n8n para integração com a API do **Runrun.it** (v1.0).
4
4
 
5
- Este pacote implementa um conjunto de recursos (resources) do Runrun.it como propriedades declarativas do node para uso em workflows n8n.
5
+ [![npm version](https://img.shields.io/npm/v/n8n-nodes-runrunit)](https://www.npmjs.com/package/n8n-nodes-runrunit)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
+
8
+ ---
9
+
10
+ ## Índice
6
11
 
7
- Índice
8
12
  - [Instalação](#instalação)
9
13
  - [Credenciais](#credenciais)
10
- - [Recursos implementados](#recursos-implementados)
11
- - [Exemplos de uso / cURL](#exemplos-de-uso--curl)
12
- - [Notas de implementação](#notas-de-implementação)
13
- - [Contribuição e testes](#contribuição-e-testes)
14
+ - [Recursos e Operações](#recursos-e-operações)
15
+ - [User](#user-usuários)
16
+ - [Task](#task-tarefas)
17
+ - [Team](#team-equipes)
18
+ - [Projects](#projects-projetos)
19
+ - [Board Stages](#board-stages-estágios-de-board)
20
+ - [Comments](#comments-comentários)
21
+ - [Documents](#documents-documentos)
22
+ - [Checklists](#checklists)
23
+ - [Checklist Items](#checklist-items-itens-de-checklist)
24
+ - [Clients](#clients-clientes)
25
+ - [Descendants](#descendants-tarefas-descendentes)
26
+ - [Descriptions](#descriptions-descrições)
27
+ - [Time Worked](#time-worked-tempo-trabalhado)
28
+ - [Filtros e Ordenação](#filtros-e-ordenação)
29
+ - [Paginação](#paginação)
30
+ - [Desenvolvimento](#desenvolvimento)
31
+
32
+ ---
14
33
 
15
34
  ## Instalação
16
35
 
17
- Siga o guia de instalação de community nodes do n8n. Depois de instalado, importe o pacote ou coloque-o em `~/.n8n/node_modules/` conforme a documentação do n8n.
36
+ ### Via interface do n8n (recomendado)
37
+
38
+ 1. Acesse **Settings → Community Nodes** no n8n
39
+ 2. Clique em **Install**
40
+ 3. Digite `n8n-nodes-runrunit` e confirme
41
+
42
+ ### Manual
43
+
44
+ ```bash
45
+ cd ~/.n8n
46
+ npm install n8n-nodes-runrunit
47
+ ```
48
+
49
+ Reinicie o n8n após a instalação.
50
+
51
+ ---
18
52
 
19
53
  ## Credenciais
20
54
 
21
- O node usa credenciais `RunrunitApi` (arquivo em `credentials/RunrunitApi.credentials.ts`) que devem prover os cabeçalhos necessários:
55
+ Crie uma credencial do tipo **Runrunit API** com os seguintes campos:
22
56
 
23
- - `App-Key`: chave da conta
24
- - `User-Token`: token do usuário
57
+ | Campo | Descrição |
58
+ |-------|-----------|
59
+ | `App-Key` | Chave da conta Runrun.it |
60
+ | `User-Token` | Token de autenticação do usuário |
25
61
 
26
- As requests do node possuem `requestDefaults.baseURL` apontando para `https://runrun.it/api/v1.0` e `Content-Type: application/json` quando aplicável.
62
+ Ambos os valores são enviados como headers em todas as requisições. Você encontra essas informações em **Configurações → Integrações → API** dentro do Runrun.it.
27
63
 
28
- ## Recursos implementados
64
+ ---
29
65
 
30
- As seguintes resources foram adicionadas ao node e expostas nas propriedades (campo `resource`):
66
+ ## Recursos e Operações
31
67
 
32
- - Users (`user`)
33
- - Operações: `getAll` (GET /users), `get` (GET /users/:id), `create` (POST /users), `update` (PUT /users/:id)
68
+ A base URL de todas as requisições é `https://runrun.it/api/v1.0`.
34
69
 
35
- - Teams (`team`)
36
- - Operações: `getAll`, `get`, `create`, `update`, `delete`, `add_member`, `remove_member`
70
+ ---
37
71
 
38
- - Tasks (`task`)
39
- - Operações principais: `getAll`, `get`, `create`, `update`, `delete` e ações (play/pause/move/reposition/reestimate/share/unshare/clone/etc.)
72
+ ### User (Usuários)
40
73
 
41
- - Board Stages (`boardStage`)
42
- - Operações: `getAll`, `get`, `create`, `update`, `delete`, `move`, `update_use_latency_time`, `update_use_scrum_points`
74
+ **Endpoint base:** `/users`
43
75
 
44
- - Time Worked (`timeWorked`)
45
- - Operação: `get` (GET /reports/time_worked)
76
+ | Operação | Método | Rota |
77
+ |----------|--------|------|
78
+ | Get Many | GET | `/users` |
79
+ | Get | GET | `/users/:id` |
80
+ | Create | POST | `/users` |
81
+ | Update | PUT | `/users/:id` |
46
82
 
47
- - Comments (`comments`) ADICIONADO
48
- - Operações: `getAll` (GET /tasks/:taskId/comments), `get` (GET /comments/:id), `create`, `update`, `delete`, `reaction` (POST /comments/:id/reaction)
49
- - Payloads via propriedade `commentObject` (JSON) enviada no body como `comment`.
83
+ Parâmetros de `Get Many`: `limit`, `page`, `search_term`, `returnAll`, `sort`, `sort_dir`
50
84
 
51
- - Documents (`documents`) — ADICIONADO
52
- - Operações: `getAll` (GET /tasks/:taskId/documents), `get`, `download`, `thumbnail`, `preview`, `create` (upload multipart), `mark_as_uploaded`, `delete`
53
- - Observação: `create` suporta upload via `filePath` (n8n deve fornecer o arquivo). Metadados opcionais via `documentObject` enviados como `document`.
85
+ ---
54
86
 
55
- - Checklists (`checklists`) — ADICIONADO
56
- - Operações: `get`, `create`, `update`, `delete` (vinculadas a `/tasks/:task_id/checklist`)
87
+ ### Task (Tarefas)
88
+
89
+ **Endpoint base:** `/tasks`
90
+
91
+ | Operação | Método | Rota |
92
+ |----------|--------|------|
93
+ | Get Many | GET | `/tasks` |
94
+ | Get | GET | `/tasks/:id` |
95
+ | Create | POST | `/tasks` |
96
+ | Update | PUT | `/tasks/:id` |
97
+ | Delete | DELETE | `/tasks/:id` |
98
+ | Play | POST | `/tasks/:id/play` |
99
+ | Pause | POST | `/tasks/:id/pause` |
100
+ | Deliver | POST | `/tasks/:id/deliver` |
101
+ | Reopen | POST | `/tasks/:id/reopen` |
102
+ | Move | POST | `/tasks/:id/move` |
103
+ | Move To Next Stage | POST | `/tasks/:id/move_to_next_stage` |
104
+ | Move To Top | POST | `/tasks/:id/move_to_top` |
105
+ | Clone | POST | `/tasks/clone` |
106
+ | Reestimate | POST | `/tasks/:id/reestimate` |
107
+ | Reposition | POST | `/tasks/:id/reposition` |
108
+ | Share | POST | `/tasks/:id/share` |
109
+ | Unshare | POST | `/tasks/:id/unshare` |
110
+ | Add Comment | POST | `/tasks/:id/comments` |
111
+ | Add Manual Work Period | POST | `/tasks/:id/add_manual_work_period` |
112
+ | Change Board | POST | `/tasks/:id/change_board` |
113
+ | Change Project | POST | `/tasks/:id/change_project` |
114
+ | Change Time Worked | POST | `/tasks/:id/change_time_worked` |
115
+ | Change Type | POST | `/tasks/:id/change_type` |
116
+ | Create Assignments | POST | `/tasks/:id/create_assignments` |
117
+ | Complete Workflow Step | POST | `/tasks/:id/complete_workflow_step` |
118
+ | Mark As Urgent | POST | `/tasks/:id/mark_as_urgent` |
119
+ | Get Subtasks | GET | `/tasks/:id/subtasks` |
120
+ | Get Fields | GET | `/tasks/:id/fields` |
121
+ | Get Form Answers | GET | `/tasks/:id/form_answers` |
122
+
123
+ Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `search_term`, `project_id`, `client_id`, `responsible_id`, `is_closed`, `sort`, `sort_dir`, `filters`
57
124
 
58
- - Checklist Items (`checklistItems`) — ADICIONADO
59
- - Operações: `getAll`, `get`, `create`, `update`, `delete` (vinculadas a `/checklists/:checklist_id/items`)
125
+ ---
60
126
 
61
- - Clients (`clients`) — ADICIONADO
62
- - Operações: `getAll`, `get`, `create`, `update`, `monthly_budgets`, `update_monthly_budget`
127
+ ### Team (Equipes)
63
128
 
64
- - Descendants (`descendants`) — ADICIONADO
65
- - Operações: `getAll` (GET /tasks/:taskId/descendants), `create` (POST /tasks/:taskId/descendants), `delete`
129
+ **Endpoint base:** `/teams`
66
130
 
67
- - Descriptions (`descriptions`) ADICIONADO
68
- - Operações: `get` (GET /descriptions?subject_type=...&subject_id=...), `update` (PUT /descriptions)
131
+ | Operação | Método | Rota |
132
+ |----------|--------|------|
133
+ | Get Many | GET | `/teams` |
134
+ | Get | GET | `/teams/:id` |
135
+ | Create | POST | `/teams` |
136
+ | Update | PUT | `/teams/:id` |
137
+ | Delete | DELETE | `/teams/:id` |
138
+ | Add Member | POST | `/teams/:id/add_member` |
139
+ | Remove Member | POST | `/teams/:id/remove_member` |
69
140
 
70
- Cada resource está definido em `nodes/Runrunit/resources/<resource>/index.ts` e exportado no `Runrunit.node.ts`.
141
+ Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `sort`, `sort_dir`
71
142
 
72
- ## Exemplos de uso / cURL
143
+ ---
73
144
 
74
- - Listar usuários (exemplo cURL):
145
+ ### Projects (Projetos)
75
146
 
76
- ```bash
77
- curl -g "https://runrun.it/api/v1.0/users" \
78
- -H "App-Key: YOUR_APP_KEY" \
79
- -H "User-Token: YOUR_USER_TOKEN"
80
- ```
147
+ **Endpoint base:** `/projects`
81
148
 
82
- - Criar usuário via body JSON:
149
+ | Operação | Método | Rota |
150
+ |----------|--------|------|
151
+ | Get Many | GET | `/projects` |
152
+ | Get | GET | `/projects/:id` |
153
+ | Create | POST | `/projects` |
154
+ | Update | PUT | `/projects/:id` |
155
+ | Related Users | GET | `/projects/:id/related_users` |
156
+ | Move | POST | `/projects/:id/move` |
157
+ | Share | POST | `/projects/:id/share` |
158
+ | Unshare | POST | `/projects/:id/unshare` |
159
+ | Clone | POST | `/projects/:id/clone` |
160
+ | Change Board Stage | POST | `/projects/:id/change_board_stage` |
161
+ | List Filters | GET | `/projects/filters` |
162
+ | Get Filter | GET | `/projects/filters/:id` |
163
+ | Delete Filter | DELETE | `/projects/filters/:id` |
83
164
 
84
- ```bash
85
- # Exemplo: criar um gestor (is_manager=true) e tornar parceiros mútuos
86
- curl "https://runrun.it/api/v1.0/users" \
87
- -X POST \
88
- -H "App-Key: YOUR_APP_KEY" \
89
- -H "User-Token: YOUR_USER_TOKEN" \
90
- -H "Content-Type: application/json" \
91
- -d '{
92
- "user": {
93
- "name": "Novo Gestor Yesh",
94
- "email": "gestor.teste@yesh.com.br",
95
- "is_manager": true,
96
- "team_ids": [435586],
97
- "position": "Analista de Atendimento"
98
- },
99
- "make_everybody_mutual_partners": true
100
- }'
101
- ```
165
+ Parâmetros de `Get Many`: `page`, `returnAll`, `client_id`, `project_group_id`, `search_term`, `is_closed`, `sort`, `sort_dir`, `filters`
102
166
 
103
- ```bash
104
- # Exemplo: criar um colaborador
105
- curl "https://runrun.it/api/v1.0/users" \
106
- -X POST \
107
- -H "App-Key: YOUR_APP_KEY" \
108
- -H "User-Token: YOUR_USER_TOKEN" \
109
- -H "Content-Type: application/json" \
110
- -d '{
111
- "user": {
112
- "name": "Colaborador Teste",
113
- "email": "colaborador.yesh@yesh.com.br",
114
- "is_manager": false,
115
- "is_master": false,
116
- "team_ids": [435586],
117
- "position": "Suporte Nível 1"
118
- },
119
- "make_everybody_mutual_partners": true
120
- }'
121
- ```
167
+ ---
122
168
 
123
- - Listar comentários de uma tarefa:
169
+ ### Board Stages (Estágios de Board)
124
170
 
125
- ```bash
126
- curl -g "https://runrun.it/api/v1.0/tasks/123/comments" -H "App-Key: ..." -H "User-Token: ..."
127
- ```
171
+ **Endpoint base:** `/boards/:boardId/stages`
128
172
 
129
- - Upload de documento (exemplo):
130
- ```bash
131
- curl -X POST "https://runrun.it/api/v1.0/tasks/123/documents" \
132
- -H "App-Key: ..." -H "User-Token: ..." \
133
- -F "file=@/path/to/report.pdf"
134
- ```
173
+ | Operação | Método | Rota |
174
+ |----------|--------|------|
175
+ | Get Many | GET | `/boards/:boardId/stages` |
176
+ | Get | GET | `/boards/:boardId/stages/:id` |
177
+ | Create | POST | `/boards/:boardId/stages` |
178
+ | Update | PUT | `/boards/:boardId/stages/:id` |
179
+ | Delete | DELETE | `/boards/:boardId/stages/:id` |
180
+ | Move | POST | `/boards/:boardId/stages/:id/move` |
181
+ | Update Use Latency Time | POST | `/boards/:boardId/stages/:id/update_use_latency_time` |
182
+ | Update Use Scrum Points | POST | `/boards/:boardId/stages/:id/update_use_scrum_points` |
183
+
184
+ Parâmetros de `Get Many`: `boardId` (obrigatório), `limit`, `page`, `returnAll`, `sort`, `sort_dir`
185
+
186
+ ---
187
+
188
+ ### Comments (Comentários)
189
+
190
+ **Endpoint base:** `/comments`
191
+
192
+ | Operação | Método | Rota |
193
+ |----------|--------|------|
194
+ | Get Many | GET | `/tasks/:taskId/comments` |
195
+ | Get | GET | `/comments/:id` |
196
+ | Create | POST | `/comments` |
197
+ | Update | PUT | `/comments/:id` |
198
+ | Delete | DELETE | `/comments/:id` |
199
+ | Reaction | POST | `/comments/:id/reaction` |
200
+
201
+ Parâmetros de `Get Many`: `taskId`, `limit`, `page`, `returnAll`, `sort`, `sort_dir`
202
+
203
+ ---
204
+
205
+ ### Documents (Documentos)
206
+
207
+ **Endpoint base:** `/documents`
208
+
209
+ | Operação | Método | Rota |
210
+ |----------|--------|------|
211
+ | Get Many | GET | `/tasks/:taskId/documents` ou `/documents` |
212
+ | Get | GET | `/documents/:id` |
213
+ | Delete | DELETE | `/documents/:id` |
214
+
215
+ Parâmetros de `Get Many`: `taskId` (opcional — filtra por tarefa), `limit`, `page`, `returnAll`, `sort`, `sort_dir`
216
+
217
+ ---
218
+
219
+ ### Checklists
220
+
221
+ **Endpoint base:** `/tasks/:taskId/checklist`
222
+
223
+ | Operação | Método | Rota |
224
+ |----------|--------|------|
225
+ | Get | GET | `/tasks/:taskId/checklist` |
226
+ | Create | POST | `/tasks/:taskId/checklist` |
227
+ | Update | PUT | `/tasks/:taskId/checklist` |
228
+ | Delete | DELETE | `/tasks/:taskId/checklist` |
229
+
230
+ ---
135
231
 
136
- ## Notas de implementação
232
+ ### Checklist Items (Itens de Checklist)
137
233
 
138
- - O node é declarativo (properties) e usa o sistema de `routing` do n8n para mapear operações para métodos HTTP e rotas relativas.
139
- - Paginação: muitos endpoints suportam `page`, `limit` e cabeçalhos `Link` / `X-Item-Range`. As propriedades `getAll`/`returnAll` já foram configuradas em alguns recursos para usar paginação de offset.
140
- - Upload de arquivos (`documents.create`): foi adicionada a propriedade `filePath` para apontar arquivo local; caso precise de comportamento avançado do n8n (binary data node input), posso implementar leitura do `binary` input e montagem multipart automaticamente.
234
+ **Endpoint base:** `/checklist_items`
141
235
 
142
- ## Contribuição e testes
236
+ | Operação | Método | Rota |
237
+ |----------|--------|------|
238
+ | Get Many | GET | `/checklist_items` |
239
+ | Get | GET | `/checklist_items/:id` |
240
+ | Create | POST | `/checklist_items` |
241
+ | Update | PUT | `/checklist_items/:id` |
242
+ | Delete | DELETE | `/checklist_items/:id` |
143
243
 
144
- - Rodar typecheck / lint:
244
+ Parâmetros de `Get Many`: `checklistId`, `limit`, `page`, `returnAll`, `sort`, `sort_dir`
245
+
246
+ ---
247
+
248
+ ### Clients (Clientes)
249
+
250
+ **Endpoint base:** `/clients`
251
+
252
+ | Operação | Método | Rota |
253
+ |----------|--------|------|
254
+ | Get Many | GET | `/clients` |
255
+ | Get | GET | `/clients/:id` |
256
+ | Create | POST | `/clients` |
257
+ | Update | PUT | `/clients/:id` |
258
+ | Monthly Budgets | GET | `/clients/:id/monthly_budgets` |
259
+ | Update Monthly Budget | POST | `/clients/:id/update_monthly_budget` |
260
+
261
+ Parâmetros de `Get Many`: `limit`, `page`, `returnAll`, `sort`, `sort_dir`
262
+
263
+ ---
264
+
265
+ ### Descendants (Tarefas Descendentes)
266
+
267
+ **Endpoint base:** `/tasks/:taskId/descendants`
268
+
269
+ | Operação | Método | Rota |
270
+ |----------|--------|------|
271
+ | Get Many | GET | `/tasks/:taskId/descendants` |
272
+ | Create | POST | `/tasks/:taskId/descendants` |
273
+ | Delete | DELETE | `/descendants/:id` |
274
+
275
+ Parâmetros de `Get Many`: `taskId` (obrigatório), `limit`, `page`, `returnAll`, `sort`, `sort_dir`
276
+
277
+ ---
278
+
279
+ ### Descriptions (Descrições)
280
+
281
+ **Endpoint base:** `/descriptions`
282
+
283
+ | Operação | Método | Rota |
284
+ |----------|--------|------|
285
+ | Get | GET | `/descriptions?subject_type=...&subject_id=...` |
286
+ | Update | PUT | `/descriptions` |
287
+
288
+ ---
289
+
290
+ ### Time Worked (Tempo Trabalhado)
291
+
292
+ **Endpoint base:** `/reports/time_worked`
293
+
294
+ | Operação | Método | Rota |
295
+ |----------|--------|------|
296
+ | Get | GET | `/reports/time_worked` |
297
+
298
+ ---
299
+
300
+ ## Filtros e Ordenação
301
+
302
+ ### Ordenação
303
+
304
+ Todas as operações **Get Many** suportam os parâmetros:
305
+
306
+ | Parâmetro | Tipo | Descrição |
307
+ |-----------|------|-----------|
308
+ | `sort` | string | Nome do campo para ordenar os resultados (ex: `created_at`, `title`) |
309
+ | `sort_dir` | options | Direção da ordenação: `asc` (padrão) ou `desc` |
310
+
311
+ > **Nota:** `sort_dir` só aparece na interface e só é enviado na requisição quando `sort` está preenchido.
312
+
313
+ ### Filtros Pós-Execução
314
+
315
+ Os recursos **Task**, **Projects** e **Clients** suportam uma coleção `Filters` que permite filtrar os resultados localmente após a resposta da API, usando operadores como `equals`, `contains`, `gt`, `lt`, `isTrue`, `isFalse`.
316
+
317
+ ---
318
+
319
+ ## Paginação
320
+
321
+ As operações `Get Many` suportam:
322
+
323
+ | Campo | Descrição |
324
+ |-------|-----------|
325
+ | `Return All` | Quando ativado, busca todos os registros (usa `limit=99000`) |
326
+ | `Limit` | Número máximo de registros por página (máx. 100) |
327
+ | `Page` | Número da página para paginação baseada em offset |
328
+
329
+ ---
330
+
331
+ ## Desenvolvimento
145
332
 
146
333
  ```bash
334
+ # Instalar dependências
147
335
  npm install
336
+
337
+ # Build (compila TypeScript e copia README para dist/)
148
338
  npm run build
339
+
340
+ # Modo de desenvolvimento com hot-reload
341
+ npm run dev
342
+
343
+ # Lint
149
344
  npm run lint
345
+ npm run lint:fix
150
346
  ```
151
347
 
152
- - Se quiser que eu rode checagem de tipos e corrija erros, posso executar agora e ajustar os arquivos modificados.
348
+ ### Estrutura do projeto
349
+
350
+ ```
351
+ .
352
+ ├── credentials/
353
+ │ └── RunrunitApi.credentials.ts # Configuração das credenciais
354
+ ├── nodes/
355
+ │ └── Runrunit/
356
+ │ ├── Runrunit.node.ts # Definição principal do node
357
+ │ ├── GenericFunctions.ts # makeRequest, applyPostFilters, etc.
358
+ │ └── resources/
359
+ │ ├── <resource>/
360
+ │ │ ├── index.ts # Operações (options) do resource
361
+ │ │ ├── getAll.ts # Propriedades da operação Get Many
362
+ │ │ ├── get.ts # Propriedades da operação Get
363
+ │ │ ├── create.ts # Propriedades da operação Create
364
+ │ │ └── update.ts # Propriedades da operação Update
365
+ │ └── executers/
366
+ │ └── <Resource>Execute.ts # Lógica de execução HTTP
367
+ ├── package.json
368
+ └── README.md
369
+ ```
153
370
 
154
371
  ---
155
372
 
156
- Se desejar, eu:
157
- - gero exemplos JSON completos para cada endpoint descrito em `runrun.itDoc/doc.MD`, ou
158
- - implemento suporte a upload via `binary` do n8n para `documents.create`, ou
159
- - executo `npm run build` e corrijo problemas de tipagem.
373
+ ## Links
374
+
375
+ - [Documentação da API Runrun.it](https://runrun.it/api-docs)
376
+ - [Repositório GitHub](https://github.com/YeshShareDEV/n8n-nodes-runrun.it)
377
+ - [npm](https://www.npmjs.com/package/n8n-nodes-runrunit)
378
+ - [Documentação de nodes comunitários n8n](https://docs.n8n.io/integrations/community-nodes/)
379
+
380
+ ---
160
381
 
161
- Diga qual ação prefere em seguida.
382
+ ## Licença
162
383
 
384
+ [MIT](LICENSE)