@agnocon/piece-canny 0.1.6
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.MIT-AP +24 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/actions/create-post.d.ts +14 -0
- package/dist/lib/actions/create-post.d.ts.map +1 -0
- package/dist/lib/actions/create-post.js +96 -0
- package/dist/lib/actions/create-post.js.map +1 -0
- package/dist/lib/actions/create-vote.d.ts +5 -0
- package/dist/lib/actions/create-vote.d.ts.map +1 -0
- package/dist/lib/actions/create-vote.js +45 -0
- package/dist/lib/actions/create-vote.js.map +1 -0
- package/dist/lib/actions/delete-vote.d.ts +5 -0
- package/dist/lib/actions/delete-vote.d.ts.map +1 -0
- package/dist/lib/actions/delete-vote.js +45 -0
- package/dist/lib/actions/delete-vote.js.map +1 -0
- package/dist/lib/actions/list-posts.d.ts +9 -0
- package/dist/lib/actions/list-posts.d.ts.map +1 -0
- package/dist/lib/actions/list-posts.js +102 -0
- package/dist/lib/actions/list-posts.js.map +1 -0
- package/dist/lib/actions/retrieve-post.d.ts +4 -0
- package/dist/lib/actions/retrieve-post.d.ts.map +1 -0
- package/dist/lib/actions/retrieve-post.js +37 -0
- package/dist/lib/actions/retrieve-post.js.map +1 -0
- package/dist/lib/auth.d.ts +2 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +35 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/common/client.d.ts +15 -0
- package/dist/lib/common/client.d.ts.map +1 -0
- package/dist/lib/common/client.js +34 -0
- package/dist/lib/common/client.js.map +1 -0
- package/dist/lib/common/props.d.ts +2 -0
- package/dist/lib/common/props.d.ts.map +1 -0
- package/dist/lib/common/props.js +38 -0
- package/dist/lib/common/props.js.map +1 -0
- package/dist/lib/triggers/new-comment.d.ts +2 -0
- package/dist/lib/triggers/new-comment.d.ts.map +1 -0
- package/dist/lib/triggers/new-comment.js +52 -0
- package/dist/lib/triggers/new-comment.js.map +1 -0
- package/dist/lib/triggers/new-post.d.ts +2 -0
- package/dist/lib/triggers/new-post.d.ts.map +1 -0
- package/dist/lib/triggers/new-post.js +56 -0
- package/dist/lib/triggers/new-post.js.map +1 -0
- package/dist/lib/triggers/new-vote.d.ts +2 -0
- package/dist/lib/triggers/new-vote.d.ts.map +1 -0
- package/dist/lib/triggers/new-vote.js +64 -0
- package/dist/lib/triggers/new-vote.js.map +1 -0
- package/dist/lib/triggers/post-status-changed.d.ts +2 -0
- package/dist/lib/triggers/post-status-changed.d.ts.map +1 -0
- package/dist/lib/triggers/post-status-changed.js +56 -0
- package/dist/lib/triggers/post-status-changed.js.map +1 -0
- package/dist/lib/triggers/register-trigger.d.ts +13 -0
- package/dist/lib/triggers/register-trigger.d.ts.map +1 -0
- package/dist/lib/triggers/register-trigger.js +42 -0
- package/dist/lib/triggers/register-trigger.js.map +1 -0
- package/package.json +46 -0
- package/src/index.ts +39 -0
- package/src/lib/actions/create-post.ts +90 -0
- package/src/lib/actions/create-vote.ts +39 -0
- package/src/lib/actions/delete-vote.ts +39 -0
- package/src/lib/actions/list-posts.ts +99 -0
- package/src/lib/actions/retrieve-post.ts +31 -0
- package/src/lib/auth.ts +34 -0
- package/src/lib/common/client.ts +44 -0
- package/src/lib/common/props.ts +36 -0
- package/src/lib/triggers/new-comment.ts +48 -0
- package/src/lib/triggers/new-post.ts +52 -0
- package/src/lib/triggers/new-vote.ts +60 -0
- package/src/lib/triggers/post-status-changed.ts +52 -0
- package/src/lib/triggers/register-trigger.ts +50 -0
package/LICENSE.MIT-AP
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Activepieces AB
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
Derived helpers in this folder are adapted from Activepieces (MIT) for use
|
|
24
|
+
inside CX without depending on @activepieces/* packages at runtime.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,KAAK,yGAwBhB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canny = void 0;
|
|
4
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/index.ts (MIT).
|
|
5
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
6
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
7
|
+
const pieces_framework_2 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("./lib/auth");
|
|
9
|
+
const create_post_1 = require("./lib/actions/create-post");
|
|
10
|
+
const retrieve_post_1 = require("./lib/actions/retrieve-post");
|
|
11
|
+
const list_posts_1 = require("./lib/actions/list-posts");
|
|
12
|
+
const create_vote_1 = require("./lib/actions/create-vote");
|
|
13
|
+
const delete_vote_1 = require("./lib/actions/delete-vote");
|
|
14
|
+
const new_post_1 = require("./lib/triggers/new-post");
|
|
15
|
+
const post_status_changed_1 = require("./lib/triggers/post-status-changed");
|
|
16
|
+
const new_comment_1 = require("./lib/triggers/new-comment");
|
|
17
|
+
const new_vote_1 = require("./lib/triggers/new-vote");
|
|
18
|
+
exports.canny = (0, pieces_framework_1.createPiece)({
|
|
19
|
+
displayName: 'Canny',
|
|
20
|
+
description: 'Product feedback management platform. Collect, organize, and prioritize feature requests from your users.',
|
|
21
|
+
auth: auth_1.cannyAuth,
|
|
22
|
+
minimumSupportedRelease: '0.36.1',
|
|
23
|
+
logoUrl: 'https://cdn.activepieces.com/pieces/canny.png',
|
|
24
|
+
authors: ['Harmatta', 'sanket-a11y'],
|
|
25
|
+
categories: [pieces_framework_2.PieceCategory.PRODUCTIVITY],
|
|
26
|
+
actions: [
|
|
27
|
+
create_post_1.createPostAction,
|
|
28
|
+
retrieve_post_1.retrievePostAction,
|
|
29
|
+
list_posts_1.listPostsAction,
|
|
30
|
+
create_vote_1.createVoteAction,
|
|
31
|
+
delete_vote_1.deleteVoteAction,
|
|
32
|
+
// createCustomApiCallAction({
|
|
33
|
+
// baseUrl: () => CANNY_API_BASE,
|
|
34
|
+
// auth: cannyAuth,
|
|
35
|
+
// authMapping: async (_auth) => ({
|
|
36
|
+
// 'Content-Type': 'application/json',
|
|
37
|
+
// }),
|
|
38
|
+
// }),
|
|
39
|
+
],
|
|
40
|
+
triggers: [new_post_1.newPostTrigger, post_status_changed_1.postStatusChangedTrigger, new_comment_1.newCommentTrigger, new_vote_1.newVoteTrigger],
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iFAAiF;AACjF,qEAAqE;AACrE,gEAAwD;AACxD,gEAA0D;AAE1D,qCAAuC;AACvC,2DAA6D;AAC7D,+DAAiE;AACjE,yDAA2D;AAC3D,2DAA6D;AAC7D,2DAA6D;AAC7D,sDAAyD;AACzD,4EAA8E;AAC9E,4DAA+D;AAC/D,sDAAyD;AAE5C,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,WAAW,EAAE,OAAO;IACpB,WAAW,EACT,2GAA2G;IAC7G,IAAI,EAAE,gBAAS;IACf,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,+CAA+C;IACxD,OAAO,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;IACpC,UAAU,EAAE,CAAC,gCAAa,CAAC,YAAY,CAAC;IACxC,OAAO,EAAE;QACP,8BAAgB;QAChB,kCAAkB;QAClB,4BAAe;QACf,8BAAgB;QAChB,8BAAgB;QAChB,8BAA8B;QAC9B,mCAAmC;QACnC,qBAAqB;QACrB,qCAAqC;QACrC,0CAA0C;QAC1C,QAAQ;QACR,MAAM;KACP;IACD,QAAQ,EAAE,CAAC,yBAAc,EAAE,8CAAwB,EAAE,+BAAiB,EAAE,yBAAc,CAAC;CACxF,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const createPostAction: import("@agnocon/pieces-framework").IAction<import("@agnocon/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
boardID: import("@agnocon/pieces-framework").DropdownProperty<string, true, import("@agnocon/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
authorID: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
title: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
5
|
+
details: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
6
|
+
byID: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
7
|
+
categoryID: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
8
|
+
ownerID: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
9
|
+
eta: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
10
|
+
etaPublic: import("@agnocon/pieces-framework").CheckboxProperty<false>;
|
|
11
|
+
customFields: import("@agnocon/pieces-framework").ObjectProperty<false>;
|
|
12
|
+
createdAt: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=create-post.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-post.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/create-post.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAmF3B,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPostAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/actions/create-post.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
const client_1 = require("../common/client");
|
|
11
|
+
exports.createPostAction = (0, pieces_framework_1.createAction)({
|
|
12
|
+
auth: auth_1.cannyAuth,
|
|
13
|
+
name: 'create_post',
|
|
14
|
+
displayName: 'Create Post',
|
|
15
|
+
description: 'Creates a new post on a Canny board.',
|
|
16
|
+
audience: 'both',
|
|
17
|
+
aiMetadata: {
|
|
18
|
+
description: 'Creates a new feedback post (feature request, bug, etc.) on a Canny board. Use to submit feedback captured elsewhere into Canny. Requires a board ID, an author Canny user ID, a title, and details; creates a distinct post on each call (not idempotent).',
|
|
19
|
+
idempotent: false,
|
|
20
|
+
},
|
|
21
|
+
props: {
|
|
22
|
+
boardID: props_1.boardIdProp,
|
|
23
|
+
authorID: pieces_framework_1.Property.ShortText({
|
|
24
|
+
displayName: 'Author ID',
|
|
25
|
+
description: 'The unique identifier of the post author (Canny user ID).',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
title: pieces_framework_1.Property.ShortText({
|
|
29
|
+
displayName: 'Title',
|
|
30
|
+
description: 'A brief title describing the post.',
|
|
31
|
+
required: true,
|
|
32
|
+
}),
|
|
33
|
+
details: pieces_framework_1.Property.LongText({
|
|
34
|
+
displayName: 'Details',
|
|
35
|
+
description: 'The longer description of the post.',
|
|
36
|
+
required: true,
|
|
37
|
+
}),
|
|
38
|
+
byID: pieces_framework_1.Property.ShortText({
|
|
39
|
+
displayName: 'By ID',
|
|
40
|
+
description: 'The unique identifier of the admin creating the post on behalf of the author.',
|
|
41
|
+
required: false,
|
|
42
|
+
}),
|
|
43
|
+
categoryID: pieces_framework_1.Property.ShortText({
|
|
44
|
+
displayName: 'Category ID',
|
|
45
|
+
description: 'The unique identifier of the category to assign.',
|
|
46
|
+
required: false,
|
|
47
|
+
}),
|
|
48
|
+
ownerID: pieces_framework_1.Property.ShortText({
|
|
49
|
+
displayName: 'Owner ID',
|
|
50
|
+
description: 'The unique identifier of the user responsible for completing the work.',
|
|
51
|
+
required: false,
|
|
52
|
+
}),
|
|
53
|
+
eta: pieces_framework_1.Property.ShortText({
|
|
54
|
+
displayName: 'ETA',
|
|
55
|
+
description: 'The estimated delivery date in MM/YYYY format (e.g. "06/2026").',
|
|
56
|
+
required: false,
|
|
57
|
+
}),
|
|
58
|
+
etaPublic: pieces_framework_1.Property.Checkbox({
|
|
59
|
+
displayName: 'ETA Public',
|
|
60
|
+
description: 'Whether the ETA should be visible to all users.',
|
|
61
|
+
required: false,
|
|
62
|
+
}),
|
|
63
|
+
customFields: pieces_framework_1.Property.Object({
|
|
64
|
+
displayName: 'Custom Fields',
|
|
65
|
+
description: 'Custom fields as key-value pairs (keys max 30 chars, values max 200 chars).',
|
|
66
|
+
required: false,
|
|
67
|
+
}),
|
|
68
|
+
createdAt: pieces_framework_1.Property.ShortText({
|
|
69
|
+
displayName: 'Created At',
|
|
70
|
+
description: 'Original creation date in ISO 8601 format, for migrating posts from another source.',
|
|
71
|
+
required: false,
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
74
|
+
run(_a) {
|
|
75
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
|
|
76
|
+
return yield (0, client_1.cannyRequest)({
|
|
77
|
+
apiKey: auth.secret_text,
|
|
78
|
+
path: '/posts/create',
|
|
79
|
+
body: (0, client_1.cleanBody)({
|
|
80
|
+
authorID: propsValue.authorID,
|
|
81
|
+
boardID: propsValue.boardID,
|
|
82
|
+
title: propsValue.title,
|
|
83
|
+
details: propsValue.details,
|
|
84
|
+
byID: propsValue.byID,
|
|
85
|
+
categoryID: propsValue.categoryID,
|
|
86
|
+
ownerID: propsValue.ownerID,
|
|
87
|
+
eta: propsValue.eta,
|
|
88
|
+
etaPublic: propsValue.etaPublic,
|
|
89
|
+
customFields: propsValue.customFields,
|
|
90
|
+
createdAt: propsValue.createdAt,
|
|
91
|
+
}),
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=create-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-post.js","sourceRoot":"","sources":["../../../src/lib/actions/create-post.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const createVoteAction: import("@agnocon/pieces-framework").IAction<import("@agnocon/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
postID: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
voterID: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>;
|
|
5
|
+
//# sourceMappingURL=create-vote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-vote.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/create-vote.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB;;;EAiC3B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createVoteAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/actions/create-vote.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const client_1 = require("../common/client");
|
|
10
|
+
exports.createVoteAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.cannyAuth,
|
|
12
|
+
name: 'create_vote',
|
|
13
|
+
displayName: 'Create Vote',
|
|
14
|
+
description: 'Casts a vote on a post on behalf of a user.',
|
|
15
|
+
audience: 'both',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: 'Registers a vote on a Canny post on behalf of a specific user. Use to record support for a feature request when acting as that voter. Requires the post ID and the voter Canny user ID. Effectively idempotent: re-voting the same user on the same post does not add duplicate votes.',
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
postID: pieces_framework_1.Property.ShortText({
|
|
22
|
+
displayName: 'Post ID',
|
|
23
|
+
description: 'The unique identifier of the post to vote on.',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
voterID: pieces_framework_1.Property.ShortText({
|
|
27
|
+
displayName: 'Voter ID',
|
|
28
|
+
description: 'The unique identifier of the voter (Canny user ID).',
|
|
29
|
+
required: true,
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
run(_a) {
|
|
33
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
|
|
34
|
+
return yield (0, client_1.cannyRequest)({
|
|
35
|
+
apiKey: auth.secret_text,
|
|
36
|
+
path: '/votes/create',
|
|
37
|
+
body: {
|
|
38
|
+
postID: propsValue.postID,
|
|
39
|
+
voterID: propsValue.voterID,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=create-vote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-vote.js","sourceRoot":"","sources":["../../../src/lib/actions/create-vote.ts"],"names":[],"mappings":";;;;AAAA,mGAAmG;AACnG,qEAAqE;AACrE,gEAAmE;AAEnE,kCAAoC;AACpC,6CAAgD;AAEnC,QAAA,gBAAgB,GAAG,IAAA,+BAAY,EAAC;IAC3C,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,6CAA6C;IAC1D,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,wRAAwR;QAC1R,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG;qEAAC,EAAE,IAAI,EAAE,UAAU,EAAE;YAC5B,OAAO,MAAM,IAAA,qBAAY,EAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE;oBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,OAAO,EAAE,UAAU,CAAC,OAAO;iBAC5B;aACF,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const deleteVoteAction: import("@agnocon/pieces-framework").IAction<import("@agnocon/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
postID: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
3
|
+
voterID: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>;
|
|
5
|
+
//# sourceMappingURL=delete-vote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-vote.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/delete-vote.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB;;;EAiC3B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deleteVoteAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/actions/delete-vote.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const client_1 = require("../common/client");
|
|
10
|
+
exports.deleteVoteAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.cannyAuth,
|
|
12
|
+
name: 'delete_vote',
|
|
13
|
+
displayName: 'Delete Vote',
|
|
14
|
+
description: 'Removes a vote from a post for a given user.',
|
|
15
|
+
audience: 'both',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: "Removes a specific user's vote from a Canny post. Use to retract support previously registered for a post. Requires the post ID and the voter Canny user ID. Idempotent: removing an already-absent vote leaves the post in the same state.",
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
postID: pieces_framework_1.Property.ShortText({
|
|
22
|
+
displayName: 'Post ID',
|
|
23
|
+
description: 'The unique identifier of the post to remove the vote from.',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
voterID: pieces_framework_1.Property.ShortText({
|
|
27
|
+
displayName: 'Voter ID',
|
|
28
|
+
description: 'The unique identifier of the voter (Canny user ID).',
|
|
29
|
+
required: true,
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
run(_a) {
|
|
33
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
|
|
34
|
+
return yield (0, client_1.cannyRequest)({
|
|
35
|
+
apiKey: auth.secret_text,
|
|
36
|
+
path: '/votes/delete',
|
|
37
|
+
body: {
|
|
38
|
+
postID: propsValue.postID,
|
|
39
|
+
voterID: propsValue.voterID,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=delete-vote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-vote.js","sourceRoot":"","sources":["../../../src/lib/actions/delete-vote.ts"],"names":[],"mappings":";;;;AAAA,mGAAmG;AACnG,qEAAqE;AACrE,gEAAmE;AAEnE,kCAAoC;AACpC,6CAAgD;AAEnC,QAAA,gBAAgB,GAAG,IAAA,+BAAY,EAAC;IAC3C,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,6OAA6O;QAC/O,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,qDAAqD;YAClE,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG;qEAAC,EAAE,IAAI,EAAE,UAAU,EAAE;YAC5B,OAAO,MAAM,IAAA,qBAAY,EAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE;oBACJ,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,OAAO,EAAE,UAAU,CAAC,OAAO;iBAC5B;aACF,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const listPostsAction: import("@agnocon/pieces-framework").IAction<import("@agnocon/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
boardID: import("@agnocon/pieces-framework").DropdownProperty<string, false, import("@agnocon/pieces-framework").SecretTextProperty<true>>;
|
|
3
|
+
search: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
4
|
+
sort: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
|
|
5
|
+
status: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
6
|
+
limit: import("@agnocon/pieces-framework").NumberProperty<false>;
|
|
7
|
+
skip: import("@agnocon/pieces-framework").NumberProperty<false>;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=list-posts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-posts.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/list-posts.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe;;;;;;;EA6F1B,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listPostsAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/actions/list-posts.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const client_1 = require("../common/client");
|
|
10
|
+
exports.listPostsAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.cannyAuth,
|
|
12
|
+
name: 'list_posts',
|
|
13
|
+
displayName: 'List Posts',
|
|
14
|
+
description: 'Returns a list of posts for a board, with optional filtering and sorting.',
|
|
15
|
+
audience: 'both',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: 'Lists Canny posts, optionally scoped to one board or queried across all boards when no board is given, with optional search text, status filter, sort order, and pagination (limit/skip). Use to discover or search posts rather than fetch one known post by ID. Read-only and idempotent.',
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
boardID: pieces_framework_1.Property.Dropdown({
|
|
22
|
+
auth: auth_1.cannyAuth,
|
|
23
|
+
displayName: 'Board',
|
|
24
|
+
description: 'The board to list posts for (optional — omit to list across all boards).',
|
|
25
|
+
required: false,
|
|
26
|
+
refreshers: [],
|
|
27
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
28
|
+
var _b;
|
|
29
|
+
if (!auth) {
|
|
30
|
+
return {
|
|
31
|
+
disabled: true,
|
|
32
|
+
placeholder: 'Connect your Canny account first.',
|
|
33
|
+
options: [],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const response = yield (0, client_1.cannyRequest)({
|
|
37
|
+
apiKey: auth.secret_text,
|
|
38
|
+
path: '/boards/list',
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
disabled: false,
|
|
42
|
+
options: ((_b = response.boards) !== null && _b !== void 0 ? _b : []).map((b) => ({
|
|
43
|
+
label: b.name,
|
|
44
|
+
value: b.id,
|
|
45
|
+
})),
|
|
46
|
+
};
|
|
47
|
+
}),
|
|
48
|
+
}),
|
|
49
|
+
search: pieces_framework_1.Property.ShortText({
|
|
50
|
+
displayName: 'Search',
|
|
51
|
+
description: 'A search query to filter posts.',
|
|
52
|
+
required: false,
|
|
53
|
+
}),
|
|
54
|
+
sort: pieces_framework_1.Property.StaticDropdown({
|
|
55
|
+
displayName: 'Sort',
|
|
56
|
+
description: 'The order of returned posts.',
|
|
57
|
+
required: false,
|
|
58
|
+
options: {
|
|
59
|
+
disabled: false,
|
|
60
|
+
options: [
|
|
61
|
+
{ label: 'Newest', value: 'newest' },
|
|
62
|
+
{ label: 'Oldest', value: 'oldest' },
|
|
63
|
+
{ label: 'Score', value: 'score' },
|
|
64
|
+
{ label: 'Trending', value: 'trending' },
|
|
65
|
+
{ label: 'Status Changed', value: 'statusChanged' },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
}),
|
|
69
|
+
status: pieces_framework_1.Property.ShortText({
|
|
70
|
+
displayName: 'Status',
|
|
71
|
+
description: 'Comma-separated list of statuses to filter by (e.g. "open,planned").',
|
|
72
|
+
required: false,
|
|
73
|
+
}),
|
|
74
|
+
limit: pieces_framework_1.Property.Number({
|
|
75
|
+
displayName: 'Limit',
|
|
76
|
+
description: 'Number of posts to fetch (default 10).',
|
|
77
|
+
required: false,
|
|
78
|
+
}),
|
|
79
|
+
skip: pieces_framework_1.Property.Number({
|
|
80
|
+
displayName: 'Skip',
|
|
81
|
+
description: 'Number of posts to skip (for pagination).',
|
|
82
|
+
required: false,
|
|
83
|
+
}),
|
|
84
|
+
},
|
|
85
|
+
run(_a) {
|
|
86
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
|
|
87
|
+
return yield (0, client_1.cannyRequest)({
|
|
88
|
+
apiKey: auth.secret_text,
|
|
89
|
+
path: '/posts/list',
|
|
90
|
+
body: (0, client_1.cleanBody)({
|
|
91
|
+
boardID: propsValue.boardID,
|
|
92
|
+
search: propsValue.search,
|
|
93
|
+
sort: propsValue.sort,
|
|
94
|
+
status: propsValue.status,
|
|
95
|
+
limit: propsValue.limit,
|
|
96
|
+
skip: propsValue.skip,
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
//# sourceMappingURL=list-posts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-posts.js","sourceRoot":"","sources":["../../../src/lib/actions/list-posts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve-post.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/retrieve-post.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,kBAAkB;;EAyB7B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retrievePostAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/actions/retrieve-post.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const client_1 = require("../common/client");
|
|
10
|
+
exports.retrievePostAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.cannyAuth,
|
|
12
|
+
name: 'retrieve_post',
|
|
13
|
+
displayName: 'Retrieve Post',
|
|
14
|
+
description: 'Retrieves the details of an existing post by its ID.',
|
|
15
|
+
audience: 'both',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: 'Looks up a single Canny post by its unique post ID and returns its full details. Use when you already have a post ID and need its current data (status, score, author, board). Read-only and idempotent.',
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
id: pieces_framework_1.Property.ShortText({
|
|
22
|
+
displayName: 'Post ID',
|
|
23
|
+
description: 'The unique identifier of the post.',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
},
|
|
27
|
+
run(_a) {
|
|
28
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue }) {
|
|
29
|
+
return yield (0, client_1.cannyRequest)({
|
|
30
|
+
apiKey: auth.secret_text,
|
|
31
|
+
path: '/posts/retrieve',
|
|
32
|
+
body: { id: propsValue.id },
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=retrieve-post.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieve-post.js","sourceRoot":"","sources":["../../../src/lib/actions/retrieve-post.ts"],"names":[],"mappings":";;;;AAAA,qGAAqG;AACrG,qEAAqE;AACrE,gEAAmE;AAEnE,kCAAoC;AACpC,6CAAgD;AAEnC,QAAA,kBAAkB,GAAG,IAAA,+BAAY,EAAC;IAC7C,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,sDAAsD;IACnE,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,0MAA0M;QAC5M,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE;QACL,EAAE,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACrB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG;qEAAC,EAAE,IAAI,EAAE,UAAU,EAAE;YAC5B,OAAO,MAAM,IAAA,qBAAY,EAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,WAAW;gBACxB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,SAAS,8DA6BpB,CAAC"}
|
package/dist/lib/auth.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cannyAuth = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/auth.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const client_1 = require("./common/client");
|
|
9
|
+
exports.cannyAuth = pieces_framework_1.PieceAuth.SecretText({
|
|
10
|
+
displayName: 'API Key',
|
|
11
|
+
description: 'Your Canny secret API key. Find it at Settings → API in your Canny admin dashboard.',
|
|
12
|
+
required: true,
|
|
13
|
+
validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
14
|
+
try {
|
|
15
|
+
const response = yield (0, client_1.cannyRequest)({
|
|
16
|
+
apiKey: auth,
|
|
17
|
+
path: '/boards/list',
|
|
18
|
+
});
|
|
19
|
+
if (Array.isArray(response.boards)) {
|
|
20
|
+
return { valid: true };
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
valid: false,
|
|
24
|
+
error: 'Unexpected response from Canny API. Check your API key.',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
catch (_b) {
|
|
28
|
+
return {
|
|
29
|
+
valid: false,
|
|
30
|
+
error: 'Invalid API key or could not reach the Canny API.',
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;;;AAAA,oFAAoF;AACpF,qEAAqE;AACrE,gEAAsD;AAEtD,4CAA+C;AAElC,QAAA,SAAS,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC5C,WAAW,EAAE,SAAS;IACtB,WAAW,EACT,qFAAqF;IACvF,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAY,EAEhC;gBACD,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;YAED,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,yDAAyD;aACjE,CAAC;QACJ,CAAC;QAAC,WAAM,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,mDAAmD;aAC3D,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare const CANNY_API_BASE = "https://canny.io/api/v1";
|
|
2
|
+
/**
|
|
3
|
+
* All Canny API endpoints use POST with JSON body.
|
|
4
|
+
* Authentication is via an `apiKey` field in the request body.
|
|
5
|
+
*/
|
|
6
|
+
export declare function cannyRequest<T = unknown>({ apiKey, path, body, }: {
|
|
7
|
+
apiKey: string;
|
|
8
|
+
path: string;
|
|
9
|
+
body?: Record<string, unknown>;
|
|
10
|
+
}): Promise<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Strip undefined/null/empty-string values from an object before sending.
|
|
13
|
+
*/
|
|
14
|
+
export declare function cleanBody(obj: Record<string, unknown>): Record<string, unknown>;
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/lib/common/client.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,4BAA4B,CAAC;AAExD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,EAC9C,MAAM,EACN,IAAI,EACJ,IAAI,GACL,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,CAAC,CAAC,CAcb;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CANNY_API_BASE = void 0;
|
|
4
|
+
exports.cannyRequest = cannyRequest;
|
|
5
|
+
exports.cleanBody = cleanBody;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
// Vendored from Activepieces packages/pieces/community/canny/src/lib/common/client.ts (MIT).
|
|
8
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
9
|
+
const pieces_common_1 = require("@agnocon/pieces-common");
|
|
10
|
+
exports.CANNY_API_BASE = 'https://canny.io/api/v1';
|
|
11
|
+
/**
|
|
12
|
+
* All Canny API endpoints use POST with JSON body.
|
|
13
|
+
* Authentication is via an `apiKey` field in the request body.
|
|
14
|
+
*/
|
|
15
|
+
function cannyRequest(_a) {
|
|
16
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ apiKey, path, body, }) {
|
|
17
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
18
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
19
|
+
url: `${exports.CANNY_API_BASE}${path}`,
|
|
20
|
+
headers: {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
22
|
+
},
|
|
23
|
+
body: Object.assign({ apiKey: apiKey.trim() }, body),
|
|
24
|
+
});
|
|
25
|
+
return response.body;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Strip undefined/null/empty-string values from an object before sending.
|
|
30
|
+
*/
|
|
31
|
+
function cleanBody(obj) {
|
|
32
|
+
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined && v !== null && v !== ''));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/common/client.ts"],"names":[],"mappings":";;;AAUA,oCAsBC;AAKD,8BAQC;;AA7CD,6FAA6F;AAC7F,qEAAqE;AACrE,0DAAgE;AAEnD,QAAA,cAAc,GAAG,yBAAyB,CAAC;AAExD;;;GAGG;AACH,SAAsB,YAAY;iEAAc,EAC9C,MAAM,EACN,IAAI,EACJ,IAAI,GAKL;QACC,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAI;YAC/C,MAAM,EAAE,0BAAU,CAAC,IAAI;YACvB,GAAG,EAAE,GAAG,sBAAc,GAAG,IAAI,EAAE;YAC/B,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,kBACF,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAClB,IAAI,CACR;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;CAAA;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,GAA4B;IAE5B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CACxB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CACrD,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/lib/common/props.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,kIA8BtB,CAAC"}
|