better-supabase 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (784) hide show
  1. package/README.md +3 -0
  2. package/dist/{adapter-CEjmtazZ.js → adapter-rmWaLNe3.js} +3 -3
  3. package/dist/{agents-BCNhIxVZ.d.ts → agents-ByYUSZxT.d.ts} +4 -4
  4. package/dist/{ai-cache-Dps7aRu1.d.ts → ai-cache-CkxtAt4P.d.ts} +4 -4
  5. package/dist/{ai-cache-zeUL94pB.js → ai-cache-DPiuJ-zJ.js} +2 -2
  6. package/dist/{ai-chat-3GBSlFR4.d.ts → ai-chat-al8b3spK.d.ts} +4 -4
  7. package/dist/{ai-files-D2_9YLjF.js → ai-files-BXtV3ygd.js} +5 -5
  8. package/dist/ai-sdk/agents/index.d.ts +6 -6
  9. package/dist/ai-sdk/agents/index.js +1 -1
  10. package/dist/ai-sdk/batches/index.d.ts +3 -3
  11. package/dist/ai-sdk/batches/index.js +2 -2
  12. package/dist/ai-sdk/cache/index.d.ts +1 -1
  13. package/dist/ai-sdk/cache/index.js +1 -1
  14. package/dist/ai-sdk/chat/index.d.ts +1 -1
  15. package/dist/ai-sdk/chat/index.js +1 -1
  16. package/dist/ai-sdk/embeddings/index.d.ts +2 -2
  17. package/dist/ai-sdk/files/index.d.ts +1 -1
  18. package/dist/ai-sdk/files/index.js +3 -3
  19. package/dist/ai-sdk/index.d.ts +5 -5
  20. package/dist/ai-sdk/mcp/index.d.ts +3 -3
  21. package/dist/ai-sdk/mcp/index.js +2 -2
  22. package/dist/ai-sdk/memory/index.d.ts +3 -3
  23. package/dist/ai-sdk/workflow/index.d.ts +3 -3
  24. package/dist/ai-sdk/workflow/index.js +1 -1
  25. package/dist/{ai-tasks-Ih5oHfyj.d.ts → ai-tasks-Di0gmJOX.d.ts} +5 -5
  26. package/dist/{announcements-BHCzraR6.js → announcements-HF7LuFw5.js} +4 -4
  27. package/dist/{api-TG3jE5aO.d.ts → api-XJcQON_7.d.ts} +6 -6
  28. package/dist/{api-keys-BEQatEUW.js → api-keys-C1IZF7p8.js} +4 -4
  29. package/dist/{api-keys-BYoGCM9p.d.ts → api-keys-EdSNjGIZ.d.ts} +4 -4
  30. package/dist/{app-tables-BGl5_U2x.js → app-tables-BRjMcWhW.js} +248 -13
  31. package/dist/app-tables-DVidEHOI.d.ts +35 -0
  32. package/dist/{approvals-a2KmioBh.d.ts → approvals-DqlPHBHI.d.ts} +4 -4
  33. package/dist/arazzo/index.d.ts +2 -2
  34. package/dist/{assistant-Bf2cA6RO.d.ts → assistant-BZyhQ8bd.d.ts} +2 -2
  35. package/dist/astro/index.d.ts +7 -7
  36. package/dist/astro/index.js +5 -5
  37. package/dist/asyncapi/index.d.ts +1 -1
  38. package/dist/{attachments-DAj2Yp95.js → attachments-C8FEBBKE.js} +5 -5
  39. package/dist/{audit-log-BMMuGPdP.js → audit-log-CRgiHlRh.js} +6 -6
  40. package/dist/{auth-reply-DUCwb8YO.js → auth-reply-B_dW4jHJ.js} +1 -1
  41. package/dist/{authorization-DpRfs6Wx.d.ts → authorization-CdJRoZgV.d.ts} +24 -1
  42. package/dist/{authorization-hooks-DkmrnDX7.d.ts → authorization-hooks-Do5djkpz.d.ts} +2 -2
  43. package/dist/{authorizer-DH7DjkL3.js → authorizer-dVVN05Un.js} +1 -1
  44. package/dist/better-result/index.d.ts +4 -4
  45. package/dist/better-result/index.js +1 -1
  46. package/dist/{bind-a7sUgvf4.d.ts → bind-DkaP_0iS.d.ts} +4 -4
  47. package/dist/{block-fields-ffD6Gxe4.js → block-fields-BANwJ9Y_.js} +2 -2
  48. package/dist/{block-helpers-C86hPEjI.d.ts → block-helpers-7pMBVsE6.d.ts} +1 -1
  49. package/dist/{block-helpers-CfG_MvDR.js → block-helpers-BfVCR5Fc.js} +1 -1
  50. package/dist/{block-hooks-BsXncUlZ.js → block-hooks-ByKlh8Qy.js} +2 -2
  51. package/dist/{block-hooks-BLPWD3Jt.d.ts → block-hooks-C_WaodoA.d.ts} +2 -2
  52. package/dist/{block-transport-DaGGXjIw.d.ts → block-transport-NbUJygA7.d.ts} +2 -2
  53. package/dist/blocks/access-requests/index.d.ts +5 -5
  54. package/dist/blocks/access-requests/index.js +5 -5
  55. package/dist/blocks/agents/index.d.ts +4 -4
  56. package/dist/blocks/agents/index.js +5 -5
  57. package/dist/blocks/ai-cache/index.d.ts +3 -3
  58. package/dist/blocks/ai-cache/index.js +2 -2
  59. package/dist/blocks/ai-chat/index.d.ts +5 -5
  60. package/dist/blocks/ai-chat/index.js +3 -3
  61. package/dist/blocks/ai-chat/react/index.d.ts +2 -2
  62. package/dist/blocks/ai-chat/react/index.js +1 -1
  63. package/dist/blocks/ai-chat/solid/index.d.ts +2 -2
  64. package/dist/blocks/ai-chat/solid/index.js +1 -1
  65. package/dist/blocks/ai-chat/svelte/index.d.ts +2 -2
  66. package/dist/blocks/ai-chat/svelte/index.js +1 -1
  67. package/dist/blocks/ai-chat/vue/index.d.ts +2 -2
  68. package/dist/blocks/ai-chat/vue/index.js +1 -1
  69. package/dist/blocks/ai-files/index.d.ts +3 -3
  70. package/dist/blocks/ai-files/index.js +2 -2
  71. package/dist/blocks/ai-providers/index.d.ts +4 -4
  72. package/dist/blocks/ai-providers/index.js +5 -5
  73. package/dist/blocks/ai-tasks/index.d.ts +3 -3
  74. package/dist/blocks/ai-tasks/index.js +6 -6
  75. package/dist/blocks/announcements/index.d.ts +4 -4
  76. package/dist/blocks/announcements/index.js +2 -2
  77. package/dist/blocks/announcements/react/index.d.ts +1 -1
  78. package/dist/blocks/announcements/react/index.js +1 -1
  79. package/dist/blocks/announcements/solid/index.d.ts +2 -2
  80. package/dist/blocks/announcements/svelte/index.d.ts +2 -2
  81. package/dist/blocks/announcements/vue/index.d.ts +2 -2
  82. package/dist/blocks/api-keys/index.d.ts +6 -6
  83. package/dist/blocks/api-keys/index.js +3 -3
  84. package/dist/blocks/api-keys/react/index.d.ts +1 -1
  85. package/dist/blocks/api-keys/react/index.js +2 -2
  86. package/dist/blocks/api-keys/react/server.d.ts +1 -1
  87. package/dist/blocks/api-keys/solid/index.d.ts +2 -2
  88. package/dist/blocks/api-keys/solid/index.js +1 -1
  89. package/dist/blocks/api-keys/svelte/index.d.ts +2 -2
  90. package/dist/blocks/api-keys/svelte/index.js +1 -1
  91. package/dist/blocks/api-keys/vue/index.d.ts +2 -2
  92. package/dist/blocks/api-keys/vue/index.js +1 -1
  93. package/dist/blocks/approvals/index.d.ts +4 -4
  94. package/dist/blocks/approvals/index.js +5 -5
  95. package/dist/blocks/attachments/index.d.ts +4 -4
  96. package/dist/blocks/attachments/index.js +2 -2
  97. package/dist/blocks/audit/index.d.ts +5 -5
  98. package/dist/blocks/audit/index.js +4 -4
  99. package/dist/blocks/audit/react/index.d.ts +1 -1
  100. package/dist/blocks/audit/react/index.js +1 -1
  101. package/dist/blocks/audit/react/server.d.ts +1 -1
  102. package/dist/blocks/audit/solid/index.d.ts +2 -2
  103. package/dist/blocks/audit/svelte/index.d.ts +2 -2
  104. package/dist/blocks/audit/vue/index.d.ts +2 -2
  105. package/dist/blocks/billing/index.d.ts +9 -9
  106. package/dist/blocks/billing/index.js +7 -7
  107. package/dist/blocks/billing/react/index.d.ts +1 -1
  108. package/dist/blocks/billing/react/index.js +1 -1
  109. package/dist/blocks/billing/react/server.d.ts +1 -1
  110. package/dist/blocks/billing/solid/index.d.ts +2 -2
  111. package/dist/blocks/billing/solid/index.js +1 -1
  112. package/dist/blocks/billing/svelte/index.d.ts +2 -2
  113. package/dist/blocks/billing/svelte/index.js +1 -1
  114. package/dist/blocks/billing/vue/index.d.ts +2 -2
  115. package/dist/blocks/billing/vue/index.js +1 -1
  116. package/dist/blocks/bookings/index.d.ts +3 -3
  117. package/dist/blocks/bookings/index.js +2 -2
  118. package/dist/blocks/bookings/react/index.d.ts +1 -1
  119. package/dist/blocks/bookings/react/index.js +1 -1
  120. package/dist/blocks/bookings/solid/index.d.ts +2 -2
  121. package/dist/blocks/bookings/svelte/index.d.ts +2 -2
  122. package/dist/blocks/bookings/vue/index.d.ts +2 -2
  123. package/dist/blocks/bulk/index.d.ts +9 -5
  124. package/dist/blocks/bulk/index.js +4 -4
  125. package/dist/blocks/calendar/index.d.ts +3 -3
  126. package/dist/blocks/calendar/index.js +2 -2
  127. package/dist/blocks/calendar/react/index.d.ts +1 -1
  128. package/dist/blocks/calendar/react/index.js +1 -1
  129. package/dist/blocks/calendar/solid/index.d.ts +2 -2
  130. package/dist/blocks/calendar/svelte/index.d.ts +2 -2
  131. package/dist/blocks/calendar/vue/index.d.ts +2 -2
  132. package/dist/blocks/catalog/index.d.ts +7 -7
  133. package/dist/blocks/catalog/index.js +7 -7
  134. package/dist/blocks/collections/index.d.ts +6 -6
  135. package/dist/blocks/collections/index.js +6 -6
  136. package/dist/blocks/comments/index.d.ts +4 -4
  137. package/dist/blocks/comments/index.js +3 -3
  138. package/dist/blocks/comments/react/index.d.ts +1 -1
  139. package/dist/blocks/comments/react/index.js +2 -2
  140. package/dist/blocks/comments/react/server.d.ts +1 -1
  141. package/dist/blocks/comments/solid/index.d.ts +2 -2
  142. package/dist/blocks/comments/solid/index.js +1 -1
  143. package/dist/blocks/comments/svelte/index.d.ts +2 -2
  144. package/dist/blocks/comments/svelte/index.js +1 -1
  145. package/dist/blocks/comments/vue/index.d.ts +2 -2
  146. package/dist/blocks/comments/vue/index.js +1 -1
  147. package/dist/blocks/connectors/index.d.ts +4 -4
  148. package/dist/blocks/connectors/index.js +6 -6
  149. package/dist/blocks/custom-fields/index.d.ts +4 -4
  150. package/dist/blocks/custom-fields/index.js +5 -5
  151. package/dist/blocks/data-lifecycle/index.d.ts +8 -8
  152. package/dist/blocks/data-lifecycle/index.js +5 -5
  153. package/dist/blocks/deals/index.d.ts +7 -7
  154. package/dist/blocks/deals/index.js +8 -8
  155. package/dist/blocks/documents/index.d.ts +4 -4
  156. package/dist/blocks/documents/index.js +3 -3
  157. package/dist/blocks/domains/index.d.ts +6 -6
  158. package/dist/blocks/domains/index.js +5 -5
  159. package/dist/blocks/drive/index.d.ts +7 -7
  160. package/dist/blocks/drive/index.js +6 -6
  161. package/dist/blocks/employees/index.d.ts +7 -7
  162. package/dist/blocks/employees/index.js +7 -7
  163. package/dist/blocks/engagements/index.d.ts +6 -6
  164. package/dist/blocks/engagements/index.js +5 -5
  165. package/dist/blocks/entitlements/index.d.ts +6 -6
  166. package/dist/blocks/entitlements/index.js +1 -1
  167. package/dist/blocks/entitlements/react/index.d.ts +2 -2
  168. package/dist/blocks/entitlements/solid/index.d.ts +2 -2
  169. package/dist/blocks/entitlements/svelte/index.d.ts +2 -2
  170. package/dist/blocks/entitlements/vue/index.d.ts +2 -2
  171. package/dist/blocks/flags/index.d.ts +5 -5
  172. package/dist/blocks/flags/index.js +6 -6
  173. package/dist/blocks/forms/index.d.ts +6 -6
  174. package/dist/blocks/forms/index.js +5 -5
  175. package/dist/blocks/forms/react/index.d.ts +1 -1
  176. package/dist/blocks/forms/solid/index.d.ts +2 -2
  177. package/dist/blocks/forms/svelte/index.d.ts +2 -2
  178. package/dist/blocks/forms/vue/index.d.ts +2 -2
  179. package/dist/blocks/hiring/index.d.ts +6 -6
  180. package/dist/blocks/hiring/index.js +6 -6
  181. package/dist/blocks/identities/index.d.ts +5 -5
  182. package/dist/blocks/identities/index.js +3 -3
  183. package/dist/blocks/imports/index.d.ts +74 -6
  184. package/dist/blocks/imports/index.js +111 -7
  185. package/dist/blocks/inbox/index.d.ts +5 -5
  186. package/dist/blocks/inbox/index.js +3 -3
  187. package/dist/blocks/inbox/react/index.d.ts +2 -2
  188. package/dist/blocks/inbox/react/server.d.ts +2 -2
  189. package/dist/blocks/inbox/solid/index.d.ts +2 -2
  190. package/dist/blocks/inbox/svelte/index.d.ts +2 -2
  191. package/dist/blocks/inbox/vue/index.d.ts +2 -2
  192. package/dist/blocks/index.d.ts +26 -7
  193. package/dist/blocks/index.js +4 -4
  194. package/dist/blocks/inventory/index.d.ts +6 -6
  195. package/dist/blocks/inventory/index.js +5 -5
  196. package/dist/blocks/invoices/index.d.ts +6 -6
  197. package/dist/blocks/invoices/index.js +8 -8
  198. package/dist/blocks/jobs/index.d.ts +6 -6
  199. package/dist/blocks/jobs/index.js +8 -8
  200. package/dist/blocks/knowledge/index.d.ts +3 -3
  201. package/dist/blocks/knowledge/index.js +2 -2
  202. package/dist/blocks/leave/index.d.ts +5 -5
  203. package/dist/blocks/leave/index.js +4 -4
  204. package/dist/blocks/memory/index.d.ts +4 -4
  205. package/dist/blocks/memory/index.js +5 -5
  206. package/dist/blocks/metrics/index.d.ts +6 -6
  207. package/dist/blocks/metrics/index.js +5 -5
  208. package/dist/blocks/mfa/index.d.ts +2 -2
  209. package/dist/blocks/mfa/index.js +1 -1
  210. package/dist/blocks/mfa/react/index.d.ts +1 -1
  211. package/dist/blocks/mfa/react/index.js +1 -1
  212. package/dist/blocks/mfa/react/server.d.ts +1 -1
  213. package/dist/blocks/mfa/react/server.js +1 -1
  214. package/dist/blocks/mfa/solid/index.d.ts +2 -2
  215. package/dist/blocks/mfa/solid/index.js +1 -1
  216. package/dist/blocks/mfa/svelte/index.d.ts +2 -2
  217. package/dist/blocks/mfa/svelte/index.js +1 -1
  218. package/dist/blocks/mfa/vue/index.d.ts +2 -2
  219. package/dist/blocks/mfa/vue/index.js +1 -1
  220. package/dist/blocks/notifications/index.d.ts +9 -9
  221. package/dist/blocks/notifications/index.js +9 -9
  222. package/dist/blocks/notifications/react/index.d.ts +1 -1
  223. package/dist/blocks/notifications/react/server.d.ts +1 -1
  224. package/dist/blocks/notifications/solid/index.d.ts +2 -2
  225. package/dist/blocks/notifications/svelte/index.d.ts +2 -2
  226. package/dist/blocks/notifications/vue/index.d.ts +2 -2
  227. package/dist/blocks/number-sequences/index.d.ts +10 -4
  228. package/dist/blocks/number-sequences/index.js +22 -11
  229. package/dist/blocks/oauth-server/index.d.ts +5 -5
  230. package/dist/blocks/oauth-server/index.js +3 -3
  231. package/dist/blocks/onboarding/index.d.ts +3 -3
  232. package/dist/blocks/onboarding/index.js +2 -2
  233. package/dist/blocks/onboarding/react/index.d.ts +1 -1
  234. package/dist/blocks/onboarding/react/index.js +1 -1
  235. package/dist/blocks/onboarding/react/server.d.ts +1 -1
  236. package/dist/blocks/onboarding/solid/index.d.ts +2 -2
  237. package/dist/blocks/onboarding/svelte/index.d.ts +2 -2
  238. package/dist/blocks/onboarding/vue/index.d.ts +2 -2
  239. package/dist/blocks/orders/index.d.ts +6 -6
  240. package/dist/blocks/orders/index.js +9 -9
  241. package/dist/blocks/organizations/index.d.ts +5 -5
  242. package/dist/blocks/organizations/index.js +4 -4
  243. package/dist/blocks/organizations/react/index.d.ts +1 -1
  244. package/dist/blocks/organizations/react/index.js +2 -2
  245. package/dist/blocks/organizations/react/server.d.ts +1 -1
  246. package/dist/blocks/organizations/solid/index.d.ts +2 -2
  247. package/dist/blocks/organizations/solid/index.js +1 -1
  248. package/dist/blocks/organizations/svelte/index.d.ts +2 -2
  249. package/dist/blocks/organizations/svelte/index.js +1 -1
  250. package/dist/blocks/organizations/vue/index.d.ts +2 -2
  251. package/dist/blocks/organizations/vue/index.js +1 -1
  252. package/dist/blocks/outbox/index.d.ts +4 -4
  253. package/dist/blocks/outbox/index.js +5 -5
  254. package/dist/blocks/parties/index.d.ts +7 -7
  255. package/dist/blocks/parties/index.js +4 -4
  256. package/dist/blocks/pipelines/index.d.ts +6 -6
  257. package/dist/blocks/pipelines/index.js +7 -7
  258. package/dist/blocks/profiles/index.d.ts +4 -4
  259. package/dist/blocks/profiles/index.js +5 -5
  260. package/dist/blocks/promotions/index.d.ts +5 -5
  261. package/dist/blocks/promotions/index.js +6 -6
  262. package/dist/blocks/push/index.d.ts +6 -6
  263. package/dist/blocks/push/index.js +4 -4
  264. package/dist/blocks/quotes/index.d.ts +6 -6
  265. package/dist/blocks/quotes/index.js +8 -8
  266. package/dist/blocks/rank/index.d.ts +4 -4
  267. package/dist/blocks/rank/index.js +4 -4
  268. package/dist/blocks/reactions/index.d.ts +4 -4
  269. package/dist/blocks/reactions/index.js +2 -2
  270. package/dist/blocks/reactions/react/index.d.ts +1 -1
  271. package/dist/blocks/reactions/react/index.js +1 -1
  272. package/dist/blocks/reactions/solid/index.d.ts +2 -2
  273. package/dist/blocks/reactions/solid/index.js +1 -1
  274. package/dist/blocks/reactions/svelte/index.d.ts +2 -2
  275. package/dist/blocks/reactions/svelte/index.js +1 -1
  276. package/dist/blocks/reactions/vue/index.d.ts +2 -2
  277. package/dist/blocks/reactions/vue/index.js +1 -1
  278. package/dist/blocks/relations/index.d.ts +5 -5
  279. package/dist/blocks/relations/index.js +5 -5
  280. package/dist/blocks/reminders/index.d.ts +7 -7
  281. package/dist/blocks/reminders/index.js +6 -6
  282. package/dist/blocks/reviews/index.d.ts +5 -5
  283. package/dist/blocks/reviews/index.js +5 -5
  284. package/dist/blocks/rules/index.d.ts +75 -9
  285. package/dist/blocks/rules/index.js +115 -6
  286. package/dist/blocks/rules/react/index.d.ts +2 -2
  287. package/dist/blocks/rules/react/index.js +2 -2
  288. package/dist/blocks/rules/solid/index.d.ts +2 -2
  289. package/dist/blocks/rules/solid/index.js +1 -1
  290. package/dist/blocks/rules/svelte/index.d.ts +2 -2
  291. package/dist/blocks/rules/svelte/index.js +1 -1
  292. package/dist/blocks/rules/vue/index.d.ts +2 -2
  293. package/dist/blocks/rules/vue/index.js +1 -1
  294. package/dist/blocks/saved-views/index.d.ts +3 -3
  295. package/dist/blocks/saved-views/index.js +2 -2
  296. package/dist/blocks/saved-views/react/index.d.ts +1 -1
  297. package/dist/blocks/saved-views/react/index.js +1 -1
  298. package/dist/blocks/saved-views/react/server.d.ts +1 -1
  299. package/dist/blocks/saved-views/solid/index.d.ts +2 -2
  300. package/dist/blocks/saved-views/solid/index.js +1 -1
  301. package/dist/blocks/saved-views/svelte/index.d.ts +2 -2
  302. package/dist/blocks/saved-views/svelte/index.js +1 -1
  303. package/dist/blocks/saved-views/vue/index.d.ts +2 -2
  304. package/dist/blocks/saved-views/vue/index.js +1 -1
  305. package/dist/blocks/search/index.d.ts +4 -4
  306. package/dist/blocks/search/index.js +3 -3
  307. package/dist/blocks/search/react/index.d.ts +1 -1
  308. package/dist/blocks/search/react/index.js +1 -1
  309. package/dist/blocks/search/react/server.d.ts +1 -1
  310. package/dist/blocks/search/solid/index.d.ts +2 -2
  311. package/dist/blocks/search/svelte/index.d.ts +2 -2
  312. package/dist/blocks/search/vue/index.d.ts +2 -2
  313. package/dist/blocks/service-principals/index.d.ts +5 -5
  314. package/dist/blocks/service-principals/index.js +5 -5
  315. package/dist/blocks/sessions/index.d.ts +2 -2
  316. package/dist/blocks/sessions/index.js +2 -2
  317. package/dist/blocks/sessions/react/index.d.ts +1 -1
  318. package/dist/blocks/sessions/react/index.js +1 -1
  319. package/dist/blocks/sessions/react/server.d.ts +1 -1
  320. package/dist/blocks/sessions/solid/index.d.ts +2 -2
  321. package/dist/blocks/sessions/solid/index.js +1 -1
  322. package/dist/blocks/sessions/svelte/index.d.ts +2 -2
  323. package/dist/blocks/sessions/svelte/index.js +1 -1
  324. package/dist/blocks/sessions/vue/index.d.ts +2 -2
  325. package/dist/blocks/sessions/vue/index.js +1 -1
  326. package/dist/blocks/settings/index.d.ts +4 -4
  327. package/dist/blocks/settings/index.js +3 -3
  328. package/dist/blocks/settings/react/index.d.ts +1 -1
  329. package/dist/blocks/settings/react/index.js +2 -2
  330. package/dist/blocks/settings/react/server.d.ts +1 -1
  331. package/dist/blocks/settings/solid/index.d.ts +2 -2
  332. package/dist/blocks/settings/solid/index.js +1 -1
  333. package/dist/blocks/settings/svelte/index.d.ts +2 -2
  334. package/dist/blocks/settings/svelte/index.js +1 -1
  335. package/dist/blocks/settings/vue/index.d.ts +2 -2
  336. package/dist/blocks/settings/vue/index.js +1 -1
  337. package/dist/blocks/share-links/index.d.ts +12 -5
  338. package/dist/blocks/share-links/index.js +9 -6
  339. package/dist/blocks/shared-signals/index.d.ts +7 -7
  340. package/dist/blocks/shared-signals/index.js +4 -4
  341. package/dist/blocks/signing-keys/index.d.ts +4 -4
  342. package/dist/blocks/signing-keys/index.js +4 -4
  343. package/dist/blocks/sla/index.d.ts +6 -6
  344. package/dist/blocks/sla/index.js +5 -5
  345. package/dist/blocks/sso/index.d.ts +6 -6
  346. package/dist/blocks/sso/index.js +4 -4
  347. package/dist/blocks/state-machine/index.d.ts +4 -4
  348. package/dist/blocks/state-machine/index.js +3 -3
  349. package/dist/blocks/tags/index.d.ts +3 -3
  350. package/dist/blocks/tags/index.js +3 -3
  351. package/dist/blocks/tags/react/index.d.ts +1 -1
  352. package/dist/blocks/tags/react/index.js +2 -2
  353. package/dist/blocks/tags/react/server.d.ts +1 -1
  354. package/dist/blocks/tags/solid/index.d.ts +2 -2
  355. package/dist/blocks/tags/solid/index.js +1 -1
  356. package/dist/blocks/tags/svelte/index.d.ts +2 -2
  357. package/dist/blocks/tags/svelte/index.js +1 -1
  358. package/dist/blocks/tags/vue/index.d.ts +2 -2
  359. package/dist/blocks/tags/vue/index.js +1 -1
  360. package/dist/blocks/targets/index.d.ts +4 -4
  361. package/dist/blocks/targets/index.js +5 -5
  362. package/dist/blocks/teams/index.d.ts +4 -4
  363. package/dist/blocks/teams/index.js +4 -4
  364. package/dist/blocks/templates/index.d.ts +7 -7
  365. package/dist/blocks/templates/index.js +6 -6
  366. package/dist/blocks/time-tracking/index.d.ts +6 -6
  367. package/dist/blocks/time-tracking/index.js +7 -7
  368. package/dist/blocks/trash/index.d.ts +5 -5
  369. package/dist/blocks/trash/index.js +4 -4
  370. package/dist/blocks/undo/index.d.ts +4 -4
  371. package/dist/blocks/undo/index.js +1 -1
  372. package/dist/blocks/undo/react/index.d.ts +1 -1
  373. package/dist/blocks/undo/react/server.d.ts +1 -1
  374. package/dist/blocks/undo/solid/index.d.ts +2 -2
  375. package/dist/blocks/undo/svelte/index.d.ts +2 -2
  376. package/dist/blocks/undo/vue/index.d.ts +2 -2
  377. package/dist/blocks/usage/index.d.ts +4 -4
  378. package/dist/blocks/usage/index.js +2 -2
  379. package/dist/blocks/usage/react/index.d.ts +1 -1
  380. package/dist/blocks/usage/react/index.js +1 -1
  381. package/dist/blocks/usage/react/server.d.ts +1 -1
  382. package/dist/blocks/usage/solid/index.d.ts +2 -2
  383. package/dist/blocks/usage/svelte/index.d.ts +2 -2
  384. package/dist/blocks/usage/vue/index.d.ts +2 -2
  385. package/dist/blocks/versions/index.d.ts +10 -6
  386. package/dist/blocks/versions/index.js +18 -13
  387. package/dist/blocks/waitlist/index.d.ts +5 -5
  388. package/dist/blocks/waitlist/index.js +5 -5
  389. package/dist/blocks/webhooks/index.d.ts +13 -13
  390. package/dist/blocks/webhooks/index.js +10 -10
  391. package/dist/blocks/work-items/index.d.ts +7 -7
  392. package/dist/blocks/work-items/index.js +5 -5
  393. package/dist/blocks/workflow-builder/index.d.ts +7 -7
  394. package/dist/blocks/workflow-builder/index.js +2 -2
  395. package/dist/blocks/workflow-builder/react/index.d.ts +2 -2
  396. package/dist/blocks/workflow-builder/react/index.js +2 -2
  397. package/dist/blocks/workflow-builder/solid/index.d.ts +2 -2
  398. package/dist/blocks/workflow-builder/svelte/index.d.ts +2 -2
  399. package/dist/blocks/workflow-builder/vue/index.d.ts +2 -2
  400. package/dist/blocks/workflows/index.d.ts +5 -5
  401. package/dist/blocks/workflows/index.js +1 -1
  402. package/dist/blocks/workflows/react/index.d.ts +2 -2
  403. package/dist/blocks/workflows/react/index.js +1 -1
  404. package/dist/blocks/workflows/solid/index.d.ts +2 -2
  405. package/dist/blocks/workflows/svelte/index.d.ts +2 -2
  406. package/dist/blocks/workflows/vue/index.d.ts +2 -2
  407. package/dist/{bookings-0XnhHNLM.js → bookings-EJAVAuVz.js} +4 -4
  408. package/dist/{build-Cx08LOT7.js → build-6jmaPAgx.js} +1 -1
  409. package/dist/{calendar-DcFrpSOy.js → calendar-1J1E5dLq.js} +4 -4
  410. package/dist/chat-sdk/index.d.ts +4 -4
  411. package/dist/chat-sdk/index.js +2 -2
  412. package/dist/chat-sdk/react/index.d.ts +2 -2
  413. package/dist/chat-sdk/react/server.d.ts +2 -2
  414. package/dist/cli/{add-Bd5M6uEZ.js → add-BhI_nXAo.js} +2 -2
  415. package/dist/cli/{add-B0zoJUYX.js → add-CUS0AiBh.js} +6 -6
  416. package/dist/cli/add-ojbcMxyp.js +1 -0
  417. package/dist/cli/adopt-D0ASVx2G.js +1 -0
  418. package/dist/cli/{adopt-CebmlHL-.js → adopt-DwcU6CJd.js} +27 -8
  419. package/dist/cli/{agent-CCt_aXpJ.js → agent-CCrTYK3W.js} +1 -1
  420. package/dist/cli/{apply-Dxk8AUNU.js → apply-DBXC0Z5I.js} +40 -10
  421. package/dist/cli/bin.js +1 -1
  422. package/dist/cli/{blocks-Dq25D80b.js → blocks-B15ltTFn.js} +1 -1
  423. package/dist/cli/{blocks-Bzz326nn.js → blocks-BXeqIzWN.js} +1 -1
  424. package/dist/cli/{cache-Cx6qlRDR.js → cache-CPBYJAkb.js} +2 -2
  425. package/dist/cli/{codemod-woL4cVe0.js → codemod-CrI33UR2.js} +2 -2
  426. package/dist/cli/{command-CK9Cn8HV.js → command-D_HI1mp1.js} +17 -0
  427. package/dist/cli/{completion-CWoDmFZr.js → completion-DzYo025z.js} +2 -2
  428. package/dist/cli/{completion-J3dqnNoW.js → completion-En43UcyJ.js} +2 -2
  429. package/dist/cli/{completion-BO5UK6bG.js → completion-Vry-Wjw8.js} +1 -1
  430. package/dist/cli/{config-CLHpTk9Y.js → config-Bi_UBxXl.js} +40 -10
  431. package/dist/cli/{config-C1d-mbUA.js → config-DsqQr5z3.js} +1 -1
  432. package/dist/cli/{config-MuKY9kUj.js → config-DyJgo2d9.js} +1 -1
  433. package/dist/cli/{doctor-SGw36h1D.js → doctor-wACp5w6N.js} +44 -342
  434. package/dist/cli/{emit-ZAYeh4Yn.js → emit-j0zZ6NE_.js} +21 -2
  435. package/dist/cli/{env-CVXvJoLP.js → env-2v9JrxSr.js} +3 -3
  436. package/dist/cli/{env-DMw_MBe5.js → env-Cf5OTqbK.js} +92 -1
  437. package/dist/cli/{env-DJ4ZaJpe.js → env-Ch99nTQw.js} +1 -1
  438. package/dist/cli/env-DkBe35Rv.js +1 -0
  439. package/dist/cli/{gen-B344S1Oy.js → gen-BhquLu7l.js} +11 -11
  440. package/dist/cli/index.d.ts +6 -4
  441. package/dist/cli/index.js +7 -7
  442. package/dist/cli/{init-B1dL-RZL.js → init-BwLTO6XG.js} +15 -8
  443. package/dist/cli/{introspect-BPcFi8ow.js → introspect-B-gXAIqs.js} +3 -3
  444. package/dist/cli/{keys-jsxCNJdz.js → keys-hwtdwdkT.js} +1 -1
  445. package/dist/cli/live-BFfYoE0_.js +329 -0
  446. package/dist/cli/mcp-Bdm2oGmL.js +237 -0
  447. package/dist/cli/{metadata-CxBZo4KM.js → metadata-DikbSOE0.js} +2 -2
  448. package/dist/cli/migration-safety-LaGVPPuD.js +206 -0
  449. package/dist/cli/{module-migration-YFFdWC5X.js → module-migration-CLkZ8jpw.js} +1 -1
  450. package/dist/cli/{moved-D9OT_Uyy.js → moved-B7UFO_OM.js} +1 -1
  451. package/dist/cli/{parse-DE59XyWt.js → parse-CwV5a6dA.js} +1 -1
  452. package/dist/cli/{preset-DmcC4nWE.js → preset-DQ1DxMtI.js} +1 -1
  453. package/dist/cli/{run-CM_2g6KQ.js → run-BLJj7SuM.js} +43 -42
  454. package/dist/cli/{run-DaHfUUO9.js → run-DliGNdjI.js} +38 -70
  455. package/dist/cli/{scaffold-CFdDq36-.js → scaffold-6bv24GSP.js} +4 -4
  456. package/dist/cli/{scaffold-Dsjr7sOT.js → scaffold-DUz5fa-k.js} +1 -1
  457. package/dist/cli/{seed-DldDdXWO.js → seed-CIJaL1Ao.js} +4 -4
  458. package/dist/cli/seed-ClGWseBT.js +1 -0
  459. package/dist/cli/shared-CNcvDOLt.js +145 -0
  460. package/dist/cli/{skills-v34NDb2D.js → skills-CaxIQhzW.js} +1 -1
  461. package/dist/cli/{snapshot-DAxLi4hO.js → snapshot-Dvcx0BSl.js} +3 -3
  462. package/dist/cli/{source-args-0I9zylYy.js → source-args-BNhagtpw.js} +1 -1
  463. package/dist/cli/{spec-CaaSOYZS.js → spec-BewE6r6J.js} +5 -5
  464. package/dist/cli/{spec-De0cfceR.js → spec-DRDaIq8f.js} +1 -1
  465. package/dist/cli/{sql-DDLWwzh9.js → sql-BBkchli4.js} +5 -5
  466. package/dist/cli/{sql-0I1EQ3JG.js → sql-BCQt5TDs.js} +2 -2
  467. package/dist/cli/{stack-status-CRanl-CN.js → stack-status-LeEoCtV1.js} +1 -1
  468. package/dist/cli/{sync-DFx-6t5n.js → sync-CJ-ft-tl.js} +2 -2
  469. package/dist/cli/{topics-GJuIDwlY.js → topics-BBE1-Vrg.js} +1 -1
  470. package/dist/cli/{version-DNRW4DAP.js → version-D1wM9DNb.js} +1 -1
  471. package/dist/cli/{write-BS6F3Yvz.js → write-Dp1XlAVM.js} +24 -6
  472. package/dist/client/index.d.ts +5 -5
  473. package/dist/client/index.js +2 -2
  474. package/dist/client/native/index.d.ts +5 -5
  475. package/dist/client/native/index.js +2 -2
  476. package/dist/{client-BYaOGCOG.js → client-13Ii0c0P.js} +1 -1
  477. package/dist/{client-BxnLb9bz.d.ts → client-9zIKhf5D.d.ts} +2 -2
  478. package/dist/{client-PGRk3DGz.js → client-AxwF58Eo.js} +1 -1
  479. package/dist/{client-iDLLvGR4.d.ts → client-B0rvMvA8.d.ts} +3 -3
  480. package/dist/{client-ysNShuJZ.d.ts → client-B5nnqDmz.d.ts} +2 -2
  481. package/dist/{client-VvY0K3wr.d.ts → client-B7LCXnnY.d.ts} +5 -5
  482. package/dist/{client-D5CZ2a34.d.ts → client-B9H4BZJh.d.ts} +11 -11
  483. package/dist/{client-e-hFkLUf.d.ts → client-BLKpcAs0.d.ts} +2 -2
  484. package/dist/{client-DAHsEOVV.d.ts → client-BO9fQgBB.d.ts} +3 -3
  485. package/dist/{client-LLmgiCwJ.d.ts → client-B_r4denm.d.ts} +1 -1
  486. package/dist/{client-Tc47rlSe.d.ts → client-BaynD5V-.d.ts} +45 -7
  487. package/dist/{client-Co6BPmvr.d.ts → client-BtBkVSk2.d.ts} +3 -3
  488. package/dist/{client-xkSCp9hN.d.ts → client-ByGlM0YF.d.ts} +3 -3
  489. package/dist/{client-BAcILZOf.d.ts → client-C3dLIsJv.d.ts} +6 -6
  490. package/dist/{client-CFdMJ1h9.d.ts → client-C597NIlL.d.ts} +4 -4
  491. package/dist/{client-CoVGPi0c.js → client-CFeWXNXy.js} +2 -2
  492. package/dist/{client-Cmensu7l.d.ts → client-Cgxj38RS.d.ts} +6 -6
  493. package/dist/{client-WAdEBBrH.d.ts → client-CjyTNdt1.d.ts} +4 -4
  494. package/dist/{client-Cdedx_lw.js → client-CmHsfDHU.js} +5 -5
  495. package/dist/{client-Lx3mlvKO.d.ts → client-CpMv4-v5.d.ts} +4 -4
  496. package/dist/{client-DjTRlN3a.d.ts → client-CsRpAyIv.d.ts} +1 -1
  497. package/dist/{client-BUGIS__1.js → client-D0502FgY.js} +6 -6
  498. package/dist/{client-CiGjS6us.js → client-D727oIVC.js} +3 -3
  499. package/dist/{client-CHmjaI0j.d.ts → client-D9zBl9PT.d.ts} +6 -6
  500. package/dist/{client-WHeWTNVL.d.ts → client-DR_YEGnc.d.ts} +1 -1
  501. package/dist/{client-DIrCmOXz.d.ts → client-DZXFDaQE.d.ts} +3 -3
  502. package/dist/{client-hyP_nS5R.d.ts → client-Diu2lPbg.d.ts} +4 -4
  503. package/dist/{client-BVZtq_rQ.d.ts → client-Dk8gY9hi.d.ts} +2 -2
  504. package/dist/{client-B7QVIrJS.d.ts → client-Fi8CoJcs.d.ts} +10 -10
  505. package/dist/{client-DdfSIZ3M.d.ts → client-LVa6yC9u.d.ts} +4 -4
  506. package/dist/{client-ClZ0D-if.d.ts → client-WXJwUhr1.d.ts} +4 -4
  507. package/dist/{client-BOT2KVIp.js → client-fpvgtQKE.js} +1 -1
  508. package/dist/{client-C9QrWrnt.js → client-iB5axfa0.js} +2 -2
  509. package/dist/{client-01MAuqzW.js → client-jvtwGFy4.js} +1 -1
  510. package/dist/{client-CilSKXNu.js → client-kI6vCKVI.js} +1 -1
  511. package/dist/{client-CzI4QpG3.d.ts → client-kKdkLGPB.d.ts} +1 -1
  512. package/dist/{client-i8glKhxh.js → client-rp7YfOg1.js} +1 -1
  513. package/dist/{cloud-event-5rCEzIgK.d.ts → cloud-event-bwsBwVNG.d.ts} +1 -1
  514. package/dist/{codecs-YAekuQ08.js → codecs-C7E_OoiC.js} +3 -3
  515. package/dist/{codegen-DeoSt1mi.d.ts → codegen-2m4SKVdi.d.ts} +97 -14
  516. package/dist/{comments-D7sbd0xG.js → comments-N7Bi-oTW.js} +4 -4
  517. package/dist/commerce/index.js +3 -3
  518. package/dist/{compiler-BVxepAY0.d.ts → compiler-C6E3WwIi.d.ts} +2 -2
  519. package/dist/{compose-Djntdacs.js → compose-CO_cljl3.js} +1 -1
  520. package/dist/{composite-M6zPs1Xm.js → composite-CPV0thLs.js} +2 -2
  521. package/dist/{composite-djtGy6bz.d.ts → composite-DMMA_Whg.d.ts} +6 -6
  522. package/dist/config/index.d.ts +6 -6
  523. package/dist/config/index.js +4 -4
  524. package/dist/{config-C4MozTD7.js → config-C4RQDF6t.js} +4 -0
  525. package/dist/{config-BA1K4OPk.js → config-CkyahUjo.js} +4 -3
  526. package/dist/{connectors-CjD-R2ks.d.ts → connectors-CZdfZcIg.d.ts} +4 -4
  527. package/dist/{context-1sSWcd7_.d.ts → context-CCfX2szU.d.ts} +15 -3
  528. package/dist/{controller-D845qKh2.d.ts → controller-CCb9tHw_.d.ts} +1 -1
  529. package/dist/create/index.d.ts +597 -0
  530. package/dist/create/index.js +2049 -0
  531. package/dist/create/lite/index.d.ts +85 -0
  532. package/dist/create/lite/index.js +126 -0
  533. package/dist/create/supabase/index.d.ts +68 -0
  534. package/dist/create/supabase/index.js +312 -0
  535. package/dist/credentials/index.d.ts +4 -4
  536. package/dist/credentials/index.js +4 -4
  537. package/dist/{cron-route-CoL-By8Z.js → cron-route-BsgbJ-g4.js} +1 -1
  538. package/dist/{define-B2ln373W.js → define-CMcokcZz.js} +5 -5
  539. package/dist/{define-DxHHbNEb.d.ts → define-DXTC706J.d.ts} +6 -6
  540. package/dist/{define-block-CLZMEFeK.d.ts → define-block-BlHQxDIQ.d.ts} +6 -6
  541. package/dist/{documents-CWn2mtYf.d.ts → documents-BYM2viS0.d.ts} +3 -3
  542. package/dist/edge/index.d.ts +9 -9
  543. package/dist/edge/index.js +9 -9
  544. package/dist/elysia/index.d.ts +1 -1
  545. package/dist/elysia/index.js +1 -1
  546. package/dist/{embeddings-C2S14foD.d.ts → embeddings-Da0w4A_0.d.ts} +1 -1
  547. package/dist/{ended-nIdGCHxk.d.ts → ended-EcTtzzQJ.d.ts} +2 -2
  548. package/dist/{entitlements-BvU5dLpW.js → entitlements-AmYp2KHX.js} +3 -3
  549. package/dist/{entitlements-CbzCKalR.d.ts → entitlements-Bn7BTnbg.d.ts} +2 -2
  550. package/dist/env/index.d.ts +1 -1
  551. package/dist/env/index.js +6 -1
  552. package/dist/{envelope-CHYk5MXU.js → envelope--7d0Q3Se.js} +1 -1
  553. package/dist/{errors-PIpcoe4z.js → errors-7MqM7bbV.js} +1 -1
  554. package/dist/eve/index.d.ts +5 -5
  555. package/dist/{eve-DUF70Vgi.d.ts → eve-BcEr_hPo.d.ts} +2 -2
  556. package/dist/events/index.d.ts +3 -3
  557. package/dist/{events-CTreRrgP.d.ts → events-CtAHxPal.d.ts} +2 -2
  558. package/dist/{executor-DoE-5iM8.d.ts → executor-BicyP8Nl.d.ts} +1 -1
  559. package/dist/{executor-BINiCFNp.d.ts → executor-CHRwEYqt.d.ts} +1 -1
  560. package/dist/{executor-DKrZr3AC.d.ts → executor-CIxyatuB.d.ts} +2 -2
  561. package/dist/{executor-BXSHYyW2.js → executor-Cex-1PFp.js} +3 -3
  562. package/dist/{executor-BBHgjUJu.d.ts → executor-DzJQVTE2.d.ts} +1 -1
  563. package/dist/{executor-D1kYY5BA.js → executor-aKUo_Xyb.js} +2 -2
  564. package/dist/expo/index.d.ts +4 -4
  565. package/dist/expo/index.js +3 -3
  566. package/dist/expo-sqlite/index.d.ts +3 -3
  567. package/dist/expo-sqlite/index.js +2 -2
  568. package/dist/{field-errors-CWXN_h_E.d.ts → field-errors-nFnYWvB0.d.ts} +6 -6
  569. package/dist/{filter-evaluate-CjcFq0RT.d.ts → filter-evaluate-CEm52E5s.d.ts} +1 -1
  570. package/dist/{filter-query-BKmRYrTE.d.ts → filter-query-D3wOD1P_.d.ts} +1 -1
  571. package/dist/{flags-XAOsdNAc.js → flags-CtSrkVuW.js} +1 -1
  572. package/dist/{flags-D_D1jAHB.d.ts → flags-Dz5PIzFU.d.ts} +2 -2
  573. package/dist/flags-sdk/index.d.ts +1 -1
  574. package/dist/flags-sdk/index.js +2 -2
  575. package/dist/{options-BqO9GYig.js → form-definition-GVZTILhS.js} +13 -13
  576. package/dist/{framework-DG5Bv39u.d.ts → framework-C2oL4OaO.d.ts} +6 -6
  577. package/dist/{framework-INbjMZX1.js → framework-Cfm0IspZ.js} +1 -1
  578. package/dist/{gateway-Cup00l0w.d.ts → gateway-CJL6ZG17.d.ts} +3 -3
  579. package/dist/h3/index.d.ts +1 -1
  580. package/dist/h3/index.js +1 -1
  581. package/dist/h3/v1/index.d.ts +1 -1
  582. package/dist/h3/v1/index.js +1 -1
  583. package/dist/hono/index.d.ts +9 -9
  584. package/dist/hono/index.js +6 -6
  585. package/dist/{inbox-3ql4phyr.d.ts → inbox-BaUJgHOF.d.ts} +3 -3
  586. package/dist/index-8xwnaWHY.d.ts +344 -0
  587. package/dist/{index-BkzNUPId.d.ts → index-BurdFUXr.d.ts} +6 -6
  588. package/dist/{index-DygICr8c.d.ts → index-Cckxs8IE.d.ts} +2 -2
  589. package/dist/{index-CrZitvSC.d.ts → index-Ck4oK5vV.d.ts} +7 -7
  590. package/dist/{index-Ej8XQ9w9.d.ts → index-Co0YsJTk.d.ts} +2 -2
  591. package/dist/{index-CETRk4YO.d.ts → index-CxmVzT-3.d.ts} +5 -1
  592. package/dist/{index-Bvw9r94Q.d.ts → index-D1kMyNc7.d.ts} +1 -1
  593. package/dist/{index-BlqrGvb3.d.ts → index-DL8z_oDo.d.ts} +4 -4
  594. package/dist/{index-DfVXx4Ia.d.ts → index-DMONTkSf.d.ts} +2 -2
  595. package/dist/{index-jhqhynmh.d.ts → index-DTQbC3CW.d.ts} +1 -1
  596. package/dist/{index-BIi8i6BO.d.ts → index-DcijDfh1.d.ts} +3 -3
  597. package/dist/index-MCXVzkXs.d.ts +722 -0
  598. package/dist/{index-Brhm22eL.d.ts → index-gXy3R1Uq.d.ts} +1 -1
  599. package/dist/index.d.ts +8 -8
  600. package/dist/index.js +6 -6
  601. package/dist/{kit-D5S7KNFe.d.ts → kit-BlcEFQql.d.ts} +3 -3
  602. package/dist/{kit-MUK34-ZG.js → kit-gqwkVhGU.js} +3 -3
  603. package/dist/{knowledge-BXQ2-V0a.d.ts → knowledge-BYtgA52P.d.ts} +5 -5
  604. package/dist/{knowledge-CJ_Mm3ic.js → knowledge-CSNKLX-s.js} +3 -3
  605. package/dist/list/index.d.ts +3 -3
  606. package/dist/{list-query-PvP3pPGQ.d.ts → list-query-DWJIiVz_.d.ts} +4 -4
  607. package/dist/management-D1gG89z2.d.ts +53 -0
  608. package/dist/mcp/index.d.ts +41 -16
  609. package/dist/mcp/index.js +139 -56
  610. package/dist/mcp/sdk/index.d.ts +6 -6
  611. package/dist/mcp/sdk/index.js +2 -2
  612. package/dist/{options-BQ07tTYr.js → methods-7u6vSgz_.js} +4 -4
  613. package/dist/{money-codec-C_-K5ZUU.js → money-codec-DCGgzO26.js} +1 -1
  614. package/dist/nestjs/index.d.ts +2 -2
  615. package/dist/nestjs/index.js +1 -1
  616. package/dist/next/index.d.ts +16 -16
  617. package/dist/next/index.js +10 -10
  618. package/dist/node/index.d.ts +2 -2
  619. package/dist/node/index.js +1 -1
  620. package/dist/{onboarding-BZvLLPaY.js → onboarding-viTTNWUp.js} +2 -2
  621. package/dist/openapi/index.d.ts +2 -2
  622. package/dist/{operations-C9-UcReN.d.ts → operations-BtuQRwTJ.d.ts} +1 -1
  623. package/dist/{organizations-Cw7om8uk.js → organizations-Bxrm32IG.js} +4 -4
  624. package/dist/orpc/index.d.ts +6 -6
  625. package/dist/orpc/index.js +3 -3
  626. package/dist/otel/index.d.ts +2 -2
  627. package/dist/otel/index.js +5 -5
  628. package/dist/{outbox-BTeqjbum.d.ts → outbox-BCGHl9X6.d.ts} +4 -4
  629. package/dist/{plugin-CDLJRFFg.d.ts → plugin-D5OIaP93.d.ts} +2 -2
  630. package/dist/plugins/actor/index.d.ts +1 -1
  631. package/dist/plugins/rules/index.d.ts +2 -2
  632. package/dist/plugins/soft-delete/index.d.ts +2 -2
  633. package/dist/plugins/soft-delete/index.js +1 -1
  634. package/dist/plugins/tenant/index.d.ts +2 -2
  635. package/dist/plugins/timestamps/index.d.ts +1 -1
  636. package/dist/plugins/validation/index.d.ts +1 -1
  637. package/dist/plugins/validation/index.js +1 -1
  638. package/dist/{pool-CwOCsX9e.d.ts → pool-BBi4mot3.d.ts} +7 -4
  639. package/dist/{pool-errors-GMjlCN0d.js → pool-errors-C94tPR_G.js} +1 -1
  640. package/dist/{ports-Ca63W4cW.d.ts → ports-B53rB7zg.d.ts} +7 -7
  641. package/dist/{ports-DGK3KTDH.js → ports-Bcdppx0G.js} +2 -2
  642. package/dist/{ports-DAdQyjZz.d.ts → ports-Dcnuo3HT.d.ts} +1 -1
  643. package/dist/postgres/index.d.ts +4 -4
  644. package/dist/postgres/index.js +11 -5
  645. package/dist/{postgrest-Cw9Bs5gm.d.ts → postgrest-D6fEMsp4.d.ts} +1 -1
  646. package/dist/powersync/index.d.ts +3 -3
  647. package/dist/powersync/index.js +3 -3
  648. package/dist/powersync/react/index.d.ts +1 -1
  649. package/dist/powersync/react/index.js +1 -1
  650. package/dist/preset/index.d.ts +4 -352
  651. package/dist/preset/index.js +4 -564
  652. package/dist/preset-BBrL6_Ln.js +648 -0
  653. package/dist/{provider-9gBq9W6k.d.ts → provider-CQ1SrhLa.d.ts} +1 -1
  654. package/dist/{push-token-asrmi7-6.d.ts → push-token-CDMgWT13.d.ts} +1 -1
  655. package/dist/query/index.d.ts +1 -1
  656. package/dist/{rank-result-DS8IoLup.js → rank-result-oUF1DYBm.js} +1 -1
  657. package/dist/{rate-limit--QSiFA6D.js → rate-limit-ByfWNX9N.js} +5 -5
  658. package/dist/react/index.d.ts +7 -7
  659. package/dist/react/index.js +1 -1
  660. package/dist/react/native/index.d.ts +1 -1
  661. package/dist/react/server.d.ts +8 -8
  662. package/dist/react/server.js +1 -1
  663. package/dist/react/session.d.ts +2 -2
  664. package/dist/{react-CKXUkwPx.js → react-BcKACxsj.js} +1 -1
  665. package/dist/react-router/index.d.ts +6 -6
  666. package/dist/react-router/index.js +5 -5
  667. package/dist/{read-set-GEb-i0On.js → read-set-PWiJfv6S.js} +1 -1
  668. package/dist/realtime/index.d.ts +7 -7
  669. package/dist/realtime/index.js +2 -2
  670. package/dist/{refusal-oD3ISM9h.d.ts → refusal-Bdr1k47u.d.ts} +1 -1
  671. package/dist/{refusal-br4Ma9Cf.js → refusal-Ch-u9dVd.js} +2 -2
  672. package/dist/{resolve-w9EpHzuM.d.ts → resolve-7atr-wWr.d.ts} +2 -2
  673. package/dist/{resource-C8r5xGqY.js → resource-CHGOmg1O.js} +4 -4
  674. package/dist/{resource-B4ka8dDH.d.ts → resource-DxcgtHq6.d.ts} +1 -1
  675. package/dist/{resource-execute-D0yQ-8WR.d.ts → resource-execute-C45ICrN9.d.ts} +2 -2
  676. package/dist/{resource-types-D2vEQVXI.d.ts → resource-types-CC59gMHE.d.ts} +5 -5
  677. package/dist/{resources-BklF-rjz.d.ts → resources-B71O7EVQ.d.ts} +2 -2
  678. package/dist/{resources-BlZdLsWQ.js → resources-B7htXQeg.js} +1 -1
  679. package/dist/{respond-C7I8kLK_.d.ts → respond-Cdg5ibH5.d.ts} +1 -1
  680. package/dist/{respond-DdhZ9Wbn.js → respond-Dpx48ATq.js} +1 -1
  681. package/dist/{result-BlgnMB0H.js → result-COkvI9t5.js} +7 -1
  682. package/dist/{rules-B0-3Iosu.js → rules-4of_Fq-6.js} +31 -5
  683. package/dist/runtime-BOXURhEW.js +45 -0
  684. package/dist/{sales-lines-BAk8In-Z.js → sales-lines-CymdiwYd.js} +3 -3
  685. package/dist/{sales-shared-SblIgCgI.js → sales-shared-DjCuN8xG.js} +1 -1
  686. package/dist/{search-B6h03cAx.js → search-LbjCylX5.js} +3 -3
  687. package/dist/server/index.d.ts +20 -20
  688. package/dist/server/index.js +10 -10
  689. package/dist/{server-types-OohhIQb2.d.ts → server-types-fXwJoFjt.d.ts} +12 -12
  690. package/dist/{session-DiWHtYrO.d.ts → session-Djo5t4KQ.d.ts} +5 -5
  691. package/dist/{settings-BXFn9zpS.js → settings-DxXfDUmh.js} +4 -4
  692. package/dist/{shared-DbO3Dfms.js → shared-9B02lczf.js} +1 -1
  693. package/dist/{signatures-B41ApWXA.js → signatures-C9CGYZS1.js} +1 -1
  694. package/dist/{signers-CXt_wA9S.d.ts → signers-BjSgNAXP.d.ts} +4 -4
  695. package/dist/{signing-keys-Bq9mMCTh.d.ts → signing-keys-Ccr86Y2C.d.ts} +2 -2
  696. package/dist/solid/index.d.ts +7 -7
  697. package/dist/{solid-controller-DqlvYFZa.d.ts → solid-controller-CZrt1Tg6.d.ts} +1 -1
  698. package/dist/solid-start/index.d.ts +6 -6
  699. package/dist/solid-start/index.js +5 -5
  700. package/dist/spec/index.d.ts +2 -2
  701. package/dist/sql/index.d.ts +5 -709
  702. package/dist/sql/index.js +5 -86238
  703. package/dist/{sql-DJrXG-3Z.js → sql-BQshMgmB.js} +2 -2
  704. package/dist/sql-CgTZOQZ7.js +87439 -0
  705. package/dist/{sso-BN0LnMqE.d.ts → sso-B5ZoEsXE.d.ts} +3 -3
  706. package/dist/{sso-BDva_-4y.js → sso-CwAnve68.js} +3 -3
  707. package/dist/ssr/index.d.ts +4 -4
  708. package/dist/{standard-B5fe2gnW.js → standard-DZmwmIhV.js} +1 -1
  709. package/dist/{stats-D6vkb89f.js → stats-CUhqw6Ev.js} +2 -2
  710. package/dist/storage/index.d.ts +3 -3
  711. package/dist/storage/index.js +4 -4
  712. package/dist/{storage-api-Cx-1iWBd.d.ts → storage-api-B4Ib2Zpo.d.ts} +2 -2
  713. package/dist/streams/index.d.ts +1 -1
  714. package/dist/streams/index.js +2 -2
  715. package/dist/streams/redis/index.js +1 -1
  716. package/dist/{subject-readers-fxP5wu0s.d.ts → subject-readers-81xiWh4M.d.ts} +2 -2
  717. package/dist/{subject-readers-DiePmaYP.js → subject-readers-DDyPTIOr.js} +1 -1
  718. package/dist/{subjects-z8VWA_lF.d.ts → subjects-DP-fvFkk.d.ts} +8 -0
  719. package/dist/{support-BsKkvA92.js → support-BsqhV6jP.js} +5 -5
  720. package/dist/{support-view-BbcZR7Io.d.ts → support-view-CznLe4jq.d.ts} +1 -1
  721. package/dist/svelte/index.d.ts +6 -6
  722. package/dist/{svelte-controller-DxxHEHxD.d.ts → svelte-controller-DDbju9CW.d.ts} +1 -1
  723. package/dist/sveltekit/index.d.ts +7 -7
  724. package/dist/sveltekit/index.js +5 -5
  725. package/dist/{tags-Dw8vKkcI.d.ts → tags-7NHyD1P8.d.ts} +1 -1
  726. package/dist/{tags-PaG0Ns_9.js → tags-DGldvcA4.js} +5 -5
  727. package/dist/tanstack-db/index.d.ts +2 -2
  728. package/dist/tanstack-db/supabase/index.d.ts +2 -2
  729. package/dist/tanstack-start/index.d.ts +6 -6
  730. package/dist/tanstack-start/index.js +5 -5
  731. package/dist/{tax-D_kSCdWU.js → tax-DZDpMMRw.js} +1 -1
  732. package/dist/{tee-Bsisfd7t.js → tee-CdRV1tcj.js} +1 -1
  733. package/dist/{tenant-DdmVhsff.d.ts → tenant-DW_GmsW4.d.ts} +2 -2
  734. package/dist/testing/index.d.ts +23 -23
  735. package/dist/testing/index.js +8 -51
  736. package/dist/{topic-ByDz9edV.js → topic-DB-1YTMj.js} +35 -16
  737. package/dist/{topic-cMS7UtM1.d.ts → topic-Dgs-eSYQ.d.ts} +31 -17
  738. package/dist/{types-YfwpIE-d.d.ts → types-BO8lVTun.d.ts} +6 -0
  739. package/dist/{types-D0W4fnsc.d.ts → types-C_GN-4ed.d.ts} +4 -4
  740. package/dist/types-DGHfTW8_.d.ts +9 -0
  741. package/dist/{types-pNY_UpDs.d.ts → types-DM8q3IOr.d.ts} +3 -3
  742. package/dist/{types-6oiy6rIa.d.ts → types-DOaUIJxW.d.ts} +4 -4
  743. package/dist/{types-vaoP9S9_.d.ts → types-DZj8CZMH.d.ts} +22 -8
  744. package/dist/{types-CdP0z5tS.d.ts → types-P1S1cj6N.d.ts} +5 -5
  745. package/dist/{undo-CEGIRkPA.js → undo-0qM13zul.js} +3 -3
  746. package/dist/{undo-DGo0skyO.d.ts → undo-D42sPjCf.d.ts} +2 -2
  747. package/dist/{usage-CdlfuS3i.js → usage-BrJGPvCq.js} +2 -2
  748. package/dist/{usage-DM2rzczj.d.ts → usage-CnQHSM_r.d.ts} +4 -4
  749. package/dist/{vault-tOkPLnMB.d.ts → vault-EnOQJWjn.d.ts} +2 -2
  750. package/dist/vercel-connect/index.d.ts +1 -1
  751. package/dist/vercel-connect/index.js +1 -1
  752. package/dist/{verify-D63A2ALE.d.ts → verify-3NLjUIER.d.ts} +2 -2
  753. package/dist/{verify-EQcC3Khp.js → verify-C9D_jjsQ.js} +2 -2
  754. package/dist/{version-D87ZteKy.js → version-Bxj_xcUY.js} +1 -1
  755. package/dist/{view-Dv0A949a.d.ts → view-SuASaomx.d.ts} +1 -1
  756. package/dist/vue/index.d.ts +7 -7
  757. package/dist/{vue-controller-HPfMTDa2.d.ts → vue-controller-D_ohttBZ.d.ts} +1 -1
  758. package/dist/{watch-DT_B3CnJ.js → watch-Blj1mQ9n.js} +1 -1
  759. package/dist/{watch-DDuWYv0Y.d.ts → watch-D1wwzZ04.d.ts} +5 -5
  760. package/dist/{watch-topic-EFpOIIDE.d.ts → watch-topic-D-rpUg5n.d.ts} +1 -1
  761. package/dist/{workflow-builder-OrglbXUh.js → workflow-builder-C5DBN7yq.js} +25 -9
  762. package/dist/workflow-sdk/builder/index.d.ts +3 -3
  763. package/dist/workflow-sdk/builder/index.js +1 -1
  764. package/dist/workflow-sdk/index.d.ts +1 -1
  765. package/dist/workflow-sdk/index.js +1 -1
  766. package/dist/workflow-sdk/world/index.d.ts +1 -1
  767. package/dist/workflow-sdk/world/index.js +2 -2
  768. package/dist/{workflow-sdk-q8cLwW1K.d.ts → workflow-sdk-Di5pmCAu.d.ts} +3 -3
  769. package/dist/{workflow-sdk-BZ6qsRlY.js → workflow-sdk-vjDWlnfX.js} +1 -1
  770. package/dist/{workflows-DFQeXDAI.d.ts → workflows-DJXoxDZH.d.ts} +3 -3
  771. package/dist/{workflows-C-OvZpeg.js → workflows-DzdX28KN.js} +3 -3
  772. package/dist/yjs/index.d.ts +2 -2
  773. package/dist/yjs/index.js +2 -2
  774. package/package.json +27 -15
  775. package/schemas/config-v1.json +180 -7
  776. package/schemas/doctor-report-v1.json +7 -0
  777. package/skills/better-supabase/SKILL.md +1 -0
  778. package/skills/better-supabase/references/ui-recipes.md +683 -11
  779. package/dist/cli/add-CT6p5psO.js +0 -1
  780. package/dist/cli/adopt-C9jl8z0h.js +0 -1
  781. package/dist/cli/env-D3gZ-OHj.js +0 -1
  782. package/dist/cli/seed-DtRFysBe.js +0 -1
  783. package/dist/cli/{detect-DYDUBLU4.js → detect-BeLVeNpA.js} +1 -1
  784. package/dist/{client-b2_GjzzD.js → client-BGnJ5WJi.js} +1 -1
@@ -1,22 +1,25 @@
1
- import { a as list, p as commandMeta, r as defineCliCommand } from "./command-CK9Cn8HV.js";
1
+ import { a as list, p as commandMeta, r as defineCliCommand } from "./command-D_HI1mp1.js";
2
2
  import { i as plain } from "./style-2JfIPVMQ.js";
3
- import { t as VERSION } from "./version-DNRW4DAP.js";
3
+ import { t as VERSION } from "./version-D1wM9DNb.js";
4
4
  import { n as CliError, r as errorText } from "./errors-Caiz_0so.js";
5
5
  import { a as sameText, t as display } from "./io-BiPX-_J1.js";
6
- import { t as CACHE_DIR } from "./cache-Cx6qlRDR.js";
6
+ import { t as CACHE_DIR } from "./cache-CPBYJAkb.js";
7
7
  import { t as byCodePoint } from "./compare-BmIWVEui.js";
8
8
  import { h as satisfies, m as peerVersions, t as MetadataRejectedError } from "./typegen--TfvOPLh.js";
9
- import { c as configFor, s as notNullTag } from "./emit-ZAYeh4Yn.js";
10
- import { A as renderFiles, C as policyObject, D as advisorRule, E as workflowOf, O as splinterTables, S as permissionCatalogKeys, T as tableObject, _ as withoutStrings, a as METADATA_GAPS_TEXT, b as exposedSchemas, c as accessModule, d as RLS_RULES, f as appliesTo, g as policyHelpers, h as functionObject, l as entitlementsModule, m as functionBody, p as escape$2, s as AUTHORIZATION_RULES, u as COMMANDS$1, v as catalogOf, w as qualified, x as lineOf, y as exposed } from "./run-DaHfUUO9.js";
11
- import { D as providerLabel, a as migrationModules, i as migrationHolds, r as latestMigration, t as MODULES_SUFFIX, v as migrationsDir, x as compiledReadSets, y as moduleLayoutFor } from "./module-migration-YFFdWC5X.js";
12
- import { l as stdinDatabaseUrl } from "./config-CLHpTk9Y.js";
9
+ import { t as isRecord } from "./guards-CUlDNYZs.js";
10
+ import { c as configFor, s as notNullTag } from "./emit-j0zZ6NE_.js";
11
+ import { _ as withoutStrings, a as METADATA_GAPS_TEXT, c as accessModule, d as RLS_RULES, f as appliesTo, g as policyHelpers, h as functionObject, l as entitlementsModule, m as functionBody, p as escape$1, s as AUTHORIZATION_RULES, u as COMMANDS$1, v as advisorRule, x as renderFiles, y as splinterTables } from "./run-DliGNdjI.js";
12
+ import { D as providerLabel, a as migrationModules, i as migrationHolds, r as latestMigration, t as MODULES_SUFFIX, v as migrationsDir, x as compiledReadSets, y as moduleLayoutFor } from "./module-migration-CLkZ8jpw.js";
13
+ import { l as stdinDatabaseUrl } from "./config-Bi_UBxXl.js";
13
14
  import { a as findRepoRoot, c as httpHooks, d as readSupabaseToml, f as schemaPaths, h as tomlGet, i as diffEngine, l as migrationCommand, n as declarativeSchemasDir, p as sqlWorkflow, u as pgFunctionHooks } from "./supabase-toml-DjLgBYEo.js";
14
15
  import { t as connect } from "./db-DT1bGB02.js";
15
- import { c as isSqliteLiteDriver, n as managementTarget, o as snapshotFile, p as request, r as openSource, s as liteDriverOf, t as loadSnapshot } from "./snapshot-DAxLi4hO.js";
16
+ import { c as isSqliteLiteDriver, n as managementTarget, o as snapshotFile, p as request, r as openSource, s as liteDriverOf, t as loadSnapshot } from "./snapshot-Dvcx0BSl.js";
16
17
  import { n as applyPlan, o as insideRoot, r as changeLines } from "./files-DDvAwTko.js";
17
- import { t as isRecord } from "./guards-CUlDNYZs.js";
18
- import { i as sourceFlags, n as SOURCE_ARGS } from "./source-args-0I9zylYy.js";
19
- import { i as refuseWithMetadata, r as readMetadataSnapshot } from "./metadata-CxBZo4KM.js";
18
+ import { a as permissionCatalogKeys, i as lineOf, l as tableObject, n as exposed, o as policyObject, r as exposedSchemas, s as qualified, t as catalogOf, u as workflowOf } from "./shared-CNcvDOLt.js";
19
+ import { t as MIGRATION_SAFETY_RULES } from "./migration-safety-LaGVPPuD.js";
20
+ import { i as sourceFlags, n as SOURCE_ARGS } from "./source-args-BNhagtpw.js";
21
+ import { i as reservedRoles, n as ident$1, r as literal$1, t as LIVE_RULES } from "./live-BFfYoE0_.js";
22
+ import { i as refuseWithMetadata, r as readMetadataSnapshot } from "./metadata-DikbSOE0.js";
20
23
  import { existsSync } from "node:fs";
21
24
  import { dirname, resolve } from "node:path";
22
25
  import { createHash } from "node:crypto";
@@ -98,6 +101,29 @@ const ADOPTION_RULES = [
98
101
  });
99
102
  }
100
103
  },
104
+ {
105
+ code: "BS342",
106
+ severity: "error",
107
+ title: "Adopted enum column the module writes as text",
108
+ description: "A module in adopt mode writes a text parameter or computed text value into a column the snapshot declares as an enum; string literals are fine. Postgres has no implicit cast from text to an enum, so the module's functions fail when they run. Columns the module casts to their declared type, such as the tags `kind` and the number-sequences `entity`, may be enums.",
109
+ check: (context) => {
110
+ const { tables } = catalogOf(context);
111
+ return adoptedTables(context.config.blocks).flatMap((adopted) => {
112
+ const table = tables.find((entry) => entry.schema === adopted.schema && entry.name === adopted.table);
113
+ if (table === void 0) return [];
114
+ return adopted.textColumns.flatMap((logical) => {
115
+ const name = adopted.columns[logical];
116
+ const column = table.columns.find((entry) => entry.name === name);
117
+ if (column?.isEnum !== true || column.isArray) return [];
118
+ const target = `${qualified(table)}.${column.name}`;
119
+ return [{
120
+ message: `blocks.${adopted.module} is in adopt mode and writes text into ${target} (${adopted.logical}.${logical}), which is the enum ${column.typeSchema}.${column.udt}. Postgres does not cast text to an enum, so the module's functions fail. Change the column to text with a check constraint on its values.`,
121
+ target
122
+ }];
123
+ });
124
+ });
125
+ }
126
+ },
101
127
  {
102
128
  code: "BS341",
103
129
  severity: "warning",
@@ -246,331 +272,6 @@ const FLAG_RULES = [{
246
272
  check: expiredFlags
247
273
  }];
248
274
  //#endregion
249
- //#region src/cli/doctor/reserved-roles.ts
250
- /**
251
- * supautils' `reserved_roles` on Supabase. Nobody but a superuser may alter,
252
- * drop or change the memberships of these.
253
- */
254
- const RESERVED_ROLES = /* @__PURE__ */ new Set([
255
- "supabase_admin",
256
- "supabase_auth_admin",
257
- "supabase_storage_admin",
258
- "supabase_functions_admin",
259
- "supabase_read_only_user",
260
- "supabase_realtime_admin",
261
- "supabase_replication_admin",
262
- "supabase_etl_admin",
263
- "dashboard_user",
264
- "pgbouncer"
265
- ]);
266
- /** Reserved roles whose settings (`alter role ... set`) supautils allows changing. */
267
- const SETTINGS_ONLY_ROLES = /* @__PURE__ */ new Set([
268
- "authenticator",
269
- "authenticated",
270
- "anon",
271
- "service_role"
272
- ]);
273
- /**
274
- * Roles that Supabase's own services log in as. Their statements (PostgREST's
275
- * schema cache query, Auth and Storage migrations) aren't the app's.
276
- */
277
- const PLATFORM_ROLES = /* @__PURE__ */ new Set([...RESERVED_ROLES, "authenticator"]);
278
- /** Comments and string literals blanked, newlines kept so offsets map to lines. */
279
- const sqlCode = (text) => text.replaceAll(/\/\*[\s\S]*?\*\//g, (comment) => comment.replaceAll(/[^\n]/g, " ")).replaceAll(/--[^\n]*/g, "").replaceAll(/'(?:[^']|'')*'/g, "''");
280
- const roleNames = (list) => list.split(",").map((name) => name.trim().replaceAll("\"", "").toLowerCase()).filter((name) => name !== "");
281
- /** Why a statement changes a reserved role, or undefined when it doesn't. */
282
- function reservedRoleChange(statement) {
283
- const alter = /^\s*(alter|drop)\s+(?:role|user)\s+(?:if\s+exists\s+)?("[^"]+"|\w+)\s*(\w*)/i.exec(statement);
284
- if (alter) {
285
- const role = roleNames(alter[2])[0];
286
- const verb = alter[1].toLowerCase();
287
- const next = alter[3].toLowerCase();
288
- if (RESERVED_ROLES.has(role)) return `${verb}s the reserved role ${role}`;
289
- if (SETTINGS_ONLY_ROLES.has(role) && (verb === "drop" || next !== "set" && next !== "reset" && next !== "in")) return `${verb}s the reserved role ${role}; only \`alter role ${role} set ...\` is allowed`;
290
- return;
291
- }
292
- const membership = /^\s*(grant|revoke)\s+(?![\s\S]*\bon\b)([\w",\s]+?)\s+(?:to|from)\s+([\w",\s]+?)(?:\s+with\s+\w+\s+option)?\s*$/i.exec(statement);
293
- if (!membership) return;
294
- const role = [...roleNames(membership[2]), ...roleNames(membership[3])].find((name) => RESERVED_ROLES.has(name));
295
- return role === void 0 ? void 0 : `${membership[1].toLowerCase()}s a membership of the reserved role ${role}`;
296
- }
297
- /** Where a statement ends, including statements inside `do` blocks and function bodies. */
298
- const STATEMENT_BOUNDARY = /;|\$\w*\$|\b(?:begin|then|else|loop)\b/gi;
299
- /** Statements in schema files and migrations that supautils rejects on Supabase. */
300
- function reservedRoles(context) {
301
- return (context.sqlFiles ?? []).flatMap((file) => {
302
- const code = sqlCode(file.text);
303
- const findings = [];
304
- let start = 0;
305
- for (const end of [...code.matchAll(STATEMENT_BOUNDARY), void 0]) {
306
- const until = end?.index ?? code.length;
307
- const statement = code.slice(start, until);
308
- const reason = reservedRoleChange(statement);
309
- if (reason !== void 0) {
310
- const at = start + statement.search(/\S/);
311
- const line = code.slice(0, at).split("\n").length;
312
- findings.push({
313
- message: `${file.path}:${String(line)} ${reason}. supautils rejects it on Supabase, so the migration fails on a hosted project; grant privileges to your own role instead.`,
314
- target: `${file.path}:${String(line)}`,
315
- location: {
316
- file: file.path,
317
- line
318
- }
319
- });
320
- }
321
- start = until + (end?.[0].length ?? 0);
322
- }
323
- return findings;
324
- });
325
- }
326
- //#endregion
327
- //#region src/cli/doctor/live.ts
328
- /** Statements slower than this (ms, mean) with more calls than `SLOW_CALLS` are BS209. */
329
- const SLOW_MEAN_MS = 50;
330
- const SLOW_CALLS = 1e3;
331
- /** Rows `--explain` reads, like a `findMany()` under Supabase's default `max_rows`. */
332
- const EXPLAIN_LIMIT = 1e3;
333
- const escape$1 = (name) => name.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
334
- const ident$1 = (name) => `"${name.replaceAll("\"", "\"\"")}"`;
335
- const literal$1 = (text) => `'${text.replaceAll("'", "''")}'`;
336
- const oneLine = (query, max = 160) => {
337
- const flat = query.replaceAll(/\s+/g, " ").trim();
338
- return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
339
- };
340
- const plural$1 = (count, word) => `${count} ${word}${count === 1 ? "" : "s"}`;
341
- const megabytes = (bytes) => `${(bytes / 1024 / 1024).toFixed(1)} MB`;
342
- /** The schema `pg_stat_statements` lives in, when the extension is installed. */
343
- async function statementsView(db) {
344
- const [row] = await db.query(`select n.nspname as schema from pg_extension e join pg_namespace n on n.oid = e.extnamespace where e.extname = 'pg_stat_statements'`);
345
- return row ? `${ident$1(row.schema)}.pg_stat_statements` : void 0;
346
- }
347
- /** The first exposed table a statement names, to locate it in the SQL files. */
348
- function tableIn(query, tables) {
349
- return tables.find((table) => {
350
- const schema = escape$1(table.schema);
351
- const name = escape$1(table.name);
352
- return new RegExp(`(?:"${schema}"|\\b${schema})\\.(?:"${name}"|${name}\\b)`).test(query);
353
- });
354
- }
355
- const live = (context) => context.database;
356
- /**
357
- * Function calls and self time so far in this transaction. The view can
358
- * still hold unflushed counts from earlier transactions, so callers diff two
359
- * readings.
360
- */
361
- async function functionTimes(db) {
362
- const rows = await db.query(`select schemaname || '.' || funcname as name, calls, self_time from pg_stat_xact_user_functions`);
363
- return new Map(rows.map((row) => [row.name, {
364
- calls: Number(row.calls),
365
- selfTime: Number(row.self_time)
366
- }]));
367
- }
368
- /** Node types, timings and loops of an `EXPLAIN (ANALYZE, FORMAT JSON)` plan; never rows. */
369
- function summarizePlan(output) {
370
- const nodes = [];
371
- const perRowSubPlans = [];
372
- let initPlans = 0;
373
- const walk = (node) => {
374
- const loops = node["Actual Loops"] ?? 1;
375
- const ms = (node["Actual Total Time"] ?? 0).toFixed(2);
376
- const on = node["Relation Name"] ? ` on ${node["Relation Name"]}` : "";
377
- const sub = node["Subplan Name"] ? `${node["Subplan Name"]}: ` : "";
378
- nodes.push(`${sub}${node["Node Type"]}${on} ${ms} ms ×${loops}`);
379
- if (node["Parent Relationship"] === "InitPlan") initPlans += 1;
380
- if (node["Parent Relationship"] === "SubPlan" && loops > 1) perRowSubPlans.push(`${sub}${node["Node Type"]}${on} ×${loops}`);
381
- for (const child of node.Plans ?? []) walk(child);
382
- };
383
- walk(output.Plan);
384
- return {
385
- nodes,
386
- initPlans,
387
- perRowSubPlans,
388
- executionMs: output["Execution Time"] ?? 0
389
- };
390
- }
391
- const ROLE = /^[a-z_][a-z0-9_]*$/;
392
- async function explainTable(db, table, claims) {
393
- const role = typeof claims["role"] === "string" ? claims["role"] : "anon";
394
- if (!ROLE.test(role)) throw new Error(`Invalid role "${role}" in the claims`);
395
- await db.query("begin");
396
- try {
397
- await db.query(`set local statement_timeout = '30s'`);
398
- let tracked = true;
399
- await db.query("savepoint bs_track");
400
- try {
401
- await db.query(`set local track_functions = 'all'`);
402
- await db.query("release savepoint bs_track");
403
- } catch {
404
- tracked = false;
405
- await db.query("rollback to savepoint bs_track");
406
- }
407
- await db.query(`select set_config('request.jwt.claims', ${literal$1(JSON.stringify(claims))}, true)`);
408
- const before = tracked ? await functionTimes(db) : /* @__PURE__ */ new Map();
409
- await db.query(`set local role ${ident$1(role)}`);
410
- const [row] = await db.query(`explain (analyze, buffers, format json) select * from ${ident$1(table.schema)}.${ident$1(table.name)} limit ${EXPLAIN_LIMIT}`);
411
- const raw = row?.["QUERY PLAN"];
412
- const plan = typeof raw === "string" ? JSON.parse(raw) : raw;
413
- if (!plan?.[0]) throw new Error("EXPLAIN returned no plan");
414
- const functions = tracked ? [...await functionTimes(db)].map(([name, after]) => {
415
- const start = before.get(name);
416
- return {
417
- name,
418
- calls: after.calls - (start?.calls ?? 0),
419
- selfTime: after.selfTime - (start?.selfTime ?? 0)
420
- };
421
- }).filter((fn) => fn.calls > 0).sort((a, b) => b.selfTime - a.selfTime) : void 0;
422
- return {
423
- summary: summarizePlan(plan[0]),
424
- functions
425
- };
426
- } finally {
427
- await db.query("rollback");
428
- }
429
- }
430
- function resolveTable(context, name) {
431
- return name.includes(".") ? catalogOf(context).tables.find((table) => qualified(table) === name) : exposed(context).find((table) => table.name === name);
432
- }
433
- const LIVE_RULES = [
434
- {
435
- code: "BS208",
436
- severity: "warning",
437
- title: "Queries spill to temporary files",
438
- description: "Sorts and hashes that exceed `work_mem` write temporary files, which is slow. Reads `pg_stat_database` and, when installed, the top statements from `pg_stat_statements`. When every statement that spilled ran as a Supabase service role (PostgREST's schema cache query as `authenticator`, Auth or Storage) or came from better-supabase's own catalog reads (`introspect`, `gen`, `doctor`), there is no finding.",
439
- async check(context) {
440
- const db = live(context);
441
- if (!db || "skipped" in db) return [];
442
- try {
443
- const [stats] = await db.query(`select temp_files, temp_bytes, current_setting('work_mem') as work_mem from pg_stat_database where datname = current_database()`);
444
- const files = Number(stats?.temp_files ?? 0);
445
- if (files === 0) return [];
446
- let top = "";
447
- const view = await statementsView(db);
448
- if (view) {
449
- const spilled = await db.query(`select s.query, s.temp_blks_written, r.rolname as role from ${view} s left join pg_roles r on r.oid = s.userid where s.temp_blks_written > 0 order by s.temp_blks_written desc limit 50`).catch(() => []);
450
- const statements = spilled.filter((statement) => !statement.query.startsWith("/* better-supabase */") && (statement.role === null || !PLATFORM_ROLES.has(statement.role))).slice(0, 5);
451
- if (spilled.length > 0 && statements.length === 0) return [];
452
- if (statements.length > 0) top = ` Top statements by temporary blocks written: ${statements.map((statement) => `${oneLine(statement.query, 100)} (${statement.temp_blks_written} blocks)`).join("; ")}.`;
453
- }
454
- return [{
455
- message: `${files} temporary files (${megabytes(Number(stats?.temp_bytes ?? 0))}) since the statistics were reset; work_mem is ${stats?.work_mem}. Add indexes so large sorts go away, or raise work_mem for the role that runs them.${top}`,
456
- target: "pg_stat_database:temp_files"
457
- }];
458
- } catch (cause) {
459
- return [{
460
- severity: "info",
461
- message: `Could not read pg_stat_database (${db.describe}): ${errorText(cause)}`
462
- }];
463
- }
464
- }
465
- },
466
- {
467
- code: "BS209",
468
- severity: "warning",
469
- title: "Slow frequent statements",
470
- description: `Statements from \`pg_stat_statements\` with a mean time above ${SLOW_MEAN_MS} ms and more than ${SLOW_CALLS} calls. Runs with \`--stats\`.`,
471
- async check(context) {
472
- if (!context.stats) return [];
473
- const db = live(context);
474
- if (!db) return [];
475
- if ("skipped" in db) return [{
476
- severity: "info",
477
- message: `Skipped --stats: ${db.skipped}`
478
- }];
479
- try {
480
- const view = await statementsView(db);
481
- if (!view) return [{
482
- severity: "info",
483
- message: "pg_stat_statements is not installed, so --stats has nothing to read. Run `create extension pg_stat_statements with schema extensions;`."
484
- }];
485
- const statements = await db.query(`select queryid::text as queryid, query, calls, mean_exec_time from ${view} where calls > ${SLOW_CALLS} and mean_exec_time > ${SLOW_MEAN_MS} order by total_exec_time desc limit 20`);
486
- const tables = exposed(context);
487
- return statements.map((statement) => {
488
- const table = tableIn(statement.query, tables);
489
- return {
490
- message: `${Number(statement.mean_exec_time).toFixed(1)} ms mean over ${statement.calls} calls: ${oneLine(statement.query)}`,
491
- target: `pg_stat_statements:${statement.queryid}`,
492
- ...table ? { object: tableObject(table) } : {}
493
- };
494
- });
495
- } catch (cause) {
496
- return [{
497
- severity: "info",
498
- message: `Could not read pg_stat_statements (${db.describe}): ${errorText(cause)}`
499
- }];
500
- }
501
- }
502
- },
503
- {
504
- code: "BS225",
505
- severity: "info",
506
- title: "pg_stat_statements is not installed",
507
- description: "`pg_stat_statements` records the time and calls of each statement, which `--stats` (BS209), BS208 and the Supabase query performance report read. Without it there is no record of which queries are slow. Needs a database; saved snapshots skip it.",
508
- async check(context) {
509
- const db = live(context);
510
- if (!db || "skipped" in db) return [];
511
- if (context.stats && context.codes?.includes("BS209")) return [];
512
- try {
513
- if (await statementsView(db)) return [];
514
- } catch {
515
- return [];
516
- }
517
- return [{
518
- message: `pg_stat_statements is not installed on the ${db.describe}, so nothing records which statements are slow. Run \`create extension if not exists pg_stat_statements with schema extensions;\` in a migration.`,
519
- target: "extension:pg_stat_statements"
520
- }];
521
- }
522
- },
523
- {
524
- code: "BS212",
525
- severity: "info",
526
- title: "RLS plan for a table",
527
- description: `\`--explain <tables>\` runs \`EXPLAIN (ANALYZE, BUFFERS)\` on \`select * from <table> limit ${EXPLAIN_LIMIT}\` as the given claims, in a transaction that is rolled back. It reports node types, timings and loops, never rows, and warns when a policy SubPlan runs once per row.`,
528
- async check(context) {
529
- const request = context.explain;
530
- if (!request) return [];
531
- const db = live(context);
532
- if (!db || "skipped" in db || !db.session) return [{
533
- severity: "warning",
534
- message: `--explain needs a direct database connection (local stack, $DATABASE_URL, $SUPABASE_DB_URL or --db-url-stdin)${db && "skipped" in db ? `: ${db.skipped}` : "."}`
535
- }];
536
- const who = typeof request.claims["sub"] === "string" ? `${String(request.claims["role"] ?? "anon")} ${request.claims["sub"]}` : String(request.claims["role"] ?? "anon");
537
- const findings = [];
538
- for (const name of request.tables) {
539
- const table = resolveTable(context, name);
540
- if (!table) {
541
- findings.push({
542
- severity: "warning",
543
- message: `--explain: no table "${name}" in the exposed schemas; qualify tables in other schemas, like better_supabase.memberships.`
544
- });
545
- continue;
546
- }
547
- try {
548
- const { summary, functions } = await explainTable(db, table, request.claims);
549
- const helpers = functions ? functions.length > 0 ? ` Function time: ${functions.map((fn) => {
550
- const self = fn.selfTime;
551
- const share = summary.executionMs > 0 ? Math.round(self / summary.executionMs * 100) : 0;
552
- return `${fn.name} ${self.toFixed(2)} ms over ${plural$1(fn.calls, "call")} (${share}%)`;
553
- }).join(", ")}.` : " No tracked function ran; inlined SQL functions are part of the plan." : " Function times need `track_functions`, which this role may not set; showing the plan only.";
554
- const perRow = summary.perRowSubPlans.length > 0 ? ` Per-row SubPlans: ${summary.perRowSubPlans.join(", ")}; wrap the policy's function calls in \`(select ...)\` so they run once as an InitPlan.` : "";
555
- findings.push({
556
- ...summary.perRowSubPlans.length > 0 ? { severity: "warning" } : {},
557
- message: `${qualified(table)} as ${who}: ${summary.executionMs.toFixed(2)} ms, ${plural$1(summary.initPlans, "InitPlan")}. Plan: ${summary.nodes.join(" > ")}.${perRow}${helpers}`,
558
- target: `${qualified(table)}:explain`,
559
- object: tableObject(table)
560
- });
561
- } catch (cause) {
562
- findings.push({
563
- severity: "warning",
564
- message: `--explain ${qualified(table)} failed: ${errorText(cause)}`,
565
- target: `${qualified(table)}:explain`
566
- });
567
- }
568
- }
569
- return findings;
570
- }
571
- }
572
- ];
573
- //#endregion
574
275
  //#region src/cli/doctor/hooks.ts
575
276
  /** Claims past this size make every request carry a large cookie and header. */
576
277
  const HOOK_CLAIMS_LIMIT = 2048;
@@ -2239,7 +1940,7 @@ const POLICY_RULES = [
2239
1940
  const dot = name.indexOf(".");
2240
1941
  const schema = name.slice(0, dot);
2241
1942
  if (schema === "auth" || volatility.get(name) === "immutable") return false;
2242
- return new RegExp(`(?<!\\bselect\\s+)(?<![\\w."])(?:"?${escape$2(schema)}"?\\.)?"?${escape$2(name.slice(dot + 1))}"?\\s*\\(\\s*\\)`, "i").test(text);
1943
+ return new RegExp(`(?<!\\bselect\\s+)(?<![\\w."])(?:"?${escape$1(schema)}"?\\.)?"?${escape$1(name.slice(dot + 1))}"?\\s*\\(\\s*\\)`, "i").test(text);
2243
1944
  });
2244
1945
  if (bare.length === 0) return [];
2245
1946
  return [{
@@ -2295,7 +1996,7 @@ const APP_COLUMN_FORMAT = {
2295
1996
  */
2296
1997
  const skipsNullKeys = (predicate, columns) => {
2297
1998
  if (!predicate) return false;
2298
- return predicate.split(/\s+AND\s+/i).every((part) => columns.some((column) => new RegExp(`^\\(*\\s*"?${escape$2(column)}"?\\s+IS\\s+NOT\\s+NULL\\s*\\)*$`, "i").test(part.trim())));
1999
+ return predicate.split(/\s+AND\s+/i).every((part) => columns.some((column) => new RegExp(`^\\(*\\s*"?${escape$1(column)}"?\\s+IS\\s+NOT\\s+NULL\\s*\\)*$`, "i").test(part.trim())));
2299
2000
  };
2300
2001
  /** Whether the first `columns.length` columns of an index are exactly `columns`, in any order, and it holds every row that references something. */
2301
2002
  const covers = (index, columns) => (!index.partial || skipsNullKeys(index.predicate, columns)) && index.columns.length >= columns.length && index.columns.slice(0, columns.length).every((column) => columns.includes(column));
@@ -2386,7 +2087,7 @@ const SCHEMA_DESIGN_RULES = [
2386
2087
  if (table.kind !== "table") return [];
2387
2088
  const column = table.columns.find((entry) => SOFT_DELETE.test(entry.name) && entry.nullable);
2388
2089
  if (!column) return [];
2389
- const isNull = new RegExp(`"?${escape$2(column.name)}"?\\s+IS\\s+NULL`, "i");
2090
+ const isNull = new RegExp(`"?${escape$1(column.name)}"?\\s+IS\\s+NULL`, "i");
2390
2091
  if (table.indexes.some((index) => index.partial && (index.predicate === void 0 || index.predicate !== null && isNull.test(index.predicate)))) return [];
2391
2092
  return [{
2392
2093
  message: `${qualified(table)} soft-deletes with ${column.name}, but no index has \`where ${column.name} is null\`. Index the live rows you list, for example \`create index on ${qualified(table)} (created_at desc) where ${column.name} is null;\`.`,
@@ -2411,7 +2112,7 @@ const SCHEMA_DESIGN_RULES = [
2411
2112
  return table.columns.filter((column) => {
2412
2113
  if (!column.isArray && column.udt !== "jsonb") return false;
2413
2114
  if (table.indexes.some((index) => index.columns[0] === column.name && (index.method === void 0 || index.method === "gin"))) return false;
2414
- const used = new RegExp(`"?${escape$2(column.name)}"?\\s*${CONTAINS}|${CONTAINS}\\s*[\\w."]*\\b${escape$2(column.name)}\\b`);
2115
+ const used = new RegExp(`"?${escape$1(column.name)}"?\\s*${CONTAINS}|${CONTAINS}\\s*[\\w."]*\\b${escape$1(column.name)}\\b`);
2415
2116
  return filtered.has(column.name) || used.test(own) || functions.includes(table.name) && used.test(functions);
2416
2117
  }).map((column) => ({
2417
2118
  message: `${qualified(table)}.${column.name} is filtered by containment but has no GIN index, so each query scans the table. Run \`create index on ${qualified(table)} using gin (${column.name}${column.udt === "jsonb" ? " jsonb_path_ops" : ""});\`${column.udt === "jsonb" ? " (`jsonb_path_ops` supports `@>` only; drop it for `?`)" : ""}.`,
@@ -2732,7 +2433,7 @@ const RULES = [
2732
2433
  return exposed(context).flatMap((table) => {
2733
2434
  const options = configFor(context.config.tables, table.schema, table.name);
2734
2435
  if (options?.exclude) return [];
2735
- const granted = (role) => new Set(table.grants.filter((grant) => grant.role === role || grant.role === "PUBLIC").flatMap((grant) => grant.privileges.map((privilege) => privilege.toLowerCase())));
2436
+ const granted = (role) => new Set([...table.grants, ...table.columnGrants ?? []].filter((grant) => grant.role === role || grant.role === "PUBLIC").flatMap((grant) => grant.privileges.map((privilege) => privilege.toLowerCase())));
2736
2437
  if (options?.serviceRole) {
2737
2438
  const fromPublic = table.grants.some((grant) => grant.role === "PUBLIC" && grant.privileges.length > 0);
2738
2439
  return ["anon", "authenticated"].flatMap((role) => {
@@ -3147,7 +2848,8 @@ const RULES = [
3147
2848
  ...WORKFLOW_BUILDER_RULES,
3148
2849
  ...FLAG_RULES,
3149
2850
  ...REALTIME_RULES,
3150
- ...ADOPTION_RULES
2851
+ ...ADOPTION_RULES,
2852
+ ...MIGRATION_SAFETY_RULES
3151
2853
  ].sort((a, b) => byCodePoint(a.code, b.code));
3152
2854
  const RULE_CODES = RULES.map((rule) => rule.code);
3153
2855
  async function runRules(context, rules = RULES) {
@@ -1,6 +1,7 @@
1
1
  import { n as CliError } from "./errors-Caiz_0so.js";
2
2
  import { t as byCodePoint } from "./compare-BmIWVEui.js";
3
3
  import { s as restrictSchemas, u as tsTypeOf } from "./typegen--TfvOPLh.js";
4
+ import { t as isRecord } from "./guards-CUlDNYZs.js";
4
5
  import { t as toCatalog } from "./catalog-Di15TkM2.js";
5
6
  import { resolveProviderSql } from "better-supabase/sql";
6
7
  import { DEFAULT_CLAIMS, tenantClaimPaths } from "better-supabase/config";
@@ -401,6 +402,20 @@ const TEXT_UDTS = /* @__PURE__ */ new Set([
401
402
  "bpchar"
402
403
  ]);
403
404
  /** `config.storagePaths` resolved to bucket ids, with a check that every key is used. */
405
+ function numberedColumnsOf(config) {
406
+ const columns = /* @__PURE__ */ new Map();
407
+ const block = config.blocks["number-sequences"];
408
+ if (!config.blockNames.includes("number-sequences") || block?.mode === "custom" || !isRecord(block?.options?.["entities"])) return columns;
409
+ for (const entry of Object.values(block.options["entities"])) {
410
+ if (!isRecord(entry) || typeof entry["table"] !== "string" || typeof entry["column"] !== "string") continue;
411
+ const key = entry["table"].includes(".") ? entry["table"] : `public.${entry["table"]}`;
412
+ const set = columns.get(key) ?? /* @__PURE__ */ new Set();
413
+ set.add(entry["column"]);
414
+ if (typeof entry["sequenceColumn"] === "string") set.add(entry["sequenceColumn"]);
415
+ columns.set(key, set);
416
+ }
417
+ return columns;
418
+ }
404
419
  function storagePathsOf(config) {
405
420
  const bucketId = (name) => {
406
421
  const bucket = config.buckets[name];
@@ -474,6 +489,7 @@ function prepareCatalog(snapshot, config) {
474
489
  function draftTables(ctx) {
475
490
  const { config, included, enumsByName, tsType, jsonTypeFor, optionsOf } = ctx;
476
491
  const storagePaths = storagePathsOf(config);
492
+ const numbered = numberedColumnsOf(config);
477
493
  const tables = included.map((table) => {
478
494
  const casing = optionsOf(table)?.casing ?? config.casing;
479
495
  const checks = /* @__PURE__ */ new Map();
@@ -485,6 +501,7 @@ function draftTables(ctx) {
485
501
  }
486
502
  const beforeInsert = table.triggers.some((trigger) => trigger.timing === "before" && trigger.level === "row" && trigger.events.includes("insert"));
487
503
  const insertOptional = new Set(optionsOf(table)?.insertOptional);
504
+ const numberedColumns = numbered.get(`${table.schema}.${table.name}`);
488
505
  for (const name of insertOptional) if (!table.columns.some((column) => column.name === name)) throw new TypeError(`tables.${table.name}.insertOptional: "${name}" is not a column of ${table.schema}.${table.name}`);
489
506
  const columns = table.columns.map((column) => {
490
507
  const values = (column.isEnum ? enumsByName.get(`${column.typeSchema}.${column.udt}`) : void 0) ?? checks.get(column.name);
@@ -497,10 +514,11 @@ function draftTables(ctx) {
497
514
  const readonly = column.generated || column.identity === "always";
498
515
  const narrowed = column.nullable && checkedNotNull.has(column.name);
499
516
  const nullable = column.nullable && !narrowed;
500
- const filled = column.hasDefault || insertOptional.has(column.name) || narrowed && beforeInsert;
517
+ const filled = column.hasDefault || insertOptional.has(column.name) || (numberedColumns?.has(column.name) ?? false) || narrowed && beforeInsert;
501
518
  const insertable = !readonly && table.insertable && (table.kind !== "view" || column.updatable);
502
519
  const updatable = !readonly && table.updatable && column.updatable;
503
520
  return {
521
+ ...table.schema === "public" && config.appTables[table.name]?.columns?.[column.name]?.access === "server" ? { selectable: false } : {},
504
522
  app: applyCasing(column.name, casing),
505
523
  db: column.name,
506
524
  snapshot: column,
@@ -622,6 +640,7 @@ function toTableModels(ctx, tables, relations) {
622
640
  if (column.snapshot.identity) meta.identity = column.snapshot.identity;
623
641
  if (!column.readonly && !column.insertable) meta.insertable = false;
624
642
  if (!column.readonly && !column.updatable) meta.updatable = false;
643
+ if (column.selectable === false) meta.selectable = false;
625
644
  if (column.snapshot.isArray) meta.array = true;
626
645
  if (column.json) meta.json = true;
627
646
  if (column.values) meta.enum = column.values;
@@ -822,7 +841,7 @@ function realtimeMeta(names, users, tables) {
822
841
  //#region src/cli/gen/emit.ts
823
842
  const GENERATED_HEADER = "// @generated by better-supabase gen. Do not edit; run `better-supabase gen` instead.";
824
843
  function rowEntries(columns, name) {
825
- return columns.map((column) => `${prop(column[name])}: ${nullable(column.tsType, column.nullable)};`);
844
+ return columns.map((column) => `${prop(column[name])}${column.selectable === false ? "?" : ""}: ${nullable(column.tsType, column.nullable)};`);
826
845
  }
827
846
  function insertEntries(columns, name) {
828
847
  return columns.map((column) => {
@@ -1,9 +1,9 @@
1
- import { p as commandMeta, r as defineCliCommand } from "./command-CK9Cn8HV.js";
1
+ import { p as commandMeta, r as defineCliCommand } from "./command-D_HI1mp1.js";
2
2
  import { n as CliError } from "./errors-Caiz_0so.js";
3
3
  import { r as readIfExists, t as display } from "./io-BiPX-_J1.js";
4
- import { n as readStackStatus, t as parseStackStatus } from "./stack-status-CRanl-CN.js";
4
+ import { n as readStackStatus, t as parseStackStatus } from "./stack-status-LeEoCtV1.js";
5
5
  import { n as applyPlan, o as insideRoot, r as changeLines, s as planResult, t as PLAN_ARGS } from "./files-DDvAwTko.js";
6
- import { r as publicPrefix, t as detectProject } from "./detect-DYDUBLU4.js";
6
+ import { r as publicPrefix, t as detectProject } from "./detect-BeLVeNpA.js";
7
7
  import { existsSync } from "node:fs";
8
8
  import { resolve } from "node:path";
9
9
  import { readFile } from "node:fs/promises";