silgi 0.43.28 → 0.50.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 (478) hide show
  1. package/README.md +103 -1
  2. package/dist/_virtual/_rolldown/runtime.mjs +5 -0
  3. package/dist/adapters/_fetch-adapter.d.mts +18 -0
  4. package/dist/adapters/_fetch-adapter.mjs +53 -0
  5. package/dist/adapters/astro.d.mts +15 -0
  6. package/dist/adapters/astro.mjs +31 -0
  7. package/dist/adapters/aws-lambda.d.mts +42 -0
  8. package/dist/adapters/aws-lambda.mjs +92 -0
  9. package/dist/adapters/express.d.mts +16 -0
  10. package/dist/adapters/express.mjs +110 -0
  11. package/dist/adapters/message-port.d.mts +42 -0
  12. package/dist/adapters/message-port.mjs +132 -0
  13. package/dist/adapters/nestjs.d.mts +25 -0
  14. package/dist/adapters/nestjs.mjs +83 -0
  15. package/dist/adapters/nextjs.d.mts +14 -0
  16. package/dist/adapters/nextjs.mjs +29 -0
  17. package/dist/adapters/peer.d.mts +27 -0
  18. package/dist/adapters/peer.mjs +36 -0
  19. package/dist/adapters/remix.d.mts +15 -0
  20. package/dist/adapters/remix.mjs +30 -0
  21. package/dist/adapters/solidstart.d.mts +12 -0
  22. package/dist/adapters/solidstart.mjs +29 -0
  23. package/dist/adapters/sveltekit.d.mts +14 -0
  24. package/dist/adapters/sveltekit.mjs +30 -0
  25. package/dist/broker/index.d.mts +62 -0
  26. package/dist/broker/index.mjs +153 -0
  27. package/dist/broker/nats.d.mts +33 -0
  28. package/dist/broker/nats.mjs +31 -0
  29. package/dist/broker/redis.d.mts +51 -0
  30. package/dist/broker/redis.mjs +92 -0
  31. package/dist/builder.d.mts +55 -0
  32. package/dist/builder.mjs +70 -0
  33. package/dist/callable.d.mts +19 -0
  34. package/dist/callable.mjs +42 -0
  35. package/dist/caller.mjs +90 -0
  36. package/dist/client/adapters/fetch/index.d.mts +15 -0
  37. package/dist/client/adapters/fetch/index.mjs +57 -0
  38. package/dist/client/adapters/ofetch/index.d.mts +55 -0
  39. package/dist/client/adapters/ofetch/index.mjs +91 -0
  40. package/dist/client/adapters/websocket/index.d.mts +20 -0
  41. package/dist/client/adapters/websocket/index.mjs +101 -0
  42. package/dist/client/client.d.mts +37 -0
  43. package/dist/client/client.mjs +80 -0
  44. package/dist/client/consume.d.mts +50 -0
  45. package/dist/client/consume.mjs +66 -0
  46. package/dist/client/dynamic-link.d.mts +16 -0
  47. package/dist/client/dynamic-link.mjs +19 -0
  48. package/dist/client/index.d.mts +6 -0
  49. package/dist/client/index.mjs +5 -0
  50. package/dist/client/interceptor.d.mts +31 -0
  51. package/dist/client/interceptor.mjs +34 -0
  52. package/dist/client/openapi.d.mts +29 -0
  53. package/dist/client/openapi.mjs +89 -0
  54. package/dist/client/plugins/batch.d.mts +26 -0
  55. package/dist/client/plugins/batch.mjs +64 -0
  56. package/dist/client/plugins/circuit-breaker.d.mts +24 -0
  57. package/dist/client/plugins/circuit-breaker.mjs +60 -0
  58. package/dist/client/plugins/csrf.d.mts +13 -0
  59. package/dist/client/plugins/csrf.mjs +20 -0
  60. package/dist/client/plugins/dedupe.d.mts +10 -0
  61. package/dist/client/plugins/dedupe.mjs +28 -0
  62. package/dist/client/plugins/index.d.mts +8 -0
  63. package/dist/client/plugins/index.mjs +8 -0
  64. package/dist/client/plugins/otel.d.mts +12 -0
  65. package/dist/client/plugins/otel.mjs +27 -0
  66. package/dist/client/plugins/retry.d.mts +34 -0
  67. package/dist/client/plugins/retry.mjs +79 -0
  68. package/dist/client/plugins/timeout.d.mts +10 -0
  69. package/dist/client/plugins/timeout.mjs +14 -0
  70. package/dist/client/server.d.mts +16 -0
  71. package/dist/client/server.mjs +59 -0
  72. package/dist/client/types.d.mts +29 -0
  73. package/dist/codec/devalue.d.mts +21 -0
  74. package/dist/codec/devalue.mjs +33 -0
  75. package/dist/codec/msgpack.d.mts +18 -0
  76. package/dist/codec/msgpack.mjs +45 -0
  77. package/dist/codec/sanitize.mjs +38 -0
  78. package/dist/codegen/emitters.d.mts +51 -0
  79. package/dist/codegen/emitters.mjs +143 -0
  80. package/dist/codegen/generate.d.mts +25 -0
  81. package/dist/codegen/generate.mjs +224 -0
  82. package/dist/codegen/index.d.mts +44 -0
  83. package/dist/codegen/index.mjs +103 -0
  84. package/dist/codegen/parse.d.mts +124 -0
  85. package/dist/codegen/parse.mjs +135 -0
  86. package/dist/codegen/preserve.d.mts +21 -0
  87. package/dist/codegen/preserve.mjs +62 -0
  88. package/dist/codegen/schema-to-code.d.mts +57 -0
  89. package/dist/codegen/schema-to-code.mjs +167 -0
  90. package/dist/compile.d.mts +46 -0
  91. package/dist/compile.mjs +332 -0
  92. package/dist/core/codec.mjs +67 -0
  93. package/dist/core/context-bridge.mjs +11 -0
  94. package/dist/core/dispatch.mjs +62 -0
  95. package/dist/core/error.d.mts +99 -60
  96. package/dist/core/error.mjs +125 -92
  97. package/dist/core/handler.d.mts +6 -0
  98. package/dist/core/handler.mjs +153 -0
  99. package/dist/core/input.mjs +49 -0
  100. package/dist/core/iterator.d.mts +17 -0
  101. package/dist/core/iterator.mjs +79 -0
  102. package/dist/core/router-utils.mjs +22 -0
  103. package/dist/core/schema.d.mts +20 -0
  104. package/dist/core/schema.mjs +33 -0
  105. package/dist/core/serve.d.mts +51 -0
  106. package/dist/core/serve.mjs +76 -0
  107. package/dist/core/sse.d.mts +18 -0
  108. package/dist/core/sse.mjs +110 -0
  109. package/dist/core/storage.d.mts +17 -4
  110. package/dist/core/storage.mjs +60 -13
  111. package/dist/core/task.d.mts +62 -0
  112. package/dist/core/task.mjs +165 -0
  113. package/dist/core/trace-map.d.mts +13 -0
  114. package/dist/core/trace-map.mjs +13 -0
  115. package/dist/core/url.mjs +28 -0
  116. package/dist/core/utils.mjs +24 -0
  117. package/dist/index.d.mts +17 -21
  118. package/dist/index.mjs +14 -22
  119. package/dist/integrations/ai/index.d.mts +25 -0
  120. package/dist/integrations/ai/index.mjs +117 -0
  121. package/dist/integrations/better-auth/index.d.mts +41 -0
  122. package/dist/integrations/better-auth/index.mjs +331 -0
  123. package/dist/integrations/drizzle/index.d.mts +27 -0
  124. package/dist/integrations/drizzle/index.mjs +285 -0
  125. package/dist/integrations/hey-api/index.d.mts +2 -0
  126. package/dist/integrations/hey-api/index.mjs +2 -0
  127. package/dist/integrations/hey-api/to-client.d.mts +20 -0
  128. package/dist/integrations/hey-api/to-client.mjs +39 -0
  129. package/dist/integrations/pinia-colada/general-utils.d.mts +13 -0
  130. package/dist/integrations/pinia-colada/general-utils.mjs +9 -0
  131. package/dist/integrations/pinia-colada/index.d.mts +6 -0
  132. package/dist/integrations/pinia-colada/index.mjs +5 -0
  133. package/dist/integrations/pinia-colada/key.d.mts +11 -0
  134. package/dist/integrations/pinia-colada/key.mjs +11 -0
  135. package/dist/integrations/pinia-colada/procedure-utils.d.mts +25 -0
  136. package/dist/integrations/pinia-colada/procedure-utils.mjs +33 -0
  137. package/dist/integrations/pinia-colada/router-utils.d.mts +17 -0
  138. package/dist/integrations/pinia-colada/router-utils.mjs +30 -0
  139. package/dist/integrations/pinia-colada/types.d.mts +25 -0
  140. package/dist/integrations/react/index.d.mts +83 -0
  141. package/dist/integrations/react/index.mjs +196 -0
  142. package/dist/integrations/tanstack-query/index.d.mts +120 -0
  143. package/dist/integrations/tanstack-query/index.mjs +100 -0
  144. package/dist/integrations/tanstack-query/ssr.d.mts +60 -0
  145. package/dist/integrations/tanstack-query/ssr.mjs +102 -0
  146. package/dist/integrations/zod/converter.d.mts +75 -0
  147. package/dist/integrations/zod/converter.mjs +345 -0
  148. package/dist/integrations/zod/index.d.mts +2 -0
  149. package/dist/integrations/zod/index.mjs +2 -0
  150. package/dist/lazy.d.mts +22 -0
  151. package/dist/lazy.mjs +34 -0
  152. package/dist/lifecycle.d.mts +36 -0
  153. package/dist/lifecycle.mjs +46 -0
  154. package/dist/map-input.d.mts +17 -0
  155. package/dist/map-input.mjs +47 -0
  156. package/dist/plugins/analytics/accumulator.d.mts +24 -0
  157. package/dist/plugins/analytics/accumulator.mjs +91 -0
  158. package/dist/plugins/analytics/alerts.d.mts +59 -0
  159. package/dist/plugins/analytics/alerts.mjs +140 -0
  160. package/dist/plugins/analytics/collector.d.mts +38 -0
  161. package/dist/plugins/analytics/collector.mjs +275 -0
  162. package/dist/plugins/analytics/cost.d.mts +61 -0
  163. package/dist/plugins/analytics/cost.mjs +97 -0
  164. package/dist/plugins/analytics/export.d.mts +7 -0
  165. package/dist/plugins/analytics/export.mjs +86 -0
  166. package/dist/plugins/analytics/normalize.mjs +144 -0
  167. package/dist/plugins/analytics/query.mjs +164 -0
  168. package/dist/plugins/analytics/request-id.mjs +34 -0
  169. package/dist/plugins/analytics/routes.d.mts +11 -0
  170. package/dist/plugins/analytics/routes.mjs +211 -0
  171. package/dist/plugins/analytics/sse.d.mts +31 -0
  172. package/dist/plugins/analytics/sse.mjs +74 -0
  173. package/dist/plugins/analytics/store.mjs +103 -0
  174. package/dist/plugins/analytics/timeseries.d.mts +50 -0
  175. package/dist/plugins/analytics/timeseries.mjs +169 -0
  176. package/dist/plugins/analytics/trace.d.mts +48 -0
  177. package/dist/plugins/analytics/trace.mjs +83 -0
  178. package/dist/plugins/analytics/types.d.mts +145 -0
  179. package/dist/plugins/analytics/types.mjs +40 -0
  180. package/dist/plugins/analytics/utils.d.mts +4 -0
  181. package/dist/plugins/analytics/utils.mjs +56 -0
  182. package/dist/plugins/analytics.d.mts +18 -0
  183. package/dist/plugins/analytics.mjs +188 -0
  184. package/dist/plugins/batch-server.d.mts +20 -0
  185. package/dist/plugins/batch-server.mjs +91 -0
  186. package/dist/plugins/body-limit.d.mts +19 -0
  187. package/dist/plugins/body-limit.mjs +49 -0
  188. package/dist/plugins/cache.d.mts +170 -0
  189. package/dist/plugins/cache.mjs +212 -0
  190. package/dist/plugins/coerce.d.mts +24 -0
  191. package/dist/plugins/coerce.mjs +70 -0
  192. package/dist/plugins/cookies.d.mts +14 -0
  193. package/dist/plugins/cookies.mjs +48 -0
  194. package/dist/plugins/cors.d.mts +43 -0
  195. package/dist/plugins/cors.mjs +62 -0
  196. package/dist/plugins/file-upload.d.mts +38 -0
  197. package/dist/plugins/file-upload.mjs +102 -0
  198. package/dist/plugins/index.d.mts +18 -0
  199. package/dist/plugins/index.mjs +17 -0
  200. package/dist/plugins/otel.d.mts +35 -0
  201. package/dist/plugins/otel.mjs +40 -0
  202. package/dist/plugins/pino.d.mts +60 -0
  203. package/dist/plugins/pino.mjs +42 -0
  204. package/dist/plugins/pubsub.d.mts +50 -0
  205. package/dist/plugins/pubsub.mjs +53 -0
  206. package/dist/plugins/ratelimit.d.mts +53 -0
  207. package/dist/plugins/ratelimit.mjs +92 -0
  208. package/dist/plugins/signing.d.mts +41 -0
  209. package/dist/plugins/signing.mjs +118 -0
  210. package/dist/plugins/strict-get.d.mts +10 -0
  211. package/dist/plugins/strict-get.mjs +33 -0
  212. package/dist/scalar.d.mts +49 -0
  213. package/dist/scalar.mjs +311 -0
  214. package/dist/silgi.d.mts +144 -0
  215. package/dist/silgi.mjs +164 -0
  216. package/dist/trpc-interop.d.mts +22 -0
  217. package/dist/trpc-interop.mjs +68 -0
  218. package/dist/types.d.mts +108 -0
  219. package/dist/ws.d.mts +88 -0
  220. package/dist/ws.mjs +205 -0
  221. package/lib/dashboard/index.html +120 -0
  222. package/lib/ocache.d.mts +1 -0
  223. package/lib/ocache.mjs +1 -0
  224. package/lib/ofetch.d.mts +1 -0
  225. package/lib/ofetch.mjs +1 -0
  226. package/lib/srvx.d.mts +1 -0
  227. package/lib/srvx.mjs +1 -0
  228. package/lib/unstorage.d.mts +1 -0
  229. package/lib/unstorage.mjs +1 -0
  230. package/package.json +314 -150
  231. package/dist/build.d.mts +0 -3
  232. package/dist/build.mjs +0 -4
  233. package/dist/cli/build/build.mjs +0 -15
  234. package/dist/cli/build/dev.d.mts +0 -10
  235. package/dist/cli/build/dev.mjs +0 -91
  236. package/dist/cli/build/prepare.d.mts +0 -6
  237. package/dist/cli/build/prepare.mjs +0 -15
  238. package/dist/cli/commands/commands.mjs +0 -90
  239. package/dist/cli/commands/env.mjs +0 -53
  240. package/dist/cli/commands/init.mjs +0 -84
  241. package/dist/cli/commands/install.mjs +0 -52
  242. package/dist/cli/commands/prepare.mjs +0 -65
  243. package/dist/cli/commands/reset.mjs +0 -46
  244. package/dist/cli/commands/run.mjs +0 -31
  245. package/dist/cli/commands/watch.mjs +0 -153
  246. package/dist/cli/config/defaults.mjs +0 -117
  247. package/dist/cli/config/index.d.mts +0 -3
  248. package/dist/cli/config/index.mjs +0 -4
  249. package/dist/cli/config/loader.d.mts +0 -6
  250. package/dist/cli/config/loader.mjs +0 -71
  251. package/dist/cli/config/resolvers/compatibility.mjs +0 -71
  252. package/dist/cli/config/resolvers/imports.mjs +0 -35
  253. package/dist/cli/config/resolvers/paths.mjs +0 -98
  254. package/dist/cli/config/resolvers/storage.mjs +0 -23
  255. package/dist/cli/config/resolvers/url.mjs +0 -9
  256. package/dist/cli/config/types.d.mts +0 -14
  257. package/dist/cli/config/types.mjs +0 -147
  258. package/dist/cli/core/apiful.mjs +0 -36
  259. package/dist/cli/core/devServer.mjs +0 -10
  260. package/dist/cli/core/env.mjs +0 -68
  261. package/dist/cli/core/installPackage.mjs +0 -60
  262. package/dist/cli/core/runtimeConfig.mjs +0 -70
  263. package/dist/cli/core/scan.mjs +0 -35
  264. package/dist/cli/core/silgi.mjs +0 -111
  265. package/dist/cli/framework/emptyFramework.mjs +0 -7
  266. package/dist/cli/framework/h3.mjs +0 -55
  267. package/dist/cli/framework/index.mjs +0 -15
  268. package/dist/cli/framework/nitro.mjs +0 -24
  269. package/dist/cli/framework/nuxt.mjs +0 -10
  270. package/dist/cli/index.d.mts +0 -1
  271. package/dist/cli/index.mjs +0 -29
  272. package/dist/cli/module/exportScan.mjs +0 -180
  273. package/dist/cli/module/install.mjs +0 -49
  274. package/dist/cli/module/scan.mjs +0 -193
  275. package/dist/cli/scan/prepareCommands.mjs +0 -40
  276. package/dist/cli/scan/prepareConfigs.mjs +0 -33
  277. package/dist/cli/scan/prepareCoreFile.mjs +0 -118
  278. package/dist/cli/scan/prepareScanFile.mjs +0 -59
  279. package/dist/cli/scan/prepareSchema.mjs +0 -128
  280. package/dist/cli/scan/scanExportFile.mjs +0 -288
  281. package/dist/cli/scan/writeCoreFile.mjs +0 -22
  282. package/dist/cli/scan/writeTypesAndFiles.mjs +0 -72
  283. package/dist/cli/utils/cancel.mjs +0 -14
  284. package/dist/cli/utils/common.mjs +0 -15
  285. package/dist/cli/utils/compatibility.mjs +0 -33
  286. package/dist/cli/utils/debug.mjs +0 -11
  287. package/dist/cli/utils/ignore.mjs +0 -56
  288. package/dist/cli/utils/processManager.mjs +0 -170
  289. package/dist/cli/utils/readScanFile.mjs +0 -58
  290. package/dist/cli/utils/storage.mjs +0 -23
  291. package/dist/core/context.d.mts +0 -30
  292. package/dist/core/context.mjs +0 -32
  293. package/dist/core/createSilgi.d.mts +0 -6
  294. package/dist/core/createSilgi.mjs +0 -153
  295. package/dist/core/event.d.mts +0 -26
  296. package/dist/core/event.mjs +0 -44
  297. package/dist/core/index.d.mts +0 -25
  298. package/dist/core/index.mjs +0 -30
  299. package/dist/core/orchestrate.mjs +0 -115
  300. package/dist/core/response.d.mts +0 -20
  301. package/dist/core/response.mjs +0 -105
  302. package/dist/core/silgi.d.mts +0 -19
  303. package/dist/core/silgi.mjs +0 -141
  304. package/dist/core/silgiApp.d.mts +0 -9
  305. package/dist/core/silgiApp.mjs +0 -23
  306. package/dist/core/unctx.d.mts +0 -21
  307. package/dist/core/unctx.mjs +0 -35
  308. package/dist/core/utils/event-stream.d.mts +0 -53
  309. package/dist/core/utils/event-stream.mjs +0 -38
  310. package/dist/core/utils/event.d.mts +0 -8
  311. package/dist/core/utils/event.mjs +0 -12
  312. package/dist/core/utils/internal/event-stream.d.mts +0 -45
  313. package/dist/core/utils/internal/event-stream.mjs +0 -137
  314. package/dist/core/utils/internal/obj.mjs +0 -9
  315. package/dist/core/utils/internal/object.mjs +0 -29
  316. package/dist/core/utils/internal/query.mjs +0 -73
  317. package/dist/core/utils/internal/req.mjs +0 -35
  318. package/dist/core/utils/merge.d.mts +0 -14
  319. package/dist/core/utils/merge.mjs +0 -27
  320. package/dist/core/utils/middleware.d.mts +0 -14
  321. package/dist/core/utils/middleware.mjs +0 -12
  322. package/dist/core/utils/request.mjs +0 -35
  323. package/dist/core/utils/resolver.d.mts +0 -7
  324. package/dist/core/utils/resolver.mjs +0 -29
  325. package/dist/core/utils/runtime.d.mts +0 -7
  326. package/dist/core/utils/runtime.mjs +0 -20
  327. package/dist/core/utils/sanitize.mjs +0 -22
  328. package/dist/core/utils/schema.d.mts +0 -34
  329. package/dist/core/utils/schema.mjs +0 -33
  330. package/dist/core/utils/service.d.mts +0 -13
  331. package/dist/core/utils/service.mjs +0 -19
  332. package/dist/core/utils/shared.d.mts +0 -6
  333. package/dist/core/utils/shared.mjs +0 -7
  334. package/dist/core/utils/storage.d.mts +0 -24
  335. package/dist/core/utils/storage.mjs +0 -54
  336. package/dist/kit/add/add-commands.d.mts +0 -6
  337. package/dist/kit/add/add-commands.mjs +0 -12
  338. package/dist/kit/add/add-core-file.d.mts +0 -9
  339. package/dist/kit/add/add-core-file.mjs +0 -11
  340. package/dist/kit/add/add-imports.d.mts +0 -14
  341. package/dist/kit/add/add-imports.mjs +0 -56
  342. package/dist/kit/add/add-npm.d.mts +0 -14
  343. package/dist/kit/add/add-npm.mjs +0 -23
  344. package/dist/kit/define.d.mts +0 -28
  345. package/dist/kit/define.mjs +0 -25
  346. package/dist/kit/errors.d.mts +0 -6
  347. package/dist/kit/errors.mjs +0 -11
  348. package/dist/kit/esm.d.mts +0 -11
  349. package/dist/kit/esm.mjs +0 -21
  350. package/dist/kit/fs.d.mts +0 -4
  351. package/dist/kit/fs.mjs +0 -13
  352. package/dist/kit/function-utils.d.mts +0 -27
  353. package/dist/kit/function-utils.mjs +0 -75
  354. package/dist/kit/gen.d.mts +0 -5
  355. package/dist/kit/gen.mjs +0 -26
  356. package/dist/kit/hash.d.mts +0 -4
  357. package/dist/kit/hash.mjs +0 -10
  358. package/dist/kit/index.d.mts +0 -22
  359. package/dist/kit/index.mjs +0 -23
  360. package/dist/kit/isFramework.d.mts +0 -6
  361. package/dist/kit/isFramework.mjs +0 -21
  362. package/dist/kit/logger.d.mts +0 -6
  363. package/dist/kit/logger.mjs +0 -10
  364. package/dist/kit/migration.d.mts +0 -113
  365. package/dist/kit/migration.mjs +0 -301
  366. package/dist/kit/module.d.mts +0 -14
  367. package/dist/kit/module.mjs +0 -53
  368. package/dist/kit/path.d.mts +0 -7
  369. package/dist/kit/path.mjs +0 -26
  370. package/dist/kit/preset.d.mts +0 -8
  371. package/dist/kit/preset.mjs +0 -11
  372. package/dist/kit/resolve.d.mts +0 -37
  373. package/dist/kit/resolve.mjs +0 -82
  374. package/dist/kit/template.d.mts +0 -19
  375. package/dist/kit/template.mjs +0 -91
  376. package/dist/kit/useRequest.d.mts +0 -19
  377. package/dist/kit/useRequest.mjs +0 -63
  378. package/dist/kit/utils.d.mts +0 -34
  379. package/dist/kit/utils.mjs +0 -91
  380. package/dist/package.mjs +0 -176
  381. package/dist/presets/_all.gen.d.mts +0 -6
  382. package/dist/presets/_all.gen.mjs +0 -18
  383. package/dist/presets/_resolve.d.mts +0 -12
  384. package/dist/presets/_resolve.mjs +0 -57
  385. package/dist/presets/_types.gen.d.mts +0 -8
  386. package/dist/presets/_types.gen.mjs +0 -5
  387. package/dist/presets/h3/preset.d.mts +0 -6
  388. package/dist/presets/h3/preset.mjs +0 -35
  389. package/dist/presets/hono/preset.d.mts +0 -6
  390. package/dist/presets/hono/preset.mjs +0 -30
  391. package/dist/presets/index.d.mts +0 -3
  392. package/dist/presets/index.mjs +0 -3
  393. package/dist/presets/nitro/preset.d.mts +0 -6
  394. package/dist/presets/nitro/preset.mjs +0 -37
  395. package/dist/presets/npmpackage/preset.d.mts +0 -6
  396. package/dist/presets/npmpackage/preset.mjs +0 -29
  397. package/dist/presets/nuxt/preset.d.mts +0 -6
  398. package/dist/presets/nuxt/preset.mjs +0 -41
  399. package/dist/runtime/index.d.mts +0 -4
  400. package/dist/runtime/index.mjs +0 -5
  401. package/dist/runtime/internal/config.d.mts +0 -11
  402. package/dist/runtime/internal/config.mjs +0 -97
  403. package/dist/runtime/internal/debug.d.mts +0 -6
  404. package/dist/runtime/internal/debug.mjs +0 -11
  405. package/dist/runtime/internal/defu.d.mts +0 -4
  406. package/dist/runtime/internal/defu.mjs +0 -9
  407. package/dist/runtime/internal/index.d.mts +0 -7
  408. package/dist/runtime/internal/index.mjs +0 -8
  409. package/dist/runtime/internal/nitro.d.mts +0 -6
  410. package/dist/runtime/internal/nitro.mjs +0 -36
  411. package/dist/runtime/internal/nuxt.d.mts +0 -12
  412. package/dist/runtime/internal/nuxt.mjs +0 -16
  413. package/dist/runtime/internal/ofetch.d.mts +0 -8
  414. package/dist/runtime/internal/ofetch.mjs +0 -39
  415. package/dist/runtime/internal/plugin.d.mts +0 -7
  416. package/dist/runtime/internal/plugin.mjs +0 -8
  417. package/dist/types/cliConfig.d.mts +0 -288
  418. package/dist/types/cliConfig.mjs +0 -0
  419. package/dist/types/cliHooks.d.mts +0 -142
  420. package/dist/types/cliHooks.mjs +0 -0
  421. package/dist/types/compatibility.d.mts +0 -13
  422. package/dist/types/compatibility.mjs +0 -0
  423. package/dist/types/config.d.mts +0 -46
  424. package/dist/types/config.mjs +0 -0
  425. package/dist/types/dotenv.d.mts +0 -29
  426. package/dist/types/dotenv.mjs +0 -0
  427. package/dist/types/event.d.mts +0 -63
  428. package/dist/types/event.mjs +0 -0
  429. package/dist/types/global.d.mts +0 -24
  430. package/dist/types/global.mjs +0 -0
  431. package/dist/types/helper.d.mts +0 -25
  432. package/dist/types/helper.mjs +0 -0
  433. package/dist/types/hooks.d.mts +0 -37
  434. package/dist/types/hooks.mjs +0 -0
  435. package/dist/types/index.d.mts +0 -26
  436. package/dist/types/index.mjs +0 -0
  437. package/dist/types/kits.d.mts +0 -32
  438. package/dist/types/kits.mjs +0 -0
  439. package/dist/types/middleware.d.mts +0 -31
  440. package/dist/types/middleware.mjs +0 -0
  441. package/dist/types/module.d.mts +0 -102
  442. package/dist/types/module.mjs +0 -0
  443. package/dist/types/preset.d.mts +0 -20
  444. package/dist/types/preset.mjs +0 -0
  445. package/dist/types/route.d.mts +0 -59
  446. package/dist/types/route.mjs +0 -0
  447. package/dist/types/runtime/index.d.mts +0 -5
  448. package/dist/types/runtime/index.mjs +0 -0
  449. package/dist/types/runtime/nuxt.d.mts +0 -13
  450. package/dist/types/runtime/nuxt.mjs +0 -0
  451. package/dist/types/runtime/ofetch.d.mts +0 -14
  452. package/dist/types/runtime/ofetch.mjs +0 -0
  453. package/dist/types/runtime/plugin.d.mts +0 -8
  454. package/dist/types/runtime/plugin.mjs +0 -0
  455. package/dist/types/runtime/silgi.d.mts +0 -11
  456. package/dist/types/runtime/silgi.mjs +0 -0
  457. package/dist/types/schema.d.mts +0 -86
  458. package/dist/types/schema.mjs +0 -0
  459. package/dist/types/service.d.mts +0 -102
  460. package/dist/types/service.mjs +0 -0
  461. package/dist/types/shared.d.mts +0 -19
  462. package/dist/types/shared.mjs +0 -0
  463. package/dist/types/silgi.d.mts +0 -71
  464. package/dist/types/silgi.mjs +0 -0
  465. package/dist/types/silgiCLI.d.mts +0 -118
  466. package/dist/types/silgiCLI.mjs +0 -0
  467. package/dist/types/standard-schema.d.mts +0 -61
  468. package/dist/types/standard-schema.mjs +0 -0
  469. package/dist/types/storage.d.mts +0 -30
  470. package/dist/types/storage.mjs +0 -0
  471. package/dist/types/tree-kill.d.mts +0 -18
  472. package/dist/types/tree-kill.mjs +0 -0
  473. package/lib/config.d.mts +0 -7
  474. package/lib/config.mjs +0 -5
  475. package/lib/meta.d.mts +0 -4
  476. package/lib/meta.mjs +0 -6
  477. package/lib/runtime-meta.d.mts +0 -4
  478. package/lib/runtime-meta.mjs +0 -32
@@ -0,0 +1,196 @@
1
+ import { __require } from "../../_virtual/_rolldown/runtime.mjs";
2
+ import { SilgiError, toSilgiError } from "../../core/error.mjs";
3
+ import { compileProcedure } from "../../compile.mjs";
4
+ //#region src/integrations/react/index.ts
5
+ /**
6
+ * React Server Actions — v2 integration.
7
+ *
8
+ * Creates type-safe server actions from v2 procedures.
9
+ * Returns [error, data] tuples instead of throwing.
10
+ */
11
+ /**
12
+ * Create a server action from a v2 ProcedureDef.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // app/actions.ts
17
+ * "use server"
18
+ * import { createAction } from "silgi/react"
19
+ *
20
+ * export const createUser = createAction(appRouter.users.create)
21
+ *
22
+ * // app/page.tsx
23
+ * const [error, user] = await createUser({ name: "Alice" })
24
+ * ```
25
+ */
26
+ function createAction(procedure) {
27
+ const handler = compileProcedure(procedure);
28
+ return async (input) => {
29
+ try {
30
+ const result = handler(Object.create(null), input, new AbortController().signal);
31
+ return [null, result instanceof Promise ? await result : result];
32
+ } catch (error) {
33
+ if (isFrameworkError(error)) throw error;
34
+ return [(error instanceof SilgiError ? error : toSilgiError(error)).toJSON(), void 0];
35
+ }
36
+ };
37
+ }
38
+ /**
39
+ * Create a FormData-accepting server action from a v2 procedure.
40
+ */
41
+ function createFormAction(procedure, options) {
42
+ const action = createAction(procedure);
43
+ const parse = options?.parseFormData ?? defaultFormDataParser;
44
+ return (formData) => action(parse(formData));
45
+ }
46
+ /**
47
+ * Create actions for all procedures in a router.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const actions = createActions(appRouter)
52
+ * const [error, users] = await actions.users.list({ limit: 10 })
53
+ * ```
54
+ */
55
+ function createActions(router) {
56
+ const result = {};
57
+ for (const [key, value] of Object.entries(router)) if (isProcedureDef(value)) result[key] = createAction(value);
58
+ else if (typeof value === "object" && value !== null) result[key] = createActions(value);
59
+ return result;
60
+ }
61
+ /**
62
+ * React hook for calling server actions with loading/error state.
63
+ *
64
+ * @example
65
+ * ```tsx
66
+ * const { execute, data, error, isPending } = useServerAction(createUser)
67
+ *
68
+ * <button onClick={() => execute({ name: "Alice" })} disabled={isPending}>
69
+ * {isPending ? "Creating..." : "Create User"}
70
+ * </button>
71
+ * ```
72
+ */
73
+ function useServerAction(action) {
74
+ const { useState, useCallback, useRef } = __require("react");
75
+ const [data, setData] = useState(void 0);
76
+ const [error, setError] = useState(null);
77
+ const [isPending, setIsPending] = useState(false);
78
+ const mountedRef = useRef(true);
79
+ const { useEffect } = __require("react");
80
+ useEffect(() => {
81
+ mountedRef.current = true;
82
+ return () => {
83
+ mountedRef.current = false;
84
+ };
85
+ }, []);
86
+ return {
87
+ execute: useCallback(async (input) => {
88
+ setIsPending(true);
89
+ setError(null);
90
+ try {
91
+ const [err, result] = await action(input);
92
+ if (!mountedRef.current) return;
93
+ if (err) {
94
+ setError(err);
95
+ setData(void 0);
96
+ } else {
97
+ setData(result);
98
+ setError(null);
99
+ }
100
+ return [err, result];
101
+ } finally {
102
+ if (mountedRef.current) setIsPending(false);
103
+ }
104
+ }, [action]),
105
+ data,
106
+ error,
107
+ isPending,
108
+ reset: useCallback(() => {
109
+ setData(void 0);
110
+ setError(null);
111
+ setIsPending(false);
112
+ }, [])
113
+ };
114
+ }
115
+ /**
116
+ * React hook for server actions with optimistic UI updates.
117
+ *
118
+ * @example
119
+ * ```tsx
120
+ * const { execute, data, optimisticData, isPending } = useOptimisticServerAction(updateUser, {
121
+ * optimistic: (input) => ({ ...currentUser, ...input }),
122
+ * })
123
+ * ```
124
+ */
125
+ function useOptimisticServerAction(action, options) {
126
+ const { useState, useCallback, useRef } = __require("react");
127
+ const { useEffect } = __require("react");
128
+ const [data, setData] = useState(void 0);
129
+ const [optimisticData, setOptimisticData] = useState(void 0);
130
+ const [error, setError] = useState(null);
131
+ const [isPending, setIsPending] = useState(false);
132
+ const mountedRef = useRef(true);
133
+ useEffect(() => {
134
+ mountedRef.current = true;
135
+ return () => {
136
+ mountedRef.current = false;
137
+ };
138
+ }, []);
139
+ return {
140
+ execute: useCallback(async (input) => {
141
+ setIsPending(true);
142
+ setError(null);
143
+ setOptimisticData(options.optimistic(input));
144
+ try {
145
+ const [err, result] = await action(input);
146
+ if (!mountedRef.current) return;
147
+ if (err) {
148
+ setError(err);
149
+ setOptimisticData(void 0);
150
+ } else {
151
+ setData(result);
152
+ setOptimisticData(void 0);
153
+ }
154
+ return [err, result];
155
+ } catch (e) {
156
+ if (mountedRef.current) setOptimisticData(void 0);
157
+ throw e;
158
+ } finally {
159
+ if (mountedRef.current) setIsPending(false);
160
+ }
161
+ }, [action, options.optimistic]),
162
+ data,
163
+ optimisticData,
164
+ displayData: optimisticData ?? data,
165
+ error,
166
+ isPending
167
+ };
168
+ }
169
+ function isProcedureDef(v) {
170
+ return typeof v === "object" && v !== null && "type" in v && "resolve" in v;
171
+ }
172
+ function isFrameworkError(error) {
173
+ if (typeof error !== "object" || error === null) return false;
174
+ if (typeof error.digest === "string" && error.digest.startsWith("NEXT_")) return true;
175
+ if (error.isNotFound === true) return true;
176
+ if (error instanceof Response) return true;
177
+ return false;
178
+ }
179
+ function defaultFormDataParser(formData) {
180
+ const result = {};
181
+ for (const [key, value] of formData.entries()) setNestedValue(result, key, typeof value === "object" && "size" in value && value.size === 0 ? void 0 : value);
182
+ return result;
183
+ }
184
+ function setNestedValue(obj, path, value) {
185
+ const keys = path.split("[").map((k) => k.replace("]", ""));
186
+ let current = obj;
187
+ for (let i = 0; i < keys.length - 1; i++) {
188
+ const k = keys[i];
189
+ const next = keys[i + 1];
190
+ if (!(k in current)) current[k] = /^\d+$/.test(next) ? [] : {};
191
+ current = current[k];
192
+ }
193
+ current[keys[keys.length - 1]] = value;
194
+ }
195
+ //#endregion
196
+ export { createAction, createActions, createFormAction, useOptimisticServerAction, useServerAction };
@@ -0,0 +1,120 @@
1
+ import { Client, NestedClient } from "../../client/types.mjs";
2
+
3
+ //#region src/integrations/tanstack-query/index.d.ts
4
+ type OperationType = 'query' | 'infinite' | 'mutation';
5
+ type OperationKey = [path: readonly string[], options: {
6
+ type?: OperationType;
7
+ input?: unknown;
8
+ }];
9
+ declare function generateKey(path: readonly string[], options?: {
10
+ type?: OperationType;
11
+ input?: unknown;
12
+ }): OperationKey;
13
+ interface QueryOptionsIn<TInput, TOutput, _TError> {
14
+ input: TInput;
15
+ queryKey?: unknown[];
16
+ enabled?: boolean;
17
+ staleTime?: number;
18
+ gcTime?: number;
19
+ refetchInterval?: number | false;
20
+ retry?: boolean | number;
21
+ select?: (data: TOutput) => unknown;
22
+ }
23
+ interface MutationOptionsIn<TInput, TOutput, TError> {
24
+ onSuccess?: (data: TOutput, input: TInput) => void;
25
+ onError?: (error: TError, input: TInput) => void;
26
+ onSettled?: (data: TOutput | undefined, error: TError | null, input: TInput) => void;
27
+ retry?: boolean | number;
28
+ }
29
+ /** Sentinel value to disable a query in a type-safe way. */
30
+ declare const skipToken: unique symbol;
31
+ type SkipToken = typeof skipToken;
32
+ interface InfiniteQueryOptionsIn<TInput, TOutput, _TError, TPageParam> {
33
+ input: (pageParam: TPageParam) => TInput;
34
+ initialPageParam: TPageParam;
35
+ getNextPageParam: (lastPage: TOutput, allPages: TOutput[], lastPageParam: TPageParam) => TPageParam | undefined;
36
+ queryKey?: unknown[];
37
+ enabled?: boolean;
38
+ staleTime?: number;
39
+ gcTime?: number;
40
+ }
41
+ interface ProcedureQueryUtils<TInput, TOutput, TError> {
42
+ /** Direct call to the procedure */
43
+ call: (input: TInput, options?: {
44
+ signal?: AbortSignal;
45
+ }) => Promise<TOutput>;
46
+ /** Generate a query key for this procedure */
47
+ queryKey: (input?: TInput) => OperationKey;
48
+ /** Generate full query options for useQuery. Pass `skipToken` as input to disable. */
49
+ queryOptions: (options: QueryOptionsIn<TInput | SkipToken, TOutput, TError>) => {
50
+ queryKey: OperationKey;
51
+ queryFn: (ctx: {
52
+ signal: AbortSignal;
53
+ }) => Promise<TOutput>;
54
+ enabled?: boolean;
55
+ staleTime?: number;
56
+ gcTime?: number;
57
+ refetchInterval?: number | false;
58
+ retry?: boolean | number;
59
+ select?: (data: TOutput) => unknown;
60
+ };
61
+ /** Generate infinite query options for useInfiniteQuery */
62
+ infiniteOptions: <TPageParam = number>(options: InfiniteQueryOptionsIn<TInput, TOutput, TError, TPageParam>) => {
63
+ queryKey: OperationKey;
64
+ queryFn: (ctx: {
65
+ signal: AbortSignal;
66
+ pageParam: TPageParam;
67
+ }) => Promise<TOutput>;
68
+ initialPageParam: TPageParam;
69
+ getNextPageParam: (lastPage: TOutput, allPages: TOutput[], lastPageParam: TPageParam) => TPageParam | undefined;
70
+ enabled?: boolean;
71
+ staleTime?: number;
72
+ gcTime?: number;
73
+ };
74
+ /** Generate streamed query options — data appends to array as events arrive */
75
+ streamedOptions: (options: QueryOptionsIn<TInput, TOutput[], TError>) => {
76
+ queryKey: OperationKey;
77
+ queryFn: (ctx: {
78
+ signal: AbortSignal;
79
+ }) => Promise<TOutput[]>;
80
+ enabled?: boolean;
81
+ staleTime?: number;
82
+ gcTime?: number;
83
+ };
84
+ /** Generate live query options — latest event replaces previous data */
85
+ liveOptions: (options: QueryOptionsIn<TInput, TOutput, TError>) => {
86
+ queryKey: OperationKey;
87
+ queryFn: (ctx: {
88
+ signal: AbortSignal;
89
+ }) => Promise<TOutput>;
90
+ refetchInterval: number;
91
+ enabled?: boolean;
92
+ staleTime?: number;
93
+ gcTime?: number;
94
+ };
95
+ /** Generate a mutation key */
96
+ mutationKey: () => OperationKey;
97
+ /** Generate full mutation options for useMutation */
98
+ mutationOptions: (options?: MutationOptionsIn<TInput, TOutput, TError>) => {
99
+ mutationKey: OperationKey;
100
+ mutationFn: (input: TInput) => Promise<TOutput>;
101
+ onSuccess?: (data: TOutput, input: TInput) => void;
102
+ onError?: (error: TError, input: TInput) => void;
103
+ onSettled?: (data: TOutput | undefined, error: TError | null, input: TInput) => void;
104
+ retry?: boolean | number;
105
+ };
106
+ }
107
+ interface GeneralUtils {
108
+ /** Generate a key prefix for bulk invalidation */
109
+ key: (input?: unknown) => OperationKey;
110
+ }
111
+ type QueryUtils<T extends NestedClient> = T extends Client<any, infer TInput, infer TOutput, infer TError> ? ProcedureQueryUtils<TInput, TOutput, TError> & GeneralUtils : T extends Record<string, NestedClient> ? { [K in keyof T]: QueryUtils<T[K]> } & GeneralUtils : GeneralUtils;
112
+ /**
113
+ * Create TanStack Query utilities from a Silgi client.
114
+ *
115
+ * Returns a recursive proxy that mirrors the client structure,
116
+ * with `.queryOptions()`, `.mutationOptions()`, `.queryKey()` at each level.
117
+ */
118
+ declare function createQueryUtils<T extends NestedClient>(client: T, path?: readonly string[]): QueryUtils<T>;
119
+ //#endregion
120
+ export { GeneralUtils, InfiniteQueryOptionsIn, MutationOptionsIn, OperationKey, OperationType, ProcedureQueryUtils, QueryOptionsIn, QueryUtils, SkipToken, createQueryUtils, generateKey, skipToken };
@@ -0,0 +1,100 @@
1
+ //#region src/integrations/tanstack-query/index.ts
2
+ function generateKey(path, options) {
3
+ const keyOptions = {};
4
+ if (options?.type) keyOptions.type = options.type;
5
+ if (options?.input !== void 0) keyOptions.input = options.input;
6
+ return [path, keyOptions];
7
+ }
8
+ /** Sentinel value to disable a query in a type-safe way. */
9
+ const skipToken = Symbol.for("silgi.skipToken");
10
+ function createProcedureUtils(client, path) {
11
+ return {
12
+ call: (input, options) => client(input, options),
13
+ queryKey: (input) => generateKey(path, {
14
+ type: "query",
15
+ input
16
+ }),
17
+ queryOptions: (options) => {
18
+ const isSkipped = options.input === skipToken;
19
+ return {
20
+ queryKey: options.queryKey ? options.queryKey : generateKey(path, {
21
+ type: "query",
22
+ input: isSkipped ? void 0 : options.input
23
+ }),
24
+ queryFn: ({ signal }) => client(options.input, { signal }),
25
+ ...isSkipped && { enabled: false },
26
+ ...options.enabled !== void 0 && { enabled: options.enabled },
27
+ ...options.staleTime !== void 0 && { staleTime: options.staleTime },
28
+ ...options.gcTime !== void 0 && { gcTime: options.gcTime },
29
+ ...options.refetchInterval !== void 0 && { refetchInterval: options.refetchInterval },
30
+ ...options.retry !== void 0 && { retry: options.retry },
31
+ ...options.select !== void 0 && { select: options.select }
32
+ };
33
+ },
34
+ infiniteOptions: (options) => ({
35
+ queryKey: options.queryKey ? options.queryKey : generateKey(path, { type: "infinite" }),
36
+ queryFn: ({ signal, pageParam }) => client(options.input(pageParam), { signal }),
37
+ initialPageParam: options.initialPageParam,
38
+ getNextPageParam: options.getNextPageParam,
39
+ ...options.enabled !== void 0 && { enabled: options.enabled },
40
+ ...options.staleTime !== void 0 && { staleTime: options.staleTime },
41
+ ...options.gcTime !== void 0 && { gcTime: options.gcTime }
42
+ }),
43
+ streamedOptions: (options) => ({
44
+ queryKey: options.queryKey ? options.queryKey : generateKey(path, {
45
+ type: "query",
46
+ input: options.input
47
+ }),
48
+ queryFn: async ({ signal }) => {
49
+ const result = await client(options.input, { signal });
50
+ if (result && typeof result === "object" && Symbol.asyncIterator in result) {
51
+ const items = [];
52
+ for await (const item of result) items.push(item);
53
+ return items;
54
+ }
55
+ return Array.isArray(result) ? result : [result];
56
+ },
57
+ ...options.enabled !== void 0 && { enabled: options.enabled },
58
+ ...options.staleTime !== void 0 && { staleTime: options.staleTime },
59
+ ...options.gcTime !== void 0 && { gcTime: options.gcTime }
60
+ }),
61
+ liveOptions: (options) => ({
62
+ queryKey: options.queryKey ? options.queryKey : generateKey(path, {
63
+ type: "query",
64
+ input: options.input
65
+ }),
66
+ queryFn: ({ signal }) => client(options.input, { signal }),
67
+ refetchInterval: options.refetchInterval ?? 1e3,
68
+ ...options.enabled !== void 0 && { enabled: options.enabled },
69
+ ...options.staleTime !== void 0 && { staleTime: options.staleTime },
70
+ ...options.gcTime !== void 0 && { gcTime: options.gcTime }
71
+ }),
72
+ mutationKey: () => generateKey(path, { type: "mutation" }),
73
+ mutationOptions: (options) => ({
74
+ mutationKey: generateKey(path, { type: "mutation" }),
75
+ mutationFn: (input) => client(input),
76
+ ...options
77
+ })
78
+ };
79
+ }
80
+ /**
81
+ * Create TanStack Query utilities from a Silgi client.
82
+ *
83
+ * Returns a recursive proxy that mirrors the client structure,
84
+ * with `.queryOptions()`, `.mutationOptions()`, `.queryKey()` at each level.
85
+ */
86
+ function createQueryUtils(client, path = []) {
87
+ const generalUtils = { key: (input) => generateKey(path, input !== void 0 ? { input } : void 0) };
88
+ const procedureUtils = typeof client === "function" ? createProcedureUtils(client, path) : {};
89
+ return new Proxy({}, { get(_target, prop) {
90
+ if (prop === "then") return void 0;
91
+ if (prop === "key") return generalUtils.key;
92
+ if (typeof prop === "string" && prop in procedureUtils) return procedureUtils[prop];
93
+ if (typeof prop === "string") {
94
+ const child = client[prop];
95
+ if (child) return createQueryUtils(child, [...path, prop]);
96
+ }
97
+ } });
98
+ }
99
+ //#endregion
100
+ export { createQueryUtils, generateKey, skipToken };
@@ -0,0 +1,60 @@
1
+ //#region src/integrations/tanstack-query/ssr.d.ts
2
+ /**
3
+ * SSR Hydration for TanStack Query — prevent refetch waterfalls.
4
+ *
5
+ * Prefetch queries on the server and dehydrate them for the client.
6
+ * The client hydrates without refetching — zero waterfall.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // Server (SSR)
11
+ * import { prefetchQueries, dehydrate } from "silgi/tanstack-query/ssr"
12
+ *
13
+ * const queryClient = new QueryClient()
14
+ * await prefetchQueries(queryClient, utils, [
15
+ * utils.users.list.queryOptions({ input: { limit: 10 } }),
16
+ * utils.health.queryOptions({ input: undefined }),
17
+ * ])
18
+ * const dehydratedState = dehydrate(queryClient)
19
+ *
20
+ * // Client
21
+ * <HydrationBoundary state={dehydratedState}>
22
+ * <App />
23
+ * </HydrationBoundary>
24
+ * ```
25
+ */
26
+ /**
27
+ * Prefetch multiple queries on the server.
28
+ * Pass the same options you'd use with `useQuery`.
29
+ */
30
+ declare function prefetchQueries(queryClient: any, ...optionsArray: Array<{
31
+ queryKey: unknown;
32
+ queryFn: Function;
33
+ } | Array<{
34
+ queryKey: unknown;
35
+ queryFn: Function;
36
+ }>>): Promise<void>;
37
+ /**
38
+ * Dehydrate the query client for SSR transfer.
39
+ * Uses TanStack Query's standalone dehydrate() function.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * import { dehydrate } from "@tanstack/react-query"
44
+ * import { dehydrate as silgiDehydrate } from "silgi/tanstack-query/ssr"
45
+ *
46
+ * // Preferred: pass TanStack Query's dehydrate function
47
+ * const state = silgiDehydrate(queryClient)
48
+ * ```
49
+ */
50
+ declare function dehydrate(queryClient: any): unknown;
51
+ /**
52
+ * Create a custom serializer for SSR hydration that handles
53
+ * Silgi-specific types (Date, Map, etc.) during dehydration.
54
+ */
55
+ declare function createSSRSerializer(): {
56
+ serialize: (value: unknown) => string;
57
+ deserialize: (text: string) => unknown;
58
+ };
59
+ //#endregion
60
+ export { createSSRSerializer, dehydrate, prefetchQueries };
@@ -0,0 +1,102 @@
1
+ import { __require } from "../../_virtual/_rolldown/runtime.mjs";
2
+ //#region src/integrations/tanstack-query/ssr.ts
3
+ /**
4
+ * SSR Hydration for TanStack Query — prevent refetch waterfalls.
5
+ *
6
+ * Prefetch queries on the server and dehydrate them for the client.
7
+ * The client hydrates without refetching — zero waterfall.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Server (SSR)
12
+ * import { prefetchQueries, dehydrate } from "silgi/tanstack-query/ssr"
13
+ *
14
+ * const queryClient = new QueryClient()
15
+ * await prefetchQueries(queryClient, utils, [
16
+ * utils.users.list.queryOptions({ input: { limit: 10 } }),
17
+ * utils.health.queryOptions({ input: undefined }),
18
+ * ])
19
+ * const dehydratedState = dehydrate(queryClient)
20
+ *
21
+ * // Client
22
+ * <HydrationBoundary state={dehydratedState}>
23
+ * <App />
24
+ * </HydrationBoundary>
25
+ * ```
26
+ */
27
+ /**
28
+ * Prefetch multiple queries on the server.
29
+ * Pass the same options you'd use with `useQuery`.
30
+ */
31
+ async function prefetchQueries(queryClient, ...optionsArray) {
32
+ const flat = optionsArray.flat();
33
+ await Promise.all(flat.map((opts) => queryClient.prefetchQuery(opts)));
34
+ }
35
+ /**
36
+ * Dehydrate the query client for SSR transfer.
37
+ * Uses TanStack Query's standalone dehydrate() function.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * import { dehydrate } from "@tanstack/react-query"
42
+ * import { dehydrate as silgiDehydrate } from "silgi/tanstack-query/ssr"
43
+ *
44
+ * // Preferred: pass TanStack Query's dehydrate function
45
+ * const state = silgiDehydrate(queryClient)
46
+ * ```
47
+ */
48
+ function dehydrate(queryClient) {
49
+ try {
50
+ const tq = __require("@tanstack/react-query");
51
+ if (typeof tq.dehydrate === "function") return tq.dehydrate(queryClient);
52
+ } catch {}
53
+ const cache = queryClient.getQueryCache?.();
54
+ if (!cache) return {};
55
+ return { queries: cache.getAll().map((query) => ({
56
+ queryKey: query.queryKey,
57
+ state: query.state
58
+ })) };
59
+ }
60
+ /**
61
+ * Create a custom serializer for SSR hydration that handles
62
+ * Silgi-specific types (Date, Map, etc.) during dehydration.
63
+ */
64
+ function createSSRSerializer() {
65
+ return {
66
+ serialize: (value) => {
67
+ return JSON.stringify(value, function(_key, val) {
68
+ const original = this[_key];
69
+ if (original instanceof Date) return {
70
+ __type: "Date",
71
+ value: original.toISOString()
72
+ };
73
+ if (original instanceof Map) return {
74
+ __type: "Map",
75
+ value: Array.from(original.entries())
76
+ };
77
+ if (original instanceof Set) return {
78
+ __type: "Set",
79
+ value: Array.from(original)
80
+ };
81
+ if (typeof original === "bigint") return {
82
+ __type: "BigInt",
83
+ value: original.toString()
84
+ };
85
+ return val;
86
+ });
87
+ },
88
+ deserialize: (text) => {
89
+ return JSON.parse(text, (_key, val) => {
90
+ if (val && typeof val === "object" && "__type" in val) switch (val.__type) {
91
+ case "Date": return new Date(val.value);
92
+ case "Map": return new Map(val.value);
93
+ case "Set": return new Set(val.value);
94
+ case "BigInt": return BigInt(val.value);
95
+ }
96
+ return val;
97
+ });
98
+ }
99
+ };
100
+ }
101
+ //#endregion
102
+ export { createSSRSerializer, dehydrate, prefetchQueries };
@@ -0,0 +1,75 @@
1
+ import { AnySchema } from "../../core/schema.mjs";
2
+
3
+ //#region src/integrations/zod/converter.d.ts
4
+ type JSONSchema = {
5
+ type?: string | string[];
6
+ format?: string;
7
+ properties?: Record<string, JSONSchema>;
8
+ required?: string[];
9
+ items?: JSONSchema;
10
+ prefixItems?: JSONSchema[];
11
+ anyOf?: JSONSchema[];
12
+ oneOf?: JSONSchema[];
13
+ allOf?: JSONSchema[];
14
+ not?: JSONSchema;
15
+ enum?: unknown[];
16
+ const?: unknown;
17
+ $ref?: string;
18
+ description?: string;
19
+ title?: string;
20
+ default?: unknown;
21
+ examples?: unknown[];
22
+ deprecated?: boolean;
23
+ readOnly?: boolean;
24
+ minimum?: number;
25
+ maximum?: number;
26
+ exclusiveMinimum?: number;
27
+ exclusiveMaximum?: number;
28
+ multipleOf?: number;
29
+ minLength?: number;
30
+ maxLength?: number;
31
+ pattern?: string;
32
+ minItems?: number;
33
+ maxItems?: number;
34
+ uniqueItems?: boolean;
35
+ minProperties?: number;
36
+ maxProperties?: number;
37
+ additionalProperties?: boolean | JSONSchema;
38
+ 'x-native-type'?: string;
39
+ [key: string]: unknown;
40
+ };
41
+ interface ConvertOptions {
42
+ /** 'input' uses pre-transform types, 'output' uses post-transform */
43
+ strategy: 'input' | 'output';
44
+ /** Max recursion depth before falling back to {} */
45
+ maxDepth?: number;
46
+ }
47
+ /**
48
+ * Convert a Standard Schema to JSON Schema.
49
+ * Returns [required, jsonSchema] tuple.
50
+ */
51
+ interface SchemaConverter {
52
+ condition(schema: AnySchema): boolean;
53
+ convert(schema: AnySchema, options: ConvertOptions): [required: boolean, schema: JSONSchema];
54
+ }
55
+ /**
56
+ * Composite converter — tries each converter in order.
57
+ */
58
+ declare class CompositeSchemaConverter {
59
+ #private;
60
+ constructor(converters: SchemaConverter[]);
61
+ convert(schema: AnySchema | undefined, options: ConvertOptions): [boolean, JSONSchema];
62
+ }
63
+ /**
64
+ * Zod v4 → JSON Schema converter.
65
+ */
66
+ declare class ZodSchemaConverter implements SchemaConverter {
67
+ #private;
68
+ constructor(options?: {
69
+ maxDepth?: number;
70
+ });
71
+ condition(schema: AnySchema): boolean;
72
+ convert(schema: AnySchema, options: ConvertOptions): [boolean, JSONSchema];
73
+ }
74
+ //#endregion
75
+ export { CompositeSchemaConverter, ConvertOptions, JSONSchema, SchemaConverter, ZodSchemaConverter };