@azysinovacao/piece-kanbn 0.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/dist/index.d.ts +2 -0
- package/dist/index.js +38 -0
- package/dist/lib/actions/create-board.d.ts +6 -0
- package/dist/lib/actions/create-board.js +36 -0
- package/dist/lib/actions/create-card.d.ts +8 -0
- package/dist/lib/actions/create-card.js +32 -0
- package/dist/lib/actions/move-card.d.ts +6 -0
- package/dist/lib/actions/move-card.js +24 -0
- package/dist/lib/common/client.d.ts +1 -0
- package/dist/lib/common/client.js +8 -0
- package/dist/lib/common/props.d.ts +4 -0
- package/dist/lib/common/props.js +64 -0
- package/dist/lib/triggers/card-events.d.ts +14 -0
- package/dist/lib/triggers/card-events.js +72 -0
- package/package.json +22 -0
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.kanbn = exports.kanbnAuth = void 0;
|
|
4
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const shared_1 = require("@activepieces/shared");
|
|
7
|
+
const create_card_1 = require("./lib/actions/create-card");
|
|
8
|
+
const move_card_1 = require("./lib/actions/move-card");
|
|
9
|
+
const create_board_1 = require("./lib/actions/create-board");
|
|
10
|
+
const card_events_1 = require("./lib/triggers/card-events");
|
|
11
|
+
// Auth: API key do Kan.bn (SecretText) -> context.auth é string.
|
|
12
|
+
// Exportada para actions/triggers importarem via `import { kanbnAuth } from '../../'`.
|
|
13
|
+
exports.kanbnAuth = pieces_framework_1.PieceAuth.SecretText({
|
|
14
|
+
displayName: 'API Key',
|
|
15
|
+
required: true,
|
|
16
|
+
description: 'Chave da API do Kan.bn (gere em https://kan.bn/settings). Use a chave do usuário de automação para rastreabilidade.',
|
|
17
|
+
});
|
|
18
|
+
exports.kanbn = (0, pieces_framework_1.createPiece)({
|
|
19
|
+
displayName: 'Kan.bn',
|
|
20
|
+
description: 'Quadros Kanban open source (alternativa ao Trello): boards, listas, cards, labels, anexos e webhooks.',
|
|
21
|
+
logoUrl: 'https://kan.bn/logo.png', // TODO: confirmar URL pública do logo
|
|
22
|
+
minimumSupportedRelease: '0.36.1',
|
|
23
|
+
categories: [shared_1.PieceCategory.PRODUCTIVITY],
|
|
24
|
+
authors: ['azysinovacao'],
|
|
25
|
+
auth: exports.kanbnAuth,
|
|
26
|
+
actions: [
|
|
27
|
+
create_card_1.createCard,
|
|
28
|
+
move_card_1.moveCard,
|
|
29
|
+
create_board_1.createBoard,
|
|
30
|
+
// Fallback HTTP genérico p/ qualquer endpoint não coberto pelas actions:
|
|
31
|
+
(0, pieces_common_1.createCustomApiCallAction)({
|
|
32
|
+
baseUrl: () => 'https://kan.bn/api/v1',
|
|
33
|
+
auth: exports.kanbnAuth,
|
|
34
|
+
authMapping: async (auth) => ({ Authorization: `Bearer ${auth}` }),
|
|
35
|
+
}),
|
|
36
|
+
],
|
|
37
|
+
triggers: [card_events_1.cardEvents],
|
|
38
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const createBoard: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
lists: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
5
|
+
labels: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBoard = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
const client_1 = require("../common/client");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
exports.createBoard = (0, pieces_framework_1.createAction)({
|
|
9
|
+
name: 'create_board', // permanente
|
|
10
|
+
auth: __1.kanbnAuth,
|
|
11
|
+
displayName: 'Criar Board',
|
|
12
|
+
description: 'Cria um board no workspace, com colunas e labels iniciais.',
|
|
13
|
+
props: {
|
|
14
|
+
workspaceId: props_1.workspaceId,
|
|
15
|
+
name: pieces_framework_1.Property.ShortText({ displayName: 'Nome do board', required: true }),
|
|
16
|
+
lists: pieces_framework_1.Property.Array({
|
|
17
|
+
displayName: 'Colunas',
|
|
18
|
+
description: 'Nomes das colunas iniciais (ex.: A Fazer, Fazendo, Feito).',
|
|
19
|
+
required: false,
|
|
20
|
+
}),
|
|
21
|
+
labels: pieces_framework_1.Property.Array({
|
|
22
|
+
displayName: 'Labels',
|
|
23
|
+
description: 'Nomes das labels iniciais (ex.: Urgente).',
|
|
24
|
+
required: false,
|
|
25
|
+
}),
|
|
26
|
+
},
|
|
27
|
+
async run(context) {
|
|
28
|
+
const kanbn = (0, client_1.makeKanbn)(context.auth);
|
|
29
|
+
const { workspaceId, name, lists, labels } = context.propsValue;
|
|
30
|
+
return await kanbn.createBoard(workspaceId, {
|
|
31
|
+
name,
|
|
32
|
+
lists: lists ?? [],
|
|
33
|
+
labels: labels ?? [],
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const createCard: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
boardId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
4
|
+
listId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
5
|
+
title: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
6
|
+
description: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
7
|
+
dueDate: import("@activepieces/pieces-framework").DateTimeProperty<false>;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCard = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
const client_1 = require("../common/client");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
exports.createCard = (0, pieces_framework_1.createAction)({
|
|
9
|
+
name: 'create_card', // permanente — não renomear após publicar
|
|
10
|
+
auth: __1.kanbnAuth,
|
|
11
|
+
displayName: 'Criar Card',
|
|
12
|
+
description: 'Cria um card numa coluna do board.',
|
|
13
|
+
props: {
|
|
14
|
+
workspaceId: props_1.workspaceId, // dirige os dropdowns encadeados
|
|
15
|
+
boardId: // dirige os dropdowns encadeados
|
|
16
|
+
props_1.boardId,
|
|
17
|
+
listId: props_1.listId,
|
|
18
|
+
title: pieces_framework_1.Property.ShortText({ displayName: 'Título', required: true }),
|
|
19
|
+
description: pieces_framework_1.Property.LongText({ displayName: 'Descrição', required: false }),
|
|
20
|
+
dueDate: pieces_framework_1.Property.DateTime({ displayName: 'Data de vencimento', required: false }),
|
|
21
|
+
},
|
|
22
|
+
async run(context) {
|
|
23
|
+
const kanbn = (0, client_1.makeKanbn)(context.auth);
|
|
24
|
+
const { listId, title, description, dueDate } = context.propsValue;
|
|
25
|
+
return await kanbn.createCard({
|
|
26
|
+
listPublicId: listId,
|
|
27
|
+
title,
|
|
28
|
+
description: description ?? '',
|
|
29
|
+
dueDate: dueDate ?? null,
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const moveCard: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
boardId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
4
|
+
cardId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
5
|
+
listId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.moveCard = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
const client_1 = require("../common/client");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
exports.moveCard = (0, pieces_framework_1.createAction)({
|
|
9
|
+
name: 'move_card', // permanente
|
|
10
|
+
auth: __1.kanbnAuth,
|
|
11
|
+
displayName: 'Mover Card',
|
|
12
|
+
description: 'Move um card para outra coluna (dispara o webhook card.moved).',
|
|
13
|
+
props: {
|
|
14
|
+
workspaceId: props_1.workspaceId,
|
|
15
|
+
boardId: props_1.boardId,
|
|
16
|
+
cardId: props_1.cardId,
|
|
17
|
+
listId: props_1.listId, // coluna de destino
|
|
18
|
+
},
|
|
19
|
+
async run(context) {
|
|
20
|
+
const kanbn = (0, client_1.makeKanbn)(context.auth);
|
|
21
|
+
const { cardId, listId } = context.propsValue;
|
|
22
|
+
return await kanbn.moveCard(cardId, listId);
|
|
23
|
+
},
|
|
24
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const makeKanbn: (auth: string) => any;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeKanbn = void 0;
|
|
4
|
+
const kanbn_client_1 = require("@azysinovacao/kanbn-client");
|
|
5
|
+
// Ponte: a Piece NÃO reimplementa a API — só instancia a lib compartilhada.
|
|
6
|
+
// `auth` é o SecretText (string) = chave do usuário de automação (Ips).
|
|
7
|
+
const makeKanbn = (auth) => (0, kanbn_client_1.createKanbn)(auth);
|
|
8
|
+
exports.makeKanbn = makeKanbn;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
2
|
+
export declare const boardId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
export declare const listId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
4
|
+
export declare const cardId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cardId = exports.listId = exports.boardId = exports.workspaceId = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
const client_1 = require("./client");
|
|
7
|
+
// Dropdowns dinâmicos encadeados — UX correta (o usuário escolhe por NOME, nunca digita ID).
|
|
8
|
+
// Cada um usa a lib compartilhada para buscar as opções.
|
|
9
|
+
exports.workspaceId = pieces_framework_1.Property.Dropdown({
|
|
10
|
+
displayName: 'Workspace',
|
|
11
|
+
description: 'Workspace do Kan.bn',
|
|
12
|
+
required: true,
|
|
13
|
+
auth: __1.kanbnAuth, // se o TS reclamar deste campo, remova-o (refreshers:['auth'] basta)
|
|
14
|
+
refreshers: ['auth'],
|
|
15
|
+
options: async ({ auth }) => {
|
|
16
|
+
if (!auth)
|
|
17
|
+
return { disabled: true, options: [], placeholder: 'Conecte sua conta primeiro' };
|
|
18
|
+
const kanbn = (0, client_1.makeKanbn)(auth);
|
|
19
|
+
const ws = await kanbn.listWorkspaces();
|
|
20
|
+
return {
|
|
21
|
+
options: ws.map((w) => ({ label: w.workspace.name, value: w.workspace.publicId })),
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
exports.boardId = pieces_framework_1.Property.Dropdown({
|
|
26
|
+
displayName: 'Board',
|
|
27
|
+
required: true,
|
|
28
|
+
auth: __1.kanbnAuth,
|
|
29
|
+
refreshers: ['auth', 'workspaceId'],
|
|
30
|
+
options: async ({ auth, workspaceId }) => {
|
|
31
|
+
if (!auth || !workspaceId)
|
|
32
|
+
return { disabled: true, options: [], placeholder: 'Selecione o workspace' };
|
|
33
|
+
const kanbn = (0, client_1.makeKanbn)(auth);
|
|
34
|
+
const boards = await kanbn.listBoards(workspaceId);
|
|
35
|
+
return { options: boards.map((b) => ({ label: b.name, value: b.publicId })) };
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
exports.listId = pieces_framework_1.Property.Dropdown({
|
|
39
|
+
displayName: 'Coluna (lista)',
|
|
40
|
+
required: true,
|
|
41
|
+
auth: __1.kanbnAuth,
|
|
42
|
+
refreshers: ['auth', 'boardId'],
|
|
43
|
+
options: async ({ auth, boardId }) => {
|
|
44
|
+
if (!auth || !boardId)
|
|
45
|
+
return { disabled: true, options: [], placeholder: 'Selecione o board' };
|
|
46
|
+
const kanbn = (0, client_1.makeKanbn)(auth);
|
|
47
|
+
const board = await kanbn.getBoard(boardId);
|
|
48
|
+
return { options: (board.lists || []).map((l) => ({ label: l.name, value: l.publicId })) };
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
exports.cardId = pieces_framework_1.Property.Dropdown({
|
|
52
|
+
displayName: 'Card',
|
|
53
|
+
required: true,
|
|
54
|
+
auth: __1.kanbnAuth,
|
|
55
|
+
refreshers: ['auth', 'boardId'],
|
|
56
|
+
options: async ({ auth, boardId }) => {
|
|
57
|
+
if (!auth || !boardId)
|
|
58
|
+
return { disabled: true, options: [], placeholder: 'Selecione o board' };
|
|
59
|
+
const kanbn = (0, client_1.makeKanbn)(auth);
|
|
60
|
+
const board = await kanbn.getBoard(boardId);
|
|
61
|
+
const cards = (board.lists || []).flatMap((l) => (l.cards || []).map((c) => ({ label: `${l.name}: ${c.title}`, value: c.publicId })));
|
|
62
|
+
return { options: cards };
|
|
63
|
+
},
|
|
64
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
|
2
|
+
export declare const cardEvents: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
3
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
4
|
+
events: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
5
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
6
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
7
|
+
events: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
8
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
9
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
10
|
+
events: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
11
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
12
|
+
workspaceId: import("@activepieces/pieces-framework").DropdownProperty<unknown, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
|
|
13
|
+
events: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, true>;
|
|
14
|
+
}>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cardEvents = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
const client_1 = require("../common/client");
|
|
7
|
+
const props_1 = require("../common/props");
|
|
8
|
+
// Trigger WEBHOOK (a API do Kan.bn suporta webhooks nativos de card).
|
|
9
|
+
// onEnable registra o webhook via lib apontando para context.webhookUrl;
|
|
10
|
+
// onDisable remove. O payload real foi capturado em teste (sampleData abaixo).
|
|
11
|
+
exports.cardEvents = (0, pieces_framework_1.createTrigger)({
|
|
12
|
+
auth: __1.kanbnAuth,
|
|
13
|
+
name: 'card_events', // permanente
|
|
14
|
+
displayName: 'Evento de Card',
|
|
15
|
+
description: 'Dispara quando um card é criado, atualizado, movido ou deletado.',
|
|
16
|
+
type: pieces_framework_1.TriggerStrategy.WEBHOOK,
|
|
17
|
+
props: {
|
|
18
|
+
workspaceId: props_1.workspaceId,
|
|
19
|
+
events: pieces_framework_1.Property.StaticMultiSelectDropdown({
|
|
20
|
+
displayName: 'Eventos',
|
|
21
|
+
required: true,
|
|
22
|
+
defaultValue: ['card.created', 'card.updated', 'card.moved', 'card.deleted'],
|
|
23
|
+
options: {
|
|
24
|
+
options: [
|
|
25
|
+
{ label: 'Card criado', value: 'card.created' },
|
|
26
|
+
{ label: 'Card atualizado', value: 'card.updated' },
|
|
27
|
+
{ label: 'Card movido', value: 'card.moved' },
|
|
28
|
+
{ label: 'Card deletado', value: 'card.deleted' },
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
sampleData: {
|
|
34
|
+
event: 'card.moved',
|
|
35
|
+
timestamp: '2026-06-06T17:04:48.933Z',
|
|
36
|
+
data: {
|
|
37
|
+
card: {
|
|
38
|
+
id: '204957',
|
|
39
|
+
publicId: '8dc6mnkc7c7b',
|
|
40
|
+
title: 'Card Webhook',
|
|
41
|
+
description: 'teste de evento',
|
|
42
|
+
dueDate: null,
|
|
43
|
+
listId: 'e8zx58da8hqy',
|
|
44
|
+
boardId: 'e9thky5yuk4s',
|
|
45
|
+
},
|
|
46
|
+
board: { id: 'e9thky5yuk4s', name: 'Processo Comercial' },
|
|
47
|
+
list: { id: 'e8zx58da8hqy', name: 'Fazendo' },
|
|
48
|
+
user: { id: '994bd877-...', name: 'Ips' },
|
|
49
|
+
changes: { listId: { from: 'u78jjteil0s3', to: 'e8zx58da8hqy' } },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
async onEnable(context) {
|
|
53
|
+
const kanbn = (0, client_1.makeKanbn)(context.auth);
|
|
54
|
+
const wh = await kanbn.createWebhook(context.propsValue.workspaceId, {
|
|
55
|
+
name: 'Activepieces',
|
|
56
|
+
url: context.webhookUrl,
|
|
57
|
+
events: context.propsValue.events,
|
|
58
|
+
});
|
|
59
|
+
await context.store.put('kanbn_webhook_id', wh.publicId);
|
|
60
|
+
},
|
|
61
|
+
async onDisable(context) {
|
|
62
|
+
const id = await context.store.get('kanbn_webhook_id');
|
|
63
|
+
if (id) {
|
|
64
|
+
const kanbn = (0, client_1.makeKanbn)(context.auth);
|
|
65
|
+
await kanbn.deleteWebhook(context.propsValue.workspaceId, id);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
async run(context) {
|
|
69
|
+
// O Kan.bn entrega 1 evento por requisição.
|
|
70
|
+
return [context.payload.body];
|
|
71
|
+
},
|
|
72
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@azysinovacao/piece-kanbn",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Piece do Activepieces para o Kan.bn — camada fina que reusa @azysinovacao/kanbn-client.",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": ["dist"],
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@activepieces/pieces-common": "0.12.3",
|
|
14
|
+
"@activepieces/pieces-framework": "0.29.1",
|
|
15
|
+
"@activepieces/shared": "0.86.0",
|
|
16
|
+
"@azysinovacao/kanbn-client": "^0.1.0",
|
|
17
|
+
"tslib": "2.6.2"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"typescript": "^5.5.0"
|
|
21
|
+
}
|
|
22
|
+
}
|