@activepieces/piece-descript 0.0.3 → 0.0.5

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 +7 -12
  2. package/src/index.js +14 -44
  3. package/src/index.d.ts +0 -4
  4. package/src/index.d.ts.map +0 -1
  5. package/src/index.js.map +0 -1
  6. package/src/lib/actions/agent-edit.d.ts +0 -11
  7. package/src/lib/actions/agent-edit.d.ts.map +0 -1
  8. package/src/lib/actions/agent-edit.js +0 -132
  9. package/src/lib/actions/agent-edit.js.map +0 -1
  10. package/src/lib/actions/get-job-status.d.ts +0 -4
  11. package/src/lib/actions/get-job-status.d.ts.map +0 -1
  12. package/src/lib/actions/get-job-status.js +0 -34
  13. package/src/lib/actions/get-job-status.js.map +0 -1
  14. package/src/lib/actions/get-project.d.ts +0 -4
  15. package/src/lib/actions/get-project.d.ts.map +0 -1
  16. package/src/lib/actions/get-project.js +0 -30
  17. package/src/lib/actions/get-project.js.map +0 -1
  18. package/src/lib/actions/import-media.d.ts +0 -15
  19. package/src/lib/actions/import-media.d.ts.map +0 -1
  20. package/src/lib/actions/import-media.js +0 -159
  21. package/src/lib/actions/import-media.js.map +0 -1
  22. package/src/lib/actions/list-projects.d.ts +0 -11
  23. package/src/lib/actions/list-projects.d.ts.map +0 -1
  24. package/src/lib/actions/list-projects.js +0 -123
  25. package/src/lib/actions/list-projects.js.map +0 -1
  26. package/src/lib/actions/publish-project.d.ts +0 -9
  27. package/src/lib/actions/publish-project.d.ts.map +0 -1
  28. package/src/lib/actions/publish-project.js +0 -89
  29. package/src/lib/actions/publish-project.js.map +0 -1
  30. package/src/lib/auth.d.ts +0 -4
  31. package/src/lib/auth.d.ts.map +0 -1
  32. package/src/lib/auth.js +0 -41
  33. package/src/lib/auth.js.map +0 -1
  34. package/src/lib/common/index.d.ts +0 -26
  35. package/src/lib/common/index.d.ts.map +0 -1
  36. package/src/lib/common/index.js +0 -121
  37. package/src/lib/common/index.js.map +0 -1
  38. package/src/lib/triggers/job-completed.d.ts +0 -11
  39. package/src/lib/triggers/job-completed.d.ts.map +0 -1
  40. package/src/lib/triggers/job-completed.js +0 -112
  41. package/src/lib/triggers/job-completed.js.map +0 -1
@@ -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;;;;;;;;EAuCtC,CAAC"}
@@ -1,112 +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
- aiMetadata: {
72
- description: 'Fires when a Descript background job reaches a terminal state (completed, failed, or cancelled), representing a finished import, agent edit, or publish job. Can be scoped to a single job type or left open to fire for any completed job type.',
73
- },
74
- props: {
75
- job_type_filter: pieces_framework_1.Property.StaticDropdown({
76
- displayName: 'Job Type Filter',
77
- description: 'Only trigger for jobs of this type. Select "All job types" to trigger for any completed job.',
78
- required: false,
79
- defaultValue: 'all',
80
- options: {
81
- options: [
82
- { label: 'All job types', value: 'all' },
83
- { label: 'Import media', value: 'import/project_media' },
84
- { label: 'Agent edit (Underlord)', value: 'agent' },
85
- ],
86
- },
87
- }),
88
- },
89
- sampleData: SAMPLE_DATA,
90
- type: pieces_framework_1.TriggerStrategy.POLLING,
91
- test() {
92
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
93
- return [SAMPLE_DATA];
94
- });
95
- },
96
- onEnable(context) {
97
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
- yield pieces_common_1.pollingHelper.onEnable(polling, context);
99
- });
100
- },
101
- onDisable(context) {
102
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
103
- yield pieces_common_1.pollingHelper.onDisable(polling, context);
104
- });
105
- },
106
- run(context) {
107
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
108
- return yield pieces_common_1.pollingHelper.poll(polling, context);
109
- });
110
- },
111
- });
112
- //# 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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"}