mtmsdk 0.0.51 → 0.0.52

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 (341) hide show
  1. package/dist/gomtmapi/@tanstack/react-query.gen.d.ts +1 -13
  2. package/dist/gomtmapi/@tanstack/react-query.gen.d.ts.map +1 -1
  3. package/dist/gomtmapi/@tanstack/react-query.gen.js +1 -37
  4. package/dist/gomtmapi/@tanstack/react-query.gen.js.map +1 -1
  5. package/dist/gomtmapi/index.d.ts +2 -2
  6. package/dist/gomtmapi/index.d.ts.map +1 -1
  7. package/dist/gomtmapi/index.js +1 -1
  8. package/dist/gomtmapi/index.js.map +1 -1
  9. package/dist/gomtmapi/schemas.gen.d.ts +0 -57
  10. package/dist/gomtmapi/schemas.gen.d.ts.map +1 -1
  11. package/dist/gomtmapi/schemas.gen.js +0 -60
  12. package/dist/gomtmapi/schemas.gen.js.map +1 -1
  13. package/dist/gomtmapi/sdk.gen.d.ts +1 -13
  14. package/dist/gomtmapi/sdk.gen.d.ts.map +1 -1
  15. package/dist/gomtmapi/sdk.gen.js +0 -26
  16. package/dist/gomtmapi/sdk.gen.js.map +1 -1
  17. package/dist/gomtmapi/types.gen.d.ts +0 -94
  18. package/dist/gomtmapi/types.gen.d.ts.map +1 -1
  19. package/dist/gomtmapi/zod.gen.d.ts +0 -62
  20. package/dist/gomtmapi/zod.gen.d.ts.map +1 -1
  21. package/dist/gomtmapi/zod.gen.js +0 -51
  22. package/dist/gomtmapi/zod.gen.js.map +1 -1
  23. package/dist/index.d.ts +1 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/lib/schema.d.ts +1 -11
  28. package/dist/lib/schema.d.ts.map +1 -1
  29. package/dist/lib/schema.js +0 -9
  30. package/dist/lib/schema.js.map +1 -1
  31. package/dist/mtgate_api/client.gen.d.ts.map +1 -1
  32. package/dist/mtgate_api/client.gen.js +1 -1
  33. package/dist/mtgate_api/client.gen.js.map +1 -1
  34. package/dist/mtgate_api/index.d.ts +2 -2
  35. package/dist/mtgate_api/index.d.ts.map +1 -1
  36. package/dist/mtgate_api/index.js +1 -1
  37. package/dist/mtgate_api/index.js.map +1 -1
  38. package/dist/mtgate_api/sdk.gen.d.ts +0 -8
  39. package/dist/mtgate_api/sdk.gen.d.ts.map +1 -1
  40. package/dist/mtgate_api/sdk.gen.js +1 -29
  41. package/dist/mtgate_api/sdk.gen.js.map +1 -1
  42. package/dist/mtgate_api/types.gen.d.ts +1 -200
  43. package/dist/mtgate_api/types.gen.d.ts.map +1 -1
  44. package/dist/openclaw/gateway.d.ts.map +1 -1
  45. package/dist/openclaw/gateway.js +1 -1
  46. package/dist/openclaw/gateway.js.map +1 -1
  47. package/dist/sbmng/@tanstack/react-query.gen.d.ts +39 -65
  48. package/dist/sbmng/@tanstack/react-query.gen.d.ts.map +1 -1
  49. package/dist/sbmng/@tanstack/react-query.gen.js +19 -65
  50. package/dist/sbmng/@tanstack/react-query.gen.js.map +1 -1
  51. package/dist/sbmng/index.d.ts +2 -2
  52. package/dist/sbmng/index.d.ts.map +1 -1
  53. package/dist/sbmng/index.js +1 -1
  54. package/dist/sbmng/index.js.map +1 -1
  55. package/dist/sbmng/schemas.gen.d.ts +6 -95
  56. package/dist/sbmng/schemas.gen.d.ts.map +1 -1
  57. package/dist/sbmng/schemas.gen.js +7 -139
  58. package/dist/sbmng/schemas.gen.js.map +1 -1
  59. package/dist/sbmng/sdk.gen.d.ts +7 -17
  60. package/dist/sbmng/sdk.gen.d.ts.map +1 -1
  61. package/dist/sbmng/sdk.gen.js +10 -32
  62. package/dist/sbmng/sdk.gen.js.map +1 -1
  63. package/dist/sbmng/types.gen.d.ts +41 -157
  64. package/dist/sbmng/types.gen.d.ts.map +1 -1
  65. package/dist/supabase/supabase-client.d.ts +85 -181
  66. package/dist/supabase/supabase-client.d.ts.map +1 -1
  67. package/dist/supabase/supabase.d.ts +170 -362
  68. package/dist/supabase/supabase.d.ts.map +1 -1
  69. package/dist/supabase/use-sb-query/build-query-opts.d.ts +6 -2
  70. package/dist/supabase/use-sb-query/build-query-opts.d.ts.map +1 -1
  71. package/dist/supabase/use-sb-query/build-query-opts.js +8 -4
  72. package/dist/supabase/use-sb-query/build-query-opts.js.map +1 -1
  73. package/dist/supabase/use-sb-query/use-query.d.ts +9 -6
  74. package/dist/supabase/use-sb-query/use-query.d.ts.map +1 -1
  75. package/dist/supabase/use-sb-query/use-query.js.map +1 -1
  76. package/dist/supabase/use-sb-query/use-rpc-query.d.ts +25 -17
  77. package/dist/supabase/use-sb-query/use-rpc-query.d.ts.map +1 -1
  78. package/dist/supabase/use-sb-query/use-rpc-query.js +48 -26
  79. package/dist/supabase/use-sb-query/use-rpc-query.js.map +1 -1
  80. package/dist/types/database.schemas.d.ts +129 -222
  81. package/dist/types/database.schemas.d.ts.map +1 -1
  82. package/dist/types/database.schemas.js +112 -124
  83. package/dist/types/database.schemas.js.map +1 -1
  84. package/dist/types/database.types.d.ts +85 -181
  85. package/dist/types/database.types.d.ts.map +1 -1
  86. package/dist/types/database.types.js.map +1 -1
  87. package/dist/types/index.d.ts +30 -59
  88. package/dist/types/index.d.ts.map +1 -1
  89. package/dist/types/index.js +16 -3
  90. package/dist/types/index.js.map +1 -1
  91. package/package.json +105 -110
  92. package/src/cloud-account/platform-configs.ts +73 -73
  93. package/src/gomtmapi/@tanstack/react-query.gen.ts +537 -575
  94. package/src/gomtmapi/client/client.gen.ts +311 -311
  95. package/src/gomtmapi/client/index.ts +25 -25
  96. package/src/gomtmapi/client/types.gen.ts +241 -241
  97. package/src/gomtmapi/client/utils.gen.ts +332 -332
  98. package/src/gomtmapi/client.gen.ts +16 -16
  99. package/src/gomtmapi/core/auth.gen.ts +42 -42
  100. package/src/gomtmapi/core/bodySerializer.gen.ts +100 -100
  101. package/src/gomtmapi/core/params.gen.ts +176 -176
  102. package/src/gomtmapi/core/pathSerializer.gen.ts +181 -181
  103. package/src/gomtmapi/core/queryKeySerializer.gen.ts +136 -136
  104. package/src/gomtmapi/core/serverSentEvents.gen.ts +266 -266
  105. package/src/gomtmapi/core/types.gen.ts +118 -118
  106. package/src/gomtmapi/core/utils.gen.ts +143 -143
  107. package/src/gomtmapi/index.ts +4 -4
  108. package/src/gomtmapi/schemas.gen.ts +532 -596
  109. package/src/gomtmapi/sdk.gen.ts +371 -399
  110. package/src/gomtmapi/types.gen.ts +854 -962
  111. package/src/gomtmapi/zod.gen.ts +448 -507
  112. package/src/index.ts +4 -5
  113. package/src/lib/aisdk/types.ts +7 -7
  114. package/src/lib/logger/index.ts +8 -8
  115. package/src/lib/schema.ts +37 -50
  116. package/src/mtgate_api/client/client.gen.ts +311 -311
  117. package/src/mtgate_api/client/index.ts +25 -25
  118. package/src/mtgate_api/client/types.gen.ts +241 -241
  119. package/src/mtgate_api/client/utils.gen.ts +332 -332
  120. package/src/mtgate_api/client.gen.ts +16 -16
  121. package/src/mtgate_api/core/auth.gen.ts +42 -42
  122. package/src/mtgate_api/core/bodySerializer.gen.ts +100 -100
  123. package/src/mtgate_api/core/params.gen.ts +176 -176
  124. package/src/mtgate_api/core/pathSerializer.gen.ts +181 -181
  125. package/src/mtgate_api/core/queryKeySerializer.gen.ts +136 -136
  126. package/src/mtgate_api/core/serverSentEvents.gen.ts +266 -266
  127. package/src/mtgate_api/core/types.gen.ts +118 -118
  128. package/src/mtgate_api/core/utils.gen.ts +143 -143
  129. package/src/mtgate_api/index.ts +4 -4
  130. package/src/mtgate_api/sdk.gen.ts +17 -54
  131. package/src/mtgate_api/types.gen.ts +5 -239
  132. package/src/openclaw/client-info.ts +54 -54
  133. package/src/openclaw/device-auth-utils.ts +26 -26
  134. package/src/openclaw/device-auth.ts +99 -99
  135. package/src/openclaw/device-identity.ts +108 -108
  136. package/src/openclaw/gateway.ts +392 -392
  137. package/src/openclaw/types.ts +518 -518
  138. package/src/sbmng/@tanstack/react-query.gen.ts +2967 -3017
  139. package/src/sbmng/client/client.gen.ts +311 -311
  140. package/src/sbmng/client/index.ts +25 -25
  141. package/src/sbmng/client/types.gen.ts +241 -241
  142. package/src/sbmng/client/utils.gen.ts +332 -332
  143. package/src/sbmng/client.gen.ts +16 -16
  144. package/src/sbmng/core/auth.gen.ts +42 -42
  145. package/src/sbmng/core/bodySerializer.gen.ts +100 -100
  146. package/src/sbmng/core/params.gen.ts +176 -176
  147. package/src/sbmng/core/pathSerializer.gen.ts +181 -181
  148. package/src/sbmng/core/queryKeySerializer.gen.ts +136 -136
  149. package/src/sbmng/core/serverSentEvents.gen.ts +266 -266
  150. package/src/sbmng/core/types.gen.ts +118 -118
  151. package/src/sbmng/core/utils.gen.ts +143 -143
  152. package/src/sbmng/index.ts +4 -4
  153. package/src/sbmng/schemas.gen.ts +9671 -9805
  154. package/src/sbmng/sdk.gen.ts +1755 -1780
  155. package/src/sbmng/types.gen.ts +7886 -8016
  156. package/src/supabase/auth-provider.tsx +67 -67
  157. package/src/supabase/context.tsx +51 -51
  158. package/src/supabase/cursor-pagination.ts +155 -155
  159. package/src/supabase/schema/browser.ts +44 -44
  160. package/src/supabase/schema/index.ts +25 -25
  161. package/src/supabase/supabase-client.ts +30 -30
  162. package/src/supabase/supabase.ts +67 -67
  163. package/src/supabase/use-sb-query/build-query-opts.ts +68 -56
  164. package/src/supabase/use-sb-query/key.ts +57 -57
  165. package/src/supabase/use-sb-query/use-query.ts +352 -340
  166. package/src/supabase/use-sb-query/use-rpc-mutation.ts +83 -83
  167. package/src/supabase/use-sb-query/use-rpc-query.ts +267 -231
  168. package/src/supabase/utils.ts +75 -75
  169. package/src/types/database.schemas.ts +4359 -4378
  170. package/src/types/database.types.ts +4182 -4288
  171. package/src/types/index.ts +85 -102
  172. package/dist/adk/api/client.d.ts +0 -9
  173. package/dist/adk/api/client.d.ts.map +0 -1
  174. package/dist/adk/api/client.js +0 -39
  175. package/dist/adk/api/client.js.map +0 -1
  176. package/dist/adk/core/constants/tool-icons.d.ts +0 -21
  177. package/dist/adk/core/constants/tool-icons.d.ts.map +0 -1
  178. package/dist/adk/core/constants/tool-icons.js +0 -47
  179. package/dist/adk/core/constants/tool-icons.js.map +0 -1
  180. package/dist/adk/core/models/AgentBuilder.d.ts +0 -77
  181. package/dist/adk/core/models/AgentBuilder.d.ts.map +0 -1
  182. package/dist/adk/core/models/AgentBuilder.js +0 -18
  183. package/dist/adk/core/models/AgentBuilder.js.map +0 -1
  184. package/dist/adk/core/models/AgentRunRequest.d.ts +0 -37
  185. package/dist/adk/core/models/AgentRunRequest.d.ts.map +0 -1
  186. package/dist/adk/core/models/AgentRunRequest.js +0 -18
  187. package/dist/adk/core/models/AgentRunRequest.js.map +0 -1
  188. package/dist/adk/core/models/Eval.d.ts +0 -55
  189. package/dist/adk/core/models/Eval.d.ts.map +0 -1
  190. package/dist/adk/core/models/Eval.js +0 -27
  191. package/dist/adk/core/models/Eval.js.map +0 -1
  192. package/dist/adk/core/models/LiveRequest.d.ts +0 -23
  193. package/dist/adk/core/models/LiveRequest.d.ts.map +0 -1
  194. package/dist/adk/core/models/LiveRequest.js +0 -18
  195. package/dist/adk/core/models/LiveRequest.js.map +0 -1
  196. package/dist/adk/core/models/RuntimeConfig.d.ts +0 -32
  197. package/dist/adk/core/models/RuntimeConfig.d.ts.map +0 -1
  198. package/dist/adk/core/models/RuntimeConfig.js +0 -18
  199. package/dist/adk/core/models/RuntimeConfig.js.map +0 -1
  200. package/dist/adk/core/models/Session.d.ts +0 -117
  201. package/dist/adk/core/models/Session.d.ts.map +0 -1
  202. package/dist/adk/core/models/Session.js +0 -31
  203. package/dist/adk/core/models/Session.js.map +0 -1
  204. package/dist/adk/core/models/Trace.d.ts +0 -40
  205. package/dist/adk/core/models/Trace.d.ts.map +0 -1
  206. package/dist/adk/core/models/Trace.js +0 -2
  207. package/dist/adk/core/models/Trace.js.map +0 -1
  208. package/dist/adk/core/models/types.d.ts +0 -338
  209. package/dist/adk/core/models/types.d.ts.map +0 -1
  210. package/dist/adk/core/models/types.js +0 -189
  211. package/dist/adk/core/models/types.js.map +0 -1
  212. package/dist/lib/utils.d.ts +0 -14
  213. package/dist/lib/utils.d.ts.map +0 -1
  214. package/dist/lib/utils.js +0 -45
  215. package/dist/lib/utils.js.map +0 -1
  216. package/dist/mtgate_api/@tanstack/react-query.gen.d.ts +0 -166
  217. package/dist/mtgate_api/@tanstack/react-query.gen.d.ts.map +0 -1
  218. package/dist/mtgate_api/@tanstack/react-query.gen.js +0 -118
  219. package/dist/mtgate_api/@tanstack/react-query.gen.js.map +0 -1
  220. package/dist/mtgate_api/schemas.gen.d.ts +0 -233
  221. package/dist/mtgate_api/schemas.gen.d.ts.map +0 -1
  222. package/dist/mtgate_api/schemas.gen.js +0 -277
  223. package/dist/mtgate_api/schemas.gen.js.map +0 -1
  224. package/dist/mtgate_api/zod.gen.d.ts +0 -321
  225. package/dist/mtgate_api/zod.gen.d.ts.map +0 -1
  226. package/dist/mtgate_api/zod.gen.js +0 -148
  227. package/dist/mtgate_api/zod.gen.js.map +0 -1
  228. package/dist/mtmai_api/@tanstack/react-query.gen.d.ts +0 -949
  229. package/dist/mtmai_api/@tanstack/react-query.gen.d.ts.map +0 -1
  230. package/dist/mtmai_api/@tanstack/react-query.gen.js +0 -917
  231. package/dist/mtmai_api/@tanstack/react-query.gen.js.map +0 -1
  232. package/dist/mtmai_api/client/client.gen.d.ts +0 -3
  233. package/dist/mtmai_api/client/client.gen.d.ts.map +0 -1
  234. package/dist/mtmai_api/client/client.gen.js +0 -236
  235. package/dist/mtmai_api/client/client.gen.js.map +0 -1
  236. package/dist/mtmai_api/client/index.d.ts +0 -9
  237. package/dist/mtmai_api/client/index.d.ts.map +0 -1
  238. package/dist/mtmai_api/client/index.js +0 -7
  239. package/dist/mtmai_api/client/index.js.map +0 -1
  240. package/dist/mtmai_api/client/types.gen.d.ts +0 -118
  241. package/dist/mtmai_api/client/types.gen.d.ts.map +0 -1
  242. package/dist/mtmai_api/client/types.gen.js +0 -3
  243. package/dist/mtmai_api/client/types.gen.js.map +0 -1
  244. package/dist/mtmai_api/client/utils.gen.d.ts +0 -34
  245. package/dist/mtmai_api/client/utils.gen.d.ts.map +0 -1
  246. package/dist/mtmai_api/client/utils.gen.js +0 -232
  247. package/dist/mtmai_api/client/utils.gen.js.map +0 -1
  248. package/dist/mtmai_api/client.gen.d.ts +0 -13
  249. package/dist/mtmai_api/client.gen.d.ts.map +0 -1
  250. package/dist/mtmai_api/client.gen.js +0 -4
  251. package/dist/mtmai_api/client.gen.js.map +0 -1
  252. package/dist/mtmai_api/core/auth.gen.d.ts +0 -19
  253. package/dist/mtmai_api/core/auth.gen.d.ts.map +0 -1
  254. package/dist/mtmai_api/core/auth.gen.js +0 -15
  255. package/dist/mtmai_api/core/auth.gen.js.map +0 -1
  256. package/dist/mtmai_api/core/bodySerializer.gen.d.ts +0 -26
  257. package/dist/mtmai_api/core/bodySerializer.gen.d.ts.map +0 -1
  258. package/dist/mtmai_api/core/bodySerializer.gen.js +0 -58
  259. package/dist/mtmai_api/core/bodySerializer.gen.js.map +0 -1
  260. package/dist/mtmai_api/core/params.gen.d.ts +0 -44
  261. package/dist/mtmai_api/core/params.gen.d.ts.map +0 -1
  262. package/dist/mtmai_api/core/params.gen.js +0 -101
  263. package/dist/mtmai_api/core/params.gen.js.map +0 -1
  264. package/dist/mtmai_api/core/pathSerializer.gen.d.ts +0 -34
  265. package/dist/mtmai_api/core/pathSerializer.gen.d.ts.map +0 -1
  266. package/dist/mtmai_api/core/pathSerializer.gen.js +0 -115
  267. package/dist/mtmai_api/core/pathSerializer.gen.js.map +0 -1
  268. package/dist/mtmai_api/core/queryKeySerializer.gen.d.ts +0 -19
  269. package/dist/mtmai_api/core/queryKeySerializer.gen.d.ts.map +0 -1
  270. package/dist/mtmai_api/core/queryKeySerializer.gen.js +0 -100
  271. package/dist/mtmai_api/core/queryKeySerializer.gen.js.map +0 -1
  272. package/dist/mtmai_api/core/serverSentEvents.gen.d.ts +0 -72
  273. package/dist/mtmai_api/core/serverSentEvents.gen.d.ts.map +0 -1
  274. package/dist/mtmai_api/core/serverSentEvents.gen.js +0 -138
  275. package/dist/mtmai_api/core/serverSentEvents.gen.js.map +0 -1
  276. package/dist/mtmai_api/core/types.gen.d.ts +0 -79
  277. package/dist/mtmai_api/core/types.gen.d.ts.map +0 -1
  278. package/dist/mtmai_api/core/types.gen.js +0 -3
  279. package/dist/mtmai_api/core/types.gen.js.map +0 -1
  280. package/dist/mtmai_api/core/utils.gen.d.ts +0 -20
  281. package/dist/mtmai_api/core/utils.gen.d.ts.map +0 -1
  282. package/dist/mtmai_api/core/utils.gen.js +0 -88
  283. package/dist/mtmai_api/core/utils.gen.js.map +0 -1
  284. package/dist/mtmai_api/index.d.ts +0 -3
  285. package/dist/mtmai_api/index.d.ts.map +0 -1
  286. package/dist/mtmai_api/index.js +0 -4
  287. package/dist/mtmai_api/index.js.map +0 -1
  288. package/dist/mtmai_api/schemas.gen.d.ts +0 -7721
  289. package/dist/mtmai_api/schemas.gen.d.ts.map +0 -1
  290. package/dist/mtmai_api/schemas.gen.js +0 -9774
  291. package/dist/mtmai_api/schemas.gen.js.map +0 -1
  292. package/dist/mtmai_api/sdk.gen.d.ts +0 -282
  293. package/dist/mtmai_api/sdk.gen.d.ts.map +0 -1
  294. package/dist/mtmai_api/sdk.gen.js +0 -404
  295. package/dist/mtmai_api/sdk.gen.js.map +0 -1
  296. package/dist/mtmai_api/types.gen.d.ts +0 -7152
  297. package/dist/mtmai_api/types.gen.d.ts.map +0 -1
  298. package/dist/mtmai_api/types.gen.js +0 -253
  299. package/dist/mtmai_api/types.gen.js.map +0 -1
  300. package/dist/mtmai_api/zod.gen.d.ts +0 -55827
  301. package/dist/mtmai_api/zod.gen.d.ts.map +0 -1
  302. package/dist/mtmai_api/zod.gen.js +0 -4805
  303. package/dist/mtmai_api/zod.gen.js.map +0 -1
  304. package/dist/supabase/use-sb-query/prefetch.d.ts +0 -10
  305. package/dist/supabase/use-sb-query/prefetch.d.ts.map +0 -1
  306. package/dist/supabase/use-sb-query/prefetch.js +0 -14
  307. package/dist/supabase/use-sb-query/prefetch.js.map +0 -1
  308. package/src/adk/api/client.ts +0 -46
  309. package/src/adk/core/constants/tool-icons.ts +0 -51
  310. package/src/adk/core/models/AgentBuilder.ts +0 -80
  311. package/src/adk/core/models/AgentRunRequest.ts +0 -33
  312. package/src/adk/core/models/Eval.ts +0 -70
  313. package/src/adk/core/models/LiveRequest.ts +0 -23
  314. package/src/adk/core/models/RuntimeConfig.ts +0 -33
  315. package/src/adk/core/models/Session.ts +0 -52
  316. package/src/adk/core/models/Trace.ts +0 -42
  317. package/src/adk/core/models/types.ts +0 -255
  318. package/src/lib/utils.ts +0 -54
  319. package/src/mtgate_api/@tanstack/react-query.gen.ts +0 -142
  320. package/src/mtgate_api/schemas.gen.ts +0 -290
  321. package/src/mtgate_api/zod.gen.ts +0 -176
  322. package/src/mtmai_api/@tanstack/react-query.gen.ts +0 -1010
  323. package/src/mtmai_api/client/client.gen.ts +0 -311
  324. package/src/mtmai_api/client/index.ts +0 -25
  325. package/src/mtmai_api/client/types.gen.ts +0 -241
  326. package/src/mtmai_api/client/utils.gen.ts +0 -332
  327. package/src/mtmai_api/client.gen.ts +0 -16
  328. package/src/mtmai_api/core/auth.gen.ts +0 -42
  329. package/src/mtmai_api/core/bodySerializer.gen.ts +0 -100
  330. package/src/mtmai_api/core/params.gen.ts +0 -176
  331. package/src/mtmai_api/core/pathSerializer.gen.ts +0 -181
  332. package/src/mtmai_api/core/queryKeySerializer.gen.ts +0 -136
  333. package/src/mtmai_api/core/serverSentEvents.gen.ts +0 -266
  334. package/src/mtmai_api/core/types.gen.ts +0 -118
  335. package/src/mtmai_api/core/utils.gen.ts +0 -143
  336. package/src/mtmai_api/index.ts +0 -4
  337. package/src/mtmai_api/schemas.gen.ts +0 -9980
  338. package/src/mtmai_api/sdk.gen.ts +0 -471
  339. package/src/mtmai_api/types.gen.ts +0 -7609
  340. package/src/mtmai_api/zod.gen.ts +0 -5101
  341. package/src/supabase/use-sb-query/prefetch.ts +0 -59
@@ -1,340 +1,352 @@
1
- /**
2
- * 将 supabase api封装位 react query的 形式.
3
- * 原官方库: https://github.com/psteinroe/supabase-cache-helpers
4
- */
5
-
6
- import type {
7
- AnyPostgrestResponse,
8
- BuildNormalizedQueryOps,
9
- PostgrestQueryParserOptions,
10
- } from "@supabase-cache-helpers/postgrest-core";
11
- import { PostgrestFilter, encodeObject, type DecodedKey } from "@supabase-cache-helpers/postgrest-core";
12
- import type {
13
- PostgrestError,
14
- PostgrestMaybeSingleResponse,
15
- PostgrestResponse,
16
- PostgrestResponseSuccess,
17
- PostgrestSingleResponse,
18
- } from "@supabase/postgrest-js";
19
- import {
20
- useQueryClient,
21
- useQuery as useReactQuery,
22
- useSuspenseQuery as useReactSuspenseQuery,
23
- type UseQueryOptions as UseReactQueryOptions,
24
- type UseQueryResult as UseReactQueryResult,
25
- type UseSuspenseQueryResult as UseReactSuspenseQueryResult,
26
- type UseSuspenseQueryOptions as UserReactSuspenseQueryOptions,
27
- } from "@tanstack/react-query";
28
- import { buildQueryOpts, buildSuspenseQueryOpts } from "./build-query-opts";
29
- import { decode, encode } from "./key";
30
-
31
- export const KEY_PREFIX = "postgrest";
32
- export const INFINITE_KEY_PREFIX = "page";
33
-
34
- export type DecodedReactQueryKey = DecodedKey & {
35
- isInfinite: boolean;
36
- key: string[];
37
- };
38
-
39
- export const POSTGREST_FILTER_KEY_PREFIX = "postgrest-filter";
40
-
41
- export const usePostgrestFilterCache = <R extends Record<string, unknown>>() => {
42
- const queryClient = useQueryClient();
43
-
44
- return (query: string, opts?: PostgrestQueryParserOptions) => {
45
- const key = [POSTGREST_FILTER_KEY_PREFIX, query, opts ? encodeObject(opts) : null];
46
- const cacheData = queryClient.getQueryData(key);
47
- if (cacheData instanceof PostgrestFilter) {
48
- return cacheData;
49
- }
50
- const filter = PostgrestFilter.fromQuery(query, opts);
51
- queryClient.setQueryData(key, filter);
52
- return filter as PostgrestFilter<R>;
53
- };
54
- };
55
-
56
- export const useQueriesForTableLoader = (table: string) => {
57
- const queryClient = useQueryClient();
58
- const getPostgrestFilter = usePostgrestFilterCache();
59
-
60
- return () =>
61
- queryClient
62
- .getQueryCache()
63
- .getAll()
64
- .map((c) => c.queryKey)
65
- .reduce<ReturnType<BuildNormalizedQueryOps["queriesForTable"]>>((prev, curr) => {
66
- const decodedKey = decode(curr);
67
- if (decodedKey?.table === table) {
68
- prev.push(getPostgrestFilter(decodedKey.queryKey).params);
69
- }
70
- return prev;
71
- }, []);
72
- };
73
-
74
- /**
75
- * Applies Omit over a union, while preserving its union-ness.
76
- */
77
- // biome-ignore lint/suspicious/noExplicitAny: keyof any 是 TypeScript 泛型约束的标准用法
78
- type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;
79
-
80
- /**
81
- * Represents the return value of the `useQuery` hook when `query` is expected to return
82
- * a single row.
83
- */
84
- export type UseQuerySingleReturn<Result> = DistributiveOmit<
85
- UseReactQueryResult<PostgrestSingleResponse<Result>["data"], PostgrestError>,
86
- "refetch"
87
- > &
88
- Pick<UseReactQueryResult<PostgrestSingleResponse<Result>, PostgrestError>, "refetch"> &
89
- Pick<PostgrestSingleResponse<Result>, "count">;
90
-
91
- /**
92
- * Represents the return value of the `useQuery` hook when `query` is expected to return
93
- * either a single row or an empty response.
94
- */
95
- export type UseQueryMaybeSingleReturn<Result> = DistributiveOmit<
96
- UseReactQueryResult<PostgrestMaybeSingleResponse<Result>["data"], PostgrestError>,
97
- "refetch"
98
- > &
99
- Pick<UseReactQueryResult<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "refetch"> &
100
- Pick<PostgrestMaybeSingleResponse<Result>, "count">;
101
-
102
- /**
103
- * Represents the return value of the `useQuery` hook when `query` is expected to return
104
- * one or more rows.
105
- */
106
- export type UseQueryReturn<Result> = DistributiveOmit<
107
- UseReactQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
108
- "refetch"
109
- > &
110
- Pick<UseReactQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
111
- Pick<PostgrestResponse<Result>, "count">;
112
-
113
- /**
114
- * Represents the return value of the `useQuery` hook when the type of the query response
115
- * is not known.
116
- */
117
- export type UseQueryAnyReturn<Result> = DistributiveOmit<
118
- UseReactQueryResult<AnyPostgrestResponse<Result>["data"], PostgrestError>,
119
- "refetch"
120
- > &
121
- Pick<UseReactQueryResult<AnyPostgrestResponse<Result>, PostgrestError>, "refetch"> &
122
- Pick<AnyPostgrestResponse<Result>, "count">;
123
-
124
- /**
125
- * React hook to execute a PostgREST query and return a single item response.
126
- *
127
- * @param {PromiseLike<PostgrestSingleResponse<Result>>} query A promise that resolves to a PostgREST single item response.
128
- * @param {Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
129
- * @returns {UseQuerySingleReturn<Result>} The hook result containing the single item response data.
130
- */
131
- function useQuery<Result>(
132
- query: PromiseLike<PostgrestSingleResponse<Result>>,
133
- config?: Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
134
- ): UseQuerySingleReturn<Result>;
135
- /**
136
- * React hook to execute a PostgREST query and return a maybe single item response.
137
- *
138
- * @param {PromiseLike<PostgrestMaybeSingleResponse<Result>>} query A promise that resolves to a PostgREST maybe single item response.
139
- * @param {Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
140
- * @returns {UseQueryMaybeSingleReturn<Result>} The hook result containing the maybe single item response data.
141
- */
142
- function useQuery<Result>(
143
- query: PromiseLike<PostgrestMaybeSingleResponse<Result>>,
144
- config?: Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
145
- ): UseQueryMaybeSingleReturn<Result>;
146
- /**
147
- * React hook to execute a PostgREST query.
148
- *
149
- * @template Result The expected response data type.
150
- * @param {PromiseLike<PostgrestResponse<Result>>} query A promise that resolves to a PostgREST response.
151
- * @param {Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
152
- * @returns {UseQueryReturn<Result>} The hook result containing the response data.
153
- */
154
- function useQuery<Result>(
155
- query: PromiseLike<PostgrestResponse<Result>>,
156
- config?: Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
157
- ): UseQueryReturn<Result>;
158
-
159
- /**
160
- * React hook to execute a PostgREST query.
161
- *
162
- * @template Result The expected response data type.
163
- * @param {PromiseLike<AnyPostgrestResponse<Result>>} query A promise that resolves to a PostgREST response of any kind.
164
- * @param {Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
165
- * @returns {UseQueryAnyReturn<Result>} The hook result containing the response data.
166
- */
167
- function useQuery<Result>(
168
- query: PromiseLike<AnyPostgrestResponse<Result>>,
169
- config?: Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
170
- ): UseQueryAnyReturn<Result> {
171
- const result = useReactQuery<AnyPostgrestResponse<Result>, PostgrestError>(buildQueryOpts<Result>(query, config));
172
-
173
- // isPending and isLoadingError are the only cases in which no data is present
174
- if (result.isPending || result.isLoadingError) {
175
- return {
176
- ...result,
177
- data: undefined,
178
- count: null,
179
- } as UseQueryAnyReturn<Result>;
180
- }
181
-
182
- return {
183
- ...result,
184
- data: result.data?.data,
185
- count: result.data?.count,
186
- } as UseQueryAnyReturn<Result>;
187
- }
188
-
189
- export { useQuery };
190
-
191
- // 增加 queryQuery 获取函数
192
-
193
- /**
194
- * 获取 PostgREST 查询的完整 QueryKey
195
- * @param query Supabase PostgrestBuilder 实例 (例如: sb.from('...').select() 或 sb.rpc(...))
196
- * @param isInfinite 是否为无限查询 (默认 false)
197
- */
198
- export function getSbQueryKey<Result>(query: PromiseLike<AnyPostgrestResponse<Result>>, isInfinite = false): string[] {
199
- return encode(query, isInfinite);
200
- }
201
-
202
- /**
203
- * 获取 PostgREST 查询的 "Base Key" (仅包含前缀、Schema、Table/RPC名称)
204
- * 用于 invalidateQueries 时模糊匹配整个表或RPC的所有查询,忽略具体的 filter/page 参数。
205
- *
206
- * 结构: ['postgrest', 'null'|'page', schema, table|rpc, ...]
207
- * 返回: 前4个元素
208
- */
209
- export function getSbTableKey<Result>(query: PromiseLike<AnyPostgrestResponse<Result>>): string[] {
210
- const fullKey = encode(query, false);
211
- // 截取前4个元素作为基础Key: [prefix, infinitePrefix, schema, table]
212
- // 这样 invalidateQueries(baseKey) 将会匹配该表/RPC下的所有查询变体
213
- return fullKey.slice(0, 4);
214
- }
215
-
216
- // 增加 suspense query 的支持 ========================================================================================
217
-
218
- /**
219
- * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
220
- * a single row.
221
- */
222
- export type useSuspenseQuerySingleReturn<Result> = DistributiveOmit<
223
- UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<Result>["data"], PostgrestError>,
224
- "refetch"
225
- > &
226
- Pick<
227
- UseReactSuspenseQueryResult<
228
- // PostgrestSingleResponse<Result>,
229
- Result,
230
- PostgrestError
231
- >,
232
- "refetch"
233
- > &
234
- Pick<PostgrestSingleResponse<Result>, "count">;
235
-
236
- export type PostgrestMaybeSingleResponseV4<T> = PostgrestResponseSuccess<T>;
237
-
238
- /**
239
- * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
240
- * either a single row or an empty response.
241
- */
242
- export type useSuspenseQueryMaybeSingleReturn<Result> = DistributiveOmit<
243
- UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<NonNullable<Result>>["data"], PostgrestError>,
244
- "refetch"
245
- > &
246
- Pick<UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<NonNullable<Result>>, PostgrestError>, "refetch"> &
247
- Pick<PostgrestMaybeSingleResponseV4<Result>, "count">;
248
-
249
- /**
250
- * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
251
- * one or more rows.
252
- */
253
- export type useSuspenseQueryReturn<Result> = DistributiveOmit<
254
- UseReactSuspenseQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
255
- "refetch"
256
- > &
257
- Pick<UseReactSuspenseQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
258
- Pick<PostgrestResponse<Result>, "count">;
259
-
260
- /**
261
- * Represents the return value of the `useSuspenseQuery` hook when the type of the query response
262
- * is not known.
263
- */
264
- export type useSuspenseQueryAnyReturn<Result> = DistributiveOmit<
265
- UseReactSuspenseQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
266
- "refetch"
267
- > &
268
- Pick<UseReactSuspenseQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
269
- Pick<PostgrestResponse<Result>, "count">;
270
-
271
- /**
272
- * React hook to execute a PostgREST query and return a single item response.
273
- *
274
- * @param {PromiseLike<PostgrestSingleResponse<Result>>} query A promise that resolves to a PostgREST single item response.
275
- * @param {Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
276
- * @returns {useSuspenseQuerySingleReturn<Result>} The hook result containing the single item response data.
277
- */
278
- function useSbSuspenseQuery<Result>(
279
- query: PromiseLike<PostgrestSingleResponse<Result>>,
280
- config?: Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
281
- ): useSuspenseQuerySingleReturn<NonNullable<Result>>;
282
- /**
283
- * React hook to execute a PostgREST query and return a maybe single item response.
284
- *
285
- * @param {PromiseLike<PostgrestMaybeSingleResponse<Result>>} query A promise that resolves to a PostgREST maybe single item response.
286
- * @param {Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
287
- * @returns {useSuspenseQueryMaybeSingleReturn<Result>} The hook result containing the maybe single item response data.
288
- */
289
- function useSbSuspenseQuery<Result>(
290
- query: PromiseLike<PostgrestMaybeSingleResponse<Result>>,
291
- config?: Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
292
- ): useSuspenseQueryMaybeSingleReturn<NonNullable<Result>>;
293
- /**
294
- * React hook to execute a PostgREST query.
295
- *
296
- * @template Result The expected response data type.
297
- * @param {PromiseLike<PostgrestResponse<Result>>} query A promise that resolves to a PostgREST response.
298
- * @param {Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
299
- * @returns {useSuspenseQueryReturn<Result>} The hook result containing the response data.
300
- */
301
- function useSbSuspenseQuery<Result>(
302
- query: PromiseLike<PostgrestResponse<Result>>,
303
- config?: Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
304
- ): useSuspenseQueryReturn<NonNullable<Result>>;
305
-
306
- /**
307
- * React hook to execute a PostgREST query.
308
- *
309
- * @template Result The expected response data type.
310
- * @param {PromiseLike<AnyPostgrestResponse<Result>>} query A promise that resolves to a PostgREST response of any kind.
311
- * @param {Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
312
- * @returns {useSuspenseQueryAnyReturn<Result>} The hook result containing the response data.
313
- */
314
- function useSbSuspenseQuery<Result>(
315
- query: PromiseLike<PostgrestResponse<Result>>,
316
- config?: Omit<UserReactSuspenseQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn">,
317
- ): useSuspenseQueryReturn<NonNullable<Result>> {
318
- const result = useReactSuspenseQuery<AnyPostgrestResponse<Result>, PostgrestError>(
319
- buildSuspenseQueryOpts<Result>(query, config),
320
- );
321
-
322
- // isPending and isLoadingError are the only cases in which no data is present
323
- // if (result.isPending || result.isLoadingError) {
324
- // return {
325
- // ...result,
326
- // data: undefined,
327
- // count: null,
328
- // } //as useSuspenseQueryAnyReturn<Result>;
329
- // }
330
-
331
- return {
332
- ...result,
333
- data: result.data.data, // NonNullable<Result|Result[]>,
334
- count: result.data.count,
335
- } as useSuspenseQueryAnyReturn<NonNullable<Result>>;
336
- }
337
-
338
- export const useSbQuery = useQuery;
339
-
340
- export { useSbSuspenseQuery };
1
+ /**
2
+ * 将 supabase api封装位 react query的 形式.
3
+ * 原官方库: https://github.com/psteinroe/supabase-cache-helpers
4
+ */
5
+
6
+ import type {
7
+ AnyPostgrestResponse,
8
+ BuildNormalizedQueryOps,
9
+ PostgrestQueryParserOptions,
10
+ } from "@supabase-cache-helpers/postgrest-core";
11
+ import { PostgrestFilter, encodeObject, type DecodedKey } from "@supabase-cache-helpers/postgrest-core";
12
+ import type {
13
+ PostgrestError,
14
+ PostgrestMaybeSingleResponse,
15
+ PostgrestResponse,
16
+ PostgrestResponseSuccess,
17
+ PostgrestSingleResponse,
18
+ } from "@supabase/postgrest-js";
19
+ import {
20
+ useQueryClient,
21
+ useQuery as useReactQuery,
22
+ useSuspenseQuery as useReactSuspenseQuery,
23
+ type UseQueryOptions as UseReactQueryOptions,
24
+ type UseQueryResult as UseReactQueryResult,
25
+ type UseSuspenseQueryResult as UseReactSuspenseQueryResult,
26
+ type UseSuspenseQueryOptions as UserReactSuspenseQueryOptions,
27
+ } from "@tanstack/react-query";
28
+ import { buildQueryOpts, buildSuspenseQueryOpts } from "./build-query-opts";
29
+ import { decode, encode } from "./key";
30
+
31
+ export const KEY_PREFIX = "postgrest";
32
+ export const INFINITE_KEY_PREFIX = "page";
33
+
34
+ export type DecodedReactQueryKey = DecodedKey & {
35
+ isInfinite: boolean;
36
+ key: string[];
37
+ };
38
+
39
+ export const POSTGREST_FILTER_KEY_PREFIX = "postgrest-filter";
40
+
41
+ type QueryKeySuffixOption = {
42
+ queryKeySuffix?: readonly unknown[];
43
+ };
44
+
45
+ export const usePostgrestFilterCache = <R extends Record<string, unknown>>() => {
46
+ const queryClient = useQueryClient();
47
+
48
+ return (query: string, opts?: PostgrestQueryParserOptions) => {
49
+ const key = [POSTGREST_FILTER_KEY_PREFIX, query, opts ? encodeObject(opts) : null];
50
+ const cacheData = queryClient.getQueryData(key);
51
+ if (cacheData instanceof PostgrestFilter) {
52
+ return cacheData;
53
+ }
54
+ const filter = PostgrestFilter.fromQuery(query, opts);
55
+ queryClient.setQueryData(key, filter);
56
+ return filter as PostgrestFilter<R>;
57
+ };
58
+ };
59
+
60
+ export const useQueriesForTableLoader = (table: string) => {
61
+ const queryClient = useQueryClient();
62
+ const getPostgrestFilter = usePostgrestFilterCache();
63
+
64
+ return () =>
65
+ queryClient
66
+ .getQueryCache()
67
+ .getAll()
68
+ .map((c) => c.queryKey)
69
+ .reduce<ReturnType<BuildNormalizedQueryOps["queriesForTable"]>>((prev, curr) => {
70
+ const decodedKey = decode(curr);
71
+ if (decodedKey?.table === table) {
72
+ prev.push(getPostgrestFilter(decodedKey.queryKey).params);
73
+ }
74
+ return prev;
75
+ }, []);
76
+ };
77
+
78
+ /**
79
+ * Applies Omit over a union, while preserving its union-ness.
80
+ */
81
+ // biome-ignore lint/suspicious/noExplicitAny: keyof any TypeScript 泛型约束的标准用法
82
+ type DistributiveOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : never;
83
+
84
+ /**
85
+ * Represents the return value of the `useQuery` hook when `query` is expected to return
86
+ * a single row.
87
+ */
88
+ export type UseQuerySingleReturn<Result> = DistributiveOmit<
89
+ UseReactQueryResult<PostgrestSingleResponse<Result>["data"], PostgrestError>,
90
+ "refetch"
91
+ > &
92
+ Pick<UseReactQueryResult<PostgrestSingleResponse<Result>, PostgrestError>, "refetch"> &
93
+ Pick<PostgrestSingleResponse<Result>, "count">;
94
+
95
+ /**
96
+ * Represents the return value of the `useQuery` hook when `query` is expected to return
97
+ * either a single row or an empty response.
98
+ */
99
+ export type UseQueryMaybeSingleReturn<Result> = DistributiveOmit<
100
+ UseReactQueryResult<PostgrestMaybeSingleResponse<Result>["data"], PostgrestError>,
101
+ "refetch"
102
+ > &
103
+ Pick<UseReactQueryResult<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "refetch"> &
104
+ Pick<PostgrestMaybeSingleResponse<Result>, "count">;
105
+
106
+ /**
107
+ * Represents the return value of the `useQuery` hook when `query` is expected to return
108
+ * one or more rows.
109
+ */
110
+ export type UseQueryReturn<Result> = DistributiveOmit<
111
+ UseReactQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
112
+ "refetch"
113
+ > &
114
+ Pick<UseReactQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
115
+ Pick<PostgrestResponse<Result>, "count">;
116
+
117
+ /**
118
+ * Represents the return value of the `useQuery` hook when the type of the query response
119
+ * is not known.
120
+ */
121
+ export type UseQueryAnyReturn<Result> = DistributiveOmit<
122
+ UseReactQueryResult<AnyPostgrestResponse<Result>["data"], PostgrestError>,
123
+ "refetch"
124
+ > &
125
+ Pick<UseReactQueryResult<AnyPostgrestResponse<Result>, PostgrestError>, "refetch"> &
126
+ Pick<AnyPostgrestResponse<Result>, "count">;
127
+
128
+ /**
129
+ * React hook to execute a PostgREST query and return a single item response.
130
+ *
131
+ * @param {PromiseLike<PostgrestSingleResponse<Result>>} query A promise that resolves to a PostgREST single item response.
132
+ * @param {Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
133
+ * @returns {UseQuerySingleReturn<Result>} The hook result containing the single item response data.
134
+ */
135
+ function useQuery<Result>(
136
+ query: PromiseLike<PostgrestSingleResponse<Result>>,
137
+ config?: Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
138
+ QueryKeySuffixOption,
139
+ ): UseQuerySingleReturn<Result>;
140
+ /**
141
+ * React hook to execute a PostgREST query and return a maybe single item response.
142
+ *
143
+ * @param {PromiseLike<PostgrestMaybeSingleResponse<Result>>} query A promise that resolves to a PostgREST maybe single item response.
144
+ * @param {Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
145
+ * @returns {UseQueryMaybeSingleReturn<Result>} The hook result containing the maybe single item response data.
146
+ */
147
+ function useQuery<Result>(
148
+ query: PromiseLike<PostgrestMaybeSingleResponse<Result>>,
149
+ config?: Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
150
+ QueryKeySuffixOption,
151
+ ): UseQueryMaybeSingleReturn<Result>;
152
+ /**
153
+ * React hook to execute a PostgREST query.
154
+ *
155
+ * @template Result The expected response data type.
156
+ * @param {PromiseLike<PostgrestResponse<Result>>} query A promise that resolves to a PostgREST response.
157
+ * @param {Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
158
+ * @returns {UseQueryReturn<Result>} The hook result containing the response data.
159
+ */
160
+ function useQuery<Result>(
161
+ query: PromiseLike<PostgrestResponse<Result>>,
162
+ config?: Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
163
+ QueryKeySuffixOption,
164
+ ): UseQueryReturn<Result>;
165
+
166
+ /**
167
+ * React hook to execute a PostgREST query.
168
+ *
169
+ * @template Result The expected response data type.
170
+ * @param {PromiseLike<AnyPostgrestResponse<Result>>} query A promise that resolves to a PostgREST response of any kind.
171
+ * @param {Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
172
+ * @returns {UseQueryAnyReturn<Result>} The hook result containing the response data.
173
+ */
174
+ function useQuery<Result>(
175
+ query: PromiseLike<AnyPostgrestResponse<Result>>,
176
+ config?: Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
177
+ QueryKeySuffixOption,
178
+ ): UseQueryAnyReturn<Result> {
179
+ const result = useReactQuery<AnyPostgrestResponse<Result>, PostgrestError>(buildQueryOpts<Result>(query, config));
180
+
181
+ // isPending and isLoadingError are the only cases in which no data is present
182
+ if (result.isPending || result.isLoadingError) {
183
+ return {
184
+ ...result,
185
+ data: undefined,
186
+ count: null,
187
+ } as UseQueryAnyReturn<Result>;
188
+ }
189
+
190
+ return {
191
+ ...result,
192
+ data: result.data?.data,
193
+ count: result.data?.count,
194
+ } as UseQueryAnyReturn<Result>;
195
+ }
196
+
197
+ export { useQuery };
198
+
199
+ // 增加 queryQuery 获取函数
200
+
201
+ /**
202
+ * 获取 PostgREST 查询的完整 QueryKey
203
+ * @param query Supabase PostgrestBuilder 实例 (例如: sb.from('...').select() 或 sb.rpc(...))
204
+ * @param isInfinite 是否为无限查询 (默认 false)
205
+ */
206
+ export function getSbQueryKey<Result>(query: PromiseLike<AnyPostgrestResponse<Result>>, isInfinite = false): string[] {
207
+ return encode(query, isInfinite);
208
+ }
209
+
210
+ /**
211
+ * 获取 PostgREST 查询的 "Base Key" (仅包含前缀、Schema、Table/RPC名称)
212
+ * 用于 invalidateQueries 时模糊匹配整个表或RPC的所有查询,忽略具体的 filter/page 参数。
213
+ *
214
+ * 结构: ['postgrest', 'null'|'page', schema, table|rpc, ...]
215
+ * 返回: 前4个元素
216
+ */
217
+ export function getSbTableKey<Result>(query: PromiseLike<AnyPostgrestResponse<Result>>): string[] {
218
+ const fullKey = encode(query, false);
219
+ // 截取前4个元素作为基础Key: [prefix, infinitePrefix, schema, table]
220
+ // 这样 invalidateQueries(baseKey) 将会匹配该表/RPC下的所有查询变体
221
+ return fullKey.slice(0, 4);
222
+ }
223
+
224
+ // 增加 suspense query 的支持 ========================================================================================
225
+
226
+ /**
227
+ * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
228
+ * a single row.
229
+ */
230
+ export type useSuspenseQuerySingleReturn<Result> = DistributiveOmit<
231
+ UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<Result>["data"], PostgrestError>,
232
+ "refetch"
233
+ > &
234
+ Pick<
235
+ UseReactSuspenseQueryResult<
236
+ // PostgrestSingleResponse<Result>,
237
+ Result,
238
+ PostgrestError
239
+ >,
240
+ "refetch"
241
+ > &
242
+ Pick<PostgrestSingleResponse<Result>, "count">;
243
+
244
+ export type PostgrestMaybeSingleResponseV4<T> = PostgrestResponseSuccess<T>;
245
+
246
+ /**
247
+ * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
248
+ * either a single row or an empty response.
249
+ */
250
+ export type useSuspenseQueryMaybeSingleReturn<Result> = DistributiveOmit<
251
+ UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<NonNullable<Result>>["data"], PostgrestError>,
252
+ "refetch"
253
+ > &
254
+ Pick<UseReactSuspenseQueryResult<PostgrestMaybeSingleResponseV4<NonNullable<Result>>, PostgrestError>, "refetch"> &
255
+ Pick<PostgrestMaybeSingleResponseV4<Result>, "count">;
256
+
257
+ /**
258
+ * Represents the return value of the `useSuspenseQuery` hook when `query` is expected to return
259
+ * one or more rows.
260
+ */
261
+ export type useSuspenseQueryReturn<Result> = DistributiveOmit<
262
+ UseReactSuspenseQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
263
+ "refetch"
264
+ > &
265
+ Pick<UseReactSuspenseQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
266
+ Pick<PostgrestResponse<Result>, "count">;
267
+
268
+ /**
269
+ * Represents the return value of the `useSuspenseQuery` hook when the type of the query response
270
+ * is not known.
271
+ */
272
+ export type useSuspenseQueryAnyReturn<Result> = DistributiveOmit<
273
+ UseReactSuspenseQueryResult<PostgrestResponse<Result>["data"], PostgrestError>,
274
+ "refetch"
275
+ > &
276
+ Pick<UseReactSuspenseQueryResult<PostgrestResponse<Result>, PostgrestError>, "refetch"> &
277
+ Pick<PostgrestResponse<Result>, "count">;
278
+
279
+ /**
280
+ * React hook to execute a PostgREST query and return a single item response.
281
+ *
282
+ * @param {PromiseLike<PostgrestSingleResponse<Result>>} query A promise that resolves to a PostgREST single item response.
283
+ * @param {Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
284
+ * @returns {useSuspenseQuerySingleReturn<Result>} The hook result containing the single item response data.
285
+ */
286
+ function useSbSuspenseQuery<Result>(
287
+ query: PromiseLike<PostgrestSingleResponse<Result>>,
288
+ config?: Omit<UseReactQueryOptions<PostgrestSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
289
+ QueryKeySuffixOption,
290
+ ): useSuspenseQuerySingleReturn<NonNullable<Result>>;
291
+ /**
292
+ * React hook to execute a PostgREST query and return a maybe single item response.
293
+ *
294
+ * @param {PromiseLike<PostgrestMaybeSingleResponse<Result>>} query A promise that resolves to a PostgREST maybe single item response.
295
+ * @param {Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
296
+ * @returns {useSuspenseQueryMaybeSingleReturn<Result>} The hook result containing the maybe single item response data.
297
+ */
298
+ function useSbSuspenseQuery<Result>(
299
+ query: PromiseLike<PostgrestMaybeSingleResponse<Result>>,
300
+ config?: Omit<UseReactQueryOptions<PostgrestMaybeSingleResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
301
+ QueryKeySuffixOption,
302
+ ): useSuspenseQueryMaybeSingleReturn<NonNullable<Result>>;
303
+ /**
304
+ * React hook to execute a PostgREST query.
305
+ *
306
+ * @template Result The expected response data type.
307
+ * @param {PromiseLike<PostgrestResponse<Result>>} query A promise that resolves to a PostgREST response.
308
+ * @param {Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
309
+ * @returns {useSuspenseQueryReturn<Result>} The hook result containing the response data.
310
+ */
311
+ function useSbSuspenseQuery<Result>(
312
+ query: PromiseLike<PostgrestResponse<Result>>,
313
+ config?: Omit<UseReactQueryOptions<PostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
314
+ QueryKeySuffixOption,
315
+ ): useSuspenseQueryReturn<NonNullable<Result>>;
316
+
317
+ /**
318
+ * React hook to execute a PostgREST query.
319
+ *
320
+ * @template Result The expected response data type.
321
+ * @param {PromiseLike<AnyPostgrestResponse<Result>>} query A promise that resolves to a PostgREST response of any kind.
322
+ * @param {Omit<UseReactQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, 'queryKey' | 'queryFn'>} [config] The React Query options.
323
+ * @returns {useSuspenseQueryAnyReturn<Result>} The hook result containing the response data.
324
+ */
325
+ function useSbSuspenseQuery<Result>(
326
+ query: PromiseLike<PostgrestResponse<Result>>,
327
+ config?: Omit<UserReactSuspenseQueryOptions<AnyPostgrestResponse<Result>, PostgrestError>, "queryKey" | "queryFn"> &
328
+ QueryKeySuffixOption,
329
+ ): useSuspenseQueryReturn<NonNullable<Result>> {
330
+ const result = useReactSuspenseQuery<AnyPostgrestResponse<Result>, PostgrestError>(
331
+ buildSuspenseQueryOpts<Result>(query, config),
332
+ );
333
+
334
+ // isPending and isLoadingError are the only cases in which no data is present
335
+ // if (result.isPending || result.isLoadingError) {
336
+ // return {
337
+ // ...result,
338
+ // data: undefined,
339
+ // count: null,
340
+ // } //as useSuspenseQueryAnyReturn<Result>;
341
+ // }
342
+
343
+ return {
344
+ ...result,
345
+ data: result.data.data, // NonNullable<Result|Result[]>,
346
+ count: result.data.count,
347
+ } as useSuspenseQueryAnyReturn<NonNullable<Result>>;
348
+ }
349
+
350
+ export const useSbQuery = useQuery;
351
+
352
+ export { useSbSuspenseQuery };