@activepieces/piece-descript 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.
Files changed (41) hide show
  1. package/package.json +16 -0
  2. package/src/index.d.ts +4 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +44 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/agent-edit.d.ts +11 -0
  7. package/src/lib/actions/agent-edit.d.ts.map +1 -0
  8. package/src/lib/actions/agent-edit.js +130 -0
  9. package/src/lib/actions/agent-edit.js.map +1 -0
  10. package/src/lib/actions/get-job-status.d.ts +4 -0
  11. package/src/lib/actions/get-job-status.d.ts.map +1 -0
  12. package/src/lib/actions/get-job-status.js +32 -0
  13. package/src/lib/actions/get-job-status.js.map +1 -0
  14. package/src/lib/actions/get-project.d.ts +4 -0
  15. package/src/lib/actions/get-project.d.ts.map +1 -0
  16. package/src/lib/actions/get-project.js +28 -0
  17. package/src/lib/actions/get-project.js.map +1 -0
  18. package/src/lib/actions/import-media.d.ts +15 -0
  19. package/src/lib/actions/import-media.d.ts.map +1 -0
  20. package/src/lib/actions/import-media.js +157 -0
  21. package/src/lib/actions/import-media.js.map +1 -0
  22. package/src/lib/actions/list-projects.d.ts +11 -0
  23. package/src/lib/actions/list-projects.d.ts.map +1 -0
  24. package/src/lib/actions/list-projects.js +121 -0
  25. package/src/lib/actions/list-projects.js.map +1 -0
  26. package/src/lib/actions/publish-project.d.ts +9 -0
  27. package/src/lib/actions/publish-project.d.ts.map +1 -0
  28. package/src/lib/actions/publish-project.js +87 -0
  29. package/src/lib/actions/publish-project.js.map +1 -0
  30. package/src/lib/auth.d.ts +4 -0
  31. package/src/lib/auth.d.ts.map +1 -0
  32. package/src/lib/auth.js +41 -0
  33. package/src/lib/auth.js.map +1 -0
  34. package/src/lib/common/index.d.ts +26 -0
  35. package/src/lib/common/index.d.ts.map +1 -0
  36. package/src/lib/common/index.js +121 -0
  37. package/src/lib/common/index.js.map +1 -0
  38. package/src/lib/triggers/job-completed.d.ts +11 -0
  39. package/src/lib/triggers/job-completed.d.ts.map +1 -0
  40. package/src/lib/triggers/job-completed.js +109 -0
  41. package/src/lib/triggers/job-completed.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@activepieces/piece-descript",
3
+ "version": "0.0.1",
4
+ "main": "./src/index.js",
5
+ "types": "./src/index.d.ts",
6
+ "scripts": {
7
+ "build": "tsc -p tsconfig.lib.json && cp package.json dist/",
8
+ "lint": "eslint 'src/**/*.ts'"
9
+ },
10
+ "dependencies": {
11
+ "@activepieces/pieces-common": "0.12.3",
12
+ "@activepieces/pieces-framework": "0.28.1",
13
+ "@activepieces/shared": "0.71.2",
14
+ "tslib": "2.6.2"
15
+ }
16
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { descriptAuth } from './lib/auth';
2
+ export { descriptAuth };
3
+ export declare const descript: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,eAAO,MAAM,QAAQ,mHAyBnB,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descript = exports.descriptAuth = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const shared_1 = require("@activepieces/shared");
8
+ const agent_edit_1 = require("./lib/actions/agent-edit");
9
+ const get_job_status_1 = require("./lib/actions/get-job-status");
10
+ const get_project_1 = require("./lib/actions/get-project");
11
+ const import_media_1 = require("./lib/actions/import-media");
12
+ const list_projects_1 = require("./lib/actions/list-projects");
13
+ const publish_project_1 = require("./lib/actions/publish-project");
14
+ const auth_1 = require("./lib/auth");
15
+ Object.defineProperty(exports, "descriptAuth", { enumerable: true, get: function () { return auth_1.descriptAuth; } });
16
+ const job_completed_1 = require("./lib/triggers/job-completed");
17
+ exports.descript = (0, pieces_framework_1.createPiece)({
18
+ displayName: 'Descript',
19
+ description: 'AI-powered video and podcast editor. Import media, run AI edits with Underlord, and publish.',
20
+ minimumSupportedRelease: '0.82.1',
21
+ logoUrl: 'https://cdn.activepieces.com/pieces/descript.png',
22
+ categories: [shared_1.PieceCategory.CONTENT_AND_FILES],
23
+ auth: auth_1.descriptAuth,
24
+ authors: ['hugh-codes', 'onyedikachi-david'],
25
+ actions: [
26
+ import_media_1.descriptImportMediaAction,
27
+ agent_edit_1.descriptAgentEditAction,
28
+ publish_project_1.descriptPublishProjectAction,
29
+ get_job_status_1.descriptGetJobStatusAction,
30
+ list_projects_1.descriptListProjectsAction,
31
+ get_project_1.descriptGetProjectAction,
32
+ (0, pieces_common_1.createCustomApiCallAction)({
33
+ baseUrl: () => 'https://descriptapi.com/v1',
34
+ auth: auth_1.descriptAuth,
35
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
36
+ return ({
37
+ Authorization: `Bearer ${(0, auth_1.getAuthToken)(auth)}`,
38
+ });
39
+ }),
40
+ }),
41
+ ],
42
+ triggers: [job_completed_1.descriptJobCompletedTrigger],
43
+ });
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAA6D;AAC7D,iDAAqD;AACrD,yDAAmE;AACnE,iEAA0E;AAC1E,2DAAqE;AACrE,6DAAuE;AACvE,+DAAyE;AACzE,mEAA6E;AAC7E,qCAAwD;AAG/C,6FAHA,mBAAY,OAGA;AAFrB,gEAA2E;AAI9D,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAClC,WAAW,EAAE,UAAU;IACvB,WAAW,EACT,8FAA8F;IAChG,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,CAAC,sBAAa,CAAC,iBAAiB,CAAC;IAC7C,IAAI,EAAE,mBAAY;IAClB,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;IAC5C,OAAO,EAAE;QACP,wCAAyB;QACzB,oCAAuB;QACvB,8CAA4B;QAC5B,2CAA0B;QAC1B,0CAA0B;QAC1B,sCAAwB;QACxB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,4BAA4B;YAC3C,IAAI,EAAE,mBAAY;YAClB,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,aAAa,EAAE,UAAU,IAAA,mBAAY,EAAC,IAAI,CAAC,EAAE;iBAC9C,CAAC,CAAA;cAAA;SACH,CAAC;KACH;IACD,QAAQ,EAAE,CAAC,2CAA2B,CAAC;CACxC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const descriptAgentEditAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ mode: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
3
+ project_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
+ team_access: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
6
+ composition_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
7
+ prompt: import("@activepieces/pieces-framework").LongTextProperty<true>;
8
+ model: import("@activepieces/pieces-framework").ShortTextProperty<false>;
9
+ callback_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
10
+ }>;
11
+ //# sourceMappingURL=agent-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-edit.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/agent-edit.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB;;;;;;;;;EA2IlC,CAAC"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptAgentEditAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptAgentEditAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'agent_edit',
12
+ displayName: 'Agent Edit (Underlord)',
13
+ description: 'Use Descript\'s AI agent "Underlord" to edit an existing project or create a new one with a natural language prompt.',
14
+ props: {
15
+ mode: pieces_framework_1.Property.StaticDropdown({
16
+ displayName: 'Mode',
17
+ description: 'Choose whether to edit an existing project or create a brand new one.',
18
+ required: true,
19
+ defaultValue: 'existing',
20
+ options: {
21
+ options: [
22
+ { label: 'Edit existing project', value: 'existing' },
23
+ { label: 'Create new project from prompt', value: 'new' },
24
+ ],
25
+ },
26
+ }),
27
+ project_id: pieces_framework_1.Property.Dropdown({
28
+ auth: auth_1.descriptAuth,
29
+ displayName: 'Project',
30
+ description: 'Select the project for the agent to edit.',
31
+ refreshers: ['mode'],
32
+ required: false,
33
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, mode }) {
34
+ if (mode !== 'existing')
35
+ return {
36
+ disabled: true,
37
+ options: [],
38
+ placeholder: 'Not needed for new projects',
39
+ };
40
+ if (!auth)
41
+ return {
42
+ disabled: true,
43
+ options: [],
44
+ placeholder: 'Please connect your account first',
45
+ };
46
+ try {
47
+ const projects = yield common_1.descriptCommon.fetchAllProjects(common_1.descriptCommon.getAuthToken(auth));
48
+ return {
49
+ disabled: false,
50
+ options: projects.map((p) => ({ label: p.name, value: p.id })),
51
+ };
52
+ }
53
+ catch (_b) {
54
+ return {
55
+ disabled: true,
56
+ options: [],
57
+ placeholder: 'Failed to load projects. Check your connection.',
58
+ };
59
+ }
60
+ }),
61
+ }),
62
+ project_name: pieces_framework_1.Property.ShortText({
63
+ displayName: 'New Project Name',
64
+ description: 'Name for the new project (only used when creating a new project).',
65
+ required: false,
66
+ }),
67
+ team_access: pieces_framework_1.Property.StaticDropdown({
68
+ displayName: 'Team Access',
69
+ description: 'Access level for team members on the new project. Only applies when creating a new project.',
70
+ required: false,
71
+ defaultValue: 'none',
72
+ options: {
73
+ options: [
74
+ { label: 'None (private to owner)', value: 'none' },
75
+ { label: 'View', value: 'view' },
76
+ { label: 'Comment', value: 'comment' },
77
+ { label: 'Edit', value: 'edit' },
78
+ ],
79
+ },
80
+ }),
81
+ composition_id: common_1.descriptCommon.compositionIdProp(false),
82
+ prompt: pieces_framework_1.Property.LongText({
83
+ displayName: 'Prompt',
84
+ description: 'Natural language instruction for Underlord. Examples: "Add studio sound to every clip", "Remove all filler words", "Create a 30-second highlight reel with the best moments". Be specific — frame edits as a single one-shot instruction.',
85
+ required: true,
86
+ }),
87
+ model: pieces_framework_1.Property.ShortText({
88
+ displayName: 'AI Model',
89
+ description: 'AI model to use for editing. Leave blank to use the Descript default.',
90
+ required: false,
91
+ }),
92
+ callback_url: pieces_framework_1.Property.ShortText({
93
+ displayName: 'Callback URL',
94
+ description: 'Optional webhook URL. When the job finishes or fails, Descript will POST the job status to this URL (same payload as Get Job Status).',
95
+ required: false,
96
+ }),
97
+ },
98
+ run(context) {
99
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ const { mode, project_id, project_name, team_access, composition_id, prompt, model, callback_url, } = context.propsValue;
101
+ const body = { prompt };
102
+ if (mode === 'existing') {
103
+ if (!project_id)
104
+ throw new Error('Please select a project to edit.');
105
+ body['project_id'] = project_id;
106
+ if (composition_id)
107
+ body['composition_id'] = composition_id;
108
+ }
109
+ else {
110
+ if (!project_name)
111
+ throw new Error('Please enter a project name for the new project.');
112
+ body['project_name'] = project_name;
113
+ if (team_access)
114
+ body['team_access'] = team_access;
115
+ }
116
+ if (model)
117
+ body['model'] = model;
118
+ if (callback_url)
119
+ body['callback_url'] = callback_url;
120
+ const response = yield common_1.descriptCommon.descriptApiCall({
121
+ apiKey: common_1.descriptCommon.getAuthToken(context.auth),
122
+ method: pieces_common_1.HttpMethod.POST,
123
+ path: '/jobs/agent',
124
+ body,
125
+ });
126
+ return response.body;
127
+ });
128
+ },
129
+ });
130
+ //# sourceMappingURL=agent-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-edit.js","sourceRoot":"","sources":["../../../../src/lib/actions/agent-edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const descriptGetJobStatusAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ job_id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ }>;
4
+ //# sourceMappingURL=get-job-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-job-status.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-job-status.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,0BAA0B;;EAuBrC,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptGetJobStatusAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptGetJobStatusAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'get_job_status',
12
+ displayName: 'Get Job Status',
13
+ description: 'Retrieves the current status of a Descript background job (import, agent edit, or publish). Use the job_id returned by any job-creation action.',
14
+ props: {
15
+ job_id: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Job ID',
17
+ description: 'The job ID returned when you created the job (e.g. from "Import Media", "Agent Edit", or "Publish Project" actions).',
18
+ required: true,
19
+ }),
20
+ },
21
+ run(context) {
22
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ const response = yield common_1.descriptCommon.descriptApiCall({
24
+ apiKey: common_1.descriptCommon.getAuthToken(context.auth),
25
+ method: pieces_common_1.HttpMethod.GET,
26
+ path: `/jobs/${context.propsValue.job_id}`,
27
+ });
28
+ return response.body;
29
+ });
30
+ },
31
+ });
32
+ //# sourceMappingURL=get-job-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-job-status.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-job-status.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,kCAAuC;AACvC,sCAA2C;AA2B9B,QAAA,0BAA0B,GAAG,IAAA,+BAAY,EAAC;IACrD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EACT,iJAAiJ;IACnJ,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,QAAQ;YACrB,WAAW,EACT,sHAAsH;YACxH,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,QAAQ,GAAG,MAAM,uBAAc,CAAC,eAAe,CAAoB;gBACvE,MAAM,EAAE,uBAAc,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjD,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,SAAS,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;aAC3C,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const descriptGetProjectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ project_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ }>;
4
+ //# sourceMappingURL=get-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-project.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,wBAAwB;;EAmBnC,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptGetProjectAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptGetProjectAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'get_project',
12
+ displayName: 'Get Project',
13
+ description: 'Retrieves details for a Descript project including its compositions and media files.',
14
+ props: {
15
+ project_id: common_1.descriptCommon.projectIdProp,
16
+ },
17
+ run(context) {
18
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
+ const response = yield common_1.descriptCommon.descriptApiCall({
20
+ apiKey: common_1.descriptCommon.getAuthToken(context.auth),
21
+ method: pieces_common_1.HttpMethod.GET,
22
+ path: `/projects/${context.propsValue.project_id}`,
23
+ });
24
+ return response.body;
25
+ });
26
+ },
27
+ });
28
+ //# sourceMappingURL=get-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-project.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-project.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,+DAAyD;AACzD,kCAAuC;AACvC,sCAA2C;AAwB9B,QAAA,wBAAwB,GAAG,IAAA,+BAAY,EAAC;IACnD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,WAAW,EACT,sFAAsF;IACxF,KAAK,EAAE;QACL,UAAU,EAAE,uBAAc,CAAC,aAAa;KACzC;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,QAAQ,GACZ,MAAM,uBAAc,CAAC,eAAe,CAAwB;gBAC1D,MAAM,EAAE,uBAAc,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjD,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,IAAI,EAAE,aAAa,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE;aACnD,CAAC,CAAC;YAEL,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ export declare const descriptImportMediaAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ mode: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
3
+ project_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ project_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
+ folder_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
6
+ team_access: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
7
+ media_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
8
+ media_url: import("@activepieces/pieces-framework").ShortTextProperty<true>;
9
+ language: import("@activepieces/pieces-framework").ShortTextProperty<false>;
10
+ composition_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
11
+ composition_width: import("@activepieces/pieces-framework").NumberProperty<false>;
12
+ composition_height: import("@activepieces/pieces-framework").NumberProperty<false>;
13
+ callback_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
14
+ }>;
15
+ //# sourceMappingURL=import-media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-media.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/import-media.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;EAyKpC,CAAC"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptImportMediaAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptImportMediaAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'import_media',
12
+ displayName: 'Import Media',
13
+ description: 'Imports a media file from a URL into a new or existing Descript project and optionally creates a composition.',
14
+ props: {
15
+ mode: pieces_framework_1.Property.StaticDropdown({
16
+ displayName: 'Project',
17
+ description: 'Create a new project or import into an existing one.',
18
+ required: true,
19
+ defaultValue: 'new',
20
+ options: {
21
+ options: [
22
+ { label: 'Create new project', value: 'new' },
23
+ { label: 'Import into existing project', value: 'existing' },
24
+ ],
25
+ },
26
+ }),
27
+ project_id: pieces_framework_1.Property.Dropdown({
28
+ auth: auth_1.descriptAuth,
29
+ displayName: 'Existing Project',
30
+ description: 'Select the project to import media into.',
31
+ refreshers: ['mode'],
32
+ required: false,
33
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, mode }) {
34
+ if (mode !== 'existing')
35
+ return { disabled: true, options: [], placeholder: 'Not needed for new projects' };
36
+ if (!auth)
37
+ return { disabled: true, options: [], placeholder: 'Please connect your account first' };
38
+ try {
39
+ const projects = yield common_1.descriptCommon.fetchAllProjects(common_1.descriptCommon.getAuthToken(auth));
40
+ return {
41
+ disabled: false,
42
+ options: projects.map((p) => ({ label: p.name, value: p.id })),
43
+ };
44
+ }
45
+ catch (_b) {
46
+ return { disabled: true, options: [], placeholder: 'Failed to load projects. Check your connection.' };
47
+ }
48
+ }),
49
+ }),
50
+ project_name: pieces_framework_1.Property.ShortText({
51
+ displayName: 'New Project Name',
52
+ description: 'Name for the new project. Only used when creating a new project.',
53
+ required: false,
54
+ }),
55
+ folder_name: pieces_framework_1.Property.ShortText({
56
+ displayName: 'Project Folder',
57
+ description: 'Folder path for the new project (e.g. "Clients/Acme"). Supports nested paths using "/". Missing folders are created automatically. Only applies when creating a new project.',
58
+ required: false,
59
+ }),
60
+ team_access: pieces_framework_1.Property.StaticDropdown({
61
+ displayName: 'Team Access',
62
+ description: 'Access level for Drive members on the new project. Only applies when creating a new project.',
63
+ required: false,
64
+ defaultValue: 'none',
65
+ options: {
66
+ options: [
67
+ { label: 'None (private to owner)', value: 'none' },
68
+ { label: 'View', value: 'view' },
69
+ { label: 'Comment', value: 'comment' },
70
+ { label: 'Edit', value: 'edit' },
71
+ ],
72
+ },
73
+ }),
74
+ media_name: pieces_framework_1.Property.ShortText({
75
+ displayName: 'Media File Name',
76
+ description: 'Display name for the media file (e.g. "intro.mp4" or "Recordings/interview.mp4"). Use "/" to organize into sub-folders. Must not conflict with existing file names when importing into an existing project.',
77
+ required: true,
78
+ }),
79
+ media_url: pieces_framework_1.Property.ShortText({
80
+ displayName: 'Media URL',
81
+ description: 'Public URL of the media file. Must be accessible by Descript servers and support HTTP Range requests. Sign URLs for 12–48 hours if they expire.',
82
+ required: true,
83
+ }),
84
+ language: pieces_framework_1.Property.ShortText({
85
+ displayName: 'Transcription Language',
86
+ description: 'ISO 639-1 language code for transcription (e.g. "en", "es", "fr"). Leave blank to auto-detect from the audio.',
87
+ required: false,
88
+ }),
89
+ composition_name: pieces_framework_1.Property.ShortText({
90
+ displayName: 'Composition Name',
91
+ description: 'Name for the composition (timeline) to create from the imported media. Leave blank to skip composition creation.',
92
+ required: false,
93
+ }),
94
+ composition_width: pieces_framework_1.Property.Number({
95
+ displayName: 'Composition Width (px)',
96
+ description: 'Width of the composition in pixels. Defaults to 1920. Only used when a Composition Name is provided.',
97
+ required: false,
98
+ defaultValue: 1920,
99
+ }),
100
+ composition_height: pieces_framework_1.Property.Number({
101
+ displayName: 'Composition Height (px)',
102
+ description: 'Height of the composition in pixels. Defaults to 1080. Only used when a Composition Name is provided.',
103
+ required: false,
104
+ defaultValue: 1080,
105
+ }),
106
+ callback_url: pieces_framework_1.Property.ShortText({
107
+ displayName: 'Callback URL',
108
+ description: 'Optional webhook URL. When the import finishes or fails, Descript will POST the job status to this URL (same payload as Get Job Status).',
109
+ required: false,
110
+ }),
111
+ },
112
+ run(context) {
113
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
114
+ const { mode, project_id, project_name, folder_name, team_access, media_name, media_url, language, composition_name, composition_width, composition_height, callback_url, } = context.propsValue;
115
+ const mediaItem = { url: media_url };
116
+ if (language)
117
+ mediaItem['language'] = language;
118
+ const body = {
119
+ add_media: { [media_name]: mediaItem },
120
+ };
121
+ if (mode === 'existing') {
122
+ if (!project_id)
123
+ throw new Error('Please select a project to import into.');
124
+ body['project_id'] = project_id;
125
+ }
126
+ else {
127
+ if (!project_name)
128
+ throw new Error('Please enter a name for the new project.');
129
+ body['project_name'] = project_name;
130
+ if (folder_name)
131
+ body['folder_name'] = folder_name;
132
+ if (team_access)
133
+ body['team_access'] = team_access;
134
+ }
135
+ if (composition_name) {
136
+ body['add_compositions'] = [
137
+ {
138
+ name: composition_name,
139
+ width: composition_width !== null && composition_width !== void 0 ? composition_width : 1920,
140
+ height: composition_height !== null && composition_height !== void 0 ? composition_height : 1080,
141
+ clips: [{ media: media_name }],
142
+ },
143
+ ];
144
+ }
145
+ if (callback_url)
146
+ body['callback_url'] = callback_url;
147
+ const response = yield common_1.descriptCommon.descriptApiCall({
148
+ apiKey: common_1.descriptCommon.getAuthToken(context.auth),
149
+ method: pieces_common_1.HttpMethod.POST,
150
+ path: '/jobs/import/project_media',
151
+ body,
152
+ });
153
+ return response.body;
154
+ });
155
+ },
156
+ });
157
+ //# sourceMappingURL=import-media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-media.js","sourceRoot":"","sources":["../../../../src/lib/actions/import-media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare const descriptListProjectsAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
3
+ created_by: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
4
+ sort: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
5
+ direction: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
6
+ created_after: import("@activepieces/pieces-framework").ShortTextProperty<false>;
7
+ created_before: import("@activepieces/pieces-framework").ShortTextProperty<false>;
8
+ updated_after: import("@activepieces/pieces-framework").ShortTextProperty<false>;
9
+ updated_before: import("@activepieces/pieces-framework").ShortTextProperty<false>;
10
+ }>;
11
+ //# sourceMappingURL=list-projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/list-projects.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B;;;;;;;;;EAiIrC,CAAC"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptListProjectsAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptListProjectsAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'list_projects',
12
+ displayName: 'List Projects',
13
+ description: 'Returns projects in your Descript Drive. Supports filtering by name, date, and creator.',
14
+ props: {
15
+ name: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Name Filter',
17
+ description: 'Return only projects whose name contains this string (case-insensitive).',
18
+ required: false,
19
+ }),
20
+ created_by: pieces_framework_1.Property.StaticDropdown({
21
+ displayName: 'Created By',
22
+ description: 'Filter projects by creator.',
23
+ required: false,
24
+ options: {
25
+ options: [
26
+ { label: 'Anyone', value: '' },
27
+ { label: 'Me', value: 'me' },
28
+ ],
29
+ },
30
+ }),
31
+ sort: pieces_framework_1.Property.StaticDropdown({
32
+ displayName: 'Sort By',
33
+ description: 'Field to sort results by.',
34
+ required: false,
35
+ defaultValue: 'created_at',
36
+ options: {
37
+ options: [
38
+ { label: 'Date created', value: 'created_at' },
39
+ { label: 'Date updated', value: 'updated_at' },
40
+ { label: 'Name', value: 'name' },
41
+ { label: 'Last viewed', value: 'last_viewed_at' },
42
+ ],
43
+ },
44
+ }),
45
+ direction: pieces_framework_1.Property.StaticDropdown({
46
+ displayName: 'Sort Direction',
47
+ description: 'Sort order for results.',
48
+ required: false,
49
+ defaultValue: 'desc',
50
+ options: {
51
+ options: [
52
+ { label: 'Newest first (desc)', value: 'desc' },
53
+ { label: 'Oldest first (asc)', value: 'asc' },
54
+ ],
55
+ },
56
+ }),
57
+ created_after: pieces_framework_1.Property.ShortText({
58
+ displayName: 'Created After',
59
+ description: 'Return only projects created after this date (ISO 8601, e.g. 2025-01-01T00:00:00Z).',
60
+ required: false,
61
+ }),
62
+ created_before: pieces_framework_1.Property.ShortText({
63
+ displayName: 'Created Before',
64
+ description: 'Return only projects created before this date (ISO 8601, e.g. 2025-12-31T23:59:59Z).',
65
+ required: false,
66
+ }),
67
+ updated_after: pieces_framework_1.Property.ShortText({
68
+ displayName: 'Updated After',
69
+ description: 'Return only projects updated after this date (ISO 8601, e.g. 2025-01-01T00:00:00Z).',
70
+ required: false,
71
+ }),
72
+ updated_before: pieces_framework_1.Property.ShortText({
73
+ displayName: 'Updated Before',
74
+ description: 'Return only projects updated before this date (ISO 8601, e.g. 2025-12-31T23:59:59Z).',
75
+ required: false,
76
+ }),
77
+ },
78
+ run(context) {
79
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
80
+ const { name, created_by, sort, direction, created_after, created_before, updated_after, updated_before, } = context.propsValue;
81
+ const apiKey = common_1.descriptCommon.getAuthToken(context.auth);
82
+ const baseParams = { limit: '100' };
83
+ if (sort)
84
+ baseParams['sort'] = sort;
85
+ if (direction)
86
+ baseParams['direction'] = direction;
87
+ if (name)
88
+ baseParams['name'] = name;
89
+ if (created_by)
90
+ baseParams['created_by'] = created_by;
91
+ if (created_after)
92
+ baseParams['created_after'] = created_after;
93
+ if (created_before)
94
+ baseParams['created_before'] = created_before;
95
+ if (updated_after)
96
+ baseParams['updated_after'] = updated_after;
97
+ if (updated_before)
98
+ baseParams['updated_before'] = updated_before;
99
+ const projects = [];
100
+ let cursor = undefined;
101
+ do {
102
+ const queryParams = Object.assign(Object.assign({}, baseParams), (cursor ? { cursor } : {}));
103
+ const response = yield common_1.descriptCommon.descriptApiCall({
104
+ apiKey,
105
+ method: pieces_common_1.HttpMethod.GET,
106
+ path: '/projects',
107
+ queryParams,
108
+ });
109
+ projects.push(...response.body.data);
110
+ cursor = response.body.pagination.next_cursor;
111
+ } while (cursor);
112
+ return projects.map((p) => ({
113
+ project_id: p.id,
114
+ project_name: p.name,
115
+ created_at: p.created_at,
116
+ updated_at: p.updated_at,
117
+ }));
118
+ });
119
+ },
120
+ });
121
+ //# sourceMappingURL=list-projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../../../src/lib/actions/list-projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const descriptPublishProjectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").SecretTextProperty<true>, {
2
+ project_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
3
+ composition_id: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
4
+ media_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
5
+ resolution: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
6
+ access_level: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
7
+ callback_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
8
+ }>;
9
+ //# sourceMappingURL=publish-project.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-project.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/publish-project.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,4BAA4B;;;;;;;EA0FvC,CAAC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptPublishProjectAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.descriptPublishProjectAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.descriptAuth,
11
+ name: 'publish_project',
12
+ displayName: 'Publish Project',
13
+ description: 'Publishes a composition from a project to create a shareable link and a downloadable export file.',
14
+ props: {
15
+ project_id: common_1.descriptCommon.projectIdProp,
16
+ composition_id: common_1.descriptCommon.compositionIdProp(false),
17
+ media_type: pieces_framework_1.Property.StaticDropdown({
18
+ displayName: 'Output Type',
19
+ description: 'Choose whether to export the project as a video or audio file.',
20
+ required: false,
21
+ defaultValue: 'Video',
22
+ options: {
23
+ options: [
24
+ { label: 'Video', value: 'Video' },
25
+ { label: 'Audio only', value: 'Audio' },
26
+ ],
27
+ },
28
+ }),
29
+ resolution: pieces_framework_1.Property.StaticDropdown({
30
+ displayName: 'Video Resolution',
31
+ description: 'Resolution for the exported video. Only applies when Output Type is Video.',
32
+ required: false,
33
+ defaultValue: '1080p',
34
+ options: {
35
+ options: [
36
+ { label: '480p', value: '480p' },
37
+ { label: '720p', value: '720p' },
38
+ { label: '1080p (Full HD)', value: '1080p' },
39
+ { label: '1440p (2K)', value: '1440p' },
40
+ { label: '4K', value: '4K' },
41
+ ],
42
+ },
43
+ }),
44
+ access_level: pieces_framework_1.Property.StaticDropdown({
45
+ displayName: 'Share Access Level',
46
+ description: "Who can view the published share page. Leave blank to use your Drive's default. Note: requesting a level your Drive disallows (e.g. Public when search-engine indexing is off) will return an error.",
47
+ required: false,
48
+ options: {
49
+ options: [
50
+ { label: 'Public (anyone)', value: 'public' },
51
+ { label: 'Unlisted (link only)', value: 'unlisted' },
52
+ { label: 'Drive members only', value: 'drive' },
53
+ { label: 'Private (owner only)', value: 'private' },
54
+ ],
55
+ },
56
+ }),
57
+ callback_url: pieces_framework_1.Property.ShortText({
58
+ displayName: 'Callback URL',
59
+ description: 'Optional webhook URL. When the publish job finishes or fails, Descript will POST the job status to this URL (same payload as Get Job Status). The result includes share_url and download_url once complete.',
60
+ required: false,
61
+ }),
62
+ },
63
+ run(context) {
64
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
+ const { project_id, composition_id, media_type, resolution, access_level, callback_url, } = context.propsValue;
66
+ const body = { project_id };
67
+ if (composition_id)
68
+ body['composition_id'] = composition_id;
69
+ if (media_type)
70
+ body['media_type'] = media_type;
71
+ if (media_type === 'Video' && resolution)
72
+ body['resolution'] = resolution;
73
+ if (access_level)
74
+ body['access_level'] = access_level;
75
+ if (callback_url)
76
+ body['callback_url'] = callback_url;
77
+ const response = yield common_1.descriptCommon.descriptApiCall({
78
+ apiKey: common_1.descriptCommon.getAuthToken(context.auth),
79
+ method: pieces_common_1.HttpMethod.POST,
80
+ path: '/jobs/publish',
81
+ body,
82
+ });
83
+ return response.body;
84
+ });
85
+ },
86
+ });
87
+ //# sourceMappingURL=publish-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish-project.js","sourceRoot":"","sources":["../../../../src/lib/actions/publish-project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { AppConnectionValueForAuthProperty } from '@activepieces/pieces-framework';
2
+ export declare const descriptAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
3
+ export declare function getAuthToken(auth: string | AppConnectionValueForAuthProperty<typeof descriptAuth>): string;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EAElC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,YAAY,mEA2BvB,CAAC;AAEH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,GAAG,iCAAiC,CAAC,OAAO,YAAY,CAAC,GACpE,MAAM,CAGR"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptAuth = void 0;
4
+ exports.getAuthToken = getAuthToken;
5
+ const tslib_1 = require("tslib");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
8
+ exports.descriptAuth = pieces_framework_1.PieceAuth.SecretText({
9
+ displayName: 'API Token',
10
+ description: [
11
+ 'To create an API token:',
12
+ '1. Open **Settings** in Descript.',
13
+ '2. Select **API tokens** from the sidebar.',
14
+ '3. Click **Create token**, give it a name, select a Drive, and click **Create token**.',
15
+ '4. Copy the token and paste it here — you can only view it once.',
16
+ ].join('\n'),
17
+ required: true,
18
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
19
+ try {
20
+ yield pieces_common_1.httpClient.sendRequest({
21
+ method: pieces_common_1.HttpMethod.GET,
22
+ url: 'https://descriptapi.com/v1/status',
23
+ headers: {
24
+ Authorization: `Bearer ${getAuthToken(auth)}`,
25
+ },
26
+ });
27
+ return { valid: true };
28
+ }
29
+ catch (_b) {
30
+ return {
31
+ valid: false,
32
+ error: 'Invalid API token. Please check and try again.',
33
+ };
34
+ }
35
+ }),
36
+ });
37
+ function getAuthToken(auth) {
38
+ const raw = typeof auth === 'string' ? auth : auth.secret_text;
39
+ return raw.trim();
40
+ }
41
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;AAmCA,oCAKC;;AAxCD,+DAAqE;AACrE,qEAGwC;AAE3B,QAAA,YAAY,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC/C,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE;QACX,yBAAyB;QACzB,mCAAmC;QACnC,4CAA4C;QAC5C,wFAAwF;QACxF,kEAAkE;KACnE,CAAC,IAAI,CAAC,IAAI,CAAC;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC3B,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,mCAAmC;gBACxC,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,YAAY,CAAC,IAAI,CAAC,EAAE;iBAC9C;aACF,CAAC,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gDAAgD;aACxD,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAEH,SAAgB,YAAY,CAC1B,IAAqE;IAErE,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC/D,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { HttpMethod, HttpMessageBody, HttpResponse } from '@activepieces/pieces-common';
2
+ import { getAuthToken } from '../auth';
3
+ type ProjectSummary = {
4
+ id: string;
5
+ name: string;
6
+ created_at: string;
7
+ updated_at: string;
8
+ };
9
+ declare function descriptApiCall<T extends HttpMessageBody>({ apiKey, method, path, body, queryParams, }: {
10
+ apiKey: string;
11
+ method: HttpMethod;
12
+ path: string;
13
+ body?: unknown;
14
+ queryParams?: Record<string, string>;
15
+ }): Promise<HttpResponse<T>>;
16
+ declare function fetchAllProjects(apiKey: string): Promise<ProjectSummary[]>;
17
+ export declare const descriptCommon: {
18
+ BASE_URL: string;
19
+ descriptApiCall: typeof descriptApiCall;
20
+ fetchAllProjects: typeof fetchAllProjects;
21
+ getAuthToken: typeof getAuthToken;
22
+ projectIdProp: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
23
+ compositionIdProp: (required: boolean) => import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").SecretTextProperty<true>> | import("@activepieces/pieces-framework").DropdownProperty<string, false, import("@activepieces/pieces-framework").SecretTextProperty<true>>;
24
+ };
25
+ export {};
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,eAAe,EACf,YAAY,EACb,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAgB,YAAY,EAAE,MAAM,SAAS,CAAC;AAIrD,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAe,eAAe,CAAC,CAAC,SAAS,eAAe,EAAE,EACxD,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAU3B;AAED,iBAAe,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA2BzE;AA2ED,eAAO,MAAM,cAAc;;;;;;kCA3CU,OAAO;CAkD3C,CAAC"}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptCommon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const auth_1 = require("../auth");
8
+ const BASE_URL = 'https://descriptapi.com/v1';
9
+ function descriptApiCall(_a) {
10
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ apiKey, method, path, body, queryParams, }) {
11
+ return pieces_common_1.httpClient.sendRequest({
12
+ method,
13
+ url: `${BASE_URL}${path}`,
14
+ headers: {
15
+ Authorization: `Bearer ${apiKey}`,
16
+ },
17
+ body,
18
+ queryParams,
19
+ });
20
+ });
21
+ }
22
+ function fetchAllProjects(apiKey) {
23
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
24
+ const projects = [];
25
+ let cursor = undefined;
26
+ do {
27
+ const params = {
28
+ limit: '100',
29
+ sort: 'name',
30
+ direction: 'asc',
31
+ };
32
+ if (cursor)
33
+ params['cursor'] = cursor;
34
+ const response = yield descriptApiCall({
35
+ apiKey,
36
+ method: pieces_common_1.HttpMethod.GET,
37
+ path: '/projects',
38
+ queryParams: params,
39
+ });
40
+ projects.push(...response.body.data);
41
+ cursor = response.body.pagination.next_cursor;
42
+ } while (cursor);
43
+ return projects;
44
+ });
45
+ }
46
+ const projectIdProp = pieces_framework_1.Property.Dropdown({
47
+ auth: auth_1.descriptAuth,
48
+ displayName: 'Project',
49
+ description: 'Select the Descript project to use.',
50
+ refreshers: [],
51
+ required: true,
52
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
53
+ if (!auth) {
54
+ return {
55
+ disabled: true,
56
+ options: [],
57
+ placeholder: 'Please connect your account first',
58
+ };
59
+ }
60
+ try {
61
+ const projects = yield fetchAllProjects((0, auth_1.getAuthToken)(auth));
62
+ return {
63
+ disabled: false,
64
+ options: projects.map((p) => ({ label: p.name, value: p.id })),
65
+ };
66
+ }
67
+ catch (_b) {
68
+ return {
69
+ disabled: true,
70
+ options: [],
71
+ placeholder: 'Failed to load projects. Check your connection.',
72
+ };
73
+ }
74
+ }),
75
+ });
76
+ const compositionIdProp = (required) => pieces_framework_1.Property.Dropdown({
77
+ auth: auth_1.descriptAuth,
78
+ displayName: 'Composition',
79
+ description: 'Select the composition (timeline) within the project. If omitted, the agent chooses automatically.',
80
+ refreshers: ['project_id'],
81
+ required,
82
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, project_id }) {
83
+ if (!auth || !project_id || typeof project_id !== 'string') {
84
+ return {
85
+ disabled: true,
86
+ options: [],
87
+ placeholder: 'Please select a project first',
88
+ };
89
+ }
90
+ try {
91
+ const response = yield descriptApiCall({
92
+ apiKey: (0, auth_1.getAuthToken)(auth),
93
+ method: pieces_common_1.HttpMethod.GET,
94
+ path: `/projects/${project_id}`,
95
+ });
96
+ return {
97
+ disabled: false,
98
+ options: response.body.compositions.map((c) => ({
99
+ label: c.name,
100
+ value: c.id,
101
+ })),
102
+ };
103
+ }
104
+ catch (_b) {
105
+ return {
106
+ disabled: true,
107
+ options: [],
108
+ placeholder: 'Failed to load compositions. Check your connection.',
109
+ };
110
+ }
111
+ }),
112
+ });
113
+ exports.descriptCommon = {
114
+ BASE_URL,
115
+ descriptApiCall,
116
+ fetchAllProjects,
117
+ getAuthToken: auth_1.getAuthToken,
118
+ projectIdProp,
119
+ compositionIdProp,
120
+ };
121
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const descriptJobCompletedTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
3
+ job_type_filter: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
4
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
5
+ job_type_filter: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
6
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
7
+ job_type_filter: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
8
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").SecretTextProperty<true>, {
9
+ job_type_filter: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
10
+ }>;
11
+ //# sourceMappingURL=job-completed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-completed.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/job-completed.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAGhB,MAAM,gCAAgC,CAAC;AAgHxC,eAAO,MAAM,2BAA2B;;;;;;;;EAoCtC,CAAC"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.descriptJobCompletedTrigger = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ // "stopped" covers all terminal outcomes (success/partial/error); "cancelled" is user-initiated.
10
+ const TERMINAL_STATES = new Set(['stopped', 'cancelled']);
11
+ function isCompletedJob(job) {
12
+ return TERMINAL_STATES.has(job.job_state);
13
+ }
14
+ const SAMPLE_DATA = {
15
+ job_id: '6dc3f30a-58c2-4174-96a6-dc18cf3c7776',
16
+ job_type: 'import/project_media',
17
+ job_state: 'stopped',
18
+ created_at: '2025-11-18T10:30:00Z',
19
+ stopped_at: '2025-11-18T10:35:00Z',
20
+ drive_id: 'c9c5c47e-158a-49f7-846b-4f6ee2a229a2',
21
+ project_id: '9f36ee32-5a2c-47e7-b1a3-94991d3e3ddb',
22
+ project_url: 'https://web.descript.com/9f36ee32-5a2c-47e7-b1a3-94991d3e3ddb',
23
+ result: {
24
+ status: 'success',
25
+ media_seconds_used: 136,
26
+ },
27
+ };
28
+ const polling = {
29
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
30
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
31
+ const { job_type_filter } = propsValue;
32
+ const apiKey = common_1.descriptCommon.getAuthToken(auth);
33
+ const params = { limit: '100' };
34
+ if (job_type_filter && job_type_filter !== 'all') {
35
+ params['type'] = job_type_filter;
36
+ }
37
+ // Use created_after to avoid re-fetching full history on every poll.
38
+ if (lastFetchEpochMS > 0) {
39
+ params['created_after'] = new Date(lastFetchEpochMS).toISOString();
40
+ }
41
+ const allJobs = [];
42
+ let cursor = undefined;
43
+ let pageCount = 0;
44
+ const maxPages = 10;
45
+ do {
46
+ pageCount++;
47
+ const queryParams = Object.assign(Object.assign({}, params), (cursor ? { cursor } : {}));
48
+ const response = yield common_1.descriptCommon.descriptApiCall({
49
+ apiKey,
50
+ method: pieces_common_1.HttpMethod.GET,
51
+ path: '/jobs',
52
+ queryParams,
53
+ });
54
+ allJobs.push(...response.body.data);
55
+ cursor = response.body.pagination.next_cursor;
56
+ } while (cursor && pageCount < maxPages);
57
+ return allJobs.filter(isCompletedJob).map((job) => {
58
+ var _a;
59
+ return ({
60
+ epochMilliSeconds: new Date((_a = job.stopped_at) !== null && _a !== void 0 ? _a : job.created_at).getTime(),
61
+ data: Object.assign({}, job),
62
+ });
63
+ });
64
+ }),
65
+ };
66
+ exports.descriptJobCompletedTrigger = (0, pieces_framework_1.createTrigger)({
67
+ auth: auth_1.descriptAuth,
68
+ name: 'job_completed',
69
+ displayName: 'Job Completed',
70
+ description: 'Triggers when a Descript background job (import, agent edit, or publish) finishes.',
71
+ props: {
72
+ job_type_filter: pieces_framework_1.Property.StaticDropdown({
73
+ displayName: 'Job Type Filter',
74
+ description: 'Only trigger for jobs of this type. Select "All job types" to trigger for any completed job.',
75
+ required: false,
76
+ defaultValue: 'all',
77
+ options: {
78
+ options: [
79
+ { label: 'All job types', value: 'all' },
80
+ { label: 'Import media', value: 'import/project_media' },
81
+ { label: 'Agent edit (Underlord)', value: 'agent' },
82
+ ],
83
+ },
84
+ }),
85
+ },
86
+ sampleData: SAMPLE_DATA,
87
+ type: pieces_framework_1.TriggerStrategy.POLLING,
88
+ test() {
89
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
90
+ return [SAMPLE_DATA];
91
+ });
92
+ },
93
+ onEnable(context) {
94
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
95
+ yield pieces_common_1.pollingHelper.onEnable(polling, context);
96
+ });
97
+ },
98
+ onDisable(context) {
99
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ yield pieces_common_1.pollingHelper.onDisable(polling, context);
101
+ });
102
+ },
103
+ run(context) {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
105
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
106
+ });
107
+ },
108
+ });
109
+ //# sourceMappingURL=job-completed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-completed.js","sourceRoot":"","sources":["../../../../src/lib/triggers/job-completed.ts"],"names":[],"mappings":"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"}