@calmlens/sdk 0.16.2 → 0.17.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.
- package/README.md +399 -162
- package/cjs/BrowserUpload-DZ0Vbmxi.js +10 -0
- package/cjs/BrowserUpload-uZjVFGfP.d.ts +11 -0
- package/cjs/CalmLensAppClient-CV_K26Ce.d.ts +40 -0
- package/cjs/CalmLensAppClient-DBGmaDlG.js +89 -0
- package/cjs/CalmLensConnection-K1TAD1Z-.js +659 -0
- package/cjs/CalmLensServerClient-C-pxiz0C.js +645 -0
- package/cjs/CalmLensServerClient-JtP687a3.d.ts +235 -0
- package/cjs/CalmLensTypes-9Vt16pc7.d.ts +40400 -0
- package/cjs/Classification-94kSYWZw-CMnQKW13.d.ts +5873 -0
- package/cjs/CryptoUtils-B_x8lMIx-YBW1-bvL.js +42 -0
- package/cjs/FileIcons-Ob003MdS.js +175 -0
- package/cjs/Jurisdiction-FusEXb4U-zVs21tDv.js +91 -0
- package/cjs/ModerationContext-9lGm-Mna-CcmbRnOy.d.ts +67 -0
- package/cjs/ModerationContextLimits-Dj1YAl3G.js +1311 -0
- package/cjs/ReactUpload-DxtFMr06.js +54 -0
- package/cjs/ReactUpload-nZahpmyg.d.ts +17 -0
- package/cjs/TestTriggers-By07LR31-CmK0yTyR.d.ts +271 -0
- package/cjs/TestTriggers-DcArt0Nu-CvoaONUB.js +1326 -0
- package/cjs/UploadController-BBkN4Ni6.js +618 -0
- package/{esm/index-C9Xw1aid.d.ts → cjs/WebhookPayload-2aL31v0J.d.ts} +131 -155
- package/cjs/app.d.ts +7 -44
- package/cjs/app.js +11 -89
- package/cjs/elements.d.ts +88 -0
- package/cjs/elements.js +555 -0
- package/cjs/file-icons.d.ts +67 -0
- package/cjs/file-icons.js +10 -0
- package/cjs/index-CI4BzN4W.d.ts +252 -0
- package/cjs/index.d.ts +6 -4
- package/cjs/index.js +9 -4
- package/cjs/react-native.d.ts +56 -0
- package/cjs/react-native.js +495 -0
- package/cjs/react.d.ts +30 -0
- package/cjs/react.js +370 -0
- package/cjs/server.d.ts +12 -191
- package/cjs/server.js +18 -378
- package/cjs/test-inputs.d.ts +2 -2
- package/cjs/test-inputs.js +9 -264
- package/cjs/testing.d.ts +285 -190
- package/cjs/testing.js +2393 -1203
- package/cjs/ui-CgZpgpNo.d.ts +526 -0
- package/cjs/ui-KceuoVCM.js +583 -0
- package/cjs/ui.d.ts +2 -0
- package/cjs/ui.js +27 -0
- package/cjs/vue.d.ts +490 -0
- package/cjs/vue.js +419 -0
- package/esm/BrowserUpload-D7-zNmc0.js +5 -0
- package/esm/BrowserUpload-uZjVFGfP.d.ts +11 -0
- package/esm/CalmLensAppClient-CV_K26Ce.d.ts +40 -0
- package/esm/CalmLensAppClient-FVMwrHlH.js +84 -0
- package/esm/CalmLensConnection-iyNQHA8L.js +582 -0
- package/esm/CalmLensServerClient-JtP687a3.d.ts +235 -0
- package/esm/CalmLensServerClient-fQEYKLw4.js +586 -0
- package/esm/CalmLensTypes-9Vt16pc7.d.ts +40400 -0
- package/esm/Classification-94kSYWZw-CMnQKW13.d.ts +5873 -0
- package/esm/CryptoUtils-B_x8lMIx-DhuWGzqn.js +25 -0
- package/esm/FileIcons-M6dzjFxd.js +128 -0
- package/esm/Jurisdiction-FusEXb4U-1ov6m5yE.js +46 -0
- package/esm/ModerationContext-9lGm-Mna-CcmbRnOy.d.ts +67 -0
- package/esm/ModerationContextLimits-D1x_WAtP.js +1114 -0
- package/esm/ReactUpload-D6yBCkcw.js +37 -0
- package/esm/ReactUpload-nZahpmyg.d.ts +17 -0
- package/esm/TestTriggers-By07LR31-CmK0yTyR.d.ts +271 -0
- package/esm/TestTriggers-DcArt0Nu-s0AQZuWE.js +1266 -0
- package/esm/UploadController-txp5NuzH.js +589 -0
- package/{cjs/index-C9Xw1aid.d.ts → esm/WebhookPayload-2aL31v0J.d.ts} +131 -155
- package/esm/app.d.ts +7 -44
- package/esm/app.js +3 -86
- package/esm/elements.d.ts +88 -0
- package/esm/elements.js +528 -0
- package/esm/file-icons.d.ts +67 -0
- package/esm/file-icons.js +1 -0
- package/esm/index-CI4BzN4W.d.ts +252 -0
- package/esm/index.d.ts +6 -4
- package/esm/index.js +1 -1
- package/esm/react-native.d.ts +56 -0
- package/esm/react-native.js +467 -0
- package/esm/react.d.ts +30 -0
- package/esm/react.js +343 -0
- package/esm/server.d.ts +12 -191
- package/esm/server.js +3 -369
- package/esm/styles.css +147 -0
- package/esm/svelte/CalmLensMedia.svelte +134 -0
- package/esm/svelte/CalmLensUploader.svelte +175 -0
- package/esm/svelte/Icon.svelte +7 -0
- package/esm/svelte/index.d.ts +37 -0
- package/esm/svelte/index.js +6 -0
- package/esm/test-inputs.d.ts +2 -2
- package/esm/test-inputs.js +1 -256
- package/esm/testing.d.ts +285 -190
- package/esm/testing.js +2329 -1122
- package/esm/ui-Ca_SpJXf.js +458 -0
- package/esm/ui-CgZpgpNo.d.ts +526 -0
- package/esm/ui.d.ts +2 -0
- package/esm/ui.js +3 -0
- package/esm/vue.d.ts +490 -0
- package/esm/vue.js +392 -0
- package/package.json +110 -11
- package/cjs/CalmLensConnection-5Hj3trGr.js +0 -234
- package/cjs/CalmLensUtils-BeIl1N6N.js +0 -699
- package/cjs/CalmLensVersion-BGpB9t4-.js +0 -480
- package/cjs/CalmLensWebhooks-CogUYk8-.js +0 -201
- package/cjs/Classification-BNhgwGEm-DmA9VEuE.d.ts +0 -4806
- package/cjs/TestTriggers-CRKtulyp-vrzEq2wm.d.ts +0 -44
- package/cjs/WebhookPayload-CJoIkGBD.d.ts +0 -11753
- package/esm/CalmLensConnection-BAJdoZHy.js +0 -193
- package/esm/CalmLensUtils-DqniTKJ8.js +0 -574
- package/esm/CalmLensVersion-l_khh4nS.js +0 -415
- package/esm/CalmLensWebhooks-BtrKKLvg.js +0 -148
- package/esm/Classification-BNhgwGEm-DmA9VEuE.d.ts +0 -4806
- package/esm/TestTriggers-CRKtulyp-vrzEq2wm.d.ts +0 -44
- package/esm/WebhookPayload-CJoIkGBD.d.ts +0 -11753
package/esm/react.js
ADDED
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { _ as getMediaState, a as getMediaAspectRatio, b as ICONS, c as describeUploadItem, d as formatMessage, f as getDropzoneHint, g as resolveMessages, h as getUploadItemOutcome, i as resolveTheme, l as describeUploader, m as getUploadItemMessage, n as CALMLENS_STYLES_ID, o as getMediaLoadKey, p as getMediaUnavailableMessage, r as CALMLENS_THEME, s as DEFAULT_MESSAGES, t as CALMLENS_STYLES, u as formatBytes, v as pickMediaSource, x as ICON_ATTRIBUTES, y as resolveMediaProps } from "./ui-Ca_SpJXf.js";
|
|
3
|
+
import { i as createProgressFetch, r as isFileAccepted, t as UploadController } from "./UploadController-txp5NuzH.js";
|
|
4
|
+
import { n as useOwnController, r as useUploadSnapshot, t as useCalmLensUpload$1 } from "./ReactUpload-D6yBCkcw.js";
|
|
5
|
+
import { t as createUploadController } from "./BrowserUpload-D7-zNmc0.js";
|
|
6
|
+
import { useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
// src/react.tsx
|
|
9
|
+
/**
|
|
10
|
+
* Uploads files through an upload preset and re-renders as each one uploads and is checked. Use
|
|
11
|
+
* it to build your own upload UI; `CalmLensUploader` is built on it. Uploads still running when
|
|
12
|
+
* the component unmounts are cancelled.
|
|
13
|
+
*/
|
|
14
|
+
const useCalmLensUpload = (options) => useCalmLensUpload$1(options);
|
|
15
|
+
const joinClassNames = (...names) => names.filter(Boolean).join(" ");
|
|
16
|
+
const Icon = ({ name }) => {
|
|
17
|
+
const { "stroke-width": strokeWidth, "stroke-linecap": strokeLinecap, "stroke-linejoin": strokeLinejoin, "aria-hidden": ariaHidden, ...rest } = ICON_ATTRIBUTES;
|
|
18
|
+
return /* @__PURE__ */ jsx("svg", {
|
|
19
|
+
...rest,
|
|
20
|
+
strokeWidth,
|
|
21
|
+
strokeLinecap,
|
|
22
|
+
strokeLinejoin,
|
|
23
|
+
"aria-hidden": ariaHidden,
|
|
24
|
+
children: /* @__PURE__ */ jsx("path", { d: ICONS[name] })
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* The components' stylesheet, rendered with them: React hoists it into the document head, on the
|
|
29
|
+
* server as well as in the browser, and adds it once however many components render.
|
|
30
|
+
*/
|
|
31
|
+
const CalmLensStyles = ({ unstyled }) => unstyled ? null : /* @__PURE__ */ jsx("style", {
|
|
32
|
+
href: CALMLENS_STYLES_ID,
|
|
33
|
+
precedence: "calmlens",
|
|
34
|
+
children: CALMLENS_STYLES
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* A drop zone and file list that uploads through an upload preset, shows each file's progress
|
|
38
|
+
* and moderation decision, and reports finished uploads to `onUploaded`.
|
|
39
|
+
*/
|
|
40
|
+
function CalmLensUploader({ disabled, capture, messages: overrides, unstyled, controller: external, className, style, ...options }) {
|
|
41
|
+
const own = useOwnController(options, !external);
|
|
42
|
+
const upload = useUploadSnapshot(external ?? own);
|
|
43
|
+
const { accept, multiple } = upload.controller.options;
|
|
44
|
+
const messages = useMemo(() => resolveMessages(overrides), [overrides]);
|
|
45
|
+
const view = describeUploader(upload, upload.controller.options, messages);
|
|
46
|
+
const [dragging, setDragging] = useState(false);
|
|
47
|
+
const input = useRef(null);
|
|
48
|
+
const openPicker = () => {
|
|
49
|
+
if (!disabled) input.current?.click();
|
|
50
|
+
};
|
|
51
|
+
const onDragOver = (event) => {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
if (!disabled) setDragging(true);
|
|
54
|
+
};
|
|
55
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
56
|
+
className: joinClassNames("calmlens-uploader", className),
|
|
57
|
+
style,
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ jsx(CalmLensStyles, { unstyled }),
|
|
60
|
+
view.showDropzone && /* @__PURE__ */ jsxs("div", {
|
|
61
|
+
className: "calmlens-dropzone",
|
|
62
|
+
"data-dragging": dragging || void 0,
|
|
63
|
+
"data-disabled": disabled || void 0,
|
|
64
|
+
onClick: openPicker,
|
|
65
|
+
onDragOver,
|
|
66
|
+
onDragEnter: onDragOver,
|
|
67
|
+
onDragLeave: (event) => {
|
|
68
|
+
if (!event.currentTarget.contains(event.relatedTarget)) setDragging(false);
|
|
69
|
+
},
|
|
70
|
+
onDrop: (event) => {
|
|
71
|
+
event.preventDefault();
|
|
72
|
+
setDragging(false);
|
|
73
|
+
if (!disabled) upload.addFiles(event.dataTransfer.files);
|
|
74
|
+
},
|
|
75
|
+
onPaste: (event) => {
|
|
76
|
+
if (!disabled && event.clipboardData.files.length) upload.addFiles(event.clipboardData.files);
|
|
77
|
+
},
|
|
78
|
+
children: [
|
|
79
|
+
/* @__PURE__ */ jsx("span", {
|
|
80
|
+
className: "calmlens-dropzone__icon",
|
|
81
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "upload" })
|
|
82
|
+
}),
|
|
83
|
+
/* @__PURE__ */ jsxs("div", {
|
|
84
|
+
className: "calmlens-dropzone__text",
|
|
85
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
86
|
+
className: "calmlens-dropzone__title",
|
|
87
|
+
children: dragging ? messages.dropzoneTitleDragging : messages.dropzoneTitle
|
|
88
|
+
}), view.hint && /* @__PURE__ */ jsx("p", {
|
|
89
|
+
className: "calmlens-dropzone__hint",
|
|
90
|
+
children: view.hint
|
|
91
|
+
})]
|
|
92
|
+
}),
|
|
93
|
+
/* @__PURE__ */ jsx("button", {
|
|
94
|
+
type: "button",
|
|
95
|
+
className: "calmlens-button",
|
|
96
|
+
"data-variant": "outline",
|
|
97
|
+
disabled,
|
|
98
|
+
onClick: (event) => {
|
|
99
|
+
event.stopPropagation();
|
|
100
|
+
openPicker();
|
|
101
|
+
},
|
|
102
|
+
children: view.chooseLabel
|
|
103
|
+
})
|
|
104
|
+
]
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ jsx("input", {
|
|
107
|
+
ref: input,
|
|
108
|
+
type: "file",
|
|
109
|
+
hidden: true,
|
|
110
|
+
accept,
|
|
111
|
+
multiple,
|
|
112
|
+
capture,
|
|
113
|
+
disabled,
|
|
114
|
+
onChange: (event) => {
|
|
115
|
+
if (event.target.files) upload.addFiles(event.target.files);
|
|
116
|
+
event.target.value = "";
|
|
117
|
+
}
|
|
118
|
+
}),
|
|
119
|
+
upload.items.length > 0 && /* @__PURE__ */ jsx("ul", {
|
|
120
|
+
className: "calmlens-uploads",
|
|
121
|
+
children: upload.items.map((item) => {
|
|
122
|
+
const itemView = describeUploadItem(item, messages);
|
|
123
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
124
|
+
className: "calmlens-upload",
|
|
125
|
+
"data-stage": item.stage,
|
|
126
|
+
"data-outcome": itemView.outcome,
|
|
127
|
+
children: [
|
|
128
|
+
item.previewUrl ? /* @__PURE__ */ jsx("img", {
|
|
129
|
+
className: "calmlens-upload__thumb",
|
|
130
|
+
src: item.previewUrl,
|
|
131
|
+
alt: ""
|
|
132
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
133
|
+
className: "calmlens-upload__thumb",
|
|
134
|
+
"data-kind": "file",
|
|
135
|
+
"aria-hidden": "true",
|
|
136
|
+
dangerouslySetInnerHTML: { __html: itemView.fileIcon }
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ jsxs("div", {
|
|
139
|
+
className: "calmlens-upload__body",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ jsx("span", {
|
|
142
|
+
className: "calmlens-upload__name",
|
|
143
|
+
children: item.file.name
|
|
144
|
+
}),
|
|
145
|
+
/* @__PURE__ */ jsx("span", {
|
|
146
|
+
className: "calmlens-upload__size",
|
|
147
|
+
children: itemView.size
|
|
148
|
+
}),
|
|
149
|
+
itemView.busy && /* @__PURE__ */ jsx("div", {
|
|
150
|
+
className: "calmlens-progress",
|
|
151
|
+
role: "progressbar",
|
|
152
|
+
"aria-label": itemView.message,
|
|
153
|
+
"aria-valuemin": 0,
|
|
154
|
+
"aria-valuemax": 100,
|
|
155
|
+
"aria-valuenow": itemView.progressPercent,
|
|
156
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
157
|
+
className: "calmlens-progress__bar",
|
|
158
|
+
style: itemView.progressPercent === void 0 ? void 0 : { width: `${itemView.progressPercent}%` }
|
|
159
|
+
})
|
|
160
|
+
}),
|
|
161
|
+
itemView.message && /* @__PURE__ */ jsx("p", {
|
|
162
|
+
className: "calmlens-upload__message",
|
|
163
|
+
role: "status",
|
|
164
|
+
children: itemView.message
|
|
165
|
+
})
|
|
166
|
+
]
|
|
167
|
+
}),
|
|
168
|
+
/* @__PURE__ */ jsxs("div", {
|
|
169
|
+
className: "calmlens-upload__actions",
|
|
170
|
+
children: [
|
|
171
|
+
!view.showDropzone && /* @__PURE__ */ jsx("button", {
|
|
172
|
+
type: "button",
|
|
173
|
+
className: "calmlens-button",
|
|
174
|
+
"data-variant": "outline",
|
|
175
|
+
"data-size": "small",
|
|
176
|
+
disabled,
|
|
177
|
+
onClick: openPicker,
|
|
178
|
+
children: messages.chooseAnother
|
|
179
|
+
}),
|
|
180
|
+
itemView.canRetry && /* @__PURE__ */ jsx("button", {
|
|
181
|
+
type: "button",
|
|
182
|
+
className: "calmlens-icon-button",
|
|
183
|
+
"aria-label": messages.retry,
|
|
184
|
+
title: messages.retry,
|
|
185
|
+
onClick: () => upload.retry(item.key),
|
|
186
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "retry" })
|
|
187
|
+
}),
|
|
188
|
+
/* @__PURE__ */ jsx("button", {
|
|
189
|
+
type: "button",
|
|
190
|
+
className: "calmlens-icon-button",
|
|
191
|
+
"aria-label": itemView.removeLabel,
|
|
192
|
+
title: itemView.removeLabel,
|
|
193
|
+
onClick: () => upload.remove(item.key),
|
|
194
|
+
children: /* @__PURE__ */ jsx(Icon, { name: "remove" })
|
|
195
|
+
})
|
|
196
|
+
]
|
|
197
|
+
})
|
|
198
|
+
]
|
|
199
|
+
}, item.key);
|
|
200
|
+
})
|
|
201
|
+
})
|
|
202
|
+
]
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Shows an asset from the CalmLens CDN with responsive widths and a blurred placeholder while
|
|
207
|
+
* it loads. Age-restricted assets stay behind the placeholder and a reveal button until
|
|
208
|
+
* `ageConfirmed` is set; blocked and purged assets show an unavailable notice.
|
|
209
|
+
*/
|
|
210
|
+
function CalmLensMedia(input) {
|
|
211
|
+
const { asset: _asset, projectId, assetId, status, contentRemoved, type, resource, lens, transform, widths, url, placeholder, placeholderHash, placeholderUrl: customPlaceholderUrl, cdnBaseUrl, viewerClaims, alt = "", aspectRatio, width, height, sizes, averageColor, fit, position, lazy = true, fetchPriority, controls = true, messages: overrides, unstyled, onReveal, className, style, ...attributes } = resolveMediaProps(input);
|
|
212
|
+
const messages = useMemo(() => resolveMessages(overrides), [overrides]);
|
|
213
|
+
const state = getMediaState({
|
|
214
|
+
asset: _asset,
|
|
215
|
+
projectId,
|
|
216
|
+
assetId,
|
|
217
|
+
status,
|
|
218
|
+
contentRemoved,
|
|
219
|
+
type,
|
|
220
|
+
resource,
|
|
221
|
+
lens,
|
|
222
|
+
transform,
|
|
223
|
+
widths,
|
|
224
|
+
url,
|
|
225
|
+
placeholder,
|
|
226
|
+
placeholderHash,
|
|
227
|
+
placeholderUrl: customPlaceholderUrl,
|
|
228
|
+
cdnBaseUrl,
|
|
229
|
+
viewerClaims
|
|
230
|
+
});
|
|
231
|
+
const loadKey = getMediaLoadKey(state);
|
|
232
|
+
const [load, setLoad] = useState({
|
|
233
|
+
key: loadKey,
|
|
234
|
+
state: "loading"
|
|
235
|
+
});
|
|
236
|
+
const current = load.key === loadKey ? load : {
|
|
237
|
+
key: loadKey,
|
|
238
|
+
state: "loading"
|
|
239
|
+
};
|
|
240
|
+
const image = useRef(null);
|
|
241
|
+
useEffect(() => {
|
|
242
|
+
if (image.current?.complete && image.current.naturalWidth > 0) setLoad({
|
|
243
|
+
key: loadKey,
|
|
244
|
+
state: "loaded"
|
|
245
|
+
});
|
|
246
|
+
}, [loadKey]);
|
|
247
|
+
const ratio = getMediaAspectRatio({
|
|
248
|
+
aspectRatio,
|
|
249
|
+
width,
|
|
250
|
+
height
|
|
251
|
+
});
|
|
252
|
+
const kind = current.state === "error" ? "unavailable" : state.kind;
|
|
253
|
+
const placeholderUrl = state.kind === "audio" || state.kind === "unavailable" ? void 0 : state.placeholderUrl;
|
|
254
|
+
const showPlaceholder = placeholderUrl && (state.kind === "gated" || state.kind === "image" && current.state !== "loaded");
|
|
255
|
+
return /* @__PURE__ */ jsxs("figure", {
|
|
256
|
+
...attributes,
|
|
257
|
+
className: joinClassNames("calmlens-media", className),
|
|
258
|
+
"data-kind": state.kind,
|
|
259
|
+
"data-state": current.state,
|
|
260
|
+
"data-sized": ratio ? "" : void 0,
|
|
261
|
+
style: {
|
|
262
|
+
aspectRatio: ratio,
|
|
263
|
+
backgroundColor: averageColor,
|
|
264
|
+
"--calmlens-fit": fit,
|
|
265
|
+
"--calmlens-position": position,
|
|
266
|
+
...style
|
|
267
|
+
},
|
|
268
|
+
children: [
|
|
269
|
+
/* @__PURE__ */ jsx(CalmLensStyles, { unstyled }),
|
|
270
|
+
showPlaceholder && /* @__PURE__ */ jsx("img", {
|
|
271
|
+
className: "calmlens-media__placeholder",
|
|
272
|
+
src: placeholderUrl,
|
|
273
|
+
alt: "",
|
|
274
|
+
"aria-hidden": "true"
|
|
275
|
+
}),
|
|
276
|
+
state.kind === "image" && current.state !== "error" && /* @__PURE__ */ jsx("img", {
|
|
277
|
+
ref: image,
|
|
278
|
+
className: "calmlens-media__content",
|
|
279
|
+
src: state.src,
|
|
280
|
+
srcSet: state.srcSet,
|
|
281
|
+
sizes,
|
|
282
|
+
alt,
|
|
283
|
+
width,
|
|
284
|
+
height,
|
|
285
|
+
loading: lazy ? "lazy" : void 0,
|
|
286
|
+
decoding: "async",
|
|
287
|
+
fetchPriority,
|
|
288
|
+
onLoad: () => setLoad({
|
|
289
|
+
key: loadKey,
|
|
290
|
+
state: "loaded"
|
|
291
|
+
}),
|
|
292
|
+
onError: () => setLoad({
|
|
293
|
+
key: loadKey,
|
|
294
|
+
state: "error"
|
|
295
|
+
})
|
|
296
|
+
}, loadKey),
|
|
297
|
+
state.kind === "video" && current.state !== "error" && /* @__PURE__ */ jsx("video", {
|
|
298
|
+
className: "calmlens-media__content",
|
|
299
|
+
src: state.src,
|
|
300
|
+
controls,
|
|
301
|
+
playsInline: true,
|
|
302
|
+
preload: "metadata",
|
|
303
|
+
"aria-label": alt || void 0,
|
|
304
|
+
onError: () => setLoad({
|
|
305
|
+
key: loadKey,
|
|
306
|
+
state: "error"
|
|
307
|
+
})
|
|
308
|
+
}),
|
|
309
|
+
state.kind === "audio" && current.state !== "error" && /* @__PURE__ */ jsx("audio", {
|
|
310
|
+
className: "calmlens-media__content",
|
|
311
|
+
src: state.src,
|
|
312
|
+
controls,
|
|
313
|
+
preload: "metadata",
|
|
314
|
+
"aria-label": alt || void 0,
|
|
315
|
+
onError: () => setLoad({
|
|
316
|
+
key: loadKey,
|
|
317
|
+
state: "error"
|
|
318
|
+
})
|
|
319
|
+
}),
|
|
320
|
+
state.kind === "gated" && /* @__PURE__ */ jsxs("figcaption", {
|
|
321
|
+
className: "calmlens-media__notice",
|
|
322
|
+
children: [
|
|
323
|
+
/* @__PURE__ */ jsx("strong", { children: messages.sensitiveTitle }),
|
|
324
|
+
/* @__PURE__ */ jsx("p", { children: messages.sensitiveBody }),
|
|
325
|
+
onReveal && /* @__PURE__ */ jsx("button", {
|
|
326
|
+
type: "button",
|
|
327
|
+
className: "calmlens-button",
|
|
328
|
+
onClick: onReveal,
|
|
329
|
+
children: messages.reveal
|
|
330
|
+
})
|
|
331
|
+
]
|
|
332
|
+
}),
|
|
333
|
+
kind === "unavailable" && /* @__PURE__ */ jsx("figcaption", {
|
|
334
|
+
className: "calmlens-media__notice",
|
|
335
|
+
children: /* @__PURE__ */ jsxs("p", { children: [/* @__PURE__ */ jsx(Icon, { name: "unavailable" }), /* @__PURE__ */ jsx("span", {
|
|
336
|
+
className: "calmlens-media__label",
|
|
337
|
+
children: getMediaUnavailableMessage(state, messages)
|
|
338
|
+
})] })
|
|
339
|
+
})
|
|
340
|
+
]
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
export { CALMLENS_STYLES, CALMLENS_THEME, CalmLensMedia, CalmLensUploader, DEFAULT_MESSAGES, ICONS, ICON_ATTRIBUTES, UploadController, createProgressFetch, createUploadController, describeUploadItem, describeUploader, formatBytes, formatMessage, getDropzoneHint, getMediaAspectRatio, getMediaLoadKey, getMediaState, getMediaUnavailableMessage, getUploadItemMessage, getUploadItemOutcome, isFileAccepted, pickMediaSource, resolveMediaProps, resolveMessages, resolveTheme, useCalmLensUpload };
|
package/esm/server.d.ts
CHANGED
|
@@ -1,192 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { _ as
|
|
3
|
-
import { a as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
readonly pendingEnsureLenses: Map<string, Promise<void>>;
|
|
8
|
-
}
|
|
9
|
-
declare const inspectSymbol: unique symbol;
|
|
10
|
-
/**
|
|
11
|
-
* The CalmLens API client for your server, authenticated with a project API key. Create one per
|
|
12
|
-
* project and reuse it; it holds no connections. Every method takes one options object and
|
|
13
|
-
* throws `CalmLensError` on failure. Browsers and apps upload with `CalmLensAppClient` instead.
|
|
14
|
-
*/
|
|
15
|
-
declare class CalmLensServerClient {
|
|
16
|
-
#private;
|
|
17
|
-
/**
|
|
18
|
-
* Verifies that a webhook delivery came from CalmLens: checks the `v1=` HMAC-SHA256 in
|
|
19
|
-
* `x-calmlens-signature` over `"<x-calmlens-timestamp>.<raw body>"` and rejects timestamps
|
|
20
|
-
* more than `toleranceSeconds` (default 300) from now, which stops replayed deliveries.
|
|
21
|
-
* Also exported as `verifyWebhookSignature`; `parseWebhookEvent` verifies and parses.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```ts
|
|
25
|
-
* const payload = await request.text();
|
|
26
|
-
* const isValid = await CalmLensServerClient.verifyWebhookSignature({
|
|
27
|
-
* payload,
|
|
28
|
-
* headers: request.headers,
|
|
29
|
-
* secret: process.env.CALMLENS_WEBHOOK_SECRET!,
|
|
30
|
-
* });
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
static verifyWebhookSignature(options: VerifyWebhookSignatureOptions): Promise<boolean>;
|
|
34
|
-
constructor(options: CalmLensServerClientOptions, lenses?: LensCache);
|
|
35
|
-
/**
|
|
36
|
-
* A client with different cancellation, deadlines or retries for the calls made through it,
|
|
37
|
-
* sharing this client's credentials and lens cache. This client is unchanged.
|
|
38
|
-
*/
|
|
39
|
-
withRequestOptions(options: RequestOptions): CalmLensServerClient;
|
|
40
|
-
/** Keeps the API key out of `console.log`, `util.inspect` and `JSON.stringify`. */
|
|
41
|
-
[inspectSymbol](): string;
|
|
42
|
-
toJSON(): {
|
|
43
|
-
projectId: string;
|
|
44
|
-
baseUrl: string;
|
|
45
|
-
cdnBaseUrl: string;
|
|
46
|
-
};
|
|
47
|
-
private get projectPath();
|
|
48
|
-
private request;
|
|
49
|
-
private submitAsset;
|
|
50
|
-
get cdn(): {
|
|
51
|
-
/**
|
|
52
|
-
* Builds a CDN URL for asset content or a preview, without a request. Private assets
|
|
53
|
-
* need a signed URL (`assets.createSignedUrl`) or an authenticated request.
|
|
54
|
-
*/
|
|
55
|
-
getAssetUrl: ({ assetIdentifier, ...options }: CdnAssetUrlOptions) => string;
|
|
56
|
-
/**
|
|
57
|
-
* Fetches asset content or a preview from the CDN with the client's API key, and returns
|
|
58
|
-
* the `Response` as soon as headers arrive, so the body streams. Non-2xx responses are
|
|
59
|
-
* returned, not thrown; `timeoutMs` covers only the wait for headers.
|
|
60
|
-
*/
|
|
61
|
-
serve: ({ assetIdentifier, init, ...urlOptions }: CdnServeOptions) => Promise<Response>;
|
|
62
|
-
};
|
|
63
|
-
get text(): {
|
|
64
|
-
/**
|
|
65
|
-
* Moderates text and waits for the decision. Sends `text` as `text/plain` content named
|
|
66
|
-
* `text` unless you pass `name`.
|
|
67
|
-
*/
|
|
68
|
-
moderate: (options: ModerateTextOptions) => Promise<Asset>;
|
|
69
|
-
};
|
|
70
|
-
/** Assets: uploads, moderation and management. */
|
|
71
|
-
get assets(): {
|
|
72
|
-
/** Searches accessible assets by keyword or a natural-language description. */
|
|
73
|
-
search: (options: Partial<AssetSearchQuery> & {
|
|
74
|
-
query: string;
|
|
75
|
-
}) => Promise<AssetSearchResponse>;
|
|
76
|
-
/** Lists one page of the project's assets, with optional filter and ordering. */
|
|
77
|
-
list: (options?: ListAssetsOptions) => Promise<AssetPage>;
|
|
78
|
-
/**
|
|
79
|
-
* Yields every asset matching `options`, fetching pages as needed. The cursor keeps the position
|
|
80
|
-
* stable when other assets are inserted or deleted.
|
|
81
|
-
*/
|
|
82
|
-
iterate: (options?: IterateAssetsOptions) => AsyncGenerator<Asset, void, undefined>;
|
|
83
|
-
/** Retrieves an asset with its status and moderation report. */
|
|
84
|
-
retrieve: ({ assetId }: RetrieveAssetOptions) => Promise<Asset>;
|
|
85
|
-
/** Updates an asset's editable fields. */
|
|
86
|
-
update: ({ assetId, ...body }: UpdateAssetOptions) => Promise<Asset>;
|
|
87
|
-
/** Lists one page of the assets extracted from a website or multimedia document. */
|
|
88
|
-
listChildren: ({ assetId, ...options }?: ListAssetChildrenOptions) => Promise<AssetChildrenPage>;
|
|
89
|
-
/** Yields every child of an asset, fetching pages as needed. */
|
|
90
|
-
iterateChildren: (options: IterateAssetChildrenOptions) => AsyncGenerator<Asset, void, undefined>;
|
|
91
|
-
/**
|
|
92
|
-
* Uploads an asset and queues it for moderation, returning immediately with processing
|
|
93
|
-
* status `processing` (or `uploading` for the first multipart part). Retried safely with an
|
|
94
|
-
* `Idempotency-Key`.
|
|
95
|
-
*/
|
|
96
|
-
create: (options: SubmitAssetOptions) => Promise<Asset>;
|
|
97
|
-
/**
|
|
98
|
-
* Uploads an asset and waits for its moderation decision. Audio and video still finish
|
|
99
|
-
* in the background. Retried safely with an `Idempotency-Key`.
|
|
100
|
-
*/
|
|
101
|
-
moderate: (options: SubmitAssetOptions) => Promise<Asset>;
|
|
102
|
-
/**
|
|
103
|
-
* Uploads the next part of a multipart upload. The upload's queue mode, chosen when it
|
|
104
|
-
* started, applies when the final part arrives; pass `queue` to override it.
|
|
105
|
-
*/
|
|
106
|
-
uploadPart: ({ assetId, ...options }: UploadAssetPartOptions) => Promise<Asset>;
|
|
107
|
-
/**
|
|
108
|
-
* Creates a short-lived signed CDN URL, so browsers can load private content without
|
|
109
|
-
* an API key.
|
|
110
|
-
*/
|
|
111
|
-
createSignedUrl: ({ assetId, ...options }: CreateAssetSignedUrlOptions) => Promise<PostAssetSignedUrlResponse>;
|
|
112
|
-
/** Moves an asset into a folder, or to the project root with `folderId: null`. */
|
|
113
|
-
move: ({ assetId, folderId }: MoveAssetOptions) => Promise<Asset>;
|
|
114
|
-
/**
|
|
115
|
-
* Processes an asset that failed (processing status `failed`) again. It returns to
|
|
116
|
-
* `processing` and is
|
|
117
|
-
* moderated like a new upload; its content must still be stored.
|
|
118
|
-
*/
|
|
119
|
-
retry: ({ assetId }: RetryAssetOptions) => Promise<Asset>;
|
|
120
|
-
/**
|
|
121
|
-
* Waits until an asset's `moderation.status` is `approved` or `rejected`, or its
|
|
122
|
-
* `processing.status` is `failed`, and returns that asset, checking every few seconds. Rejects with `sdk/timeout` if there is no
|
|
123
|
-
* decision within `timeoutMs` (default 60000). Webhooks report decisions without polling.
|
|
124
|
-
*/
|
|
125
|
-
waitForDecision: ({ assetId, ...options }: WaitForAssetDecisionOptions) => Promise<Asset>;
|
|
126
|
-
/**
|
|
127
|
-
* Removes an asset's stored content (source, preview and retained extracted text) while
|
|
128
|
-
* keeping the asset record, metadata and moderation report. The returned asset has
|
|
129
|
-
* `storageDeletedAt` set; the CDN no longer serves it.
|
|
130
|
-
*/
|
|
131
|
-
deleteContent: ({ assetId }: DeleteAssetContentOptions) => Promise<Asset>;
|
|
132
|
-
/** Deletes an asset record together with its stored content. */
|
|
133
|
-
delete: ({ assetId }: DeleteAssetOptions) => Promise<void>;
|
|
134
|
-
};
|
|
135
|
-
/**
|
|
136
|
-
* Signs upload tokens on your server, so a browser or app can upload through an upload preset
|
|
137
|
-
* that requires one. Signing happens locally with your API key: it makes no request.
|
|
138
|
-
*/
|
|
139
|
-
get uploadTokens(): {
|
|
140
|
-
/**
|
|
141
|
-
* Signs a single-use token for one upload through `uploadPresetId`. Give `token` to the
|
|
142
|
-
* browser or app, which passes it to `CalmLensAppClient` as `token`.
|
|
143
|
-
*/
|
|
144
|
-
sign: (options: SignUploadTokenOptions) => Promise<SignedUploadToken>;
|
|
145
|
-
};
|
|
146
|
-
private buildAssets;
|
|
147
|
-
get events(): {
|
|
148
|
-
/**
|
|
149
|
-
* Lists project events after a cursor, oldest first. Call without `after` to get a cursor
|
|
150
|
-
* for "now", then poll with the returned `cursor`. Webhook deliveries carry the same events
|
|
151
|
-
* reshaped as `{ id, type, createdAt, projectId, data }`.
|
|
152
|
-
*/
|
|
153
|
-
list: (options?: ListEventsOptions) => Promise<GetEventsResponse>;
|
|
154
|
-
/**
|
|
155
|
-
* Yields pages of events after `after` until no more are waiting. Save each page's
|
|
156
|
-
* `cursor` to resume later. Without `after`, yields one empty page whose cursor is "now".
|
|
157
|
-
*/
|
|
158
|
-
pages: (options?: ListEventsOptions) => AsyncGenerator<GetEventsResponse, void, undefined>;
|
|
159
|
-
};
|
|
160
|
-
private iterateEventPages;
|
|
161
|
-
private iteratePages;
|
|
162
|
-
get folders(): {
|
|
163
|
-
/** Lists every folder in the project. */
|
|
164
|
-
list: () => Promise<Folder[]>;
|
|
165
|
-
retrieve: ({ folderId }: FolderIdOptions) => Promise<Folder>;
|
|
166
|
-
/** Creates a folder at the project root or inside `parentId`. */
|
|
167
|
-
create: (options: CreateFolderOptions) => Promise<Folder>;
|
|
168
|
-
update: ({ folderId, ...body }: UpdateFolderOptions) => Promise<Folder>;
|
|
169
|
-
/** Deletes an empty folder; throws `folder/not-empty` otherwise. */
|
|
170
|
-
delete: ({ folderId }: FolderIdOptions) => Promise<void>;
|
|
171
|
-
/** Moves a folder under `parentId`, or to the project root with `parentId: null`. */
|
|
172
|
-
move: ({ folderId, parentId }: MoveFolderOptions) => Promise<Folder>;
|
|
173
|
-
};
|
|
174
|
-
/**
|
|
175
|
-
* Create a named lens at any positive version, or update it with a greater version.
|
|
176
|
-
* Supplying the same definition and version is idempotent.
|
|
177
|
-
*/
|
|
178
|
-
ensureLens(options: EnsureLensOptions): Promise<Lens>;
|
|
179
|
-
/**
|
|
180
|
-
* Create or update several named lenses. New definitions are sent in one API request, or in
|
|
181
|
-
* consecutive requests of at most {@link ENSURE_LENSES_MAX_PER_REQUEST} definitions, in order.
|
|
182
|
-
* Each lens follows the same versioning and idempotency rules as ensureLens().
|
|
183
|
-
*/
|
|
184
|
-
ensureLenses({ lenses }: EnsureLensesOptions): Promise<Lens[]>;
|
|
185
|
-
private submitEnsureLenses;
|
|
186
|
-
private submitEnsureLensesChunk;
|
|
187
|
-
}
|
|
188
|
-
//#endregion
|
|
189
|
-
//#region src/client/CalmLensWebhooks.d.ts
|
|
1
|
+
import { a as selectModerationContextItems, i as ModerationContextItem, n as MODERATION_CONTEXT_USED_CHARACTERS, o as HashList, r as MODERATION_CONTEXT_USED_ITEMS, s as HashListEntry, t as ModerationContext } from "./ModerationContext-9lGm-Mna-CcmbRnOy.js";
|
|
2
|
+
import { $ as IterateAssetsOptions, $t as ExtractedText, A as ClassifyTextOptions, At as WebhookPayloadInput, B as EnsureLensesOptions, Bt as EventSeverity, C as BatchAssetsResponse, Ct as UploadAssetPartOptions, D as CdnResource, Dt as ViewerClaims, E as CdnAssetUrlOptions, Et as VerifyWebhookSignatureOptions, F as CreateMultipartUploadPartOptions, Ft as TypedEvent, G as HashListEntryIdOptions, Gt as Order, H as FolderIdOptions, I as DecideAssetOptions, It as EventCategory, J as HashListPage, Jt as AssetSearchQuery, K as HashListEntryPage, Kt as LensType, L as DeleteAssetContentOptions, Lt as EventFact, M as CreateAssetSignedUrlOptions, Mt as GetEventsResponse, N as CreateFolderOptions, O as CdnServeOptions, Ot as WaitForAssetDecisionOptions, P as CreateHashListOptions, Pt as EventAsset, Q as IterateAssetChildrenOptions, Qt as AssetSafetyHoldReason, R as DeleteAssetOptions, Rt as EventFactValues, S as BatchAssetsOptions, St as UpdateHashListOptions, T as CalmLensServerClientOptions, Tt as UploadedAsset, Ut as Folder, V as ExplainAssetOptions, Vt as EventType, W as GetAssetUrlOptions, Wt as CursorPage, X as ImageTransform, Xt as AssetImage, Y as IdempotencyOptions, Z as ImageTransformOptions, Zt as AssetSafetyHold, _ as AssetSearchResult, _t as SignedUploadToken, a as AssetClassification, b as AssetUploadStatus, bt as UpdateAssetOptions, c as AssetContent, ct as MoveAssetOptions, d as AssetContentStatus, dt as MultipartUploadPartOptions, en as FileMetadata, et as Lens, f as AssetModeration, ft as RequestOptions, g as AssetSearchResponse, gt as SignUploadTokenOptions, h as AssetPage, ht as SearchAssetsOptions, i as AssetChildrenPage, it as ListEventsOptions, j as ConnectionOptions, jt as AssetBatchOperation, k as CdnTransform, kt as WebhookHeadersInput, l as AssetContentOptions, lt as MoveFolderOptions, m as AssetModerationStatus, mt as RetryAssetOptions, n as Asset, nn as ProcessingOptions, nt as ListAssetChildrenOptions, o as AssetClassificationFailureReason, ot as ListHashListEntriesOptions, p as AssetModerationDecision, pt as RetrieveAssetOptions, q as HashListIdOptions, qt as AssetSearchMatchField, r as AssetChecksums, rt as ListAssetsOptions, s as AssetClassificationStatus, st as ListHashListsOptions, t as AddHashListEntryOptions, tn as MetadataItem, tt as LensTransform, u as AssetContentRemovalReason, ut as MultipartUploadOptions, v as AssetType, vt as SignedUrl, w as CalmLensAppClientOptions, wt as UploadPresetSubmitAssetOptions, x as AssetVisibility, xt as UpdateFolderOptions, y as AssetUpload, yt as SubmitAssetOptions, z as EnsureLensOptions, zt as EventFacts } from "./CalmLensTypes-9Vt16pc7.js";
|
|
3
|
+
import { a as CalmLensErrorCode, c as SdkErrorCode, i as CalmLensError, l as ApiErrorCode, o as CalmLensErrorDetails, r as CALMLENS_ERROR_CODES, s as CalmLensErrorOptions, t as ReceivedWebhookEventPayload } from "./WebhookPayload-2aL31v0J.js";
|
|
4
|
+
import { a as ProcessingFeatureId, c as ProcessingFeatures, d as getAssetUrl, i as DetectedPerson, l as SDK_VERSION, n as BoundingBox, o as ProcessingFeatureResults, r as DetectedFace, s as ProcessingFeatureStage, t as AgeRange, u as DEFAULT_CDN_BASE_URL } from "./index-CI4BzN4W.js";
|
|
5
|
+
import { a as ClassificationNotEvaluatedReason, c as ModerationQualifier, i as ClassificationLabel, l as PolicyAction, n as ClassificationCategory, o as ClassificationQualifierResults, r as ClassificationCategoryReport, s as Likelihood, t as ClassificationCategories } from "./Classification-94kSYWZw-CMnQKW13.js";
|
|
6
|
+
import { t as CalmLensServerClient } from "./CalmLensServerClient-JtP687a3.js";
|
|
190
7
|
export declare const WEBHOOK_DELIVERY_HEADER = "x-calmlens-delivery";
|
|
191
8
|
export declare const WEBHOOK_TIMESTAMP_HEADER = "x-calmlens-timestamp";
|
|
192
9
|
export declare const WEBHOOK_SIGNATURE_HEADER = "x-calmlens-signature";
|
|
@@ -208,5 +25,9 @@ export declare function verifyWebhookSignature(options: VerifyWebhookSignatureOp
|
|
|
208
25
|
* so keep a default branch when you switch on `type`.
|
|
209
26
|
*/
|
|
210
27
|
export declare function parseWebhookEvent(options: VerifyWebhookSignatureOptions): Promise<ReceivedWebhookEventPayload>;
|
|
211
|
-
|
|
212
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Whether a webhook event is a test send from the portal or the CLI rather than a real event: it
|
|
30
|
+
* carries the registered `{ key: "test", value: true }` fact.
|
|
31
|
+
*/
|
|
32
|
+
export declare const isTestWebhookEvent: (event: Pick<ReceivedWebhookEventPayload, "facts">) => boolean;
|
|
33
|
+
export { type AddHashListEntryOptions, type AgeRange, type ApiErrorCode, type Asset, type AssetBatchOperation, type AssetChecksums, type AssetChildrenPage, type AssetClassification, type AssetClassificationFailureReason, type AssetClassificationStatus, type AssetContent, type AssetContentOptions, type AssetContentRemovalReason, type AssetContentStatus, type AssetImage, type AssetModeration, type AssetModerationDecision, type AssetModerationStatus, type AssetPage, type AssetSafetyHold, type AssetSafetyHoldReason, type AssetSearchMatchField, type AssetSearchQuery, type AssetSearchResponse, type AssetSearchResult, type AssetType, type AssetUpload, type AssetUploadStatus, type AssetVisibility, type BatchAssetsOptions, type BatchAssetsResponse, type BoundingBox, CALMLENS_ERROR_CODES, type CalmLensAppClientOptions, CalmLensError, type CalmLensErrorCode, type CalmLensErrorDetails, type CalmLensErrorOptions, CalmLensServerClient, type CalmLensServerClientOptions, type CdnAssetUrlOptions, type CdnResource, type CdnServeOptions, type CdnTransform, type ClassificationCategories, type ClassificationCategory, type ClassificationCategoryReport, type ClassificationLabel, type ClassificationNotEvaluatedReason, type ClassificationQualifierResults, type ClassifyTextOptions, type ConnectionOptions, type CreateAssetSignedUrlOptions, type CreateFolderOptions, type CreateHashListOptions, type CreateMultipartUploadPartOptions, type CursorPage, DEFAULT_CDN_BASE_URL, type DecideAssetOptions, type DeleteAssetContentOptions, type DeleteAssetOptions, type DetectedFace, type DetectedPerson, type EnsureLensOptions, type EnsureLensesOptions, type EventAsset, type EventCategory, type EventFact, type EventFactValues, type EventFacts, type EventSeverity, type EventType, type GetEventsResponse as EventsPage, type ExplainAssetOptions, type ExtractedText, type FileMetadata, type Folder, type FolderIdOptions, type GetAssetUrlOptions, type HashList, type HashListEntry, type HashListEntryIdOptions, type HashListEntryPage, type HashListIdOptions, type HashListPage, type IdempotencyOptions, type ImageTransform, type ImageTransformOptions, type IterateAssetChildrenOptions, type IterateAssetsOptions, type Lens, type LensTransform, type LensType, type Likelihood, type ListAssetChildrenOptions, type ListAssetsOptions, type ListEventsOptions, type ListHashListEntriesOptions, type ListHashListsOptions, MODERATION_CONTEXT_USED_CHARACTERS, MODERATION_CONTEXT_USED_ITEMS, type MetadataItem, type ModerationContext, type ModerationContextItem, type ModerationQualifier, type MoveAssetOptions, type MoveFolderOptions, type MultipartUploadOptions, type MultipartUploadPartOptions, type Order, type PolicyAction, type ProcessingFeatureId, type ProcessingFeatureResults, type ProcessingFeatureStage, type ProcessingFeatures, type ProcessingOptions, type RequestOptions, type RetrieveAssetOptions, type RetryAssetOptions, SDK_VERSION, type SdkErrorCode, type SearchAssetsOptions, type SignUploadTokenOptions, type SignedUploadToken, type SignedUrl, type SubmitAssetOptions, type TypedEvent, type UpdateAssetOptions, type UpdateFolderOptions, type UpdateHashListOptions, type UploadAssetPartOptions, type UploadPresetSubmitAssetOptions, type UploadedAsset, type VerifyWebhookSignatureOptions, type ViewerClaims, type WaitForAssetDecisionOptions, type ReceivedWebhookEventPayload as WebhookEventPayload, type WebhookHeadersInput, type WebhookPayloadInput, getAssetUrl, selectModerationContextItems };
|