@wave-av/sdk 2.0.1 → 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/audience.d.ts +0 -104
- package/dist/audience.d.ts.map +0 -1
- package/dist/camera-control.d.ts +0 -54
- package/dist/camera-control.d.ts.map +0 -1
- package/dist/captions.d.ts +0 -362
- package/dist/captions.d.ts.map +0 -1
- package/dist/chapters.d.ts +0 -315
- package/dist/chapters.d.ts.map +0 -1
- package/dist/client.d.ts +0 -191
- package/dist/client.d.ts.map +0 -1
- package/dist/clips.d.ts +0 -258
- package/dist/clips.d.ts.map +0 -1
- package/dist/cloud-switcher.d.ts +0 -65
- package/dist/cloud-switcher.d.ts.map +0 -1
- package/dist/collab-types.d.ts +0 -204
- package/dist/collab-types.d.ts.map +0 -1
- package/dist/collab.d.ts +0 -226
- package/dist/collab.d.ts.map +0 -1
- package/dist/connect.d.ts +0 -88
- package/dist/connect.d.ts.map +0 -1
- package/dist/creator.d.ts +0 -109
- package/dist/creator.d.ts.map +0 -1
- package/dist/desktop.d.ts +0 -95
- package/dist/desktop.d.ts.map +0 -1
- package/dist/distribution.d.ts +0 -92
- package/dist/distribution.d.ts.map +0 -1
- package/dist/drm.d.ts +0 -87
- package/dist/drm.d.ts.map +0 -1
- package/dist/edge.d.ts +0 -112
- package/dist/edge.d.ts.map +0 -1
- package/dist/editor-types.d.ts +0 -236
- package/dist/editor-types.d.ts.map +0 -1
- package/dist/editor.d.ts +0 -206
- package/dist/editor.d.ts.map +0 -1
- package/dist/fleet.d.ts +0 -207
- package/dist/fleet.d.ts.map +0 -1
- package/dist/ghost.d.ts +0 -213
- package/dist/ghost.d.ts.map +0 -1
- package/dist/index.d.ts +0 -144
- package/dist/index.d.ts.map +0 -1
- package/dist/marketplace.d.ts +0 -90
- package/dist/marketplace.d.ts.map +0 -1
- package/dist/mesh.d.ts +0 -237
- package/dist/mesh.d.ts.map +0 -1
- package/dist/notifications.d.ts +0 -82
- package/dist/notifications.d.ts.map +0 -1
- package/dist/phone.d.ts +0 -369
- package/dist/phone.d.ts.map +0 -1
- package/dist/pipeline.d.ts +0 -409
- package/dist/pipeline.d.ts.map +0 -1
- package/dist/podcast.d.ts +0 -113
- package/dist/podcast.d.ts.map +0 -1
- package/dist/prism.d.ts +0 -132
- package/dist/prism.d.ts.map +0 -1
- package/dist/prompter.d.ts +0 -184
- package/dist/prompter.d.ts.map +0 -1
- package/dist/pulse.d.ts +0 -156
- package/dist/pulse.d.ts.map +0 -1
- package/dist/qr.d.ts +0 -82
- package/dist/qr.d.ts.map +0 -1
- package/dist/replay.d.ts +0 -52
- package/dist/replay.d.ts.map +0 -1
- package/dist/scene-types.d.ts +0 -190
- package/dist/scene-types.d.ts.map +0 -1
- package/dist/scene.d.ts +0 -213
- package/dist/scene.d.ts.map +0 -1
- package/dist/search-types.d.ts +0 -210
- package/dist/search-types.d.ts.map +0 -1
- package/dist/search.d.ts +0 -250
- package/dist/search.d.ts.map +0 -1
- package/dist/sentiment.d.ts +0 -378
- package/dist/sentiment.d.ts.map +0 -1
- package/dist/signage.d.ts +0 -101
- package/dist/signage.d.ts.map +0 -1
- package/dist/slides.d.ts +0 -68
- package/dist/slides.d.ts.map +0 -1
- package/dist/studio-ai-types.d.ts +0 -198
- package/dist/studio-ai-types.d.ts.map +0 -1
- package/dist/studio-ai.d.ts +0 -218
- package/dist/studio-ai.d.ts.map +0 -1
- package/dist/studio-types.d.ts +0 -267
- package/dist/studio-types.d.ts.map +0 -1
- package/dist/studio.d.ts +0 -234
- package/dist/studio.d.ts.map +0 -1
- package/dist/telemetry.d.ts +0 -76
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/transcribe-types.d.ts +0 -153
- package/dist/transcribe-types.d.ts.map +0 -1
- package/dist/transcribe.d.ts +0 -218
- package/dist/transcribe.d.ts.map +0 -1
- package/dist/usb.d.ts +0 -64
- package/dist/usb.d.ts.map +0 -1
- package/dist/vault.d.ts +0 -121
- package/dist/vault.d.ts.map +0 -1
- package/dist/voice.d.ts +0 -307
- package/dist/voice.d.ts.map +0 -1
- package/dist/zoom.d.ts +0 -91
- package/dist/zoom.d.ts.map +0 -1
package/dist/search.js
ADDED
|
@@ -0,0 +1,268 @@
|
|
|
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/search.ts
|
|
21
|
+
var search_exports = {};
|
|
22
|
+
__export(search_exports, {
|
|
23
|
+
SearchAPI: () => SearchAPI,
|
|
24
|
+
createSearchAPI: () => createSearchAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(search_exports);
|
|
27
|
+
var SearchAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/search";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Search content
|
|
35
|
+
*
|
|
36
|
+
* Requires: search:query permission
|
|
37
|
+
*/
|
|
38
|
+
async search(request) {
|
|
39
|
+
return this.client.post(this.basePath, request);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Quick search (simplified API)
|
|
43
|
+
*
|
|
44
|
+
* Requires: search:query permission
|
|
45
|
+
*/
|
|
46
|
+
async quickSearch(query, options) {
|
|
47
|
+
const response = await this.search({
|
|
48
|
+
query,
|
|
49
|
+
mode: "semantic",
|
|
50
|
+
types: options?.types,
|
|
51
|
+
filters: options?.filters,
|
|
52
|
+
limit: options?.limit || 10
|
|
53
|
+
});
|
|
54
|
+
return response.results;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Search within a specific media
|
|
58
|
+
*
|
|
59
|
+
* Requires: search:query permission
|
|
60
|
+
*/
|
|
61
|
+
async searchInMedia(mediaId, mediaType, query, options) {
|
|
62
|
+
return this.client.post(`${this.basePath}/media`, {
|
|
63
|
+
media_id: mediaId,
|
|
64
|
+
media_type: mediaType,
|
|
65
|
+
query,
|
|
66
|
+
...options
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Visual search (search by image)
|
|
71
|
+
*
|
|
72
|
+
* Requires: search:visual permission
|
|
73
|
+
*/
|
|
74
|
+
async visualSearch(request) {
|
|
75
|
+
return this.client.post(`${this.basePath}/visual`, request);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Find similar frames
|
|
79
|
+
*
|
|
80
|
+
* Requires: search:visual permission
|
|
81
|
+
*/
|
|
82
|
+
async findSimilarFrames(mediaId, timestamp, options) {
|
|
83
|
+
return this.client.post(`${this.basePath}/visual/similar`, {
|
|
84
|
+
media_id: mediaId,
|
|
85
|
+
timestamp,
|
|
86
|
+
...options
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Detect objects in media
|
|
91
|
+
*
|
|
92
|
+
* Requires: search:visual permission
|
|
93
|
+
*/
|
|
94
|
+
async detectObjects(mediaId, options) {
|
|
95
|
+
return this.client.post(`${this.basePath}/visual/objects`, {
|
|
96
|
+
media_id: mediaId,
|
|
97
|
+
...options
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Audio search (search by audio)
|
|
102
|
+
*
|
|
103
|
+
* Requires: search:audio permission
|
|
104
|
+
*/
|
|
105
|
+
async audioSearch(request) {
|
|
106
|
+
return this.client.post(`${this.basePath}/audio`, request);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Find similar audio segments
|
|
110
|
+
*
|
|
111
|
+
* Requires: search:audio permission
|
|
112
|
+
*/
|
|
113
|
+
async findSimilarAudio(mediaId, startTime, endTime, options) {
|
|
114
|
+
return this.client.post(`${this.basePath}/audio/similar`, {
|
|
115
|
+
media_id: mediaId,
|
|
116
|
+
start_time: startTime,
|
|
117
|
+
end_time: endTime,
|
|
118
|
+
...options
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Detect music in media
|
|
123
|
+
*
|
|
124
|
+
* Requires: search:audio permission
|
|
125
|
+
*/
|
|
126
|
+
async detectMusic(mediaId) {
|
|
127
|
+
return this.client.get(`${this.basePath}/audio/music/${mediaId}`);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get search suggestions
|
|
131
|
+
*
|
|
132
|
+
* Requires: search:query permission
|
|
133
|
+
*/
|
|
134
|
+
async getSuggestions(prefix, options) {
|
|
135
|
+
return this.client.get(`${this.basePath}/suggest`, {
|
|
136
|
+
params: { prefix, ...options }
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Get trending searches
|
|
141
|
+
*
|
|
142
|
+
* Requires: search:query permission
|
|
143
|
+
*/
|
|
144
|
+
async getTrending(options) {
|
|
145
|
+
return this.client.get(`${this.basePath}/trending`, { params: options });
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Index media for search
|
|
149
|
+
*
|
|
150
|
+
* Requires: search:index permission
|
|
151
|
+
*/
|
|
152
|
+
async indexMedia(mediaId, mediaType, options) {
|
|
153
|
+
return this.client.post(`${this.basePath}/index`, {
|
|
154
|
+
media_id: mediaId,
|
|
155
|
+
media_type: mediaType,
|
|
156
|
+
...options
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get index status
|
|
161
|
+
*
|
|
162
|
+
* Requires: search:read permission
|
|
163
|
+
*/
|
|
164
|
+
async getIndexStatus(mediaId) {
|
|
165
|
+
return this.client.get(`${this.basePath}/index/${mediaId}`);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Reindex media
|
|
169
|
+
*
|
|
170
|
+
* Requires: search:index permission
|
|
171
|
+
*/
|
|
172
|
+
async reindexMedia(mediaId, options) {
|
|
173
|
+
return this.client.post(
|
|
174
|
+
`${this.basePath}/index/${mediaId}/reindex`,
|
|
175
|
+
options
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Remove media from index
|
|
180
|
+
*
|
|
181
|
+
* Requires: search:index permission (server-side RBAC enforced)
|
|
182
|
+
*/
|
|
183
|
+
async removeFromIndex(mediaId) {
|
|
184
|
+
await this.client.delete(
|
|
185
|
+
`${this.basePath}/index/${mediaId}`,
|
|
186
|
+
{ method: "DELETE" }
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Save a search
|
|
191
|
+
*
|
|
192
|
+
* Requires: search:save permission
|
|
193
|
+
*/
|
|
194
|
+
async saveSearch(name, request, options) {
|
|
195
|
+
return this.client.post(`${this.basePath}/saved`, {
|
|
196
|
+
name,
|
|
197
|
+
query: request,
|
|
198
|
+
...options
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* List saved searches
|
|
203
|
+
*
|
|
204
|
+
* Requires: search:read permission
|
|
205
|
+
*/
|
|
206
|
+
async listSavedSearches(params) {
|
|
207
|
+
return this.client.get(`${this.basePath}/saved`, { params });
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Run a saved search
|
|
211
|
+
*
|
|
212
|
+
* Requires: search:query permission
|
|
213
|
+
*/
|
|
214
|
+
async runSavedSearch(savedSearchId) {
|
|
215
|
+
return this.client.post(
|
|
216
|
+
`${this.basePath}/saved/${savedSearchId}/run`
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Remove a saved search
|
|
221
|
+
*
|
|
222
|
+
* Requires: search:save permission (server-side RBAC enforced)
|
|
223
|
+
*/
|
|
224
|
+
async removeSavedSearch(savedSearchId) {
|
|
225
|
+
await this.client.delete(
|
|
226
|
+
`${this.basePath}/saved/${savedSearchId}`,
|
|
227
|
+
{ method: "DELETE" }
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get search analytics
|
|
232
|
+
*
|
|
233
|
+
* Requires: search:analytics permission
|
|
234
|
+
*/
|
|
235
|
+
async getAnalytics(options) {
|
|
236
|
+
return this.client.get(`${this.basePath}/analytics`, { params: options });
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Wait for indexing to complete
|
|
240
|
+
*/
|
|
241
|
+
async waitForIndex(mediaId, options) {
|
|
242
|
+
const pollInterval = options?.pollInterval || 2e3;
|
|
243
|
+
const timeout = options?.timeout || 6e5;
|
|
244
|
+
const startTime = Date.now();
|
|
245
|
+
while (Date.now() - startTime < timeout) {
|
|
246
|
+
const status = await this.getIndexStatus(mediaId);
|
|
247
|
+
if (options?.onProgress) {
|
|
248
|
+
options.onProgress(status);
|
|
249
|
+
}
|
|
250
|
+
if (status.status === "ready") {
|
|
251
|
+
return status;
|
|
252
|
+
}
|
|
253
|
+
if (status.status === "failed") {
|
|
254
|
+
throw new Error(`Indexing failed: ${status.error || "Unknown error"}`);
|
|
255
|
+
}
|
|
256
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
257
|
+
}
|
|
258
|
+
throw new Error(`Indexing timed out after ${timeout}ms`);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
function createSearchAPI(client) {
|
|
262
|
+
return new SearchAPI(client);
|
|
263
|
+
}
|
|
264
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
265
|
+
0 && (module.exports = {
|
|
266
|
+
SearchAPI,
|
|
267
|
+
createSearchAPI
|
|
268
|
+
});
|
package/dist/search.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/sentiment-types.ts
|
|
17
|
+
var sentiment_types_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(sentiment_types_exports);
|
|
File without changes
|
|
@@ -0,0 +1,235 @@
|
|
|
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/sentiment.ts
|
|
21
|
+
var sentiment_exports = {};
|
|
22
|
+
__export(sentiment_exports, {
|
|
23
|
+
SentimentAPI: () => SentimentAPI,
|
|
24
|
+
createSentimentAPI: () => createSentimentAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(sentiment_exports);
|
|
27
|
+
var SentimentAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/sentiment";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Create a sentiment analysis job
|
|
35
|
+
*
|
|
36
|
+
* Requires: sentiment:analyze permission
|
|
37
|
+
*/
|
|
38
|
+
async analyze(request) {
|
|
39
|
+
return this.client.post(this.basePath, request);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Analyze text directly (synchronous for short text)
|
|
43
|
+
*
|
|
44
|
+
* Requires: sentiment:analyze permission
|
|
45
|
+
*/
|
|
46
|
+
async analyzeText(text, options) {
|
|
47
|
+
return this.client.post(`${this.basePath}/text`, { text, ...options });
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Batch analyze multiple items
|
|
51
|
+
*
|
|
52
|
+
* Requires: sentiment:analyze permission
|
|
53
|
+
*/
|
|
54
|
+
async batchAnalyze(request) {
|
|
55
|
+
return this.client.post(`${this.basePath}/batch`, request);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get an analysis by ID
|
|
59
|
+
*
|
|
60
|
+
* Requires: sentiment:read permission
|
|
61
|
+
*/
|
|
62
|
+
async get(analysisId) {
|
|
63
|
+
return this.client.get(`${this.basePath}/${analysisId}`);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remove an analysis
|
|
67
|
+
*
|
|
68
|
+
* Requires: sentiment:remove permission (server-side RBAC enforced)
|
|
69
|
+
*/
|
|
70
|
+
async remove(analysisId) {
|
|
71
|
+
await this.client.delete(
|
|
72
|
+
`${this.basePath}/${analysisId}`,
|
|
73
|
+
{ method: "DELETE" }
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* List analyses
|
|
78
|
+
*
|
|
79
|
+
* Requires: sentiment:read permission
|
|
80
|
+
*/
|
|
81
|
+
async list(params) {
|
|
82
|
+
return this.client.get(this.basePath, {
|
|
83
|
+
params
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get sentiment segments
|
|
88
|
+
*
|
|
89
|
+
* Requires: sentiment:read permission
|
|
90
|
+
*/
|
|
91
|
+
async getSegments(analysisId, params) {
|
|
92
|
+
return this.client.get(
|
|
93
|
+
`${this.basePath}/${analysisId}/segments`,
|
|
94
|
+
{ params }
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Get sentiment summary
|
|
99
|
+
*
|
|
100
|
+
* Requires: sentiment:read permission
|
|
101
|
+
*/
|
|
102
|
+
async getSummary(analysisId) {
|
|
103
|
+
return this.client.get(
|
|
104
|
+
`${this.basePath}/${analysisId}/summary`
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get sentiment trend over time
|
|
109
|
+
*
|
|
110
|
+
* Requires: sentiment:read permission
|
|
111
|
+
*/
|
|
112
|
+
async getTrend(analysisId, options) {
|
|
113
|
+
return this.client.get(
|
|
114
|
+
`${this.basePath}/${analysisId}/trend`,
|
|
115
|
+
{ params: options }
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get key emotional moments
|
|
120
|
+
*
|
|
121
|
+
* Requires: sentiment:read permission
|
|
122
|
+
*/
|
|
123
|
+
async getKeyMoments(analysisId, options) {
|
|
124
|
+
return this.client.get(
|
|
125
|
+
`${this.basePath}/${analysisId}/key-moments`,
|
|
126
|
+
{ params: options }
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get topic sentiments
|
|
131
|
+
*
|
|
132
|
+
* Requires: sentiment:read permission
|
|
133
|
+
*/
|
|
134
|
+
async getTopicSentiments(analysisId, options) {
|
|
135
|
+
return this.client.get(
|
|
136
|
+
`${this.basePath}/${analysisId}/topics`,
|
|
137
|
+
{ params: options }
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get sentiment by speaker
|
|
142
|
+
*
|
|
143
|
+
* Requires: sentiment:read permission
|
|
144
|
+
*/
|
|
145
|
+
async getSpeakerSentiment(analysisId) {
|
|
146
|
+
return this.client.get(`${this.basePath}/${analysisId}/speakers`);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Start real-time sentiment analysis
|
|
150
|
+
*
|
|
151
|
+
* Requires: sentiment:realtime permission
|
|
152
|
+
*/
|
|
153
|
+
async startRealtime(streamId, options) {
|
|
154
|
+
return this.client.post(`${this.basePath}/realtime/start`, {
|
|
155
|
+
stream_id: streamId,
|
|
156
|
+
...options
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Stop real-time analysis
|
|
161
|
+
*
|
|
162
|
+
* Requires: sentiment:realtime permission
|
|
163
|
+
*/
|
|
164
|
+
async stopRealtime(sessionId) {
|
|
165
|
+
return this.client.post(
|
|
166
|
+
`${this.basePath}/realtime/${sessionId}/stop`
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get real-time session status
|
|
171
|
+
*
|
|
172
|
+
* Requires: sentiment:read permission
|
|
173
|
+
*/
|
|
174
|
+
async getRealtimeStatus(sessionId) {
|
|
175
|
+
return this.client.get(`${this.basePath}/realtime/${sessionId}`);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Compare sentiment between analyses
|
|
179
|
+
*
|
|
180
|
+
* Requires: sentiment:read permission
|
|
181
|
+
*/
|
|
182
|
+
async compare(analysisIds) {
|
|
183
|
+
return this.client.post(`${this.basePath}/compare`, {
|
|
184
|
+
analysis_ids: analysisIds
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Export analysis results
|
|
189
|
+
*
|
|
190
|
+
* Requires: sentiment:read permission
|
|
191
|
+
*/
|
|
192
|
+
async exportAnalysis(analysisId, format) {
|
|
193
|
+
return this.client.post(`${this.basePath}/${analysisId}/export`, { format });
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Wait for analysis to complete
|
|
197
|
+
*/
|
|
198
|
+
async waitForReady(analysisId, options) {
|
|
199
|
+
const pollInterval = options?.pollInterval || 2e3;
|
|
200
|
+
const timeout = options?.timeout || 6e5;
|
|
201
|
+
const startTime = Date.now();
|
|
202
|
+
while (Date.now() - startTime < timeout) {
|
|
203
|
+
const analysis = await this.get(analysisId);
|
|
204
|
+
if (options?.onProgress) {
|
|
205
|
+
options.onProgress(analysis);
|
|
206
|
+
}
|
|
207
|
+
if (analysis.status === "ready") {
|
|
208
|
+
return analysis;
|
|
209
|
+
}
|
|
210
|
+
if (analysis.status === "failed") {
|
|
211
|
+
throw new Error(
|
|
212
|
+
`Sentiment analysis failed: ${analysis.error || "Unknown error"}`
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
216
|
+
}
|
|
217
|
+
throw new Error(`Sentiment analysis timed out after ${timeout}ms`);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Get supported languages
|
|
221
|
+
*
|
|
222
|
+
* Requires: sentiment:read permission
|
|
223
|
+
*/
|
|
224
|
+
async getSupportedLanguages() {
|
|
225
|
+
return this.client.get(`${this.basePath}/languages`);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
function createSentimentAPI(client) {
|
|
229
|
+
return new SentimentAPI(client);
|
|
230
|
+
}
|
|
231
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
232
|
+
0 && (module.exports = {
|
|
233
|
+
SentimentAPI,
|
|
234
|
+
createSentimentAPI
|
|
235
|
+
});
|
package/dist/signage.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/signage.ts
|
|
21
|
+
var signage_exports = {};
|
|
22
|
+
__export(signage_exports, {
|
|
23
|
+
SignageAPI: () => SignageAPI,
|
|
24
|
+
createSignageAPI: () => createSignageAPI
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(signage_exports);
|
|
27
|
+
var SignageAPI = class {
|
|
28
|
+
client;
|
|
29
|
+
basePath = "/v1/signage";
|
|
30
|
+
constructor(client) {
|
|
31
|
+
this.client = client;
|
|
32
|
+
}
|
|
33
|
+
async listDisplays(params) {
|
|
34
|
+
return this.client.get(`${this.basePath}/displays`, {
|
|
35
|
+
params
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async getDisplay(displayId) {
|
|
39
|
+
return this.client.get(`${this.basePath}/displays/${displayId}`);
|
|
40
|
+
}
|
|
41
|
+
async registerDisplay(request) {
|
|
42
|
+
return this.client.post(`${this.basePath}/displays`, request);
|
|
43
|
+
}
|
|
44
|
+
async updateDisplay(displayId, updates) {
|
|
45
|
+
return this.client.patch(`${this.basePath}/displays/${displayId}`, updates);
|
|
46
|
+
}
|
|
47
|
+
async removeDisplay(displayId) {
|
|
48
|
+
await this.client.delete(`${this.basePath}/displays/${displayId}`);
|
|
49
|
+
}
|
|
50
|
+
async createPlaylist(request) {
|
|
51
|
+
return this.client.post(`${this.basePath}/playlists`, request);
|
|
52
|
+
}
|
|
53
|
+
async updatePlaylist(playlistId, updates) {
|
|
54
|
+
return this.client.patch(`${this.basePath}/playlists/${playlistId}`, updates);
|
|
55
|
+
}
|
|
56
|
+
async removePlaylist(playlistId) {
|
|
57
|
+
await this.client.delete(`${this.basePath}/playlists/${playlistId}`);
|
|
58
|
+
}
|
|
59
|
+
async listPlaylists(params) {
|
|
60
|
+
return this.client.get(`${this.basePath}/playlists`, {
|
|
61
|
+
params
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
async assignPlaylist(displayId, playlistId) {
|
|
65
|
+
await this.client.post(`${this.basePath}/displays/${displayId}/playlist`, {
|
|
66
|
+
playlist_id: playlistId
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
async scheduleContent(request) {
|
|
70
|
+
return this.client.post(`${this.basePath}/schedules`, request);
|
|
71
|
+
}
|
|
72
|
+
async listSchedules(displayId) {
|
|
73
|
+
const path = displayId ? `${this.basePath}/displays/${displayId}/schedules` : `${this.basePath}/schedules`;
|
|
74
|
+
return this.client.get(path);
|
|
75
|
+
}
|
|
76
|
+
async removeSchedule(scheduleId) {
|
|
77
|
+
await this.client.delete(`${this.basePath}/schedules/${scheduleId}`);
|
|
78
|
+
}
|
|
79
|
+
async configureDisplay(displayId, config) {
|
|
80
|
+
return this.client.patch(
|
|
81
|
+
`${this.basePath}/displays/${displayId}/config`,
|
|
82
|
+
config
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
function createSignageAPI(client) {
|
|
87
|
+
return new SignageAPI(client);
|
|
88
|
+
}
|
|
89
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
90
|
+
0 && (module.exports = {
|
|
91
|
+
SignageAPI,
|
|
92
|
+
createSignageAPI
|
|
93
|
+
});
|