@wave-av/sdk 2.0.0 → 2.0.2
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/CHANGELOG.md +1 -1
- package/README.md +27 -23
- package/dist/audience.js +93 -0
- package/dist/audience.mjs +9 -0
- package/dist/camera-control.js +95 -0
- package/dist/camera-control.mjs +71 -0
- package/dist/captions-types.js +18 -0
- package/dist/captions-types.mjs +0 -0
- package/dist/captions.js +266 -0
- package/dist/captions.mjs +9 -0
- package/dist/chapters-types.js +18 -0
- package/dist/chapters-types.mjs +0 -0
- package/dist/chapters.js +280 -0
- package/dist/chapters.mjs +9 -0
- package/dist/chunk-362MRITF.mjs +46 -0
- package/dist/chunk-3ZLK4J3V.mjs +69 -0
- package/dist/chunk-4DG4OBRD.mjs +52 -0
- package/dist/chunk-4G7FMCMJ.mjs +68 -0
- package/dist/chunk-4KD5F6E3.mjs +0 -0
- package/dist/chunk-7M6XVUUK.mjs +241 -0
- package/dist/chunk-A344OOT7.mjs +243 -0
- package/dist/chunk-AI64YR5W.mjs +173 -0
- package/dist/chunk-C2GQ756E.mjs +57 -0
- package/dist/chunk-CO2VB72Z.mjs +255 -0
- package/dist/chunk-DWXWAILB.mjs +44 -0
- package/dist/chunk-FLEFYLDM.mjs +71 -0
- package/dist/chunk-H2YYTNUH.mjs +266 -0
- package/dist/chunk-IGDBED5P.mjs +246 -0
- package/dist/chunk-IL2SGWBC.mjs +0 -0
- package/dist/chunk-IVFZ5X4W.mjs +68 -0
- package/dist/chunk-JC32PG3T.mjs +114 -0
- package/dist/chunk-K5X42NLD.mjs +54 -0
- package/dist/chunk-KCEPNS2U.mjs +276 -0
- package/dist/chunk-LVOVF6XC.mjs +54 -0
- package/dist/chunk-M4Z33V3N.mjs +247 -0
- package/dist/chunk-M6FKIX75.mjs +0 -0
- package/dist/chunk-M744Z327.mjs +244 -0
- package/dist/chunk-MRFDPPFK.mjs +61 -0
- package/dist/chunk-MXU3Q23F.mjs +68 -0
- package/dist/chunk-NCVUZ746.mjs +60 -0
- package/dist/chunk-NLQVD2LF.mjs +210 -0
- package/dist/chunk-O6DOGYP5.mjs +238 -0
- package/dist/chunk-S25NY5GE.mjs +124 -0
- package/dist/chunk-TFHXBICQ.mjs +305 -0
- package/dist/chunk-TXWOA2VR.mjs +57 -0
- package/dist/chunk-UCDSNV22.mjs +63 -0
- package/dist/chunk-V5DWA5P4.mjs +279 -0
- package/dist/chunk-VLQQDYGP.mjs +173 -0
- package/dist/chunk-VPKZUXZW.mjs +53 -0
- package/dist/chunk-WS3PEFYJ.mjs +60 -0
- package/dist/chunk-XGAYMWRH.mjs +74 -0
- package/dist/chunk-XMM5J57W.mjs +0 -0
- package/dist/chunk-XWABBOSX.mjs +278 -0
- package/dist/chunk-Y6FXYEAI.mjs +10 -0
- package/dist/chunk-YBLXHI3M.mjs +257 -0
- package/dist/chunk-YEK26SSO.mjs +100 -0
- package/dist/chunk-YLCQKCZL.mjs +0 -0
- package/dist/chunk-YRKO4XI7.mjs +0 -0
- package/dist/chunk-ZJO7AP4Q.mjs +0 -0
- package/dist/client-types.js +18 -0
- package/dist/client-types.mjs +0 -0
- package/dist/client.js +311 -0
- package/dist/client.mjs +14 -0
- package/dist/clips-types.js +18 -0
- package/dist/clips-types.mjs +0 -0
- package/dist/clips.js +198 -0
- package/dist/clips.mjs +9 -0
- package/dist/cloud-switcher.js +80 -0
- package/dist/cloud-switcher.mjs +56 -0
- package/dist/collab-types.js +18 -0
- package/dist/collab-types.mjs +1 -0
- package/dist/collab.js +304 -0
- package/dist/collab.mjs +10 -0
- package/dist/connect.js +85 -0
- package/dist/connect.mjs +9 -0
- package/dist/creator.js +79 -0
- package/dist/creator.mjs +9 -0
- package/dist/desktop.js +77 -0
- package/dist/desktop.mjs +9 -0
- package/dist/distribution.js +88 -0
- package/dist/distribution.mjs +9 -0
- package/dist/drm.js +85 -0
- package/dist/drm.mjs +9 -0
- package/dist/edge.js +93 -0
- package/dist/edge.mjs +9 -0
- package/dist/editor-types.js +18 -0
- package/dist/editor-types.mjs +1 -0
- package/dist/editor.js +330 -0
- package/dist/editor.mjs +10 -0
- package/dist/fleet.js +149 -0
- package/dist/fleet.mjs +9 -0
- package/dist/ghost.js +139 -0
- package/dist/ghost.mjs +9 -0
- package/dist/index.js +0 -250
- package/dist/index.mjs +161 -5445
- package/dist/marketplace.js +82 -0
- package/dist/marketplace.mjs +9 -0
- package/dist/mesh.js +198 -0
- package/dist/mesh.mjs +9 -0
- package/dist/notifications.js +79 -0
- package/dist/notifications.mjs +9 -0
- package/dist/phone-types.js +18 -0
- package/dist/phone-types.mjs +0 -0
- package/dist/phone.js +269 -0
- package/dist/phone.mjs +9 -0
- package/dist/pipeline-types.js +18 -0
- package/dist/pipeline-types.mjs +0 -0
- package/dist/pipeline.js +263 -0
- package/dist/pipeline.mjs +9 -0
- package/dist/podcast.js +94 -0
- package/dist/podcast.mjs +9 -0
- package/dist/prism.js +82 -0
- package/dist/prism.mjs +9 -0
- package/dist/prompter.js +99 -0
- package/dist/prompter.mjs +76 -0
- package/dist/pulse.js +99 -0
- package/dist/pulse.mjs +9 -0
- package/dist/qr.js +71 -0
- package/dist/qr.mjs +9 -0
- package/dist/replay.js +62 -0
- package/dist/replay.mjs +38 -0
- package/dist/scene-types.js +18 -0
- package/dist/scene-types.mjs +1 -0
- package/dist/scene.js +271 -0
- package/dist/scene.mjs +10 -0
- package/dist/search-types.js +18 -0
- package/dist/search-types.mjs +1 -0
- package/dist/search.js +268 -0
- package/dist/search.mjs +10 -0
- package/dist/sentiment-types.js +18 -0
- package/dist/sentiment-types.mjs +0 -0
- package/dist/sentiment.js +235 -0
- package/dist/sentiment.mjs +9 -0
- package/dist/signage.js +93 -0
- package/dist/signage.mjs +9 -0
- package/dist/slides.js +78 -0
- package/dist/slides.mjs +9 -0
- package/dist/studio-ai-types.js +18 -0
- package/dist/studio-ai-types.mjs +1 -0
- package/dist/studio-ai.js +301 -0
- package/dist/studio-ai.mjs +10 -0
- package/dist/studio-types.js +18 -0
- package/dist/studio-types.mjs +1 -0
- package/dist/studio.js +303 -0
- package/dist/studio.mjs +10 -0
- package/dist/telemetry.js +124 -0
- package/dist/telemetry.mjs +15 -0
- package/dist/transcribe-types.js +18 -0
- package/dist/transcribe-types.mjs +1 -0
- package/dist/transcribe.js +282 -0
- package/dist/transcribe.mjs +10 -0
- package/dist/usb.js +69 -0
- package/dist/usb.mjs +9 -0
- package/dist/vault.js +96 -0
- package/dist/vault.mjs +9 -0
- package/dist/voice-types.js +18 -0
- package/dist/voice-types.mjs +0 -0
- package/dist/voice.js +272 -0
- package/dist/voice.mjs +9 -0
- package/dist/zoom.js +86 -0
- package/dist/zoom.mjs +9 -0
- package/package.json +3 -3
package/dist/drm.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/drm.ts
|
|
21
|
+
var drm_exports = {};
|
|
22
|
+
__export(drm_exports, {
|
|
23
|
+
DrmAPI: () => DrmAPI,
|
|
24
|
+
createDrmAPI: () => createDrmAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(drm_exports);
|
|
27
|
+
var DrmAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/drm";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
/** Create a DRM policy. */
|
|
34
|
+
async createPolicy(request) {
|
|
35
|
+
return this.client.post(`${this.basePath}/policies`, request);
|
|
36
|
+
}
|
|
37
|
+
/** Get a DRM policy by ID. */
|
|
38
|
+
async getPolicy(policyId) {
|
|
39
|
+
return this.client.get(`${this.basePath}/policies/${policyId}`);
|
|
40
|
+
}
|
|
41
|
+
/** List DRM policies. */
|
|
42
|
+
async listPolicies(params) {
|
|
43
|
+
return this.client.get(`${this.basePath}/policies`, {
|
|
44
|
+
params
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** Update a DRM policy. */
|
|
48
|
+
async updatePolicy(policyId, updates) {
|
|
49
|
+
return this.client.patch(`${this.basePath}/policies/${policyId}`, updates);
|
|
50
|
+
}
|
|
51
|
+
/** Delete a DRM policy. */
|
|
52
|
+
async removePolicy(policyId) {
|
|
53
|
+
await this.client.delete(`${this.basePath}/policies/${policyId}`);
|
|
54
|
+
}
|
|
55
|
+
/** Get a DRM certificate for a provider. */
|
|
56
|
+
async getCertificate(provider) {
|
|
57
|
+
return this.client.get(`${this.basePath}/certificate/${provider}`);
|
|
58
|
+
}
|
|
59
|
+
/** Issue a license for an asset. */
|
|
60
|
+
async issueLicense(assetId, policyId, deviceId) {
|
|
61
|
+
return this.client.post(`${this.basePath}/license`, {
|
|
62
|
+
asset_id: assetId,
|
|
63
|
+
policy_id: policyId,
|
|
64
|
+
device_id: deviceId
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
/** Revoke a license. */
|
|
68
|
+
async revokeLicense(licenseId) {
|
|
69
|
+
return this.client.post(`${this.basePath}/license/${licenseId}/revoke`);
|
|
70
|
+
}
|
|
71
|
+
/** List licenses for an asset or user. */
|
|
72
|
+
async listLicenses(params) {
|
|
73
|
+
return this.client.get(`${this.basePath}/licenses`, {
|
|
74
|
+
params
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
function createDrmAPI(client) {
|
|
79
|
+
return new DrmAPI(client);
|
|
80
|
+
}
|
|
81
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
82
|
+
0 && (module.exports = {
|
|
83
|
+
DrmAPI,
|
|
84
|
+
createDrmAPI
|
|
85
|
+
});
|
package/dist/drm.mjs
ADDED
package/dist/edge.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/edge.ts
|
|
21
|
+
var edge_exports = {};
|
|
22
|
+
__export(edge_exports, {
|
|
23
|
+
EdgeAPI: () => EdgeAPI,
|
|
24
|
+
createEdgeAPI: () => createEdgeAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(edge_exports);
|
|
27
|
+
var EdgeAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/edge";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
async listNodes(params) {
|
|
34
|
+
return this.client.get(`${this.basePath}/nodes`, {
|
|
35
|
+
params
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async getNode(nodeId) {
|
|
39
|
+
return this.client.get(`${this.basePath}/nodes/${nodeId}`);
|
|
40
|
+
}
|
|
41
|
+
async getNodeMetrics(nodeId) {
|
|
42
|
+
return this.client.get(`${this.basePath}/nodes/${nodeId}/metrics`);
|
|
43
|
+
}
|
|
44
|
+
async deployWorker(request) {
|
|
45
|
+
return this.client.post(`${this.basePath}/workers`, request);
|
|
46
|
+
}
|
|
47
|
+
async getWorker(workerId) {
|
|
48
|
+
return this.client.get(`${this.basePath}/workers/${workerId}`);
|
|
49
|
+
}
|
|
50
|
+
async updateWorker(workerId, config) {
|
|
51
|
+
return this.client.patch(`${this.basePath}/workers/${workerId}`, config);
|
|
52
|
+
}
|
|
53
|
+
async removeWorker(workerId) {
|
|
54
|
+
await this.client.delete(`${this.basePath}/workers/${workerId}`);
|
|
55
|
+
}
|
|
56
|
+
async listWorkers(params) {
|
|
57
|
+
return this.client.get(`${this.basePath}/workers`, {
|
|
58
|
+
params
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
async startWorker(workerId) {
|
|
62
|
+
return this.client.post(`${this.basePath}/workers/${workerId}/start`);
|
|
63
|
+
}
|
|
64
|
+
async stopWorker(workerId) {
|
|
65
|
+
return this.client.post(`${this.basePath}/workers/${workerId}/stop`);
|
|
66
|
+
}
|
|
67
|
+
async listPops() {
|
|
68
|
+
return this.client.get(`${this.basePath}/pops`);
|
|
69
|
+
}
|
|
70
|
+
async purgeCache(patterns) {
|
|
71
|
+
return this.client.post(`${this.basePath}/cache/purge`, { patterns });
|
|
72
|
+
}
|
|
73
|
+
async getRoutingRules() {
|
|
74
|
+
return this.client.get(`${this.basePath}/routing`);
|
|
75
|
+
}
|
|
76
|
+
async setRoutingRule(rule) {
|
|
77
|
+
return this.client.post(`${this.basePath}/routing`, rule);
|
|
78
|
+
}
|
|
79
|
+
async removeRoutingRule(ruleId) {
|
|
80
|
+
await this.client.delete(`${this.basePath}/routing/${ruleId}`);
|
|
81
|
+
}
|
|
82
|
+
async getLatencyMap() {
|
|
83
|
+
return this.client.get(`${this.basePath}/latency-map`);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
function createEdgeAPI(client) {
|
|
87
|
+
return new EdgeAPI(client);
|
|
88
|
+
}
|
|
89
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
90
|
+
0 && (module.exports = {
|
|
91
|
+
EdgeAPI,
|
|
92
|
+
createEdgeAPI
|
|
93
|
+
});
|
package/dist/edge.mjs
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
|
|
16
|
+
// src/editor-types.ts
|
|
17
|
+
var editor_types_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(editor_types_exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./chunk-YRKO4XI7.mjs";
|
package/dist/editor.js
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/editor.ts
|
|
21
|
+
var editor_exports = {};
|
|
22
|
+
__export(editor_exports, {
|
|
23
|
+
EditorAPI: () => EditorAPI,
|
|
24
|
+
createEditorAPI: () => createEditorAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(editor_exports);
|
|
27
|
+
var EditorAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/editor/projects";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a new editor project
|
|
35
|
+
*
|
|
36
|
+
* Requires: editor:create permission
|
|
37
|
+
*/
|
|
38
|
+
async createProject(request) {
|
|
39
|
+
return this.client.post(this.basePath, request);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a project by ID
|
|
43
|
+
*
|
|
44
|
+
* Requires: editor:read permission
|
|
45
|
+
*/
|
|
46
|
+
async getProject(projectId) {
|
|
47
|
+
return this.client.get(`${this.basePath}/${projectId}`);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Update a project
|
|
51
|
+
*
|
|
52
|
+
* Requires: editor:update permission
|
|
53
|
+
*/
|
|
54
|
+
async updateProject(projectId, request) {
|
|
55
|
+
return this.client.patch(`${this.basePath}/${projectId}`, request);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Remove a project
|
|
59
|
+
*
|
|
60
|
+
* Requires: editor:remove permission (server-side RBAC enforced)
|
|
61
|
+
*/
|
|
62
|
+
async removeProject(projectId) {
|
|
63
|
+
await this.client.delete(`${this.basePath}/${projectId}`);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* List projects
|
|
67
|
+
*
|
|
68
|
+
* Requires: editor:read permission
|
|
69
|
+
*/
|
|
70
|
+
async listProjects(params) {
|
|
71
|
+
return this.client.get(this.basePath, {
|
|
72
|
+
params
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Duplicate a project
|
|
77
|
+
*
|
|
78
|
+
* Requires: editor:create permission
|
|
79
|
+
*/
|
|
80
|
+
async duplicateProject(projectId, name) {
|
|
81
|
+
return this.client.post(`${this.basePath}/${projectId}/duplicate`, {
|
|
82
|
+
name
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Add a track to a project
|
|
87
|
+
*
|
|
88
|
+
* Requires: editor:update permission
|
|
89
|
+
*/
|
|
90
|
+
async addTrack(projectId, track) {
|
|
91
|
+
return this.client.post(`${this.basePath}/${projectId}/tracks`, track);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Update a track
|
|
95
|
+
*
|
|
96
|
+
* Requires: editor:update permission
|
|
97
|
+
*/
|
|
98
|
+
async updateTrack(projectId, trackId, updates) {
|
|
99
|
+
return this.client.patch(
|
|
100
|
+
`${this.basePath}/${projectId}/tracks/${trackId}`,
|
|
101
|
+
updates
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Remove a track
|
|
106
|
+
*
|
|
107
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
108
|
+
*/
|
|
109
|
+
async removeTrack(projectId, trackId) {
|
|
110
|
+
await this.client.delete(
|
|
111
|
+
`${this.basePath}/${projectId}/tracks/${trackId}`,
|
|
112
|
+
{ method: "DELETE" }
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Add an element to a track
|
|
117
|
+
*
|
|
118
|
+
* Requires: editor:update permission
|
|
119
|
+
*/
|
|
120
|
+
async addElement(projectId, element) {
|
|
121
|
+
return this.client.post(
|
|
122
|
+
`${this.basePath}/${projectId}/elements`,
|
|
123
|
+
element
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Update an element
|
|
128
|
+
*
|
|
129
|
+
* Requires: editor:update permission
|
|
130
|
+
*/
|
|
131
|
+
async updateElement(projectId, elementId, updates) {
|
|
132
|
+
return this.client.patch(
|
|
133
|
+
`${this.basePath}/${projectId}/elements/${elementId}`,
|
|
134
|
+
updates
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Remove an element
|
|
139
|
+
*
|
|
140
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
141
|
+
*/
|
|
142
|
+
async removeElement(projectId, elementId) {
|
|
143
|
+
await this.client.delete(
|
|
144
|
+
`${this.basePath}/${projectId}/elements/${elementId}`,
|
|
145
|
+
{ method: "DELETE" }
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Move an element to a different position
|
|
150
|
+
*
|
|
151
|
+
* Requires: editor:update permission
|
|
152
|
+
*/
|
|
153
|
+
async moveElement(projectId, elementId, options) {
|
|
154
|
+
return this.client.post(
|
|
155
|
+
`${this.basePath}/${projectId}/elements/${elementId}/move`,
|
|
156
|
+
options
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Trim an element
|
|
161
|
+
*
|
|
162
|
+
* Requires: editor:update permission
|
|
163
|
+
*/
|
|
164
|
+
async trimElement(projectId, elementId, options) {
|
|
165
|
+
return this.client.post(
|
|
166
|
+
`${this.basePath}/${projectId}/elements/${elementId}/trim`,
|
|
167
|
+
options
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Add a transition between elements
|
|
172
|
+
*
|
|
173
|
+
* Requires: editor:update permission
|
|
174
|
+
*/
|
|
175
|
+
async addTransition(projectId, transition) {
|
|
176
|
+
return this.client.post(
|
|
177
|
+
`${this.basePath}/${projectId}/transitions`,
|
|
178
|
+
transition
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Update a transition
|
|
183
|
+
*
|
|
184
|
+
* Requires: editor:update permission
|
|
185
|
+
*/
|
|
186
|
+
async updateTransition(projectId, transitionId, updates) {
|
|
187
|
+
return this.client.patch(
|
|
188
|
+
`${this.basePath}/${projectId}/transitions/${transitionId}`,
|
|
189
|
+
updates
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Remove a transition
|
|
194
|
+
*
|
|
195
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
196
|
+
*/
|
|
197
|
+
async removeTransition(projectId, transitionId) {
|
|
198
|
+
await this.client.delete(
|
|
199
|
+
`${this.basePath}/${projectId}/transitions/${transitionId}`,
|
|
200
|
+
{ method: "DELETE" }
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Add an effect to an element
|
|
205
|
+
*
|
|
206
|
+
* Requires: editor:update permission
|
|
207
|
+
*/
|
|
208
|
+
async addEffect(projectId, effect) {
|
|
209
|
+
return this.client.post(
|
|
210
|
+
`${this.basePath}/${projectId}/effects`,
|
|
211
|
+
effect
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Update an effect
|
|
216
|
+
*
|
|
217
|
+
* Requires: editor:update permission
|
|
218
|
+
*/
|
|
219
|
+
async updateEffect(projectId, effectId, updates) {
|
|
220
|
+
return this.client.patch(
|
|
221
|
+
`${this.basePath}/${projectId}/effects/${effectId}`,
|
|
222
|
+
updates
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Remove an effect
|
|
227
|
+
*
|
|
228
|
+
* Requires: editor:update permission (server-side RBAC enforced)
|
|
229
|
+
*/
|
|
230
|
+
async removeEffect(projectId, effectId) {
|
|
231
|
+
await this.client.delete(
|
|
232
|
+
`${this.basePath}/${projectId}/effects/${effectId}`,
|
|
233
|
+
{ method: "DELETE" }
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Start rendering a project
|
|
238
|
+
*
|
|
239
|
+
* Requires: editor:render permission
|
|
240
|
+
*/
|
|
241
|
+
async render(projectId, options) {
|
|
242
|
+
return this.client.post(
|
|
243
|
+
`${this.basePath}/${projectId}/render`,
|
|
244
|
+
options
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get render job status
|
|
249
|
+
*
|
|
250
|
+
* Requires: editor:read permission
|
|
251
|
+
*/
|
|
252
|
+
async getRenderJob(projectId, jobId) {
|
|
253
|
+
return this.client.get(
|
|
254
|
+
`${this.basePath}/${projectId}/render/${jobId}`
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* List render jobs for a project
|
|
259
|
+
*
|
|
260
|
+
* Requires: editor:read permission
|
|
261
|
+
*/
|
|
262
|
+
async listRenderJobs(projectId, params) {
|
|
263
|
+
return this.client.get(
|
|
264
|
+
`${this.basePath}/${projectId}/render`,
|
|
265
|
+
{ params }
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Cancel a render job
|
|
270
|
+
*
|
|
271
|
+
* Requires: editor:render permission
|
|
272
|
+
*/
|
|
273
|
+
async cancelRenderJob(projectId, jobId) {
|
|
274
|
+
return this.client.post(
|
|
275
|
+
`${this.basePath}/${projectId}/render/${jobId}/cancel`
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Wait for render to complete
|
|
280
|
+
*/
|
|
281
|
+
async waitForRender(projectId, jobId, options) {
|
|
282
|
+
const pollInterval = options?.pollInterval || 3e3;
|
|
283
|
+
const timeout = options?.timeout || 18e5;
|
|
284
|
+
const startTime = Date.now();
|
|
285
|
+
while (Date.now() - startTime < timeout) {
|
|
286
|
+
const job = await this.getRenderJob(projectId, jobId);
|
|
287
|
+
if (options?.onProgress) {
|
|
288
|
+
options.onProgress(job);
|
|
289
|
+
}
|
|
290
|
+
if (job.status === "ready") {
|
|
291
|
+
return job;
|
|
292
|
+
}
|
|
293
|
+
if (job.status === "failed") {
|
|
294
|
+
throw new Error(`Render failed: ${job.error || "Unknown error"}`);
|
|
295
|
+
}
|
|
296
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
297
|
+
}
|
|
298
|
+
throw new Error(`Render timed out after ${timeout}ms`);
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Generate a preview frame
|
|
302
|
+
*
|
|
303
|
+
* Requires: editor:read permission
|
|
304
|
+
*/
|
|
305
|
+
async getPreviewFrame(projectId, time, options) {
|
|
306
|
+
return this.client.get(`${this.basePath}/${projectId}/preview`, {
|
|
307
|
+
params: { time, ...options }
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Generate a preview video segment
|
|
312
|
+
*
|
|
313
|
+
* Requires: editor:read permission
|
|
314
|
+
*/
|
|
315
|
+
async getPreviewSegment(projectId, startTime, endTime, options) {
|
|
316
|
+
return this.client.post(`${this.basePath}/${projectId}/preview/segment`, {
|
|
317
|
+
start_time: startTime,
|
|
318
|
+
end_time: endTime,
|
|
319
|
+
...options
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
function createEditorAPI(client) {
|
|
324
|
+
return new EditorAPI(client);
|
|
325
|
+
}
|
|
326
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
327
|
+
0 && (module.exports = {
|
|
328
|
+
EditorAPI,
|
|
329
|
+
createEditorAPI
|
|
330
|
+
});
|