@upstart.gg/sdk 0.0.135 → 0.0.137

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 (473) hide show
  1. package/dist/shared/ai/schemas.d.ts +11 -2
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +38 -8
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +93 -81
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ajv.js +33 -32
  8. package/dist/shared/ajv.js.map +1 -1
  9. package/dist/shared/attributes.d.ts +86 -86
  10. package/dist/shared/attributes.d.ts.map +1 -1
  11. package/dist/shared/attributes.js +22 -25
  12. package/dist/shared/brick-manifest.d.ts +8 -5
  13. package/dist/shared/brick-manifest.d.ts.map +1 -1
  14. package/dist/shared/brick-manifest.js +3 -18
  15. package/dist/shared/bricks/manifests/_types.d.ts +9 -0
  16. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -0
  17. package/dist/shared/bricks/manifests/_types.js +3 -0
  18. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +4 -8
  19. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  20. package/dist/shared/bricks/manifests/accordion.manifest.js +13 -20
  21. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  22. package/dist/shared/bricks/manifests/all-manifests.js +44 -43
  23. package/dist/shared/bricks/manifests/all-props.d.ts +1501 -0
  24. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -0
  25. package/dist/shared/bricks/manifests/all-props.js +243 -0
  26. package/dist/shared/bricks/manifests/all-props.js.map +1 -0
  27. package/dist/shared/bricks/manifests/box.manifest.d.ts +4 -8
  28. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  29. package/dist/shared/bricks/manifests/box.manifest.js +16 -20
  30. package/dist/shared/bricks/manifests/button.manifest.d.ts +5 -12
  31. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/button.manifest.js +13 -20
  33. package/dist/shared/bricks/manifests/card.manifest.d.ts +10 -9
  34. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  35. package/dist/shared/bricks/manifests/card.manifest.js +18 -20
  36. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +4 -8
  37. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  38. package/dist/shared/bricks/manifests/carousel.manifest.js +15 -20
  39. package/dist/shared/bricks/manifests/footer.manifest.d.ts +5 -9
  40. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  41. package/dist/shared/bricks/manifests/footer.manifest.js +13 -20
  42. package/dist/shared/bricks/manifests/form.manifest.d.ts +5 -9
  43. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  44. package/dist/shared/bricks/manifests/form.manifest.js +13 -20
  45. package/dist/shared/bricks/manifests/hero.manifest.d.ts +4 -8
  46. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  47. package/dist/shared/bricks/manifests/hero.manifest.js +13 -20
  48. package/dist/shared/bricks/manifests/html.manifest.d.ts +3 -7
  49. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  50. package/dist/shared/bricks/manifests/html.manifest.js +8 -20
  51. package/dist/shared/bricks/manifests/icon.manifest.d.ts +3 -7
  52. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  53. package/dist/shared/bricks/manifests/icon.manifest.js +13 -20
  54. package/dist/shared/bricks/manifests/image.manifest.d.ts +3 -2
  55. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/image.manifest.js +16 -20
  57. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +4 -8
  58. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  59. package/dist/shared/bricks/manifests/images-gallery.manifest.js +15 -20
  60. package/dist/shared/bricks/manifests/map.manifest.d.ts +3 -7
  61. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  62. package/dist/shared/bricks/manifests/map.manifest.js +11 -20
  63. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +7 -11
  64. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  65. package/dist/shared/bricks/manifests/navbar.manifest.js +15 -20
  66. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +3 -7
  67. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/sidebar.manifest.js +13 -20
  69. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +4 -8
  70. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  71. package/dist/shared/bricks/manifests/social-links.manifest.js +14 -20
  72. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +3 -7
  73. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  74. package/dist/shared/bricks/manifests/spacer.manifest.js +8 -20
  75. package/dist/shared/bricks/manifests/table.manifest.d.ts +6 -10
  76. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  77. package/dist/shared/bricks/manifests/table.manifest.js +15 -20
  78. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +6 -10
  79. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/tabs.manifest.js +15 -20
  81. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +4 -8
  82. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  83. package/dist/shared/bricks/manifests/testimonials.manifest.js +18 -20
  84. package/dist/shared/bricks/manifests/text.manifest.d.ts +4 -12
  85. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  86. package/dist/shared/bricks/manifests/text.manifest.js +13 -20
  87. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +9 -13
  88. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  89. package/dist/shared/bricks/manifests/timeline.manifest.js +15 -20
  90. package/dist/shared/bricks/manifests/video.manifest.d.ts +3 -7
  91. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  92. package/dist/shared/bricks/manifests/video.manifest.js +11 -20
  93. package/dist/shared/bricks/props/align.d.ts +0 -3
  94. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  95. package/dist/shared/bricks/props/align.js +4 -11
  96. package/dist/shared/bricks/props/background.d.ts +2 -8
  97. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  98. package/dist/shared/bricks/props/background.js +4 -9
  99. package/dist/shared/bricks/props/border.d.ts +0 -7
  100. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  101. package/dist/shared/bricks/props/border.js +5 -10
  102. package/dist/shared/bricks/props/color-preset.d.ts +316 -6
  103. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  104. package/dist/shared/bricks/props/color-preset.js +2 -5
  105. package/dist/shared/bricks/props/color.d.ts +3 -5
  106. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  107. package/dist/shared/bricks/props/color.js +3 -8
  108. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  109. package/dist/shared/bricks/props/common.js +4 -5
  110. package/dist/shared/bricks/props/css-length.d.ts +0 -1
  111. package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
  112. package/dist/shared/bricks/props/css-length.js +1 -4
  113. package/dist/shared/bricks/props/datasource.d.ts +3 -3
  114. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  115. package/dist/shared/bricks/props/datasource.js +74 -76
  116. package/dist/shared/bricks/props/datasource.js.map +1 -1
  117. package/dist/shared/bricks/props/date.js +21 -4
  118. package/dist/shared/bricks/props/date.js.map +1 -1
  119. package/dist/shared/bricks/props/direction.d.ts +1 -2
  120. package/dist/shared/bricks/props/direction.d.ts.map +1 -1
  121. package/dist/shared/bricks/props/direction.js +4 -7
  122. package/dist/shared/bricks/props/dynamic.d.ts +5 -67
  123. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  124. package/dist/shared/bricks/props/dynamic.js +6 -24
  125. package/dist/shared/bricks/props/effects.d.ts +1 -3
  126. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  127. package/dist/shared/bricks/props/effects.js +4 -9
  128. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
  129. package/dist/shared/bricks/props/geolocation.js +3 -6
  130. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  131. package/dist/shared/bricks/props/helpers.js +5 -6
  132. package/dist/shared/bricks/props/image.d.ts +2 -8
  133. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  134. package/dist/shared/bricks/props/image.js +4 -7
  135. package/dist/shared/bricks/props/string.d.ts +2 -5
  136. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  137. package/dist/shared/bricks/props/string.js +3 -10
  138. package/dist/shared/bricks/props/tags.d.ts +0 -1
  139. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  140. package/dist/shared/bricks/props/tags.js +3 -6
  141. package/dist/shared/bricks/props/text.d.ts +0 -3
  142. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  143. package/dist/shared/bricks/props/text.js +4 -11
  144. package/dist/shared/bricks/props/types.d.ts +2 -2
  145. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  146. package/dist/shared/bricks.d.ts +64 -152
  147. package/dist/shared/bricks.d.ts.map +1 -1
  148. package/dist/shared/bricks.js +49 -52
  149. package/dist/shared/chunk-2O5HVPID.js +41 -0
  150. package/dist/shared/chunk-2O5HVPID.js.map +1 -0
  151. package/dist/shared/{chunk-F22LDHEO.js → chunk-2U5U3CCJ.js} +3 -18
  152. package/dist/shared/chunk-2U5U3CCJ.js.map +1 -0
  153. package/dist/shared/{chunk-LXAO3JA6.js → chunk-4KY7OZWD.js} +35 -35
  154. package/dist/shared/chunk-4KY7OZWD.js.map +1 -0
  155. package/dist/shared/{chunk-TNMNMYOB.js → chunk-5RCC2STG.js} +2 -13
  156. package/dist/shared/chunk-5RCC2STG.js.map +1 -0
  157. package/dist/shared/{chunk-V3UA3LRK.js → chunk-6AE7UD73.js} +56 -37
  158. package/dist/shared/chunk-6AE7UD73.js.map +1 -0
  159. package/dist/shared/chunk-7U5WPHXB.js +346 -0
  160. package/dist/shared/chunk-7U5WPHXB.js.map +1 -0
  161. package/dist/shared/{chunk-Q4NPPLEU.js → chunk-BHARJBEK.js} +2 -9
  162. package/dist/shared/chunk-BHARJBEK.js.map +1 -0
  163. package/dist/shared/chunk-BZTWZC77.js +530 -0
  164. package/dist/shared/chunk-BZTWZC77.js.map +1 -0
  165. package/dist/shared/{chunk-QSND5IWT.js → chunk-DCM4732T.js} +24 -43
  166. package/dist/shared/chunk-DCM4732T.js.map +1 -0
  167. package/dist/shared/{chunk-W6MRYRGJ.js → chunk-DRQKKPTX.js} +6 -20
  168. package/dist/shared/chunk-DRQKKPTX.js.map +1 -0
  169. package/dist/shared/{chunk-CSF2WQX2.js → chunk-EID5HPF3.js} +15 -12
  170. package/dist/shared/chunk-EID5HPF3.js.map +1 -0
  171. package/dist/shared/chunk-EMF5TCPX.js +389 -0
  172. package/dist/shared/chunk-EMF5TCPX.js.map +1 -0
  173. package/dist/shared/chunk-FD7YYFRI.js +225 -0
  174. package/dist/shared/chunk-FD7YYFRI.js.map +1 -0
  175. package/dist/shared/{chunk-MLZT7MRQ.js → chunk-FHA4DFIM.js} +26 -27
  176. package/dist/shared/chunk-FHA4DFIM.js.map +1 -0
  177. package/dist/shared/{chunk-GRMY35BU.js → chunk-FUUSAMN3.js} +165 -40
  178. package/dist/shared/chunk-FUUSAMN3.js.map +1 -0
  179. package/dist/shared/chunk-GDYCCB3B.js +22 -0
  180. package/dist/shared/chunk-GDYCCB3B.js.map +1 -0
  181. package/dist/shared/chunk-GLV6QIIM.js +41 -0
  182. package/dist/shared/chunk-GLV6QIIM.js.map +1 -0
  183. package/dist/shared/chunk-H6TMBELF.js +374 -0
  184. package/dist/shared/chunk-H6TMBELF.js.map +1 -0
  185. package/dist/shared/{chunk-BMWRR4DI.js → chunk-HUWMIXNN.js} +26 -28
  186. package/dist/shared/chunk-HUWMIXNN.js.map +1 -0
  187. package/dist/shared/chunk-HY7JOP3J.js +150 -0
  188. package/dist/shared/chunk-HY7JOP3J.js.map +1 -0
  189. package/dist/shared/{chunk-TFGGYU6Y.js → chunk-IEMCCHM4.js} +7 -12
  190. package/dist/shared/chunk-IEMCCHM4.js.map +1 -0
  191. package/dist/shared/{chunk-TB3X4LRQ.js → chunk-J45LSQT6.js} +2 -2
  192. package/dist/shared/chunk-J45LSQT6.js.map +1 -0
  193. package/dist/shared/{chunk-WGDUJSSS.js → chunk-JF52BBFD.js} +27 -28
  194. package/dist/shared/chunk-JF52BBFD.js.map +1 -0
  195. package/dist/shared/{chunk-GPCI2N2A.js → chunk-JLDAS3VE.js} +136 -33
  196. package/dist/shared/chunk-JLDAS3VE.js.map +1 -0
  197. package/dist/shared/{chunk-SE6O65HC.js → chunk-JSDKK5QN.js} +10 -23
  198. package/dist/shared/chunk-JSDKK5QN.js.map +1 -0
  199. package/dist/shared/chunk-JW7MQAU4.js +354 -0
  200. package/dist/shared/chunk-JW7MQAU4.js.map +1 -0
  201. package/dist/shared/{chunk-RV7AYVFV.js → chunk-KKWT3OXF.js} +4 -19
  202. package/dist/shared/chunk-KKWT3OXF.js.map +1 -0
  203. package/dist/shared/{chunk-TEO6TJOM.js → chunk-KQH6V22E.js} +36 -35
  204. package/dist/shared/{chunk-TEO6TJOM.js.map → chunk-KQH6V22E.js.map} +1 -1
  205. package/dist/shared/{chunk-3KLRW4I2.js → chunk-LGDDJJHK.js} +212 -156
  206. package/dist/shared/chunk-LGDDJJHK.js.map +1 -0
  207. package/dist/shared/{chunk-QL3T5HJQ.js → chunk-LGGPCCCY.js} +3 -3
  208. package/dist/shared/chunk-LGGPCCCY.js.map +1 -0
  209. package/dist/shared/{chunk-2HO4FHLM.js → chunk-LPAQ47C6.js} +137 -171
  210. package/dist/shared/chunk-LPAQ47C6.js.map +1 -0
  211. package/dist/shared/chunk-MO6CRLQA.js +73 -0
  212. package/dist/shared/chunk-MO6CRLQA.js.map +1 -0
  213. package/dist/shared/{chunk-SHUGHJ7V.js → chunk-MYOLWTB2.js} +29 -32
  214. package/dist/shared/chunk-MYOLWTB2.js.map +1 -0
  215. package/dist/shared/{chunk-Z2NTDFB4.js → chunk-O24RDXZS.js} +34 -34
  216. package/dist/shared/chunk-O24RDXZS.js.map +1 -0
  217. package/dist/shared/{chunk-BPBKHEQ5.js → chunk-OJ6KL7FU.js} +1 -8
  218. package/dist/shared/chunk-OJ6KL7FU.js.map +1 -0
  219. package/dist/shared/{chunk-GCQURRVB.js → chunk-PF75LW33.js} +24 -27
  220. package/dist/shared/chunk-PF75LW33.js.map +1 -0
  221. package/dist/shared/{chunk-EWSPTRDL.js → chunk-QEJGPYTB.js} +132 -48
  222. package/dist/shared/chunk-QEJGPYTB.js.map +1 -0
  223. package/dist/shared/{chunk-P3RH5URN.js → chunk-SK2O7GFC.js} +17 -18
  224. package/dist/shared/chunk-SK2O7GFC.js.map +1 -0
  225. package/dist/shared/{chunk-UQF52PWK.js → chunk-SQXZNGQF.js} +8 -23
  226. package/dist/shared/chunk-SQXZNGQF.js.map +1 -0
  227. package/dist/shared/{chunk-NTLAKMMQ.js → chunk-SRYBJ6NQ.js} +6 -17
  228. package/dist/shared/chunk-SRYBJ6NQ.js.map +1 -0
  229. package/dist/shared/{chunk-O5PLB3YB.js → chunk-T6C3NG2L.js} +68 -59
  230. package/dist/shared/chunk-T6C3NG2L.js.map +1 -0
  231. package/dist/shared/{chunk-U7TVEPKA.js → chunk-TBT2PTGB.js} +41 -33
  232. package/dist/shared/chunk-TBT2PTGB.js.map +1 -0
  233. package/dist/shared/{chunk-CKFRSHR2.js → chunk-U4KZUX37.js} +18 -19
  234. package/dist/shared/chunk-U4KZUX37.js.map +1 -0
  235. package/dist/shared/{chunk-4WI23M7W.js → chunk-VSLRTXLF.js} +11 -4
  236. package/dist/shared/chunk-VSLRTXLF.js.map +1 -0
  237. package/dist/shared/{chunk-BHC2A43S.js → chunk-VTCHJT4O.js} +3 -3
  238. package/dist/shared/{chunk-BHC2A43S.js.map → chunk-VTCHJT4O.js.map} +1 -1
  239. package/dist/shared/{chunk-DRTGM2UJ.js → chunk-W2RFDII5.js} +3 -3
  240. package/dist/shared/chunk-W2RFDII5.js.map +1 -0
  241. package/dist/shared/{chunk-Y74LZNND.js → chunk-WPZV3LYL.js} +4 -10
  242. package/dist/shared/chunk-WPZV3LYL.js.map +1 -0
  243. package/dist/shared/chunk-XFZQGRRL.js +101 -0
  244. package/dist/shared/chunk-XFZQGRRL.js.map +1 -0
  245. package/dist/shared/{chunk-QQQ3FYPG.js → chunk-XK2CERPB.js} +147 -31
  246. package/dist/shared/chunk-XK2CERPB.js.map +1 -0
  247. package/dist/shared/chunk-XNRSL6FL.js +78 -0
  248. package/dist/shared/chunk-XNRSL6FL.js.map +1 -0
  249. package/dist/shared/{chunk-2RK3CPYJ.js → chunk-XXPSM6UA.js} +9 -12
  250. package/dist/shared/chunk-XXPSM6UA.js.map +1 -0
  251. package/dist/shared/{chunk-ZLYIRH2B.js → chunk-ZRBTAC3G.js} +3 -18
  252. package/dist/shared/chunk-ZRBTAC3G.js.map +1 -0
  253. package/dist/shared/{chunk-Z35I5JM5.js → chunk-ZVJNRKT4.js} +18 -20
  254. package/dist/shared/chunk-ZVJNRKT4.js.map +1 -0
  255. package/dist/shared/context.d.ts +402 -22
  256. package/dist/shared/context.d.ts.map +1 -1
  257. package/dist/shared/context.js +93 -0
  258. package/dist/shared/context.js.map +1 -1
  259. package/dist/shared/datarecords/external/airtable/types.d.ts +1 -1
  260. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  261. package/dist/shared/datarecords/external/airtable/types.js +2 -1
  262. package/dist/shared/datarecords/types.d.ts +10 -63
  263. package/dist/shared/datarecords/types.d.ts.map +1 -1
  264. package/dist/shared/datarecords/types.js +5 -6
  265. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +1 -1
  266. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  267. package/dist/shared/datasources/external/instagram/feed/schema.js +4 -1
  268. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  269. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +6 -6
  270. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  271. package/dist/shared/datasources/external/mastodon/status/schema.js +6 -19
  272. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  273. package/dist/shared/datasources/external/meta/oauth/config.d.ts +2 -2
  274. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  275. package/dist/shared/datasources/external/meta/oauth/config.js +4 -1
  276. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  277. package/dist/shared/datasources/external/threads/media/fetcher.js +3 -3
  278. package/dist/shared/datasources/external/threads/media/schema.d.ts +1 -1
  279. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  280. package/dist/shared/datasources/external/threads/media/schema.js +4 -8
  281. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  282. package/dist/shared/datasources/internal/blog/schema.d.ts +1 -1
  283. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  284. package/dist/shared/datasources/internal/blog/schema.js +4 -1
  285. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  286. package/dist/shared/datasources/types.d.ts +25 -25
  287. package/dist/shared/datasources/types.d.ts.map +1 -1
  288. package/dist/shared/datasources/types.js +3 -16
  289. package/dist/shared/datasources.d.ts +1 -1
  290. package/dist/shared/datasources.d.ts.map +1 -1
  291. package/dist/shared/datasources.js +1 -3
  292. package/dist/shared/datasources.js.map +1 -1
  293. package/dist/shared/images.d.ts +1 -1
  294. package/dist/shared/images.d.ts.map +1 -1
  295. package/dist/shared/images.js +4 -38
  296. package/dist/shared/images.js.map +1 -1
  297. package/dist/shared/page.d.ts +139 -22
  298. package/dist/shared/page.d.ts.map +1 -1
  299. package/dist/shared/page.js +51 -49
  300. package/dist/shared/responsive.js +1 -1
  301. package/dist/shared/site.d.ts +80 -197
  302. package/dist/shared/site.d.ts.map +1 -1
  303. package/dist/shared/site.js +55 -114
  304. package/dist/shared/site.js.map +1 -1
  305. package/dist/shared/sitemap.d.ts +6 -327
  306. package/dist/shared/sitemap.d.ts.map +1 -1
  307. package/dist/shared/sitemap.js +50 -58
  308. package/dist/shared/theme.d.ts +0 -37
  309. package/dist/shared/theme.d.ts.map +1 -1
  310. package/dist/shared/theme.js +4 -21
  311. package/dist/shared/utils/llm.d.ts +1 -10
  312. package/dist/shared/utils/llm.d.ts.map +1 -1
  313. package/dist/shared/utils/llm.js +1 -18
  314. package/dist/shared/utils/schema.d.ts +3 -2
  315. package/dist/shared/utils/schema.d.ts.map +1 -1
  316. package/dist/shared/utils/schema.js +2 -17
  317. package/dist/shared/utils/string-enum.d.ts +9 -3
  318. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  319. package/dist/shared/utils/string-enum.js +1 -1
  320. package/package.json +21 -5
  321. package/src/shared/ai/schemas.ts +41 -10
  322. package/src/shared/ai/types.ts +78 -76
  323. package/src/shared/attributes.ts +56 -46
  324. package/src/shared/brick-manifest.ts +5 -6
  325. package/src/shared/bricks/manifests/_types.ts +9 -0
  326. package/src/shared/bricks/manifests/accordion.manifest.ts +138 -171
  327. package/src/shared/bricks/manifests/all-manifests.ts +1 -0
  328. package/src/shared/bricks/manifests/all-props.ts +165 -0
  329. package/src/shared/bricks/manifests/box.manifest.ts +214 -150
  330. package/src/shared/bricks/manifests/button.manifest.ts +204 -79
  331. package/src/shared/bricks/manifests/card.manifest.ts +229 -43
  332. package/src/shared/bricks/manifests/carousel.manifest.ts +165 -35
  333. package/src/shared/bricks/manifests/footer.manifest.ts +18 -20
  334. package/src/shared/bricks/manifests/form.manifest.ts +136 -22
  335. package/src/shared/bricks/manifests/hero.manifest.ts +121 -38
  336. package/src/shared/bricks/manifests/html.manifest.ts +2 -5
  337. package/src/shared/bricks/manifests/icon.manifest.ts +225 -46
  338. package/src/shared/bricks/manifests/image.manifest.ts +125 -21
  339. package/src/shared/bricks/manifests/images-gallery.manifest.ts +15 -20
  340. package/src/shared/bricks/manifests/map.manifest.ts +12 -15
  341. package/src/shared/bricks/manifests/navbar.manifest.ts +22 -26
  342. package/src/shared/bricks/manifests/sidebar.manifest.ts +11 -14
  343. package/src/shared/bricks/manifests/social-links.manifest.ts +19 -24
  344. package/src/shared/bricks/manifests/spacer.manifest.ts +2 -5
  345. package/src/shared/bricks/manifests/table.manifest.ts +17 -20
  346. package/src/shared/bricks/manifests/tabs.manifest.ts +16 -21
  347. package/src/shared/bricks/manifests/testimonials.manifest.ts +23 -25
  348. package/src/shared/bricks/manifests/text.manifest.ts +47 -29
  349. package/src/shared/bricks/manifests/timeline.manifest.ts +31 -29
  350. package/src/shared/bricks/manifests/video.manifest.ts +11 -15
  351. package/src/shared/bricks/props/align.ts +0 -13
  352. package/src/shared/bricks/props/background.ts +1 -14
  353. package/src/shared/bricks/props/border.ts +2 -13
  354. package/src/shared/bricks/props/color-preset.ts +9 -10
  355. package/src/shared/bricks/props/color.ts +7 -18
  356. package/src/shared/bricks/props/common.ts +6 -7
  357. package/src/shared/bricks/props/css-length.ts +0 -5
  358. package/src/shared/bricks/props/datasource.ts +72 -74
  359. package/src/shared/bricks/props/direction.ts +1 -5
  360. package/src/shared/bricks/props/dynamic.ts +0 -11
  361. package/src/shared/bricks/props/effects.ts +0 -9
  362. package/src/shared/bricks/props/geolocation.ts +3 -3
  363. package/src/shared/bricks/props/helpers.ts +1 -1
  364. package/src/shared/bricks/props/image.ts +4 -16
  365. package/src/shared/bricks/props/string.ts +6 -19
  366. package/src/shared/bricks/props/tags.ts +0 -5
  367. package/src/shared/bricks/props/tests/background.test.ts +1 -15
  368. package/src/shared/bricks/props/tests/image.test.ts +3 -9
  369. package/src/shared/bricks/props/tests/string.test.ts +2 -26
  370. package/src/shared/bricks/props/text.ts +0 -12
  371. package/src/shared/bricks/props/types.ts +4 -3
  372. package/src/shared/bricks.ts +164 -1025
  373. package/src/shared/context.ts +24 -23
  374. package/src/shared/datarecords/external/airtable/types.ts +12 -11
  375. package/src/shared/datarecords/types.ts +22 -44
  376. package/src/shared/datasources/external/instagram/feed/schema.ts +2 -1
  377. package/src/shared/datasources/external/mastodon/status/schema.ts +4 -19
  378. package/src/shared/datasources/external/meta/oauth/config.ts +2 -1
  379. package/src/shared/datasources/external/threads/media/schema.ts +2 -8
  380. package/src/shared/datasources/internal/blog/schema.ts +2 -1
  381. package/src/shared/datasources/types.ts +64 -79
  382. package/src/shared/datasources.ts +2 -4
  383. package/src/shared/images.ts +12 -18
  384. package/src/shared/page.ts +9 -2
  385. package/src/shared/site.ts +3 -3
  386. package/src/shared/sitemap.ts +3 -68
  387. package/src/shared/tests/attributes.test.ts +2 -0
  388. package/src/shared/theme.ts +81 -96
  389. package/src/shared/utils/llm.ts +5 -191
  390. package/src/shared/utils/schema.ts +71 -244
  391. package/src/shared/utils/string-enum.ts +25 -4
  392. package/src/shared/utils/tests/schema.test.ts +112 -314
  393. package/dist/shared/chunk-2HO4FHLM.js.map +0 -1
  394. package/dist/shared/chunk-2RK3CPYJ.js.map +0 -1
  395. package/dist/shared/chunk-3KLRW4I2.js.map +0 -1
  396. package/dist/shared/chunk-4WI23M7W.js.map +0 -1
  397. package/dist/shared/chunk-6E42XWFH.js +0 -103
  398. package/dist/shared/chunk-6E42XWFH.js.map +0 -1
  399. package/dist/shared/chunk-A2QPY54H.js +0 -13
  400. package/dist/shared/chunk-A2QPY54H.js.map +0 -1
  401. package/dist/shared/chunk-BMWRR4DI.js.map +0 -1
  402. package/dist/shared/chunk-BPBKHEQ5.js.map +0 -1
  403. package/dist/shared/chunk-BW6EFRSF.js +0 -794
  404. package/dist/shared/chunk-BW6EFRSF.js.map +0 -1
  405. package/dist/shared/chunk-CKFRSHR2.js.map +0 -1
  406. package/dist/shared/chunk-CSF2WQX2.js.map +0 -1
  407. package/dist/shared/chunk-D4YQ6ABM.js +0 -338
  408. package/dist/shared/chunk-D4YQ6ABM.js.map +0 -1
  409. package/dist/shared/chunk-DRTGM2UJ.js.map +0 -1
  410. package/dist/shared/chunk-EQMU6NIU.js +0 -1222
  411. package/dist/shared/chunk-EQMU6NIU.js.map +0 -1
  412. package/dist/shared/chunk-EWSPTRDL.js.map +0 -1
  413. package/dist/shared/chunk-F22LDHEO.js.map +0 -1
  414. package/dist/shared/chunk-FVU5PXRC.js +0 -244
  415. package/dist/shared/chunk-FVU5PXRC.js.map +0 -1
  416. package/dist/shared/chunk-GCQURRVB.js.map +0 -1
  417. package/dist/shared/chunk-GPCI2N2A.js.map +0 -1
  418. package/dist/shared/chunk-GRMY35BU.js.map +0 -1
  419. package/dist/shared/chunk-JK2FWFJU.js +0 -15
  420. package/dist/shared/chunk-JK2FWFJU.js.map +0 -1
  421. package/dist/shared/chunk-LXAO3JA6.js.map +0 -1
  422. package/dist/shared/chunk-MLZT7MRQ.js.map +0 -1
  423. package/dist/shared/chunk-NT3IW52F.js +0 -260
  424. package/dist/shared/chunk-NT3IW52F.js.map +0 -1
  425. package/dist/shared/chunk-NTLAKMMQ.js.map +0 -1
  426. package/dist/shared/chunk-O5PLB3YB.js.map +0 -1
  427. package/dist/shared/chunk-P3RH5URN.js.map +0 -1
  428. package/dist/shared/chunk-Q4NPPLEU.js.map +0 -1
  429. package/dist/shared/chunk-QL3T5HJQ.js.map +0 -1
  430. package/dist/shared/chunk-QQQ3FYPG.js.map +0 -1
  431. package/dist/shared/chunk-QSND5IWT.js.map +0 -1
  432. package/dist/shared/chunk-RV7AYVFV.js.map +0 -1
  433. package/dist/shared/chunk-SE6O65HC.js.map +0 -1
  434. package/dist/shared/chunk-SHUGHJ7V.js.map +0 -1
  435. package/dist/shared/chunk-TB3X4LRQ.js.map +0 -1
  436. package/dist/shared/chunk-TFGGYU6Y.js.map +0 -1
  437. package/dist/shared/chunk-TNMNMYOB.js.map +0 -1
  438. package/dist/shared/chunk-U7TVEPKA.js.map +0 -1
  439. package/dist/shared/chunk-UQF52PWK.js.map +0 -1
  440. package/dist/shared/chunk-V3UA3LRK.js.map +0 -1
  441. package/dist/shared/chunk-W6MRYRGJ.js.map +0 -1
  442. package/dist/shared/chunk-WGDUJSSS.js.map +0 -1
  443. package/dist/shared/chunk-WKN566LN.js +0 -29
  444. package/dist/shared/chunk-WKN566LN.js.map +0 -1
  445. package/dist/shared/chunk-X6N463D4.js +0 -222
  446. package/dist/shared/chunk-X6N463D4.js.map +0 -1
  447. package/dist/shared/chunk-X75YV73Q.js +0 -178
  448. package/dist/shared/chunk-X75YV73Q.js.map +0 -1
  449. package/dist/shared/chunk-Y74LZNND.js.map +0 -1
  450. package/dist/shared/chunk-Z2NTDFB4.js.map +0 -1
  451. package/dist/shared/chunk-Z35I5JM5.js.map +0 -1
  452. package/dist/shared/chunk-ZLYIRH2B.js.map +0 -1
  453. package/dist/shared/schema-registry.d.ts +0 -5
  454. package/dist/shared/schema-registry.d.ts.map +0 -1
  455. package/dist/shared/schema-registry.js +0 -119
  456. package/dist/shared/schema-registry.js.map +0 -1
  457. package/dist/shared/tests/schema-registry.test.d.ts +0 -2
  458. package/dist/shared/tests/schema-registry.test.d.ts.map +0 -1
  459. package/dist/shared/utils/schema-registry.d.ts +0 -5
  460. package/dist/shared/utils/schema-registry.d.ts.map +0 -1
  461. package/dist/shared/utils/schema-registry.js +0 -29
  462. package/dist/shared/utils/tests/schema-registry.test.d.ts +0 -2
  463. package/dist/shared/utils/tests/schema-registry.test.d.ts.map +0 -1
  464. package/dist/shared/utils/typed-ref.d.ts +0 -43
  465. package/dist/shared/utils/typed-ref.d.ts.map +0 -1
  466. package/dist/shared/utils/typed-ref.js +0 -10
  467. package/dist/shared/utils/typed-ref.js.map +0 -1
  468. package/src/shared/schema-registry.ts +0 -82
  469. package/src/shared/tests/schema-registry.test.ts +0 -14
  470. package/src/shared/utils/schema-registry.ts +0 -82
  471. package/src/shared/utils/tests/schema-registry.test.ts +0 -13
  472. package/src/shared/utils/typed-ref.ts +0 -53
  473. /package/dist/shared/{utils/schema-registry.js.map → bricks/manifests/_types.js.map} +0 -0
@@ -1,6 +1,14 @@
1
- import type { ImageSearchResultsType } from "./images";
2
- import type { VersionedPage } from "./page";
3
- import type { Site } from "./site";
1
+ import { type Static, Type } from "@sinclair/typebox";
2
+ import { imageResultsSchema } from "./images";
3
+ import { versionedPageSchema } from "./page";
4
+ import { siteSchema } from "./site";
5
+
6
+ export const generationStateSchema = Type.Object({
7
+ isReady: Type.Boolean(),
8
+ isSetup: Type.Boolean(),
9
+ hasSitemap: Type.Boolean(),
10
+ hasThemesGenerated: Type.Boolean(),
11
+ });
4
12
 
5
13
  export type GenerationState = {
6
14
  isReady: boolean;
@@ -9,24 +17,17 @@ export type GenerationState = {
9
17
  hasThemesGenerated: boolean;
10
18
  };
11
19
 
12
- export type CallContextProps = {
13
- /**
14
- * The site object
15
- */
16
- site: Site;
17
- /**
18
- * Current page. Undefined if flow is "setup" and no page has been created yet.
19
- */
20
- page: VersionedPage;
21
-
22
- /**
23
- * The current generation state of the site. Only used when flow is "setup".
24
- */
25
- generationState?: GenerationState;
26
- /**
27
- * The user language guessed from the sitePrompt, if available.
28
- */
29
- userLanguage?: string;
20
+ export const callContextSchema = Type.Object({
21
+ site: siteSchema,
22
+ page: versionedPageSchema,
23
+ generationState: Type.Optional(generationStateSchema),
24
+ userLanguage: Type.Optional(
25
+ Type.String({
26
+ minLength: 2,
27
+ maxLength: 2,
28
+ }),
29
+ ),
30
+ assets: imageResultsSchema,
31
+ });
30
32
 
31
- assets: ImageSearchResultsType;
32
- };
33
+ export type CallContextProps = Static<typeof callContextSchema>;
@@ -1,4 +1,5 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { StringEnum } from "~/shared/utils/string-enum";
2
3
 
3
4
  export const airtableFields = Type.Array(
4
5
  Type.Object({
@@ -48,16 +49,16 @@ export type AirtableBases = {
48
49
  name: string;
49
50
  }[];
50
51
 
51
- export const AirtableFieldTypes = Type.Union([
52
- Type.Literal("number"),
53
- Type.Literal("checkbox"),
54
- Type.Literal("date"),
55
- Type.Literal("dateTime"),
56
- Type.Literal("email"),
57
- Type.Literal("url"),
58
- Type.Literal("singleLineText"),
59
- Type.Literal("multilineText"),
60
- Type.Literal("singleSelect"),
61
- Type.Literal("multipleSelects"),
52
+ export const AirtableFieldTypes = StringEnum([
53
+ "number",
54
+ "checkbox",
55
+ "date",
56
+ "dateTime",
57
+ "email",
58
+ "url",
59
+ "singleLineText",
60
+ "multilineText",
61
+ "singleSelect",
62
+ "multipleSelects",
62
63
  ]);
63
64
  export type AirtableFieldType = Static<typeof AirtableFieldTypes>;
@@ -1,17 +1,10 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
2
  import { airtableOptions } from "./external/airtable/types";
3
- import { genericWebhookOptions } from "./external/generic-webhook/options";
4
3
  import { googleSheetsOptions } from "./external/google/sheets/types";
5
4
  import { notionOptions } from "./external/notion/types";
5
+ import { StringEnum } from "../utils/string-enum";
6
6
 
7
- export const connectorSchema = Type.Union([
8
- Type.Literal("airtable"),
9
- Type.Literal("google-sheets"),
10
- Type.Literal("notion"),
11
- // Type.Literal("generic-webhook"),
12
- // saved to Upstart platform
13
- Type.Literal("internal"),
14
- ]);
7
+ export const connectorSchema = StringEnum(["airtable", "google-sheets", "notion", "internal"]);
15
8
 
16
9
  export type DatarecordConnector = Static<typeof connectorSchema>;
17
10
 
@@ -111,55 +104,40 @@ const commonDatarecordSchema = Type.Object({
111
104
  }),
112
105
  });
113
106
 
114
- export const datarecordsConnectors = Type.Union([
115
- Type.Composite([
107
+ const commonDatarecordMetadata = Type.Object({
108
+ id: Type.String({
109
+ title: "Datarecord ID",
110
+ comment: "A unique identifier for the datarecord, e.g., 'newsletter_subscriptions'",
111
+ }),
112
+ label: Type.String({
113
+ title: "Name of the datarecord",
114
+ comment: "For example, 'Newsletter Subscriptions'",
115
+ }),
116
+ description: Type.Optional(Type.String({ title: "Description of the datarecord" })),
117
+ });
118
+
119
+ export const genericDatarecord = Type.Composite([
120
+ Type.Union([
116
121
  Type.Object({
117
122
  provider: Type.Literal("airtable"),
118
123
  options: airtableOptions,
119
124
  }),
120
- commonDatarecordSchema,
121
- ]),
122
- Type.Composite([
123
125
  Type.Object({
124
126
  provider: Type.Literal("google-sheets"),
125
127
  options: googleSheetsOptions,
126
128
  }),
127
- commonDatarecordSchema,
128
- ]),
129
- Type.Composite([
130
129
  Type.Object({
131
130
  provider: Type.Literal("notion"),
132
131
  options: notionOptions,
133
132
  }),
134
- commonDatarecordSchema,
133
+ internalDatarecord,
135
134
  ]),
136
- // Type.Composite([
137
- // Type.Object({
138
- // provider: Type.Literal("generic-webhook"),
139
- // options: genericWebhookOptions,
140
- // }),
141
- // commonDatarecordSchema,
142
- // ]),
143
- internalDatarecord,
135
+ commonDatarecordMetadata,
136
+ commonDatarecordSchema,
144
137
  ]);
145
138
 
146
- const datarecordMetadata = Type.Object({
147
- id: Type.String({
148
- title: "Datarecord ID",
149
- comment: "A unique identifier for the datarecord, e.g., 'newsletter_subscriptions'",
150
- }),
151
- label: Type.String({
152
- title: "Name of the datarecord",
153
- comment: "For example, 'Newsletter Subscriptions'",
154
- }),
155
- description: Type.Optional(Type.String({ title: "Description of the datarecord" })),
156
- });
157
-
158
- const datarecordManifest = Type.Composite([datarecordsConnectors, datarecordMetadata]);
159
-
160
- export const internalDatarecordManifest = Type.Composite([datarecordMetadata, internalDatarecord]);
161
- export type InternalDatarecord = Static<typeof internalDatarecordManifest>;
162
- export type Datarecord = Static<typeof datarecordManifest>;
139
+ export type Datarecord = Static<typeof genericDatarecord>;
140
+ export type InternalDatarecord = Extract<Datarecord, { provider: "internal" }>;
163
141
 
164
- export const datarecordsList = Type.Array(datarecordManifest);
142
+ export const datarecordsList = Type.Array(genericDatarecord);
165
143
  export type DatarecordsList = Static<typeof datarecordsList>;
@@ -1,4 +1,5 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { StringEnum } from "../../../../utils/string-enum";
2
3
 
3
4
  export const instagramFeedSchema = Type.Object({
4
5
  data: Type.Array(
@@ -8,7 +9,7 @@ export const instagramFeedSchema = Type.Object({
8
9
  timestamp: Type.String(),
9
10
  media_url: Type.String(),
10
11
  permalink: Type.String(),
11
- media_type: Type.Union([Type.Literal("IMAGE"), Type.Literal("VIDEO"), Type.Literal("CAROUSEL_ALBUM")]),
12
+ media_type: StringEnum(["IMAGE", "VIDEO", "CAROUSEL_ALBUM"]),
12
13
  }),
13
14
  ),
14
15
  paging: Type.Object({
@@ -1,15 +1,10 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { StringEnum } from "../../../../utils/string-enum";
2
3
  import { mastodonAccountSchema } from "../account/schema";
3
4
 
4
5
  const mastodonMediaAttachmentSchema = Type.Object({
5
6
  id: Type.String(),
6
- type: Type.Union([
7
- Type.Literal("audio"),
8
- Type.Literal("image"),
9
- Type.Literal("video"),
10
- Type.Literal("gifv"),
11
- Type.Literal("unknown"),
12
- ]),
7
+ type: StringEnum(["audio", "image", "video", "gifv", "unknown"]),
13
8
  url: Type.String(),
14
9
  preview_url: Type.Optional(Type.String()),
15
10
  remote_url: Type.Optional(Type.String()),
@@ -30,12 +25,7 @@ const mastodonPreviewCardSchema = Type.Object({
30
25
  url: Type.String(),
31
26
  title: Type.String(),
32
27
  description: Type.String(),
33
- type: Type.Union([
34
- Type.Literal("link"),
35
- Type.Literal("photo"),
36
- Type.Literal("video"),
37
- Type.Literal("rich"),
38
- ]),
28
+ type: StringEnum(["link", "photo", "video", "rich"]),
39
29
  author_name: Type.String(),
40
30
  author_url: Type.String(),
41
31
  provider_name: Type.String(),
@@ -71,12 +61,7 @@ export const mastodonStatusSchema = Type.Object({
71
61
  created_at: Type.String(),
72
62
  account: mastodonAccountSchema,
73
63
  content: Type.String(),
74
- visibility: Type.Union([
75
- Type.Literal("public"),
76
- Type.Literal("unlisted"),
77
- Type.Literal("private"),
78
- Type.Literal("direct"),
79
- ]),
64
+ visibility: StringEnum(["public", "unlisted", "private", "direct"]),
80
65
  sensitive: Type.Boolean(),
81
66
  media_attachments: Type.Array(mastodonMediaAttachmentSchema),
82
67
  application: Type.Optional(
@@ -1,8 +1,9 @@
1
1
  import { Type, type Static, type StaticDecode } from "@sinclair/typebox";
2
+ import { StringEnum } from "../../../../utils/string-enum";
2
3
  import { buildOAuthConfigSchema } from "~/shared/oauth";
3
4
 
4
5
  const metaOAuthConfig = Type.Object({
5
- type: Type.Union([Type.Literal("short-lived"), Type.Literal("long-lived")]),
6
+ type: StringEnum(["short-lived", "long-lived"]),
6
7
  accessToken: Type.String(),
7
8
  userId: Type.String(),
8
9
  permissions: Type.Array(Type.String()),
@@ -1,18 +1,12 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { StringEnum } from "../../../../utils/string-enum";
2
3
 
3
4
  export const threadsMediaSchema = Type.Object({
4
5
  data: Type.Array(
5
6
  Type.Object({
6
7
  id: Type.String(),
7
8
  media_product_type: Type.Literal("THREADS"),
8
- media_type: Type.Union([
9
- Type.Literal("TEXT_POST"),
10
- Type.Literal("IMAGE"),
11
- Type.Literal("VIDEO"),
12
- Type.Literal("CAROUSEL_ALBUM"),
13
- Type.Literal("AUDIO"),
14
- Type.Literal("REPOST_FACADE"),
15
- ]),
9
+ media_type: StringEnum(["TEXT_POST", "IMAGE", "VIDEO", "CAROUSEL_ALBUM", "AUDIO", "REPOST_FACADE"]),
16
10
  media_url: Type.String(),
17
11
  permalink: Type.String(),
18
12
  owner: Type.Object({
@@ -1,4 +1,5 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { StringEnum } from "../../../utils/string-enum";
2
3
 
3
4
  export const blogSchema = Type.Array(
4
5
  Type.Object({
@@ -39,7 +40,7 @@ export const blogSchema = Type.Array(
39
40
  pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$",
40
41
  description: "URL-friendly version of the title",
41
42
  }),
42
- status: Type.Union([Type.Literal("draft"), Type.Literal("published"), Type.Literal("archived")], {
43
+ status: StringEnum(["draft", "published", "archived"], {
43
44
  title: "Status",
44
45
  description: "Publication status of the blog post",
45
46
  }),
@@ -2,26 +2,26 @@ import { Type, type Static } from "@sinclair/typebox";
2
2
  import { StringEnum } from "../utils/string-enum";
3
3
  import { toLLMSchema } from "../utils/llm";
4
4
 
5
- export const providersSchema = Type.Union([
6
- // Type.Literal("facebook-posts"),
7
- // Type.Literal("instagram-feed"),
8
- // Type.Literal("mastodon-account"),
9
- // Type.Literal("mastodon-status"),
10
- // Type.Literal("mastodon-status-list"),
11
- Type.Literal("internal"),
12
- // Type.Literal("rss"),
13
- // // Type.Literal("threads-media"),
14
- // // Type.Literal("tiktok-video"),
15
- // Type.Literal("youtube-list"),
16
- // Type.Literal("http-json"),
17
- // Type.Literal("internal-blog"),
18
- // Type.Literal("internal-changelog"),
19
- // // Type.Literal("internal-contact-info"),
20
- // Type.Literal("internal-faq"),
21
- // Type.Literal("internal-links"),
22
- // Type.Literal("internal-recipes"),
23
- // Type.Literal("internal-restaurant"),
24
- // Type.Literal("internal-cv"),
5
+ export const providersSchema = StringEnum([
6
+ // "facebook-posts",
7
+ // "instagram-feed",
8
+ // "mastodon-account",
9
+ // "mastodon-status",
10
+ // "mastodon-status-list",
11
+ "internal",
12
+ // "rss",
13
+ // // "threads-media",
14
+ // // "tiktok-video",
15
+ // "youtube-list",
16
+ // "http-json",
17
+ // "internal-blog",
18
+ // "internal-changelog",
19
+ // // "internal-contact-info",
20
+ // "internal-faq",
21
+ // "internal-links",
22
+ // "internal-recipes",
23
+ // "internal-restaurant",
24
+ // "internal-cv",
25
25
  ]);
26
26
 
27
27
  export type DatasourceProvider = Static<typeof providersSchema>;
@@ -77,19 +77,17 @@ const datasourceInternalManifest = Type.Object(
77
77
  title: "Schema",
78
78
  description: "JSON Schema of datasource. MUST Always an array of objects.",
79
79
  }),
80
- indexes: Type.Optional(
81
- Type.Array(
82
- Type.Object({
83
- name: Type.String({ title: "Index name" }),
84
- fields: Type.Array(Type.String(), { title: "Fields to index" }),
85
- unique: Type.Optional(Type.Boolean({ title: "Unique index", default: false })),
86
- }),
87
- {
88
- title: "Indexes",
89
- description:
90
- "IMPORTANT: Indexes to create on the datasource. use it to enforce uniqueness or improve query performance.",
91
- },
92
- ),
80
+ indexes: Type.Array(
81
+ Type.Object({
82
+ name: Type.String({ title: "Index name" }),
83
+ fields: Type.Array(Type.String(), { title: "Fields to index" }),
84
+ unique: Type.Optional(Type.Boolean({ title: "Unique index", default: false })),
85
+ }),
86
+ {
87
+ title: "Indexes",
88
+ description:
89
+ "IMPORTANT: Indexes to create on the datasource. use it to enforce uniqueness or improve query performance.",
90
+ },
93
91
  ),
94
92
  },
95
93
  {
@@ -243,53 +241,40 @@ export type DatasourcesList = Static<typeof datasourcesList>;
243
241
 
244
242
  const stringFilter = Type.Object({
245
243
  field: Type.String(),
246
- op: Type.Union([
247
- Type.Literal("eq"),
248
- Type.Literal("ne"),
249
- Type.Literal("contains"),
250
- Type.Literal("notContains"),
251
- Type.Literal("startsWith"),
252
- Type.Literal("notStartsWith"),
253
- Type.Literal("endsWith"),
254
- Type.Literal("notEndsWith"),
244
+ op: StringEnum([
245
+ "eq",
246
+ "ne",
247
+ "contains",
248
+ "notContains",
249
+ "startsWith",
250
+ "notStartsWith",
251
+ "endsWith",
252
+ "notEndsWith",
255
253
  ]),
256
254
  value: Type.String(),
257
255
  });
258
256
 
259
257
  const numberFilter = Type.Object({
260
258
  field: Type.String(),
261
- op: Type.Union([
262
- Type.Literal("eq"),
263
- Type.Literal("ne"),
264
- Type.Literal("lt"),
265
- Type.Literal("lte"),
266
- Type.Literal("gt"),
267
- Type.Literal("gte"),
268
- ]),
259
+ op: StringEnum(["eq", "ne", "lt", "lte", "gt", "gte"]),
269
260
  value: Type.Number(),
270
261
  });
271
262
 
272
263
  const dateFilterAbsolute = Type.Object({
273
264
  field: Type.String(),
274
- op: Type.Union([Type.Literal("before"), Type.Literal("after")]),
265
+ op: StringEnum(["before", "after"]),
275
266
  value: Type.String(),
276
267
  });
277
268
 
278
269
  const dateFilterRelative = Type.Object({
279
270
  field: Type.String(),
280
- op: Type.Union([Type.Literal("beforeNow"), Type.Literal("afterNow")]),
271
+ op: StringEnum(["beforeNow", "afterNow"]),
281
272
  value: Type.Null(),
282
273
  });
283
274
 
284
275
  const arrayFilter = Type.Object({
285
276
  field: Type.String(),
286
- op: Type.Union([
287
- Type.Literal("contains"),
288
- Type.Literal("notContains"),
289
- Type.Literal("containsAll"),
290
- Type.Literal("containsAny"),
291
- Type.Literal("notContainsAny"),
292
- ]),
277
+ op: StringEnum(["contains", "notContains", "containsAll", "containsAny", "notContainsAny"]),
293
278
  value: Type.Array(Type.String()),
294
279
  });
295
280
 
@@ -392,27 +377,27 @@ export const querySchema = Type.Object(
392
377
  Type.Array(
393
378
  Type.Object({
394
379
  field: Type.String({ title: "Field", description: "Field name to use as parameter" }),
395
- op: Type.Union(
380
+ op: StringEnum(
396
381
  [
397
- Type.Literal("eq"),
398
- Type.Literal("ne"),
399
- Type.Literal("contains"),
400
- Type.Literal("notContains"),
401
- Type.Literal("startsWith"),
402
- Type.Literal("notStartsWith"),
403
- Type.Literal("endsWith"),
404
- Type.Literal("notEndsWith"),
405
- Type.Literal("lt"),
406
- Type.Literal("lte"),
407
- Type.Literal("gt"),
408
- Type.Literal("gte"),
409
- Type.Literal("before"),
410
- Type.Literal("after"),
411
- Type.Literal("beforeNow"),
412
- Type.Literal("afterNow"),
413
- Type.Literal("containsAll"),
414
- Type.Literal("containsAny"),
415
- Type.Literal("notContainsAny"),
382
+ "eq",
383
+ "ne",
384
+ "contains",
385
+ "notContains",
386
+ "startsWith",
387
+ "notStartsWith",
388
+ "endsWith",
389
+ "notEndsWith",
390
+ "lt",
391
+ "lte",
392
+ "gt",
393
+ "gte",
394
+ "before",
395
+ "after",
396
+ "beforeNow",
397
+ "afterNow",
398
+ "containsAll",
399
+ "containsAny",
400
+ "notContainsAny",
416
401
  ],
417
402
  { title: "Operator", description: "Operator to use for the parameter" },
418
403
  ),
@@ -1,5 +1,5 @@
1
- import type { Datasource } from "./datasources/types";
2
1
  import type { TArray } from "@sinclair/typebox";
2
+ import type { Datasource } from "./datasources/types";
3
3
 
4
4
  /**
5
5
  * For now, defineDatasources() force the usage of a custom (internal) datasource
@@ -33,9 +33,7 @@ export function mapDatasourceSchemaWithInternalProperties(schema: TArray): Datas
33
33
  $publicationDate: { type: "string", format: "date-time", title: "Publication Date" },
34
34
  $lastModificationDate: { type: "string", format: "date-time", title: "Last Modification Date" },
35
35
  },
36
- required: Array.from(
37
- new Set(["$id", "$slug", "$publicationDate", "$lastModificationDate", ...items.required]),
38
- ),
36
+ required: Array.from(new Set(["$id", "$slug", "$lastModificationDate", ...items.required])),
39
37
  },
40
38
  };
41
39
  }
@@ -16,24 +16,18 @@ export const imageSearchSchema = Type.Object({
16
16
  export type ImageSearchParams = Static<typeof imageSearchSchema>;
17
17
 
18
18
  export const imageResultsSchema = Type.Array(
19
- Type.Object(
20
- {
21
- provider: Type.String({ description: "The image provider (e.g. unsplash, pexels)" }),
22
- description: Type.String({ description: "A brief description of the image" }),
23
- url: Type.String({ description: "The URL of the image" }),
24
- blurHash: Type.Optional(Type.String({ description: "The blur hash of the image" })),
25
- author: Type.Optional(
26
- Type.Object(
27
- {
28
- name: Type.String({ description: "The name of the user who uploaded the image" }),
29
- profile_url: Type.String({ description: "The profile URL of the user who uploaded the image" }),
30
- },
31
- { additionalProperties: false },
32
- ),
33
- ),
34
- },
35
- { additionalProperties: false },
36
- ),
19
+ Type.Object({
20
+ provider: Type.String({ description: "The image provider (e.g. unsplash, pexels)" }),
21
+ description: Type.String({ description: "A brief description of the image" }),
22
+ url: Type.String({ description: "The URL of the image" }),
23
+ blurHash: Type.Optional(Type.String({ description: "The blur hash of the image" })),
24
+ author: Type.Optional(
25
+ Type.Object({
26
+ name: Type.String({ description: "The name of the user who uploaded the image" }),
27
+ profileUrl: Type.String({ description: "The profile URL of the user who uploaded the image" }),
28
+ }),
29
+ ),
30
+ }),
37
31
  {
38
32
  title: "Array of image search results",
39
33
  },
@@ -1,7 +1,6 @@
1
1
  import { pageAttributesSchema } from "./attributes";
2
2
  import { sectionSchema } from "./bricks";
3
3
  import { Type, type Static } from "@sinclair/typebox";
4
- import { toLLMSchema } from "./utils/llm";
5
4
 
6
5
  export const pageSchema = Type.Object({
7
6
  id: Type.String({
@@ -19,7 +18,15 @@ export const pageSchema = Type.Object({
19
18
  });
20
19
 
21
20
  export type Page = Static<typeof pageSchema>;
22
- export type VersionedPage = Page & { version: string };
21
+
22
+ export const versionedPageSchema = Type.Composite([
23
+ pageSchema,
24
+ Type.Object({
25
+ version: Type.String(),
26
+ }),
27
+ ]);
28
+
29
+ export type VersionedPage = Static<typeof versionedPageSchema>;
23
30
 
24
31
  /**
25
32
  * Page context represents the page config PLUS:
@@ -1,11 +1,11 @@
1
1
  import { Type, type Static } from "@sinclair/typebox";
2
+ import { resolvePageAttributes, resolveSiteAttributes, siteAttributesSchema } from "./attributes";
2
3
  import { datarecordsList } from "./datarecords/types";
3
4
  import { datasourcesList } from "./datasources/types";
4
5
  import { pageSchema } from "./page";
5
6
  import { sitePrompt } from "./prompt";
6
7
  import { sitemapSchema } from "./sitemap";
7
8
  import { defaultTheme, themeSchema } from "./theme";
8
- import { resolvePageAttributes, resolveSiteAttributes, siteAttributesSchema } from "./attributes";
9
9
 
10
10
  export const siteSchema = Type.Object({
11
11
  id: Type.String(),
@@ -34,7 +34,7 @@ export function createEmptyConfig(sitePrompt: string): SiteAndPagesConfig {
34
34
  return {
35
35
  site: {
36
36
  id: crypto.randomUUID(),
37
- label: "My site",
37
+ label: `My site ${new Date().toLocaleString(undefined, { dateStyle: "short", timeStyle: "short" })}`,
38
38
  hostname: "example.com",
39
39
  sitePrompt,
40
40
  theme: defaultTheme,
@@ -48,7 +48,7 @@ export function createEmptyConfig(sitePrompt: string): SiteAndPagesConfig {
48
48
  pages: [
49
49
  {
50
50
  id: "_default_",
51
- label: "First page with really really long name that should be truncated",
51
+ label: "First page",
52
52
  sections: [],
53
53
  attributes: resolvePageAttributes({
54
54
  path: "/",