@shotstack/schemas 1.1.2 → 1.3.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.
@@ -715,6 +715,23 @@ export const shotstackDestinationShotstackDestinationSchema = z.object({
715
715
  exclude: z.optional(z.boolean()),
716
716
  });
717
717
  export const shotstackDestinationSchema = shotstackDestinationShotstackDestinationSchema;
718
+ /**
719
+ * Pass additional options to control how TikTok publishes video.
720
+ */
721
+ export const tiktokDestinationOptionsTiktokDestinationOptionsSchema = z.object({
722
+ title: z.optional(z.string().max(150)),
723
+ privacyLevel: z.optional(z.enum(["public", "friends", "private"])),
724
+ disableDuet: z.optional(z.boolean()).default(false),
725
+ disableStitch: z.optional(z.boolean()).default(false),
726
+ disableComment: z.optional(z.boolean()).default(false),
727
+ });
728
+ /**
729
+ * Send videos to TikTok. TikTok credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/tiktok), not in the request.
730
+ */
731
+ export const tiktokDestinationTiktokDestinationSchema = z.object({
732
+ provider: z.string().default("tiktok"),
733
+ options: z.optional(tiktokDestinationOptionsTiktokDestinationOptionsSchema),
734
+ });
718
735
  /**
719
736
  * Options to control the visibility of videos and privacy features.
720
737
  */
@@ -731,6 +748,7 @@ export const vimeoDestinationOptionsVimeoDestinationOptionsSchema = z.object({
731
748
  name: z.optional(z.string()),
732
749
  description: z.optional(z.string()),
733
750
  privacy: z.optional(vimeoDestinationPrivacyOptionsVimeoDestinationPrivacyOptionsSchema),
751
+ folderUri: z.optional(z.string()),
734
752
  });
735
753
  export const vimeoDestinationOptionsSchema = vimeoDestinationOptionsVimeoDestinationOptionsSchema;
736
754
  /**
@@ -777,6 +795,11 @@ export const destinationsDestinationsSchema = z.union([
777
795
  destinations: z.optional(z.literal("vimeoDestination_VimeoDestination")),
778
796
  })
779
797
  .and(vimeoDestinationVimeoDestinationSchema),
798
+ z
799
+ .object({
800
+ destinations: z.optional(z.literal("tiktokDestination_TiktokDestination")),
801
+ })
802
+ .and(tiktokDestinationTiktokDestinationSchema),
780
803
  ]);
781
804
  export const destinationsSchema = destinationsDestinationsSchema;
782
805
  /**
@@ -1135,6 +1158,15 @@ export const richtextpropertiesRichTextBackgroundSchema = z.object({
1135
1158
  borderRadius: z.optional(z.number().gte(0)).default(0),
1136
1159
  });
1137
1160
  export const richTextBackgroundSchema = richtextpropertiesRichTextBackgroundSchema;
1161
+ /**
1162
+ * Border styling properties for the text bounding box.
1163
+ */
1164
+ export const richtextpropertiesRichTextBorderSchema = z.object({
1165
+ width: z.optional(z.number().gte(0)).default(0),
1166
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1167
+ opacity: z.optional(z.number().gte(0).lte(1)).default(1),
1168
+ radius: z.optional(z.number().gte(0)).default(0),
1169
+ });
1138
1170
  /**
1139
1171
  * Font properties for rich text.
1140
1172
  */
@@ -1161,6 +1193,15 @@ export const richtextpropertiesRichTextGradientSchema = z.object({
1161
1193
  .min(2),
1162
1194
  });
1163
1195
  export const richTextGradientSchema = richtextpropertiesRichTextGradientSchema;
1196
+ /**
1197
+ * Padding properties for individual sides of the text bounding box.
1198
+ */
1199
+ export const richtextpropertiesRichTextPaddingSchema = z.object({
1200
+ top: z.optional(z.number().gte(0)).default(0),
1201
+ right: z.optional(z.number().gte(0)).default(0),
1202
+ bottom: z.optional(z.number().gte(0)).default(0),
1203
+ left: z.optional(z.number().gte(0)).default(0),
1204
+ });
1164
1205
  /**
1165
1206
  * Text shadow properties.
1166
1207
  */
@@ -1207,6 +1248,8 @@ export const richtextassetRichTextAssetSchema = z.object({
1207
1248
  stroke: z.optional(richtextpropertiesRichTextStrokeSchema),
1208
1249
  shadow: z.optional(richtextpropertiesRichTextShadowSchema),
1209
1250
  background: z.optional(richtextpropertiesRichTextBackgroundSchema),
1251
+ border: z.optional(richtextpropertiesRichTextBorderSchema),
1252
+ padding: z.optional(z.union([z.number().gte(0), richtextpropertiesRichTextPaddingSchema])),
1210
1253
  align: z.optional(richtextpropertiesRichTextAlignmentSchema),
1211
1254
  animation: z.optional(richtextpropertiesRichTextAnimationSchema),
1212
1255
  });
@@ -1445,11 +1488,21 @@ export const textpropertiesTextAlignmentSchema = z.object({
1445
1488
  vertical: z.optional(z.enum(["top", "center", "bottom"])),
1446
1489
  });
1447
1490
  export const textAlignmentSchema = textpropertiesTextAlignmentSchema;
1491
+ /**
1492
+ * Animation properties for text entrance effects.
1493
+ */
1494
+ export const textpropertiesTextAnimationSchema = z.object({
1495
+ preset: z.enum(["typewriter"]),
1496
+ duration: z.optional(z.number().gte(0.1).lte(30)),
1497
+ });
1448
1498
  /**
1449
1499
  * Displays a background box behind the text.
1450
1500
  */
1451
1501
  export const textpropertiesTextBackgroundSchema = z.object({
1452
- color: z.optional(z.string()),
1502
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1503
+ opacity: z.optional(z.number().gte(0).lte(1)),
1504
+ padding: z.optional(z.number().gte(0).lte(100)),
1505
+ borderRadius: z.optional(z.number().gte(0)),
1453
1506
  });
1454
1507
  export const textBackgroundSchema = textpropertiesTextBackgroundSchema;
1455
1508
  /**
@@ -1464,6 +1517,13 @@ export const textpropertiesTextFontSchema = z.object({
1464
1517
  lineHeight: z.optional(z.number()),
1465
1518
  });
1466
1519
  export const textFontSchema = textpropertiesTextFontSchema;
1520
+ /**
1521
+ * Text stroke (outline) properties.
1522
+ */
1523
+ export const textpropertiesTextStrokeSchema = z.object({
1524
+ width: z.optional(z.number().gte(0).lte(10)),
1525
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1526
+ });
1467
1527
  /**
1468
1528
  * The TextAsset is used to add text and titles to a video. The text can be styled with built in and custom
1469
1529
  * [Fonts](#tocs_font). You can also add a background bounding box used to control wrapping and overflow. Emoticons are also supported.
@@ -1477,6 +1537,9 @@ export const textassetTextAssetSchema = z.object({
1477
1537
  font: z.optional(textpropertiesTextFontSchema),
1478
1538
  background: z.optional(textpropertiesTextBackgroundSchema),
1479
1539
  alignment: z.optional(textpropertiesTextAlignmentSchema),
1540
+ stroke: z.optional(textpropertiesTextStrokeSchema),
1541
+ animation: z.optional(textpropertiesTextAnimationSchema),
1542
+ ellipsis: z.optional(z.string()),
1480
1543
  });
1481
1544
  export const textAssetSchema = textassetTextAssetSchema;
1482
1545
  /**
@@ -1519,7 +1582,7 @@ export const outputOutputSchema = z.object({
1519
1582
  z.literal(59.94),
1520
1583
  z.literal(60),
1521
1584
  ])),
1522
- scaleTo: z.optional(z.enum(["preview", "mobile", "sd", "hd", "1080"])),
1585
+ scaleTo: z.optional(z.enum(["preview", "mobile", "sd", "hd", "1080", "4k"])),
1523
1586
  quality: z.optional(z.enum(["verylow", "low", "medium", "high", "veryhigh"])),
1524
1587
  repeat: z.optional(z.boolean()),
1525
1588
  mute: z.optional(z.boolean()),
@@ -1534,6 +1597,7 @@ export const outputSchema = outputOutputSchema;
1534
1597
  */
1535
1598
  export const transitionTransitionSchema = z.object({
1536
1599
  in: z.optional(z.enum([
1600
+ "none",
1537
1601
  "fade",
1538
1602
  "fadeSlow",
1539
1603
  "fadeFast",
@@ -1597,6 +1661,7 @@ export const transitionTransitionSchema = z.object({
1597
1661
  "zoom",
1598
1662
  ])),
1599
1663
  out: z.optional(z.enum([
1664
+ "none",
1600
1665
  "fade",
1601
1666
  "fadeSlow",
1602
1667
  "fadeFast",
@@ -1718,7 +1783,7 @@ export const audioassetAudioAssetSchema = z.object({
1718
1783
  trim: z.optional(z.number()),
1719
1784
  volume: z.optional(z.union([z.number().gte(0).lte(1), z.array(tweenTweenSchema)])),
1720
1785
  speed: z.optional(z.number().gte(0).lte(10)),
1721
- effect: z.optional(z.enum(["fadeIn", "fadeOut", "fadeInFadeOut"])),
1786
+ effect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
1722
1787
  });
1723
1788
  export const audioAssetSchema = audioassetAudioAssetSchema;
1724
1789
  /**
@@ -1737,11 +1802,11 @@ export const rotatetransformationRotateTransformationSchema = z.object({
1737
1802
  });
1738
1803
  export const rotateTransformationSchema = rotatetransformationRotateTransformationSchema;
1739
1804
  /**
1740
- * Skew a clip so its edges are sheared at an angle. Use values between 0 and 3. Over 3 the clip will be skewed almost flat.
1805
+ * Skew a clip so its edges are sheared at an angle. Use values between -100 and 100. Values over 3 or under -3 will skew the clip almost flat.
1741
1806
  */
1742
1807
  export const skewtransformationSkewTransformationSchema = z.object({
1743
- x: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
1744
- y: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
1808
+ x: z.optional(z.union([z.number().gte(-100).lte(100), z.array(tweenTweenSchema)])),
1809
+ y: z.optional(z.union([z.number().gte(-100).lte(100), z.array(tweenTweenSchema)])),
1745
1810
  });
1746
1811
  export const skewTransformationSchema = skewtransformationSkewTransformationSchema;
1747
1812
  /**
@@ -1810,7 +1875,7 @@ export const videoassetVideoAssetSchema = z.object({
1810
1875
  transcode: z.optional(z.boolean()).default(false),
1811
1876
  trim: z.optional(z.number()),
1812
1877
  volume: z.optional(z.union([z.number().gte(0).lte(1), z.array(tweenTweenSchema)])),
1813
- volumeEffect: z.optional(z.enum(["fadeIn", "fadeOut", "fadeInFadeOut"])),
1878
+ volumeEffect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
1814
1879
  speed: z.optional(z.number().gte(0).lte(10)),
1815
1880
  crop: z.optional(cropCropSchema),
1816
1881
  chromaKey: z.optional(chromakeyChromaKeySchema),
@@ -1891,6 +1956,8 @@ export const clipClipSchema = z.object({
1891
1956
  length: z.union([z.number(), z.literal("auto"), z.literal("end")]),
1892
1957
  fit: z.optional(z.enum(["cover", "contain", "crop", "none"])),
1893
1958
  scale: z.optional(z.number()),
1959
+ width: z.optional(z.int().gte(1).lte(3840)),
1960
+ height: z.optional(z.int().gte(1).lte(2160)),
1894
1961
  position: z.optional(z.enum([
1895
1962
  "top",
1896
1963
  "topRight",
@@ -1936,6 +2003,7 @@ export const clipClipSchema = z.object({
1936
2003
  ])),
1937
2004
  opacity: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
1938
2005
  transform: z.optional(transformationTransformationSchema),
2006
+ alias: z.optional(z.string().regex(/^[A-Za-z0-9_-]+$/)),
1939
2007
  });
1940
2008
  export const clipSchema = clipClipSchema;
1941
2009
  /**
@@ -894,6 +894,25 @@ export const shotstackDestinationShotstackDestinationSchema = z.object({
894
894
  export const shotstackDestinationSchema =
895
895
  shotstackDestinationShotstackDestinationSchema;
896
896
 
897
+ /**
898
+ * Pass additional options to control how TikTok publishes video.
899
+ */
900
+ export const tiktokDestinationOptionsTiktokDestinationOptionsSchema = z.object({
901
+ title: z.optional(z.string().max(150)),
902
+ privacyLevel: z.optional(z.enum(["public", "friends", "private"])),
903
+ disableDuet: z.optional(z.boolean()).default(false),
904
+ disableStitch: z.optional(z.boolean()).default(false),
905
+ disableComment: z.optional(z.boolean()).default(false),
906
+ });
907
+
908
+ /**
909
+ * Send videos to TikTok. TikTok credentials are required and added via the [dashboard](https://dashboard.shotstack.io/integrations/tiktok), not in the request.
910
+ */
911
+ export const tiktokDestinationTiktokDestinationSchema = z.object({
912
+ provider: z.string().default("tiktok"),
913
+ options: z.optional(tiktokDestinationOptionsTiktokDestinationOptionsSchema),
914
+ });
915
+
897
916
  /**
898
917
  * Options to control the visibility of videos and privacy features.
899
918
  */
@@ -918,6 +937,7 @@ export const vimeoDestinationOptionsVimeoDestinationOptionsSchema = z.object({
918
937
  privacy: z.optional(
919
938
  vimeoDestinationPrivacyOptionsVimeoDestinationPrivacyOptionsSchema
920
939
  ),
940
+ folderUri: z.optional(z.string()),
921
941
  });
922
942
 
923
943
  export const vimeoDestinationOptionsSchema =
@@ -975,6 +995,13 @@ export const destinationsDestinationsSchema = z.union([
975
995
  destinations: z.optional(z.literal("vimeoDestination_VimeoDestination")),
976
996
  })
977
997
  .and(vimeoDestinationVimeoDestinationSchema),
998
+ z
999
+ .object({
1000
+ destinations: z.optional(
1001
+ z.literal("tiktokDestination_TiktokDestination")
1002
+ ),
1003
+ })
1004
+ .and(tiktokDestinationTiktokDestinationSchema),
978
1005
  ]);
979
1006
 
980
1007
  export const destinationsSchema = destinationsDestinationsSchema;
@@ -1431,6 +1458,16 @@ export const richtextpropertiesRichTextBackgroundSchema = z.object({
1431
1458
  export const richTextBackgroundSchema =
1432
1459
  richtextpropertiesRichTextBackgroundSchema;
1433
1460
 
1461
+ /**
1462
+ * Border styling properties for the text bounding box.
1463
+ */
1464
+ export const richtextpropertiesRichTextBorderSchema = z.object({
1465
+ width: z.optional(z.number().gte(0)).default(0),
1466
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)).default("#000000"),
1467
+ opacity: z.optional(z.number().gte(0).lte(1)).default(1),
1468
+ radius: z.optional(z.number().gte(0)).default(0),
1469
+ });
1470
+
1434
1471
  /**
1435
1472
  * Font properties for rich text.
1436
1473
  */
@@ -1463,6 +1500,16 @@ export const richtextpropertiesRichTextGradientSchema = z.object({
1463
1500
 
1464
1501
  export const richTextGradientSchema = richtextpropertiesRichTextGradientSchema;
1465
1502
 
1503
+ /**
1504
+ * Padding properties for individual sides of the text bounding box.
1505
+ */
1506
+ export const richtextpropertiesRichTextPaddingSchema = z.object({
1507
+ top: z.optional(z.number().gte(0)).default(0),
1508
+ right: z.optional(z.number().gte(0)).default(0),
1509
+ bottom: z.optional(z.number().gte(0)).default(0),
1510
+ left: z.optional(z.number().gte(0)).default(0),
1511
+ });
1512
+
1466
1513
  /**
1467
1514
  * Text shadow properties.
1468
1515
  */
@@ -1517,6 +1564,10 @@ export const richtextassetRichTextAssetSchema = z.object({
1517
1564
  stroke: z.optional(richtextpropertiesRichTextStrokeSchema),
1518
1565
  shadow: z.optional(richtextpropertiesRichTextShadowSchema),
1519
1566
  background: z.optional(richtextpropertiesRichTextBackgroundSchema),
1567
+ border: z.optional(richtextpropertiesRichTextBorderSchema),
1568
+ padding: z.optional(
1569
+ z.union([z.number().gte(0), richtextpropertiesRichTextPaddingSchema])
1570
+ ),
1520
1571
  align: z.optional(richtextpropertiesRichTextAlignmentSchema),
1521
1572
  animation: z.optional(richtextpropertiesRichTextAnimationSchema),
1522
1573
  });
@@ -1823,11 +1874,22 @@ export const textpropertiesTextAlignmentSchema = z.object({
1823
1874
 
1824
1875
  export const textAlignmentSchema = textpropertiesTextAlignmentSchema;
1825
1876
 
1877
+ /**
1878
+ * Animation properties for text entrance effects.
1879
+ */
1880
+ export const textpropertiesTextAnimationSchema = z.object({
1881
+ preset: z.enum(["typewriter"]),
1882
+ duration: z.optional(z.number().gte(0.1).lte(30)),
1883
+ });
1884
+
1826
1885
  /**
1827
1886
  * Displays a background box behind the text.
1828
1887
  */
1829
1888
  export const textpropertiesTextBackgroundSchema = z.object({
1830
- color: z.optional(z.string()),
1889
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1890
+ opacity: z.optional(z.number().gte(0).lte(1)),
1891
+ padding: z.optional(z.number().gte(0).lte(100)),
1892
+ borderRadius: z.optional(z.number().gte(0)),
1831
1893
  });
1832
1894
 
1833
1895
  export const textBackgroundSchema = textpropertiesTextBackgroundSchema;
@@ -1846,6 +1908,14 @@ export const textpropertiesTextFontSchema = z.object({
1846
1908
 
1847
1909
  export const textFontSchema = textpropertiesTextFontSchema;
1848
1910
 
1911
+ /**
1912
+ * Text stroke (outline) properties.
1913
+ */
1914
+ export const textpropertiesTextStrokeSchema = z.object({
1915
+ width: z.optional(z.number().gte(0).lte(10)),
1916
+ color: z.optional(z.string().regex(/^#[A-Fa-f0-9]{6}$/)),
1917
+ });
1918
+
1849
1919
  /**
1850
1920
  * The TextAsset is used to add text and titles to a video. The text can be styled with built in and custom
1851
1921
  * [Fonts](#tocs_font). You can also add a background bounding box used to control wrapping and overflow. Emoticons are also supported.
@@ -1859,6 +1929,9 @@ export const textassetTextAssetSchema = z.object({
1859
1929
  font: z.optional(textpropertiesTextFontSchema),
1860
1930
  background: z.optional(textpropertiesTextBackgroundSchema),
1861
1931
  alignment: z.optional(textpropertiesTextAlignmentSchema),
1932
+ stroke: z.optional(textpropertiesTextStrokeSchema),
1933
+ animation: z.optional(textpropertiesTextAnimationSchema),
1934
+ ellipsis: z.optional(z.string()),
1862
1935
  });
1863
1936
 
1864
1937
  export const textAssetSchema = textassetTextAssetSchema;
@@ -1911,7 +1984,7 @@ export const outputOutputSchema = z.object({
1911
1984
  z.literal(60),
1912
1985
  ])
1913
1986
  ),
1914
- scaleTo: z.optional(z.enum(["preview", "mobile", "sd", "hd", "1080"])),
1987
+ scaleTo: z.optional(z.enum(["preview", "mobile", "sd", "hd", "1080", "4k"])),
1915
1988
  quality: z.optional(z.enum(["verylow", "low", "medium", "high", "veryhigh"])),
1916
1989
  repeat: z.optional(z.boolean()),
1917
1990
  mute: z.optional(z.boolean()),
@@ -1929,6 +2002,7 @@ export const outputSchema = outputOutputSchema;
1929
2002
  export const transitionTransitionSchema = z.object({
1930
2003
  in: z.optional(
1931
2004
  z.enum([
2005
+ "none",
1932
2006
  "fade",
1933
2007
  "fadeSlow",
1934
2008
  "fadeFast",
@@ -1994,6 +2068,7 @@ export const transitionTransitionSchema = z.object({
1994
2068
  ),
1995
2069
  out: z.optional(
1996
2070
  z.enum([
2071
+ "none",
1997
2072
  "fade",
1998
2073
  "fadeSlow",
1999
2074
  "fadeFast",
@@ -2124,7 +2199,7 @@ export const audioassetAudioAssetSchema = z.object({
2124
2199
  z.union([z.number().gte(0).lte(1), z.array(tweenTweenSchema)])
2125
2200
  ),
2126
2201
  speed: z.optional(z.number().gte(0).lte(10)),
2127
- effect: z.optional(z.enum(["fadeIn", "fadeOut", "fadeInFadeOut"])),
2202
+ effect: z.optional(z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])),
2128
2203
  });
2129
2204
 
2130
2205
  export const audioAssetSchema = audioassetAudioAssetSchema;
@@ -2156,11 +2231,15 @@ export const rotateTransformationSchema =
2156
2231
  rotatetransformationRotateTransformationSchema;
2157
2232
 
2158
2233
  /**
2159
- * Skew a clip so its edges are sheared at an angle. Use values between 0 and 3. Over 3 the clip will be skewed almost flat.
2234
+ * Skew a clip so its edges are sheared at an angle. Use values between -100 and 100. Values over 3 or under -3 will skew the clip almost flat.
2160
2235
  */
2161
2236
  export const skewtransformationSkewTransformationSchema = z.object({
2162
- x: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
2163
- y: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
2237
+ x: z.optional(
2238
+ z.union([z.number().gte(-100).lte(100), z.array(tweenTweenSchema)])
2239
+ ),
2240
+ y: z.optional(
2241
+ z.union([z.number().gte(-100).lte(100), z.array(tweenTweenSchema)])
2242
+ ),
2164
2243
  });
2165
2244
 
2166
2245
  export const skewTransformationSchema =
@@ -2244,7 +2323,9 @@ export const videoassetVideoAssetSchema = z.object({
2244
2323
  volume: z.optional(
2245
2324
  z.union([z.number().gte(0).lte(1), z.array(tweenTweenSchema)])
2246
2325
  ),
2247
- volumeEffect: z.optional(z.enum(["fadeIn", "fadeOut", "fadeInFadeOut"])),
2326
+ volumeEffect: z.optional(
2327
+ z.enum(["none", "fadeIn", "fadeOut", "fadeInFadeOut"])
2328
+ ),
2248
2329
  speed: z.optional(z.number().gte(0).lte(10)),
2249
2330
  crop: z.optional(cropCropSchema),
2250
2331
  chromaKey: z.optional(chromakeyChromaKeySchema),
@@ -2329,6 +2410,8 @@ export const clipClipSchema = z.object({
2329
2410
  length: z.union([z.number(), z.literal("auto"), z.literal("end")]),
2330
2411
  fit: z.optional(z.enum(["cover", "contain", "crop", "none"])),
2331
2412
  scale: z.optional(z.number()),
2413
+ width: z.optional(z.int().gte(1).lte(3840)),
2414
+ height: z.optional(z.int().gte(1).lte(2160)),
2332
2415
  position: z.optional(
2333
2416
  z.enum([
2334
2417
  "top",
@@ -2380,6 +2463,7 @@ export const clipClipSchema = z.object({
2380
2463
  ),
2381
2464
  opacity: z.optional(z.union([z.number(), z.array(tweenTweenSchema)])),
2382
2465
  transform: z.optional(transformationTransformationSchema),
2466
+ alias: z.optional(z.string().regex(/^[A-Za-z0-9_-]+$/)),
2383
2467
  });
2384
2468
 
2385
2469
  export const clipSchema = clipClipSchema;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shotstack/schemas",
3
- "version": "1.1.2",
3
+ "version": "1.3.0",
4
4
  "description": "Centralized OpenAPI schemas and TypeScript types for Shotstack API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",