@activepieces/piece-camb-ai 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/README.md +7 -0
- package/package.json +33 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +68 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/create-text-to-sound.d.ts +7 -0
- package/src/lib/actions/create-text-to-sound.js +96 -0
- package/src/lib/actions/create-text-to-sound.js.map +1 -0
- package/src/lib/actions/create-text-to-speech.d.ts +10 -0
- package/src/lib/actions/create-text-to-speech.js +117 -0
- package/src/lib/actions/create-text-to-speech.js.map +1 -0
- package/src/lib/actions/create-transcription.d.ts +8 -0
- package/src/lib/actions/create-transcription.js +129 -0
- package/src/lib/actions/create-transcription.js.map +1 -0
- package/src/lib/actions/create-translation.d.ts +9 -0
- package/src/lib/actions/create-translation.js +112 -0
- package/src/lib/actions/create-translation.js.map +1 -0
- package/src/lib/common/index.d.ts +9 -0
- package/src/lib/common/index.js +145 -0
- package/src/lib/common/index.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activepieces/piece-camb-ai",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "commonjs",
|
|
5
|
+
"main": "./src/index.js",
|
|
6
|
+
"types": "./src/index.d.ts",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"@sinclair/typebox": "0.34.11",
|
|
9
|
+
"axios": "1.8.3",
|
|
10
|
+
"axios-retry": "4.4.1",
|
|
11
|
+
"deepmerge-ts": "7.1.0",
|
|
12
|
+
"form-data": "^4.0.4",
|
|
13
|
+
"mime-types": "2.1.35",
|
|
14
|
+
"nanoid": "3.3.8",
|
|
15
|
+
"semver": "7.6.0",
|
|
16
|
+
"tslib": "^2.3.0",
|
|
17
|
+
"zod": "3.25.76",
|
|
18
|
+
"@activepieces/pieces-common": "0.7.0",
|
|
19
|
+
"@activepieces/pieces-framework": "0.20.1",
|
|
20
|
+
"@activepieces/shared": "0.22.0"
|
|
21
|
+
},
|
|
22
|
+
"overrides": {
|
|
23
|
+
"@tryfabric/martian": {
|
|
24
|
+
"@notionhq/client": "$@notionhq/client"
|
|
25
|
+
},
|
|
26
|
+
"vite": {
|
|
27
|
+
"rollup": "npm:@rollup/wasm-node"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"resolutions": {
|
|
31
|
+
"rollup": "npm:@rollup/wasm-node"
|
|
32
|
+
}
|
|
33
|
+
}
|
package/src/index.d.ts
ADDED
package/src/index.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cambAi = exports.cambaiAuth = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const create_text_to_sound_1 = require("./lib/actions/create-text-to-sound");
|
|
8
|
+
const create_text_to_speech_1 = require("./lib/actions/create-text-to-speech");
|
|
9
|
+
const create_translation_1 = require("./lib/actions/create-translation");
|
|
10
|
+
const create_transcription_1 = require("./lib/actions/create-transcription");
|
|
11
|
+
const common_1 = require("./lib/common");
|
|
12
|
+
const shared_1 = require("@activepieces/shared");
|
|
13
|
+
exports.cambaiAuth = pieces_framework_1.PieceAuth.SecretText({
|
|
14
|
+
displayName: "API Key",
|
|
15
|
+
description: `
|
|
16
|
+
To get your API key, please follow these steps:
|
|
17
|
+
1. Log in to your [CAMB.AI Studio](https://camb.ai/studio/) account.
|
|
18
|
+
2. Navigate to your workspace's API Keys dashboard.
|
|
19
|
+
3. Create a new key if you haven't already.
|
|
20
|
+
4. Copy the API key and paste it here.
|
|
21
|
+
`,
|
|
22
|
+
required: true,
|
|
23
|
+
validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
24
|
+
try {
|
|
25
|
+
yield pieces_common_1.httpClient.sendRequest({
|
|
26
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
27
|
+
url: `${common_1.API_BASE_URL}/source-languages`,
|
|
28
|
+
headers: {
|
|
29
|
+
'x-api-key': auth,
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
valid: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
return {
|
|
38
|
+
valid: false,
|
|
39
|
+
error: 'Invalid API Key.',
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
exports.cambAi = (0, pieces_framework_1.createPiece)({
|
|
45
|
+
displayName: "Camb.AI",
|
|
46
|
+
auth: exports.cambaiAuth,
|
|
47
|
+
minimumSupportedRelease: '0.36.1',
|
|
48
|
+
logoUrl: "https://cdn.activepieces.com/pieces/camb-ai.png",
|
|
49
|
+
authors: ['david-oluwaseun420', 'sanket-a11y'],
|
|
50
|
+
categories: [shared_1.PieceCategory.ARTIFICIAL_INTELLIGENCE],
|
|
51
|
+
actions: [
|
|
52
|
+
create_text_to_sound_1.createTextToSound,
|
|
53
|
+
create_text_to_speech_1.createTextToSpeech,
|
|
54
|
+
create_translation_1.createTranslation,
|
|
55
|
+
create_transcription_1.createTranscription,
|
|
56
|
+
(0, pieces_common_1.createCustomApiCallAction)({
|
|
57
|
+
auth: exports.cambaiAuth,
|
|
58
|
+
baseUrl: () => common_1.API_BASE_URL,
|
|
59
|
+
authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
+
return {
|
|
61
|
+
'x-api-key': auth,
|
|
62
|
+
};
|
|
63
|
+
}),
|
|
64
|
+
}),
|
|
65
|
+
],
|
|
66
|
+
triggers: [],
|
|
67
|
+
});
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/camb-ai/src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAgG;AAChG,6EAAuE;AACvE,+EAAyE;AACzE,yEAAqE;AACrE,6EAAyE;AACzE,yCAA4C;AAC5C,iDAAqD;AAExC,QAAA,UAAU,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC3C,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE;;;;;;KAMZ;IACD,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACrB,IAAI,CAAC;YACD,MAAM,0BAAU,CAAC,WAAW,CAAC;gBACzB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,qBAAY,mBAAmB;gBACvC,OAAO,EAAE;oBACL,WAAW,EAAE,IAAI;iBACpB;aACJ,CAAC,CAAC;YACH,OAAO;gBACH,KAAK,EAAE,IAAI;aACd,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO;gBACH,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,kBAAkB;aAC5B,CAAC;QACN,CAAC;IACL,CAAC,CAAA;CACJ,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG,IAAA,8BAAW,EAAC;IAC9B,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,kBAAU;IAChB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,iDAAiD;IAC1D,OAAO,EAAE,CAAC,oBAAoB,EAAC,aAAa,CAAC;IAC7C,UAAU,EAAC,CAAC,sBAAa,CAAC,uBAAuB,CAAC;IAClD,OAAO,EAAE;QACL,wCAAiB;QACjB,0CAAkB;QAClB,sCAAiB;QACjB,0CAAmB;QACnB,IAAA,yCAAyB,EAAC;YACtB,IAAI,EAAE,kBAAU;YAChB,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAY;YAC3B,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBACxB,OAAO;oBACH,WAAW,EAAE,IAAc;iBAC9B,CAAC;YACN,CAAC,CAAA;SACJ,CAAC;KACL;IACD,QAAQ,EAAE,EAAE;CACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const createTextToSound: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
prompt: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
duration: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
4
|
+
project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
+
project_description: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
6
|
+
folder_id: import("@activepieces/pieces-framework").DropdownProperty<number, false>;
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTextToSound = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const index_1 = require("../../index");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const common_2 = require("../common");
|
|
10
|
+
exports.createTextToSound = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: index_1.cambaiAuth,
|
|
12
|
+
name: 'create_text_to_sound',
|
|
13
|
+
displayName: 'Create Text-to-Sound',
|
|
14
|
+
description: 'Convert input text into “sound effects” using an AI model.',
|
|
15
|
+
props: {
|
|
16
|
+
prompt: pieces_framework_1.Property.LongText({
|
|
17
|
+
displayName: 'Prompt',
|
|
18
|
+
description: 'A clear, descriptive explanation of the desired audio effect. Concise prompts yield more accurate results.',
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
duration: pieces_framework_1.Property.Number({
|
|
22
|
+
displayName: 'Duration (seconds)',
|
|
23
|
+
description: 'The desired length of the audio in seconds (max 10). Defaults to 8 if not set.',
|
|
24
|
+
required: false,
|
|
25
|
+
}),
|
|
26
|
+
project_name: pieces_framework_1.Property.ShortText({
|
|
27
|
+
displayName: 'Project Name',
|
|
28
|
+
description: 'A memorable name for your project to help organize tasks in your Camb.ai workspace.',
|
|
29
|
+
required: false,
|
|
30
|
+
}),
|
|
31
|
+
project_description: pieces_framework_1.Property.LongText({
|
|
32
|
+
displayName: 'Project Description',
|
|
33
|
+
description: 'Provide details about your project\'s goals and specifications for documentation purposes.',
|
|
34
|
+
required: false,
|
|
35
|
+
}),
|
|
36
|
+
folder_id: common_2.listFoldersDropdown,
|
|
37
|
+
},
|
|
38
|
+
run(context) {
|
|
39
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
var _a;
|
|
41
|
+
const { auth } = context;
|
|
42
|
+
const { prompt, duration, project_name, project_description, folder_id } = context.propsValue;
|
|
43
|
+
const payload = { prompt };
|
|
44
|
+
if (duration)
|
|
45
|
+
payload['duration'] = duration;
|
|
46
|
+
if (project_name)
|
|
47
|
+
payload['project_name'] = project_name;
|
|
48
|
+
if (project_description)
|
|
49
|
+
payload['project_description'] = project_description;
|
|
50
|
+
if (folder_id)
|
|
51
|
+
payload['folder_id'] = folder_id;
|
|
52
|
+
const initialResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
53
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
54
|
+
url: `${common_1.API_BASE_URL}/text-to-sound`,
|
|
55
|
+
headers: {
|
|
56
|
+
'x-api-key': auth,
|
|
57
|
+
'Content-Type': 'application/json'
|
|
58
|
+
},
|
|
59
|
+
body: payload,
|
|
60
|
+
});
|
|
61
|
+
const taskId = initialResponse.body.task_id;
|
|
62
|
+
let attempts = 0;
|
|
63
|
+
let run_id = null;
|
|
64
|
+
while (attempts < common_1.MAX_POLLING_ATTEMPTS) {
|
|
65
|
+
const statusResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
66
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
67
|
+
url: `${common_1.API_BASE_URL}/text-to-sound/${taskId}`,
|
|
68
|
+
headers: {
|
|
69
|
+
'x-api-key': auth,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
const status = statusResponse.body.status;
|
|
73
|
+
if (status === 'SUCCESS') {
|
|
74
|
+
run_id = (_a = statusResponse.body.run_id) !== null && _a !== void 0 ? _a : null;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
if (status === 'FAILED') {
|
|
78
|
+
throw new Error(`Sound generation task failed: ${JSON.stringify(statusResponse.body)}`);
|
|
79
|
+
}
|
|
80
|
+
yield new Promise(resolve => setTimeout(resolve, common_1.POLLING_INTERVAL_MS));
|
|
81
|
+
attempts++;
|
|
82
|
+
}
|
|
83
|
+
if (!run_id) {
|
|
84
|
+
throw new Error("Sound generation task timed out or failed to return a run_id.");
|
|
85
|
+
}
|
|
86
|
+
const audioResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
87
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
88
|
+
url: `${common_1.API_BASE_URL}/text-to-sound-result/${run_id}`,
|
|
89
|
+
headers: { 'x-api-key': auth },
|
|
90
|
+
responseType: 'arraybuffer',
|
|
91
|
+
});
|
|
92
|
+
return { audio: audioResponse.body };
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=create-text-to-sound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-text-to-sound.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/camb-ai/src/lib/actions/create-text-to-sound.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const createTextToSpeech: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
text: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
language: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
4
|
+
voice_id: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
5
|
+
gender: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
|
|
6
|
+
age: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
7
|
+
project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
8
|
+
project_description: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
9
|
+
folder_id: import("@activepieces/pieces-framework").DropdownProperty<number, false>;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTextToSpeech = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const index_1 = require("../../index");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const common_2 = require("../common");
|
|
10
|
+
exports.createTextToSpeech = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: index_1.cambaiAuth,
|
|
12
|
+
name: 'create_text_to_speech',
|
|
13
|
+
displayName: 'Create Text-to-Speech',
|
|
14
|
+
description: 'Convert text into speech using a specified voice, language, gender, and age group.',
|
|
15
|
+
props: {
|
|
16
|
+
text: pieces_framework_1.Property.LongText({
|
|
17
|
+
displayName: 'Text',
|
|
18
|
+
description: 'The text to be converted to speech.',
|
|
19
|
+
required: true,
|
|
20
|
+
}),
|
|
21
|
+
language: common_1.listSourceLanguagesDropdown,
|
|
22
|
+
voice_id: common_1.listVoicesDropdown,
|
|
23
|
+
gender: pieces_framework_1.Property.StaticDropdown({
|
|
24
|
+
displayName: 'Gender',
|
|
25
|
+
description: 'The gender of the speaker.',
|
|
26
|
+
required: false,
|
|
27
|
+
options: {
|
|
28
|
+
options: [
|
|
29
|
+
{ label: 'Male', value: 1 },
|
|
30
|
+
{ label: 'Female', value: 2 },
|
|
31
|
+
{ label: 'Neutral', value: 0 },
|
|
32
|
+
{ label: 'Unspecified', value: 9 },
|
|
33
|
+
],
|
|
34
|
+
}
|
|
35
|
+
}),
|
|
36
|
+
age: pieces_framework_1.Property.Number({
|
|
37
|
+
displayName: 'Age',
|
|
38
|
+
description: 'The age of the speaker to be generated.',
|
|
39
|
+
required: false,
|
|
40
|
+
}),
|
|
41
|
+
project_name: pieces_framework_1.Property.ShortText({
|
|
42
|
+
displayName: 'Project Name',
|
|
43
|
+
description: 'A memorable name for your project to help organize tasks in your Camb.ai workspace.',
|
|
44
|
+
required: false,
|
|
45
|
+
}),
|
|
46
|
+
project_description: pieces_framework_1.Property.LongText({
|
|
47
|
+
displayName: 'Project Description',
|
|
48
|
+
description: 'Provide details about your project\'s goals and specifications for documentation purposes.',
|
|
49
|
+
required: false,
|
|
50
|
+
}),
|
|
51
|
+
folder_id: common_2.listFoldersDropdown,
|
|
52
|
+
},
|
|
53
|
+
run(context) {
|
|
54
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
var _a;
|
|
56
|
+
const { auth } = context;
|
|
57
|
+
const { text, language, voice_id, gender, age, project_name, project_description, folder_id } = context.propsValue;
|
|
58
|
+
const payload = { text, language: Number(language), voice_id: Number(voice_id) };
|
|
59
|
+
if (gender !== undefined)
|
|
60
|
+
payload['gender'] = gender;
|
|
61
|
+
if (age)
|
|
62
|
+
payload['age'] = age;
|
|
63
|
+
if (project_name)
|
|
64
|
+
payload['project_name'] = project_name;
|
|
65
|
+
if (project_description)
|
|
66
|
+
payload['project_description'] = project_description;
|
|
67
|
+
if (folder_id)
|
|
68
|
+
payload['folder_id'] = folder_id;
|
|
69
|
+
const initialResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
70
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
71
|
+
url: `${common_1.API_BASE_URL}/tts`,
|
|
72
|
+
headers: { 'x-api-key': auth, 'Content-Type': 'application/json' },
|
|
73
|
+
body: payload,
|
|
74
|
+
});
|
|
75
|
+
const taskId = initialResponse.body.task_id;
|
|
76
|
+
let attempts = 0;
|
|
77
|
+
let run_id = null;
|
|
78
|
+
while (attempts < common_1.MAX_POLLING_ATTEMPTS) {
|
|
79
|
+
const statusResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
80
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
81
|
+
url: `${common_1.API_BASE_URL}/tts/${taskId}`,
|
|
82
|
+
headers: { 'x-api-key': auth },
|
|
83
|
+
});
|
|
84
|
+
if (statusResponse.body.status === 'SUCCESS') {
|
|
85
|
+
run_id = (_a = statusResponse.body.run_id) !== null && _a !== void 0 ? _a : null;
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
if (statusResponse.body.status === 'FAILED') {
|
|
89
|
+
throw new Error(`Text-to-Speech task failed: ${JSON.stringify(statusResponse.body)}`);
|
|
90
|
+
}
|
|
91
|
+
yield new Promise(resolve => setTimeout(resolve, common_1.POLLING_INTERVAL_MS));
|
|
92
|
+
attempts++;
|
|
93
|
+
}
|
|
94
|
+
if (!run_id) {
|
|
95
|
+
throw new Error("Text-to-Speech task timed out or failed to return a run_id.");
|
|
96
|
+
}
|
|
97
|
+
const audioResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
98
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
99
|
+
url: `${common_1.API_BASE_URL}/tts-result/${run_id}`,
|
|
100
|
+
headers: { 'x-api-key': auth },
|
|
101
|
+
responseType: 'arraybuffer',
|
|
102
|
+
});
|
|
103
|
+
const fileName = `speech_${run_id}.wav`;
|
|
104
|
+
const fileData = Buffer.from(audioResponse.body);
|
|
105
|
+
const fileUrl = yield context.files.write({
|
|
106
|
+
fileName,
|
|
107
|
+
data: fileData,
|
|
108
|
+
});
|
|
109
|
+
return {
|
|
110
|
+
message: "Speech generated successfully.",
|
|
111
|
+
audio_url: fileUrl,
|
|
112
|
+
run_id: run_id,
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=create-text-to-speech.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-text-to-speech.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/camb-ai/src/lib/actions/create-text-to-speech.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const createTranscription: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
language: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
3
|
+
source_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
4
|
+
media: import("@activepieces/pieces-framework").DynamicProperties<true>;
|
|
5
|
+
project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
6
|
+
project_description: import("@activepieces/pieces-framework").LongTextProperty<false>;
|
|
7
|
+
folder_id: import("@activepieces/pieces-framework").DropdownProperty<number, false>;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTranscription = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const index_1 = require("../../index");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
10
|
+
const common_2 = require("../common");
|
|
11
|
+
exports.createTranscription = (0, pieces_framework_1.createAction)({
|
|
12
|
+
auth: index_1.cambaiAuth,
|
|
13
|
+
name: 'create_transcription',
|
|
14
|
+
displayName: 'Create Transcription',
|
|
15
|
+
description: 'Creates a task to process speech into readable text.',
|
|
16
|
+
props: {
|
|
17
|
+
language: common_1.listSourceLanguagesDropdown,
|
|
18
|
+
source_type: pieces_framework_1.Property.StaticDropdown({
|
|
19
|
+
displayName: 'Media Source',
|
|
20
|
+
description: 'Choose whether to upload a file or provide a URL.',
|
|
21
|
+
required: true,
|
|
22
|
+
defaultValue: 'file',
|
|
23
|
+
options: {
|
|
24
|
+
options: [
|
|
25
|
+
{ label: 'Upload File', value: 'file' },
|
|
26
|
+
{ label: 'File URL', value: 'url' },
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
}),
|
|
30
|
+
media: pieces_framework_1.Property.DynamicProperties({
|
|
31
|
+
displayName: 'Media',
|
|
32
|
+
required: true,
|
|
33
|
+
refreshers: ['source_type'],
|
|
34
|
+
props: (context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
35
|
+
const sourceType = context['source_type'];
|
|
36
|
+
const fields = {};
|
|
37
|
+
if (sourceType === 'file') {
|
|
38
|
+
fields['media_file'] = pieces_framework_1.Property.File({
|
|
39
|
+
displayName: 'Media File',
|
|
40
|
+
description: 'The media file (e.g., MP3, WAV, MP4) to transcribe. Max size: 20MB.',
|
|
41
|
+
required: true,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else if (sourceType === 'url') {
|
|
45
|
+
fields['media_url'] = pieces_framework_1.Property.ShortText({
|
|
46
|
+
displayName: 'Media URL',
|
|
47
|
+
description: 'A public URL to the media file to transcribe.',
|
|
48
|
+
required: true,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return fields;
|
|
52
|
+
})
|
|
53
|
+
}),
|
|
54
|
+
project_name: pieces_framework_1.Property.ShortText({
|
|
55
|
+
displayName: 'Project Name',
|
|
56
|
+
description: 'A memorable name for your project to help organize tasks in your Camb.ai workspace.',
|
|
57
|
+
required: false,
|
|
58
|
+
}),
|
|
59
|
+
project_description: pieces_framework_1.Property.LongText({
|
|
60
|
+
displayName: 'Project Description',
|
|
61
|
+
description: 'Provide details about your project\'s goals and specifications for documentation purposes.',
|
|
62
|
+
required: false,
|
|
63
|
+
}),
|
|
64
|
+
folder_id: common_2.listFoldersDropdown,
|
|
65
|
+
},
|
|
66
|
+
run(context) {
|
|
67
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
var _a;
|
|
69
|
+
const { auth } = context;
|
|
70
|
+
const { language, source_type, media, project_name, project_description, folder_id } = context.propsValue;
|
|
71
|
+
const formData = new form_data_1.default();
|
|
72
|
+
formData.append('language', Number(language).toString());
|
|
73
|
+
if (project_name)
|
|
74
|
+
formData.append('project_name', project_name);
|
|
75
|
+
if (project_description)
|
|
76
|
+
formData.append('project_description', project_description);
|
|
77
|
+
if (folder_id)
|
|
78
|
+
formData.append('folder_id', folder_id.toString());
|
|
79
|
+
if (source_type === 'url') {
|
|
80
|
+
if (!media['media_url'])
|
|
81
|
+
throw new Error("Media URL is required when source is 'File URL'.");
|
|
82
|
+
formData.append('media_url', media['media_url']);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
if (!media['media_file'])
|
|
86
|
+
throw new Error("Media File is required when source is 'Upload File'.");
|
|
87
|
+
const fileData = media['media_file'];
|
|
88
|
+
formData.append('media_file', fileData.data, fileData.filename);
|
|
89
|
+
}
|
|
90
|
+
const requestBody = yield formData.getBuffer();
|
|
91
|
+
const headers = Object.assign({ 'x-api-key': auth }, formData.getHeaders());
|
|
92
|
+
const initialResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
93
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
94
|
+
url: `${common_1.API_BASE_URL}/transcribe`,
|
|
95
|
+
headers: headers,
|
|
96
|
+
body: requestBody,
|
|
97
|
+
});
|
|
98
|
+
const taskId = initialResponse.body.task_id;
|
|
99
|
+
let run_id = null;
|
|
100
|
+
let attempts = 0;
|
|
101
|
+
while (attempts < common_1.LONG_MAX_POLLING_ATTEMPTS) {
|
|
102
|
+
const statusResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
103
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
104
|
+
url: `${common_1.API_BASE_URL}/transcribe/${taskId}`,
|
|
105
|
+
headers: { 'x-api-key': auth },
|
|
106
|
+
});
|
|
107
|
+
if (statusResponse.body.status === 'SUCCESS') {
|
|
108
|
+
run_id = (_a = statusResponse.body.run_id) !== null && _a !== void 0 ? _a : null;
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
if (statusResponse.body.status === 'FAILED') {
|
|
112
|
+
throw new Error(`Transcription task failed: ${JSON.stringify(statusResponse.body)}`);
|
|
113
|
+
}
|
|
114
|
+
yield new Promise(resolve => setTimeout(resolve, common_1.POLLING_INTERVAL_MS));
|
|
115
|
+
attempts++;
|
|
116
|
+
}
|
|
117
|
+
if (!run_id) {
|
|
118
|
+
throw new Error("Transcription task timed out or failed to return a task_id.");
|
|
119
|
+
}
|
|
120
|
+
const resultResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
121
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
122
|
+
url: `${common_1.API_BASE_URL}/transcription-result/${run_id}`,
|
|
123
|
+
headers: { 'x-api-key': auth },
|
|
124
|
+
});
|
|
125
|
+
return resultResponse.body;
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=create-transcription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-transcription.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/camb-ai/src/lib/actions/create-transcription.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const createTranslation: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
|
|
2
|
+
texts: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
source_language: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
4
|
+
target_language: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
5
|
+
formality: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
|
|
6
|
+
gender: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
|
|
7
|
+
age: import("@activepieces/pieces-framework").NumberProperty<false>;
|
|
8
|
+
project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTranslation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const index_1 = require("../../index");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
exports.createTranslation = (0, pieces_framework_1.createAction)({
|
|
10
|
+
auth: index_1.cambaiAuth,
|
|
11
|
+
name: 'create_translation',
|
|
12
|
+
displayName: 'Create Translation',
|
|
13
|
+
description: 'Translate text from a source language to a target language.',
|
|
14
|
+
props: {
|
|
15
|
+
texts: pieces_framework_1.Property.LongText({
|
|
16
|
+
displayName: 'Text to Translate',
|
|
17
|
+
description: 'The text to be translated. You can enter multiple lines; each line will be treated as a separate text segment.',
|
|
18
|
+
required: true,
|
|
19
|
+
}),
|
|
20
|
+
source_language: common_1.listSourceLanguagesDropdown,
|
|
21
|
+
target_language: common_1.listTargetLanguagesDropdown,
|
|
22
|
+
formality: pieces_framework_1.Property.StaticDropdown({
|
|
23
|
+
displayName: 'Formality',
|
|
24
|
+
description: 'Adjust the formality level to match your context.',
|
|
25
|
+
required: false,
|
|
26
|
+
options: {
|
|
27
|
+
options: [
|
|
28
|
+
{ label: 'Formal', value: 1 },
|
|
29
|
+
{ label: 'Informal', value: 2 },
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
33
|
+
gender: pieces_framework_1.Property.StaticDropdown({
|
|
34
|
+
displayName: 'Gender',
|
|
35
|
+
description: 'Specify grammatical gender preferences when relevant in the target language.',
|
|
36
|
+
required: false,
|
|
37
|
+
options: {
|
|
38
|
+
options: [
|
|
39
|
+
{ label: 'Male', value: 1 },
|
|
40
|
+
{ label: 'Female', value: 2 },
|
|
41
|
+
{ label: 'Neutral', value: 0 },
|
|
42
|
+
{ label: 'Unspecified', value: 9 },
|
|
43
|
+
],
|
|
44
|
+
}
|
|
45
|
+
}),
|
|
46
|
+
age: pieces_framework_1.Property.Number({
|
|
47
|
+
displayName: 'Audience Age',
|
|
48
|
+
description: 'Helps adjust vocabulary and expressions to be age-appropriate.',
|
|
49
|
+
required: false,
|
|
50
|
+
}),
|
|
51
|
+
project_name: pieces_framework_1.Property.ShortText({
|
|
52
|
+
displayName: 'Project Name',
|
|
53
|
+
description: 'A memorable name for your project to help organize tasks in your Camb.ai workspace.',
|
|
54
|
+
required: false,
|
|
55
|
+
}),
|
|
56
|
+
},
|
|
57
|
+
run(context) {
|
|
58
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
var _a;
|
|
60
|
+
const { auth } = context;
|
|
61
|
+
const { texts, source_language, target_language, formality, gender, age, project_name } = context.propsValue;
|
|
62
|
+
const payload = {
|
|
63
|
+
texts: texts.split('\n').filter(line => line.trim().length > 0),
|
|
64
|
+
source_language: Number(source_language),
|
|
65
|
+
target_language: Number(target_language),
|
|
66
|
+
};
|
|
67
|
+
if (formality !== undefined)
|
|
68
|
+
payload['formality'] = formality;
|
|
69
|
+
if (gender !== undefined)
|
|
70
|
+
payload['gender'] = gender;
|
|
71
|
+
if (age)
|
|
72
|
+
payload['age'] = age;
|
|
73
|
+
if (project_name)
|
|
74
|
+
payload['project_name'] = project_name;
|
|
75
|
+
const initialResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
76
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
77
|
+
url: `${common_1.API_BASE_URL}/translate`,
|
|
78
|
+
headers: { 'x-api-key': auth, 'Content-Type': 'application/json' },
|
|
79
|
+
body: payload,
|
|
80
|
+
});
|
|
81
|
+
const taskId = initialResponse.body.task_id;
|
|
82
|
+
let run_id = null;
|
|
83
|
+
let attempts = 0;
|
|
84
|
+
while (attempts < common_1.MAX_POLLING_ATTEMPTS) {
|
|
85
|
+
const statusResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
86
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
87
|
+
url: `${common_1.API_BASE_URL}/translate/${taskId}`,
|
|
88
|
+
headers: { 'x-api-key': auth },
|
|
89
|
+
});
|
|
90
|
+
if (statusResponse.body.status === 'SUCCESS') {
|
|
91
|
+
run_id = (_a = statusResponse.body.run_id) !== null && _a !== void 0 ? _a : null;
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
if (statusResponse.body.status === 'ERROR' || statusResponse.body.status === 'FAILED') {
|
|
95
|
+
throw new Error(`Translation task failed: ${JSON.stringify(statusResponse.body)}`);
|
|
96
|
+
}
|
|
97
|
+
yield new Promise(resolve => setTimeout(resolve, common_1.POLLING_INTERVAL_MS));
|
|
98
|
+
attempts++;
|
|
99
|
+
}
|
|
100
|
+
if (!run_id) {
|
|
101
|
+
throw new Error("Translation task timed out or failed to return a task_id.");
|
|
102
|
+
}
|
|
103
|
+
const resultResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
104
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
105
|
+
url: `${common_1.API_BASE_URL}/translation-result/${run_id}`,
|
|
106
|
+
headers: { 'x-api-key': auth },
|
|
107
|
+
});
|
|
108
|
+
return resultResponse.body;
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=create-translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-translation.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/camb-ai/src/lib/actions/create-translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const API_BASE_URL = "https://client.camb.ai/apis";
|
|
2
|
+
export declare const POLLING_INTERVAL_MS = 5000;
|
|
3
|
+
export declare const LONG_POLLING_INTERVAL_MS = 10000;
|
|
4
|
+
export declare const MAX_POLLING_ATTEMPTS = 10;
|
|
5
|
+
export declare const LONG_MAX_POLLING_ATTEMPTS = 120;
|
|
6
|
+
export declare const listVoicesDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
7
|
+
export declare const listSourceLanguagesDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
8
|
+
export declare const listTargetLanguagesDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, true>;
|
|
9
|
+
export declare const listFoldersDropdown: import("@activepieces/pieces-framework").DropdownProperty<number, false>;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listFoldersDropdown = exports.listTargetLanguagesDropdown = exports.listSourceLanguagesDropdown = exports.listVoicesDropdown = exports.LONG_MAX_POLLING_ATTEMPTS = exports.MAX_POLLING_ATTEMPTS = exports.LONG_POLLING_INTERVAL_MS = exports.POLLING_INTERVAL_MS = exports.API_BASE_URL = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
exports.API_BASE_URL = "https://client.camb.ai/apis";
|
|
8
|
+
exports.POLLING_INTERVAL_MS = 5000;
|
|
9
|
+
exports.LONG_POLLING_INTERVAL_MS = 10000;
|
|
10
|
+
exports.MAX_POLLING_ATTEMPTS = 10;
|
|
11
|
+
exports.LONG_MAX_POLLING_ATTEMPTS = 120;
|
|
12
|
+
exports.listVoicesDropdown = pieces_framework_1.Property.Dropdown({
|
|
13
|
+
displayName: 'Voice',
|
|
14
|
+
description: 'Select the voice to generate the speech.',
|
|
15
|
+
required: true,
|
|
16
|
+
refreshers: [],
|
|
17
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
18
|
+
var _b;
|
|
19
|
+
if (!auth) {
|
|
20
|
+
return {
|
|
21
|
+
disabled: true,
|
|
22
|
+
options: [],
|
|
23
|
+
placeholder: 'Please authenticate first',
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
27
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
28
|
+
url: `${exports.API_BASE_URL}/list-voices`,
|
|
29
|
+
headers: {
|
|
30
|
+
'x-api-key': auth,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
const voices = (_b = response.body) !== null && _b !== void 0 ? _b : [];
|
|
34
|
+
return {
|
|
35
|
+
disabled: false,
|
|
36
|
+
options: voices.map((voice) => ({
|
|
37
|
+
label: voice.voice_name,
|
|
38
|
+
value: voice.id,
|
|
39
|
+
})),
|
|
40
|
+
};
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
exports.listSourceLanguagesDropdown = pieces_framework_1.Property.Dropdown({
|
|
44
|
+
displayName: 'Source Language',
|
|
45
|
+
description: 'Select the original language of the input text.',
|
|
46
|
+
required: true,
|
|
47
|
+
refreshers: [],
|
|
48
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
49
|
+
var _b;
|
|
50
|
+
if (!auth) {
|
|
51
|
+
return {
|
|
52
|
+
disabled: true,
|
|
53
|
+
options: [],
|
|
54
|
+
placeholder: 'Please authenticate first',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
58
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
59
|
+
url: `${exports.API_BASE_URL}/source-languages`,
|
|
60
|
+
headers: {
|
|
61
|
+
'x-api-key': auth,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const languages = (_b = response.body) !== null && _b !== void 0 ? _b : [];
|
|
65
|
+
return {
|
|
66
|
+
disabled: false,
|
|
67
|
+
options: languages.map((lang) => ({
|
|
68
|
+
label: `${lang.language} (${lang.short_name})`,
|
|
69
|
+
value: lang.id,
|
|
70
|
+
})),
|
|
71
|
+
};
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
74
|
+
exports.listTargetLanguagesDropdown = pieces_framework_1.Property.Dropdown({
|
|
75
|
+
displayName: 'Target Language',
|
|
76
|
+
description: 'Select the language to translate the text into.',
|
|
77
|
+
required: true,
|
|
78
|
+
refreshers: [],
|
|
79
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
80
|
+
var _b;
|
|
81
|
+
if (!auth) {
|
|
82
|
+
return {
|
|
83
|
+
disabled: true,
|
|
84
|
+
options: [],
|
|
85
|
+
placeholder: 'Please authenticate first',
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
89
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
90
|
+
url: `${exports.API_BASE_URL}/target-languages`,
|
|
91
|
+
headers: {
|
|
92
|
+
'x-api-key': auth,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
const languages = (_b = response.body) !== null && _b !== void 0 ? _b : [];
|
|
96
|
+
return {
|
|
97
|
+
disabled: false,
|
|
98
|
+
options: languages.map((lang) => ({
|
|
99
|
+
label: `${lang.language} (${lang.short_name})`,
|
|
100
|
+
value: lang.id,
|
|
101
|
+
})),
|
|
102
|
+
};
|
|
103
|
+
}),
|
|
104
|
+
});
|
|
105
|
+
exports.listFoldersDropdown = pieces_framework_1.Property.Dropdown({
|
|
106
|
+
displayName: 'Folder',
|
|
107
|
+
description: 'Select the folder to save the task in.',
|
|
108
|
+
required: false,
|
|
109
|
+
refreshers: [],
|
|
110
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
111
|
+
var _b;
|
|
112
|
+
if (!auth) {
|
|
113
|
+
return {
|
|
114
|
+
disabled: true,
|
|
115
|
+
options: [],
|
|
116
|
+
placeholder: 'Please authenticate first',
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const response = yield pieces_common_1.httpClient.sendRequest({
|
|
121
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
122
|
+
url: `${exports.API_BASE_URL}/folders`,
|
|
123
|
+
headers: {
|
|
124
|
+
'x-api-key': auth,
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
const folders = (_b = response.body) !== null && _b !== void 0 ? _b : [];
|
|
128
|
+
return {
|
|
129
|
+
disabled: false,
|
|
130
|
+
options: folders.map((folder) => ({
|
|
131
|
+
label: folder.folder_name,
|
|
132
|
+
value: folder.folder_id,
|
|
133
|
+
})),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
return {
|
|
138
|
+
disabled: true,
|
|
139
|
+
options: [],
|
|
140
|
+
placeholder: "Could not load folders."
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}),
|
|
144
|
+
});
|
|
145
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/camb-ai/src/lib/common/index.ts"],"names":[],"mappings":"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"}
|