@activepieces/piece-descript 0.0.2 → 0.0.4
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/package.json +7 -12
- package/src/index.js +14 -44
- package/src/index.d.ts +0 -4
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/actions/agent-edit.d.ts +0 -11
- package/src/lib/actions/agent-edit.d.ts.map +0 -1
- package/src/lib/actions/agent-edit.js +0 -130
- package/src/lib/actions/agent-edit.js.map +0 -1
- package/src/lib/actions/get-job-status.d.ts +0 -4
- package/src/lib/actions/get-job-status.d.ts.map +0 -1
- package/src/lib/actions/get-job-status.js +0 -32
- package/src/lib/actions/get-job-status.js.map +0 -1
- package/src/lib/actions/get-project.d.ts +0 -4
- package/src/lib/actions/get-project.d.ts.map +0 -1
- package/src/lib/actions/get-project.js +0 -28
- package/src/lib/actions/get-project.js.map +0 -1
- package/src/lib/actions/import-media.d.ts +0 -15
- package/src/lib/actions/import-media.d.ts.map +0 -1
- package/src/lib/actions/import-media.js +0 -157
- package/src/lib/actions/import-media.js.map +0 -1
- package/src/lib/actions/list-projects.d.ts +0 -11
- package/src/lib/actions/list-projects.d.ts.map +0 -1
- package/src/lib/actions/list-projects.js +0 -121
- package/src/lib/actions/list-projects.js.map +0 -1
- package/src/lib/actions/publish-project.d.ts +0 -9
- package/src/lib/actions/publish-project.d.ts.map +0 -1
- package/src/lib/actions/publish-project.js +0 -87
- package/src/lib/actions/publish-project.js.map +0 -1
- package/src/lib/auth.d.ts +0 -4
- package/src/lib/auth.d.ts.map +0 -1
- package/src/lib/auth.js +0 -41
- package/src/lib/auth.js.map +0 -1
- package/src/lib/common/index.d.ts +0 -26
- package/src/lib/common/index.d.ts.map +0 -1
- package/src/lib/common/index.js +0 -121
- package/src/lib/common/index.js.map +0 -1
- package/src/lib/triggers/job-completed.d.ts +0 -11
- package/src/lib/triggers/job-completed.d.ts.map +0 -1
- package/src/lib/triggers/job-completed.js +0 -109
- package/src/lib/triggers/job-completed.js.map +0 -1
package/src/lib/common/index.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,109 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"job-completed.js","sourceRoot":"","sources":["../../../../src/lib/triggers/job-completed.ts"],"names":[],"mappings":"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"}
|