@pipedream/trello 0.4.0 → 1.0.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 (65) hide show
  1. package/actions/add-attachment-to-card/add-attachment-to-card.mjs +29 -58
  2. package/actions/add-checklist/add-checklist.mjs +9 -19
  3. package/actions/add-comment/add-comment.mjs +4 -5
  4. package/actions/add-existing-label-to-card/add-existing-label-to-card.mjs +9 -19
  5. package/actions/add-member-to-card/add-member-to-card.mjs +9 -19
  6. package/actions/archive-card/archive-card.mjs +5 -6
  7. package/actions/{common.mjs → common/common.mjs} +1 -1
  8. package/actions/complete-checklist-item/complete-checklist-item.mjs +4 -14
  9. package/actions/create-board/create-board.mjs +10 -47
  10. package/actions/create-card/create-card.mjs +45 -65
  11. package/actions/create-checklist-item/create-checklist-item.mjs +4 -14
  12. package/actions/create-label/create-label.mjs +5 -18
  13. package/actions/create-list/create-list.mjs +4 -12
  14. package/actions/delete-checklist/delete-checklist.mjs +8 -18
  15. package/actions/find-labels/find-labels.mjs +2 -3
  16. package/actions/find-list/find-list.mjs +2 -2
  17. package/actions/get-card/get-card.mjs +2 -2
  18. package/actions/get-list/get-list.mjs +1 -1
  19. package/actions/move-card-to-list/move-card-to-list.mjs +2 -2
  20. package/actions/remove-label-from-card/remove-label-from-card.mjs +9 -18
  21. package/actions/rename-list/rename-list.mjs +2 -2
  22. package/actions/search-boards/search-boards.mjs +10 -8
  23. package/actions/search-cards/search-cards.mjs +11 -8
  24. package/actions/search-checklists/search-checklists.mjs +56 -75
  25. package/actions/search-members/search-members.mjs +13 -23
  26. package/actions/update-card/update-card.mjs +22 -21
  27. package/common/constants.mjs +128 -0
  28. package/common/fields.mjs +1 -0
  29. package/package.json +3 -2
  30. package/sources/card-archived/card-archived.mjs +16 -28
  31. package/sources/card-archived/test-event.mjs +64 -0
  32. package/sources/card-due-date-reminder/card-due-date-reminder.mjs +111 -33
  33. package/sources/card-due-date-reminder/test-event.mjs +75 -0
  34. package/sources/card-moved/card-moved.mjs +20 -23
  35. package/sources/card-moved/test-event.mjs +78 -0
  36. package/sources/card-updates/card-updates.mjs +20 -27
  37. package/sources/card-updates/test-event.mjs +86 -0
  38. package/sources/common/actions.mjs +206 -0
  39. package/sources/common/common-board-based.mjs +12 -7
  40. package/sources/common/common-webhook.mjs +27 -16
  41. package/sources/common/common.mjs +5 -2
  42. package/sources/custom-webhook-events/custom-webhook-events.mjs +17 -48
  43. package/sources/new-activity/new-activity.mjs +22 -31
  44. package/sources/new-attachment/new-attachment.mjs +40 -49
  45. package/sources/new-attachment/test-event.mjs +69 -0
  46. package/sources/new-board/new-board.mjs +18 -11
  47. package/sources/new-board/test-event.mjs +100 -0
  48. package/sources/new-card/new-card.mjs +20 -27
  49. package/sources/new-card/test-event.mjs +79 -0
  50. package/sources/new-checklist/new-checklist.mjs +39 -22
  51. package/sources/new-checklist/test-event.mjs +22 -0
  52. package/sources/new-comment-added-to-card/new-comment-added-to-card.mjs +38 -44
  53. package/sources/new-comment-added-to-card/test-event.mjs +298 -0
  54. package/sources/new-label/new-label.mjs +13 -14
  55. package/sources/new-label/test-event.mjs +7 -0
  56. package/sources/new-label-added-to-card/new-label-added-to-card.mjs +23 -24
  57. package/sources/new-label-added-to-card/test-event.mjs +85 -0
  58. package/sources/new-member-on-card/new-member-on-card.mjs +17 -26
  59. package/sources/new-member-on-card/test-event.mjs +83 -0
  60. package/sources/new-notification/new-notification.mjs +3 -12
  61. package/trello.app.mjs +211 -33
  62. package/actions/close-board/close-board.mjs +0 -31
  63. package/actions/create-checklist/create-checklist.mjs +0 -78
  64. package/actions/create-comment-on-card/create-comment-on-card.mjs +0 -59
  65. package/sources/new-list/new-list.mjs +0 -33
@@ -1,26 +1,25 @@
1
- import fs from "fs";
1
+ import app from "../../trello.app.mjs";
2
2
  import FormData from "form-data";
3
- import { ConfigurationError } from "@pipedream/platform";
4
- import common from "../common.mjs";
3
+ import { getFileStreamAndMetadata } from "@pipedream/platform";
4
+ import constants from "../../common/constants.mjs";
5
5
 
6
6
  export default {
7
- ...common,
8
7
  key: "trello-create-card",
9
8
  name: "Create Card",
10
9
  description: "Creates a new card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-post).",
11
- version: "0.1.0",
10
+ version: "1.0.0",
12
11
  type: "action",
13
12
  props: {
14
- ...common.props,
13
+ app,
15
14
  board: {
16
15
  propDefinition: [
17
- common.props.app,
16
+ app,
18
17
  "board",
19
18
  ],
20
19
  },
21
20
  name: {
22
21
  propDefinition: [
23
- common.props.app,
22
+ app,
24
23
  "name",
25
24
  ],
26
25
  description: "The name of the card.",
@@ -28,31 +27,32 @@ export default {
28
27
  },
29
28
  desc: {
30
29
  propDefinition: [
31
- common.props.app,
30
+ app,
32
31
  "desc",
33
32
  ],
34
33
  },
35
34
  pos: {
36
35
  propDefinition: [
37
- common.props.app,
36
+ app,
38
37
  "pos",
39
38
  ],
39
+ description: "The position of the new card. `top`, `bottom`, or a positive float",
40
40
  },
41
41
  due: {
42
42
  propDefinition: [
43
- common.props.app,
43
+ app,
44
44
  "due",
45
45
  ],
46
46
  },
47
47
  dueComplete: {
48
48
  propDefinition: [
49
- common.props.app,
49
+ app,
50
50
  "dueComplete",
51
51
  ],
52
52
  },
53
53
  idList: {
54
54
  propDefinition: [
55
- common.props.app,
55
+ app,
56
56
  "lists",
57
57
  (c) => ({
58
58
  board: c.board,
@@ -65,7 +65,7 @@ export default {
65
65
  },
66
66
  idMembers: {
67
67
  propDefinition: [
68
- common.props.app,
68
+ app,
69
69
  "member",
70
70
  (c) => ({
71
71
  board: c.board,
@@ -78,7 +78,7 @@ export default {
78
78
  },
79
79
  idLabels: {
80
80
  propDefinition: [
81
- common.props.app,
81
+ app,
82
82
  "label",
83
83
  (c) => ({
84
84
  board: c.board,
@@ -89,27 +89,22 @@ export default {
89
89
  description: "Array of labelIDs to add to the card",
90
90
  optional: true,
91
91
  },
92
- urlSource: {
93
- propDefinition: [
94
- common.props.app,
95
- "url",
96
- ],
92
+ file: {
93
+ type: "string",
94
+ label: "File Path or URL",
95
+ description: "Provide either a file URL or a path to a file in the /tmp directory (for example, /tmp/myFile.pdf).",
96
+ optional: true,
97
97
  },
98
98
  mimeType: {
99
99
  propDefinition: [
100
- common.props.app,
100
+ app,
101
101
  "mimeType",
102
102
  ],
103
- },
104
- file: {
105
- propDefinition: [
106
- common.props.app,
107
- "file",
108
- ],
103
+ optional: true,
109
104
  },
110
105
  idCardSource: {
111
106
  propDefinition: [
112
- common.props.app,
107
+ app,
113
108
  "cards",
114
109
  (c) => ({
115
110
  board: c.board,
@@ -118,44 +113,37 @@ export default {
118
113
  type: "string",
119
114
  label: "Copy Card",
120
115
  description: "Specify an existing card to copy contents from. Keep in mind that if you copy a card, the **File Attachment Path**, **File Attachment URL** and **File Attachment Type** fields will be ignored.",
116
+ reloadProps: true,
121
117
  },
122
118
  keepFromSource: {
123
119
  type: "string[]",
124
120
  label: "Copy From Source",
125
121
  description: "Specify which properties to copy from the source card",
126
- options: [
127
- "all",
128
- "attachments",
129
- "checklists",
130
- "comments",
131
- "due",
132
- "labels",
133
- "members",
134
- "stickers",
135
- ],
122
+ options: constants.CARD_KEEP_FROM_SOURCE_PROPERTIES,
136
123
  optional: true,
124
+ hidden: true,
137
125
  },
138
126
  address: {
139
127
  propDefinition: [
140
- common.props.app,
128
+ app,
141
129
  "address",
142
130
  ],
143
131
  },
144
132
  locationName: {
145
133
  propDefinition: [
146
- common.props.app,
134
+ app,
147
135
  "locationName",
148
136
  ],
149
137
  },
150
138
  coordinates: {
151
139
  propDefinition: [
152
- common.props.app,
140
+ app,
153
141
  "coordinates",
154
142
  ],
155
143
  },
156
144
  customFieldIds: {
157
145
  propDefinition: [
158
- common.props.app,
146
+ app,
159
147
  "customFieldIds",
160
148
  (c) => ({
161
149
  boardId: c.board,
@@ -164,8 +152,11 @@ export default {
164
152
  reloadProps: true,
165
153
  },
166
154
  },
167
- async additionalProps() {
155
+ async additionalProps(existingProps) {
168
156
  const props = {};
157
+
158
+ existingProps.keepFromSource.hidden = !this.idCardSource;
159
+
169
160
  if (!this.customFieldIds?.length) {
170
161
  return props;
171
162
  }
@@ -187,7 +178,6 @@ export default {
187
178
  return props;
188
179
  },
189
180
  methods: {
190
- ...common.methods,
191
181
  async getCustomFieldItems($) {
192
182
  const customFieldItems = [];
193
183
  for (const customFieldId of this.customFieldIds) {
@@ -213,16 +203,9 @@ export default {
213
203
  }
214
204
  return customFieldItems;
215
205
  },
216
- createCard(args = {}) {
217
- return this.app.post({
218
- path: "/cards",
219
- ...args,
220
- });
221
- },
222
206
  },
223
207
  async run({ $ }) {
224
208
  const {
225
- createCard,
226
209
  name,
227
210
  desc,
228
211
  pos,
@@ -231,7 +214,6 @@ export default {
231
214
  idList,
232
215
  idMembers,
233
216
  idLabels,
234
- urlSource,
235
217
  mimeType,
236
218
  file,
237
219
  idCardSource,
@@ -260,28 +242,26 @@ export default {
260
242
  coordinates,
261
243
  };
262
244
 
263
- if (file && !file?.startsWith("/tmp")) {
264
- throw new ConfigurationError("The file path must be in the `/tmp` directory");
265
- }
266
-
267
245
  if (file) {
268
246
  const form = new FormData();
269
- form.append("fileSource", fs.createReadStream(file));
270
-
271
- response = await createCard({
247
+ const {
248
+ stream, metadata,
249
+ } = await getFileStreamAndMetadata(file);
250
+ form.append("fileSource", stream, {
251
+ contentType: metadata.contentType,
252
+ knownLength: metadata.size,
253
+ filename: metadata.name,
254
+ });
255
+ response = await this.app.createCard({
272
256
  $,
273
257
  params,
274
258
  headers: form.getHeaders(),
275
259
  data: form,
276
260
  });
277
-
278
261
  } else {
279
- response = await createCard({
262
+ response = await this.app.createCard({
280
263
  $,
281
- params: {
282
- ...params,
283
- urlSource,
284
- },
264
+ params,
285
265
  });
286
266
  }
287
267
 
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-create-checklist-item",
5
5
  name: "Create a Checklist Item",
6
6
  description: "Creates a new checklist item in a card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-checklists/#api-checklists-id-checkitems-post).",
7
- version: "0.2.0",
7
+ version: "0.2.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -20,6 +20,7 @@ export default {
20
20
  "cards",
21
21
  ({ board }) => ({
22
22
  board,
23
+ checklistCardsOnly: true,
23
24
  }),
24
25
  ],
25
26
  type: "string",
@@ -56,26 +57,15 @@ export default {
56
57
  optional: true,
57
58
  },
58
59
  },
59
- methods: {
60
- createChecklistItem({
61
- checklistId, ...args
62
- } = {}) {
63
- return this.app.post({
64
- path: `/checklists/${checklistId}/checkItems`,
65
- ...args,
66
- });
67
- },
68
- },
69
60
  async run({ $ }) {
70
61
  const {
71
- createChecklistItem,
72
62
  checklistId,
73
63
  name,
74
64
  pos,
75
65
  checked,
76
66
  } = this;
77
67
 
78
- const response = await createChecklistItem({
68
+ const response = await this.app.createChecklistItem({
79
69
  $,
80
70
  checklistId,
81
71
  params: {
@@ -85,7 +75,7 @@ export default {
85
75
  },
86
76
  });
87
77
 
88
- $.export("$summary", "Successfully created a checklist item");
78
+ $.export("$summary", `Successfully created a checklist item with ID: ${response.id}`);
89
79
 
90
80
  return response;
91
81
  },
@@ -1,10 +1,11 @@
1
1
  import app from "../../trello.app.mjs";
2
+ import constants from "../../common/constants.mjs";
2
3
 
3
4
  export default {
4
5
  key: "trello-create-label",
5
6
  name: "Create Label",
6
7
  description: "Creates a new label on the specified board. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-labels/#api-labels-post).",
7
- version: "0.2.0",
8
+ version: "0.2.1",
8
9
  type: "action",
9
10
  props: {
10
11
  app,
@@ -26,19 +27,7 @@ export default {
26
27
  type: "string",
27
28
  label: "Color",
28
29
  description: "The color for the label. One of: yellow, purple, blue, red, green, orange, black, sky, pink, lime, null (null means no color, and the label will not show on the front of cards)",
29
- options: [
30
- "yellow",
31
- "purple",
32
- "blue",
33
- "red",
34
- "green",
35
- "orange",
36
- "black",
37
- "sky",
38
- "pink",
39
- "lime",
40
- "null",
41
- ],
30
+ options: constants.LABEL_COLORS,
42
31
  },
43
32
  },
44
33
  methods: {
@@ -50,15 +39,13 @@ export default {
50
39
  },
51
40
  },
52
41
  async run({ $ }) {
53
-
54
42
  const {
55
- createLabel,
56
43
  idBoard,
57
44
  name,
58
45
  color,
59
46
  } = this;
60
47
 
61
- const response = await createLabel({
48
+ const response = await this.app.createLabel({
62
49
  $,
63
50
  params: {
64
51
  idBoard,
@@ -67,7 +54,7 @@ export default {
67
54
  },
68
55
  });
69
56
 
70
- $.export("$summary", "Successfully created a label");
57
+ $.export("$summary", `Successfully created label ${this.name}`);
71
58
 
72
59
  return response;
73
60
  },
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-create-list",
5
5
  name: "Create a List",
6
6
  description: "Creates a new list. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-post).",
7
- version: "0.2.0",
7
+ version: "0.2.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -40,26 +40,18 @@ export default {
40
40
  app,
41
41
  "pos",
42
42
  ],
43
- },
44
- },
45
- methods: {
46
- createList(args = {}) {
47
- return this.app.post({
48
- path: "/lists",
49
- ...args,
50
- });
43
+ description: "Position of the list. `top`, `bottom`, or a positive floating point number",
51
44
  },
52
45
  },
53
46
  async run({ $ }) {
54
47
  const {
55
- createList,
56
48
  name,
57
49
  idBoard,
58
50
  idListSource,
59
51
  pos,
60
52
  } = this;
61
53
 
62
- const response = await createList({
54
+ const response = await this.app.createList({
63
55
  $,
64
56
  params: {
65
57
  name,
@@ -69,7 +61,7 @@ export default {
69
61
  },
70
62
  });
71
63
 
72
- $.export("$summary", "Successfully created list.");
64
+ $.export("$summary", `Successfully created list ${this.name}`);
73
65
 
74
66
  return response;
75
67
  },
@@ -1,26 +1,26 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-delete-checklist",
6
5
  name: "Delete Checklist",
7
6
  description: "Deletes the specified checklist. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-checklists/#api-checklists-id-delete).",
8
- version: "0.2.0",
7
+ version: "0.2.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  board: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "board",
16
15
  ],
17
16
  },
18
17
  carId: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "cards",
22
21
  (c) => ({
23
22
  board: c.board,
23
+ checklistCardsOnly: true,
24
24
  }),
25
25
  ],
26
26
  type: "string",
@@ -30,7 +30,7 @@ export default {
30
30
  },
31
31
  checklistId: {
32
32
  propDefinition: [
33
- common.props.app,
33
+ app,
34
34
  "checklist",
35
35
  ({ carId }) => ({
36
36
  card: carId,
@@ -39,18 +39,8 @@ export default {
39
39
  description: "The ID of the checklist to delete",
40
40
  },
41
41
  },
42
- methods: {
43
- deleteChecklist({
44
- checklistId, ...args
45
- } = {}) {
46
- return this.app.delete({
47
- path: `/checklists/${checklistId}`,
48
- ...args,
49
- });
50
- },
51
- },
52
42
  async run({ $ }) {
53
- await this.deleteChecklist({
43
+ await this.app.deleteChecklist({
54
44
  $,
55
45
  checklistId: this.checklistId,
56
46
  });
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-find-labels",
6
6
  name: "Find a Label",
7
7
  description: "Finds a label on a specific board by name. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-labels-get)",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -23,7 +23,6 @@ export default {
23
23
  ],
24
24
  label: "Label Name",
25
25
  description: "Name of the label to find.",
26
- optional: false,
27
26
  },
28
27
  limit: {
29
28
  type: "integer",
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-find-list",
6
6
  name: "Find a List",
7
7
  description: "Finds a list on a specific board by name. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-boards/#api-boards-id-lists-get).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-get-card",
6
6
  name: "Get Card",
7
7
  description: "Gets a card by its ID. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-get).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "trello-get-list",
5
5
  name: "Get List",
6
6
  description: "Get information about a List. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-id-get).",
7
- version: "0.1.0",
7
+ version: "0.1.1",
8
8
  type: "action",
9
9
  props: {
10
10
  app,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-move-card-to-list",
6
6
  name: "Move Card to List",
7
7
  description: "Moves a card to the specified board/list pair. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-put).",
8
- version: "0.2.0",
8
+ version: "0.2.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,23 +1,22 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-remove-label-from-card",
6
5
  name: "Remove Card Label",
7
6
  description: "Removes label from card. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-cards/#api-cards-id-idlabels-idlabel-delete).",
8
- version: "0.2.0",
7
+ version: "0.2.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  board: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "board",
16
15
  ],
17
16
  },
18
17
  cardId: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "cards",
22
21
  (c) => ({
23
22
  board: c.board,
@@ -30,27 +29,19 @@ export default {
30
29
  },
31
30
  labelId: {
32
31
  propDefinition: [
33
- common.props.app,
32
+ app,
34
33
  "label",
35
34
  (c) => ({
36
35
  board: c.board,
36
+ card: c.cardId,
37
+ cardLabelsOnly: true,
37
38
  }),
38
39
  ],
39
40
  description: "The ID of the Label to be removed from the card.",
40
41
  },
41
42
  },
42
- methods: {
43
- removeLabelFromCard({
44
- cardId, labelId, ...args
45
- } = {}) {
46
- return this.app.delete({
47
- path: `/cards/${cardId}/idLabels/${labelId}`,
48
- ...args,
49
- });
50
- },
51
- },
52
43
  async run({ $ }) {
53
- await this.removeLabelFromCard({
44
+ await this.app.removeLabelFromCard({
54
45
  $,
55
46
  cardId: this.cardId,
56
47
  labelId: this.labelId,
@@ -1,11 +1,11 @@
1
- import common from "../common.mjs";
1
+ import common from "../common/common.mjs";
2
2
 
3
3
  export default {
4
4
  ...common,
5
5
  key: "trello-rename-list",
6
6
  name: "Rename List",
7
7
  description: "Renames an existing list. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-lists/#api-lists-id-put).",
8
- version: "0.1.0",
8
+ version: "0.1.1",
9
9
  type: "action",
10
10
  props: {
11
11
  ...common.props,
@@ -1,44 +1,46 @@
1
- import common from "../common.mjs";
1
+ import app from "../../trello.app.mjs";
2
2
 
3
3
  export default {
4
- ...common,
5
4
  key: "trello-search-boards",
6
5
  name: "Search Boards",
7
6
  description: "Searches for boards matching the specified query. [See the documentation](https://developer.atlassian.com/cloud/trello/rest/api-group-search/#api-search-get).",
8
- version: "0.3.0",
7
+ version: "0.3.1",
9
8
  type: "action",
10
9
  props: {
11
- ...common.props,
10
+ app,
12
11
  query: {
13
12
  propDefinition: [
14
- common.props.app,
13
+ app,
15
14
  "query",
16
15
  ],
17
16
  },
18
17
  idOrganizations: {
19
18
  propDefinition: [
20
- common.props.app,
19
+ app,
21
20
  "idOrganizations",
22
21
  ],
23
22
  description: "Specify the organizations to search for boards in",
24
23
  },
25
24
  partial: {
26
25
  propDefinition: [
27
- common.props.app,
26
+ app,
28
27
  "partial",
29
28
  ],
29
+ optional: true,
30
30
  },
31
31
  boardFields: {
32
32
  propDefinition: [
33
- common.props.app,
33
+ app,
34
34
  "boardFields",
35
35
  ],
36
+ optional: true,
36
37
  },
37
38
  boardsLimit: {
38
39
  type: "integer",
39
40
  label: "Boards Limit",
40
41
  description: "The maximum number of boards to return.",
41
42
  default: 10,
43
+ optional: true,
42
44
  },
43
45
  },
44
46
  async run({ $ }) {