@upstart.gg/sdk 0.0.137 → 0.0.139

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 (802) hide show
  1. package/dist/shared/ai/schemas.d.ts +20 -15
  2. package/dist/shared/ai/schemas.d.ts.map +1 -1
  3. package/dist/shared/ai/schemas.js +31 -57
  4. package/dist/shared/ai/schemas.js.map +1 -1
  5. package/dist/shared/ai/types.d.ts +193 -190
  6. package/dist/shared/ai/types.d.ts.map +1 -1
  7. package/dist/shared/ai/types.js +1 -3
  8. package/dist/shared/analytics/init.d.ts +4 -1
  9. package/dist/shared/analytics/init.d.ts.map +1 -1
  10. package/dist/shared/analytics/init.js +14 -20
  11. package/dist/shared/analytics/init.js.map +1 -1
  12. package/dist/shared/analytics/track.d.ts +6 -2
  13. package/dist/shared/analytics/track.d.ts.map +1 -1
  14. package/dist/shared/analytics/track.js +14 -24
  15. package/dist/shared/analytics/track.js.map +1 -1
  16. package/dist/shared/analytics/types.d.ts +10 -8
  17. package/dist/shared/analytics/types.d.ts.map +1 -1
  18. package/dist/shared/analytics/types.js +1 -3
  19. package/dist/shared/attributes.d.ts +488 -475
  20. package/dist/shared/attributes.d.ts.map +1 -1
  21. package/dist/shared/attributes.js +369 -44
  22. package/dist/shared/attributes.js.map +1 -1
  23. package/dist/shared/brick-manifest.d.ts +126 -108
  24. package/dist/shared/brick-manifest.d.ts.map +1 -1
  25. package/dist/shared/brick-manifest.js +36 -12
  26. package/dist/shared/brick-manifest.js.map +1 -1
  27. package/dist/shared/bricks/manifests/_types.d.ts +11 -7
  28. package/dist/shared/bricks/manifests/_types.d.ts.map +1 -1
  29. package/dist/shared/bricks/manifests/_types.js +1 -3
  30. package/dist/shared/bricks/manifests/accordion.manifest.d.ts +83 -76
  31. package/dist/shared/bricks/manifests/accordion.manifest.d.ts.map +1 -1
  32. package/dist/shared/bricks/manifests/accordion.manifest.js +389 -23
  33. package/dist/shared/bricks/manifests/accordion.manifest.js.map +1 -1
  34. package/dist/shared/bricks/manifests/all-manifests.d.ts +15 -10
  35. package/dist/shared/bricks/manifests/all-manifests.d.ts.map +1 -1
  36. package/dist/shared/bricks/manifests/all-manifests.js +128 -60
  37. package/dist/shared/bricks/manifests/all-manifests.js.map +1 -1
  38. package/dist/shared/bricks/manifests/all-props.d.ts +1510 -1495
  39. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
  40. package/dist/shared/bricks/manifests/all-props.js +167 -240
  41. package/dist/shared/bricks/manifests/all-props.js.map +1 -1
  42. package/dist/shared/bricks/manifests/box.manifest.d.ts +87 -80
  43. package/dist/shared/bricks/manifests/box.manifest.d.ts.map +1 -1
  44. package/dist/shared/bricks/manifests/box.manifest.js +548 -26
  45. package/dist/shared/bricks/manifests/box.manifest.js.map +1 -1
  46. package/dist/shared/bricks/manifests/button.manifest.d.ts +75 -68
  47. package/dist/shared/bricks/manifests/button.manifest.d.ts.map +1 -1
  48. package/dist/shared/bricks/manifests/button.manifest.js +308 -22
  49. package/dist/shared/bricks/manifests/button.manifest.js.map +1 -1
  50. package/dist/shared/bricks/manifests/card.manifest.d.ts +96 -87
  51. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  52. package/dist/shared/bricks/manifests/card.manifest.js +392 -27
  53. package/dist/shared/bricks/manifests/card.manifest.js.map +1 -1
  54. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +86 -78
  55. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/carousel.manifest.js +775 -25
  57. package/dist/shared/bricks/manifests/carousel.manifest.js.map +1 -1
  58. package/dist/shared/bricks/manifests/footer.manifest.d.ts +117 -108
  59. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/footer.manifest.js +864 -24
  61. package/dist/shared/bricks/manifests/footer.manifest.js.map +1 -1
  62. package/dist/shared/bricks/manifests/form.manifest.d.ts +94 -87
  63. package/dist/shared/bricks/manifests/form.manifest.d.ts.map +1 -1
  64. package/dist/shared/bricks/manifests/form.manifest.js +324 -24
  65. package/dist/shared/bricks/manifests/form.manifest.js.map +1 -1
  66. package/dist/shared/bricks/manifests/hero.manifest.d.ts +80 -75
  67. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/hero.manifest.js +202 -23
  69. package/dist/shared/bricks/manifests/hero.manifest.js.map +1 -1
  70. package/dist/shared/bricks/manifests/html.manifest.d.ts +68 -60
  71. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  72. package/dist/shared/bricks/manifests/html.manifest.js +95 -17
  73. package/dist/shared/bricks/manifests/html.manifest.js.map +1 -1
  74. package/dist/shared/bricks/manifests/icon.manifest.d.ts +74 -67
  75. package/dist/shared/bricks/manifests/icon.manifest.d.ts.map +1 -1
  76. package/dist/shared/bricks/manifests/icon.manifest.js +239 -23
  77. package/dist/shared/bricks/manifests/icon.manifest.js.map +1 -1
  78. package/dist/shared/bricks/manifests/image.manifest.d.ts +97 -89
  79. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/image.manifest.js +456 -26
  81. package/dist/shared/bricks/manifests/image.manifest.js.map +1 -1
  82. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +93 -84
  83. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts.map +1 -1
  84. package/dist/shared/bricks/manifests/images-gallery.manifest.js +598 -24
  85. package/dist/shared/bricks/manifests/images-gallery.manifest.js.map +1 -1
  86. package/dist/shared/bricks/manifests/map.manifest.d.ts +78 -70
  87. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  88. package/dist/shared/bricks/manifests/map.manifest.js +138 -22
  89. package/dist/shared/bricks/manifests/map.manifest.js.map +1 -1
  90. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +117 -108
  91. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  92. package/dist/shared/bricks/manifests/navbar.manifest.js +370 -27
  93. package/dist/shared/bricks/manifests/navbar.manifest.js.map +1 -1
  94. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts +94 -87
  95. package/dist/shared/bricks/manifests/sidebar.manifest.d.ts.map +1 -1
  96. package/dist/shared/bricks/manifests/sidebar.manifest.js +69 -23
  97. package/dist/shared/bricks/manifests/sidebar.manifest.js.map +1 -1
  98. package/dist/shared/bricks/manifests/social-links.manifest.d.ts +84 -77
  99. package/dist/shared/bricks/manifests/social-links.manifest.d.ts.map +1 -1
  100. package/dist/shared/bricks/manifests/social-links.manifest.js +465 -23
  101. package/dist/shared/bricks/manifests/social-links.manifest.js.map +1 -1
  102. package/dist/shared/bricks/manifests/spacer.manifest.d.ts +65 -58
  103. package/dist/shared/bricks/manifests/spacer.manifest.d.ts.map +1 -1
  104. package/dist/shared/bricks/manifests/spacer.manifest.js +39 -17
  105. package/dist/shared/bricks/manifests/spacer.manifest.js.map +1 -1
  106. package/dist/shared/bricks/manifests/table.manifest.d.ts +93 -85
  107. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  108. package/dist/shared/bricks/manifests/table.manifest.js +771 -24
  109. package/dist/shared/bricks/manifests/table.manifest.js.map +1 -1
  110. package/dist/shared/bricks/manifests/tabs.manifest.d.ts +91 -84
  111. package/dist/shared/bricks/manifests/tabs.manifest.d.ts.map +1 -1
  112. package/dist/shared/bricks/manifests/tabs.manifest.js +119 -24
  113. package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -1
  114. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +97 -88
  115. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  116. package/dist/shared/bricks/manifests/testimonials.manifest.js +223 -27
  117. package/dist/shared/bricks/manifests/testimonials.manifest.js.map +1 -1
  118. package/dist/shared/bricks/manifests/text.manifest.d.ts +76 -72
  119. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  120. package/dist/shared/bricks/manifests/text.manifest.js +199 -22
  121. package/dist/shared/bricks/manifests/text.manifest.js.map +1 -1
  122. package/dist/shared/bricks/manifests/timeline.manifest.d.ts +102 -95
  123. package/dist/shared/bricks/manifests/timeline.manifest.d.ts.map +1 -1
  124. package/dist/shared/bricks/manifests/timeline.manifest.js +401 -24
  125. package/dist/shared/bricks/manifests/timeline.manifest.js.map +1 -1
  126. package/dist/shared/bricks/manifests/video.manifest.d.ts +74 -67
  127. package/dist/shared/bricks/manifests/video.manifest.d.ts.map +1 -1
  128. package/dist/shared/bricks/manifests/video.manifest.js +97 -20
  129. package/dist/shared/bricks/manifests/video.manifest.js.map +1 -1
  130. package/dist/shared/bricks/props/align.d.ts +12 -7
  131. package/dist/shared/bricks/props/align.d.ts.map +1 -1
  132. package/dist/shared/bricks/props/align.js +74 -13
  133. package/dist/shared/bricks/props/align.js.map +1 -1
  134. package/dist/shared/bricks/props/background.d.ts +21 -17
  135. package/dist/shared/bricks/props/background.d.ts.map +1 -1
  136. package/dist/shared/bricks/props/background.js +63 -11
  137. package/dist/shared/bricks/props/background.js.map +1 -1
  138. package/dist/shared/bricks/props/boolean.d.ts +6 -2
  139. package/dist/shared/bricks/props/boolean.d.ts.map +1 -1
  140. package/dist/shared/bricks/props/boolean.js +12 -8
  141. package/dist/shared/bricks/props/boolean.js.map +1 -1
  142. package/dist/shared/bricks/props/border.d.ts +12 -7
  143. package/dist/shared/bricks/props/border.d.ts.map +1 -1
  144. package/dist/shared/bricks/props/border.js +85 -12
  145. package/dist/shared/bricks/props/border.js.map +1 -1
  146. package/dist/shared/bricks/props/color-preset.d.ts +331 -327
  147. package/dist/shared/bricks/props/color-preset.d.ts.map +1 -1
  148. package/dist/shared/bricks/props/color-preset.js +378 -10
  149. package/dist/shared/bricks/props/color-preset.js.map +1 -1
  150. package/dist/shared/bricks/props/color.d.ts +10 -5
  151. package/dist/shared/bricks/props/color.d.ts.map +1 -1
  152. package/dist/shared/bricks/props/color.js +27 -10
  153. package/dist/shared/bricks/props/color.js.map +1 -1
  154. package/dist/shared/bricks/props/common.d.ts +32 -28
  155. package/dist/shared/bricks/props/common.d.ts.map +1 -1
  156. package/dist/shared/bricks/props/common.js +42 -12
  157. package/dist/shared/bricks/props/common.js.map +1 -1
  158. package/dist/shared/bricks/props/css-length.d.ts +10 -5
  159. package/dist/shared/bricks/props/css-length.d.ts.map +1 -1
  160. package/dist/shared/bricks/props/css-length.js +39 -12
  161. package/dist/shared/bricks/props/css-length.js.map +1 -1
  162. package/dist/shared/bricks/props/datarecord.d.ts +8 -3
  163. package/dist/shared/bricks/props/datarecord.d.ts.map +1 -1
  164. package/dist/shared/bricks/props/datarecord.js +12 -8
  165. package/dist/shared/bricks/props/datarecord.js.map +1 -1
  166. package/dist/shared/bricks/props/datasource.d.ts +18 -13
  167. package/dist/shared/bricks/props/datasource.d.ts.map +1 -1
  168. package/dist/shared/bricks/props/datasource.js +61 -84
  169. package/dist/shared/bricks/props/datasource.js.map +1 -1
  170. package/dist/shared/bricks/props/date.d.ts +8 -3
  171. package/dist/shared/bricks/props/date.d.ts.map +1 -1
  172. package/dist/shared/bricks/props/date.js +19 -23
  173. package/dist/shared/bricks/props/date.js.map +1 -1
  174. package/dist/shared/bricks/props/direction.d.ts +8 -3
  175. package/dist/shared/bricks/props/direction.d.ts.map +1 -1
  176. package/dist/shared/bricks/props/direction.js +16 -9
  177. package/dist/shared/bricks/props/direction.js.map +1 -1
  178. package/dist/shared/bricks/props/dynamic.d.ts +39 -34
  179. package/dist/shared/bricks/props/dynamic.d.ts.map +1 -1
  180. package/dist/shared/bricks/props/dynamic.js +92 -13
  181. package/dist/shared/bricks/props/dynamic.js.map +1 -1
  182. package/dist/shared/bricks/props/effects.d.ts +18 -11
  183. package/dist/shared/bricks/props/effects.d.ts.map +1 -1
  184. package/dist/shared/bricks/props/effects.js +81 -13
  185. package/dist/shared/bricks/props/effects.js.map +1 -1
  186. package/dist/shared/bricks/props/file.d.ts +6 -1
  187. package/dist/shared/bricks/props/file.d.ts.map +1 -1
  188. package/dist/shared/bricks/props/file.js +11 -14
  189. package/dist/shared/bricks/props/file.js.map +1 -1
  190. package/dist/shared/bricks/props/geolocation.d.ts +15 -10
  191. package/dist/shared/bricks/props/geolocation.d.ts.map +1 -1
  192. package/dist/shared/bricks/props/geolocation.js +28 -40
  193. package/dist/shared/bricks/props/geolocation.js.map +1 -1
  194. package/dist/shared/bricks/props/grow.d.ts +8 -0
  195. package/dist/shared/bricks/props/grow.d.ts.map +1 -0
  196. package/dist/shared/bricks/props/grow.js +16 -0
  197. package/dist/shared/bricks/props/grow.js.map +1 -0
  198. package/dist/shared/bricks/props/helpers.d.ts +32 -24
  199. package/dist/shared/bricks/props/helpers.d.ts.map +1 -1
  200. package/dist/shared/bricks/props/helpers.js +50 -18
  201. package/dist/shared/bricks/props/helpers.js.map +1 -1
  202. package/dist/shared/bricks/props/image.d.ts +15 -11
  203. package/dist/shared/bricks/props/image.d.ts.map +1 -1
  204. package/dist/shared/bricks/props/image.js +109 -9
  205. package/dist/shared/bricks/props/image.js.map +1 -1
  206. package/dist/shared/bricks/props/number.d.ts +8 -4
  207. package/dist/shared/bricks/props/number.d.ts.map +1 -1
  208. package/dist/shared/bricks/props/number.js +11 -8
  209. package/dist/shared/bricks/props/number.js.map +1 -1
  210. package/dist/shared/bricks/props/position.d.ts +8 -3
  211. package/dist/shared/bricks/props/position.d.ts.map +1 -1
  212. package/dist/shared/bricks/props/position.js +12 -8
  213. package/dist/shared/bricks/props/position.js.map +1 -1
  214. package/dist/shared/bricks/props/string.d.ts +13 -9
  215. package/dist/shared/bricks/props/string.d.ts.map +1 -1
  216. package/dist/shared/bricks/props/string.js +34 -12
  217. package/dist/shared/bricks/props/string.js.map +1 -1
  218. package/dist/shared/bricks/props/tags.d.ts +8 -3
  219. package/dist/shared/bricks/props/tags.d.ts.map +1 -1
  220. package/dist/shared/bricks/props/tags.js +16 -8
  221. package/dist/shared/bricks/props/tags.js.map +1 -1
  222. package/dist/shared/bricks/props/text.d.ts +22 -11
  223. package/dist/shared/bricks/props/text.d.ts.map +1 -1
  224. package/dist/shared/bricks/props/text.js +79 -13
  225. package/dist/shared/bricks/props/text.js.map +1 -1
  226. package/dist/shared/bricks/props/types.d.ts +52 -49
  227. package/dist/shared/bricks/props/types.d.ts.map +1 -1
  228. package/dist/shared/bricks/props/types.js +1 -3
  229. package/dist/shared/bricks.d.ts +183 -178
  230. package/dist/shared/bricks.d.ts.map +1 -1
  231. package/dist/shared/bricks.js +271 -77
  232. package/dist/shared/bricks.js.map +1 -1
  233. package/dist/shared/context.d.ts +405 -394
  234. package/dist/shared/context.d.ts.map +1 -1
  235. package/dist/shared/context.js +22 -92
  236. package/dist/shared/context.js.map +1 -1
  237. package/dist/shared/datarecords/external/airtable/handler.d.ts +40 -20
  238. package/dist/shared/datarecords/external/airtable/handler.d.ts.map +1 -1
  239. package/dist/shared/datarecords/external/airtable/handler.js +242 -366
  240. package/dist/shared/datarecords/external/airtable/handler.js.map +1 -1
  241. package/dist/shared/datarecords/external/airtable/oauth/config.d.ts +14 -9
  242. package/dist/shared/datarecords/external/airtable/oauth/config.d.ts.map +1 -1
  243. package/dist/shared/datarecords/external/airtable/oauth/config.js +12 -15
  244. package/dist/shared/datarecords/external/airtable/oauth/config.js.map +1 -1
  245. package/dist/shared/datarecords/external/airtable/types.d.ts +39 -35
  246. package/dist/shared/datarecords/external/airtable/types.d.ts.map +1 -1
  247. package/dist/shared/datarecords/external/airtable/types.js +44 -13
  248. package/dist/shared/datarecords/external/airtable/types.js.map +1 -1
  249. package/dist/shared/datarecords/external/generic-webhook/handler.d.ts +6 -2
  250. package/dist/shared/datarecords/external/generic-webhook/handler.d.ts.map +1 -1
  251. package/dist/shared/datarecords/external/generic-webhook/handler.js +9 -14
  252. package/dist/shared/datarecords/external/generic-webhook/handler.js.map +1 -1
  253. package/dist/shared/datarecords/external/generic-webhook/options.d.ts +10 -5
  254. package/dist/shared/datarecords/external/generic-webhook/options.d.ts.map +1 -1
  255. package/dist/shared/datarecords/external/generic-webhook/options.js +14 -16
  256. package/dist/shared/datarecords/external/generic-webhook/options.js.map +1 -1
  257. package/dist/shared/datarecords/external/google/oauth/config.d.ts +28 -24
  258. package/dist/shared/datarecords/external/google/oauth/config.d.ts.map +1 -1
  259. package/dist/shared/datarecords/external/google/oauth/config.js +25 -34
  260. package/dist/shared/datarecords/external/google/oauth/config.js.map +1 -1
  261. package/dist/shared/datarecords/external/google/sheets/client.d.ts +11 -9
  262. package/dist/shared/datarecords/external/google/sheets/client.d.ts.map +1 -1
  263. package/dist/shared/datarecords/external/google/sheets/client.js +75 -8
  264. package/dist/shared/datarecords/external/google/sheets/client.js.map +1 -1
  265. package/dist/shared/datarecords/external/google/sheets/handler.d.ts +36 -18
  266. package/dist/shared/datarecords/external/google/sheets/handler.d.ts.map +1 -1
  267. package/dist/shared/datarecords/external/google/sheets/handler.js +103 -176
  268. package/dist/shared/datarecords/external/google/sheets/handler.js.map +1 -1
  269. package/dist/shared/datarecords/external/google/sheets/types.d.ts +12 -7
  270. package/dist/shared/datarecords/external/google/sheets/types.d.ts.map +1 -1
  271. package/dist/shared/datarecords/external/google/sheets/types.js +11 -8
  272. package/dist/shared/datarecords/external/google/sheets/types.js.map +1 -1
  273. package/dist/shared/datarecords/external/notion/handler.d.ts +48 -26
  274. package/dist/shared/datarecords/external/notion/handler.d.ts.map +1 -1
  275. package/dist/shared/datarecords/external/notion/handler.js +233 -386
  276. package/dist/shared/datarecords/external/notion/handler.js.map +1 -1
  277. package/dist/shared/datarecords/external/notion/oauth/config.d.ts +10 -5
  278. package/dist/shared/datarecords/external/notion/oauth/config.d.ts.map +1 -1
  279. package/dist/shared/datarecords/external/notion/oauth/config.js +8 -11
  280. package/dist/shared/datarecords/external/notion/oauth/config.js.map +1 -1
  281. package/dist/shared/datarecords/external/notion/types.d.ts +20 -15
  282. package/dist/shared/datarecords/external/notion/types.d.ts.map +1 -1
  283. package/dist/shared/datarecords/external/notion/types.js +14 -8
  284. package/dist/shared/datarecords/external/notion/types.js.map +1 -1
  285. package/dist/shared/datarecords/types.d.ts +24 -19
  286. package/dist/shared/datarecords/types.d.ts.map +1 -1
  287. package/dist/shared/datarecords/types.js +144 -16
  288. package/dist/shared/datarecords/types.js.map +1 -1
  289. package/dist/shared/datarecords.d.ts +6 -2
  290. package/dist/shared/datarecords.d.ts.map +1 -1
  291. package/dist/shared/datarecords.js +5 -9
  292. package/dist/shared/datarecords.js.map +1 -1
  293. package/dist/shared/datasources/external/facebook/posts/fetcher.d.ts +8 -5
  294. package/dist/shared/datasources/external/facebook/posts/fetcher.d.ts.map +1 -1
  295. package/dist/shared/datasources/external/facebook/posts/fetcher.js +38 -48
  296. package/dist/shared/datasources/external/facebook/posts/fetcher.js.map +1 -1
  297. package/dist/shared/datasources/external/facebook/posts/schema.d.ts +30 -25
  298. package/dist/shared/datasources/external/facebook/posts/schema.d.ts.map +1 -1
  299. package/dist/shared/datasources/external/facebook/posts/schema.js +29 -36
  300. package/dist/shared/datasources/external/facebook/posts/schema.js.map +1 -1
  301. package/dist/shared/datasources/external/http-json/fetcher.d.ts +7 -3
  302. package/dist/shared/datasources/external/http-json/fetcher.d.ts.map +1 -1
  303. package/dist/shared/datasources/external/http-json/fetcher.js +16 -28
  304. package/dist/shared/datasources/external/http-json/fetcher.js.map +1 -1
  305. package/dist/shared/datasources/external/http-json/options.d.ts +10 -5
  306. package/dist/shared/datasources/external/http-json/options.d.ts.map +1 -1
  307. package/dist/shared/datasources/external/http-json/options.js +8 -11
  308. package/dist/shared/datasources/external/http-json/options.js.map +1 -1
  309. package/dist/shared/datasources/external/http-json/schema.d.ts +9 -4
  310. package/dist/shared/datasources/external/http-json/schema.d.ts.map +1 -1
  311. package/dist/shared/datasources/external/http-json/schema.js +6 -10
  312. package/dist/shared/datasources/external/http-json/schema.js.map +1 -1
  313. package/dist/shared/datasources/external/instagram/feed/fetcher.d.ts +8 -5
  314. package/dist/shared/datasources/external/instagram/feed/fetcher.d.ts.map +1 -1
  315. package/dist/shared/datasources/external/instagram/feed/fetcher.js +26 -28
  316. package/dist/shared/datasources/external/instagram/feed/fetcher.js.map +1 -1
  317. package/dist/shared/datasources/external/instagram/feed/schema.d.ts +22 -17
  318. package/dist/shared/datasources/external/instagram/feed/schema.d.ts.map +1 -1
  319. package/dist/shared/datasources/external/instagram/feed/schema.js +26 -29
  320. package/dist/shared/datasources/external/instagram/feed/schema.js.map +1 -1
  321. package/dist/shared/datasources/external/mastodon/account/fetcher.d.ts +7 -4
  322. package/dist/shared/datasources/external/mastodon/account/fetcher.d.ts.map +1 -1
  323. package/dist/shared/datasources/external/mastodon/account/fetcher.js +10 -8
  324. package/dist/shared/datasources/external/mastodon/account/fetcher.js.map +1 -1
  325. package/dist/shared/datasources/external/mastodon/account/schema.d.ts +43 -38
  326. package/dist/shared/datasources/external/mastodon/account/schema.d.ts.map +1 -1
  327. package/dist/shared/datasources/external/mastodon/account/schema.js +42 -8
  328. package/dist/shared/datasources/external/mastodon/account/schema.js.map +1 -1
  329. package/dist/shared/datasources/external/mastodon/options.d.ts +9 -4
  330. package/dist/shared/datasources/external/mastodon/options.d.ts.map +1 -1
  331. package/dist/shared/datasources/external/mastodon/options.js +5 -10
  332. package/dist/shared/datasources/external/mastodon/options.js.map +1 -1
  333. package/dist/shared/datasources/external/mastodon/status/fetcher.d.ts +7 -4
  334. package/dist/shared/datasources/external/mastodon/status/fetcher.d.ts.map +1 -1
  335. package/dist/shared/datasources/external/mastodon/status/fetcher.js +20 -31
  336. package/dist/shared/datasources/external/mastodon/status/fetcher.js.map +1 -1
  337. package/dist/shared/datasources/external/mastodon/status/sample.array.d.ts +50 -47
  338. package/dist/shared/datasources/external/mastodon/status/sample.array.d.ts.map +1 -1
  339. package/dist/shared/datasources/external/mastodon/status/sample.array.js +54 -62
  340. package/dist/shared/datasources/external/mastodon/status/sample.array.js.map +1 -1
  341. package/dist/shared/datasources/external/mastodon/status/sample.single.d.ts +50 -47
  342. package/dist/shared/datasources/external/mastodon/status/sample.single.d.ts.map +1 -1
  343. package/dist/shared/datasources/external/mastodon/status/sample.single.js +54 -60
  344. package/dist/shared/datasources/external/mastodon/status/sample.single.js.map +1 -1
  345. package/dist/shared/datasources/external/mastodon/status/schema.d.ts +252 -247
  346. package/dist/shared/datasources/external/mastodon/status/schema.d.ts.map +1 -1
  347. package/dist/shared/datasources/external/mastodon/status/schema.js +108 -108
  348. package/dist/shared/datasources/external/mastodon/status/schema.js.map +1 -1
  349. package/dist/shared/datasources/external/meta/oauth/config.d.ts +29 -25
  350. package/dist/shared/datasources/external/meta/oauth/config.d.ts.map +1 -1
  351. package/dist/shared/datasources/external/meta/oauth/config.js +15 -20
  352. package/dist/shared/datasources/external/meta/oauth/config.js.map +1 -1
  353. package/dist/shared/datasources/external/meta/options.d.ts +9 -4
  354. package/dist/shared/datasources/external/meta/options.d.ts.map +1 -1
  355. package/dist/shared/datasources/external/meta/options.js +5 -10
  356. package/dist/shared/datasources/external/meta/options.js.map +1 -1
  357. package/dist/shared/datasources/external/rss/fetcher.d.ts +7 -4
  358. package/dist/shared/datasources/external/rss/fetcher.d.ts.map +1 -1
  359. package/dist/shared/datasources/external/rss/fetcher.js +14 -25
  360. package/dist/shared/datasources/external/rss/fetcher.js.map +1 -1
  361. package/dist/shared/datasources/external/rss/options.d.ts +9 -4
  362. package/dist/shared/datasources/external/rss/options.d.ts.map +1 -1
  363. package/dist/shared/datasources/external/rss/options.js +5 -10
  364. package/dist/shared/datasources/external/rss/options.js.map +1 -1
  365. package/dist/shared/datasources/external/rss/sample.js +25 -0
  366. package/dist/shared/datasources/external/rss/sample.js.map +1 -0
  367. package/dist/shared/datasources/external/rss/schema.d.ts +13 -8
  368. package/dist/shared/datasources/external/rss/schema.d.ts.map +1 -1
  369. package/dist/shared/datasources/external/rss/schema.js +30 -8
  370. package/dist/shared/datasources/external/rss/schema.js.map +1 -1
  371. package/dist/shared/datasources/external/threads/media/fetcher.d.ts +9 -5
  372. package/dist/shared/datasources/external/threads/media/fetcher.d.ts.map +1 -1
  373. package/dist/shared/datasources/external/threads/media/fetcher.js +37 -46
  374. package/dist/shared/datasources/external/threads/media/fetcher.js.map +1 -1
  375. package/dist/shared/datasources/external/threads/media/schema.d.ts +29 -24
  376. package/dist/shared/datasources/external/threads/media/schema.d.ts.map +1 -1
  377. package/dist/shared/datasources/external/threads/media/schema.js +32 -36
  378. package/dist/shared/datasources/external/threads/media/schema.js.map +1 -1
  379. package/dist/shared/datasources/external/tiktok/oauth/config.d.ts +31 -27
  380. package/dist/shared/datasources/external/tiktok/oauth/config.d.ts.map +1 -1
  381. package/dist/shared/datasources/external/tiktok/oauth/config.js +15 -18
  382. package/dist/shared/datasources/external/tiktok/oauth/config.js.map +1 -1
  383. package/dist/shared/datasources/external/tiktok/video/fetcher.d.ts +8 -5
  384. package/dist/shared/datasources/external/tiktok/video/fetcher.d.ts.map +1 -1
  385. package/dist/shared/datasources/external/tiktok/video/fetcher.js +31 -33
  386. package/dist/shared/datasources/external/tiktok/video/fetcher.js.map +1 -1
  387. package/dist/shared/datasources/external/tiktok/video/options.d.ts +10 -5
  388. package/dist/shared/datasources/external/tiktok/video/options.d.ts.map +1 -1
  389. package/dist/shared/datasources/external/tiktok/video/options.js +8 -11
  390. package/dist/shared/datasources/external/tiktok/video/options.js.map +1 -1
  391. package/dist/shared/datasources/external/tiktok/video/schema.d.ts +24 -19
  392. package/dist/shared/datasources/external/tiktok/video/schema.d.ts.map +1 -1
  393. package/dist/shared/datasources/external/tiktok/video/schema.js +23 -30
  394. package/dist/shared/datasources/external/tiktok/video/schema.js.map +1 -1
  395. package/dist/shared/datasources/external/youtube/list/fetcher.d.ts +8 -5
  396. package/dist/shared/datasources/external/youtube/list/fetcher.d.ts.map +1 -1
  397. package/dist/shared/datasources/external/youtube/list/fetcher.js +20 -31
  398. package/dist/shared/datasources/external/youtube/list/fetcher.js.map +1 -1
  399. package/dist/shared/datasources/external/youtube/list/options.d.ts +13 -8
  400. package/dist/shared/datasources/external/youtube/list/options.d.ts.map +1 -1
  401. package/dist/shared/datasources/external/youtube/list/options.js +11 -14
  402. package/dist/shared/datasources/external/youtube/list/options.js.map +1 -1
  403. package/dist/shared/datasources/external/youtube/list/sample.js +33 -0
  404. package/dist/shared/datasources/external/youtube/list/sample.js.map +1 -0
  405. package/dist/shared/datasources/external/youtube/list/schema.d.ts +33 -28
  406. package/dist/shared/datasources/external/youtube/list/schema.d.ts.map +1 -1
  407. package/dist/shared/datasources/external/youtube/list/schema.js +36 -8
  408. package/dist/shared/datasources/external/youtube/list/schema.js.map +1 -1
  409. package/dist/shared/datasources/external/youtube/oauth/config.d.ts +22 -18
  410. package/dist/shared/datasources/external/youtube/oauth/config.d.ts.map +1 -1
  411. package/dist/shared/datasources/external/youtube/oauth/config.js +15 -18
  412. package/dist/shared/datasources/external/youtube/oauth/config.js.map +1 -1
  413. package/dist/shared/datasources/fetcher.d.ts +10 -6
  414. package/dist/shared/datasources/fetcher.d.ts.map +1 -1
  415. package/dist/shared/datasources/fetcher.js +1 -3
  416. package/dist/shared/datasources/internal/blog/schema.d.ts +20 -15
  417. package/dist/shared/datasources/internal/blog/schema.d.ts.map +1 -1
  418. package/dist/shared/datasources/internal/blog/schema.js +59 -75
  419. package/dist/shared/datasources/internal/blog/schema.js.map +1 -1
  420. package/dist/shared/datasources/internal/changelog/schema.d.ts +15 -10
  421. package/dist/shared/datasources/internal/changelog/schema.d.ts.map +1 -1
  422. package/dist/shared/datasources/internal/changelog/schema.js +36 -51
  423. package/dist/shared/datasources/internal/changelog/schema.js.map +1 -1
  424. package/dist/shared/datasources/internal/contact-info/schema.d.ts +21 -16
  425. package/dist/shared/datasources/internal/contact-info/schema.d.ts.map +1 -1
  426. package/dist/shared/datasources/internal/contact-info/schema.js +21 -25
  427. package/dist/shared/datasources/internal/contact-info/schema.js.map +1 -1
  428. package/dist/shared/datasources/internal/cv/schema.d.ts +71 -66
  429. package/dist/shared/datasources/internal/cv/schema.d.ts.map +1 -1
  430. package/dist/shared/datasources/internal/cv/schema.js +155 -222
  431. package/dist/shared/datasources/internal/cv/schema.js.map +1 -1
  432. package/dist/shared/datasources/internal/faq/schema.d.ts +13 -8
  433. package/dist/shared/datasources/internal/faq/schema.d.ts.map +1 -1
  434. package/dist/shared/datasources/internal/faq/schema.js +20 -30
  435. package/dist/shared/datasources/internal/faq/schema.js.map +1 -1
  436. package/dist/shared/datasources/internal/job-board/schema.d.ts +86 -81
  437. package/dist/shared/datasources/internal/job-board/schema.d.ts.map +1 -1
  438. package/dist/shared/datasources/internal/job-board/schema.js +194 -224
  439. package/dist/shared/datasources/internal/job-board/schema.js.map +1 -1
  440. package/dist/shared/datasources/internal/links/schema.d.ts +12 -7
  441. package/dist/shared/datasources/internal/links/schema.d.ts.map +1 -1
  442. package/dist/shared/datasources/internal/links/schema.js +20 -8
  443. package/dist/shared/datasources/internal/links/schema.js.map +1 -1
  444. package/dist/shared/datasources/internal/recipes/schema.d.ts +19 -14
  445. package/dist/shared/datasources/internal/recipes/schema.d.ts.map +1 -1
  446. package/dist/shared/datasources/internal/recipes/schema.js +23 -45
  447. package/dist/shared/datasources/internal/recipes/schema.js.map +1 -1
  448. package/dist/shared/datasources/internal/restaurant/schema.d.ts +82 -77
  449. package/dist/shared/datasources/internal/restaurant/schema.d.ts.map +1 -1
  450. package/dist/shared/datasources/internal/restaurant/schema.js +154 -226
  451. package/dist/shared/datasources/internal/restaurant/schema.js.map +1 -1
  452. package/dist/shared/datasources/samples.d.ts +7 -3
  453. package/dist/shared/datasources/samples.d.ts.map +1 -1
  454. package/dist/shared/datasources/samples.js +9 -69
  455. package/dist/shared/datasources/samples.js.map +1 -1
  456. package/dist/shared/datasources/schemas.d.ts +43 -38
  457. package/dist/shared/datasources/schemas.d.ts.map +1 -1
  458. package/dist/shared/datasources/schemas.js +10 -34
  459. package/dist/shared/datasources/schemas.js.map +1 -1
  460. package/dist/shared/datasources/types.d.ts +142 -138
  461. package/dist/shared/datasources/types.d.ts.map +1 -1
  462. package/dist/shared/datasources/types.js +384 -20
  463. package/dist/shared/datasources/types.js.map +1 -1
  464. package/dist/shared/datasources/utils.d.ts +8 -4
  465. package/dist/shared/datasources/utils.d.ts.map +1 -1
  466. package/dist/shared/datasources/utils.js +15 -12
  467. package/dist/shared/datasources/utils.js.map +1 -1
  468. package/dist/shared/datasources.d.ts +22 -9
  469. package/dist/shared/datasources.d.ts.map +1 -1
  470. package/dist/shared/datasources.js +65 -44
  471. package/dist/shared/datasources.js.map +1 -1
  472. package/dist/shared/env.d.ts +25 -21
  473. package/dist/shared/env.d.ts.map +1 -1
  474. package/dist/shared/env.js +1 -3
  475. package/dist/shared/errors.d.ts +2 -2
  476. package/dist/shared/errors.js +2 -9
  477. package/dist/shared/images.d.ts +21 -16
  478. package/dist/shared/images.d.ts.map +1 -1
  479. package/dist/shared/images.js +24 -11
  480. package/dist/shared/images.js.map +1 -1
  481. package/dist/shared/index.d.ts +4 -2
  482. package/dist/shared/index.d.ts.map +1 -1
  483. package/dist/shared/index.js +4 -10
  484. package/dist/shared/index.js.map +1 -1
  485. package/dist/shared/layout-constants.d.ts +8 -5
  486. package/dist/shared/layout-constants.d.ts.map +1 -1
  487. package/dist/shared/layout-constants.js +15 -15
  488. package/dist/shared/layout-constants.js.map +1 -1
  489. package/dist/shared/manifest.d.ts +17 -12
  490. package/dist/shared/manifest.d.ts.map +1 -1
  491. package/dist/shared/manifest.js +26 -52
  492. package/dist/shared/manifest.js.map +1 -1
  493. package/dist/shared/oauth.d.ts +14 -9
  494. package/dist/shared/oauth.d.ts.map +1 -1
  495. package/dist/shared/oauth.js +14 -9
  496. package/dist/shared/oauth.js.map +1 -1
  497. package/dist/shared/page.d.ts +250 -241
  498. package/dist/shared/page.d.ts.map +1 -1
  499. package/dist/shared/page.js +29 -61
  500. package/dist/shared/page.js.map +1 -1
  501. package/dist/shared/prompt.d.ts +8 -3
  502. package/dist/shared/prompt.d.ts.map +1 -1
  503. package/dist/shared/prompt.js +10 -8
  504. package/dist/shared/prompt.js.map +1 -1
  505. package/dist/shared/responsive.d.ts +8 -3
  506. package/dist/shared/responsive.d.ts.map +1 -1
  507. package/dist/shared/responsive.js +5 -10
  508. package/dist/shared/responsive.js.map +1 -1
  509. package/dist/shared/site.d.ts +629 -615
  510. package/dist/shared/site.d.ts.map +1 -1
  511. package/dist/shared/site.js +56 -69
  512. package/dist/shared/site.js.map +1 -1
  513. package/dist/shared/sitemap.d.ts +21 -14
  514. package/dist/shared/sitemap.d.ts.map +1 -1
  515. package/dist/shared/sitemap.js +29 -62
  516. package/dist/shared/sitemap.js.map +1 -1
  517. package/dist/shared/social-icons.d.ts +6 -3
  518. package/dist/shared/social-icons.d.ts.map +1 -1
  519. package/dist/shared/social-icons.js +309 -313
  520. package/dist/shared/social-icons.js.map +1 -1
  521. package/dist/shared/theme.d.ts +83 -78
  522. package/dist/shared/theme.d.ts.map +1 -1
  523. package/dist/shared/theme.js +261 -18
  524. package/dist/shared/theme.js.map +1 -1
  525. package/dist/shared/themes/color-system.d.ts +16 -12
  526. package/dist/shared/themes/color-system.d.ts.map +1 -1
  527. package/dist/shared/themes/color-system.js +81 -89
  528. package/dist/shared/themes/color-system.js.map +1 -1
  529. package/dist/shared/utils/canvas-data-uri.d.ts +4 -1
  530. package/dist/shared/utils/canvas-data-uri.d.ts.map +1 -1
  531. package/dist/shared/utils/canvas-data-uri.js +4 -8
  532. package/dist/shared/utils/canvas-data-uri.js.map +1 -1
  533. package/dist/shared/utils/invariant.d.ts +4 -1
  534. package/dist/shared/utils/invariant.d.ts.map +1 -1
  535. package/dist/shared/utils/invariant.js +10 -8
  536. package/dist/shared/utils/invariant.js.map +1 -1
  537. package/dist/shared/utils/json-date.d.ts +9 -4
  538. package/dist/shared/utils/json-date.d.ts.map +1 -1
  539. package/dist/shared/utils/json-date.js +6 -8
  540. package/dist/shared/utils/json-date.js.map +1 -1
  541. package/dist/shared/utils/llm.d.ts +7 -2
  542. package/dist/shared/utils/llm.d.ts.map +1 -1
  543. package/dist/shared/utils/llm.js +57 -8
  544. package/dist/shared/utils/llm.js.map +1 -1
  545. package/dist/shared/utils/merge.d.ts +4 -1
  546. package/dist/shared/utils/merge.d.ts.map +1 -1
  547. package/dist/shared/utils/merge.js +11 -8
  548. package/dist/shared/utils/merge.js.map +1 -1
  549. package/dist/shared/utils/object-hash.d.ts +4 -1
  550. package/dist/shared/utils/object-hash.d.ts.map +1 -1
  551. package/dist/shared/utils/object-hash.js +8 -13
  552. package/dist/shared/utils/object-hash.js.map +1 -1
  553. package/dist/shared/utils/schema.d.ts +13 -15
  554. package/dist/shared/utils/schema.d.ts.map +1 -1
  555. package/dist/shared/utils/schema.js +91 -16
  556. package/dist/shared/utils/schema.js.map +1 -1
  557. package/dist/shared/utils/string-enum.d.ts +13 -8
  558. package/dist/shared/utils/string-enum.d.ts.map +1 -1
  559. package/dist/shared/utils/string-enum.js +18 -8
  560. package/dist/shared/utils/string-enum.js.map +1 -1
  561. package/dist/shared/utils/try-catch.d.ts +4 -2
  562. package/dist/shared/utils/try-catch.d.ts.map +1 -1
  563. package/dist/shared/utils/try-catch.js +12 -13
  564. package/dist/shared/utils/try-catch.js.map +1 -1
  565. package/package.json +10 -20
  566. package/src/shared/ai/schemas.ts +6 -4
  567. package/src/shared/ai/types.ts +2 -2
  568. package/src/shared/attributes.ts +10 -6
  569. package/src/shared/bricks/manifests/card.manifest.ts +27 -173
  570. package/src/shared/bricks/manifests/hero.manifest.ts +44 -249
  571. package/src/shared/bricks/manifests/html.manifest.ts +6 -0
  572. package/src/shared/bricks/manifests/icon.manifest.ts +1 -89
  573. package/src/shared/bricks/manifests/image.manifest.ts +1 -9
  574. package/src/shared/bricks/manifests/images-gallery.manifest.ts +8 -0
  575. package/src/shared/bricks/manifests/map.manifest.ts +9 -65
  576. package/src/shared/bricks/manifests/sidebar.manifest.ts +0 -1
  577. package/src/shared/bricks/manifests/social-links.manifest.ts +0 -1
  578. package/src/shared/bricks/manifests/spacer.manifest.ts +0 -1
  579. package/src/shared/bricks/manifests/table.manifest.ts +6 -0
  580. package/src/shared/bricks/manifests/tabs.manifest.ts +12 -429
  581. package/src/shared/bricks/manifests/testimonials.manifest.ts +28 -226
  582. package/src/shared/bricks/manifests/text.manifest.ts +16 -44
  583. package/src/shared/bricks/props/background.ts +2 -1
  584. package/src/shared/bricks/props/color.ts +6 -2
  585. package/src/shared/bricks/props/common.ts +2 -8
  586. package/src/shared/bricks/props/dynamic.ts +4 -1
  587. package/src/shared/bricks/props/grow.ts +11 -0
  588. package/src/shared/bricks/props/image.ts +41 -2
  589. package/src/shared/bricks/props/string.ts +2 -0
  590. package/src/shared/bricks.ts +35 -24
  591. package/src/shared/datarecords/types.ts +41 -33
  592. package/src/shared/datasources/external/rss/fetcher.ts +0 -6
  593. package/src/shared/datasources.ts +13 -5
  594. package/src/shared/page.ts +1 -0
  595. package/src/shared/prompt.ts +1 -1
  596. package/src/shared/site.ts +3 -1
  597. package/src/shared/sitemap.ts +7 -0
  598. package/src/shared/utils/schema.ts +31 -52
  599. package/src/shared/utils/tests/schema.test.ts +239 -7
  600. package/dist/shared/ai/types.js.map +0 -1
  601. package/dist/shared/ajv.d.ts +0 -7
  602. package/dist/shared/ajv.d.ts.map +0 -1
  603. package/dist/shared/ajv.js +0 -6865
  604. package/dist/shared/ajv.js.map +0 -1
  605. package/dist/shared/analytics/types.js.map +0 -1
  606. package/dist/shared/bricks/manifests/_types.js.map +0 -1
  607. package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts +0 -2
  608. package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts.map +0 -1
  609. package/dist/shared/bricks/props/tests/background.test.d.ts +0 -2
  610. package/dist/shared/bricks/props/tests/background.test.d.ts.map +0 -1
  611. package/dist/shared/bricks/props/tests/border.test.d.ts +0 -2
  612. package/dist/shared/bricks/props/tests/border.test.d.ts.map +0 -1
  613. package/dist/shared/bricks/props/tests/effects.test.d.ts +0 -2
  614. package/dist/shared/bricks/props/tests/effects.test.d.ts.map +0 -1
  615. package/dist/shared/bricks/props/tests/helpers.test.d.ts +0 -2
  616. package/dist/shared/bricks/props/tests/helpers.test.d.ts.map +0 -1
  617. package/dist/shared/bricks/props/tests/image.test.d.ts +0 -2
  618. package/dist/shared/bricks/props/tests/image.test.d.ts.map +0 -1
  619. package/dist/shared/bricks/props/tests/string.test.d.ts +0 -2
  620. package/dist/shared/bricks/props/tests/string.test.d.ts.map +0 -1
  621. package/dist/shared/bricks/props/types.js.map +0 -1
  622. package/dist/shared/chunk-2BPYOTKA.js +0 -21
  623. package/dist/shared/chunk-2BPYOTKA.js.map +0 -1
  624. package/dist/shared/chunk-2O5HVPID.js +0 -41
  625. package/dist/shared/chunk-2O5HVPID.js.map +0 -1
  626. package/dist/shared/chunk-2U5U3CCJ.js +0 -90
  627. package/dist/shared/chunk-2U5U3CCJ.js.map +0 -1
  628. package/dist/shared/chunk-3ZDN5BWN.js +0 -18
  629. package/dist/shared/chunk-3ZDN5BWN.js.map +0 -1
  630. package/dist/shared/chunk-4KY7OZWD.js +0 -368
  631. package/dist/shared/chunk-4KY7OZWD.js.map +0 -1
  632. package/dist/shared/chunk-55C6MTX2.js +0 -21
  633. package/dist/shared/chunk-55C6MTX2.js.map +0 -1
  634. package/dist/shared/chunk-5RCC2STG.js +0 -58
  635. package/dist/shared/chunk-5RCC2STG.js.map +0 -1
  636. package/dist/shared/chunk-6AE7UD73.js +0 -272
  637. package/dist/shared/chunk-6AE7UD73.js.map +0 -1
  638. package/dist/shared/chunk-6TVVKUWM.js +0 -15
  639. package/dist/shared/chunk-6TVVKUWM.js.map +0 -1
  640. package/dist/shared/chunk-6WIMWLCJ.js +0 -17
  641. package/dist/shared/chunk-6WIMWLCJ.js.map +0 -1
  642. package/dist/shared/chunk-7LAWWRU7.js +0 -21
  643. package/dist/shared/chunk-7LAWWRU7.js.map +0 -1
  644. package/dist/shared/chunk-7U5WPHXB.js +0 -346
  645. package/dist/shared/chunk-7U5WPHXB.js.map +0 -1
  646. package/dist/shared/chunk-BHARJBEK.js +0 -27
  647. package/dist/shared/chunk-BHARJBEK.js.map +0 -1
  648. package/dist/shared/chunk-BZTWZC77.js +0 -530
  649. package/dist/shared/chunk-BZTWZC77.js.map +0 -1
  650. package/dist/shared/chunk-DCM4732T.js +0 -146
  651. package/dist/shared/chunk-DCM4732T.js.map +0 -1
  652. package/dist/shared/chunk-DRQKKPTX.js +0 -86
  653. package/dist/shared/chunk-DRQKKPTX.js.map +0 -1
  654. package/dist/shared/chunk-EID5HPF3.js +0 -63
  655. package/dist/shared/chunk-EID5HPF3.js.map +0 -1
  656. package/dist/shared/chunk-EMF5TCPX.js +0 -389
  657. package/dist/shared/chunk-EMF5TCPX.js.map +0 -1
  658. package/dist/shared/chunk-FD7YYFRI.js +0 -225
  659. package/dist/shared/chunk-FD7YYFRI.js.map +0 -1
  660. package/dist/shared/chunk-FHA4DFIM.js +0 -537
  661. package/dist/shared/chunk-FHA4DFIM.js.map +0 -1
  662. package/dist/shared/chunk-FUUSAMN3.js +0 -847
  663. package/dist/shared/chunk-FUUSAMN3.js.map +0 -1
  664. package/dist/shared/chunk-GDYCCB3B.js +0 -22
  665. package/dist/shared/chunk-GDYCCB3B.js.map +0 -1
  666. package/dist/shared/chunk-GLV6QIIM.js +0 -41
  667. package/dist/shared/chunk-GLV6QIIM.js.map +0 -1
  668. package/dist/shared/chunk-H6TMBELF.js +0 -374
  669. package/dist/shared/chunk-H6TMBELF.js.map +0 -1
  670. package/dist/shared/chunk-HPCCD6V5.js +0 -17
  671. package/dist/shared/chunk-HPCCD6V5.js.map +0 -1
  672. package/dist/shared/chunk-HUWMIXNN.js +0 -570
  673. package/dist/shared/chunk-HUWMIXNN.js.map +0 -1
  674. package/dist/shared/chunk-HY7JOP3J.js +0 -150
  675. package/dist/shared/chunk-HY7JOP3J.js.map +0 -1
  676. package/dist/shared/chunk-IEMCCHM4.js +0 -389
  677. package/dist/shared/chunk-IEMCCHM4.js.map +0 -1
  678. package/dist/shared/chunk-J45LSQT6.js +0 -56
  679. package/dist/shared/chunk-J45LSQT6.js.map +0 -1
  680. package/dist/shared/chunk-JF52BBFD.js +0 -461
  681. package/dist/shared/chunk-JF52BBFD.js.map +0 -1
  682. package/dist/shared/chunk-JLDAS3VE.js +0 -498
  683. package/dist/shared/chunk-JLDAS3VE.js.map +0 -1
  684. package/dist/shared/chunk-JSDKK5QN.js +0 -31
  685. package/dist/shared/chunk-JSDKK5QN.js.map +0 -1
  686. package/dist/shared/chunk-JW7MQAU4.js +0 -354
  687. package/dist/shared/chunk-JW7MQAU4.js.map +0 -1
  688. package/dist/shared/chunk-KKWT3OXF.js +0 -60
  689. package/dist/shared/chunk-KKWT3OXF.js.map +0 -1
  690. package/dist/shared/chunk-KNREHAPN.js +0 -13
  691. package/dist/shared/chunk-KNREHAPN.js.map +0 -1
  692. package/dist/shared/chunk-KQH6V22E.js +0 -213
  693. package/dist/shared/chunk-KQH6V22E.js.map +0 -1
  694. package/dist/shared/chunk-KT7SSWMM.js +0 -24
  695. package/dist/shared/chunk-KT7SSWMM.js.map +0 -1
  696. package/dist/shared/chunk-LGDDJJHK.js +0 -616
  697. package/dist/shared/chunk-LGDDJJHK.js.map +0 -1
  698. package/dist/shared/chunk-LGGPCCCY.js +0 -59
  699. package/dist/shared/chunk-LGGPCCCY.js.map +0 -1
  700. package/dist/shared/chunk-LPAQ47C6.js +0 -422
  701. package/dist/shared/chunk-LPAQ47C6.js.map +0 -1
  702. package/dist/shared/chunk-MO6CRLQA.js +0 -73
  703. package/dist/shared/chunk-MO6CRLQA.js.map +0 -1
  704. package/dist/shared/chunk-MYOLWTB2.js +0 -516
  705. package/dist/shared/chunk-MYOLWTB2.js.map +0 -1
  706. package/dist/shared/chunk-O24RDXZS.js +0 -505
  707. package/dist/shared/chunk-O24RDXZS.js.map +0 -1
  708. package/dist/shared/chunk-O5PQISX4.js +0 -51
  709. package/dist/shared/chunk-O5PQISX4.js.map +0 -1
  710. package/dist/shared/chunk-OJ6KL7FU.js +0 -32
  711. package/dist/shared/chunk-OJ6KL7FU.js.map +0 -1
  712. package/dist/shared/chunk-OJP4HMJT.js +0 -22
  713. package/dist/shared/chunk-OJP4HMJT.js.map +0 -1
  714. package/dist/shared/chunk-OSJ6KGPX.js +0 -16
  715. package/dist/shared/chunk-OSJ6KGPX.js.map +0 -1
  716. package/dist/shared/chunk-OXYXZHP2.js +0 -48
  717. package/dist/shared/chunk-OXYXZHP2.js.map +0 -1
  718. package/dist/shared/chunk-PF75LW33.js +0 -834
  719. package/dist/shared/chunk-PF75LW33.js.map +0 -1
  720. package/dist/shared/chunk-QEJGPYTB.js +0 -462
  721. package/dist/shared/chunk-QEJGPYTB.js.map +0 -1
  722. package/dist/shared/chunk-QLQVDZIL.js +0 -11
  723. package/dist/shared/chunk-QLQVDZIL.js.map +0 -1
  724. package/dist/shared/chunk-SK2O7GFC.js +0 -229
  725. package/dist/shared/chunk-SK2O7GFC.js.map +0 -1
  726. package/dist/shared/chunk-SQXZNGQF.js +0 -55
  727. package/dist/shared/chunk-SQXZNGQF.js.map +0 -1
  728. package/dist/shared/chunk-SRYBJ6NQ.js +0 -83
  729. package/dist/shared/chunk-SRYBJ6NQ.js.map +0 -1
  730. package/dist/shared/chunk-T6C3NG2L.js +0 -422
  731. package/dist/shared/chunk-T6C3NG2L.js.map +0 -1
  732. package/dist/shared/chunk-TBT2PTGB.js +0 -440
  733. package/dist/shared/chunk-TBT2PTGB.js.map +0 -1
  734. package/dist/shared/chunk-TKMWY2VN.js +0 -18
  735. package/dist/shared/chunk-TKMWY2VN.js.map +0 -1
  736. package/dist/shared/chunk-U4KZUX37.js +0 -104
  737. package/dist/shared/chunk-U4KZUX37.js.map +0 -1
  738. package/dist/shared/chunk-VSLRTXLF.js +0 -37
  739. package/dist/shared/chunk-VSLRTXLF.js.map +0 -1
  740. package/dist/shared/chunk-VTCHJT4O.js +0 -67
  741. package/dist/shared/chunk-VTCHJT4O.js.map +0 -1
  742. package/dist/shared/chunk-W2RFDII5.js +0 -129
  743. package/dist/shared/chunk-W2RFDII5.js.map +0 -1
  744. package/dist/shared/chunk-WPZV3LYL.js +0 -24
  745. package/dist/shared/chunk-WPZV3LYL.js.map +0 -1
  746. package/dist/shared/chunk-XCWMZVF5.js +0 -89
  747. package/dist/shared/chunk-XCWMZVF5.js.map +0 -1
  748. package/dist/shared/chunk-XCZVD5H6.js +0 -13
  749. package/dist/shared/chunk-XCZVD5H6.js.map +0 -1
  750. package/dist/shared/chunk-XFZQGRRL.js +0 -101
  751. package/dist/shared/chunk-XFZQGRRL.js.map +0 -1
  752. package/dist/shared/chunk-XK2CERPB.js +0 -364
  753. package/dist/shared/chunk-XK2CERPB.js.map +0 -1
  754. package/dist/shared/chunk-XNRSL6FL.js +0 -78
  755. package/dist/shared/chunk-XNRSL6FL.js.map +0 -1
  756. package/dist/shared/chunk-XXPSM6UA.js +0 -71
  757. package/dist/shared/chunk-XXPSM6UA.js.map +0 -1
  758. package/dist/shared/chunk-XZ6WJZHN.js +0 -10
  759. package/dist/shared/chunk-XZ6WJZHN.js.map +0 -1
  760. package/dist/shared/chunk-ZEFOWKYP.js +0 -44
  761. package/dist/shared/chunk-ZEFOWKYP.js.map +0 -1
  762. package/dist/shared/chunk-ZGQ3AQBG.js +0 -33
  763. package/dist/shared/chunk-ZGQ3AQBG.js.map +0 -1
  764. package/dist/shared/chunk-ZRBTAC3G.js +0 -53
  765. package/dist/shared/chunk-ZRBTAC3G.js.map +0 -1
  766. package/dist/shared/chunk-ZVJNRKT4.js +0 -129
  767. package/dist/shared/chunk-ZVJNRKT4.js.map +0 -1
  768. package/dist/shared/datasources/external/facebook/posts/sample.d.ts +0 -26
  769. package/dist/shared/datasources/external/facebook/posts/sample.d.ts.map +0 -1
  770. package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts +0 -2
  771. package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts.map +0 -1
  772. package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts +0 -2
  773. package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts.map +0 -1
  774. package/dist/shared/datasources/external/instagram/feed/sample.d.ts +0 -3
  775. package/dist/shared/datasources/external/instagram/feed/sample.d.ts.map +0 -1
  776. package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts +0 -2
  777. package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts.map +0 -1
  778. package/dist/shared/datasources/external/mastodon/account/sample.d.ts +0 -30
  779. package/dist/shared/datasources/external/mastodon/account/sample.d.ts.map +0 -1
  780. package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts +0 -2
  781. package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts.map +0 -1
  782. package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts +0 -2
  783. package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts.map +0 -1
  784. package/dist/shared/datasources/external/rss/sample.d.ts +0 -3
  785. package/dist/shared/datasources/external/rss/sample.d.ts.map +0 -1
  786. package/dist/shared/datasources/external/threads/media/sample.d.ts +0 -40
  787. package/dist/shared/datasources/external/threads/media/sample.d.ts.map +0 -1
  788. package/dist/shared/datasources/external/tiktok/video/sample.d.ts +0 -15
  789. package/dist/shared/datasources/external/tiktok/video/sample.d.ts.map +0 -1
  790. package/dist/shared/datasources/external/youtube/list/sample.d.ts +0 -29
  791. package/dist/shared/datasources/external/youtube/list/sample.d.ts.map +0 -1
  792. package/dist/shared/datasources/fetcher.js.map +0 -1
  793. package/dist/shared/env.js.map +0 -1
  794. package/dist/shared/errors.d.ts.map +0 -1
  795. package/dist/shared/errors.js.map +0 -1
  796. package/dist/shared/tests/attributes.test.d.ts +0 -2
  797. package/dist/shared/tests/attributes.test.d.ts.map +0 -1
  798. package/dist/shared/themes/tests/color-system.test.d.ts +0 -2
  799. package/dist/shared/themes/tests/color-system.test.d.ts.map +0 -1
  800. package/dist/shared/utils/tests/schema.test.d.ts +0 -2
  801. package/dist/shared/utils/tests/schema.test.d.ts.map +0 -1
  802. package/src/shared/ajv.ts +0 -123
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/datarecords/external/airtable/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport type { AirtableBases, AirtableFieldType, AirtableOptions } from \"./types\";\n\nconst sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n\nfunction getClient(token: string) {\n if (!token) {\n throw new Error(\"Missing Airtable API token\");\n }\n\n return {\n async callApi<R, P extends Record<string, unknown> = Record<string, unknown>>(\n path: string,\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" | \"PATCH\" = \"GET\",\n body: P | null = null,\n ) {\n const url = `https://api.airtable.com/${path}`;\n const maxRetries = 5;\n const retryDelay = 30000; // 30 seconds\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const res = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n // if 429 is rate limit exceeded\n if (res.status === 429 && attempt < maxRetries) {\n console.warn(\n `Airtable rate limit hit (429) on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n );\n await sleep(retryDelay);\n continue; // Retry\n }\n\n const data = await res.json();\n\n // for any other response (success or definitive error)\n return {\n status: res.status,\n success: res.ok,\n data: data as R,\n };\n } catch (error) {\n // In case of network error, we also retry except on the last attempt\n if (attempt < maxRetries) {\n console.warn(\n `Network error on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n error,\n );\n await sleep(retryDelay);\n continue;\n }\n // On the last attempt, we rethrow the error\n console.error(`Error on attempt ${attempt}/${maxRetries}:`, error);\n throw error;\n }\n }\n\n // If we reach here, it means we exhausted all attempts with 429\n throw new Error(`Airtable API rate limit exceeded after ${maxRetries} attempts`);\n },\n };\n}\n\n/**\n * Convert a FormData value based on Airtable field type\n */\nfunction convertValueForAirtableField(value: string, fieldType: AirtableFieldType): unknown {\n switch (fieldType) {\n case \"checkbox\":\n return value === \"true\" || value === \"1\" || value.toLowerCase() === \"on\";\n\n case \"number\": {\n const numValue = Number(value);\n return Number.isNaN(numValue) ? value : numValue;\n }\n\n case \"date\":\n case \"dateTime\":\n // Airtable expects ISO format strings\n return value;\n\n case \"email\":\n case \"url\":\n case \"singleLineText\":\n case \"multilineText\":\n return value;\n\n case \"singleSelect\":\n return value;\n\n case \"multipleSelects\": {\n // Handle comma-separated values or JSON array strings\n if (value.startsWith(\"[\") && value.endsWith(\"]\")) {\n try {\n return JSON.parse(value);\n } catch {\n return [value];\n }\n }\n if (value.includes(\",\")) {\n return value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n }\n return [value];\n }\n\n default:\n console.warn(`Unknown Airtable field type: ${fieldType}, treating as text`);\n return value;\n }\n}\n\n/**\n * Fallback conversion based on value patterns (when field type is unknown)\n */\nfunction convertValueByPattern(value: string): unknown {\n // Handle boolean-like values\n if (value === \"true\" || value === \"false\") {\n return value === \"true\";\n }\n\n // Handle number-like values\n if (/^\\d+\\.?\\d*$/.test(value)) {\n const numValue = Number(value);\n if (!Number.isNaN(numValue)) {\n return numValue;\n }\n }\n\n // Handle date formats\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(value)) {\n return value;\n }\n\n // Handle comma-separated values (potential multiple select)\n if (value.includes(\",\")) {\n const values = value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n if (values.length > 1) {\n return values;\n }\n }\n\n // Default to string\n return value;\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: AirtableOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<{ id: string } | null> {\n try {\n const client = getClient(accessToken);\n const records: Record<string, unknown> = {};\n\n for (const [key, value] of formData.entries()) {\n // Skip empty values\n if (value === null || value === undefined || value === \"\") continue;\n\n // Skip Files for now as they need special handling\n if (value instanceof File) {\n console.warn(`File upload not yet supported for field: ${key}`);\n continue;\n }\n\n // Find the field definition in options.fields\n const fieldDef = options.fields?.find((field) => field.name === key);\n\n if (fieldDef) {\n // Use field type information for precise conversion\n records[key] = convertValueForAirtableField(value, fieldDef.type as AirtableFieldType);\n } else {\n // Fallback to pattern-based conversion if field definition not found\n records[key] = convertValueByPattern(value);\n }\n }\n const response = await client.callApi<{\n records: Array<{ id: string; fields: Record<string, unknown> }>;\n }>(`v0/${options.baseId}/${options.tableId}`, \"POST\", {\n records: [\n {\n fields: records,\n },\n ],\n });\n\n if (!response.success) {\n throw new Error(\n `Failed to push data to Airtable: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return response.data.records[0] ? { id: response.data.records[0].id } : null;\n } catch (error) {\n console.error(\"Error pushing data to Airtable:\", error);\n }\n\n return null;\n}\n\n/**\n * Build Airtable table creation data from schema\n */\nfunction buildAirtableTableData(properties: TProperties) {\n // Sort fields by metadata.order (ascending), then fields without order\n const sortedEntries = Object.entries(properties).sort(([, fieldA], [, fieldB]) => {\n const orderA = fieldA.metadata?.order;\n const orderB = fieldB.metadata?.order;\n\n // If both have order, sort by order value\n if (orderA !== undefined && orderB !== undefined) {\n return orderA - orderB;\n }\n\n // Fields with order come first\n if (orderA !== undefined && orderB === undefined) {\n return -1;\n }\n\n if (orderA === undefined && orderB !== undefined) {\n return 1;\n }\n\n // Both without order, maintain original order\n return 0;\n });\n\n const fields = sortedEntries.map(([fieldName, field]) => {\n // Seulement 3 cas : string, number, boolean\n if (field.type === \"string\") {\n if (field.format === \"email\") {\n return {\n name: fieldName,\n type: \"email\",\n };\n }\n if (field.format === \"uri\") {\n return {\n name: fieldName,\n type: \"url\",\n };\n }\n if (field.format === \"date\") {\n return {\n name: fieldName,\n type: \"date\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n },\n };\n }\n if (field.format === \"date-time\") {\n return {\n name: fieldName,\n type: \"dateTime\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n timeFormat: {\n name: \"24hour\",\n },\n timeZone: \"client\",\n },\n };\n }\n if (field.metadata?.[\"ui:multiline\"]) {\n return {\n name: fieldName,\n type: \"multilineText\",\n };\n }\n if (field.enum) {\n if (field.metadata?.[\"ui:widget\"] === \"checkbox\") {\n return {\n name: fieldName,\n type: \"multipleSelects\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleSelect\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleLineText\",\n };\n }\n if (field.type === \"boolean\") {\n return {\n name: fieldName,\n type: \"checkbox\",\n options: {\n icon: \"check\",\n color: \"grayBright\",\n },\n };\n }\n if (field.type === \"number\") {\n return {\n name: fieldName,\n type: \"number\",\n options: {\n precision: 8,\n },\n };\n }\n });\n\n return fields;\n}\n\nexport async function createTable({\n name,\n schema,\n baseId,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n baseId: string;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const fields = buildAirtableTableData(schema.properties);\n const tableCreationData = {\n name,\n description: `Table created by Upstart for ${name}`,\n fields: fields,\n };\n // console.dir(data);\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables`, \"POST\", tableCreationData);\n\n if (!response.success) {\n console.error(\n \"Error while creating Airtable table with:\",\n JSON.stringify(tableCreationData, null, 2),\n \"from schema: \",\n JSON.stringify(schema, null, 2),\n );\n throw new Error(\n `Failed to create Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function updateTable({\n baseId,\n tableId,\n newName,\n newProperties,\n accessToken,\n}: {\n baseId: string;\n tableId: string;\n newName: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const client = getClient(accessToken);\n if (newProperties) {\n try {\n const fields = buildAirtableTableData(newProperties);\n for (const field of fields) {\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n type: string;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}/fields`, \"POST\", field);\n if (!response.success) {\n console.error(\"Error while adding field to Airtable table with:\", JSON.stringify(field, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while updating Airtable table\", error);\n }\n throw error;\n }\n }\n\n try {\n const tableUpdateData = {\n name: newName,\n description: `Table updated by Upstart for ${newName}`,\n };\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}`, \"PATCH\", tableUpdateData);\n\n if (!response.success) {\n console.error(\"Error while updating Airtable table with:\", JSON.stringify(tableUpdateData, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function fetchAirtableBases(accessToken: string): Promise<AirtableBases> {\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n bases: AirtableBases;\n }>(\"v0/meta/bases\");\n\n if (response.success) {\n return response.data.bases;\n } else {\n throw new Error(`Failed to fetch bases: ${response.status}`);\n }\n } catch (error) {\n console.error(\"Error fetching Airtable bases:\", error);\n return [];\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"handler.js","names":["records: Record<string, unknown>"],"sources":["../../../../../src/shared/datarecords/external/airtable/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport type { AirtableBases, AirtableFieldType, AirtableOptions } from \"./types\";\n\nconst sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms));\n\nfunction getClient(token: string) {\n if (!token) {\n throw new Error(\"Missing Airtable API token\");\n }\n\n return {\n async callApi<R, P extends Record<string, unknown> = Record<string, unknown>>(\n path: string,\n method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" | \"PATCH\" = \"GET\",\n body: P | null = null,\n ) {\n const url = `https://api.airtable.com/${path}`;\n const maxRetries = 5;\n const retryDelay = 30000; // 30 seconds\n\n for (let attempt = 1; attempt <= maxRetries; attempt++) {\n try {\n const res = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"application/json\",\n },\n body: body ? JSON.stringify(body) : undefined,\n });\n\n // if 429 is rate limit exceeded\n if (res.status === 429 && attempt < maxRetries) {\n console.warn(\n `Airtable rate limit hit (429) on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n );\n await sleep(retryDelay);\n continue; // Retry\n }\n\n const data = await res.json();\n\n // for any other response (success or definitive error)\n return {\n status: res.status,\n success: res.ok,\n data: data as R,\n };\n } catch (error) {\n // In case of network error, we also retry except on the last attempt\n if (attempt < maxRetries) {\n console.warn(\n `Network error on attempt ${attempt}/${maxRetries}. Waiting ${retryDelay / 1000}s before retry...`,\n error,\n );\n await sleep(retryDelay);\n continue;\n }\n // On the last attempt, we rethrow the error\n console.error(`Error on attempt ${attempt}/${maxRetries}:`, error);\n throw error;\n }\n }\n\n // If we reach here, it means we exhausted all attempts with 429\n throw new Error(`Airtable API rate limit exceeded after ${maxRetries} attempts`);\n },\n };\n}\n\n/**\n * Convert a FormData value based on Airtable field type\n */\nfunction convertValueForAirtableField(value: string, fieldType: AirtableFieldType): unknown {\n switch (fieldType) {\n case \"checkbox\":\n return value === \"true\" || value === \"1\" || value.toLowerCase() === \"on\";\n\n case \"number\": {\n const numValue = Number(value);\n return Number.isNaN(numValue) ? value : numValue;\n }\n\n case \"date\":\n case \"dateTime\":\n // Airtable expects ISO format strings\n return value;\n\n case \"email\":\n case \"url\":\n case \"singleLineText\":\n case \"multilineText\":\n return value;\n\n case \"singleSelect\":\n return value;\n\n case \"multipleSelects\": {\n // Handle comma-separated values or JSON array strings\n if (value.startsWith(\"[\") && value.endsWith(\"]\")) {\n try {\n return JSON.parse(value);\n } catch {\n return [value];\n }\n }\n if (value.includes(\",\")) {\n return value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n }\n return [value];\n }\n\n default:\n console.warn(`Unknown Airtable field type: ${fieldType}, treating as text`);\n return value;\n }\n}\n\n/**\n * Fallback conversion based on value patterns (when field type is unknown)\n */\nfunction convertValueByPattern(value: string): unknown {\n // Handle boolean-like values\n if (value === \"true\" || value === \"false\") {\n return value === \"true\";\n }\n\n // Handle number-like values\n if (/^\\d+\\.?\\d*$/.test(value)) {\n const numValue = Number(value);\n if (!Number.isNaN(numValue)) {\n return numValue;\n }\n }\n\n // Handle date formats\n if (/^\\d{4}-\\d{2}-\\d{2}$/.test(value) || /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/.test(value)) {\n return value;\n }\n\n // Handle comma-separated values (potential multiple select)\n if (value.includes(\",\")) {\n const values = value\n .split(\",\")\n .map((v) => v.trim())\n .filter((v) => v.length > 0);\n if (values.length > 1) {\n return values;\n }\n }\n\n // Default to string\n return value;\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: AirtableOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<{ id: string } | null> {\n try {\n const client = getClient(accessToken);\n const records: Record<string, unknown> = {};\n\n for (const [key, value] of formData.entries()) {\n // Skip empty values\n if (value === null || value === undefined || value === \"\") continue;\n\n // Skip Files for now as they need special handling\n if (value instanceof File) {\n console.warn(`File upload not yet supported for field: ${key}`);\n continue;\n }\n\n // Find the field definition in options.fields\n const fieldDef = options.fields?.find((field) => field.name === key);\n\n if (fieldDef) {\n // Use field type information for precise conversion\n records[key] = convertValueForAirtableField(value, fieldDef.type as AirtableFieldType);\n } else {\n // Fallback to pattern-based conversion if field definition not found\n records[key] = convertValueByPattern(value);\n }\n }\n const response = await client.callApi<{\n records: Array<{ id: string; fields: Record<string, unknown> }>;\n }>(`v0/${options.baseId}/${options.tableId}`, \"POST\", {\n records: [\n {\n fields: records,\n },\n ],\n });\n\n if (!response.success) {\n throw new Error(\n `Failed to push data to Airtable: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return response.data.records[0] ? { id: response.data.records[0].id } : null;\n } catch (error) {\n console.error(\"Error pushing data to Airtable:\", error);\n }\n\n return null;\n}\n\n/**\n * Build Airtable table creation data from schema\n */\nfunction buildAirtableTableData(properties: TProperties) {\n // Sort fields by metadata.order (ascending), then fields without order\n const sortedEntries = Object.entries(properties).sort(([, fieldA], [, fieldB]) => {\n const orderA = fieldA.metadata?.order;\n const orderB = fieldB.metadata?.order;\n\n // If both have order, sort by order value\n if (orderA !== undefined && orderB !== undefined) {\n return orderA - orderB;\n }\n\n // Fields with order come first\n if (orderA !== undefined && orderB === undefined) {\n return -1;\n }\n\n if (orderA === undefined && orderB !== undefined) {\n return 1;\n }\n\n // Both without order, maintain original order\n return 0;\n });\n\n const fields = sortedEntries.map(([fieldName, field]) => {\n // Seulement 3 cas : string, number, boolean\n if (field.type === \"string\") {\n if (field.format === \"email\") {\n return {\n name: fieldName,\n type: \"email\",\n };\n }\n if (field.format === \"uri\") {\n return {\n name: fieldName,\n type: \"url\",\n };\n }\n if (field.format === \"date\") {\n return {\n name: fieldName,\n type: \"date\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n },\n };\n }\n if (field.format === \"date-time\") {\n return {\n name: fieldName,\n type: \"dateTime\",\n options: {\n dateFormat: {\n name: \"local\",\n },\n timeFormat: {\n name: \"24hour\",\n },\n timeZone: \"client\",\n },\n };\n }\n if (field.metadata?.[\"ui:multiline\"]) {\n return {\n name: fieldName,\n type: \"multilineText\",\n };\n }\n if (field.enum) {\n if (field.metadata?.[\"ui:widget\"] === \"checkbox\") {\n return {\n name: fieldName,\n type: \"multipleSelects\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleSelect\",\n options: {\n choices: (field.enum as Array<string>).map((value) => ({\n name: value,\n })),\n },\n };\n }\n return {\n name: fieldName,\n type: \"singleLineText\",\n };\n }\n if (field.type === \"boolean\") {\n return {\n name: fieldName,\n type: \"checkbox\",\n options: {\n icon: \"check\",\n color: \"grayBright\",\n },\n };\n }\n if (field.type === \"number\") {\n return {\n name: fieldName,\n type: \"number\",\n options: {\n precision: 8,\n },\n };\n }\n });\n\n return fields;\n}\n\nexport async function createTable({\n name,\n schema,\n baseId,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n baseId: string;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const fields = buildAirtableTableData(schema.properties);\n const tableCreationData = {\n name,\n description: `Table created by Upstart for ${name}`,\n fields: fields,\n };\n // console.dir(data);\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables`, \"POST\", tableCreationData);\n\n if (!response.success) {\n console.error(\n \"Error while creating Airtable table with:\",\n JSON.stringify(tableCreationData, null, 2),\n \"from schema: \",\n JSON.stringify(schema, null, 2),\n );\n throw new Error(\n `Failed to create Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function updateTable({\n baseId,\n tableId,\n newName,\n newProperties,\n accessToken,\n}: {\n baseId: string;\n tableId: string;\n newName: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<AirtableOptions | null> {\n const client = getClient(accessToken);\n if (newProperties) {\n try {\n const fields = buildAirtableTableData(newProperties);\n for (const field of fields) {\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n type: string;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}/fields`, \"POST\", field);\n if (!response.success) {\n console.error(\"Error while adding field to Airtable table with:\", JSON.stringify(field, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while updating Airtable table\", error);\n }\n throw error;\n }\n }\n\n try {\n const tableUpdateData = {\n name: newName,\n description: `Table updated by Upstart for ${newName}`,\n };\n const response = await client.callApi<{\n id: string;\n name: string;\n description: string;\n primaryFieldId: string;\n fields: Array<{\n id: string;\n name: string;\n type: string;\n }>;\n }>(`v0/meta/bases/${baseId}/tables/${tableId}`, \"PATCH\", tableUpdateData);\n\n if (!response.success) {\n console.error(\"Error while updating Airtable table with:\", JSON.stringify(tableUpdateData, null, 2));\n throw new Error(\n `Failed to update Airtable table: ${response.status} - ${JSON.stringify(response.data)}`,\n );\n }\n\n return {\n tableId: response.data.id,\n fields: response.data.fields,\n tableName: response.data.name,\n externalUrl: `https://airtable.com/${baseId}/${response.data.id}`,\n } as AirtableOptions;\n } catch (error) {\n if (error instanceof Error) {\n console.error(error.message);\n } else {\n console.error(\"Unknown error occurred while creating Airtable table\", error);\n }\n throw error;\n }\n}\n\nexport async function fetchAirtableBases(accessToken: string): Promise<AirtableBases> {\n try {\n const client = getClient(accessToken);\n const response = await client.callApi<{\n bases: AirtableBases;\n }>(\"v0/meta/bases\");\n\n if (response.success) {\n return response.data.bases;\n } else {\n throw new Error(`Failed to fetch bases: ${response.status}`);\n }\n } catch (error) {\n console.error(\"Error fetching Airtable bases:\", error);\n return [];\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,16 @@
1
- import { type Static } from "@sinclair/typebox";
2
- export declare const airtableOAuthTokenSchema: import("@sinclair/typebox").TObject<{
3
- scope: import("@sinclair/typebox").TString;
4
- token_type: import("@sinclair/typebox").TString;
5
- expires_in: import("@sinclair/typebox").TNumber;
6
- access_token: import("@sinclair/typebox").TString;
7
- refresh_token: import("@sinclair/typebox").TString;
8
- refresh_expires_in: import("@sinclair/typebox").TNumber;
1
+ import * as _sinclair_typebox7631 from "@sinclair/typebox";
2
+ import { Static } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/airtable/oauth/config.d.ts
5
+ declare const airtableOAuthTokenSchema: _sinclair_typebox7631.TObject<{
6
+ scope: _sinclair_typebox7631.TString;
7
+ token_type: _sinclair_typebox7631.TString;
8
+ expires_in: _sinclair_typebox7631.TNumber;
9
+ access_token: _sinclair_typebox7631.TString;
10
+ refresh_token: _sinclair_typebox7631.TString;
11
+ refresh_expires_in: _sinclair_typebox7631.TNumber;
9
12
  }>;
10
- export type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;
13
+ type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;
14
+ //#endregion
15
+ export { AirtableOAuthToken, airtableOAuthTokenSchema };
11
16
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,wBAAwB;;;;;;;EAOnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":[],"mappings":";;;;cAEa,gDAAwB;SAOnC,qBAAA,CAAA;;EAPW,UAAA,+BAOX;EAAA,YAAA,+BAAA;eAAA,+BAAA;;;KACU,kBAAA,GAAqB,cAAc"}
@@ -1,18 +1,15 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import "../../../../chunk-ZGQ3AQBG.js";
4
-
5
- // src/shared/datarecords/external/airtable/oauth/config.ts
6
1
  import { Type } from "@sinclair/typebox";
7
- var airtableOAuthTokenSchema = Type.Object({
8
- scope: Type.String(),
9
- token_type: Type.String(),
10
- expires_in: Type.Number(),
11
- access_token: Type.String(),
12
- refresh_token: Type.String(),
13
- refresh_expires_in: Type.Number()
2
+
3
+ //#region src/shared/datarecords/external/airtable/oauth/config.ts
4
+ const airtableOAuthTokenSchema = Type.Object({
5
+ scope: Type.String(),
6
+ token_type: Type.String(),
7
+ expires_in: Type.Number(),
8
+ access_token: Type.String(),
9
+ refresh_token: Type.String(),
10
+ refresh_expires_in: Type.Number()
14
11
  });
15
- export {
16
- airtableOAuthTokenSchema
17
- };
12
+
13
+ //#endregion
14
+ export { airtableOAuthTokenSchema };
18
15
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const airtableOAuthTokenSchema = Type.Object({\n scope: Type.String(),\n token_type: Type.String(),\n expires_in: Type.Number(),\n access_token: Type.String(),\n refresh_token: Type.String(),\n refresh_expires_in: Type.Number(),\n});\nexport type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;\n"],"mappings":";;;;;AAAA,SAAS,YAAyB;AAE3B,IAAM,2BAA2B,KAAK,OAAO;AAAA,EAClD,OAAO,KAAK,OAAO;AAAA,EACnB,YAAY,KAAK,OAAO;AAAA,EACxB,YAAY,KAAK,OAAO;AAAA,EACxB,cAAc,KAAK,OAAO;AAAA,EAC1B,eAAe,KAAK,OAAO;AAAA,EAC3B,oBAAoB,KAAK,OAAO;AAClC,CAAC;","names":[]}
1
+ {"version":3,"file":"config.js","names":[],"sources":["../../../../../../src/shared/datarecords/external/airtable/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const airtableOAuthTokenSchema = Type.Object({\n scope: Type.String(),\n token_type: Type.String(),\n expires_in: Type.Number(),\n access_token: Type.String(),\n refresh_token: Type.String(),\n refresh_expires_in: Type.Number(),\n});\nexport type AirtableOAuthToken = Static<typeof airtableOAuthTokenSchema>;\n"],"mappings":";;;AAEA,MAAa,2BAA2B,KAAK,OAAO;CAClD,OAAO,KAAK,QAAQ;CACpB,YAAY,KAAK,QAAQ;CACzB,YAAY,KAAK,QAAQ;CACzB,cAAc,KAAK,QAAQ;CAC3B,eAAe,KAAK,QAAQ;CAC5B,oBAAoB,KAAK,QAAQ;CAClC,CAAC"}
@@ -1,40 +1,44 @@
1
- import { type Static } from "@sinclair/typebox";
2
- export declare const airtableFields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
3
- id: import("@sinclair/typebox").TString;
4
- name: import("@sinclair/typebox").TString;
5
- type: import("@sinclair/typebox").TString;
1
+ import * as _sinclair_typebox6129 from "@sinclair/typebox";
2
+ import { Static } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/airtable/types.d.ts
5
+ declare const airtableFields: _sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
6
+ id: _sinclair_typebox6129.TString;
7
+ name: _sinclair_typebox6129.TString;
8
+ type: _sinclair_typebox6129.TString;
6
9
  }>>;
7
- export type AirtableFields = Static<typeof airtableFields>;
8
- declare const createAirtableTableResponseSchema: import("@sinclair/typebox").TObject<{
9
- id: import("@sinclair/typebox").TString;
10
- name: import("@sinclair/typebox").TString;
11
- description: import("@sinclair/typebox").TString;
12
- primaryFieldId: import("@sinclair/typebox").TString;
13
- fields: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
14
- id: import("@sinclair/typebox").TString;
15
- name: import("@sinclair/typebox").TString;
16
- type: import("@sinclair/typebox").TString;
17
- }>>;
10
+ type AirtableFields = Static<typeof airtableFields>;
11
+ declare const createAirtableTableResponseSchema: _sinclair_typebox6129.TObject<{
12
+ id: _sinclair_typebox6129.TString;
13
+ name: _sinclair_typebox6129.TString;
14
+ description: _sinclair_typebox6129.TString;
15
+ primaryFieldId: _sinclair_typebox6129.TString;
16
+ fields: _sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
17
+ id: _sinclair_typebox6129.TString;
18
+ name: _sinclair_typebox6129.TString;
19
+ type: _sinclair_typebox6129.TString;
20
+ }>>;
18
21
  }>;
19
- export type CreateAirtableTableResponse = Static<typeof createAirtableTableResponseSchema>;
20
- export declare const airtableOptions: import("@sinclair/typebox").TObject<{
21
- externalUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
22
- baseId: import("@sinclair/typebox").TString;
23
- baseName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
24
- tableId: import("@sinclair/typebox").TString;
25
- tableName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
- fields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
27
- id: import("@sinclair/typebox").TString;
28
- name: import("@sinclair/typebox").TString;
29
- type: import("@sinclair/typebox").TString;
30
- }>>>;
22
+ type CreateAirtableTableResponse = Static<typeof createAirtableTableResponseSchema>;
23
+ declare const airtableOptions: _sinclair_typebox6129.TObject<{
24
+ externalUrl: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
25
+ baseId: _sinclair_typebox6129.TString;
26
+ baseName: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
27
+ tableId: _sinclair_typebox6129.TString;
28
+ tableName: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TString>;
29
+ fields: _sinclair_typebox6129.TOptional<_sinclair_typebox6129.TArray<_sinclair_typebox6129.TObject<{
30
+ id: _sinclair_typebox6129.TString;
31
+ name: _sinclair_typebox6129.TString;
32
+ type: _sinclair_typebox6129.TString;
33
+ }>>>;
31
34
  }>;
32
- export type AirtableOptions = Static<typeof airtableOptions>;
33
- export type AirtableBases = {
34
- id: string;
35
- name: string;
35
+ type AirtableOptions = Static<typeof airtableOptions>;
36
+ type AirtableBases = {
37
+ id: string;
38
+ name: string;
36
39
  }[];
37
- export declare const AirtableFieldTypes: import("@sinclair/typebox").TUnsafe<"number" | "checkbox" | "date" | "email" | "url" | "dateTime" | "singleLineText" | "multilineText" | "singleSelect" | "multipleSelects">;
38
- export type AirtableFieldType = Static<typeof AirtableFieldTypes>;
39
- export {};
40
+ declare const AirtableFieldTypes: _sinclair_typebox6129.TUnsafe<"number" | "date" | "email" | "url" | "checkbox" | "dateTime" | "singleLineText" | "multilineText" | "singleSelect" | "multipleSelects">;
41
+ type AirtableFieldType = Static<typeof AirtableFieldTypes>;
42
+ //#endregion
43
+ export { AirtableBases, AirtableFieldType, AirtableFieldTypes, AirtableFields, AirtableOptions, CreateAirtableTableResponse, airtableFields, airtableOptions };
40
44
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datarecords/external/airtable/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,cAAc;;;;GAM1B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,iCAAiC;;;;;;;;;;EAMrC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE3F,eAAO,MAAM,eAAe;;;;;;;;;;;EAqB1B,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,EAAE,CAAC;AAEJ,eAAO,MAAM,kBAAkB,8KAW7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/airtable/types.ts"],"sourcesContent":[],"mappings":";;;;cAGa,gBAAc,qBAAA,CAAA,6BAAA;MAM1B,qBAAA,CAAA;;EANY,IAAA,+BAMZ;CAAA,CAAA,CAAA;AAAA,KACW,cAAA,GAAiB,MAD5B,CAAA,OAC0C,cAD1C,CAAA;cAGK,yDAAiC;MAMrC,qBAAA,CAAA;qCAfyB;aAAA,+BAAA;EAAA,cAAA,+BAAA;EAOf,MAAA,8BAAc,8BAAA,CAAA;IAAA,EAAA,+BAAA;IAAiB,IAAA,+BAAA;IAAd,IAAA,+BAAA;EAAM,CAAA,CAAA,CAAA;AAAwB,CAAA,CAAA;AAQzD,KAEU,2BAAA,GAA8B,MAFxC,CAAA,OAEsD,iCAFtD,CAAA;AAAA,cAIW,eAJX,wBAI0B,OAJ1B,CAAA;+CAyBA,qBAAA,CAAA,OAAA;;;;;;;;uCA/BqC;EAAA,CAAA,CAAA,CAAA,CAAA;AAQvC,CAAA,CAAA;AAAuC,KAwB3B,eAAA,GAAkB,MAxBS,CAAA,OAwBK,eAxBL,CAAA;AAAiB,KA0B5C,aAAA,GA1B4C;MAAd,MAAA;EAAM,IAAA,EAAA,MAAA;AAEhD,CAAA,EAAA;AAqBE,cAQW,kBARX,EAmBA,qBAAA,CAX6B,OAR7B,CAAA,QAAA,GAAA,MAAA,GAAA,OAAA,GAAA,KAAA,GAAA,UAAA,GAAA,UAAA,GAAA,gBAAA,GAAA,eAAA,GAAA,cAAA,GAAA,iBAAA,CAAA;AAAA,KAoBU,iBAAA,GAAoB,MApB9B,CAAA,OAoB4C,kBApB5C,CAAA"}
@@ -1,15 +1,46 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
1
+ import { StringEnum } from "../../../utils/string-enum.js";
2
+ import { Type } from "@sinclair/typebox";
2
3
 
3
- import {
4
- AirtableFieldTypes,
5
- airtableFields,
6
- airtableOptions
7
- } from "../../../chunk-EID5HPF3.js";
8
- import "../../../chunk-GDYCCB3B.js";
9
- import "../../../chunk-ZGQ3AQBG.js";
10
- export {
11
- AirtableFieldTypes,
12
- airtableFields,
13
- airtableOptions
14
- };
4
+ //#region src/shared/datarecords/external/airtable/types.ts
5
+ const airtableFields = Type.Array(Type.Object({
6
+ id: Type.String(),
7
+ name: Type.String(),
8
+ type: Type.String()
9
+ }));
10
+ Type.Object({
11
+ id: Type.String(),
12
+ name: Type.String(),
13
+ description: Type.String(),
14
+ primaryFieldId: Type.String(),
15
+ fields: airtableFields
16
+ });
17
+ const airtableOptions = Type.Object({
18
+ externalUrl: Type.Optional(Type.String()),
19
+ baseId: Type.String({
20
+ pattern: "^app[A-Za-z0-9]+$",
21
+ description: "Airtable Base ID starting with \"app\""
22
+ }),
23
+ baseName: Type.Optional(Type.String({ description: "Airtable Base Name" })),
24
+ tableId: Type.String({
25
+ pattern: "^tbl[A-Za-z0-9]+$",
26
+ description: "Airtable Table ID starting with \"tbl\""
27
+ }),
28
+ tableName: Type.Optional(Type.String({ description: "Table name as shown in Airtable interface" })),
29
+ fields: Type.Optional(airtableFields)
30
+ });
31
+ const AirtableFieldTypes = StringEnum([
32
+ "number",
33
+ "checkbox",
34
+ "date",
35
+ "dateTime",
36
+ "email",
37
+ "url",
38
+ "singleLineText",
39
+ "multilineText",
40
+ "singleSelect",
41
+ "multipleSelects"
42
+ ]);
43
+
44
+ //#endregion
45
+ export { AirtableFieldTypes, airtableFields, airtableOptions };
15
46
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../../src/shared/datarecords/external/airtable/types.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\nimport { StringEnum } from \"~/shared/utils/string-enum\";\n\nexport const airtableFields = Type.Array(\n Type.Object({\n id: Type.String(),\n name: Type.String(),\n type: Type.String(),\n }),\n);\nexport type AirtableFields = Static<typeof airtableFields>;\n\nconst createAirtableTableResponseSchema = Type.Object({\n id: Type.String(),\n name: Type.String(),\n description: Type.String(),\n primaryFieldId: Type.String(),\n fields: airtableFields,\n});\n\nexport type CreateAirtableTableResponse = Static<typeof createAirtableTableResponseSchema>;\n\nexport const airtableOptions = Type.Object({\n externalUrl: Type.Optional(Type.String()),\n baseId: Type.String({\n pattern: \"^app[A-Za-z0-9]+$\",\n description: 'Airtable Base ID starting with \"app\"',\n }),\n baseName: Type.Optional(\n Type.String({\n description: \"Airtable Base Name\",\n }),\n ),\n tableId: Type.String({\n pattern: \"^tbl[A-Za-z0-9]+$\",\n description: 'Airtable Table ID starting with \"tbl\"',\n }),\n tableName: Type.Optional(\n Type.String({\n description: \"Table name as shown in Airtable interface\",\n }),\n ),\n fields: Type.Optional(airtableFields),\n});\nexport type AirtableOptions = Static<typeof airtableOptions>;\n\nexport type AirtableBases = {\n id: string;\n name: string;\n}[];\n\nexport const AirtableFieldTypes = StringEnum([\n \"number\",\n \"checkbox\",\n \"date\",\n \"dateTime\",\n \"email\",\n \"url\",\n \"singleLineText\",\n \"multilineText\",\n \"singleSelect\",\n \"multipleSelects\",\n]);\nexport type AirtableFieldType = Static<typeof AirtableFieldTypes>;\n"],"mappings":";;;;AAGA,MAAa,iBAAiB,KAAK,MACjC,KAAK,OAAO;CACV,IAAI,KAAK,QAAQ;CACjB,MAAM,KAAK,QAAQ;CACnB,MAAM,KAAK,QAAQ;CACpB,CAAC,CACH;AAGyC,KAAK,OAAO;CACpD,IAAI,KAAK,QAAQ;CACjB,MAAM,KAAK,QAAQ;CACnB,aAAa,KAAK,QAAQ;CAC1B,gBAAgB,KAAK,QAAQ;CAC7B,QAAQ;CACT,CAAC;AAIF,MAAa,kBAAkB,KAAK,OAAO;CACzC,aAAa,KAAK,SAAS,KAAK,QAAQ,CAAC;CACzC,QAAQ,KAAK,OAAO;EAClB,SAAS;EACT,aAAa;EACd,CAAC;CACF,UAAU,KAAK,SACb,KAAK,OAAO,EACV,aAAa,sBACd,CAAC,CACH;CACD,SAAS,KAAK,OAAO;EACnB,SAAS;EACT,aAAa;EACd,CAAC;CACF,WAAW,KAAK,SACd,KAAK,OAAO,EACV,aAAa,6CACd,CAAC,CACH;CACD,QAAQ,KAAK,SAAS,eAAe;CACtC,CAAC;AAQF,MAAa,qBAAqB,WAAW;CAC3C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC"}
@@ -1,3 +1,7 @@
1
- import type { GenericWebhookOptions } from "./options";
2
- export default function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions): Promise<boolean>;
1
+ import { GenericWebhookOptions } from "./options.js";
2
+
3
+ //#region src/shared/datarecords/external/generic-webhook/handler.d.ts
4
+ declare function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions): Promise<boolean>;
5
+ //#endregion
6
+ export { genericWebhookHandler as default };
3
7
  //# sourceMappingURL=handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEvD,wBAA8B,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,oBAOrG"}
1
+ {"version":3,"file":"handler.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":[],"mappings":";;;iBAE8B,qBAAA,WAAgC,mBAAmB,wBAAqB"}
@@ -1,17 +1,12 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import "../../../chunk-ZGQ3AQBG.js";
4
-
5
- // src/shared/datarecords/external/generic-webhook/handler.ts
1
+ //#region src/shared/datarecords/external/generic-webhook/handler.ts
6
2
  async function genericWebhookHandler(formData, options) {
7
- const result = await fetch(options.url, {
8
- method: "POST",
9
- body: JSON.stringify(formData),
10
- headers: options.headers
11
- });
12
- return result.ok;
3
+ return (await fetch(options.url, {
4
+ method: "POST",
5
+ body: JSON.stringify(formData),
6
+ headers: options.headers
7
+ })).ok;
13
8
  }
14
- export {
15
- genericWebhookHandler as default
16
- };
9
+
10
+ //#endregion
11
+ export { genericWebhookHandler as default };
17
12
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":["import type { GenericWebhookOptions } from \"./options\";\n\nexport default async function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions) {\n const result = await fetch(options.url, {\n method: \"POST\",\n body: JSON.stringify(formData),\n headers: options.headers,\n });\n return result.ok;\n}\n"],"mappings":";;;;;AAEA,eAAO,sBAA6C,UAAoB,SAAgC;AACtG,QAAM,SAAS,MAAM,MAAM,QAAQ,KAAK;AAAA,IACtC,QAAQ;AAAA,IACR,MAAM,KAAK,UAAU,QAAQ;AAAA,IAC7B,SAAS,QAAQ;AAAA,EACnB,CAAC;AACD,SAAO,OAAO;AAChB;","names":[]}
1
+ {"version":3,"file":"handler.js","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/handler.ts"],"sourcesContent":["import type { GenericWebhookOptions } from \"./options\";\n\nexport default async function genericWebhookHandler(formData: FormData, options: GenericWebhookOptions) {\n const result = await fetch(options.url, {\n method: \"POST\",\n body: JSON.stringify(formData),\n headers: options.headers,\n });\n return result.ok;\n}\n"],"mappings":";AAEA,eAA8B,sBAAsB,UAAoB,SAAgC;AAMtG,SALe,MAAM,MAAM,QAAQ,KAAK;EACtC,QAAQ;EACR,MAAM,KAAK,UAAU,SAAS;EAC9B,SAAS,QAAQ;EAClB,CAAC,EACY"}
@@ -1,7 +1,12 @@
1
- import { type Static } from "@sinclair/typebox";
2
- export declare const genericWebhookOptions: import("@sinclair/typebox").TObject<{
3
- url: import("@sinclair/typebox").TString;
4
- headers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>>;
1
+ import * as _sinclair_typebox6160 from "@sinclair/typebox";
2
+ import { Static } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/generic-webhook/options.d.ts
5
+ declare const genericWebhookOptions: _sinclair_typebox6160.TObject<{
6
+ url: _sinclair_typebox6160.TString;
7
+ headers: _sinclair_typebox6160.TOptional<_sinclair_typebox6160.TRecord<_sinclair_typebox6160.TString, _sinclair_typebox6160.TString>>;
5
8
  }>;
6
- export type GenericWebhookOptions = Static<typeof genericWebhookOptions>;
9
+ type GenericWebhookOptions = Static<typeof genericWebhookOptions>;
10
+ //#endregion
11
+ export { GenericWebhookOptions, genericWebhookOptions };
7
12
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,qBAAqB;;;EAQhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"options.d.ts","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":[],"mappings":";;;;cAEa,6CAAqB;OAQhC,qBAAA,CAAA;;AARF,CAAA,CAAA;AAQE,KAEU,qBAAA,GAAwB,MAFlC,CAAA,OAEgD,qBAFhD,CAAA"}
@@ -1,19 +1,17 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import "../../../chunk-ZGQ3AQBG.js";
4
-
5
- // src/shared/datarecords/external/generic-webhook/options.ts
6
1
  import { Type } from "@sinclair/typebox";
7
- var genericWebhookOptions = Type.Object({
8
- url: Type.String({ format: "uri", title: "Webhook URL" }),
9
- headers: Type.Optional(
10
- Type.Record(Type.String(), Type.String(), {
11
- title: "Headers",
12
- description: "Additional headers to include in the webhook request"
13
- })
14
- )
2
+
3
+ //#region src/shared/datarecords/external/generic-webhook/options.ts
4
+ const genericWebhookOptions = Type.Object({
5
+ url: Type.String({
6
+ format: "uri",
7
+ title: "Webhook URL"
8
+ }),
9
+ headers: Type.Optional(Type.Record(Type.String(), Type.String(), {
10
+ title: "Headers",
11
+ description: "Additional headers to include in the webhook request"
12
+ }))
15
13
  });
16
- export {
17
- genericWebhookOptions
18
- };
14
+
15
+ //#endregion
16
+ export { genericWebhookOptions };
19
17
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const genericWebhookOptions = Type.Object({\n url: Type.String({ format: \"uri\", title: \"Webhook URL\" }),\n headers: Type.Optional(\n Type.Record(Type.String(), Type.String(), {\n title: \"Headers\",\n description: \"Additional headers to include in the webhook request\",\n }),\n ),\n});\n\nexport type GenericWebhookOptions = Static<typeof genericWebhookOptions>;\n"],"mappings":";;;;;AAAA,SAAS,YAAyB;AAE3B,IAAM,wBAAwB,KAAK,OAAO;AAAA,EAC/C,KAAK,KAAK,OAAO,EAAE,QAAQ,OAAO,OAAO,cAAc,CAAC;AAAA,EACxD,SAAS,KAAK;AAAA,IACZ,KAAK,OAAO,KAAK,OAAO,GAAG,KAAK,OAAO,GAAG;AAAA,MACxC,OAAO;AAAA,MACP,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACF,CAAC;","names":[]}
1
+ {"version":3,"file":"options.js","names":[],"sources":["../../../../../src/shared/datarecords/external/generic-webhook/options.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nexport const genericWebhookOptions = Type.Object({\n url: Type.String({ format: \"uri\", title: \"Webhook URL\" }),\n headers: Type.Optional(\n Type.Record(Type.String(), Type.String(), {\n title: \"Headers\",\n description: \"Additional headers to include in the webhook request\",\n }),\n ),\n});\n\nexport type GenericWebhookOptions = Static<typeof genericWebhookOptions>;\n"],"mappings":";;;AAEA,MAAa,wBAAwB,KAAK,OAAO;CAC/C,KAAK,KAAK,OAAO;EAAE,QAAQ;EAAO,OAAO;EAAe,CAAC;CACzD,SAAS,KAAK,SACZ,KAAK,OAAO,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE;EACxC,OAAO;EACP,aAAa;EACd,CAAC,CACH;CACF,CAAC"}
@@ -1,27 +1,31 @@
1
- import { type Static } from "@sinclair/typebox";
2
- declare const googleOAuthTokenSchema: import("@sinclair/typebox").TObject<{
3
- access_token: import("@sinclair/typebox").TString;
4
- token_type: import("@sinclair/typebox").TString;
5
- expires_in: import("@sinclair/typebox").TNumber;
6
- refresh_token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
- scope: import("@sinclair/typebox").TString;
8
- id_token: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1
+ import * as _sinclair_typebox7758 from "@sinclair/typebox";
2
+ import { Static } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/google/oauth/config.d.ts
5
+ declare const googleOAuthTokenSchema: _sinclair_typebox7758.TObject<{
6
+ access_token: _sinclair_typebox7758.TString;
7
+ token_type: _sinclair_typebox7758.TString;
8
+ expires_in: _sinclair_typebox7758.TNumber;
9
+ refresh_token: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
10
+ scope: _sinclair_typebox7758.TString;
11
+ id_token: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
9
12
  }>;
10
- export type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;
11
- declare const googleIdTokenSchema: import("@sinclair/typebox").TObject<{
12
- iss: import("@sinclair/typebox").TString;
13
- sub: import("@sinclair/typebox").TString;
14
- aud: import("@sinclair/typebox").TString;
15
- iat: import("@sinclair/typebox").TNumber;
16
- exp: import("@sinclair/typebox").TNumber;
17
- email: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
18
- email_verified: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
19
- name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
- picture: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
- given_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
22
- family_name: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
23
- locale: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
13
+ type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;
14
+ declare const googleIdTokenSchema: _sinclair_typebox7758.TObject<{
15
+ iss: _sinclair_typebox7758.TString;
16
+ sub: _sinclair_typebox7758.TString;
17
+ aud: _sinclair_typebox7758.TString;
18
+ iat: _sinclair_typebox7758.TNumber;
19
+ exp: _sinclair_typebox7758.TNumber;
20
+ email: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
21
+ email_verified: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TBoolean>;
22
+ name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
23
+ picture: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
24
+ given_name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
25
+ family_name: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
26
+ locale: _sinclair_typebox7758.TOptional<_sinclair_typebox7758.TString>;
24
27
  }>;
25
- export type GoogleIdToken = Static<typeof googleIdTokenSchema>;
26
- export {};
28
+ type GoogleIdToken = Static<typeof googleIdTokenSchema>;
29
+ //#endregion
30
+ export { GoogleIdToken, GoogleOAuthToken };
27
31
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,QAAA,MAAM,sBAAsB;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGrE,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;EAavB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"sourcesContent":[],"mappings":";;;;cAEM,8CAAsB;gBAO1B,qBAAA,CAAA;;EAPI,UAAA,+BAOJ;EAAA,aAAA,iCAAA,+BAAA;OAAA,+BAAA;;;KAEU,gBAAA,GAAmB,cAAc;cAGvC,2CAAmB;OAavB,qBAAA,CAAA;;;oCAzB0B;EAAA,GAAA,+BAAA;EAShB,KAAA,iCAAgB,+BAAA;EAAA,cAAA,iCAAA,gCAAA;MAAiB,iCAAA,+BAAA;SAAd,iCAAA,+BAAA;EAAM,UAAA,iCAAA,+BAAA;EAG/B,WAAA,iCAaJ,+BAAA;EAAA,MAAA,iCAAA,+BAAA;;KAEU,aAAA,GAAgB,cAAc"}
@@ -1,38 +1,29 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
-
4
- // src/shared/datarecords/external/google/oauth/config.ts
5
1
  import { Type } from "@sinclair/typebox";
6
- var googleOAuthTokenSchema = Type.Object({
7
- access_token: Type.String(),
8
- token_type: Type.String(),
9
- // Usually "Bearer"
10
- expires_in: Type.Number(),
11
- // Seconds until token expires, typically 3600 (1 hour)
12
- refresh_token: Type.Optional(Type.String()),
13
- // Only present in first OAuth exchange
14
- scope: Type.String(),
15
- // Space-separated list of granted scopes
16
- id_token: Type.Optional(Type.String())
17
- // JWT token containing user info, if requested
2
+
3
+ //#region src/shared/datarecords/external/google/oauth/config.ts
4
+ Type.Object({
5
+ access_token: Type.String(),
6
+ token_type: Type.String(),
7
+ expires_in: Type.Number(),
8
+ refresh_token: Type.Optional(Type.String()),
9
+ scope: Type.String(),
10
+ id_token: Type.Optional(Type.String())
18
11
  });
19
- var googleIdTokenSchema = Type.Object({
20
- iss: Type.String(),
21
- // Issuer (usually 'https://accounts.google.com')
22
- sub: Type.String(),
23
- // Unique Google ID for the user
24
- aud: Type.String(),
25
- // Your client ID
26
- iat: Type.Number(),
27
- // Issued at (timestamp)
28
- exp: Type.Number(),
29
- // Expiration time (timestamp)
30
- email: Type.Optional(Type.String()),
31
- email_verified: Type.Optional(Type.Boolean()),
32
- name: Type.Optional(Type.String()),
33
- picture: Type.Optional(Type.String()),
34
- given_name: Type.Optional(Type.String()),
35
- family_name: Type.Optional(Type.String()),
36
- locale: Type.Optional(Type.String())
12
+ Type.Object({
13
+ iss: Type.String(),
14
+ sub: Type.String(),
15
+ aud: Type.String(),
16
+ iat: Type.Number(),
17
+ exp: Type.Number(),
18
+ email: Type.Optional(Type.String()),
19
+ email_verified: Type.Optional(Type.Boolean()),
20
+ name: Type.Optional(Type.String()),
21
+ picture: Type.Optional(Type.String()),
22
+ given_name: Type.Optional(Type.String()),
23
+ family_name: Type.Optional(Type.String()),
24
+ locale: Type.Optional(Type.String())
37
25
  });
26
+
27
+ //#endregion
28
+ export { };
38
29
  //# sourceMappingURL=config.js.map