@upstart.gg/sdk 0.0.138 → 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 (786) 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 -483
  20. package/dist/shared/attributes.d.ts.map +1 -1
  21. package/dist/shared/attributes.js +369 -45
  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 -24
  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 -61
  37. package/dist/shared/bricks/manifests/all-manifests.js.map +1 -1
  38. package/dist/shared/bricks/manifests/all-props.d.ts +1510 -1505
  39. package/dist/shared/bricks/manifests/all-props.d.ts.map +1 -1
  40. package/dist/shared/bricks/manifests/all-props.js +167 -241
  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 -27
  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 -23
  49. package/dist/shared/bricks/manifests/button.manifest.js.map +1 -1
  50. package/dist/shared/bricks/manifests/card.manifest.d.ts +96 -89
  51. package/dist/shared/bricks/manifests/card.manifest.d.ts.map +1 -1
  52. package/dist/shared/bricks/manifests/card.manifest.js +392 -28
  53. package/dist/shared/bricks/manifests/card.manifest.js.map +1 -1
  54. package/dist/shared/bricks/manifests/carousel.manifest.d.ts +86 -79
  55. package/dist/shared/bricks/manifests/carousel.manifest.d.ts.map +1 -1
  56. package/dist/shared/bricks/manifests/carousel.manifest.js +775 -26
  57. package/dist/shared/bricks/manifests/carousel.manifest.js.map +1 -1
  58. package/dist/shared/bricks/manifests/footer.manifest.d.ts +117 -110
  59. package/dist/shared/bricks/manifests/footer.manifest.d.ts.map +1 -1
  60. package/dist/shared/bricks/manifests/footer.manifest.js +864 -25
  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 -25
  65. package/dist/shared/bricks/manifests/form.manifest.js.map +1 -1
  66. package/dist/shared/bricks/manifests/hero.manifest.d.ts +80 -73
  67. package/dist/shared/bricks/manifests/hero.manifest.d.ts.map +1 -1
  68. package/dist/shared/bricks/manifests/hero.manifest.js +202 -24
  69. package/dist/shared/bricks/manifests/hero.manifest.js.map +1 -1
  70. package/dist/shared/bricks/manifests/html.manifest.d.ts +68 -61
  71. package/dist/shared/bricks/manifests/html.manifest.d.ts.map +1 -1
  72. package/dist/shared/bricks/manifests/html.manifest.js +95 -18
  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 -24
  77. package/dist/shared/bricks/manifests/icon.manifest.js.map +1 -1
  78. package/dist/shared/bricks/manifests/image.manifest.d.ts +97 -90
  79. package/dist/shared/bricks/manifests/image.manifest.d.ts.map +1 -1
  80. package/dist/shared/bricks/manifests/image.manifest.js +456 -27
  81. package/dist/shared/bricks/manifests/image.manifest.js.map +1 -1
  82. package/dist/shared/bricks/manifests/images-gallery.manifest.d.ts +93 -86
  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 -25
  85. package/dist/shared/bricks/manifests/images-gallery.manifest.js.map +1 -1
  86. package/dist/shared/bricks/manifests/map.manifest.d.ts +78 -71
  87. package/dist/shared/bricks/manifests/map.manifest.d.ts.map +1 -1
  88. package/dist/shared/bricks/manifests/map.manifest.js +138 -23
  89. package/dist/shared/bricks/manifests/map.manifest.js.map +1 -1
  90. package/dist/shared/bricks/manifests/navbar.manifest.d.ts +117 -110
  91. package/dist/shared/bricks/manifests/navbar.manifest.d.ts.map +1 -1
  92. package/dist/shared/bricks/manifests/navbar.manifest.js +370 -28
  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 -24
  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 -24
  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 -18
  105. package/dist/shared/bricks/manifests/spacer.manifest.js.map +1 -1
  106. package/dist/shared/bricks/manifests/table.manifest.d.ts +93 -86
  107. package/dist/shared/bricks/manifests/table.manifest.d.ts.map +1 -1
  108. package/dist/shared/bricks/manifests/table.manifest.js +771 -25
  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 -25
  113. package/dist/shared/bricks/manifests/tabs.manifest.js.map +1 -1
  114. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts +97 -90
  115. package/dist/shared/bricks/manifests/testimonials.manifest.d.ts.map +1 -1
  116. package/dist/shared/bricks/manifests/testimonials.manifest.js +223 -28
  117. package/dist/shared/bricks/manifests/testimonials.manifest.js.map +1 -1
  118. package/dist/shared/bricks/manifests/text.manifest.d.ts +76 -69
  119. package/dist/shared/bricks/manifests/text.manifest.d.ts.map +1 -1
  120. package/dist/shared/bricks/manifests/text.manifest.js +199 -23
  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 -25
  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 -21
  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 -13
  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 +7 -2
  195. package/dist/shared/bricks/props/grow.d.ts.map +1 -1
  196. package/dist/shared/bricks/props/grow.js +14 -8
  197. package/dist/shared/bricks/props/grow.js.map +1 -1
  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 -19
  201. package/dist/shared/bricks/props/helpers.js.map +1 -1
  202. package/dist/shared/bricks/props/image.d.ts +15 -12
  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 -179
  230. package/dist/shared/bricks.d.ts.map +1 -1
  231. package/dist/shared/bricks.js +271 -78
  232. package/dist/shared/bricks.js.map +1 -1
  233. package/dist/shared/context.d.ts +405 -398
  234. package/dist/shared/context.d.ts.map +1 -1
  235. package/dist/shared/context.js +22 -93
  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 -243
  498. package/dist/shared/page.d.ts.map +1 -1
  499. package/dist/shared/page.js +29 -62
  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 -622
  510. package/dist/shared/site.d.ts.map +1 -1
  511. package/dist/shared/site.js +56 -70
  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 -63
  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 -10
  554. package/dist/shared/utils/schema.d.ts.map +1 -1
  555. package/dist/shared/utils/schema.js +91 -14
  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 +5 -3
  567. package/src/shared/attributes.ts +10 -6
  568. package/src/shared/bricks/manifests/card.manifest.ts +2 -5
  569. package/src/shared/bricks/manifests/image.manifest.ts +1 -5
  570. package/src/shared/bricks/props/color.ts +3 -2
  571. package/src/shared/bricks/props/dynamic.ts +4 -1
  572. package/src/shared/bricks/props/image.ts +2 -3
  573. package/src/shared/bricks.ts +3 -2
  574. package/src/shared/datarecords/types.ts +41 -33
  575. package/src/shared/datasources/external/rss/fetcher.ts +0 -6
  576. package/src/shared/datasources.ts +13 -5
  577. package/src/shared/prompt.ts +1 -1
  578. package/src/shared/site.ts +2 -1
  579. package/src/shared/sitemap.ts +7 -0
  580. package/src/shared/utils/schema.ts +12 -43
  581. package/src/shared/utils/tests/schema.test.ts +53 -28
  582. package/dist/shared/ai/types.js.map +0 -1
  583. package/dist/shared/ajv.d.ts +0 -7
  584. package/dist/shared/ajv.d.ts.map +0 -1
  585. package/dist/shared/ajv.js +0 -6866
  586. package/dist/shared/ajv.js.map +0 -1
  587. package/dist/shared/analytics/types.js.map +0 -1
  588. package/dist/shared/bricks/manifests/_types.js.map +0 -1
  589. package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts +0 -2
  590. package/dist/shared/bricks/manifests/tests/header.manifest.test.d.ts.map +0 -1
  591. package/dist/shared/bricks/props/tests/background.test.d.ts +0 -2
  592. package/dist/shared/bricks/props/tests/background.test.d.ts.map +0 -1
  593. package/dist/shared/bricks/props/tests/border.test.d.ts +0 -2
  594. package/dist/shared/bricks/props/tests/border.test.d.ts.map +0 -1
  595. package/dist/shared/bricks/props/tests/effects.test.d.ts +0 -2
  596. package/dist/shared/bricks/props/tests/effects.test.d.ts.map +0 -1
  597. package/dist/shared/bricks/props/tests/helpers.test.d.ts +0 -2
  598. package/dist/shared/bricks/props/tests/helpers.test.d.ts.map +0 -1
  599. package/dist/shared/bricks/props/tests/image.test.d.ts +0 -2
  600. package/dist/shared/bricks/props/tests/image.test.d.ts.map +0 -1
  601. package/dist/shared/bricks/props/tests/string.test.d.ts +0 -2
  602. package/dist/shared/bricks/props/tests/string.test.d.ts.map +0 -1
  603. package/dist/shared/bricks/props/types.js.map +0 -1
  604. package/dist/shared/chunk-2BPYOTKA.js +0 -21
  605. package/dist/shared/chunk-2BPYOTKA.js.map +0 -1
  606. package/dist/shared/chunk-2EOCK66Z.js +0 -19
  607. package/dist/shared/chunk-2EOCK66Z.js.map +0 -1
  608. package/dist/shared/chunk-2U5U3CCJ.js +0 -90
  609. package/dist/shared/chunk-2U5U3CCJ.js.map +0 -1
  610. package/dist/shared/chunk-2UEPTT5J.js +0 -67
  611. package/dist/shared/chunk-2UEPTT5J.js.map +0 -1
  612. package/dist/shared/chunk-2Z5WOCFS.js +0 -126
  613. package/dist/shared/chunk-2Z5WOCFS.js.map +0 -1
  614. package/dist/shared/chunk-34IUWNRX.js +0 -346
  615. package/dist/shared/chunk-34IUWNRX.js.map +0 -1
  616. package/dist/shared/chunk-3ZDN5BWN.js +0 -18
  617. package/dist/shared/chunk-3ZDN5BWN.js.map +0 -1
  618. package/dist/shared/chunk-55C6MTX2.js +0 -21
  619. package/dist/shared/chunk-55C6MTX2.js.map +0 -1
  620. package/dist/shared/chunk-57NRTXRA.js +0 -309
  621. package/dist/shared/chunk-57NRTXRA.js.map +0 -1
  622. package/dist/shared/chunk-5HJT5NJ3.js +0 -422
  623. package/dist/shared/chunk-5HJT5NJ3.js.map +0 -1
  624. package/dist/shared/chunk-5J4Y43RM.js +0 -388
  625. package/dist/shared/chunk-5J4Y43RM.js.map +0 -1
  626. package/dist/shared/chunk-5OVOXUFX.js +0 -61
  627. package/dist/shared/chunk-5OVOXUFX.js.map +0 -1
  628. package/dist/shared/chunk-5RCC2STG.js +0 -58
  629. package/dist/shared/chunk-5RCC2STG.js.map +0 -1
  630. package/dist/shared/chunk-5SNSUC6Q.js +0 -364
  631. package/dist/shared/chunk-5SNSUC6Q.js.map +0 -1
  632. package/dist/shared/chunk-6TVVKUWM.js +0 -15
  633. package/dist/shared/chunk-6TVVKUWM.js.map +0 -1
  634. package/dist/shared/chunk-6WIMWLCJ.js +0 -17
  635. package/dist/shared/chunk-6WIMWLCJ.js.map +0 -1
  636. package/dist/shared/chunk-7LAWWRU7.js +0 -21
  637. package/dist/shared/chunk-7LAWWRU7.js.map +0 -1
  638. package/dist/shared/chunk-B5T2LFV2.js +0 -494
  639. package/dist/shared/chunk-B5T2LFV2.js.map +0 -1
  640. package/dist/shared/chunk-BHARJBEK.js +0 -27
  641. package/dist/shared/chunk-BHARJBEK.js.map +0 -1
  642. package/dist/shared/chunk-DCM4732T.js +0 -146
  643. package/dist/shared/chunk-DCM4732T.js.map +0 -1
  644. package/dist/shared/chunk-E3ZW57HF.js +0 -843
  645. package/dist/shared/chunk-E3ZW57HF.js.map +0 -1
  646. package/dist/shared/chunk-EID5HPF3.js +0 -63
  647. package/dist/shared/chunk-EID5HPF3.js.map +0 -1
  648. package/dist/shared/chunk-EMF5TCPX.js +0 -389
  649. package/dist/shared/chunk-EMF5TCPX.js.map +0 -1
  650. package/dist/shared/chunk-EUFVTHAG.js +0 -33
  651. package/dist/shared/chunk-EUFVTHAG.js.map +0 -1
  652. package/dist/shared/chunk-FC52EHCC.js +0 -104
  653. package/dist/shared/chunk-FC52EHCC.js.map +0 -1
  654. package/dist/shared/chunk-FD7YYFRI.js +0 -225
  655. package/dist/shared/chunk-FD7YYFRI.js.map +0 -1
  656. package/dist/shared/chunk-FVV27R73.js +0 -269
  657. package/dist/shared/chunk-FVV27R73.js.map +0 -1
  658. package/dist/shared/chunk-FYGFB5U5.js +0 -57
  659. package/dist/shared/chunk-FYGFB5U5.js.map +0 -1
  660. package/dist/shared/chunk-GDYCCB3B.js +0 -22
  661. package/dist/shared/chunk-GDYCCB3B.js.map +0 -1
  662. package/dist/shared/chunk-GLV6QIIM.js +0 -41
  663. package/dist/shared/chunk-GLV6QIIM.js.map +0 -1
  664. package/dist/shared/chunk-GNTJT7MR.js +0 -56
  665. package/dist/shared/chunk-GNTJT7MR.js.map +0 -1
  666. package/dist/shared/chunk-HHUFGV7J.js +0 -259
  667. package/dist/shared/chunk-HHUFGV7J.js.map +0 -1
  668. package/dist/shared/chunk-HPCCD6V5.js +0 -17
  669. package/dist/shared/chunk-HPCCD6V5.js.map +0 -1
  670. package/dist/shared/chunk-IEMCCHM4.js +0 -389
  671. package/dist/shared/chunk-IEMCCHM4.js.map +0 -1
  672. package/dist/shared/chunk-IMDOF55E.js +0 -137
  673. package/dist/shared/chunk-IMDOF55E.js.map +0 -1
  674. package/dist/shared/chunk-IPWYNE6Y.js +0 -213
  675. package/dist/shared/chunk-IPWYNE6Y.js.map +0 -1
  676. package/dist/shared/chunk-J6R3GSKS.js +0 -386
  677. package/dist/shared/chunk-J6R3GSKS.js.map +0 -1
  678. package/dist/shared/chunk-KNREHAPN.js +0 -13
  679. package/dist/shared/chunk-KNREHAPN.js.map +0 -1
  680. package/dist/shared/chunk-KRODRZNS.js +0 -440
  681. package/dist/shared/chunk-KRODRZNS.js.map +0 -1
  682. package/dist/shared/chunk-KT7SSWMM.js +0 -24
  683. package/dist/shared/chunk-KT7SSWMM.js.map +0 -1
  684. package/dist/shared/chunk-KTA7XES3.js +0 -168
  685. package/dist/shared/chunk-KTA7XES3.js.map +0 -1
  686. package/dist/shared/chunk-L4W4B2RQ.js +0 -174
  687. package/dist/shared/chunk-L4W4B2RQ.js.map +0 -1
  688. package/dist/shared/chunk-MO6CRLQA.js +0 -73
  689. package/dist/shared/chunk-MO6CRLQA.js.map +0 -1
  690. package/dist/shared/chunk-NTP6BKRU.js +0 -516
  691. package/dist/shared/chunk-NTP6BKRU.js.map +0 -1
  692. package/dist/shared/chunk-O53V22BK.js +0 -469
  693. package/dist/shared/chunk-O53V22BK.js.map +0 -1
  694. package/dist/shared/chunk-O5PQISX4.js +0 -51
  695. package/dist/shared/chunk-O5PQISX4.js.map +0 -1
  696. package/dist/shared/chunk-OJ6KL7FU.js +0 -32
  697. package/dist/shared/chunk-OJ6KL7FU.js.map +0 -1
  698. package/dist/shared/chunk-OJP4HMJT.js +0 -22
  699. package/dist/shared/chunk-OJP4HMJT.js.map +0 -1
  700. package/dist/shared/chunk-ORIUCOED.js +0 -129
  701. package/dist/shared/chunk-ORIUCOED.js.map +0 -1
  702. package/dist/shared/chunk-OSJ6KGPX.js +0 -16
  703. package/dist/shared/chunk-OSJ6KGPX.js.map +0 -1
  704. package/dist/shared/chunk-OXYXZHP2.js +0 -48
  705. package/dist/shared/chunk-OXYXZHP2.js.map +0 -1
  706. package/dist/shared/chunk-PFZMRSHJ.js +0 -616
  707. package/dist/shared/chunk-PFZMRSHJ.js.map +0 -1
  708. package/dist/shared/chunk-QHKOAIOK.js +0 -243
  709. package/dist/shared/chunk-QHKOAIOK.js.map +0 -1
  710. package/dist/shared/chunk-QLQVDZIL.js +0 -11
  711. package/dist/shared/chunk-QLQVDZIL.js.map +0 -1
  712. package/dist/shared/chunk-RDOCVLCF.js +0 -422
  713. package/dist/shared/chunk-RDOCVLCF.js.map +0 -1
  714. package/dist/shared/chunk-RFH7PEVS.js +0 -38
  715. package/dist/shared/chunk-RFH7PEVS.js.map +0 -1
  716. package/dist/shared/chunk-T3UPW5OW.js +0 -79
  717. package/dist/shared/chunk-T3UPW5OW.js.map +0 -1
  718. package/dist/shared/chunk-TGKNA2JS.js +0 -847
  719. package/dist/shared/chunk-TGKNA2JS.js.map +0 -1
  720. package/dist/shared/chunk-TKMWY2VN.js +0 -18
  721. package/dist/shared/chunk-TKMWY2VN.js.map +0 -1
  722. package/dist/shared/chunk-TZ6X7ZM5.js +0 -158
  723. package/dist/shared/chunk-TZ6X7ZM5.js.map +0 -1
  724. package/dist/shared/chunk-UC75KRLX.js +0 -67
  725. package/dist/shared/chunk-UC75KRLX.js.map +0 -1
  726. package/dist/shared/chunk-VMIJ6MG5.js +0 -368
  727. package/dist/shared/chunk-VMIJ6MG5.js.map +0 -1
  728. package/dist/shared/chunk-VYA2FCTY.js +0 -83
  729. package/dist/shared/chunk-VYA2FCTY.js.map +0 -1
  730. package/dist/shared/chunk-WPZV3LYL.js +0 -24
  731. package/dist/shared/chunk-WPZV3LYL.js.map +0 -1
  732. package/dist/shared/chunk-XCWMZVF5.js +0 -89
  733. package/dist/shared/chunk-XCWMZVF5.js.map +0 -1
  734. package/dist/shared/chunk-XCZVD5H6.js +0 -13
  735. package/dist/shared/chunk-XCZVD5H6.js.map +0 -1
  736. package/dist/shared/chunk-XFZQGRRL.js +0 -101
  737. package/dist/shared/chunk-XFZQGRRL.js.map +0 -1
  738. package/dist/shared/chunk-XYWSIMZ6.js +0 -59
  739. package/dist/shared/chunk-XYWSIMZ6.js.map +0 -1
  740. package/dist/shared/chunk-XZ6WJZHN.js +0 -10
  741. package/dist/shared/chunk-XZ6WJZHN.js.map +0 -1
  742. package/dist/shared/chunk-ZEFOWKYP.js +0 -44
  743. package/dist/shared/chunk-ZEFOWKYP.js.map +0 -1
  744. package/dist/shared/chunk-ZGQ3AQBG.js +0 -33
  745. package/dist/shared/chunk-ZGQ3AQBG.js.map +0 -1
  746. package/dist/shared/chunk-ZRBTAC3G.js +0 -53
  747. package/dist/shared/chunk-ZRBTAC3G.js.map +0 -1
  748. package/dist/shared/chunk-ZYQZUWF7.js +0 -537
  749. package/dist/shared/chunk-ZYQZUWF7.js.map +0 -1
  750. package/dist/shared/chunk-ZZVYD4BG.js +0 -41
  751. package/dist/shared/chunk-ZZVYD4BG.js.map +0 -1
  752. package/dist/shared/datasources/external/facebook/posts/sample.d.ts +0 -26
  753. package/dist/shared/datasources/external/facebook/posts/sample.d.ts.map +0 -1
  754. package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts +0 -2
  755. package/dist/shared/datasources/external/facebook/posts/tests/fetcher.test.d.ts.map +0 -1
  756. package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts +0 -2
  757. package/dist/shared/datasources/external/http-json/tests/fetcher.test.d.ts.map +0 -1
  758. package/dist/shared/datasources/external/instagram/feed/sample.d.ts +0 -3
  759. package/dist/shared/datasources/external/instagram/feed/sample.d.ts.map +0 -1
  760. package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts +0 -2
  761. package/dist/shared/datasources/external/instagram/feed/tests/fetcher.test.d.ts.map +0 -1
  762. package/dist/shared/datasources/external/mastodon/account/sample.d.ts +0 -30
  763. package/dist/shared/datasources/external/mastodon/account/sample.d.ts.map +0 -1
  764. package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts +0 -2
  765. package/dist/shared/datasources/external/mastodon/account/tests/fetcher.test.d.ts.map +0 -1
  766. package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts +0 -2
  767. package/dist/shared/datasources/external/mastodon/status/tests/fetcher.test.d.ts.map +0 -1
  768. package/dist/shared/datasources/external/rss/sample.d.ts +0 -3
  769. package/dist/shared/datasources/external/rss/sample.d.ts.map +0 -1
  770. package/dist/shared/datasources/external/threads/media/sample.d.ts +0 -40
  771. package/dist/shared/datasources/external/threads/media/sample.d.ts.map +0 -1
  772. package/dist/shared/datasources/external/tiktok/video/sample.d.ts +0 -15
  773. package/dist/shared/datasources/external/tiktok/video/sample.d.ts.map +0 -1
  774. package/dist/shared/datasources/external/youtube/list/sample.d.ts +0 -29
  775. package/dist/shared/datasources/external/youtube/list/sample.d.ts.map +0 -1
  776. package/dist/shared/datasources/fetcher.js.map +0 -1
  777. package/dist/shared/env.js.map +0 -1
  778. package/dist/shared/errors.d.ts.map +0 -1
  779. package/dist/shared/errors.js.map +0 -1
  780. package/dist/shared/tests/attributes.test.d.ts +0 -2
  781. package/dist/shared/tests/attributes.test.d.ts.map +0 -1
  782. package/dist/shared/themes/tests/color-system.test.d.ts +0 -2
  783. package/dist/shared/themes/tests/color-system.test.d.ts.map +0 -1
  784. package/dist/shared/utils/tests/schema.test.d.ts +0 -2
  785. package/dist/shared/utils/tests/schema.test.d.ts.map +0 -1
  786. package/src/shared/ajv.ts +0 -123
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nconst googleOAuthTokenSchema = Type.Object({\n access_token: Type.String(),\n token_type: Type.String(), // Usually \"Bearer\"\n expires_in: Type.Number(), // Seconds until token expires, typically 3600 (1 hour)\n refresh_token: Type.Optional(Type.String()), // Only present in first OAuth exchange\n scope: Type.String(), // Space-separated list of granted scopes\n id_token: Type.Optional(Type.String()), // JWT token containing user info, if requested\n});\n\nexport type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;\n\n// You might also want to define the decoded id_token structure:\nconst googleIdTokenSchema = Type.Object({\n iss: Type.String(), // Issuer (usually 'https://accounts.google.com')\n sub: Type.String(), // Unique Google ID for the user\n aud: Type.String(), // Your client ID\n iat: Type.Number(), // Issued at (timestamp)\n exp: Type.Number(), // Expiration time (timestamp)\n email: Type.Optional(Type.String()),\n email_verified: Type.Optional(Type.Boolean()),\n name: Type.Optional(Type.String()),\n picture: Type.Optional(Type.String()),\n given_name: Type.Optional(Type.String()),\n family_name: Type.Optional(Type.String()),\n locale: Type.Optional(Type.String()),\n});\n\nexport type GoogleIdToken = Static<typeof googleIdTokenSchema>;\n"],"mappings":";;;;AAAA,SAAS,YAAyB;AAElC,IAAM,yBAAyB,KAAK,OAAO;AAAA,EACzC,cAAc,KAAK,OAAO;AAAA,EAC1B,YAAY,KAAK,OAAO;AAAA;AAAA,EACxB,YAAY,KAAK,OAAO;AAAA;AAAA,EACxB,eAAe,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA;AAAA,EAC1C,OAAO,KAAK,OAAO;AAAA;AAAA,EACnB,UAAU,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA;AACvC,CAAC;AAKD,IAAM,sBAAsB,KAAK,OAAO;AAAA,EACtC,KAAK,KAAK,OAAO;AAAA;AAAA,EACjB,KAAK,KAAK,OAAO;AAAA;AAAA,EACjB,KAAK,KAAK,OAAO;AAAA;AAAA,EACjB,KAAK,KAAK,OAAO;AAAA;AAAA,EACjB,KAAK,KAAK,OAAO;AAAA;AAAA,EACjB,OAAO,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EAClC,gBAAgB,KAAK,SAAS,KAAK,QAAQ,CAAC;AAAA,EAC5C,MAAM,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EACjC,SAAS,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EACpC,YAAY,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EACvC,aAAa,KAAK,SAAS,KAAK,OAAO,CAAC;AAAA,EACxC,QAAQ,KAAK,SAAS,KAAK,OAAO,CAAC;AACrC,CAAC;","names":[]}
1
+ {"version":3,"file":"config.js","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/oauth/config.ts"],"sourcesContent":["import { Type, type Static } from \"@sinclair/typebox\";\n\nconst googleOAuthTokenSchema = Type.Object({\n access_token: Type.String(),\n token_type: Type.String(), // Usually \"Bearer\"\n expires_in: Type.Number(), // Seconds until token expires, typically 3600 (1 hour)\n refresh_token: Type.Optional(Type.String()), // Only present in first OAuth exchange\n scope: Type.String(), // Space-separated list of granted scopes\n id_token: Type.Optional(Type.String()), // JWT token containing user info, if requested\n});\n\nexport type GoogleOAuthToken = Static<typeof googleOAuthTokenSchema>;\n\n// You might also want to define the decoded id_token structure:\nconst googleIdTokenSchema = Type.Object({\n iss: Type.String(), // Issuer (usually 'https://accounts.google.com')\n sub: Type.String(), // Unique Google ID for the user\n aud: Type.String(), // Your client ID\n iat: Type.Number(), // Issued at (timestamp)\n exp: Type.Number(), // Expiration time (timestamp)\n email: Type.Optional(Type.String()),\n email_verified: Type.Optional(Type.Boolean()),\n name: Type.Optional(Type.String()),\n picture: Type.Optional(Type.String()),\n given_name: Type.Optional(Type.String()),\n family_name: Type.Optional(Type.String()),\n locale: Type.Optional(Type.String()),\n});\n\nexport type GoogleIdToken = Static<typeof googleIdTokenSchema>;\n"],"mappings":";;;AAE+B,KAAK,OAAO;CACzC,cAAc,KAAK,QAAQ;CAC3B,YAAY,KAAK,QAAQ;CACzB,YAAY,KAAK,QAAQ;CACzB,eAAe,KAAK,SAAS,KAAK,QAAQ,CAAC;CAC3C,OAAO,KAAK,QAAQ;CACpB,UAAU,KAAK,SAAS,KAAK,QAAQ,CAAC;CACvC,CAAC;AAK0B,KAAK,OAAO;CACtC,KAAK,KAAK,QAAQ;CAClB,KAAK,KAAK,QAAQ;CAClB,KAAK,KAAK,QAAQ;CAClB,KAAK,KAAK,QAAQ;CAClB,KAAK,KAAK,QAAQ;CAClB,OAAO,KAAK,SAAS,KAAK,QAAQ,CAAC;CACnC,gBAAgB,KAAK,SAAS,KAAK,SAAS,CAAC;CAC7C,MAAM,KAAK,SAAS,KAAK,QAAQ,CAAC;CAClC,SAAS,KAAK,SAAS,KAAK,QAAQ,CAAC;CACrC,YAAY,KAAK,SAAS,KAAK,QAAQ,CAAC;CACxC,aAAa,KAAK,SAAS,KAAK,QAAQ,CAAC;CACzC,QAAQ,KAAK,SAAS,KAAK,QAAQ,CAAC;CACrC,CAAC"}
@@ -1,14 +1,16 @@
1
+ //#region src/shared/datarecords/external/google/sheets/client.d.ts
1
2
  interface ApiResponse<T> {
2
- success: boolean;
3
- data: T;
4
- status: number;
5
- headers: Headers;
3
+ success: boolean;
4
+ data: T;
5
+ status: number;
6
+ headers: Headers;
6
7
  }
7
8
  declare class GoogleDriveClient {
8
- private accessToken;
9
- constructor(accessToken: string);
10
- callDriveApi<T>(endpoint: string, method?: "GET" | "POST" | "PUT" | "PATCH", body?: unknown): Promise<ApiResponse<T>>;
9
+ private accessToken;
10
+ constructor(accessToken: string);
11
+ callDriveApi<T>(endpoint: string, method?: "GET" | "POST" | "PUT" | "PATCH", body?: unknown): Promise<ApiResponse<T>>;
11
12
  }
12
- export default function getClient(accessToken: string): GoogleDriveClient;
13
- export {};
13
+ declare function getClient(accessToken: string): GoogleDriveClient;
14
+ //#endregion
15
+ export { getClient as default };
14
16
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/sheets/client.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,cAAM,iBAAiB;IACrB,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,EAAE,MAAM;IAIzB,YAAY,CAAC,CAAC,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAe,EAChD,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAyF3B;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAExE"}
1
+ {"version":3,"file":"client.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/sheets/client.ts"],"sourcesContent":[],"mappings":";UAAU;EAAA,OAAA,EAAA,OAAW;EAAA,IAAA,EAEb,CAFa;QAEb,EAAA,MAAA;SAEG,EAAA,OAAA;;AAAO,cAGZ,iBAAA,CAAiB;EAAA,QAAA,WAAA;aAWE,CAAA,WAAA,EAAA,MAAA;cAAZ,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,KAAA,GAAA,MAAA,GAAA,KAAA,GAAA,OAAA,EAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EAAR,OAAQ,CAAA,WAAA,CAAY,CAAZ,CAAA,CAAA;;AAAD,iBA2FY,SAAA,CA3FZ,WAAA,EAAA,MAAA,CAAA,EA2F4C,iBA3F5C"}
@@ -1,10 +1,77 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
2
-
3
- import {
4
- getClient
5
- } from "../../../../chunk-XCWMZVF5.js";
6
- import "../../../../chunk-ZGQ3AQBG.js";
7
- export {
8
- getClient as default
1
+ //#region src/shared/datarecords/external/google/sheets/client.ts
2
+ var GoogleDriveClient = class {
3
+ accessToken;
4
+ constructor(accessToken) {
5
+ this.accessToken = accessToken;
6
+ }
7
+ async callDriveApi(endpoint, method = "GET", body) {
8
+ const isBinaryUpload = body instanceof ArrayBuffer || body instanceof Uint8Array;
9
+ const headers = { Authorization: `Bearer ${this.accessToken}` };
10
+ if (!isBinaryUpload) headers["Content-Type"] = "application/json";
11
+ else headers["Content-Type"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
12
+ const response = await fetch(endpoint, {
13
+ method,
14
+ headers,
15
+ body: isBinaryUpload ? body : body ? JSON.stringify(body) : void 0
16
+ });
17
+ if (endpoint.includes("export") && endpoint.includes("mimeType=text/csv")) {
18
+ const csvText = await response.text();
19
+ return {
20
+ success: response.ok,
21
+ data: csvText,
22
+ status: response.status,
23
+ headers: response.headers
24
+ };
25
+ }
26
+ if (endpoint.includes("export") && endpoint.includes("mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {
27
+ const arrayBuffer = await response.arrayBuffer();
28
+ return {
29
+ success: response.ok,
30
+ data: arrayBuffer,
31
+ status: response.status,
32
+ headers: response.headers
33
+ };
34
+ }
35
+ if (endpoint.includes("upload/") && response.ok) try {
36
+ const data$1 = await response.json();
37
+ return {
38
+ success: response.ok,
39
+ data: data$1,
40
+ status: response.status,
41
+ headers: response.headers
42
+ };
43
+ } catch {
44
+ return {
45
+ success: true,
46
+ data: { message: "Upload successful" },
47
+ status: response.status,
48
+ headers: response.headers
49
+ };
50
+ }
51
+ if (!response.ok) {
52
+ if (response.headers.get("content-type")?.includes("text/html")) return {
53
+ success: false,
54
+ data: {
55
+ error: "HTML error response",
56
+ details: (await response.text()).substring(0, 200)
57
+ },
58
+ status: response.status,
59
+ headers: response.headers
60
+ };
61
+ }
62
+ const data = await response.json();
63
+ return {
64
+ success: response.ok,
65
+ data,
66
+ status: response.status,
67
+ headers: response.headers
68
+ };
69
+ }
9
70
  };
71
+ function getClient(accessToken) {
72
+ return new GoogleDriveClient(accessToken);
73
+ }
74
+
75
+ //#endregion
76
+ export { getClient as default };
10
77
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"file":"client.js","names":["headers: Record<string, string>","data"],"sources":["../../../../../../src/shared/datarecords/external/google/sheets/client.ts"],"sourcesContent":["interface ApiResponse<T> {\n success: boolean;\n data: T;\n status: number;\n headers: Headers;\n}\n\nclass GoogleDriveClient {\n private accessToken: string;\n\n constructor(accessToken: string) {\n this.accessToken = accessToken;\n }\n\n async callDriveApi<T>(\n endpoint: string,\n method: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" = \"GET\",\n body?: unknown,\n ): Promise<ApiResponse<T>> {\n // Handle binary data for uploads\n const isBinaryUpload = body instanceof ArrayBuffer || body instanceof Uint8Array;\n const headers: Record<string, string> = {\n Authorization: `Bearer ${this.accessToken}`,\n };\n\n if (!isBinaryUpload) {\n headers[\"Content-Type\"] = \"application/json\";\n } else {\n headers[\"Content-Type\"] = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";\n }\n\n const response = await fetch(endpoint, {\n method,\n headers,\n body: isBinaryUpload ? (body as BodyInit) : body ? JSON.stringify(body) : undefined,\n });\n\n // Handle CSV responses\n if (endpoint.includes(\"export\") && endpoint.includes(\"mimeType=text/csv\")) {\n const csvText = await response.text();\n return {\n success: response.ok,\n data: csvText as T,\n status: response.status,\n headers: response.headers,\n };\n }\n\n // Handle binary responses (like XLSX downloads) - keeping for compatibility\n if (\n endpoint.includes(\"export\") &&\n endpoint.includes(\"mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\")\n ) {\n const arrayBuffer = await response.arrayBuffer();\n return {\n success: response.ok,\n data: arrayBuffer as T,\n status: response.status,\n headers: response.headers,\n };\n }\n\n // Handle upload responses which might not be JSON\n if (endpoint.includes(\"upload/\") && response.ok) {\n // For successful uploads, try to parse JSON, but fallback gracefully\n try {\n const data = await response.json();\n return {\n success: response.ok,\n data,\n status: response.status,\n headers: response.headers,\n };\n } catch {\n // If JSON parsing fails but response is ok, return success\n return {\n success: true,\n data: { message: \"Upload successful\" } as T,\n status: response.status,\n headers: response.headers,\n };\n }\n }\n\n // Handle error responses that might be HTML\n if (!response.ok) {\n const contentType = response.headers.get(\"content-type\");\n if (contentType?.includes(\"text/html\")) {\n const errorText = await response.text();\n return {\n success: false,\n data: { error: \"HTML error response\", details: errorText.substring(0, 200) } as T,\n status: response.status,\n headers: response.headers,\n };\n }\n }\n\n const data = await response.json();\n\n return {\n success: response.ok,\n data,\n status: response.status,\n headers: response.headers,\n };\n }\n}\n\nexport default function getClient(accessToken: string): GoogleDriveClient {\n return new GoogleDriveClient(accessToken);\n}\n"],"mappings":";AAOA,IAAM,oBAAN,MAAwB;CACtB,AAAQ;CAER,YAAY,aAAqB;AAC/B,OAAK,cAAc;;CAGrB,MAAM,aACJ,UACA,SAA2C,OAC3C,MACyB;EAEzB,MAAM,iBAAiB,gBAAgB,eAAe,gBAAgB;EACtE,MAAMA,UAAkC,EACtC,eAAe,UAAU,KAAK,eAC/B;AAED,MAAI,CAAC,eACH,SAAQ,kBAAkB;MAE1B,SAAQ,kBAAkB;EAG5B,MAAM,WAAW,MAAM,MAAM,UAAU;GACrC;GACA;GACA,MAAM,iBAAkB,OAAoB,OAAO,KAAK,UAAU,KAAK,GAAG;GAC3E,CAAC;AAGF,MAAI,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,oBAAoB,EAAE;GACzE,MAAM,UAAU,MAAM,SAAS,MAAM;AACrC,UAAO;IACL,SAAS,SAAS;IAClB,MAAM;IACN,QAAQ,SAAS;IACjB,SAAS,SAAS;IACnB;;AAIH,MACE,SAAS,SAAS,SAAS,IAC3B,SAAS,SAAS,6EAA6E,EAC/F;GACA,MAAM,cAAc,MAAM,SAAS,aAAa;AAChD,UAAO;IACL,SAAS,SAAS;IAClB,MAAM;IACN,QAAQ,SAAS;IACjB,SAAS,SAAS;IACnB;;AAIH,MAAI,SAAS,SAAS,UAAU,IAAI,SAAS,GAE3C,KAAI;GACF,MAAMC,SAAO,MAAM,SAAS,MAAM;AAClC,UAAO;IACL,SAAS,SAAS;IAClB;IACA,QAAQ,SAAS;IACjB,SAAS,SAAS;IACnB;UACK;AAEN,UAAO;IACL,SAAS;IACT,MAAM,EAAE,SAAS,qBAAqB;IACtC,QAAQ,SAAS;IACjB,SAAS,SAAS;IACnB;;AAKL,MAAI,CAAC,SAAS,IAEZ;OADoB,SAAS,QAAQ,IAAI,eAAe,EACvC,SAAS,YAAY,CAEpC,QAAO;IACL,SAAS;IACT,MAAM;KAAE,OAAO;KAAuB,UAHtB,MAAM,SAAS,MAAM,EAGoB,UAAU,GAAG,IAAI;KAAE;IAC5E,QAAQ,SAAS;IACjB,SAAS,SAAS;IACnB;;EAIL,MAAM,OAAO,MAAM,SAAS,MAAM;AAElC,SAAO;GACL,SAAS,SAAS;GAClB;GACA,QAAQ,SAAS;GACjB,SAAS,SAAS;GACnB;;;AAIL,SAAwB,UAAU,aAAwC;AACxE,QAAO,IAAI,kBAAkB,YAAY"}
@@ -1,10 +1,17 @@
1
- import type { TObject, TProperties } from "@sinclair/typebox";
2
- import type { GoogleSheetsOptions } from "./types";
3
- export declare function saveRecord({ formData, options, properties, accessToken, }: {
4
- formData: FormData;
5
- options: GoogleSheetsOptions;
6
- properties: TProperties;
7
- accessToken: string;
1
+ import { GoogleSheetsOptions } from "./types.js";
2
+ import { TObject, TProperties } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/google/sheets/handler.d.ts
5
+ declare function saveRecord({
6
+ formData,
7
+ options,
8
+ properties,
9
+ accessToken
10
+ }: {
11
+ formData: FormData;
12
+ options: GoogleSheetsOptions;
13
+ properties: TProperties;
14
+ accessToken: string;
8
15
  }): Promise<boolean>;
9
16
  /**
10
17
  * Create a spreadsheet in Google Sheets
@@ -13,18 +20,29 @@ export declare function saveRecord({ formData, options, properties, accessToken,
13
20
  * @param accessToken
14
21
  * @returns
15
22
  */
16
- export declare function createTable({ name, schema, accessToken, }: {
17
- name: string;
18
- schema: TObject;
19
- accessToken: string;
23
+ declare function createTable({
24
+ name,
25
+ schema,
26
+ accessToken
27
+ }: {
28
+ name: string;
29
+ schema: TObject;
30
+ accessToken: string;
20
31
  }): Promise<{
21
- spreadsheetId: string;
22
- spreadsheetUrl: string;
32
+ spreadsheetId: string;
33
+ spreadsheetUrl: string;
23
34
  }>;
24
- export declare function updateTable({ spreadsheetId, newName, newProperties, accessToken, }: {
25
- spreadsheetId: string;
26
- newName?: string;
27
- newProperties?: TProperties;
28
- accessToken: string;
35
+ declare function updateTable({
36
+ spreadsheetId,
37
+ newName,
38
+ newProperties,
39
+ accessToken
40
+ }: {
41
+ spreadsheetId: string;
42
+ newName?: string;
43
+ newProperties?: TProperties;
44
+ accessToken: string;
29
45
  }): Promise<void>;
46
+ //#endregion
47
+ export { createTable, saveRecord, updateTable };
30
48
  //# sourceMappingURL=handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/sheets/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA+DnD,wBAAsB,UAAU,CAAC,EAC/B,QAAQ,EACR,OAAO,EACP,UAAU,EACV,WAAW,GACZ,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,WAAW,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CAyCnB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,EAChC,IAAI,EACJ,MAAM,EACN,WAAW,GACZ,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC7D;AAgCD,wBAAsB,WAAW,CAAC,EAChC,aAAa,EACb,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ChB"}
1
+ {"version":3,"file":"handler.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/sheets/handler.ts"],"sourcesContent":[],"mappings":";;;;iBAiEsB,UAAA;;;;;;YAMV;EANU,OAAA,EAOX,mBAPqB;EAAA,UAAA,EAQlB,WARkB;aAC9B,EAAA,MAAA;IASE,OARF,CAAA,OAAA,CAAA;;;;;;;;AA0DoB,iBAAA,WAAA,CAAW;EAAA,IAAA;EAAA,MAAA;EAAA;CAAA,EAAA;EAAA,IAAA,EAAA,MAAA;QAC/B,EAKQ,OALR;aACA,EAAA,MAAA;IAME,OALF,CAAA;eAGQ,EAAA,MAAA;gBAEN,EAAA,MAAA;CAAO,CAAA;AAkEW,iBAAA,WAAA,CAAW;EAAA,aAAA;EAAA,OAAA;EAAA,aAAA;EAAA;CAAA,EAAA;EAAA,aAAA,EAAA,MAAA;SAC/B,CAAA,EAAA,MAAA;eACA,CAAA,EAMgB,WANhB;aACA,EAAA,MAAA;IAOE,OANF,CAAA,IAAA,CAAA"}
@@ -1,187 +1,114 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
1
+ import getClient from "./client.js";
2
2
 
3
- import {
4
- getClient
5
- } from "../../../../chunk-XCWMZVF5.js";
6
- import "../../../../chunk-ZGQ3AQBG.js";
7
-
8
- // src/shared/datarecords/external/google/sheets/handler.ts
3
+ //#region src/shared/datarecords/external/google/sheets/handler.ts
9
4
  async function downloadGoogleSheetsData(spreadsheetId, accessToken) {
10
- try {
11
- const client = getClient(accessToken);
12
- const response = await client.callDriveApi(
13
- `https://www.googleapis.com/drive/v3/files/${spreadsheetId}/export?mimeType=text/csv`,
14
- "GET"
15
- );
16
- if (!response.success) {
17
- throw new Error(`Failed to download spreadsheet: ${response.status}`);
18
- }
19
- return response.data;
20
- } catch (error) {
21
- console.error("Error downloading Google Sheets data:", error);
22
- throw error;
23
- }
5
+ try {
6
+ const response = await getClient(accessToken).callDriveApi(`https://www.googleapis.com/drive/v3/files/${spreadsheetId}/export?mimeType=text/csv`, "GET");
7
+ if (!response.success) throw new Error(`Failed to download spreadsheet: ${response.status}`);
8
+ return response.data;
9
+ } catch (error) {
10
+ console.error("Error downloading Google Sheets data:", error);
11
+ throw error;
12
+ }
24
13
  }
25
14
  async function uploadGoogleSheetsData(spreadsheetId, csvLines, accessToken) {
26
- try {
27
- const client = getClient(accessToken);
28
- const initResponse = await client.callDriveApi(
29
- `https://www.googleapis.com/upload/drive/v3/files/${spreadsheetId}?uploadType=resumable`,
30
- "PATCH",
31
- {
32
- mimeType: "application/vnd.google-apps.spreadsheet"
33
- }
34
- );
35
- if (!initResponse.success) {
36
- const errorText = initResponse.data;
37
- throw new Error(`Failed to initiate upload: ${initResponse.status} - ${errorText}`);
38
- }
39
- const uploadUrl = initResponse.headers.get("Location");
40
- if (!uploadUrl) {
41
- throw new Error("No upload URL returned from Google Drive");
42
- }
43
- const uploadResponse = await fetch(uploadUrl, {
44
- method: "PUT",
45
- headers: {
46
- "Content-Type": "text/csv"
47
- },
48
- body: csvLines.map((line) => line.replace("\r", "")).join("\n")
49
- });
50
- return uploadResponse.ok;
51
- } catch (error) {
52
- console.error("Error uploading Google Sheets data:", error);
53
- throw error;
54
- }
15
+ try {
16
+ const initResponse = await getClient(accessToken).callDriveApi(`https://www.googleapis.com/upload/drive/v3/files/${spreadsheetId}?uploadType=resumable`, "PATCH", { mimeType: "application/vnd.google-apps.spreadsheet" });
17
+ if (!initResponse.success) {
18
+ const errorText = initResponse.data;
19
+ throw new Error(`Failed to initiate upload: ${initResponse.status} - ${errorText}`);
20
+ }
21
+ const uploadUrl = initResponse.headers.get("Location");
22
+ if (!uploadUrl) throw new Error("No upload URL returned from Google Drive");
23
+ return (await fetch(uploadUrl, {
24
+ method: "PUT",
25
+ headers: { "Content-Type": "text/csv" },
26
+ body: csvLines.map((line) => line.replace("\r", "")).join("\n")
27
+ })).ok;
28
+ } catch (error) {
29
+ console.error("Error uploading Google Sheets data:", error);
30
+ throw error;
31
+ }
55
32
  }
56
- async function saveRecord({
57
- formData,
58
- options,
59
- properties,
60
- accessToken
61
- }) {
62
- try {
63
- if (!accessToken) {
64
- throw new Error("Access token is required");
65
- }
66
- if (!options.spreadsheetId) {
67
- throw new Error("Spreadsheet ID is required");
68
- }
69
- const existingCsv = await downloadGoogleSheetsData(options.spreadsheetId, accessToken);
70
- const csvLines = existingCsv.trim().split("\n");
71
- const record = {};
72
- for (const [key, value] of formData.entries()) {
73
- record[key] = value;
74
- }
75
- const orderedHeaders = buildGoogleSheetHeaders(properties);
76
- const newCsvRow = orderedHeaders.map((header) => {
77
- const value = record[header]?.toString() || "";
78
- if (value.includes(",") || value.includes('"') || value.includes("\n")) {
79
- return `"${value.replace(/"/g, '""')}"`;
80
- }
81
- return value;
82
- }).join(",");
83
- csvLines.push(newCsvRow);
84
- return uploadGoogleSheetsData(options.spreadsheetId, csvLines, accessToken);
85
- } catch (error) {
86
- console.error("Error pushing data to Google Sheets:", error);
87
- return false;
88
- }
33
+ async function saveRecord({ formData, options, properties, accessToken }) {
34
+ try {
35
+ if (!accessToken) throw new Error("Access token is required");
36
+ if (!options.spreadsheetId) throw new Error("Spreadsheet ID is required");
37
+ const csvLines = (await downloadGoogleSheetsData(options.spreadsheetId, accessToken)).trim().split("\n");
38
+ const record = {};
39
+ for (const [key, value] of formData.entries()) record[key] = value;
40
+ const newCsvRow = buildGoogleSheetHeaders(properties).map((header) => {
41
+ const value = record[header]?.toString() || "";
42
+ if (value.includes(",") || value.includes("\"") || value.includes("\n")) return `"${value.replace(/"/g, "\"\"")}"`;
43
+ return value;
44
+ }).join(",");
45
+ csvLines.push(newCsvRow);
46
+ return uploadGoogleSheetsData(options.spreadsheetId, csvLines, accessToken);
47
+ } catch (error) {
48
+ console.error("Error pushing data to Google Sheets:", error);
49
+ return false;
50
+ }
89
51
  }
90
- async function createTable({
91
- name,
92
- schema,
93
- accessToken
94
- }) {
95
- try {
96
- const client = getClient(accessToken);
97
- const createResponse = await client.callDriveApi(
98
- "https://www.googleapis.com/drive/v3/files",
99
- "POST",
100
- {
101
- name,
102
- mimeType: "application/vnd.google-apps.spreadsheet"
103
- }
104
- );
105
- if (!createResponse.success) {
106
- throw new Error(`Failed to create spreadsheet: ${createResponse.status}`);
107
- }
108
- const spreadsheetId = createResponse.data.id;
109
- const spreadsheetUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/edit`;
110
- const headers = buildGoogleSheetHeaders(schema.properties);
111
- const headerLine = headers.join(",");
112
- await uploadGoogleSheetsData(spreadsheetId, [headerLine], accessToken);
113
- return {
114
- spreadsheetId,
115
- spreadsheetUrl
116
- };
117
- } catch (error) {
118
- console.error("Error creating Google Sheets spreadsheet:", error);
119
- throw error;
120
- }
52
+ /**
53
+ * Create a spreadsheet in Google Sheets
54
+ * @param title
55
+ * @param schema
56
+ * @param accessToken
57
+ * @returns
58
+ */
59
+ async function createTable({ name, schema, accessToken }) {
60
+ try {
61
+ const createResponse = await getClient(accessToken).callDriveApi("https://www.googleapis.com/drive/v3/files", "POST", {
62
+ name,
63
+ mimeType: "application/vnd.google-apps.spreadsheet"
64
+ });
65
+ if (!createResponse.success) throw new Error(`Failed to create spreadsheet: ${createResponse.status}`);
66
+ const spreadsheetId = createResponse.data.id;
67
+ const spreadsheetUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/edit`;
68
+ const headerLine = buildGoogleSheetHeaders(schema.properties).join(",");
69
+ await uploadGoogleSheetsData(spreadsheetId, [headerLine], accessToken);
70
+ return {
71
+ spreadsheetId,
72
+ spreadsheetUrl
73
+ };
74
+ } catch (error) {
75
+ console.error("Error creating Google Sheets spreadsheet:", error);
76
+ throw error;
77
+ }
121
78
  }
122
79
  function buildGoogleSheetHeaders(properties) {
123
- const sortedEntries = Object.entries(properties).sort(([, fieldA], [, fieldB]) => {
124
- const orderA = fieldA.metadata?.order;
125
- const orderB = fieldB.metadata?.order;
126
- if (orderA !== void 0 && orderB !== void 0) {
127
- return orderA - orderB;
128
- }
129
- if (orderA !== void 0 && orderB === void 0) {
130
- return -1;
131
- }
132
- if (orderA === void 0 && orderB !== void 0) {
133
- return 1;
134
- }
135
- return 0;
136
- });
137
- const fields = sortedEntries.map(([fieldName, field]) => {
138
- return fieldName;
139
- });
140
- return fields;
80
+ return Object.entries(properties).sort(([, fieldA], [, fieldB]) => {
81
+ const orderA = fieldA.metadata?.order;
82
+ const orderB = fieldB.metadata?.order;
83
+ if (orderA !== void 0 && orderB !== void 0) return orderA - orderB;
84
+ if (orderA !== void 0 && orderB === void 0) return -1;
85
+ if (orderA === void 0 && orderB !== void 0) return 1;
86
+ return 0;
87
+ }).map(([fieldName, field]) => {
88
+ return fieldName;
89
+ });
141
90
  }
142
- async function updateTable({
143
- spreadsheetId,
144
- newName,
145
- newProperties,
146
- accessToken
147
- }) {
148
- try {
149
- if (newName) {
150
- const client = getClient(accessToken);
151
- await client.callDriveApi(
152
- `https://www.googleapis.com/drive/v3/files/${spreadsheetId}`,
153
- "PATCH",
154
- {
155
- name: newName
156
- }
157
- );
158
- }
159
- if (newProperties) {
160
- const newHeaders = buildGoogleSheetHeaders(newProperties);
161
- const existingData = await downloadGoogleSheetsData(spreadsheetId, accessToken);
162
- const currentLines = existingData.split("\n");
163
- const csvLines = currentLines.map((line, index) => {
164
- if (index === 0) {
165
- const currentHeaders = line.split(",");
166
- const allHeaders = [...currentHeaders, ...newHeaders];
167
- return allHeaders.join(",");
168
- } else {
169
- const currentValues = line.split(",");
170
- const newValues = newHeaders.map(() => "");
171
- const updatedValues = [...currentValues, ...newValues];
172
- return updatedValues.join(",");
173
- }
174
- });
175
- await uploadGoogleSheetsData(spreadsheetId, csvLines, accessToken);
176
- }
177
- } catch (error) {
178
- console.error("Error updating Google Sheets spreadsheet:", error);
179
- throw error;
180
- }
91
+ async function updateTable({ spreadsheetId, newName, newProperties, accessToken }) {
92
+ try {
93
+ if (newName) await getClient(accessToken).callDriveApi(`https://www.googleapis.com/drive/v3/files/${spreadsheetId}`, "PATCH", { name: newName });
94
+ if (newProperties) {
95
+ const newHeaders = buildGoogleSheetHeaders(newProperties);
96
+ const csvLines = (await downloadGoogleSheetsData(spreadsheetId, accessToken)).split("\n").map((line, index) => {
97
+ if (index === 0) return [...line.split(","), ...newHeaders].join(",");
98
+ else {
99
+ const currentValues = line.split(",");
100
+ const newValues = newHeaders.map(() => "");
101
+ return [...currentValues, ...newValues].join(",");
102
+ }
103
+ });
104
+ await uploadGoogleSheetsData(spreadsheetId, csvLines, accessToken);
105
+ }
106
+ } catch (error) {
107
+ console.error("Error updating Google Sheets spreadsheet:", error);
108
+ throw error;
109
+ }
181
110
  }
182
- export {
183
- createTable,
184
- saveRecord,
185
- updateTable
186
- };
111
+
112
+ //#endregion
113
+ export { createTable, saveRecord, updateTable };
187
114
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/shared/datarecords/external/google/sheets/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport getClient from \"./client\";\nimport type { GoogleSheetsOptions } from \"./types\";\n\nasync function downloadGoogleSheetsData(spreadsheetId: string, accessToken: string): Promise<string> {\n try {\n const client = getClient(accessToken);\n const response = await client.callDriveApi<string>(\n `https://www.googleapis.com/drive/v3/files/${spreadsheetId}/export?mimeType=text/csv`,\n \"GET\",\n );\n\n if (!response.success) {\n throw new Error(`Failed to download spreadsheet: ${response.status}`);\n }\n\n return response.data;\n } catch (error) {\n console.error(\"Error downloading Google Sheets data:\", error);\n throw error;\n }\n}\n\nasync function uploadGoogleSheetsData(\n spreadsheetId: string,\n csvLines: string[],\n accessToken: string,\n): Promise<boolean> {\n try {\n const client = getClient(accessToken);\n // Use resumable upload to ensure the content is properly converted\n const initResponse = await client.callDriveApi<string>(\n `https://www.googleapis.com/upload/drive/v3/files/${spreadsheetId}?uploadType=resumable`,\n \"PATCH\",\n {\n mimeType: \"application/vnd.google-apps.spreadsheet\",\n },\n );\n\n if (!initResponse.success) {\n const errorText = initResponse.data;\n throw new Error(`Failed to initiate upload: ${initResponse.status} - ${errorText}`);\n }\n\n const uploadUrl = initResponse.headers.get(\"Location\");\n\n if (!uploadUrl) {\n throw new Error(\"No upload URL returned from Google Drive\");\n }\n\n // Upload the CSV content\n const uploadResponse = await fetch(uploadUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"text/csv\",\n },\n body: csvLines.map((line) => line.replace(\"\\r\", \"\")).join(\"\\n\"),\n });\n return uploadResponse.ok;\n } catch (error) {\n console.error(\"Error uploading Google Sheets data:\", error);\n throw error;\n }\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: GoogleSheetsOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<boolean> {\n try {\n if (!accessToken) {\n throw new Error(\"Access token is required\");\n }\n\n if (!options.spreadsheetId) {\n throw new Error(\"Spreadsheet ID is required\");\n }\n\n // Download existing CSV data\n const existingCsv = await downloadGoogleSheetsData(options.spreadsheetId, accessToken);\n const csvLines = existingCsv.trim().split(\"\\n\");\n\n // Convert FormData to a record object\n const record: Record<string, unknown> = {};\n for (const [key, value] of formData.entries()) {\n record[key] = value;\n }\n\n // build new csv line using the metadata.order of properties\n const orderedHeaders = buildGoogleSheetHeaders(properties);\n const newCsvRow = orderedHeaders\n .map((header) => {\n const value = record[header]?.toString() || \"\";\n // Escape CSV values that contain commas, quotes, or newlines\n if (value.includes(\",\") || value.includes('\"') || value.includes(\"\\n\")) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n })\n .join(\",\");\n\n // Add new rows to CSV\n csvLines.push(newCsvRow);\n\n return uploadGoogleSheetsData(options.spreadsheetId, csvLines, accessToken);\n } catch (error) {\n console.error(\"Error pushing data to Google Sheets:\", error);\n return false;\n }\n}\n\n/**\n * Create a spreadsheet in Google Sheets\n * @param title\n * @param schema\n * @param accessToken\n * @returns\n */\nexport async function createTable({\n name,\n schema,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n accessToken: string;\n}): Promise<{ spreadsheetId: string; spreadsheetUrl: string }> {\n try {\n const client = getClient(accessToken);\n\n // First create the file\n const createResponse = await client.callDriveApi<{ id: string }>(\n \"https://www.googleapis.com/drive/v3/files\",\n \"POST\",\n {\n name: name,\n mimeType: \"application/vnd.google-apps.spreadsheet\",\n },\n );\n\n if (!createResponse.success) {\n throw new Error(`Failed to create spreadsheet: ${createResponse.status}`);\n }\n\n const spreadsheetId = createResponse.data.id;\n\n const spreadsheetUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/edit`;\n\n const headers = buildGoogleSheetHeaders(schema.properties as TProperties);\n const headerLine = headers.join(\",\");\n\n await uploadGoogleSheetsData(spreadsheetId, [headerLine], accessToken);\n return {\n spreadsheetId,\n spreadsheetUrl,\n };\n } catch (error) {\n console.error(\"Error creating Google Sheets spreadsheet:\", error);\n throw error;\n }\n}\n\nfunction buildGoogleSheetHeaders(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 return fieldName;\n });\n return fields;\n}\n\nexport async function updateTable({\n spreadsheetId,\n newName,\n newProperties,\n accessToken,\n}: {\n spreadsheetId: string;\n newName?: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<void> {\n try {\n // rename spreadsheet\n if (newName) {\n const client = getClient(accessToken);\n await client.callDriveApi<string>(\n `https://www.googleapis.com/drive/v3/files/${spreadsheetId}`,\n \"PATCH\",\n {\n name: newName,\n },\n );\n }\n\n if (newProperties) {\n const newHeaders = buildGoogleSheetHeaders(newProperties);\n // const headerLine = newHeaders.join(\",\");\n\n // first, download the existing data\n const existingData = await downloadGoogleSheetsData(spreadsheetId, accessToken);\n\n // add new header for first line, and empty value for other\n const currentLines = existingData.split(\"\\n\");\n const csvLines = currentLines.map((line, index) => {\n if (index === 0) {\n const currentHeaders = line.split(\",\");\n const allHeaders = [...currentHeaders, ...newHeaders];\n return allHeaders.join(\",\");\n } else {\n const currentValues = line.split(\",\");\n const newValues = newHeaders.map(() => \"\");\n const updatedValues = [...currentValues, ...newValues];\n return updatedValues.join(\",\");\n }\n });\n\n // upload updated data\n await uploadGoogleSheetsData(spreadsheetId, csvLines, accessToken);\n }\n } catch (error) {\n console.error(\"Error updating Google Sheets spreadsheet:\", error);\n throw error;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"handler.js","names":["record: Record<string, unknown>"],"sources":["../../../../../../src/shared/datarecords/external/google/sheets/handler.ts"],"sourcesContent":["import type { TObject, TProperties } from \"@sinclair/typebox\";\nimport getClient from \"./client\";\nimport type { GoogleSheetsOptions } from \"./types\";\n\nasync function downloadGoogleSheetsData(spreadsheetId: string, accessToken: string): Promise<string> {\n try {\n const client = getClient(accessToken);\n const response = await client.callDriveApi<string>(\n `https://www.googleapis.com/drive/v3/files/${spreadsheetId}/export?mimeType=text/csv`,\n \"GET\",\n );\n\n if (!response.success) {\n throw new Error(`Failed to download spreadsheet: ${response.status}`);\n }\n\n return response.data;\n } catch (error) {\n console.error(\"Error downloading Google Sheets data:\", error);\n throw error;\n }\n}\n\nasync function uploadGoogleSheetsData(\n spreadsheetId: string,\n csvLines: string[],\n accessToken: string,\n): Promise<boolean> {\n try {\n const client = getClient(accessToken);\n // Use resumable upload to ensure the content is properly converted\n const initResponse = await client.callDriveApi<string>(\n `https://www.googleapis.com/upload/drive/v3/files/${spreadsheetId}?uploadType=resumable`,\n \"PATCH\",\n {\n mimeType: \"application/vnd.google-apps.spreadsheet\",\n },\n );\n\n if (!initResponse.success) {\n const errorText = initResponse.data;\n throw new Error(`Failed to initiate upload: ${initResponse.status} - ${errorText}`);\n }\n\n const uploadUrl = initResponse.headers.get(\"Location\");\n\n if (!uploadUrl) {\n throw new Error(\"No upload URL returned from Google Drive\");\n }\n\n // Upload the CSV content\n const uploadResponse = await fetch(uploadUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"text/csv\",\n },\n body: csvLines.map((line) => line.replace(\"\\r\", \"\")).join(\"\\n\"),\n });\n return uploadResponse.ok;\n } catch (error) {\n console.error(\"Error uploading Google Sheets data:\", error);\n throw error;\n }\n}\n\nexport async function saveRecord({\n formData,\n options,\n properties,\n accessToken,\n}: {\n formData: FormData;\n options: GoogleSheetsOptions;\n properties: TProperties;\n accessToken: string;\n}): Promise<boolean> {\n try {\n if (!accessToken) {\n throw new Error(\"Access token is required\");\n }\n\n if (!options.spreadsheetId) {\n throw new Error(\"Spreadsheet ID is required\");\n }\n\n // Download existing CSV data\n const existingCsv = await downloadGoogleSheetsData(options.spreadsheetId, accessToken);\n const csvLines = existingCsv.trim().split(\"\\n\");\n\n // Convert FormData to a record object\n const record: Record<string, unknown> = {};\n for (const [key, value] of formData.entries()) {\n record[key] = value;\n }\n\n // build new csv line using the metadata.order of properties\n const orderedHeaders = buildGoogleSheetHeaders(properties);\n const newCsvRow = orderedHeaders\n .map((header) => {\n const value = record[header]?.toString() || \"\";\n // Escape CSV values that contain commas, quotes, or newlines\n if (value.includes(\",\") || value.includes('\"') || value.includes(\"\\n\")) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n })\n .join(\",\");\n\n // Add new rows to CSV\n csvLines.push(newCsvRow);\n\n return uploadGoogleSheetsData(options.spreadsheetId, csvLines, accessToken);\n } catch (error) {\n console.error(\"Error pushing data to Google Sheets:\", error);\n return false;\n }\n}\n\n/**\n * Create a spreadsheet in Google Sheets\n * @param title\n * @param schema\n * @param accessToken\n * @returns\n */\nexport async function createTable({\n name,\n schema,\n accessToken,\n}: {\n name: string;\n schema: TObject;\n accessToken: string;\n}): Promise<{ spreadsheetId: string; spreadsheetUrl: string }> {\n try {\n const client = getClient(accessToken);\n\n // First create the file\n const createResponse = await client.callDriveApi<{ id: string }>(\n \"https://www.googleapis.com/drive/v3/files\",\n \"POST\",\n {\n name: name,\n mimeType: \"application/vnd.google-apps.spreadsheet\",\n },\n );\n\n if (!createResponse.success) {\n throw new Error(`Failed to create spreadsheet: ${createResponse.status}`);\n }\n\n const spreadsheetId = createResponse.data.id;\n\n const spreadsheetUrl = `https://docs.google.com/spreadsheets/d/${spreadsheetId}/edit`;\n\n const headers = buildGoogleSheetHeaders(schema.properties as TProperties);\n const headerLine = headers.join(\",\");\n\n await uploadGoogleSheetsData(spreadsheetId, [headerLine], accessToken);\n return {\n spreadsheetId,\n spreadsheetUrl,\n };\n } catch (error) {\n console.error(\"Error creating Google Sheets spreadsheet:\", error);\n throw error;\n }\n}\n\nfunction buildGoogleSheetHeaders(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 return fieldName;\n });\n return fields;\n}\n\nexport async function updateTable({\n spreadsheetId,\n newName,\n newProperties,\n accessToken,\n}: {\n spreadsheetId: string;\n newName?: string;\n newProperties?: TProperties;\n accessToken: string;\n}): Promise<void> {\n try {\n // rename spreadsheet\n if (newName) {\n const client = getClient(accessToken);\n await client.callDriveApi<string>(\n `https://www.googleapis.com/drive/v3/files/${spreadsheetId}`,\n \"PATCH\",\n {\n name: newName,\n },\n );\n }\n\n if (newProperties) {\n const newHeaders = buildGoogleSheetHeaders(newProperties);\n // const headerLine = newHeaders.join(\",\");\n\n // first, download the existing data\n const existingData = await downloadGoogleSheetsData(spreadsheetId, accessToken);\n\n // add new header for first line, and empty value for other\n const currentLines = existingData.split(\"\\n\");\n const csvLines = currentLines.map((line, index) => {\n if (index === 0) {\n const currentHeaders = line.split(\",\");\n const allHeaders = [...currentHeaders, ...newHeaders];\n return allHeaders.join(\",\");\n } else {\n const currentValues = line.split(\",\");\n const newValues = newHeaders.map(() => \"\");\n const updatedValues = [...currentValues, ...newValues];\n return updatedValues.join(\",\");\n }\n });\n\n // upload updated data\n await uploadGoogleSheetsData(spreadsheetId, csvLines, accessToken);\n }\n } catch (error) {\n console.error(\"Error updating Google Sheets spreadsheet:\", error);\n throw error;\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,14 @@
1
- import { type Static } from "@sinclair/typebox";
2
- export declare const googleSheetsOptions: import("@sinclair/typebox").TObject<{
3
- spreadsheetId: import("@sinclair/typebox").TString;
4
- spreadsheetUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
- spreadsheetName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
- externalUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1
+ import * as _sinclair_typebox7623 from "@sinclair/typebox";
2
+ import { Static } from "@sinclair/typebox";
3
+
4
+ //#region src/shared/datarecords/external/google/sheets/types.d.ts
5
+ declare const googleSheetsOptions: _sinclair_typebox7623.TObject<{
6
+ spreadsheetId: _sinclair_typebox7623.TString;
7
+ spreadsheetUrl: _sinclair_typebox7623.TOptional<_sinclair_typebox7623.TString>;
8
+ spreadsheetName: _sinclair_typebox7623.TOptional<_sinclair_typebox7623.TString>;
9
+ externalUrl: _sinclair_typebox7623.TOptional<_sinclair_typebox7623.TString>;
7
10
  }>;
8
- export type GoogleSheetsOptions = Static<typeof googleSheetsOptions>;
11
+ type GoogleSheetsOptions = Static<typeof googleSheetsOptions>;
12
+ //#endregion
13
+ export { GoogleSheetsOptions, googleSheetsOptions };
9
14
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/datarecords/external/google/sheets/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,MAAM,mBAAmB;;;;;EAK9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../../../src/shared/datarecords/external/google/sheets/types.ts"],"sourcesContent":[],"mappings":";;;;cAEa,2CAAmB;iBAK9B,qBAAA,CAAA;;EALW,eAAA,iCAKX,+BAAA;EAAA,WAAA,iCAAA,+BAAA;;KAEU,mBAAA,GAAsB,cAAc"}
@@ -1,10 +1,13 @@
1
- /*! Upstart.gg - Copyright (C) 2024 Flippable - https://github.com/upstart-gg/upstart/blob/main/LICENSE */
1
+ import { Type } from "@sinclair/typebox";
2
2
 
3
- import {
4
- googleSheetsOptions
5
- } from "../../../../chunk-OSJ6KGPX.js";
6
- import "../../../../chunk-ZGQ3AQBG.js";
7
- export {
8
- googleSheetsOptions
9
- };
3
+ //#region src/shared/datarecords/external/google/sheets/types.ts
4
+ const googleSheetsOptions = Type.Object({
5
+ spreadsheetId: Type.String(),
6
+ spreadsheetUrl: Type.Optional(Type.String()),
7
+ spreadsheetName: Type.Optional(Type.String()),
8
+ externalUrl: Type.Optional(Type.String())
9
+ });
10
+
11
+ //#endregion
12
+ export { googleSheetsOptions };
10
13
  //# sourceMappingURL=types.js.map