@upstart.gg/sdk 0.0.95 → 0.0.97

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 (527) hide show
  1. package/dist/node/cli/api.js +2 -2
  2. package/dist/node/cli/api.js.map +1 -1
  3. package/dist/node/cli/commands/login/cmd-login.js +6 -6
  4. package/dist/node/cli/commands/login/cmd-login.js.map +1 -1
  5. package/dist/node/cli/commands/logout/cmd-logout.js +2 -2
  6. package/dist/node/cli/commands/publish/cmd-publish.d.ts.map +1 -1
  7. package/dist/node/cli/commands/publish/cmd-publish.js +18 -18
  8. package/dist/node/cli/commands/publish/cmd-publish.js.map +1 -1
  9. package/dist/node/cli/commands/publish/uploader.js +7 -7
  10. package/dist/node/cli/commands/publish/uploader.js.map +1 -1
  11. package/dist/node/cli/is-logged-in.js +2 -2
  12. package/dist/node/cli/is-logged-in.js.map +1 -1
  13. package/dist/node/cli/program.js +24 -24
  14. package/dist/node/cli/program.js.map +1 -1
  15. package/dist/node/shared/config.d.ts +4 -14
  16. package/dist/node/shared/config.d.ts.map +1 -1
  17. package/dist/node/shared/config.js +4 -4
  18. package/dist/node/shared/config.js.map +1 -1
  19. package/dist/node/shared/logger.d.ts.map +1 -1
  20. package/dist/node/shared/logger.js +2 -2
  21. package/dist/node/shared/logger.js.map +1 -1
  22. package/dist/shared/ajv.d.ts +2 -0
  23. package/dist/shared/ajv.d.ts.map +1 -1
  24. package/dist/shared/ajv.js +1 -1
  25. package/dist/shared/attributes.d.ts +45 -83
  26. package/dist/shared/attributes.d.ts.map +1 -1
  27. package/dist/shared/attributes.js +1 -1
  28. package/dist/shared/brick-manifest.d.ts +7 -17
  29. package/dist/shared/brick-manifest.d.ts.map +1 -1
  30. package/dist/shared/brick-manifest.js +1 -1
  31. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +111 -0
  32. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -0
  33. package/dist/shared/bricks/manifests/accordion.manifest.js +3 -0
  34. package/dist/shared/bricks/manifests/all-manifests.d.ts +5 -0
  35. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  36. package/dist/shared/bricks/manifests/all-manifests.js +1 -1
  37. package/dist/shared/bricks/manifests/button.manifest.d.ts +22 -13
  38. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  39. package/dist/shared/bricks/manifests/button.manifest.js +1 -1
  40. package/dist/shared/bricks/manifests/card.manifest.d.ts +44 -54
  41. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  42. package/dist/shared/bricks/manifests/card.manifest.js +1 -1
  43. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +39 -12
  44. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  45. package/dist/shared/bricks/manifests/carousel.manifest.js +1 -1
  46. package/dist/shared/bricks/manifests/container.manifest.d.ts +49 -172
  47. package/dist/shared/bricks/manifests/container.manifest.d.ts.map +1 -1
  48. package/dist/shared/bricks/manifests/container.manifest.js +1 -1
  49. package/dist/shared/bricks/manifests/divider.manifest.d.ts +63 -0
  50. package/dist/shared/bricks/manifests/divider.manifest.d.ts.map +1 -0
  51. package/dist/shared/bricks/manifests/divider.manifest.js +3 -0
  52. package/dist/shared/bricks/manifests/footer.manifest.d.ts +30 -35
  53. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  54. package/dist/shared/bricks/manifests/footer.manifest.js +1 -1
  55. package/dist/shared/bricks/manifests/form.manifest.d.ts +22 -12
  56. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  57. package/dist/shared/bricks/manifests/form.manifest.js +1 -1
  58. package/dist/shared/bricks/manifests/hero.manifest.d.ts +31 -71
  59. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/hero.manifest.js +1 -1
  61. package/dist/shared/bricks/manifests/icon.manifest.d.ts +18 -12
  62. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  63. package/dist/shared/bricks/manifests/icon.manifest.js +1 -1
  64. package/dist/shared/bricks/manifests/image.manifest.d.ts +36 -50
  65. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  66. package/dist/shared/bricks/manifests/image.manifest.js +1 -1
  67. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +55 -115
  68. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  69. package/dist/shared/bricks/manifests/images-gallery.manifest.js +1 -1
  70. package/dist/shared/bricks/manifests/map.manifest.d.ts +36 -12
  71. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  72. package/dist/shared/bricks/manifests/map.manifest.js +1 -1
  73. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +160 -0
  74. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -0
  75. package/dist/shared/bricks/manifests/navbar.manifest.js +3 -0
  76. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +83 -12
  77. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  78. package/dist/shared/bricks/manifests/sidebar.manifest.js +1 -1
  79. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +37 -12
  80. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  81. package/dist/shared/bricks/manifests/social-links.manifest.js +1 -1
  82. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +94 -0
  83. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -0
  84. package/dist/shared/bricks/manifests/testimonials.manifest.js +3 -0
  85. package/dist/shared/bricks/manifests/text.manifest.d.ts +31 -63
  86. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  87. package/dist/shared/bricks/manifests/text.manifest.js +1 -1
  88. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +122 -0
  89. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -0
  90. package/dist/shared/bricks/manifests/timeline.manifest.js +3 -0
  91. package/dist/shared/bricks/manifests/video.manifest.d.ts +38 -12
  92. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  93. package/dist/shared/bricks/manifests/video.manifest.js +1 -1
  94. package/dist/shared/bricks/props/_style-presets.d.ts +1 -1
  95. package/dist/shared/bricks/props/_style-presets.d.ts.map +1 -1
  96. package/dist/shared/bricks/props/_style-presets.js +1 -1
  97. package/dist/shared/bricks/props/align.d.ts +7 -3
  98. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  99. package/dist/shared/bricks/props/align.js +1 -1
  100. package/dist/shared/bricks/props/background.d.ts +8 -1
  101. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  102. package/dist/shared/bricks/props/background.js +1 -1
  103. package/dist/shared/bricks/props/boolean.js +1 -1
  104. package/dist/shared/bricks/props/border.d.ts +24 -22
  105. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  106. package/dist/shared/bricks/props/border.js +1 -1
  107. package/dist/shared/bricks/props/color.d.ts +5 -0
  108. package/dist/shared/bricks/props/color.d.ts.map +1 -0
  109. package/dist/shared/bricks/props/color.js +3 -0
  110. package/dist/shared/bricks/props/common.d.ts +9 -1
  111. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  112. package/dist/shared/bricks/props/common.js +1 -1
  113. package/dist/shared/bricks/props/container.d.ts +37 -45
  114. package/dist/shared/bricks/props/container.d.ts.map +1 -1
  115. package/dist/shared/bricks/props/container.js +1 -1
  116. package/dist/shared/bricks/props/css-length.d.ts +5 -0
  117. package/dist/shared/bricks/props/css-length.d.ts.map +1 -0
  118. package/dist/shared/bricks/props/css-length.js +3 -0
  119. package/dist/shared/bricks/props/datasource.d.ts +9 -13
  120. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  121. package/dist/shared/bricks/props/datasource.js +1 -1
  122. package/dist/shared/bricks/props/date.d.ts +4 -0
  123. package/dist/shared/bricks/props/date.d.ts.map +1 -0
  124. package/dist/shared/bricks/props/date.js +3 -0
  125. package/dist/shared/bricks/props/effects.d.ts +4 -21
  126. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  127. package/dist/shared/bricks/props/effects.js +1 -1
  128. package/dist/shared/bricks/props/enum.d.ts +13 -0
  129. package/dist/shared/bricks/props/enum.d.ts.map +1 -0
  130. package/dist/shared/bricks/props/enum.js +3 -0
  131. package/dist/shared/bricks/props/file.d.ts +2 -0
  132. package/dist/shared/bricks/props/file.d.ts.map +1 -0
  133. package/dist/shared/bricks/props/file.js +3 -0
  134. package/dist/shared/bricks/props/geolocation.d.ts +16 -0
  135. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -0
  136. package/dist/shared/bricks/props/geolocation.js +3 -0
  137. package/dist/shared/bricks/props/helpers.d.ts +8 -4
  138. package/dist/shared/bricks/props/helpers.d.ts.map +1 -1
  139. package/dist/shared/bricks/props/helpers.js +1 -1
  140. package/dist/shared/bricks/props/image.d.ts +7 -1
  141. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  142. package/dist/shared/bricks/props/image.js +1 -1
  143. package/dist/shared/bricks/props/number.js +1 -1
  144. package/dist/shared/bricks/props/padding.d.ts +2 -1
  145. package/dist/shared/bricks/props/padding.d.ts.map +1 -1
  146. package/dist/shared/bricks/props/padding.js +1 -1
  147. package/dist/shared/bricks/props/position.d.ts.map +1 -1
  148. package/dist/shared/bricks/props/position.js +1 -1
  149. package/dist/shared/bricks/props/preset.d.ts +92 -0
  150. package/dist/shared/bricks/props/preset.d.ts.map +1 -0
  151. package/dist/shared/bricks/props/preset.js +3 -0
  152. package/dist/shared/bricks/props/string.d.ts +8 -3
  153. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  154. package/dist/shared/bricks/props/string.js +1 -1
  155. package/dist/shared/bricks/props/text.d.ts +3 -4
  156. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  157. package/dist/shared/bricks/props/text.js +1 -1
  158. package/dist/shared/bricks/props/types.d.ts +5 -2
  159. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  160. package/dist/shared/bricks.d.ts +243 -134
  161. package/dist/shared/bricks.d.ts.map +1 -1
  162. package/dist/shared/bricks.js +1 -1
  163. package/dist/shared/chunk-2AJYHJFG.js +8 -0
  164. package/dist/shared/chunk-2FHWS73Y.js +6 -0
  165. package/dist/shared/chunk-3FJVF357.js +3 -0
  166. package/dist/shared/chunk-3RHYJ6E7.js +5 -0
  167. package/dist/shared/chunk-3VZACK2Y.js +3 -0
  168. package/dist/shared/chunk-3XCKZ4JQ.js +3 -0
  169. package/dist/shared/chunk-4MPRHJWO.js +3 -0
  170. package/dist/shared/chunk-5EOWW7BX.js +4 -0
  171. package/dist/shared/chunk-5HYPCOSS.js +3 -0
  172. package/dist/shared/chunk-5K5C6XFX.js +3 -0
  173. package/dist/shared/chunk-6QS5PKLA.js +3 -0
  174. package/dist/shared/chunk-74EL657O.js +3 -0
  175. package/dist/shared/chunk-AJDYOLKP.js +3 -0
  176. package/dist/shared/chunk-ALFOZHAH.js +3 -0
  177. package/dist/shared/{chunk-FGU4BGP4.js → chunk-ATDJCXC2.js} +1 -1
  178. package/dist/shared/chunk-BJSO43AS.js +3 -0
  179. package/dist/shared/chunk-BTKLQQZA.js +3 -0
  180. package/dist/shared/chunk-CAVNF3BU.js +3 -0
  181. package/dist/shared/chunk-CCNU3J56.js +3 -0
  182. package/dist/shared/chunk-CTRS76PX.js +3 -0
  183. package/dist/shared/chunk-DCH2FI6T.js +8 -0
  184. package/dist/shared/chunk-DFSQR6QC.js +3 -0
  185. package/dist/shared/chunk-ENU4SEHO.js +3 -0
  186. package/dist/shared/chunk-G7LX3UKQ.js +3 -0
  187. package/dist/shared/chunk-GGJBTPGW.js +3 -0
  188. package/dist/shared/chunk-H24R3IWA.js +3 -0
  189. package/dist/shared/chunk-HYVQXAK5.js +3 -0
  190. package/dist/shared/chunk-LKVQQQTI.js +3 -0
  191. package/dist/shared/chunk-MITJPRGD.js +6 -0
  192. package/dist/shared/chunk-NLZBY65T.js +3 -0
  193. package/dist/shared/chunk-OUI2VDNM.js +3 -0
  194. package/dist/shared/chunk-OYIL5SCU.js +3 -0
  195. package/dist/shared/chunk-P5DZK4TS.js +3 -0
  196. package/dist/shared/chunk-PK3R5VOF.js +3 -0
  197. package/dist/shared/chunk-QPATZM3I.js +3 -0
  198. package/dist/shared/chunk-RDBEWW4G.js +7 -0
  199. package/dist/shared/chunk-RPBQZW5I.js +3 -0
  200. package/dist/shared/chunk-SLSIAUYV.js +3 -0
  201. package/dist/shared/chunk-SUG225LF.js +3 -0
  202. package/dist/shared/chunk-U5XOIYSS.js +3 -0
  203. package/dist/shared/{chunk-HIZPJNEM.js → chunk-UL7L3HYV.js} +1 -1
  204. package/dist/shared/chunk-V6BCYHZH.js +3 -0
  205. package/dist/shared/chunk-VA5LFJVE.js +3 -0
  206. package/dist/shared/chunk-VAC73HJE.js +3 -0
  207. package/dist/shared/chunk-VBWC36L2.js +3 -0
  208. package/dist/shared/chunk-VLGLD6GR.js +3 -0
  209. package/dist/shared/chunk-VTFWVTPI.js +3 -0
  210. package/dist/shared/chunk-WAAKB6OB.js +3 -0
  211. package/dist/shared/chunk-Y36SM2AO.js +3 -0
  212. package/dist/shared/chunk-Y7CEEEVW.js +3 -0
  213. package/dist/shared/chunk-YZ5Y4WE6.js +3 -0
  214. package/dist/shared/chunk-Z7SYP6FG.js +3 -0
  215. package/dist/shared/chunk-ZJNA4QQC.js +3 -0
  216. package/dist/shared/chunk-ZMDHKAWL.js +3 -0
  217. package/dist/shared/context.d.ts +38 -0
  218. package/dist/shared/context.d.ts.map +1 -0
  219. package/dist/shared/{chunk-WJ5CDDXW.js → context.js} +0 -1
  220. package/dist/shared/datarecords/types.d.ts +40 -20
  221. package/dist/shared/datarecords/types.d.ts.map +1 -1
  222. package/dist/shared/datarecords/types.js +1 -1
  223. package/dist/shared/datasources/external/http-json/fetcher.d.ts.map +1 -0
  224. package/dist/shared/datasources/external/http-json/options.d.ts.map +1 -0
  225. package/dist/shared/datasources/external/{json → http-json}/schema.d.ts +0 -1
  226. package/dist/shared/datasources/external/http-json/schema.d.ts.map +1 -0
  227. package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts.map +1 -0
  228. package/dist/shared/datasources/external/rss/fetcher.d.ts.map +1 -1
  229. package/dist/shared/datasources/external/rss/sample.d.ts.map +1 -1
  230. package/dist/shared/datasources/external/rss/schema.d.ts +7 -13
  231. package/dist/shared/datasources/external/rss/schema.d.ts.map +1 -1
  232. package/dist/shared/datasources/external/youtube/list/sample.d.ts +23 -32
  233. package/dist/shared/datasources/external/youtube/list/sample.d.ts.map +1 -1
  234. package/dist/shared/datasources/external/youtube/list/schema.d.ts +24 -33
  235. package/dist/shared/datasources/external/youtube/list/schema.d.ts.map +1 -1
  236. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  237. package/dist/shared/datasources/internal/changelog/schema.d.ts.map +1 -1
  238. package/dist/shared/datasources/internal/recipes/schema.d.ts.map +1 -1
  239. package/dist/shared/datasources/samples.d.ts +1 -1
  240. package/dist/shared/datasources/samples.d.ts.map +1 -1
  241. package/dist/shared/datasources/schemas.d.ts +33 -583
  242. package/dist/shared/datasources/schemas.d.ts.map +1 -1
  243. package/dist/shared/datasources/schemas.js +1 -1
  244. package/dist/shared/datasources/types.d.ts +75 -1314
  245. package/dist/shared/datasources/types.d.ts.map +1 -1
  246. package/dist/shared/datasources/types.js +1 -1
  247. package/dist/shared/datasources.d.ts +14 -0
  248. package/dist/shared/datasources.d.ts.map +1 -1
  249. package/dist/shared/datasources.js +1 -1
  250. package/dist/shared/images.d.ts +30 -0
  251. package/dist/shared/images.d.ts.map +1 -0
  252. package/dist/shared/images.js +3 -0
  253. package/dist/shared/layout-constants.js +1 -1
  254. package/dist/shared/page.d.ts +110 -2676
  255. package/dist/shared/page.d.ts.map +1 -1
  256. package/dist/shared/page.js +1 -1
  257. package/dist/shared/prompt.d.ts +4 -0
  258. package/dist/shared/prompt.d.ts.map +1 -0
  259. package/dist/shared/prompt.js +3 -0
  260. package/dist/shared/responsive.d.ts +3 -3
  261. package/dist/shared/responsive.d.ts.map +1 -1
  262. package/dist/shared/responsive.js +1 -1
  263. package/dist/shared/site.d.ts +545 -0
  264. package/dist/shared/site.d.ts.map +1 -0
  265. package/dist/shared/site.js +3 -0
  266. package/dist/shared/sitemap.d.ts +38 -0
  267. package/dist/shared/sitemap.d.ts.map +1 -0
  268. package/dist/shared/sitemap.js +3 -0
  269. package/dist/shared/theme.d.ts +41 -19
  270. package/dist/shared/theme.d.ts.map +1 -1
  271. package/dist/shared/theme.js +1 -1
  272. package/dist/shared/themes/color-system.d.ts +5 -309
  273. package/dist/shared/themes/color-system.d.ts.map +1 -1
  274. package/dist/shared/themes/color-system.js +1 -1
  275. package/dist/shared/utils/invariant.js +1 -1
  276. package/dist/shared/utils/schema.d.ts +10 -1
  277. package/dist/shared/utils/schema.d.ts.map +1 -1
  278. package/dist/shared/utils/schema.js +1 -1
  279. package/dist/shared/utils/typed-ref.d.ts +32 -0
  280. package/dist/shared/utils/typed-ref.d.ts.map +1 -0
  281. package/dist/shared/utils/typed-ref.js +3 -0
  282. package/package.json +12 -12
  283. package/src/node/cli/api.ts +101 -0
  284. package/src/node/cli/commands/cmd-build.ts +64 -0
  285. package/src/node/cli/commands/login/cmd-login.ts +111 -0
  286. package/src/node/cli/commands/logout/cmd-logout.ts +11 -0
  287. package/src/node/cli/commands/publish/cmd-publish.ts +135 -0
  288. package/src/node/cli/commands/publish/parse-gitignore.ts +278 -0
  289. package/src/node/cli/commands/publish/uploader.ts +333 -0
  290. package/src/node/cli/constants.ts +14 -0
  291. package/src/node/cli/is-logged-in.ts +28 -0
  292. package/src/node/cli/program.ts +77 -0
  293. package/src/node/cli/store.ts +64 -0
  294. package/src/node/cli/tests/api.test.ts +161 -0
  295. package/src/node/cli/types.ts +34 -0
  296. package/src/node/cli/utils.ts +20 -0
  297. package/src/node/shared/config.ts +69 -0
  298. package/src/node/shared/logger.ts +44 -0
  299. package/src/shared/ajv.ts +111 -0
  300. package/src/shared/analytics/init.ts +14 -0
  301. package/src/shared/analytics/track.ts +21 -0
  302. package/src/shared/analytics/types.ts +13 -0
  303. package/src/shared/attributes.ts +222 -0
  304. package/src/shared/brick-manifest.ts +110 -0
  305. package/src/shared/bricks/manifests/accordion.manifest.ts +179 -0
  306. package/src/shared/bricks/manifests/all-manifests.ts +92 -0
  307. package/src/shared/bricks/manifests/button.manifest.ts +145 -0
  308. package/src/shared/bricks/manifests/card.manifest.ts +269 -0
  309. package/src/shared/bricks/manifests/carousel.manifest.ts +106 -0
  310. package/src/shared/bricks/manifests/container.manifest.ts +357 -0
  311. package/src/shared/bricks/manifests/divider.manifest.ts +121 -0
  312. package/src/shared/bricks/manifests/footer.manifest.ts +487 -0
  313. package/src/shared/bricks/manifests/form.manifest.ts +112 -0
  314. package/src/shared/bricks/manifests/hero.manifest.ts +132 -0
  315. package/src/shared/bricks/manifests/icon.manifest.ts +130 -0
  316. package/src/shared/bricks/manifests/image.manifest.ts +203 -0
  317. package/src/shared/bricks/manifests/images-gallery.manifest.ts +227 -0
  318. package/src/shared/bricks/manifests/map.manifest.ts +75 -0
  319. package/src/shared/bricks/manifests/navbar.manifest.ts +344 -0
  320. package/src/shared/bricks/manifests/sidebar.manifest.ts +90 -0
  321. package/src/shared/bricks/manifests/social-links.manifest.ts +370 -0
  322. package/src/shared/bricks/manifests/testimonials.manifest.ts +397 -0
  323. package/src/shared/bricks/manifests/tests/header.manifest.test.ts +10 -0
  324. package/src/shared/bricks/manifests/text.manifest.ts +164 -0
  325. package/src/shared/bricks/manifests/timeline.manifest.ts +456 -0
  326. package/src/shared/bricks/manifests/video.manifest.ts +59 -0
  327. package/src/shared/bricks/props/_style-presets.ts +352 -0
  328. package/src/shared/bricks/props/align.ts +59 -0
  329. package/src/shared/bricks/props/background.ts +118 -0
  330. package/src/shared/bricks/props/boolean.ts +11 -0
  331. package/src/shared/bricks/props/border.ts +84 -0
  332. package/src/shared/bricks/props/color.ts +24 -0
  333. package/src/shared/bricks/props/common.ts +37 -0
  334. package/src/shared/bricks/props/container.ts +356 -0
  335. package/src/shared/bricks/props/css-length.ts +25 -0
  336. package/src/shared/bricks/props/datasource.ts +60 -0
  337. package/src/shared/bricks/props/date.ts +24 -0
  338. package/src/shared/bricks/props/effects.ts +123 -0
  339. package/src/shared/bricks/props/enum.ts +42 -0
  340. package/src/shared/bricks/props/file.ts +12 -0
  341. package/src/shared/bricks/props/geolocation.ts +30 -0
  342. package/src/shared/bricks/props/helpers.ts +101 -0
  343. package/src/shared/bricks/props/image.ts +90 -0
  344. package/src/shared/bricks/props/number.ts +16 -0
  345. package/src/shared/bricks/props/padding.ts +21 -0
  346. package/src/shared/bricks/props/position.ts +27 -0
  347. package/src/shared/bricks/props/preset.ts +136 -0
  348. package/src/shared/bricks/props/string.ts +60 -0
  349. package/src/shared/bricks/props/tests/align.test.ts +37 -0
  350. package/src/shared/bricks/props/tests/background.test.ts +102 -0
  351. package/src/shared/bricks/props/tests/border.test.ts +38 -0
  352. package/src/shared/bricks/props/tests/effects.test.ts +37 -0
  353. package/src/shared/bricks/props/tests/helpers.test.ts +133 -0
  354. package/src/shared/bricks/props/tests/image.test.ts +71 -0
  355. package/src/shared/bricks/props/tests/padding.ts +12 -0
  356. package/src/shared/bricks/props/tests/string.test.ts +79 -0
  357. package/src/shared/bricks/props/text.ts +66 -0
  358. package/src/shared/bricks/props/types.ts +57 -0
  359. package/src/shared/bricks.ts +232 -0
  360. package/src/shared/context.ts +39 -0
  361. package/src/shared/datarecords/external/airtable/handler.ts +21 -0
  362. package/src/shared/datarecords/external/airtable/options.ts +22 -0
  363. package/src/shared/datarecords/external/generic-webhook/handler.ts +10 -0
  364. package/src/shared/datarecords/external/generic-webhook/options.ts +13 -0
  365. package/src/shared/datarecords/external/google/oauth/config.ts +30 -0
  366. package/src/shared/datarecords/external/google/sheets/handler.ts +26 -0
  367. package/src/shared/datarecords/external/google/sheets/options.ts +9 -0
  368. package/src/shared/datarecords/types.ts +120 -0
  369. package/src/shared/datarecords.ts +5 -0
  370. package/src/shared/datasources/README.md +3 -0
  371. package/src/shared/datasources/external/facebook/posts/fetcher.ts +62 -0
  372. package/src/shared/datasources/external/facebook/posts/sample.ts +35 -0
  373. package/src/shared/datasources/external/facebook/posts/schema.ts +33 -0
  374. package/src/shared/datasources/external/facebook/posts/tests/fetcher.test.ts +91 -0
  375. package/src/shared/datasources/external/http-json/fetcher.ts +28 -0
  376. package/src/shared/datasources/external/http-json/options.ts +12 -0
  377. package/src/shared/datasources/external/http-json/schema.ts +6 -0
  378. package/src/shared/datasources/external/http-json/tests/fetcher.test.ts +70 -0
  379. package/src/shared/datasources/external/instagram/feed/fetcher.ts +43 -0
  380. package/src/shared/datasources/external/instagram/feed/sample.ts +22 -0
  381. package/src/shared/datasources/external/instagram/feed/schema.ts +23 -0
  382. package/src/shared/datasources/external/instagram/feed/tests/fetcher.test.ts +82 -0
  383. package/src/shared/datasources/external/mastodon/account/fetcher.ts +33 -0
  384. package/src/shared/datasources/external/mastodon/account/sample.ts +33 -0
  385. package/src/shared/datasources/external/mastodon/account/schema.ts +45 -0
  386. package/src/shared/datasources/external/mastodon/account/tests/fetcher.test.ts +65 -0
  387. package/src/shared/datasources/external/mastodon/options.ts +11 -0
  388. package/src/shared/datasources/external/mastodon/status/fetcher.ts +45 -0
  389. package/src/shared/datasources/external/mastodon/status/sample.array.ts +59 -0
  390. package/src/shared/datasources/external/mastodon/status/sample.single.ts +55 -0
  391. package/src/shared/datasources/external/mastodon/status/schema.ts +130 -0
  392. package/src/shared/datasources/external/mastodon/status/tests/fetcher.test.ts +74 -0
  393. package/src/shared/datasources/external/meta/oauth/config.ts +16 -0
  394. package/src/shared/datasources/external/meta/options.ts +11 -0
  395. package/src/shared/datasources/external/rss/fetcher.ts +30 -0
  396. package/src/shared/datasources/external/rss/options.ts +11 -0
  397. package/src/shared/datasources/external/rss/sample.ts +22 -0
  398. package/src/shared/datasources/external/rss/schema.ts +42 -0
  399. package/src/shared/datasources/external/threads/media/fetcher.ts +63 -0
  400. package/src/shared/datasources/external/threads/media/sample.ts +44 -0
  401. package/src/shared/datasources/external/threads/media/schema.ts +37 -0
  402. package/src/shared/datasources/external/tiktok/oauth/config.ts +17 -0
  403. package/src/shared/datasources/external/tiktok/video/fetcher.ts +49 -0
  404. package/src/shared/datasources/external/tiktok/video/options.ts +12 -0
  405. package/src/shared/datasources/external/tiktok/video/sample.ts +26 -0
  406. package/src/shared/datasources/external/tiktok/video/schema.ts +27 -0
  407. package/src/shared/datasources/external/youtube/list/fetcher.ts +46 -0
  408. package/src/shared/datasources/external/youtube/list/options.ts +15 -0
  409. package/src/shared/datasources/external/youtube/list/sample.ts +33 -0
  410. package/src/shared/datasources/external/youtube/list/schema.ts +38 -0
  411. package/src/shared/datasources/external/youtube/oauth/config.ts +15 -0
  412. package/src/shared/datasources/fetcher.ts +17 -0
  413. package/src/shared/datasources/internal/blog/schema.ts +69 -0
  414. package/src/shared/datasources/internal/changelog/schema.ts +48 -0
  415. package/src/shared/datasources/internal/contact-info/schema.ts +20 -0
  416. package/src/shared/datasources/internal/cv/schema.ts +217 -0
  417. package/src/shared/datasources/internal/faq/schema.ts +27 -0
  418. package/src/shared/datasources/internal/job-board/schema.ts +228 -0
  419. package/src/shared/datasources/internal/links/schema.ts +15 -0
  420. package/src/shared/datasources/internal/recipes/schema.ts +42 -0
  421. package/src/shared/datasources/internal/restaurant/schema.ts +225 -0
  422. package/src/shared/datasources/provider-options.ts +7 -0
  423. package/src/shared/datasources/samples.ts +26 -0
  424. package/src/shared/datasources/schemas.ts +45 -0
  425. package/src/shared/datasources/types.ts +276 -0
  426. package/src/shared/datasources/utils.ts +16 -0
  427. package/src/shared/datasources.ts +42 -0
  428. package/src/shared/env.ts +23 -0
  429. package/src/shared/errors.ts +1 -0
  430. package/src/shared/images.ts +44 -0
  431. package/src/shared/index.ts +3 -0
  432. package/src/shared/layout-constants.ts +25 -0
  433. package/src/shared/manifest.ts +50 -0
  434. package/src/shared/oauth.ts +16 -0
  435. package/src/shared/page.ts +61 -0
  436. package/src/shared/prompt.ts +9 -0
  437. package/src/shared/responsive.ts +5 -0
  438. package/src/shared/site.ts +97 -0
  439. package/src/shared/sitemap.ts +66 -0
  440. package/src/shared/social-icons.ts +307 -0
  441. package/src/shared/tests/attributes.test.ts +37 -0
  442. package/src/shared/theme.ts +245 -0
  443. package/src/shared/themes/README.md +34 -0
  444. package/src/shared/themes/color-system.ts +127 -0
  445. package/src/shared/utils/canvas-data-uri.ts +2 -0
  446. package/src/shared/utils/invariant.ts +25 -0
  447. package/src/shared/utils/json-date.ts +8 -0
  448. package/src/shared/utils/merge.ts +12 -0
  449. package/src/shared/utils/object-hash.ts +7 -0
  450. package/src/shared/utils/schema.ts +30 -0
  451. package/src/shared/utils/try-catch.ts +12 -0
  452. package/src/shared/utils/typed-ref.ts +41 -0
  453. package/dist/shared/bricks/manifests/countdown.manifest.d.ts +0 -57
  454. package/dist/shared/bricks/manifests/countdown.manifest.d.ts.map +0 -1
  455. package/dist/shared/bricks/manifests/countdown.manifest.js +0 -3
  456. package/dist/shared/bricks/manifests/generic-component.manifest.d.ts +0 -62
  457. package/dist/shared/bricks/manifests/generic-component.manifest.d.ts.map +0 -1
  458. package/dist/shared/bricks/manifests/generic-component.manifest.js +0 -3
  459. package/dist/shared/bricks/manifests/header.manifest.d.ts +0 -275
  460. package/dist/shared/bricks/manifests/header.manifest.d.ts.map +0 -1
  461. package/dist/shared/bricks/manifests/header.manifest.js +0 -3
  462. package/dist/shared/bricks/props/_docs-common-styles.d.ts +0 -59
  463. package/dist/shared/bricks/props/_docs-common-styles.d.ts.map +0 -1
  464. package/dist/shared/bricks/props/_docs-common-styles.js +0 -3
  465. package/dist/shared/bricks/props/tests/container.test.d.ts +0 -2
  466. package/dist/shared/bricks/props/tests/container.test.d.ts.map +0 -1
  467. package/dist/shared/chunk-2ZPY4LCA.js +0 -3
  468. package/dist/shared/chunk-3CY6AZG7.js +0 -3
  469. package/dist/shared/chunk-4FLI7C3B.js +0 -3
  470. package/dist/shared/chunk-64II435T.js +0 -3
  471. package/dist/shared/chunk-6LDLGZUM.js +0 -3
  472. package/dist/shared/chunk-6MEWEGNA.js +0 -3
  473. package/dist/shared/chunk-AZ63RF3K.js +0 -3
  474. package/dist/shared/chunk-BK6LBWDI.js +0 -3
  475. package/dist/shared/chunk-BMDB2V7J.js +0 -3
  476. package/dist/shared/chunk-BXEKJXEP.js +0 -3
  477. package/dist/shared/chunk-DAPQ4JPP.js +0 -3
  478. package/dist/shared/chunk-ERSFH7XA.js +0 -3
  479. package/dist/shared/chunk-F2ZVIFHO.js +0 -3
  480. package/dist/shared/chunk-H6L4KRCJ.js +0 -3
  481. package/dist/shared/chunk-IKAMZM4I.js +0 -3
  482. package/dist/shared/chunk-IWSVY2VC.js +0 -3
  483. package/dist/shared/chunk-JVDUEZYO.js +0 -3
  484. package/dist/shared/chunk-KB4HY432.js +0 -3
  485. package/dist/shared/chunk-LDOM2LJF.js +0 -3
  486. package/dist/shared/chunk-P5FVZ5PL.js +0 -3
  487. package/dist/shared/chunk-PD7P5KSV.js +0 -3
  488. package/dist/shared/chunk-PJ6HA55L.js +0 -3
  489. package/dist/shared/chunk-PSSJMWGU.js +0 -3
  490. package/dist/shared/chunk-Q4MXTCE4.js +0 -8
  491. package/dist/shared/chunk-QCQH5WLN.js +0 -3
  492. package/dist/shared/chunk-RBYYMUOZ.js +0 -3
  493. package/dist/shared/chunk-RHRJYPU3.js +0 -3
  494. package/dist/shared/chunk-S64XUCWM.js +0 -3
  495. package/dist/shared/chunk-SO5M7CYA.js +0 -3
  496. package/dist/shared/chunk-SQVL4WSX.js +0 -3
  497. package/dist/shared/chunk-SWGSHUTE.js +0 -3
  498. package/dist/shared/chunk-U44NTSIO.js +0 -3
  499. package/dist/shared/chunk-U4R5EGBK.js +0 -3
  500. package/dist/shared/chunk-U5WW6K7W.js +0 -3
  501. package/dist/shared/chunk-V2NS45PF.js +0 -3
  502. package/dist/shared/chunk-WOEBR25A.js +0 -3
  503. package/dist/shared/chunk-WPTVLIYS.js +0 -3
  504. package/dist/shared/chunk-WXKRIUTA.js +0 -3
  505. package/dist/shared/chunk-XBX6II3M.js +0 -3
  506. package/dist/shared/chunk-XGCBIXOO.js +0 -3
  507. package/dist/shared/chunk-YY6DANZF.js +0 -3
  508. package/dist/shared/chunk-ZWQHIQEQ.js +0 -3
  509. package/dist/shared/datasources/external/json/fetcher.d.ts.map +0 -1
  510. package/dist/shared/datasources/external/json/options.d.ts.map +0 -1
  511. package/dist/shared/datasources/external/json/schema.d.ts.map +0 -1
  512. package/dist/shared/datasources/external/json/tests/fetcher.test.d.ts.map +0 -1
  513. package/dist/shared/datasources/external/rss/tests/fetcher.test.d.ts +0 -2
  514. package/dist/shared/datasources/external/rss/tests/fetcher.test.d.ts.map +0 -1
  515. package/dist/shared/template.d.ts +0 -898
  516. package/dist/shared/template.d.ts.map +0 -1
  517. package/dist/shared/template.js +0 -3
  518. package/dist/shared/tests/page.test.d.ts +0 -2
  519. package/dist/shared/tests/page.test.d.ts.map +0 -1
  520. package/dist/shared/tests/test-config.d.ts +0 -3
  521. package/dist/shared/tests/test-config.d.ts.map +0 -1
  522. package/dist/shared/themes/all-themes.d.ts +0 -3
  523. package/dist/shared/themes/all-themes.d.ts.map +0 -1
  524. package/dist/shared/themes/all-themes.js +0 -3
  525. /package/dist/shared/datasources/external/{json → http-json}/fetcher.d.ts +0 -0
  526. /package/dist/shared/datasources/external/{json → http-json}/options.d.ts +0 -0
  527. /package/dist/shared/datasources/external/{json → http-json}/tests/fetcher.test.d.ts +0 -0
@@ -0,0 +1,48 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+
3
+ export const changelogSchema = Type.Array(
4
+ Type.Object({
5
+ title: Type.String({
6
+ title: "Release Title",
7
+ description: "Title of the release",
8
+ }),
9
+ version: Type.Optional(
10
+ Type.String({
11
+ title: "Version",
12
+ description: "Version number",
13
+ }),
14
+ ),
15
+ date: Type.String({
16
+ title: "Release Date",
17
+ format: "date",
18
+ description: "Release date in ISO format",
19
+ }),
20
+ changes: Type.Array(
21
+ Type.Object({
22
+ type: Type.Union(
23
+ [
24
+ Type.Literal("added"),
25
+ Type.Literal("changed"),
26
+ Type.Literal("fixed"),
27
+ Type.Literal("improved"),
28
+ Type.Literal("deprecated"),
29
+ Type.Literal("removed"),
30
+ ],
31
+ {
32
+ title: "Change Type",
33
+ },
34
+ ),
35
+ description: Type.String({
36
+ title: "Description",
37
+ format: "markdown",
38
+ }),
39
+ }),
40
+ ),
41
+ }),
42
+ {
43
+ title: "Changelog",
44
+ description: "Changelog items",
45
+ },
46
+ );
47
+
48
+ export type ChangelogSchema = Static<typeof changelogSchema>;
@@ -0,0 +1,20 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+ import { linksSchema } from "../links/schema";
3
+
4
+ export const contactInfoSchema = Type.Object(
5
+ {
6
+ email: Type.String({ format: "email", title: "Email" }),
7
+ phone: Type.Optional(Type.String({ title: "Phone" })),
8
+ companyName: Type.Optional(Type.String({ title: "Company Name" })),
9
+ firstName: Type.Optional(Type.String({ title: "First Name" })),
10
+ lastName: Type.Optional(Type.String({ title: "Last Name" })),
11
+ url: Type.Optional(Type.String({ format: "uri", title: "Website URL" })),
12
+ address: Type.Optional(Type.String({ title: "Address" })),
13
+ socialLinks: linksSchema,
14
+ },
15
+ {
16
+ description: "A generic schema representing a person or company contact information",
17
+ },
18
+ );
19
+
20
+ export type ContactInfo = Static<typeof contactInfoSchema>;
@@ -0,0 +1,217 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+ export const cvSchema = Type.Object(
3
+ {
4
+ firstName: Type.String({
5
+ title: "First name",
6
+ }),
7
+ lastName: Type.String({
8
+ title: "Last name",
9
+ }),
10
+ tagLine: Type.String({
11
+ title: "Tag line",
12
+ }),
13
+ email: Type.String({
14
+ title: "Email",
15
+ pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
16
+ }),
17
+ phoneNumber: Type.Optional(
18
+ Type.String({
19
+ title: "Phone number",
20
+ pattern: "^\\+?[1-9]\\d{1,14}$", // International phone number format
21
+ }),
22
+ ),
23
+ address: Type.Optional(
24
+ Type.String({
25
+ title: "Address",
26
+ }),
27
+ ),
28
+ socialLinks: Type.Optional(
29
+ Type.Array(
30
+ Type.Object({
31
+ platform: Type.String({
32
+ title: "Platform",
33
+ enum: ["LinkedIn", "GitHub", "Twitter", "Portfolio", "Other"],
34
+ }),
35
+ url: Type.String({
36
+ title: "URL",
37
+ pattern: "^https?://.*",
38
+ }),
39
+ }),
40
+ ),
41
+ ),
42
+ professionalSummary: Type.String({
43
+ title: "Professional Summary",
44
+ description: "Brief overview of your professional background and goals",
45
+ maxLength: 2000,
46
+ }),
47
+ workExperience: Type.Array(
48
+ Type.Object({
49
+ company: Type.String({ title: "Company Name" }),
50
+ position: Type.String({ title: "Position" }),
51
+ location: Type.Optional(Type.String({ title: "Location" })),
52
+ startDate: Type.String({
53
+ title: "Start Date",
54
+ format: "date",
55
+ }),
56
+ endDate: Type.Optional(
57
+ Type.String({
58
+ title: "End Date",
59
+ format: "date",
60
+ }),
61
+ ),
62
+ current: Type.Optional(
63
+ Type.Boolean({
64
+ title: "Current Position",
65
+ default: false,
66
+ }),
67
+ ),
68
+ description: Type.String({
69
+ title: "Description",
70
+ description: "Description of responsibilities and achievements",
71
+ format: "markdown",
72
+ }),
73
+ achievements: Type.Optional(
74
+ Type.Array(
75
+ Type.String({
76
+ title: "Achievement",
77
+ }),
78
+ ),
79
+ ),
80
+ }),
81
+ ),
82
+ education: Type.Array(
83
+ Type.Object({
84
+ institution: Type.String({ title: "Institution" }),
85
+ degree: Type.String({ title: "Degree" }),
86
+ field: Type.String({ title: "Field of Study" }),
87
+ startDate: Type.String({
88
+ title: "Start Date",
89
+ format: "date",
90
+ }),
91
+ endDate: Type.Optional(
92
+ Type.String({
93
+ title: "End Date",
94
+ format: "date",
95
+ }),
96
+ ),
97
+ gpa: Type.Optional(
98
+ Type.Number({
99
+ title: "GPA",
100
+ minimum: 0,
101
+ maximum: 4,
102
+ }),
103
+ ),
104
+ honors: Type.Optional(
105
+ Type.Array(
106
+ Type.String({
107
+ title: "Honor/Award",
108
+ }),
109
+ ),
110
+ ),
111
+ }),
112
+ ),
113
+ skills: Type.Array(
114
+ Type.Object({
115
+ category: Type.String({
116
+ title: "Skill Category",
117
+ description: "E.g., Programming Languages, Tools, Soft Skills",
118
+ }),
119
+ items: Type.Array(
120
+ Type.Object({
121
+ name: Type.String({ title: "Skill Name" }),
122
+ level: Type.Optional(
123
+ Type.String({
124
+ title: "Proficiency Level",
125
+ enum: ["Beginner", "Intermediate", "Advanced", "Expert"],
126
+ }),
127
+ ),
128
+ }),
129
+ ),
130
+ }),
131
+ ),
132
+ certifications: Type.Optional(
133
+ Type.Array(
134
+ Type.Object({
135
+ name: Type.String({ title: "Certification Name" }),
136
+ issuer: Type.String({ title: "Issuing Organization" }),
137
+ dateObtained: Type.String({
138
+ title: "Date Obtained",
139
+ format: "date",
140
+ }),
141
+ expiryDate: Type.Optional(
142
+ Type.String({
143
+ title: "Expiry Date",
144
+ format: "date",
145
+ }),
146
+ ),
147
+ credentialId: Type.Optional(Type.String({ title: "Credential ID" })),
148
+ }),
149
+ ),
150
+ ),
151
+ languages: Type.Optional(
152
+ Type.Array(
153
+ Type.Object({
154
+ language: Type.String({ title: "Language" }),
155
+ proficiency: Type.String({
156
+ title: "Proficiency Level",
157
+ enum: ["Basic", "Intermediate", "Advanced", "Native/Bilingual"],
158
+ }),
159
+ }),
160
+ ),
161
+ ),
162
+ projects: Type.Optional(
163
+ Type.Array(
164
+ Type.Object({
165
+ name: Type.String({ title: "Project Name" }),
166
+ description: Type.String({ title: "Description" }),
167
+ url: Type.Optional(
168
+ Type.String({
169
+ title: "Project URL",
170
+ pattern: "^https?://.*",
171
+ }),
172
+ ),
173
+ technologies: Type.Array(Type.String({ title: "Technology" })),
174
+ startDate: Type.Optional(
175
+ Type.String({
176
+ title: "Start Date",
177
+ format: "date",
178
+ }),
179
+ ),
180
+ endDate: Type.Optional(
181
+ Type.String({
182
+ title: "End Date",
183
+ format: "date",
184
+ }),
185
+ ),
186
+ }),
187
+ ),
188
+ ),
189
+ references: Type.Optional(
190
+ Type.Array(
191
+ Type.Object({
192
+ name: Type.String({ title: "Reference Name" }),
193
+ position: Type.String({ title: "Position" }),
194
+ company: Type.String({ title: "Company" }),
195
+ email: Type.Optional(
196
+ Type.String({
197
+ title: "Email",
198
+ pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
199
+ }),
200
+ ),
201
+ phoneNumber: Type.Optional(
202
+ Type.String({
203
+ title: "Phone Number",
204
+ pattern: "^\\+?[1-9]\\d{1,14}$",
205
+ }),
206
+ ),
207
+ relationship: Type.String({ title: "Professional Relationship" }),
208
+ }),
209
+ ),
210
+ ),
211
+ },
212
+ {
213
+ description: "Schema representing a comprehensive CV",
214
+ },
215
+ );
216
+
217
+ export type CVschema = Static<typeof cvSchema>;
@@ -0,0 +1,27 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+
3
+ export const faqSchema = Type.Array(
4
+ Type.Object({
5
+ question: Type.String({
6
+ title: "Question",
7
+ format: "markdown",
8
+ }),
9
+ answer: Type.String({
10
+ title: "Answer",
11
+ format: "markdown",
12
+ }),
13
+ category: Type.Optional(
14
+ Type.String({
15
+ title: "Category",
16
+ }),
17
+ ),
18
+ tags: Type.Optional(Type.Array(Type.String(), { title: "Tags" })),
19
+ order: Type.Optional(Type.Number({ title: "Order in the list" })),
20
+ }),
21
+ {
22
+ title: "FAQ",
23
+ description: "Schema representing a collection of frequently asked questions (FAQ)",
24
+ },
25
+ );
26
+
27
+ export type FaqSchema = Static<typeof faqSchema>;
@@ -0,0 +1,228 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+
3
+ export const jobBoardCompanySchema = Type.Object(
4
+ {
5
+ basicInfo: Type.Object({
6
+ name: Type.String({
7
+ title: "Company Name",
8
+ }),
9
+ legalName: Type.Optional(
10
+ Type.String({
11
+ title: "Legal Company Name",
12
+ }),
13
+ ),
14
+ industry: Type.Array(
15
+ Type.String({
16
+ title: "Industry",
17
+ description: "Industries the company operates in",
18
+ }),
19
+ ),
20
+ companySize: Type.String({
21
+ enum: ["1-10", "11-50", "51-200", "201-500", "501-1000", "1000+"],
22
+ title: "Company Size",
23
+ }),
24
+ foundedYear: Type.Optional(
25
+ Type.Number({
26
+ title: "Founded Year",
27
+ minimum: 1800,
28
+ maximum: 2025,
29
+ }),
30
+ ),
31
+ description: Type.String({
32
+ title: "Company Description",
33
+ minLength: 1,
34
+ maxLength: 5000,
35
+ format: "markdown",
36
+ }),
37
+ }),
38
+
39
+ contact: Type.Object({
40
+ email: Type.String({
41
+ title: "Company Email",
42
+ pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
43
+ }),
44
+ phone: Type.Optional(
45
+ Type.String({
46
+ title: "Company Phone",
47
+ pattern: "^\\+?[1-9]\\d{1,14}$",
48
+ }),
49
+ ),
50
+ website: Type.String({
51
+ title: "Company Website",
52
+ pattern: "^https?://.*",
53
+ }),
54
+ socialMedia: Type.Optional(
55
+ Type.Object({
56
+ linkedin: Type.Optional(Type.String()),
57
+ twitter: Type.Optional(Type.String()),
58
+ facebook: Type.Optional(Type.String()),
59
+ }),
60
+ ),
61
+ }),
62
+
63
+ location: Type.Object({
64
+ headquarters: Type.Object({
65
+ address: Type.Optional(Type.String()),
66
+ city: Type.String(),
67
+ state: Type.Optional(Type.String()),
68
+ country: Type.String(),
69
+ postalCode: Type.Optional(Type.String()),
70
+ }),
71
+ hasRemoteWorkPolicy: Type.Boolean({
72
+ title: "Offers Remote Work",
73
+ default: false,
74
+ }),
75
+ offices: Type.Optional(
76
+ Type.Array(
77
+ Type.Object({
78
+ city: Type.String(),
79
+ state: Type.Optional(Type.String()),
80
+ country: Type.String(),
81
+ }),
82
+ ),
83
+ ),
84
+ }),
85
+ },
86
+ {
87
+ description: "Schema representing a job board listing with company and job details",
88
+ },
89
+ );
90
+
91
+ export const jobBoardListingSchema = Type.Array(
92
+ Type.Object({
93
+ id: Type.String({
94
+ title: "Job ID",
95
+ description: "Unique identifier for the job posting",
96
+ }),
97
+ basicInfo: Type.Object({
98
+ title: Type.String({
99
+ title: "Job Title",
100
+ }),
101
+ department: Type.String({
102
+ title: "Department",
103
+ }),
104
+ employmentType: Type.Array(
105
+ Type.String({
106
+ enum: ["Full-time", "Part-time", "Contract", "Temporary", "Internship", "Freelance"],
107
+ }),
108
+ ),
109
+ experienceLevel: Type.String({
110
+ enum: ["Entry", "Associate", "Mid-Senior", "Senior", "Lead", "Executive"],
111
+ }),
112
+ workplaceType: Type.String({
113
+ enum: ["On-site", "Hybrid", "Remote"],
114
+ }),
115
+ }),
116
+
117
+ compensation: Type.Object({
118
+ salary: Type.Optional(
119
+ Type.Object({
120
+ min: Type.Number({
121
+ minimum: 0,
122
+ }),
123
+ max: Type.Number({
124
+ minimum: 0,
125
+ }),
126
+ currency: Type.String({
127
+ default: "USD",
128
+ }),
129
+ period: Type.String({
130
+ enum: ["Hour", "Day", "Week", "Month", "Year"],
131
+ }),
132
+ }),
133
+ ),
134
+ benefits: Type.Optional(
135
+ Type.Array(
136
+ Type.String({
137
+ enum: [
138
+ "Health Insurance",
139
+ "Dental Insurance",
140
+ "Vision Insurance",
141
+ "401(k)",
142
+ "Stock Options",
143
+ "Paid Time Off",
144
+ "Professional Development",
145
+ "Gym Membership",
146
+ "Remote Work",
147
+ "Flexible Hours",
148
+ "Other",
149
+ ],
150
+ }),
151
+ ),
152
+ ),
153
+ additionalCompensation: Type.Optional(Type.String()),
154
+ }),
155
+
156
+ details: Type.Object({
157
+ description: Type.String({
158
+ title: "Job Description",
159
+ minLength: 1,
160
+ maxLength: 10000,
161
+ }),
162
+ responsibilities: Type.Array(Type.String()),
163
+ requirements: Type.Object({
164
+ required: Type.Array(Type.String()),
165
+ preferred: Type.Optional(Type.Array(Type.String())),
166
+ }),
167
+ skills: Type.Array(
168
+ Type.Object({
169
+ name: Type.String(),
170
+ level: Type.Optional(
171
+ Type.String({
172
+ enum: ["Beginner", "Intermediate", "Advanced", "Expert"],
173
+ }),
174
+ ),
175
+ required: Type.Boolean({
176
+ default: true,
177
+ }),
178
+ }),
179
+ ),
180
+ }),
181
+
182
+ applicationProcess: Type.Object({
183
+ howToApply: Type.String({
184
+ enum: ["Direct", "External", "Email"],
185
+ }),
186
+ applicationUrl: Type.Optional(Type.String()),
187
+ applicationEmail: Type.Optional(
188
+ Type.String({
189
+ pattern: "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
190
+ }),
191
+ ),
192
+ requiredDocuments: Type.Array(
193
+ Type.String({
194
+ enum: ["Resume", "Cover Letter", "Portfolio", "References", "Other"],
195
+ }),
196
+ ),
197
+ }),
198
+
199
+ metadata: Type.Object({
200
+ postingDate: Type.String({
201
+ title: "Posting Date",
202
+ format: "date",
203
+ }),
204
+ expirationDate: Type.Optional(
205
+ Type.String({
206
+ title: "Expiration Date",
207
+ format: "date",
208
+ }),
209
+ ),
210
+ status: Type.String({
211
+ enum: ["Draft", "Active", "Paused", "Filled", "Expired", "Cancelled"],
212
+ default: "Draft",
213
+ }),
214
+ isSponsored: Type.Boolean({
215
+ default: false,
216
+ }),
217
+ isRemoteEligible: Type.Boolean({
218
+ default: false,
219
+ }),
220
+ isVisaSponsored: Type.Boolean({
221
+ default: false,
222
+ }),
223
+ }),
224
+ }),
225
+ );
226
+
227
+ export type JobBoardCompanyType = Static<typeof jobBoardCompanySchema>;
228
+ export type JobBoardListingType = Static<typeof jobBoardListingSchema>;
@@ -0,0 +1,15 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+
3
+ export const linksSchema = Type.Array(
4
+ Type.Object({
5
+ url: Type.String({ format: "uri", title: "URL" }),
6
+ title: Type.String({ title: "Title" }),
7
+ description: Type.Optional(Type.String({ title: "Description", format: "markdown" })),
8
+ icon: Type.Optional(Type.String({ title: "Icon", format: "uri" })),
9
+ }),
10
+ {
11
+ description: "Schema representing a collection of links",
12
+ },
13
+ );
14
+
15
+ export type LinksSchema = Static<typeof linksSchema>;
@@ -0,0 +1,42 @@
1
+ import { Type, type Static } from "@sinclair/typebox";
2
+
3
+ export const recipesSchema = Type.Array(
4
+ Type.Object({
5
+ title: Type.String({
6
+ title: "Title",
7
+ }),
8
+ description: Type.String({
9
+ title: "Description",
10
+ format: "markdown",
11
+ }),
12
+ time: Type.String({
13
+ title: "Time to prepare the recipe",
14
+ }),
15
+ ingredients: Type.Array(
16
+ Type.Object({
17
+ name: Type.String({
18
+ title: "Name of the ingredient",
19
+ }),
20
+ quantity: Type.String({
21
+ title: "Quantity of the ingredient",
22
+ }),
23
+ }),
24
+ ),
25
+ steps: Type.Array(
26
+ Type.Object({
27
+ title: Type.String({
28
+ title: "Step title",
29
+ }),
30
+ description: Type.String({
31
+ title: "Step description",
32
+ }),
33
+ }),
34
+ ),
35
+ }),
36
+ {
37
+ title: "Recipes",
38
+ description: "Collection of recipes",
39
+ },
40
+ );
41
+
42
+ export type RecipesSchema = Static<typeof recipesSchema>;