sanity-plugin-mux-input 3.0.4 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +0 -2
  2. package/dist/index.d.ts +134 -193
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +2893 -4417
  5. package/dist/index.js.map +1 -1
  6. package/package.json +33 -43
  7. package/dist/index.cjs +0 -7270
  8. package/dist/index.cjs.map +0 -1
  9. package/dist/index.d.cts +0 -347
  10. package/sanity.json +0 -8
  11. package/src/_exports/index.ts +0 -73
  12. package/src/actions/assets.ts +0 -152
  13. package/src/actions/secrets.ts +0 -111
  14. package/src/actions/upload.ts +0 -310
  15. package/src/clients/upChunkObservable.ts +0 -54
  16. package/src/components/AddCaptionDialog.tsx +0 -440
  17. package/src/components/CaptionsDialog.tsx +0 -23
  18. package/src/components/ConfigureApi.styled.tsx +0 -19
  19. package/src/components/ConfigureApi.tsx +0 -296
  20. package/src/components/DraggableWatermark.tsx +0 -877
  21. package/src/components/EditCaptionDialog.tsx +0 -510
  22. package/src/components/EditThumbnailDialog.tsx +0 -122
  23. package/src/components/ErrorBoundaryCard.tsx +0 -96
  24. package/src/components/FileInputButton.tsx +0 -54
  25. package/src/components/FileInputMenuItem.styled.tsx +0 -36
  26. package/src/components/FileInputMenuItem.tsx +0 -85
  27. package/src/components/FormField.tsx +0 -38
  28. package/src/components/IconInfo.tsx +0 -22
  29. package/src/components/ImportVideosFromMux.tsx +0 -342
  30. package/src/components/Input.styled.tsx +0 -22
  31. package/src/components/Input.tsx +0 -78
  32. package/src/components/InputBrowser.tsx +0 -41
  33. package/src/components/InputError.tsx +0 -17
  34. package/src/components/MuxLogo.tsx +0 -42
  35. package/src/components/Onboard.tsx +0 -65
  36. package/src/components/PageSelector.tsx +0 -54
  37. package/src/components/Player.styled.tsx +0 -55
  38. package/src/components/Player.tsx +0 -117
  39. package/src/components/PlayerActionsMenu.tsx +0 -190
  40. package/src/components/ResyncMetadata.tsx +0 -280
  41. package/src/components/SelectAsset.tsx +0 -39
  42. package/src/components/SelectSortOptions.tsx +0 -45
  43. package/src/components/SpinnerBox.tsx +0 -16
  44. package/src/components/StudioTool.tsx +0 -24
  45. package/src/components/TextTracksEditor.tsx +0 -117
  46. package/src/components/TextTracksManager.tsx +0 -737
  47. package/src/components/UploadConfiguration.tsx +0 -694
  48. package/src/components/UploadPlaceholder.tsx +0 -88
  49. package/src/components/UploadProgress.tsx +0 -80
  50. package/src/components/Uploader.styled.tsx +0 -66
  51. package/src/components/Uploader.tsx +0 -498
  52. package/src/components/VideoDetails/DeleteDialog.tsx +0 -147
  53. package/src/components/VideoDetails/VideoDetails.tsx +0 -358
  54. package/src/components/VideoDetails/VideoReferences.tsx +0 -63
  55. package/src/components/VideoDetails/useVideoDetails.ts +0 -103
  56. package/src/components/VideoInBrowser.tsx +0 -245
  57. package/src/components/VideoMetadata.tsx +0 -45
  58. package/src/components/VideoPlayer.tsx +0 -235
  59. package/src/components/VideoThumbnail.tsx +0 -138
  60. package/src/components/VideosBrowser.tsx +0 -100
  61. package/src/components/documentPreview/DocumentPreview.tsx +0 -83
  62. package/src/components/documentPreview/DraftStatus.tsx +0 -34
  63. package/src/components/documentPreview/MissingSchemaType.tsx +0 -32
  64. package/src/components/documentPreview/PaneItemPreview.tsx +0 -74
  65. package/src/components/documentPreview/PublishedStatus.tsx +0 -35
  66. package/src/components/documentPreview/TimeAgo.tsx +0 -12
  67. package/src/components/documentPreview/paneItemTypes.ts +0 -7
  68. package/src/components/icons/Audio.tsx +0 -13
  69. package/src/components/icons/Resolution.tsx +0 -12
  70. package/src/components/icons/StopWatch.tsx +0 -20
  71. package/src/components/icons/ToolIcon.tsx +0 -19
  72. package/src/components/uploadConfiguration/PlaybackPolicy.tsx +0 -133
  73. package/src/components/uploadConfiguration/PlaybackPolicyOption.tsx +0 -76
  74. package/src/components/uploadConfiguration/PlaybackPolicyWarning.tsx +0 -29
  75. package/src/components/uploadConfiguration/ResolutionTierSelector.tsx +0 -72
  76. package/src/components/uploadConfiguration/StaticRenditionSelector.tsx +0 -180
  77. package/src/components/withFocusRing/helpers.ts +0 -24
  78. package/src/components/withFocusRing/index.ts +0 -1
  79. package/src/components/withFocusRing/withFocusRing.ts +0 -30
  80. package/src/context/DialogStateContext.tsx +0 -36
  81. package/src/context/DrmPlaybackWarningContext.tsx +0 -93
  82. package/src/hooks/useAccessControl.ts +0 -13
  83. package/src/hooks/useAssetDocumentValues.ts +0 -11
  84. package/src/hooks/useAssets.ts +0 -68
  85. package/src/hooks/useCancelUpload.ts +0 -22
  86. package/src/hooks/useClient.ts +0 -8
  87. package/src/hooks/useDialogState.ts +0 -11
  88. package/src/hooks/useDocReferences.ts +0 -21
  89. package/src/hooks/useFetchFileSize.ts +0 -54
  90. package/src/hooks/useImportMuxAssets.ts +0 -132
  91. package/src/hooks/useInView.ts +0 -42
  92. package/src/hooks/useMediaMetadata.ts +0 -103
  93. package/src/hooks/useMuxAssets.ts +0 -179
  94. package/src/hooks/useMuxPolling.ts +0 -49
  95. package/src/hooks/useResyncAsset.ts +0 -110
  96. package/src/hooks/useResyncMuxMetadata.ts +0 -176
  97. package/src/hooks/useSaveSecrets.ts +0 -78
  98. package/src/hooks/useSecretsDocumentValues.ts +0 -38
  99. package/src/hooks/useSecretsFormState.ts +0 -47
  100. package/src/plugin.tsx +0 -31
  101. package/src/sanity-ui.d.ts +0 -5
  102. package/src/schema.ts +0 -196
  103. package/src/util/addKeysToMuxData.ts +0 -30
  104. package/src/util/areSecretsSignable.ts +0 -5
  105. package/src/util/asserters.ts +0 -36
  106. package/src/util/assetTitlePlaceholder.ts +0 -31
  107. package/src/util/constants.ts +0 -15
  108. package/src/util/convertWatermarkToMux.ts +0 -160
  109. package/src/util/createSearchFilter.ts +0 -76
  110. package/src/util/createUrlParamsObject.ts +0 -29
  111. package/src/util/extractFiles.ts +0 -67
  112. package/src/util/formatBytes.ts +0 -32
  113. package/src/util/formatDriveShareLink.ts +0 -64
  114. package/src/util/formatSeconds.ts +0 -49
  115. package/src/util/generateJwt.ts +0 -57
  116. package/src/util/getAnimatedPosterSrc.ts +0 -26
  117. package/src/util/getPlaybackPolicy.ts +0 -69
  118. package/src/util/getPosterSrc.ts +0 -28
  119. package/src/util/getStoryboardSrc.ts +0 -27
  120. package/src/util/getVideoMetadata.ts +0 -23
  121. package/src/util/getVideoSrc.ts +0 -23
  122. package/src/util/isSigned.ts +0 -20
  123. package/src/util/parsers.ts +0 -5
  124. package/src/util/pluginVersion.ts +0 -1
  125. package/src/util/readSecrets.ts +0 -38
  126. package/src/util/roundPxString.ts +0 -16
  127. package/src/util/textTracks.ts +0 -222
  128. package/src/util/tryWithSuspend.ts +0 -22
  129. package/src/util/types.ts +0 -596
  130. package/v2-incompatible.js +0 -11
package/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Mux Video Input Sanity Plugin
2
2
 
3
- > For the v2 version, please refer to the [v2-branch](https://github.com/sanity-io/sanity-plugin-mux-input/tree/studio-v2).
4
-
5
3
  This plugin lets you use [Mux](https://www.mux.com) video assets in your Sanity studio.
6
4
 
7
5
  The Mux plugin for Sanity allows you to easily upload and preview videos.
package/dist/index.d.ts CHANGED
@@ -1,89 +1,10 @@
1
- import type MuxPlayerElement from "@mux/mux-player";
2
- import type { PartialDeep } from "type-fest";
3
- import { Plugin as Plugin_2 } from "sanity";
4
-
5
- export declare const defaultConfig: PluginConfig;
6
-
7
- declare interface MuxAsset {
8
- id: string;
9
- /** In seconds (instead of JS's default milliseconds) */
10
- created_at: string;
11
- status: "preparing" | "ready" | "errored";
12
- duration: number;
13
- max_stored_resolution: "Audio only" | "SD" | "HD" | "FHD" | "UHD";
14
- max_stored_frame_rate: -1 | number;
15
- aspect_ratio: `${number}:${number}`;
16
- playback_ids: MuxPlaybackId[];
17
- tracks: MuxTrack[];
18
- errors?: MuxErrors;
19
- upload_id: string;
20
- is_live?: boolean;
21
- passthrough: string;
22
- live_stream_id?: string;
23
- master?: {
24
- status: "ready" | "preparing" | "errored";
25
- url: string;
26
- };
27
- master_access: "temporary" | "none";
28
- mp4_support: "standard" | "none";
29
- source_asset_id?: string;
30
- normalize_audio?: boolean;
31
- static_renditions?: {
32
- status: "ready" | "preparing" | "disabled" | "errored";
33
- files: {
34
- name: string;
35
- ext: "mp4" | "m4a";
36
- height: number;
37
- width: number;
38
- bitrate: number;
39
- filesize: string;
40
- type: "standard" | "advanced";
41
- status: "ready" | "preparing" | "skipped" | "errored";
42
- resolution_tier?: string;
43
- resolution?: string;
44
- id: string;
45
- passthrough?: string;
46
- }[];
47
- };
48
- recording_times?: {
49
- started_at: string;
50
- duration: number;
51
- type: "content" | "slate";
52
- }[];
53
- non_standard_input_reasons?: {
54
- video_codec?: string;
55
- audio_codec?: string;
56
- video_gop_size?: "high";
57
- video_frame_rate?: string;
58
- video_resolution?: string;
59
- video_bitrate?: "high";
60
- pixel_aspect_ratio?: string;
61
- video_edit_list?: "non-standard";
62
- audio_edit_list?: "non-standard";
63
- unexpected_media_file_parameters?: "non-standard";
64
- test?: boolean;
65
- };
66
- meta?: {
67
- title?: string;
68
- };
69
- }
70
-
71
- declare interface MuxAudioTrack {
72
- type: "audio";
73
- id: string;
74
- duration?: number;
75
- max_channels: number;
76
- max_channel_layout: "stereo" | string;
77
- }
78
-
79
- declare interface MuxErrors {
80
- type: string;
81
- messages: string[];
82
- }
83
-
84
- export declare const muxInput: Plugin_2<void | Partial<PluginConfig>>;
85
-
86
- declare interface MuxInputConfig {
1
+ import MuxPlayerElement from "@mux/mux-player";
2
+ import { PartialDeep } from "type-fest";
3
+ /**
4
+ * All static rendition resolution options supported by Mux
5
+ */
6
+ type StaticRenditionResolution = 'highest' | 'audio-only' | '270p' | '360p' | '480p' | '540p' | '720p' | '1080p' | '1440p' | '2160p';
7
+ interface MuxInputConfig {
87
8
  /**
88
9
  * Enable static renditions by default. Can be overwritten on a per-asset basis.
89
10
  * Supports:
@@ -103,14 +24,14 @@ declare interface MuxInputConfig {
103
24
  * @see {@link https://docs.mux.com/guides/video/enable-static-mp4-renditions#why-enable-mp4-support}
104
25
  * @defaultValue 'none'
105
26
  */
106
- mp4_support: "none" | "standard";
27
+ mp4_support: 'none' | 'standard';
107
28
  /**
108
29
  * Max resolution tier can be used to control the maximum resolution_tier your asset is encoded, stored, and streamed at.
109
30
  * Requires `"video_quality": "plus"`
110
31
  * @see {@link https://docs.mux.com/guides/stream-videos-in-4k}
111
32
  * @defaultValue '1080p'
112
33
  */
113
- max_resolution_tier: "2160p" | "1440p" | "1080p";
34
+ max_resolution_tier: '2160p' | '1440p' | '1080p';
114
35
  /**
115
36
  * @deprecated Use {@link video_quality}
116
37
  * <br>
@@ -118,13 +39,13 @@ declare interface MuxInputConfig {
118
39
  * @see {@link https://docs.mux.com/guides/use-encoding-tiers}
119
40
  * @defaultValue 'smart'
120
41
  */
121
- encoding_tier?: "baseline" | "smart";
42
+ encoding_tier?: 'baseline' | 'smart';
122
43
  /**
123
44
  * The video quality level informs the cost, quality, and available platform features for the asset.
124
45
  * @see {@link https://www.mux.com/docs/guides/use-video-quality-levels}
125
46
  * @defaultValue 'plus'
126
47
  */
127
- video_quality: "basic" | "plus" | "premium";
48
+ video_quality: 'basic' | 'plus' | 'premium';
128
49
  /**
129
50
  * Normalize the audio track loudness level.
130
51
  * @see {@link https://docs.mux.com/guides/adjust-audio-levels#how-to-turn-on-audio-normalization}
@@ -186,13 +107,12 @@ declare interface MuxInputConfig {
186
107
  */
187
108
  disableDrmPlaybackWarning?: boolean;
188
109
  /**
189
- * The mime types that are accepted by the input.
190
- *
191
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept}
192
- * @defaultValue ['video/*','audio/*']
193
-
194
- */
195
- acceptedMimeTypes?: ("audio/*" | "video/*")[];
110
+ * The mime types that are accepted by the input.
111
+ *
112
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept}
113
+ * @defaultValue ['video/*','audio/*']
114
+ */
115
+ acceptedMimeTypes?: ('audio/*' | 'video/*')[];
196
116
  /**
197
117
  * Maximum file size allowed for video uploads in bytes.
198
118
  * If not specified, no file size validation will be performed.
@@ -224,61 +144,19 @@ declare interface MuxInputConfig {
224
144
  * }
225
145
  * ```
226
146
  */
227
- hlsConfig?: MuxPlayerElement["_hlsConfig"];
147
+ hlsConfig?: MuxPlayerElement['_hlsConfig'];
228
148
  }
229
-
230
- declare interface MuxPlaybackId {
231
- id: string;
232
- policy: PlaybackPolicy;
233
- }
234
-
235
- declare interface MuxTextTrack {
236
- type: "text";
237
- id: string;
238
- text_type?: "subtitles";
239
- text_source?:
240
- | "uploaded"
241
- | "embedded"
242
- | "generated_live"
243
- | "generated_live_final"
244
- | "generated_vod";
245
- language_code?: "en" | "en-US" | string;
246
- name?: "English" | string;
247
- closed_captions?: boolean;
248
- passthrough?: string;
249
- status: "preparing" | "ready" | "errored";
250
- error?: {
251
- type: string;
252
- messages?: string[];
253
- };
254
- }
255
-
256
- declare type MuxTrack = MuxVideoTrack | MuxAudioTrack | MuxTextTrack;
257
-
258
- declare interface MuxVideoTrack {
259
- type: "video";
260
- id: string;
261
- max_width: number;
262
- max_height: number;
263
- max_frame_rate: -1 | number;
264
- duration?: number;
265
- }
266
-
267
- declare type PlaybackPolicy = "signed" | "public" | "drm";
268
-
269
- declare interface PluginConfig extends MuxInputConfig {
149
+ interface PluginConfig extends MuxInputConfig {
270
150
  /**
271
151
  * How the videos browser should appear as a studio tool in Sanity's top navigation
272
152
  *
273
153
  * Pass `false` if you want to disable it.
274
154
  * @defaultValue {title: 'Videos', icon: VideoIcon}
275
155
  **/
276
- tool:
277
- | false
278
- | {
279
- title?: string;
280
- icon?: React.ComponentType;
281
- };
156
+ tool: false | {
157
+ title?: string;
158
+ icon?: React.ComponentType;
159
+ };
282
160
  /**
283
161
  * The roles that are allowed to configure the plugin.
284
162
  *
@@ -287,53 +165,114 @@ declare interface PluginConfig extends MuxInputConfig {
287
165
  */
288
166
  allowedRolesForConfiguration: string[];
289
167
  }
290
-
291
- /**
292
- * All static rendition resolution options supported by Mux
293
- */
294
- declare type StaticRenditionResolution =
295
- | "highest"
296
- | "audio-only"
297
- | "270p"
298
- | "360p"
299
- | "480p"
300
- | "540p"
301
- | "720p"
302
- | "1080p"
303
- | "1440p"
304
- | "2160p";
305
-
306
- declare const SUPPORTED_MUX_LANGUAGES_VALUES: (
307
- | "en"
308
- | "es"
309
- | "it"
310
- | "pt"
311
- | "de"
312
- | "fr"
313
- | "pl"
314
- | "ru"
315
- | "nl"
316
- | "ca"
317
- | "tr"
318
- | "sv"
319
- | "uk"
320
- | "no"
321
- | "fi"
322
- | "sk"
323
- | "el"
324
- | "cs"
325
- | "hr"
326
- | "da"
327
- | "ro"
328
- | "bg"
329
- )[];
330
-
331
- declare type SupportedMuxLanguage =
332
- (typeof SUPPORTED_MUX_LANGUAGES_VALUES)[number];
333
-
334
- export declare interface VideoAssetDocument {
168
+ declare const SUPPORTED_MUX_LANGUAGES_VALUES: ("en" | "es" | "it" | "pt" | "de" | "fr" | "pl" | "ru" | "nl" | "ca" | "tr" | "sv" | "uk" | "no" | "fi" | "sk" | "el" | "cs" | "hr" | "da" | "ro" | "bg")[];
169
+ type SupportedMuxLanguage = (typeof SUPPORTED_MUX_LANGUAGES_VALUES)[number];
170
+ type PlaybackPolicy = 'signed' | 'public' | 'drm';
171
+ interface MuxErrors {
172
+ type: string;
173
+ messages: string[];
174
+ }
175
+ interface MuxPlaybackId {
176
+ id: string;
177
+ policy: PlaybackPolicy;
178
+ }
179
+ interface MuxVideoTrack {
180
+ type: 'video';
181
+ id: string;
182
+ max_width: number;
183
+ max_height: number;
184
+ max_frame_rate: -1 | number;
185
+ duration?: number;
186
+ }
187
+ interface MuxAudioTrack {
188
+ type: 'audio';
189
+ id: string;
190
+ duration?: number;
191
+ max_channels: number;
192
+ max_channel_layout: 'stereo' | string;
193
+ }
194
+ interface MuxTextTrack {
195
+ type: 'text';
196
+ id: string;
197
+ text_type?: 'subtitles';
198
+ text_source?: 'uploaded' | 'embedded' | 'generated_live' | 'generated_live_final' | 'generated_vod';
199
+ language_code?: 'en' | 'en-US' | string;
200
+ name?: 'English' | string;
201
+ closed_captions?: boolean;
202
+ passthrough?: string;
203
+ status: 'preparing' | 'ready' | 'errored';
204
+ error?: {
205
+ type: string;
206
+ messages?: string[];
207
+ };
208
+ }
209
+ type MuxTrack = MuxVideoTrack | MuxAudioTrack | MuxTextTrack;
210
+ interface MuxAsset {
211
+ id: string;
212
+ /** In seconds (instead of JS's default milliseconds) */
213
+ created_at: string;
214
+ status: 'preparing' | 'ready' | 'errored';
215
+ duration: number;
216
+ max_stored_resolution: 'Audio only' | 'SD' | 'HD' | 'FHD' | 'UHD';
217
+ max_stored_frame_rate: -1 | number;
218
+ aspect_ratio: `${number}:${number}`;
219
+ playback_ids: MuxPlaybackId[];
220
+ tracks: MuxTrack[];
221
+ errors?: MuxErrors;
222
+ upload_id: string;
223
+ is_live?: boolean;
224
+ passthrough: string;
225
+ live_stream_id?: string;
226
+ master?: {
227
+ status: 'ready' | 'preparing' | 'errored';
228
+ url: string;
229
+ };
230
+ master_access: 'temporary' | 'none';
231
+ mp4_support: 'standard' | 'none';
232
+ source_asset_id?: string;
233
+ normalize_audio?: boolean;
234
+ static_renditions?: {
235
+ status: 'ready' | 'preparing' | 'disabled' | 'errored';
236
+ files: {
237
+ name: string;
238
+ ext: 'mp4' | 'm4a';
239
+ height: number;
240
+ width: number;
241
+ bitrate: number;
242
+ filesize: string;
243
+ type: 'standard' | 'advanced';
244
+ status: 'ready' | 'preparing' | 'skipped' | 'errored';
245
+ resolution_tier?: string;
246
+ resolution?: string;
247
+ id: string;
248
+ passthrough?: string;
249
+ }[];
250
+ };
251
+ recording_times?: {
252
+ started_at: string;
253
+ duration: number;
254
+ type: 'content' | 'slate';
255
+ }[];
256
+ non_standard_input_reasons?: {
257
+ video_codec?: string;
258
+ audio_codec?: string;
259
+ video_gop_size?: 'high';
260
+ video_frame_rate?: string;
261
+ video_resolution?: string;
262
+ video_bitrate?: 'high';
263
+ pixel_aspect_ratio?: string;
264
+ video_edit_list?: 'non-standard';
265
+ audio_edit_list?: 'non-standard';
266
+ unexpected_media_file_parameters?: 'non-standard';
267
+ test?: boolean;
268
+ };
269
+ meta?: {
270
+ title?: string;
271
+ };
272
+ }
273
+ interface VideoAssetDocument {
335
274
  _id: string;
336
- _type: "mux.videoAsset";
275
+ _type: 'mux.videoAsset';
337
276
  _createdAt: string;
338
277
  _updatedAt?: string;
339
278
  status?: string;
@@ -343,5 +282,7 @@ export declare interface VideoAssetDocument {
343
282
  thumbTime?: number;
344
283
  data?: PartialDeep<MuxAsset>;
345
284
  }
346
-
347
- export {};
285
+ declare const defaultConfig: PluginConfig;
286
+ declare const muxInput: import("sanity").Plugin<void | Partial<PluginConfig>>;
287
+ export { type VideoAssetDocument, defaultConfig, muxInput };
288
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/util/types.ts","../src/_exports/index.ts"],"mappings":"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"}