mtmsdk 0.0.50 → 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,231 +1,267 @@
1
- /**
2
- * 简化版的 Supabase RPC 查询 Hook
3
- * 自动处理 Supabase Client 的获取,无需手动调用 useSupabaseBrowser()
4
- *
5
- * 使用示例:
6
- * ```tsx
7
- * // 方式1: 自动推断类型
8
- * const query1 = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" });
9
- *
10
- * // 方式2: 使用 Zod Schema 进行类型验证和推断 (推荐)
11
- * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
12
- * const query2 = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
13
- * schema: z.object({ rows: z.array(navItemSchema) })
14
- * });
15
- * // data 的类型为 { rows: { label: string; url?: string }[] } | undefined
16
- *
17
- * // 方式3: 显式泛型指定返回类型
18
- * type NavItem = { label: string; url?: string };
19
- * const query3 = useRpcQuery<NavItem[]>("dash_navitems_list", { p_location: "sidebar_admin" });
20
- * ```
21
- */
22
-
23
- import { useMemo } from "react";
24
- import type { z } from "zod";
25
- import type { SBFunctions } from "../../types";
26
- import { useSupabaseBrowser } from "../context";
27
- import {
28
- KEY_PREFIX,
29
- type UseQueryAnyReturn,
30
- type UseQuerySingleReturn,
31
- useSbQuery,
32
- useSbSuspenseQuery,
33
- } from "./use-query";
34
-
35
- /** 从 SBFunctions 中提取 RPC 函数名的类型 */
36
- export type RPCFunctionName = keyof SBFunctions;
37
-
38
- /**
39
- * 获取 RPC 查询的通用 Query Key 前缀 (用于 invalidation)
40
- * 对应 supabase-cache-helpers 生成的 key 结构: ['postgrest', 'null'|'page', schema, table|rpc, ...]
41
- *
42
- * @param functionName RPC 函数名
43
- * @returns Standard Query Key Prefix e.g. ["postgrest", "null", "public", "function_name"]
44
- */
45
- export function getRpcQueryKey(functionName: string): string[] {
46
- // 默认 schema 为 public, infinite prefix 默认为 "null" (即使是 infinite query, invalidate prefix 通常也能匹配?)
47
- // 注意: explicit invalidation 最好匹配 prefix.
48
- // supabase-cache-helpers 的 getSbTableKey 返回的是 4 个元素
49
- // 注: 对于 RPC,表名解析为 rpc/名称
50
- return [KEY_PREFIX, "null", "public", `rpc/${functionName}`];
51
- }
52
-
53
- /** 提取指定 RPC 函数的参数类型 */
54
- export type RPCFunctionArgs<T extends RPCFunctionName> = SBFunctions[T]["Args"] extends never
55
- ? Record<string, never>
56
- : SBFunctions[T]["Args"];
57
-
58
- /** 提取指定 RPC 函数的返回类型 */
59
- export type RPCFunctionReturns<T extends RPCFunctionName> = SBFunctions[T]["Returns"];
60
-
61
- /**
62
- * RPC 查询的额外选项
63
- */
64
- export interface RpcQueryOptions {
65
- /**
66
- * 可选的 Zod Schema 用于验证和推断返回类型
67
- * 当传入时,将自动验证数据并从 schema 推断类型
68
- *
69
- * @example
70
- * ```tsx
71
- * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
72
- * const resultSchema = z.object({ rows: z.array(navItemSchema), meta: z.any() });
73
- *
74
- * const { data } = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
75
- * schema: resultSchema
76
- * });
77
- * // data 类型自动推断为 { rows: { label: string; url?: string }[]; meta: any } | undefined
78
- * ```
79
- */
80
- schema?: z.ZodType;
81
- }
82
-
83
- /**
84
- * 基于 RPC 函数名和参数进行查询的 Hook (普通模式)
85
- *
86
- * @template TData 返回数据类型(显式指定或从数据库函数推断)
87
- * @param functionName RPC 函数名
88
- * @param args RPC 函数参数
89
- * @param options 配置选项,包含 React Query 配置和可选的 schema
90
- * @returns 查询结果
91
- *
92
- * @example
93
- * ```tsx
94
- * // 示例1: 基础使用(自动推断)
95
- * const { data } = useRpcQuery("sys_config_get", { p_key: "github_app" });
96
- *
97
- * // 示例2: 使用 Zod Schema(推荐)
98
- * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
99
- * const { data } = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
100
- * schema: z.object({ rows: z.array(navItemSchema), meta: z.any() })
101
- * });
102
- *
103
- * // 示例3: 显式泛型
104
- * type NavItem = { label: string; url?: string };
105
- * const { data } = useRpcQuery<NavItem[]>("dash_navitems_list", { p_location: "sidebar_admin" });
106
- * ```
107
- */
108
- // Overload 1: Schema provided -> Infer TData from Schema
109
- export function useRpcQuery<TFunc extends RPCFunctionName, TSchema extends z.ZodType>(
110
- functionName: TFunc,
111
- args: RPCFunctionArgs<TFunc> | undefined,
112
- options: { schema: TSchema } & Record<string, any>,
113
- ): UseQuerySingleReturn<z.infer<TSchema>>;
114
-
115
- // Overload 2: No schema provided -> Infer TData from Generic (defaulting to RPC return)
116
- export function useRpcQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
117
- functionName: TFunc,
118
- args?: RPCFunctionArgs<TFunc>,
119
- options?: { schema?: undefined } & Record<string, any>,
120
- ): UseQueryAnyReturn<TData>;
121
-
122
- // Overload 3: Legacy/Fallback
123
- export function useRpcQuery<TData = any>(
124
- functionName: string,
125
- args?: any,
126
- options?: { schema?: z.ZodType } & Record<string, any>,
127
- ): UseQueryAnyReturn<TData>;
128
-
129
- export function useRpcQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
130
- functionName: TFunc,
131
- args?: RPCFunctionArgs<TFunc>,
132
- options?: RpcQueryOptions & Record<string, any>,
133
- ): UseQueryAnyReturn<TData> {
134
- const sb = useSupabaseBrowser();
135
- const query = sb.rpc(functionName, args as never);
136
-
137
- const { schema, ...reactQueryConfig } = options || {};
138
-
139
- // biome-ignore lint/suspicious/noExplicitAny: 绕过 Supabase 内部类型系统
140
- const baseResult = useSbQuery(query as any, reactQueryConfig);
141
-
142
- // 如果提供了 schema,对数据进行验证和转换
143
- const transformedResult = useMemo(() => {
144
- if (!schema || !baseResult.data) {
145
- return baseResult;
146
- }
147
-
148
- try {
149
- const validatedData = schema.parse(baseResult.data);
150
- return {
151
- ...baseResult,
152
- data: validatedData as TData,
153
- };
154
- } catch (error) {
155
- console.error(`[useRpcQuery] Schema validation failed for ${String(functionName)}:`, error);
156
- // 验证失败时返回原始数据,避免阻断用户流程
157
- return baseResult;
158
- }
159
- }, [schema, baseResult, functionName]);
160
-
161
- return transformedResult as UseQueryAnyReturn<TData>;
162
- }
163
-
164
- /**
165
- * 基于 RPC 函数名和参数进行查询的 Hook (Suspense 模式)
166
- *
167
- * @template TData 返回数据类型(通过 schema 或泛型指定)
168
- * @param functionName RPC 函数名
169
- * @param args RPC 函数参数
170
- * @param options 配置选项
171
- * @returns Suspense 查询结果
172
- *
173
- * @example
174
- * ```tsx
175
- * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
176
- * const { data } = useRpcSuspenseQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
177
- * schema: z.object({ rows: z.array(navItemSchema) })
178
- * });
179
- * // data 类型: { rows: { label: string; url?: string }[] }
180
- * ```
181
- */
182
- // Overload 1: Schema provided
183
- export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TSchema extends z.ZodType>(
184
- functionName: TFunc,
185
- args: RPCFunctionArgs<TFunc> | undefined,
186
- // biome-ignore lint/suspicious/noExplicitAny: 允许传入 schema
187
- options: { schema: TSchema } & Omit<any, "queryKey" | "queryFn">,
188
- ): { data: z.infer<TSchema>; [key: string]: unknown };
189
-
190
- // Overload 2: No schema
191
- export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
192
- functionName: TFunc,
193
- args?: RPCFunctionArgs<TFunc>,
194
- // biome-ignore lint/suspicious/noExplicitAny: 普通模式
195
- options?: { schema?: undefined } & Omit<any, "queryKey" | "queryFn">,
196
- ): { data: TData; [key: string]: unknown };
197
-
198
- export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
199
- functionName: TFunc,
200
- args?: RPCFunctionArgs<TFunc>,
201
- // biome-ignore lint/suspicious/noExplicitAny: 绕过 Supabase 和 ReactQuery 过于复杂的类型推断系统,保持对外类型安全
202
- options?: RpcQueryOptions & Omit<any, "queryKey" | "queryFn">,
203
- ): { data: TData; [key: string]: unknown } {
204
- const sb = useSupabaseBrowser();
205
- const query = sb.rpc(functionName, args as never);
206
-
207
- const { schema, ...reactQueryConfig } = options || {};
208
-
209
- // biome-ignore lint/suspicious/noExplicitAny: 绕过 Supabase 内部类型系统
210
- const baseResult = useSbSuspenseQuery(query as any, reactQueryConfig);
211
-
212
- // 如果提供了 schema,对数据进行验证和转换
213
- const transformedResult = useMemo(() => {
214
- if (!schema) {
215
- return baseResult;
216
- }
217
-
218
- try {
219
- const validatedData = schema.parse(baseResult.data);
220
- return {
221
- ...baseResult,
222
- data: validatedData as TData,
223
- };
224
- } catch (error) {
225
- console.error(`[useRpcSuspenseQuery] Schema validation failed for ${String(functionName)}:`, error);
226
- return baseResult;
227
- }
228
- }, [schema, baseResult, functionName]);
229
-
230
- return transformedResult as { data: TData; [key: string]: unknown };
231
- }
1
+ /**
2
+ * 简化版的 Supabase RPC 查询 Hook
3
+ * 自动处理 Supabase Client 的获取,无需手动调用 useSupabaseBrowser()
4
+ *
5
+ * 使用示例:
6
+ * ```tsx
7
+ * // 方式1: 自动推断类型
8
+ * const query1 = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" });
9
+ *
10
+ * // 方式2: 使用 Zod Schema 进行类型验证和推断 (推荐)
11
+ * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
12
+ * const query2 = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
13
+ * schema: z.object({ rows: z.array(navItemSchema) })
14
+ * });
15
+ * // data 的类型为 { rows: { label: string; url?: string }[] } | undefined
16
+ *
17
+ * // 方式3: 显式泛型指定返回类型
18
+ * type NavItem = { label: string; url?: string };
19
+ * const query3 = useRpcQuery<NavItem[]>("dash_navitems_list", { p_location: "sidebar_admin" });
20
+ * ```
21
+ */
22
+
23
+ import { useMemo } from "react";
24
+ import type { PostgrestError } from "@supabase/postgrest-js";
25
+ import type { z } from "zod";
26
+ import type { SBFunctions } from "../../types";
27
+ import { useSupabaseBrowser } from "../context";
28
+ import {
29
+ KEY_PREFIX,
30
+ type UseQueryAnyReturn,
31
+ useSbQuery,
32
+ useSbSuspenseQuery,
33
+ } from "./use-query";
34
+
35
+ /** 从 SBFunctions 中提取 RPC 函数名的类型 */
36
+ export type RPCFunctionName = keyof SBFunctions;
37
+
38
+ /**
39
+ * 获取 RPC 查询的通用 Query Key 前缀 (用于 invalidation)
40
+ * 对应 supabase-cache-helpers 生成的 key 结构: ['postgrest', 'null'|'page', schema, table|rpc, ...]
41
+ *
42
+ * @param functionName RPC 函数名
43
+ * @returns Standard Query Key Prefix e.g. ["postgrest", "null", "public", "function_name"]
44
+ */
45
+ export function getRpcQueryKey(functionName: string): string[] {
46
+ // 默认 schema 为 public, infinite prefix 默认为 "null" (即使是 infinite query, invalidate prefix 通常也能匹配?)
47
+ // 注意: explicit invalidation 最好匹配 prefix.
48
+ // supabase-cache-helpers 的 getSbTableKey 返回的是 4 个元素
49
+ // 注: 对于 RPC,表名解析为 rpc/名称
50
+ return [KEY_PREFIX, "null", "public", `rpc/${functionName}`];
51
+ }
52
+
53
+ /** 提取指定 RPC 函数的参数类型 */
54
+ export type RPCFunctionArgs<T extends RPCFunctionName> = SBFunctions[T]["Args"] extends never
55
+ ? Record<string, never>
56
+ : SBFunctions[T]["Args"];
57
+
58
+ /** 提取指定 RPC 函数的返回类型 */
59
+ export type RPCFunctionReturns<T extends RPCFunctionName> = SBFunctions[T]["Returns"];
60
+
61
+ type RpcExtraQueryOptions<TSchema extends z.ZodTypeAny | undefined = undefined> = {
62
+ /**
63
+ * 可选的 Zod Schema 用于验证和推断返回类型
64
+ * 当传入时,将自动验证数据并从 schema 推断类型
65
+ *
66
+ * @example
67
+ * ```tsx
68
+ * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
69
+ * const resultSchema = z.object({ rows: z.array(navItemSchema), meta: z.any() });
70
+ *
71
+ * const { data } = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
72
+ * schema: resultSchema
73
+ * });
74
+ * // data 类型自动推断为 { rows: { label: string; url?: string }[]; meta: any } | undefined
75
+ * ```
76
+ */
77
+ schema?: TSchema;
78
+ queryKeySuffix?: readonly unknown[];
79
+ };
80
+
81
+ type RpcQueryOptions<TSchema extends z.ZodTypeAny | undefined = undefined> = RpcExtraQueryOptions<TSchema> &
82
+ Record<string, unknown>;
83
+
84
+ type RpcSuspenseQueryOptions<TSchema extends z.ZodTypeAny | undefined = undefined> = RpcExtraQueryOptions<TSchema> &
85
+ Record<string, unknown>;
86
+
87
+ type UseRpcSchemaQueryReturn<TData> = Omit<UseQueryAnyReturn<unknown>, "data" | "error"> & {
88
+ data: TData | undefined;
89
+ error: PostgrestError | RpcSchemaValidationError | null;
90
+ };
91
+
92
+ class RpcSchemaValidationError extends Error {
93
+ readonly functionName: RPCFunctionName;
94
+ readonly originalError: Error;
95
+
96
+ constructor(functionName: RPCFunctionName, error: Error) {
97
+ super(`[${String(functionName)}] RPC 响应不符合 schema: ${error.message}`);
98
+ this.name = "RpcSchemaValidationError";
99
+ this.functionName = functionName;
100
+ this.originalError = error;
101
+ }
102
+ }
103
+
104
+ function validateRpcData<TSchema extends z.ZodTypeAny>(
105
+ hookName: "useRpcQuery" | "useRpcSuspenseQuery",
106
+ functionName: RPCFunctionName,
107
+ schema: TSchema,
108
+ data: unknown,
109
+ ): { success: true; data: z.infer<TSchema> } | { success: false; error: RpcSchemaValidationError } {
110
+ const result = schema.safeParse(data);
111
+ if (result.success) {
112
+ return {
113
+ success: true,
114
+ data: result.data,
115
+ };
116
+ }
117
+
118
+ console.error(`[${hookName}] Schema validation failed for ${String(functionName)}:`, result.error);
119
+ return {
120
+ success: false,
121
+ error: new RpcSchemaValidationError(functionName, result.error),
122
+ };
123
+ }
124
+
125
+ /**
126
+ * 基于 RPC 函数名和参数进行查询的 Hook (普通模式)
127
+ *
128
+ * @template TData 返回数据类型(显式指定或从数据库函数推断)
129
+ * @param functionName RPC 函数名
130
+ * @param args RPC 函数参数
131
+ * @param options 配置选项,包含 React Query 配置和可选的 schema
132
+ * @returns 查询结果
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * // 示例1: 基础使用(自动推断)
137
+ * const { data } = useRpcQuery("sys_config_get", { p_key: "github_app" });
138
+ *
139
+ * // 示例2: 使用 Zod Schema(推荐)
140
+ * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
141
+ * const { data } = useRpcQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
142
+ * schema: z.object({ rows: z.array(navItemSchema), meta: z.any() })
143
+ * });
144
+ *
145
+ * // 示例3: 显式泛型
146
+ * type NavItem = { label: string; url?: string };
147
+ * const { data } = useRpcQuery<NavItem[]>("dash_navitems_list", { p_location: "sidebar_admin" });
148
+ * ```
149
+ */
150
+ // Overload 1: Schema provided -> Infer TData from Schema
151
+ export function useRpcQuery<TFunc extends RPCFunctionName, TSchema extends z.ZodTypeAny>(
152
+ functionName: TFunc,
153
+ args: RPCFunctionArgs<TFunc> | undefined,
154
+ options: RpcQueryOptions<TSchema> & { schema: TSchema },
155
+ ): UseRpcSchemaQueryReturn<z.infer<TSchema>>;
156
+
157
+ // Overload 2: No schema provided -> Infer TData from Generic (defaulting to RPC return)
158
+ export function useRpcQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
159
+ functionName: TFunc,
160
+ args?: RPCFunctionArgs<TFunc>,
161
+ options?: RpcQueryOptions<undefined> & { schema?: undefined },
162
+ ): UseQueryAnyReturn<TData>;
163
+
164
+ export function useRpcQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
165
+ functionName: TFunc,
166
+ args?: RPCFunctionArgs<TFunc>,
167
+ options?: RpcQueryOptions,
168
+ ): UseQueryAnyReturn<TData> {
169
+ const sb = useSupabaseBrowser();
170
+ const query = sb.rpc(functionName, args as never);
171
+
172
+ const { schema, ...reactQueryConfig } = options || {};
173
+
174
+ // biome-ignore lint/suspicious/noExplicitAny: 绕过 Supabase 内部类型系统
175
+ const baseResult = useSbQuery(query as any, reactQueryConfig as any);
176
+
177
+ // 如果提供了 schema,对数据进行验证和转换
178
+ const transformedResult = useMemo(() => {
179
+ if (!schema || baseResult.error || baseResult.data === undefined) {
180
+ return baseResult;
181
+ }
182
+
183
+ const validationResult = validateRpcData("useRpcQuery", functionName, schema, baseResult.data);
184
+ if (validationResult.success) {
185
+ return {
186
+ ...baseResult,
187
+ data: validationResult.data as TData,
188
+ };
189
+ }
190
+
191
+ return {
192
+ ...baseResult,
193
+ data: undefined,
194
+ error: validationResult.error,
195
+ isError: true,
196
+ isSuccess: false,
197
+ status: "error",
198
+ } as unknown as UseQueryAnyReturn<TData>;
199
+ }, [schema, baseResult, functionName]);
200
+
201
+ return transformedResult as UseQueryAnyReturn<TData>;
202
+ }
203
+
204
+ /**
205
+ * 基于 RPC 函数名和参数进行查询的 Hook (Suspense 模式)
206
+ *
207
+ * @template TData 返回数据类型(通过 schema 或泛型指定)
208
+ * @param functionName RPC 函数名
209
+ * @param args RPC 函数参数
210
+ * @param options 配置选项
211
+ * @returns Suspense 查询结果
212
+ *
213
+ * @example
214
+ * ```tsx
215
+ * const navItemSchema = z.object({ label: z.string(), url: z.string().optional() });
216
+ * const { data } = useRpcSuspenseQuery("dash_navitems_list", { p_location: "sidebar_admin" }, {
217
+ * schema: z.object({ rows: z.array(navItemSchema) })
218
+ * });
219
+ * // data 类型: { rows: { label: string; url?: string }[] }
220
+ * ```
221
+ */
222
+ // Overload 1: Schema provided
223
+ export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TSchema extends z.ZodTypeAny>(
224
+ functionName: TFunc,
225
+ args: RPCFunctionArgs<TFunc> | undefined,
226
+ options: RpcSuspenseQueryOptions<TSchema> & { schema: TSchema },
227
+ ): { data: z.infer<TSchema>; [key: string]: unknown };
228
+
229
+ // Overload 2: No schema
230
+ export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
231
+ functionName: TFunc,
232
+ args?: RPCFunctionArgs<TFunc>,
233
+ options?: RpcSuspenseQueryOptions<undefined> & { schema?: undefined },
234
+ ): { data: TData; [key: string]: unknown };
235
+
236
+ export function useRpcSuspenseQuery<TFunc extends RPCFunctionName, TData = RPCFunctionReturns<TFunc>>(
237
+ functionName: TFunc,
238
+ args?: RPCFunctionArgs<TFunc>,
239
+ options?: RpcSuspenseQueryOptions,
240
+ ): { data: TData; [key: string]: unknown } {
241
+ const sb = useSupabaseBrowser();
242
+ const query = sb.rpc(functionName, args as never);
243
+
244
+ const { schema, ...reactQueryConfig } = options || {};
245
+
246
+ // biome-ignore lint/suspicious/noExplicitAny: 绕过 Supabase 内部类型系统
247
+ const baseResult = useSbSuspenseQuery(query as any, reactQueryConfig as any);
248
+
249
+ // 如果提供了 schema,对数据进行验证和转换
250
+ const transformedData = useMemo(() => {
251
+ if (!schema) {
252
+ return baseResult.data as TData;
253
+ }
254
+
255
+ const validationResult = validateRpcData("useRpcSuspenseQuery", functionName, schema, baseResult.data);
256
+ if (!validationResult.success) {
257
+ throw validationResult.error;
258
+ }
259
+
260
+ return validationResult.data as TData;
261
+ }, [schema, baseResult.data, functionName]);
262
+
263
+ return {
264
+ ...baseResult,
265
+ data: transformedData,
266
+ } as { data: TData; [key: string]: unknown };
267
+ }