@shotstack/schemas 1.5.9 → 1.7.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 (91) hide show
  1. package/README.md +89 -89
  2. package/dist/json-schema/asset.json +3123 -0
  3. package/dist/json-schema/audio-asset.json +180 -0
  4. package/dist/json-schema/caption-asset.json +285 -0
  5. package/dist/json-schema/caption-background.json +61 -0
  6. package/dist/json-schema/caption-font.json +97 -0
  7. package/dist/json-schema/caption-margin.json +49 -0
  8. package/dist/json-schema/chroma-key.json +46 -0
  9. package/dist/json-schema/clip.json +3575 -0
  10. package/dist/json-schema/crop.json +69 -0
  11. package/dist/json-schema/destinations.json +495 -0
  12. package/dist/json-schema/edit.json +4540 -0
  13. package/dist/json-schema/flip-transformation.json +37 -0
  14. package/dist/json-schema/font.json +18 -0
  15. package/dist/json-schema/google-cloud-storage-destination-options.json +42 -0
  16. package/dist/json-schema/google-cloud-storage-destination.json +73 -0
  17. package/dist/json-schema/google-drive-destination-options.json +30 -0
  18. package/dist/json-schema/google-drive-destination.json +54 -0
  19. package/dist/json-schema/image-asset.json +104 -0
  20. package/dist/json-schema/image-to-video-asset.json +151 -0
  21. package/dist/json-schema/index.cjs +1 -0
  22. package/dist/json-schema/index.d.ts +6 -0
  23. package/dist/json-schema/index.js +3 -0
  24. package/dist/json-schema/luma-asset.json +38 -0
  25. package/dist/json-schema/merge-field.json +23 -0
  26. package/dist/json-schema/offset.json +145 -0
  27. package/dist/json-schema/output.json +771 -0
  28. package/dist/json-schema/poster.json +18 -0
  29. package/dist/json-schema/range.json +39 -0
  30. package/dist/json-schema/rich-caption-active-font.json +54 -0
  31. package/dist/json-schema/rich-caption-active.json +154 -0
  32. package/dist/json-schema/rich-caption-asset.json +1098 -0
  33. package/dist/json-schema/rich-caption-word-animation.json +60 -0
  34. package/dist/json-schema/rich-text-alignment.json +47 -0
  35. package/dist/json-schema/rich-text-animation.json +74 -0
  36. package/dist/json-schema/rich-text-asset.json +737 -0
  37. package/dist/json-schema/rich-text-background.json +52 -0
  38. package/dist/json-schema/rich-text-font.json +157 -0
  39. package/dist/json-schema/rich-text-gradient.json +68 -0
  40. package/dist/json-schema/rich-text-shadow.json +79 -0
  41. package/dist/json-schema/rich-text-stroke.json +55 -0
  42. package/dist/json-schema/rich-text-style.json +165 -0
  43. package/dist/json-schema/rotate-transformation.json +123 -0
  44. package/dist/json-schema/s3destination-options.json +59 -0
  45. package/dist/json-schema/s3destination.json +90 -0
  46. package/dist/json-schema/schemas.json +4983 -0
  47. package/dist/json-schema/shape-asset.json +225 -0
  48. package/dist/json-schema/shotstack-destination.json +33 -0
  49. package/dist/json-schema/size.json +41 -0
  50. package/dist/json-schema/skew-transformation.json +145 -0
  51. package/dist/json-schema/soundtrack.json +47 -0
  52. package/dist/json-schema/svg-arrow-shape.json +49 -0
  53. package/dist/json-schema/svg-asset.json +877 -0
  54. package/dist/json-schema/svg-circle-shape.json +28 -0
  55. package/dist/json-schema/svg-cross-shape.json +42 -0
  56. package/dist/json-schema/svg-ellipse-shape.json +35 -0
  57. package/dist/json-schema/svg-fill.json +169 -0
  58. package/dist/json-schema/svg-gradient-stop.json +25 -0
  59. package/dist/json-schema/svg-heart-shape.json +28 -0
  60. package/dist/json-schema/svg-line-shape.json +35 -0
  61. package/dist/json-schema/svg-linear-gradient-fill.json +80 -0
  62. package/dist/json-schema/svg-path-shape.json +26 -0
  63. package/dist/json-schema/svg-polygon-shape.json +35 -0
  64. package/dist/json-schema/svg-radial-gradient-fill.json +66 -0
  65. package/dist/json-schema/svg-rectangle-shape.json +49 -0
  66. package/dist/json-schema/svg-ring-shape.json +35 -0
  67. package/dist/json-schema/svg-shadow.json +79 -0
  68. package/dist/json-schema/svg-shape.json +404 -0
  69. package/dist/json-schema/svg-solid-fill.json +40 -0
  70. package/dist/json-schema/svg-star-shape.json +42 -0
  71. package/dist/json-schema/svg-stroke.json +115 -0
  72. package/dist/json-schema/svg-transform.json +93 -0
  73. package/dist/json-schema/text-to-image-asset.json +128 -0
  74. package/dist/json-schema/text-to-speech-asset.json +209 -0
  75. package/dist/json-schema/thumbnail.json +25 -0
  76. package/dist/json-schema/timeline.json +3703 -0
  77. package/dist/json-schema/track.json +3590 -0
  78. package/dist/json-schema/transformation.json +251 -0
  79. package/dist/json-schema/transition.json +37 -0
  80. package/dist/json-schema/tween.json +90 -0
  81. package/dist/json-schema/video-asset.json +321 -0
  82. package/dist/json-schema/vimeo-destination-options.json +149 -0
  83. package/dist/json-schema/vimeo-destination-privacy-options.json +90 -0
  84. package/dist/json-schema/vimeo-destination.json +178 -0
  85. package/dist/json-schema/word-timing.json +44 -0
  86. package/dist/schema.d.ts +77 -77
  87. package/dist/zod/zod.gen.cjs +1080 -921
  88. package/dist/zod/zod.gen.d.ts +139 -139
  89. package/dist/zod/zod.gen.js +1081 -922
  90. package/dist/zod/zod.gen.ts +1583 -1648
  91. package/package.json +79 -73
@@ -0,0 +1,321 @@
1
+ {
2
+ "name": "VideoAsset",
3
+ "strict": true,
4
+ "schema": {
5
+ "description": "The VideoAsset is used to create video sequences from video files. The src must be a ...",
6
+ "type": "object",
7
+ "properties": {
8
+ "type": {
9
+ "enum": [
10
+ "video"
11
+ ],
12
+ "description": "The type of asset - set ...",
13
+ "type": "string"
14
+ },
15
+ "src": {
16
+ "description": "The video source URL. The URL must be publicl...",
17
+ "type": "string"
18
+ },
19
+ "transcode": {
20
+ "anyOf": [
21
+ {
22
+ "type": "boolean",
23
+ "description": "Set to `true` to force re-encoding of the video during preprocessing. This can help resolve compatibility issues, fix rotation problems, synchronize aud..."
24
+ },
25
+ {
26
+ "type": "null"
27
+ }
28
+ ]
29
+ },
30
+ "trim": {
31
+ "anyOf": [
32
+ {
33
+ "type": "number",
34
+ "description": "The start trim point of the video clip, in seconds (defaults to 0). Videos will start from the in trim p..."
35
+ },
36
+ {
37
+ "type": "null"
38
+ }
39
+ ]
40
+ },
41
+ "volume": {
42
+ "description": "Set the volume of the video clip. Use a number or an array of [Tween](./#...",
43
+ "anyOf": [
44
+ {
45
+ "type": "number",
46
+ "description": "The volume level for the video clip. Range varies from 0 to 1 wher...",
47
+ "minimum": 0,
48
+ "maximum": 1
49
+ },
50
+ {
51
+ "type": "array",
52
+ "description": "An array of [Tween](./#tocs_tween) objects used to create a custom vo...",
53
+ "items": {
54
+ "$ref": "#/$defs/Tween"
55
+ }
56
+ },
57
+ {
58
+ "type": "null"
59
+ }
60
+ ]
61
+ },
62
+ "volumeEffect": {
63
+ "anyOf": [
64
+ {
65
+ "type": "string",
66
+ "description": "Preset volume effects to apply to the video asset <ul>\n <li>`fadeIn` - fade volume in only</li>\n <li>`fadeOut` -...",
67
+ "enum": [
68
+ "none",
69
+ "fadeIn",
70
+ "fadeOut",
71
+ "fadeInFadeOut"
72
+ ]
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ]
78
+ },
79
+ "speed": {
80
+ "anyOf": [
81
+ {
82
+ "type": "number",
83
+ "description": "Adjust the playback speed of the video clip between 0 (paused) and 10 (10x normal speed) where 1 is normal speed (defaults to 1). Adjusting the speed will also adjust the duration of the clip and may require you to adjust the Clip length. For example, if you set speed to 0.5, the c...",
84
+ "minimum": 0,
85
+ "maximum": 10
86
+ },
87
+ {
88
+ "type": "null"
89
+ }
90
+ ]
91
+ },
92
+ "crop": {
93
+ "anyOf": [
94
+ {
95
+ "$ref": "#/$defs/Crop"
96
+ },
97
+ {
98
+ "type": "null"
99
+ }
100
+ ]
101
+ },
102
+ "chromaKey": {
103
+ "anyOf": [
104
+ {
105
+ "$ref": "#/$defs/ChromaKey"
106
+ },
107
+ {
108
+ "type": "null"
109
+ }
110
+ ]
111
+ }
112
+ },
113
+ "additionalProperties": false,
114
+ "required": [
115
+ "type",
116
+ "src",
117
+ "transcode",
118
+ "trim",
119
+ "volume",
120
+ "volumeEffect",
121
+ "speed",
122
+ "crop",
123
+ "chromaKey"
124
+ ],
125
+ "$defs": {
126
+ "Tween": {
127
+ "description": "Use a Tween to [animate properties over time](/docs/guide/architecting-an-application/animations/). The following properties are currently supported and can be animated:\n <ul>\n <li>Opacity - animate the transparency of a clip.</li>\n <li>Offset - animate the x and y position of a cl...",
128
+ "properties": {
129
+ "from": {
130
+ "anyOf": [
131
+ {
132
+ "type": "string",
133
+ "description": "The initial property value at ..."
134
+ },
135
+ {
136
+ "type": "null"
137
+ }
138
+ ]
139
+ },
140
+ "to": {
141
+ "anyOf": [
142
+ {
143
+ "type": "string",
144
+ "description": "The final property value at ..."
145
+ },
146
+ {
147
+ "type": "null"
148
+ }
149
+ ]
150
+ },
151
+ "start": {
152
+ "anyOf": [
153
+ {
154
+ "type": "number",
155
+ "description": "The time in seconds when the animation starts, r..."
156
+ },
157
+ {
158
+ "type": "null"
159
+ }
160
+ ]
161
+ },
162
+ "length": {
163
+ "anyOf": [
164
+ {
165
+ "type": "number",
166
+ "description": "The duration of the a..."
167
+ },
168
+ {
169
+ "type": "null"
170
+ }
171
+ ]
172
+ },
173
+ "interpolation": {
174
+ "anyOf": [
175
+ {
176
+ "type": "string",
177
+ "description": "The interpolation method to use for the animation. Available options are: <ul>\n <li>`linear` - a linear interpolation between the start and end values.</li>\n <li>`bezier` - a bezier curve interpolation between the start and en...",
178
+ "enum": [
179
+ "linear",
180
+ "bezier",
181
+ "constant"
182
+ ]
183
+ },
184
+ {
185
+ "type": "null"
186
+ }
187
+ ]
188
+ },
189
+ "easing": {
190
+ "anyOf": [
191
+ {
192
+ "type": "string",
193
+ "description": "The easing function to use for the animation. Easing controls the rate of change of the animated value, allowing for more natural motion by speeding..."
194
+ },
195
+ {
196
+ "type": "null"
197
+ }
198
+ ]
199
+ }
200
+ },
201
+ "additionalProperties": false,
202
+ "type": "object",
203
+ "required": [
204
+ "from",
205
+ "to",
206
+ "start",
207
+ "length",
208
+ "interpolation",
209
+ "easing"
210
+ ]
211
+ },
212
+ "Crop": {
213
+ "description": "Crop the sides of an asset by a relative amount. The size of the crop is specified using a scale between 0 and 1, relative to the screen width - i.e a left cro...",
214
+ "properties": {
215
+ "top": {
216
+ "anyOf": [
217
+ {
218
+ "type": "number",
219
+ "description": "Crop from the ...",
220
+ "minimum": 0,
221
+ "maximum": 1
222
+ },
223
+ {
224
+ "type": "null"
225
+ }
226
+ ]
227
+ },
228
+ "bottom": {
229
+ "anyOf": [
230
+ {
231
+ "type": "number",
232
+ "description": "Crop from the bo...",
233
+ "minimum": 0,
234
+ "maximum": 1
235
+ },
236
+ {
237
+ "type": "null"
238
+ }
239
+ ]
240
+ },
241
+ "left": {
242
+ "anyOf": [
243
+ {
244
+ "type": "number",
245
+ "description": "Crop from the l...",
246
+ "minimum": 0,
247
+ "maximum": 1
248
+ },
249
+ {
250
+ "type": "null"
251
+ }
252
+ ]
253
+ },
254
+ "right": {
255
+ "anyOf": [
256
+ {
257
+ "type": "number",
258
+ "description": "Crop from the l...",
259
+ "minimum": 0,
260
+ "maximum": 1
261
+ },
262
+ {
263
+ "type": "null"
264
+ }
265
+ ]
266
+ }
267
+ },
268
+ "additionalProperties": false,
269
+ "type": "object",
270
+ "required": [
271
+ "top",
272
+ "bottom",
273
+ "left",
274
+ "right"
275
+ ]
276
+ },
277
+ "ChromaKey": {
278
+ "description": "Chroma key is a technique that replaces a specific color in a video with a different background image or video, enabling seamless...",
279
+ "properties": {
280
+ "color": {
281
+ "description": "The chroma key color as a hex value. Use green (#00b140) for green screens or blue (#0000FF)...",
282
+ "type": "string"
283
+ },
284
+ "threshold": {
285
+ "anyOf": [
286
+ {
287
+ "type": "integer",
288
+ "description": "Pixels within this distance from the key color are elimi...",
289
+ "minimum": 0,
290
+ "maximum": 250
291
+ },
292
+ {
293
+ "type": "null"
294
+ }
295
+ ]
296
+ },
297
+ "halo": {
298
+ "anyOf": [
299
+ {
300
+ "type": "integer",
301
+ "description": "Pixels within the halo distance from the threshold boundary are given an increa...",
302
+ "minimum": 0,
303
+ "maximum": 250
304
+ },
305
+ {
306
+ "type": "null"
307
+ }
308
+ ]
309
+ }
310
+ },
311
+ "additionalProperties": false,
312
+ "required": [
313
+ "color",
314
+ "threshold",
315
+ "halo"
316
+ ],
317
+ "type": "object"
318
+ }
319
+ }
320
+ }
321
+ }
@@ -0,0 +1,149 @@
1
+ {
2
+ "name": "VimeoDestinationOptions",
3
+ "strict": true,
4
+ "schema": {
5
+ "description": "Pass additional options to control how Vimeo publishes video, including name, description and privacy settings.",
6
+ "properties": {
7
+ "name": {
8
+ "anyOf": [
9
+ {
10
+ "type": "string",
11
+ "description": "A name or title for the video that will be displayed on the Vimeo website."
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ]
17
+ },
18
+ "description": {
19
+ "anyOf": [
20
+ {
21
+ "type": "string",
22
+ "description": "A description of the video that will be displayed on the Vimeo website."
23
+ },
24
+ {
25
+ "type": "null"
26
+ }
27
+ ]
28
+ },
29
+ "privacy": {
30
+ "anyOf": [
31
+ {
32
+ "description": "Options to control the visibility of videos and privacy features.",
33
+ "$ref": "#/$defs/VimeoDestinationPrivacyOptions"
34
+ },
35
+ {
36
+ "type": "null"
37
+ }
38
+ ]
39
+ },
40
+ "folderUri": {
41
+ "anyOf": [
42
+ {
43
+ "type": "string",
44
+ "description": "The Vimeo folder URI to upload the video to. The folder must already exist in your Vimeo account."
45
+ },
46
+ {
47
+ "type": "null"
48
+ }
49
+ ]
50
+ }
51
+ },
52
+ "type": "object",
53
+ "additionalProperties": false,
54
+ "required": [
55
+ "name",
56
+ "description",
57
+ "privacy",
58
+ "folderUri"
59
+ ],
60
+ "$defs": {
61
+ "VimeoDestinationPrivacyOptions": {
62
+ "description": "Options to control the visibility of videos and privacy features.",
63
+ "properties": {
64
+ "view": {
65
+ "anyOf": [
66
+ {
67
+ "type": "string",
68
+ "description": "Set who can view the videos. Available options are: <ul>\n <li>`anybody` - Anyone can view the video.</li>\n <li>`nobody` - Only the video owner can view the video.</li>\n <li>`contacts` - Only contacts can view the video.</li>\n <li>`password` - A password is required to view the video.</li>\n <li>`unlisted` - The video is not listed on Vimeo.</li>\n</ul>",
69
+ "enum": [
70
+ "anybody",
71
+ "nobody",
72
+ "contacts",
73
+ "password",
74
+ "unlisted"
75
+ ]
76
+ },
77
+ {
78
+ "type": "null"
79
+ }
80
+ ]
81
+ },
82
+ "embed": {
83
+ "anyOf": [
84
+ {
85
+ "type": "string",
86
+ "description": "Set who can embed the video. Available options are: <ul>\n <li>`public` - Anyone can embed the video.</li>\n <li>`private` - Only the video owner can embed the video.</li>\n <li>`whitelist` - Only whitelisted domains can embed the video.</li>\n</ul>",
87
+ "enum": [
88
+ "public",
89
+ "private",
90
+ "whitelist"
91
+ ]
92
+ },
93
+ {
94
+ "type": "null"
95
+ }
96
+ ]
97
+ },
98
+ "comments": {
99
+ "anyOf": [
100
+ {
101
+ "type": "string",
102
+ "description": "Set who can comment on the video. Available options are: <ul>\n <li>`anybody` - Anyone can comment on the video.</li>\n <li>`nobody` - Only the video owner can comment on the video.</li>\n <li>`contacts` - Only contacts can comment on the video.</li>\n</ul>",
103
+ "enum": [
104
+ "anybody",
105
+ "nobody",
106
+ "contacts"
107
+ ]
108
+ },
109
+ {
110
+ "type": "null"
111
+ }
112
+ ]
113
+ },
114
+ "download": {
115
+ "anyOf": [
116
+ {
117
+ "type": "boolean",
118
+ "description": "Set whether the video can be downloaded."
119
+ },
120
+ {
121
+ "type": "null"
122
+ }
123
+ ]
124
+ },
125
+ "add": {
126
+ "anyOf": [
127
+ {
128
+ "type": "boolean",
129
+ "description": "Set whether other users can add the video to their collections."
130
+ },
131
+ {
132
+ "type": "null"
133
+ }
134
+ ]
135
+ }
136
+ },
137
+ "type": "object",
138
+ "additionalProperties": false,
139
+ "required": [
140
+ "view",
141
+ "embed",
142
+ "comments",
143
+ "download",
144
+ "add"
145
+ ]
146
+ }
147
+ }
148
+ }
149
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "name": "VimeoDestinationPrivacyOptions",
3
+ "strict": true,
4
+ "schema": {
5
+ "description": "Options to control the visibility of videos and privacy features.",
6
+ "properties": {
7
+ "view": {
8
+ "anyOf": [
9
+ {
10
+ "type": "string",
11
+ "description": "Set who can view the videos. Available options are: <ul>\n <li>`anybody` - Anyone can view the video.</li>\n <li>`nobody` - Only the video owner can view the video.</li>\n <li>`contacts` - Only contacts can view the video.</li>\n <li>`password` - A password is required to view the video.</li>\n <li>`unlisted` - The video is not listed on Vimeo.</li>\n</ul>",
12
+ "enum": [
13
+ "anybody",
14
+ "nobody",
15
+ "contacts",
16
+ "password",
17
+ "unlisted"
18
+ ]
19
+ },
20
+ {
21
+ "type": "null"
22
+ }
23
+ ]
24
+ },
25
+ "embed": {
26
+ "anyOf": [
27
+ {
28
+ "type": "string",
29
+ "description": "Set who can embed the video. Available options are: <ul>\n <li>`public` - Anyone can embed the video.</li>\n <li>`private` - Only the video owner can embed the video.</li>\n <li>`whitelist` - Only whitelisted domains can embed the video.</li>\n</ul>",
30
+ "enum": [
31
+ "public",
32
+ "private",
33
+ "whitelist"
34
+ ]
35
+ },
36
+ {
37
+ "type": "null"
38
+ }
39
+ ]
40
+ },
41
+ "comments": {
42
+ "anyOf": [
43
+ {
44
+ "type": "string",
45
+ "description": "Set who can comment on the video. Available options are: <ul>\n <li>`anybody` - Anyone can comment on the video.</li>\n <li>`nobody` - Only the video owner can comment on the video.</li>\n <li>`contacts` - Only contacts can comment on the video.</li>\n</ul>",
46
+ "enum": [
47
+ "anybody",
48
+ "nobody",
49
+ "contacts"
50
+ ]
51
+ },
52
+ {
53
+ "type": "null"
54
+ }
55
+ ]
56
+ },
57
+ "download": {
58
+ "anyOf": [
59
+ {
60
+ "type": "boolean",
61
+ "description": "Set whether the video can be downloaded."
62
+ },
63
+ {
64
+ "type": "null"
65
+ }
66
+ ]
67
+ },
68
+ "add": {
69
+ "anyOf": [
70
+ {
71
+ "type": "boolean",
72
+ "description": "Set whether other users can add the video to their collections."
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ]
78
+ }
79
+ },
80
+ "type": "object",
81
+ "additionalProperties": false,
82
+ "required": [
83
+ "view",
84
+ "embed",
85
+ "comments",
86
+ "download",
87
+ "add"
88
+ ]
89
+ }
90
+ }