covara 0.0.1 → 0.6.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 (846) hide show
  1. package/README.md +839 -0
  2. package/dist/auth/adapter.d.ts +47 -0
  3. package/dist/auth/adapter.d.ts.map +1 -0
  4. package/dist/auth/adapter.js +144 -0
  5. package/dist/auth/adapter.js.map +1 -0
  6. package/dist/auth/adapters/authjs.d.ts +31 -0
  7. package/dist/auth/adapters/authjs.d.ts.map +1 -0
  8. package/dist/auth/adapters/authjs.js +143 -0
  9. package/dist/auth/adapters/authjs.js.map +1 -0
  10. package/dist/auth/adapters/jwt.d.ts +70 -0
  11. package/dist/auth/adapters/jwt.d.ts.map +1 -0
  12. package/dist/auth/adapters/jwt.js +368 -0
  13. package/dist/auth/adapters/jwt.js.map +1 -0
  14. package/dist/auth/adapters/oidc.d.ts +120 -0
  15. package/dist/auth/adapters/oidc.d.ts.map +1 -0
  16. package/dist/auth/adapters/oidc.js +280 -0
  17. package/dist/auth/adapters/oidc.js.map +1 -0
  18. package/dist/auth/adapters/passport.d.ts +44 -0
  19. package/dist/auth/adapters/passport.d.ts.map +1 -0
  20. package/dist/auth/adapters/passport.js +206 -0
  21. package/dist/auth/adapters/passport.js.map +1 -0
  22. package/dist/auth/api-keys.d.ts +68 -0
  23. package/dist/auth/api-keys.d.ts.map +1 -0
  24. package/dist/auth/api-keys.js +117 -0
  25. package/dist/auth/api-keys.js.map +1 -0
  26. package/dist/auth/config.d.ts +36 -0
  27. package/dist/auth/config.d.ts.map +1 -0
  28. package/dist/auth/config.js +50 -0
  29. package/dist/auth/config.js.map +1 -0
  30. package/dist/auth/csrf.d.ts +18 -0
  31. package/dist/auth/csrf.d.ts.map +1 -0
  32. package/dist/auth/csrf.js +59 -0
  33. package/dist/auth/csrf.js.map +1 -0
  34. package/dist/auth/index.d.ts +25 -0
  35. package/dist/auth/index.d.ts.map +1 -0
  36. package/dist/auth/index.js +22 -0
  37. package/dist/auth/index.js.map +1 -0
  38. package/dist/auth/login-throttle.d.ts +21 -0
  39. package/dist/auth/login-throttle.d.ts.map +1 -0
  40. package/dist/auth/login-throttle.js +50 -0
  41. package/dist/auth/login-throttle.js.map +1 -0
  42. package/dist/auth/magic-link.d.ts +13 -0
  43. package/dist/auth/magic-link.d.ts.map +1 -0
  44. package/dist/auth/magic-link.js +14 -0
  45. package/dist/auth/magic-link.js.map +1 -0
  46. package/dist/auth/middleware.d.ts +20 -0
  47. package/dist/auth/middleware.d.ts.map +1 -0
  48. package/dist/auth/middleware.js +116 -0
  49. package/dist/auth/middleware.js.map +1 -0
  50. package/dist/auth/password-policy.d.ts +18 -0
  51. package/dist/auth/password-policy.d.ts.map +1 -0
  52. package/dist/auth/password-policy.js +72 -0
  53. package/dist/auth/password-policy.js.map +1 -0
  54. package/dist/auth/password-reset.d.ts +13 -0
  55. package/dist/auth/password-reset.d.ts.map +1 -0
  56. package/dist/auth/password-reset.js +17 -0
  57. package/dist/auth/password-reset.js.map +1 -0
  58. package/dist/auth/password.d.ts +11 -0
  59. package/dist/auth/password.d.ts.map +1 -0
  60. package/dist/auth/password.js +98 -0
  61. package/dist/auth/password.js.map +1 -0
  62. package/dist/auth/routes.d.ts +111 -0
  63. package/dist/auth/routes.d.ts.map +1 -0
  64. package/dist/auth/routes.js +417 -0
  65. package/dist/auth/routes.js.map +1 -0
  66. package/dist/auth/rsql.d.ts +33 -0
  67. package/dist/auth/rsql.d.ts.map +1 -0
  68. package/dist/auth/rsql.js +102 -0
  69. package/dist/auth/rsql.js.map +1 -0
  70. package/dist/auth/scope.d.ts +26 -0
  71. package/dist/auth/scope.d.ts.map +1 -0
  72. package/dist/auth/scope.js +166 -0
  73. package/dist/auth/scope.js.map +1 -0
  74. package/dist/auth/stores/drizzle.d.ts +39 -0
  75. package/dist/auth/stores/drizzle.d.ts.map +1 -0
  76. package/dist/auth/stores/drizzle.js +183 -0
  77. package/dist/auth/stores/drizzle.js.map +1 -0
  78. package/dist/auth/stores/index.d.ts +6 -0
  79. package/dist/auth/stores/index.d.ts.map +1 -0
  80. package/dist/auth/stores/index.js +4 -0
  81. package/dist/auth/stores/index.js.map +1 -0
  82. package/dist/auth/stores/redis.d.ts +25 -0
  83. package/dist/auth/stores/redis.d.ts.map +1 -0
  84. package/dist/auth/stores/redis.js +147 -0
  85. package/dist/auth/stores/redis.js.map +1 -0
  86. package/dist/auth/totp.d.ts +32 -0
  87. package/dist/auth/totp.d.ts.map +1 -0
  88. package/dist/auth/totp.js +126 -0
  89. package/dist/auth/totp.js.map +1 -0
  90. package/dist/auth/types.d.ts +82 -0
  91. package/dist/auth/types.d.ts.map +1 -0
  92. package/dist/auth/types.js +53 -0
  93. package/dist/auth/types.js.map +1 -0
  94. package/dist/auth/verification.d.ts +32 -0
  95. package/dist/auth/verification.d.ts.map +1 -0
  96. package/dist/auth/verification.js +0 -0
  97. package/dist/auth/verification.js.map +1 -0
  98. package/dist/billing/credits.d.ts +29 -0
  99. package/dist/billing/credits.d.ts.map +1 -0
  100. package/dist/billing/credits.js +66 -0
  101. package/dist/billing/credits.js.map +1 -0
  102. package/dist/billing/index.d.ts +53 -0
  103. package/dist/billing/index.d.ts.map +1 -0
  104. package/dist/billing/index.js +139 -0
  105. package/dist/billing/index.js.map +1 -0
  106. package/dist/billing/lemonsqueezy.d.ts +29 -0
  107. package/dist/billing/lemonsqueezy.d.ts.map +1 -0
  108. package/dist/billing/lemonsqueezy.js +276 -0
  109. package/dist/billing/lemonsqueezy.js.map +1 -0
  110. package/dist/billing/paddle.d.ts +30 -0
  111. package/dist/billing/paddle.d.ts.map +1 -0
  112. package/dist/billing/paddle.js +247 -0
  113. package/dist/billing/paddle.js.map +1 -0
  114. package/dist/billing/polar.d.ts +31 -0
  115. package/dist/billing/polar.d.ts.map +1 -0
  116. package/dist/billing/polar.js +284 -0
  117. package/dist/billing/polar.js.map +1 -0
  118. package/dist/billing/router.d.ts +9 -0
  119. package/dist/billing/router.d.ts.map +1 -0
  120. package/dist/billing/router.js +75 -0
  121. package/dist/billing/router.js.map +1 -0
  122. package/dist/billing/stripe.d.ts +31 -0
  123. package/dist/billing/stripe.d.ts.map +1 -0
  124. package/dist/billing/stripe.js +319 -0
  125. package/dist/billing/stripe.js.map +1 -0
  126. package/dist/billing/types.d.ts +97 -0
  127. package/dist/billing/types.d.ts.map +1 -0
  128. package/dist/billing/types.js +9 -0
  129. package/dist/billing/types.js.map +1 -0
  130. package/dist/cli/create.d.ts +10 -0
  131. package/dist/cli/create.d.ts.map +1 -0
  132. package/dist/cli/create.js +79 -0
  133. package/dist/cli/create.js.map +1 -0
  134. package/dist/cli/generate.d.ts +16 -0
  135. package/dist/cli/generate.d.ts.map +1 -0
  136. package/dist/cli/generate.js +105 -0
  137. package/dist/cli/generate.js.map +1 -0
  138. package/dist/cli/index.d.ts +3 -0
  139. package/dist/cli/index.d.ts.map +1 -0
  140. package/dist/cli/index.js +185 -0
  141. package/dist/cli/index.js.map +1 -0
  142. package/dist/cli/options.d.ts +11 -0
  143. package/dist/cli/options.d.ts.map +1 -0
  144. package/dist/cli/options.js +14 -0
  145. package/dist/cli/options.js.map +1 -0
  146. package/dist/cli/templates/configs.d.ts +12 -0
  147. package/dist/cli/templates/configs.d.ts.map +1 -0
  148. package/dist/cli/templates/configs.js +174 -0
  149. package/dist/cli/templates/configs.js.map +1 -0
  150. package/dist/cli/templates/deploy.d.ts +6 -0
  151. package/dist/cli/templates/deploy.d.ts.map +1 -0
  152. package/dist/cli/templates/deploy.js +147 -0
  153. package/dist/cli/templates/deploy.js.map +1 -0
  154. package/dist/cli/templates/index.d.ts +8 -0
  155. package/dist/cli/templates/index.d.ts.map +1 -0
  156. package/dist/cli/templates/index.js +35 -0
  157. package/dist/cli/templates/index.js.map +1 -0
  158. package/dist/cli/templates/package-json.d.ts +3 -0
  159. package/dist/cli/templates/package-json.d.ts.map +1 -0
  160. package/dist/cli/templates/package-json.js +76 -0
  161. package/dist/cli/templates/package-json.js.map +1 -0
  162. package/dist/cli/templates/readme.d.ts +3 -0
  163. package/dist/cli/templates/readme.d.ts.map +1 -0
  164. package/dist/cli/templates/readme.js +109 -0
  165. package/dist/cli/templates/readme.js.map +1 -0
  166. package/dist/cli/templates/source.d.ts +11 -0
  167. package/dist/cli/templates/source.d.ts.map +1 -0
  168. package/dist/cli/templates/source.js +158 -0
  169. package/dist/cli/templates/source.js.map +1 -0
  170. package/dist/client/auth/auth-transport.d.ts +24 -0
  171. package/dist/client/auth/auth-transport.d.ts.map +1 -0
  172. package/dist/client/auth/auth-transport.js +78 -0
  173. package/dist/client/auth/auth-transport.js.map +1 -0
  174. package/dist/client/auth/index.d.ts +52 -0
  175. package/dist/client/auth/index.d.ts.map +1 -0
  176. package/dist/client/auth/index.js +350 -0
  177. package/dist/client/auth/index.js.map +1 -0
  178. package/dist/client/auth/oidc-client.d.ts +17 -0
  179. package/dist/client/auth/oidc-client.d.ts.map +1 -0
  180. package/dist/client/auth/oidc-client.js +159 -0
  181. package/dist/client/auth/oidc-client.js.map +1 -0
  182. package/dist/client/auth/token-manager.d.ts +51 -0
  183. package/dist/client/auth/token-manager.d.ts.map +1 -0
  184. package/dist/client/auth/token-manager.js +222 -0
  185. package/dist/client/auth/token-manager.js.map +1 -0
  186. package/dist/client/auth/types.d.ts +82 -0
  187. package/dist/client/auth/types.d.ts.map +1 -0
  188. package/dist/client/auth/types.js +2 -0
  189. package/dist/client/auth/types.js.map +1 -0
  190. package/dist/client/billing.d.ts +54 -0
  191. package/dist/client/billing.d.ts.map +1 -0
  192. package/dist/client/billing.js +58 -0
  193. package/dist/client/billing.js.map +1 -0
  194. package/dist/client/dates.d.ts +40 -0
  195. package/dist/client/dates.d.ts.map +1 -0
  196. package/dist/client/dates.js +56 -0
  197. package/dist/client/dates.js.map +1 -0
  198. package/dist/client/env.d.ts +24 -0
  199. package/dist/client/env.d.ts.map +1 -0
  200. package/dist/client/env.js +105 -0
  201. package/dist/client/env.js.map +1 -0
  202. package/dist/client/file-upload.d.ts +53 -0
  203. package/dist/client/file-upload.d.ts.map +1 -0
  204. package/dist/client/file-upload.js +162 -0
  205. package/dist/client/file-upload.js.map +1 -0
  206. package/dist/client/globals.d.ts +6 -0
  207. package/dist/client/globals.d.ts.map +1 -0
  208. package/dist/client/globals.js +23 -0
  209. package/dist/client/globals.js.map +1 -0
  210. package/dist/client/index.d.ts +60 -0
  211. package/dist/client/index.d.ts.map +1 -0
  212. package/dist/client/index.js +266 -0
  213. package/dist/client/index.js.map +1 -0
  214. package/dist/client/indexeddb-storage.d.ts +22 -0
  215. package/dist/client/indexeddb-storage.d.ts.map +1 -0
  216. package/dist/client/indexeddb-storage.js +79 -0
  217. package/dist/client/indexeddb-storage.js.map +1 -0
  218. package/dist/client/jwt.d.ts +62 -0
  219. package/dist/client/jwt.d.ts.map +1 -0
  220. package/dist/client/jwt.js +164 -0
  221. package/dist/client/jwt.js.map +1 -0
  222. package/dist/client/live-store.d.ts +49 -0
  223. package/dist/client/live-store.d.ts.map +1 -0
  224. package/dist/client/live-store.js +638 -0
  225. package/dist/client/live-store.js.map +1 -0
  226. package/dist/client/mutation.d.ts +73 -0
  227. package/dist/client/mutation.d.ts.map +1 -0
  228. package/dist/client/mutation.js +72 -0
  229. package/dist/client/mutation.js.map +1 -0
  230. package/dist/client/offline.d.ts +110 -0
  231. package/dist/client/offline.d.ts.map +1 -0
  232. package/dist/client/offline.js +551 -0
  233. package/dist/client/offline.js.map +1 -0
  234. package/dist/client/query-builder.d.ts +130 -0
  235. package/dist/client/query-builder.d.ts.map +1 -0
  236. package/dist/client/query-builder.js +300 -0
  237. package/dist/client/query-builder.js.map +1 -0
  238. package/dist/client/query-cache.d.ts +64 -0
  239. package/dist/client/query-cache.d.ts.map +1 -0
  240. package/dist/client/query-cache.js +112 -0
  241. package/dist/client/query-cache.js.map +1 -0
  242. package/dist/client/query-types.d.ts +61 -0
  243. package/dist/client/query-types.d.ts.map +1 -0
  244. package/dist/client/query-types.js +2 -0
  245. package/dist/client/query-types.js.map +1 -0
  246. package/dist/client/react-billing.d.ts +24 -0
  247. package/dist/client/react-billing.d.ts.map +1 -0
  248. package/dist/client/react-billing.js +101 -0
  249. package/dist/client/react-billing.js.map +1 -0
  250. package/dist/client/react-files.d.ts +46 -0
  251. package/dist/client/react-files.d.ts.map +1 -0
  252. package/dist/client/react-files.js +174 -0
  253. package/dist/client/react-files.js.map +1 -0
  254. package/dist/client/react-jwt.d.ts +17 -0
  255. package/dist/client/react-jwt.d.ts.map +1 -0
  256. package/dist/client/react-jwt.js +73 -0
  257. package/dist/client/react-jwt.js.map +1 -0
  258. package/dist/client/react.d.ts +210 -0
  259. package/dist/client/react.d.ts.map +1 -0
  260. package/dist/client/react.js +599 -0
  261. package/dist/client/react.js.map +1 -0
  262. package/dist/client/repository.d.ts +49 -0
  263. package/dist/client/repository.d.ts.map +1 -0
  264. package/dist/client/repository.js +269 -0
  265. package/dist/client/repository.js.map +1 -0
  266. package/dist/client/resource-query-builder.d.ts +35 -0
  267. package/dist/client/resource-query-builder.d.ts.map +1 -0
  268. package/dist/client/resource-query-builder.js +177 -0
  269. package/dist/client/resource-query-builder.js.map +1 -0
  270. package/dist/client/subscription-manager.d.ts +37 -0
  271. package/dist/client/subscription-manager.d.ts.map +1 -0
  272. package/dist/client/subscription-manager.js +164 -0
  273. package/dist/client/subscription-manager.js.map +1 -0
  274. package/dist/client/tab-sync.d.ts +35 -0
  275. package/dist/client/tab-sync.d.ts.map +1 -0
  276. package/dist/client/tab-sync.js +129 -0
  277. package/dist/client/tab-sync.js.map +1 -0
  278. package/dist/client/transport.d.ts +50 -0
  279. package/dist/client/transport.d.ts.map +1 -0
  280. package/dist/client/transport.js +205 -0
  281. package/dist/client/transport.js.map +1 -0
  282. package/dist/client/typegen.d.ts +20 -0
  283. package/dist/client/typegen.d.ts.map +1 -0
  284. package/dist/client/typegen.js +578 -0
  285. package/dist/client/typegen.js.map +1 -0
  286. package/dist/client/types.d.ts +472 -0
  287. package/dist/client/types.d.ts.map +1 -0
  288. package/dist/client/types.js +2 -0
  289. package/dist/client/types.js.map +1 -0
  290. package/dist/db/index.d.ts +9 -0
  291. package/dist/db/index.d.ts.map +1 -0
  292. package/dist/db/index.js +5 -0
  293. package/dist/db/index.js.map +1 -0
  294. package/dist/db/internal-schema.d.ts +3831 -0
  295. package/dist/db/internal-schema.d.ts.map +1 -0
  296. package/dist/db/internal-schema.js +130 -0
  297. package/dist/db/internal-schema.js.map +1 -0
  298. package/dist/db/migrate.d.ts +15 -0
  299. package/dist/db/migrate.d.ts.map +1 -0
  300. package/dist/db/migrate.js +127 -0
  301. package/dist/db/migrate.js.map +1 -0
  302. package/dist/db/pooling.d.ts +9 -0
  303. package/dist/db/pooling.d.ts.map +1 -0
  304. package/dist/db/pooling.js +42 -0
  305. package/dist/db/pooling.js.map +1 -0
  306. package/dist/db/seed.d.ts +24 -0
  307. package/dist/db/seed.d.ts.map +1 -0
  308. package/dist/db/seed.js +34 -0
  309. package/dist/db/seed.js.map +1 -0
  310. package/dist/email/builder.d.ts +38 -0
  311. package/dist/email/builder.d.ts.map +1 -0
  312. package/dist/email/builder.js +153 -0
  313. package/dist/email/builder.js.map +1 -0
  314. package/dist/email/cloudflare.d.ts +24 -0
  315. package/dist/email/cloudflare.d.ts.map +1 -0
  316. package/dist/email/cloudflare.js +146 -0
  317. package/dist/email/cloudflare.js.map +1 -0
  318. package/dist/email/index.d.ts +12 -0
  319. package/dist/email/index.d.ts.map +1 -0
  320. package/dist/email/index.js +27 -0
  321. package/dist/email/index.js.map +1 -0
  322. package/dist/email/resend.d.ts +15 -0
  323. package/dist/email/resend.d.ts.map +1 -0
  324. package/dist/email/resend.js +114 -0
  325. package/dist/email/resend.js.map +1 -0
  326. package/dist/email/types.d.ts +36 -0
  327. package/dist/email/types.d.ts.map +1 -0
  328. package/dist/email/types.js +12 -0
  329. package/dist/email/types.js.map +1 -0
  330. package/dist/env/index.d.ts +52 -0
  331. package/dist/env/index.d.ts.map +1 -0
  332. package/dist/env/index.js +153 -0
  333. package/dist/env/index.js.map +1 -0
  334. package/dist/health/checks.d.ts +40 -0
  335. package/dist/health/checks.d.ts.map +1 -0
  336. package/dist/health/checks.js +166 -0
  337. package/dist/health/checks.js.map +1 -0
  338. package/dist/health/index.d.ts +26 -0
  339. package/dist/health/index.d.ts.map +1 -0
  340. package/dist/health/index.js +104 -0
  341. package/dist/health/index.js.map +1 -0
  342. package/dist/index.d.ts +78 -0
  343. package/dist/index.d.ts.map +1 -0
  344. package/dist/index.js +72 -0
  345. package/dist/index.js.map +1 -0
  346. package/dist/kv/durable-object.d.ts +192 -0
  347. package/dist/kv/durable-object.d.ts.map +1 -0
  348. package/dist/kv/durable-object.js +1059 -0
  349. package/dist/kv/durable-object.js.map +1 -0
  350. package/dist/kv/index.d.ts +56 -0
  351. package/dist/kv/index.d.ts.map +1 -0
  352. package/dist/kv/index.js +96 -0
  353. package/dist/kv/index.js.map +1 -0
  354. package/dist/kv/memory.d.ts +78 -0
  355. package/dist/kv/memory.d.ts.map +1 -0
  356. package/dist/kv/memory.js +599 -0
  357. package/dist/kv/memory.js.map +1 -0
  358. package/dist/kv/redis.d.ts +148 -0
  359. package/dist/kv/redis.d.ts.map +1 -0
  360. package/dist/kv/redis.js +405 -0
  361. package/dist/kv/redis.js.map +1 -0
  362. package/dist/kv/types.d.ts +132 -0
  363. package/dist/kv/types.d.ts.map +1 -0
  364. package/dist/kv/types.js +24 -0
  365. package/dist/kv/types.js.map +1 -0
  366. package/dist/middleware/error.d.ts +4 -0
  367. package/dist/middleware/error.d.ts.map +1 -0
  368. package/dist/middleware/error.js +63 -0
  369. package/dist/middleware/error.js.map +1 -0
  370. package/dist/middleware/idempotency.d.ts +21 -0
  371. package/dist/middleware/idempotency.d.ts.map +1 -0
  372. package/dist/middleware/idempotency.js +144 -0
  373. package/dist/middleware/idempotency.js.map +1 -0
  374. package/dist/middleware/logging.d.ts +3 -0
  375. package/dist/middleware/logging.d.ts.map +1 -0
  376. package/dist/middleware/logging.js +6 -0
  377. package/dist/middleware/logging.js.map +1 -0
  378. package/dist/middleware/observability.d.ts +104 -0
  379. package/dist/middleware/observability.d.ts.map +1 -0
  380. package/dist/middleware/observability.js +231 -0
  381. package/dist/middleware/observability.js.map +1 -0
  382. package/dist/middleware/rateLimit.d.ts +83 -0
  383. package/dist/middleware/rateLimit.d.ts.map +1 -0
  384. package/dist/middleware/rateLimit.js +255 -0
  385. package/dist/middleware/rateLimit.js.map +1 -0
  386. package/dist/middleware/securityHeaders.d.ts +18 -0
  387. package/dist/middleware/securityHeaders.d.ts.map +1 -0
  388. package/dist/middleware/securityHeaders.js +58 -0
  389. package/dist/middleware/securityHeaders.js.map +1 -0
  390. package/dist/middleware/versioning.d.ts +62 -0
  391. package/dist/middleware/versioning.d.ts.map +1 -0
  392. package/dist/middleware/versioning.js +178 -0
  393. package/dist/middleware/versioning.js.map +1 -0
  394. package/dist/oidc/backends/email-password.d.ts +3 -0
  395. package/dist/oidc/backends/email-password.d.ts.map +1 -0
  396. package/dist/oidc/backends/email-password.js +37 -0
  397. package/dist/oidc/backends/email-password.js.map +1 -0
  398. package/dist/oidc/backends/federated.d.ts +13 -0
  399. package/dist/oidc/backends/federated.d.ts.map +1 -0
  400. package/dist/oidc/backends/federated.js +225 -0
  401. package/dist/oidc/backends/federated.js.map +1 -0
  402. package/dist/oidc/backends/index.d.ts +3 -0
  403. package/dist/oidc/backends/index.d.ts.map +1 -0
  404. package/dist/oidc/backends/index.js +3 -0
  405. package/dist/oidc/backends/index.js.map +1 -0
  406. package/dist/oidc/body.d.ts +3 -0
  407. package/dist/oidc/body.d.ts.map +1 -0
  408. package/dist/oidc/body.js +23 -0
  409. package/dist/oidc/body.js.map +1 -0
  410. package/dist/oidc/discovery.d.ts +3 -0
  411. package/dist/oidc/discovery.d.ts.map +1 -0
  412. package/dist/oidc/discovery.js +66 -0
  413. package/dist/oidc/discovery.js.map +1 -0
  414. package/dist/oidc/endpoints/authorize.d.ts +12 -0
  415. package/dist/oidc/endpoints/authorize.d.ts.map +1 -0
  416. package/dist/oidc/endpoints/authorize.js +148 -0
  417. package/dist/oidc/endpoints/authorize.js.map +1 -0
  418. package/dist/oidc/endpoints/client-auth.d.ts +9 -0
  419. package/dist/oidc/endpoints/client-auth.d.ts.map +1 -0
  420. package/dist/oidc/endpoints/client-auth.js +52 -0
  421. package/dist/oidc/endpoints/client-auth.js.map +1 -0
  422. package/dist/oidc/endpoints/index.d.ts +9 -0
  423. package/dist/oidc/endpoints/index.d.ts.map +1 -0
  424. package/dist/oidc/endpoints/index.js +9 -0
  425. package/dist/oidc/endpoints/index.js.map +1 -0
  426. package/dist/oidc/endpoints/introspection.d.ts +9 -0
  427. package/dist/oidc/endpoints/introspection.d.ts.map +1 -0
  428. package/dist/oidc/endpoints/introspection.js +57 -0
  429. package/dist/oidc/endpoints/introspection.js.map +1 -0
  430. package/dist/oidc/endpoints/jwks.d.ts +4 -0
  431. package/dist/oidc/endpoints/jwks.d.ts.map +1 -0
  432. package/dist/oidc/endpoints/jwks.js +11 -0
  433. package/dist/oidc/endpoints/jwks.js.map +1 -0
  434. package/dist/oidc/endpoints/logout.d.ts +12 -0
  435. package/dist/oidc/endpoints/logout.d.ts.map +1 -0
  436. package/dist/oidc/endpoints/logout.js +92 -0
  437. package/dist/oidc/endpoints/logout.js.map +1 -0
  438. package/dist/oidc/endpoints/register.d.ts +9 -0
  439. package/dist/oidc/endpoints/register.d.ts.map +1 -0
  440. package/dist/oidc/endpoints/register.js +104 -0
  441. package/dist/oidc/endpoints/register.js.map +1 -0
  442. package/dist/oidc/endpoints/revocation.d.ts +9 -0
  443. package/dist/oidc/endpoints/revocation.d.ts.map +1 -0
  444. package/dist/oidc/endpoints/revocation.js +31 -0
  445. package/dist/oidc/endpoints/revocation.js.map +1 -0
  446. package/dist/oidc/endpoints/token.d.ts +11 -0
  447. package/dist/oidc/endpoints/token.d.ts.map +1 -0
  448. package/dist/oidc/endpoints/token.js +167 -0
  449. package/dist/oidc/endpoints/token.js.map +1 -0
  450. package/dist/oidc/endpoints/userinfo.d.ts +10 -0
  451. package/dist/oidc/endpoints/userinfo.d.ts.map +1 -0
  452. package/dist/oidc/endpoints/userinfo.js +58 -0
  453. package/dist/oidc/endpoints/userinfo.js.map +1 -0
  454. package/dist/oidc/index.d.ts +79 -0
  455. package/dist/oidc/index.d.ts.map +1 -0
  456. package/dist/oidc/index.js +44 -0
  457. package/dist/oidc/index.js.map +1 -0
  458. package/dist/oidc/keys/index.d.ts +2 -0
  459. package/dist/oidc/keys/index.d.ts.map +1 -0
  460. package/dist/oidc/keys/index.js +2 -0
  461. package/dist/oidc/keys/index.js.map +1 -0
  462. package/dist/oidc/keys/jwk.d.ts +3 -0
  463. package/dist/oidc/keys/jwk.d.ts.map +1 -0
  464. package/dist/oidc/keys/jwk.js +171 -0
  465. package/dist/oidc/keys/jwk.js.map +1 -0
  466. package/dist/oidc/provider.d.ts +10 -0
  467. package/dist/oidc/provider.d.ts.map +1 -0
  468. package/dist/oidc/provider.js +152 -0
  469. package/dist/oidc/provider.js.map +1 -0
  470. package/dist/oidc/rate-limit.d.ts +9 -0
  471. package/dist/oidc/rate-limit.d.ts.map +1 -0
  472. package/dist/oidc/rate-limit.js +61 -0
  473. package/dist/oidc/rate-limit.js.map +1 -0
  474. package/dist/oidc/stores/index.d.ts +124 -0
  475. package/dist/oidc/stores/index.d.ts.map +1 -0
  476. package/dist/oidc/stores/index.js +337 -0
  477. package/dist/oidc/stores/index.js.map +1 -0
  478. package/dist/oidc/tokens/index.d.ts +4 -0
  479. package/dist/oidc/tokens/index.d.ts.map +1 -0
  480. package/dist/oidc/tokens/index.js +158 -0
  481. package/dist/oidc/tokens/index.js.map +1 -0
  482. package/dist/oidc/types.d.ts +442 -0
  483. package/dist/oidc/types.d.ts.map +1 -0
  484. package/dist/oidc/types.js +2 -0
  485. package/dist/oidc/types.js.map +1 -0
  486. package/dist/oidc/ui/consent.d.ts +12 -0
  487. package/dist/oidc/ui/consent.d.ts.map +1 -0
  488. package/dist/oidc/ui/consent.js +180 -0
  489. package/dist/oidc/ui/consent.js.map +1 -0
  490. package/dist/oidc/ui/index.d.ts +3 -0
  491. package/dist/oidc/ui/index.d.ts.map +1 -0
  492. package/dist/oidc/ui/index.js +3 -0
  493. package/dist/oidc/ui/index.js.map +1 -0
  494. package/dist/oidc/ui/login.d.ts +12 -0
  495. package/dist/oidc/ui/login.d.ts.map +1 -0
  496. package/dist/oidc/ui/login.js +159 -0
  497. package/dist/oidc/ui/login.js.map +1 -0
  498. package/dist/oidc/util.d.ts +5 -0
  499. package/dist/oidc/util.d.ts.map +1 -0
  500. package/dist/oidc/util.js +67 -0
  501. package/dist/oidc/util.js.map +1 -0
  502. package/dist/openapi/generator.d.ts +131 -0
  503. package/dist/openapi/generator.d.ts.map +1 -0
  504. package/dist/openapi/generator.js +609 -0
  505. package/dist/openapi/generator.js.map +1 -0
  506. package/dist/openapi/index.d.ts +5 -0
  507. package/dist/openapi/index.d.ts.map +1 -0
  508. package/dist/openapi/index.js +3 -0
  509. package/dist/openapi/index.js.map +1 -0
  510. package/dist/openapi/schema.d.ts +51 -0
  511. package/dist/openapi/schema.d.ts.map +1 -0
  512. package/dist/openapi/schema.js +296 -0
  513. package/dist/openapi/schema.js.map +1 -0
  514. package/dist/resource/batch.d.ts +40 -0
  515. package/dist/resource/batch.d.ts.map +1 -0
  516. package/dist/resource/batch.js +144 -0
  517. package/dist/resource/batch.js.map +1 -0
  518. package/dist/resource/capabilities.d.ts +29 -0
  519. package/dist/resource/capabilities.d.ts.map +1 -0
  520. package/dist/resource/capabilities.js +224 -0
  521. package/dist/resource/capabilities.js.map +1 -0
  522. package/dist/resource/changelog.d.ts +41 -0
  523. package/dist/resource/changelog.d.ts.map +1 -0
  524. package/dist/resource/changelog.js +275 -0
  525. package/dist/resource/changelog.js.map +1 -0
  526. package/dist/resource/error.d.ts +110 -0
  527. package/dist/resource/error.d.ts.map +1 -0
  528. package/dist/resource/error.js +276 -0
  529. package/dist/resource/error.js.map +1 -0
  530. package/dist/resource/etag.d.ts +30 -0
  531. package/dist/resource/etag.d.ts.map +1 -0
  532. package/dist/resource/etag.js +148 -0
  533. package/dist/resource/etag.js.map +1 -0
  534. package/dist/resource/filter.d.ts +36 -0
  535. package/dist/resource/filter.d.ts.map +1 -0
  536. package/dist/resource/filter.js +1136 -0
  537. package/dist/resource/filter.js.map +1 -0
  538. package/dist/resource/hook.d.ts +13 -0
  539. package/dist/resource/hook.d.ts.map +1 -0
  540. package/dist/resource/hook.js +976 -0
  541. package/dist/resource/hook.js.map +1 -0
  542. package/dist/resource/mutate.d.ts +49 -0
  543. package/dist/resource/mutate.d.ts.map +1 -0
  544. package/dist/resource/mutate.js +247 -0
  545. package/dist/resource/mutate.js.map +1 -0
  546. package/dist/resource/operator-equivalence.d.ts +54 -0
  547. package/dist/resource/operator-equivalence.d.ts.map +1 -0
  548. package/dist/resource/operator-equivalence.js +342 -0
  549. package/dist/resource/operator-equivalence.js.map +1 -0
  550. package/dist/resource/pagination.d.ts +63 -0
  551. package/dist/resource/pagination.d.ts.map +1 -0
  552. package/dist/resource/pagination.js +266 -0
  553. package/dist/resource/pagination.js.map +1 -0
  554. package/dist/resource/procedures.d.ts +28 -0
  555. package/dist/resource/procedures.d.ts.map +1 -0
  556. package/dist/resource/procedures.js +197 -0
  557. package/dist/resource/procedures.js.map +1 -0
  558. package/dist/resource/query.d.ts +37 -0
  559. package/dist/resource/query.d.ts.map +1 -0
  560. package/dist/resource/query.js +246 -0
  561. package/dist/resource/query.js.map +1 -0
  562. package/dist/resource/relations.d.ts +70 -0
  563. package/dist/resource/relations.d.ts.map +1 -0
  564. package/dist/resource/relations.js +395 -0
  565. package/dist/resource/relations.js.map +1 -0
  566. package/dist/resource/search-outbox.d.ts +38 -0
  567. package/dist/resource/search-outbox.d.ts.map +1 -0
  568. package/dist/resource/search-outbox.js +121 -0
  569. package/dist/resource/search-outbox.js.map +1 -0
  570. package/dist/resource/search.d.ts +14 -0
  571. package/dist/resource/search.d.ts.map +1 -0
  572. package/dist/resource/search.js +267 -0
  573. package/dist/resource/search.js.map +1 -0
  574. package/dist/resource/secure-query.d.ts +55 -0
  575. package/dist/resource/secure-query.d.ts.map +1 -0
  576. package/dist/resource/secure-query.js +175 -0
  577. package/dist/resource/secure-query.js.map +1 -0
  578. package/dist/resource/subscription.d.ts +46 -0
  579. package/dist/resource/subscription.d.ts.map +1 -0
  580. package/dist/resource/subscription.js +684 -0
  581. package/dist/resource/subscription.js.map +1 -0
  582. package/dist/resource/track-mutations.d.ts +58 -0
  583. package/dist/resource/track-mutations.d.ts.map +1 -0
  584. package/dist/resource/track-mutations.js +721 -0
  585. package/dist/resource/track-mutations.js.map +1 -0
  586. package/dist/resource/types.d.ts +298 -0
  587. package/dist/resource/types.d.ts.map +1 -0
  588. package/dist/resource/types.js +2 -0
  589. package/dist/resource/types.js.map +1 -0
  590. package/dist/search/index.d.ts +11 -0
  591. package/dist/search/index.d.ts.map +1 -0
  592. package/dist/search/index.js +22 -0
  593. package/dist/search/index.js.map +1 -0
  594. package/dist/search/memory.d.ts +6 -0
  595. package/dist/search/memory.d.ts.map +1 -0
  596. package/dist/search/memory.js +70 -0
  597. package/dist/search/memory.js.map +1 -0
  598. package/dist/search/opensearch.d.ts +47 -0
  599. package/dist/search/opensearch.d.ts.map +1 -0
  600. package/dist/search/opensearch.js +126 -0
  601. package/dist/search/opensearch.js.map +1 -0
  602. package/dist/search/postgres-fts.d.ts +16 -0
  603. package/dist/search/postgres-fts.d.ts.map +1 -0
  604. package/dist/search/postgres-fts.js +171 -0
  605. package/dist/search/postgres-fts.js.map +1 -0
  606. package/dist/search/sqlite-fts.d.ts +14 -0
  607. package/dist/search/sqlite-fts.d.ts.map +1 -0
  608. package/dist/search/sqlite-fts.js +185 -0
  609. package/dist/search/sqlite-fts.js.map +1 -0
  610. package/dist/search/types.d.ts +49 -0
  611. package/dist/search/types.d.ts.map +1 -0
  612. package/dist/search/types.js +2 -0
  613. package/dist/search/types.js.map +1 -0
  614. package/dist/server/app.d.ts +33 -0
  615. package/dist/server/app.d.ts.map +1 -0
  616. package/dist/server/app.js +82 -0
  617. package/dist/server/app.js.map +1 -0
  618. package/dist/server/context.d.ts +16 -0
  619. package/dist/server/context.d.ts.map +1 -0
  620. package/dist/server/context.js +12 -0
  621. package/dist/server/context.js.map +1 -0
  622. package/dist/server/env.d.ts +4 -0
  623. package/dist/server/env.d.ts.map +1 -0
  624. package/dist/server/env.js +7 -0
  625. package/dist/server/env.js.map +1 -0
  626. package/dist/server/lifecycle.d.ts +6 -0
  627. package/dist/server/lifecycle.d.ts.map +1 -0
  628. package/dist/server/lifecycle.js +28 -0
  629. package/dist/server/lifecycle.js.map +1 -0
  630. package/dist/server/logger.d.ts +28 -0
  631. package/dist/server/logger.d.ts.map +1 -0
  632. package/dist/server/logger.js +58 -0
  633. package/dist/server/logger.js.map +1 -0
  634. package/dist/server/node.d.ts +18 -0
  635. package/dist/server/node.d.ts.map +1 -0
  636. package/dist/server/node.js +47 -0
  637. package/dist/server/node.js.map +1 -0
  638. package/dist/server/request.d.ts +4 -0
  639. package/dist/server/request.d.ts.map +1 -0
  640. package/dist/server/request.js +29 -0
  641. package/dist/server/request.js.map +1 -0
  642. package/dist/server/sse.d.ts +26 -0
  643. package/dist/server/sse.d.ts.map +1 -0
  644. package/dist/server/sse.js +115 -0
  645. package/dist/server/sse.js.map +1 -0
  646. package/dist/storage/index.d.ts +15 -0
  647. package/dist/storage/index.d.ts.map +1 -0
  648. package/dist/storage/index.js +41 -0
  649. package/dist/storage/index.js.map +1 -0
  650. package/dist/storage/local.d.ts +25 -0
  651. package/dist/storage/local.d.ts.map +1 -0
  652. package/dist/storage/local.js +172 -0
  653. package/dist/storage/local.js.map +1 -0
  654. package/dist/storage/memory.d.ts +20 -0
  655. package/dist/storage/memory.d.ts.map +1 -0
  656. package/dist/storage/memory.js +82 -0
  657. package/dist/storage/memory.js.map +1 -0
  658. package/dist/storage/r2.d.ts +62 -0
  659. package/dist/storage/r2.d.ts.map +1 -0
  660. package/dist/storage/r2.js +124 -0
  661. package/dist/storage/r2.js.map +1 -0
  662. package/dist/storage/resource.d.ts +50 -0
  663. package/dist/storage/resource.d.ts.map +1 -0
  664. package/dist/storage/resource.js +346 -0
  665. package/dist/storage/resource.js.map +1 -0
  666. package/dist/storage/s3.d.ts +29 -0
  667. package/dist/storage/s3.d.ts.map +1 -0
  668. package/dist/storage/s3.js +202 -0
  669. package/dist/storage/s3.js.map +1 -0
  670. package/dist/storage/types.d.ts +75 -0
  671. package/dist/storage/types.d.ts.map +1 -0
  672. package/dist/storage/types.js +17 -0
  673. package/dist/storage/types.js.map +1 -0
  674. package/dist/storage/validation.d.ts +11 -0
  675. package/dist/storage/validation.d.ts.map +1 -0
  676. package/dist/storage/validation.js +38 -0
  677. package/dist/storage/validation.js.map +1 -0
  678. package/dist/tasks/cloudflare-queues.d.ts +63 -0
  679. package/dist/tasks/cloudflare-queues.d.ts.map +1 -0
  680. package/dist/tasks/cloudflare-queues.js +172 -0
  681. package/dist/tasks/cloudflare-queues.js.map +1 -0
  682. package/dist/tasks/concurrency.d.ts +8 -0
  683. package/dist/tasks/concurrency.d.ts.map +1 -0
  684. package/dist/tasks/concurrency.js +27 -0
  685. package/dist/tasks/concurrency.js.map +1 -0
  686. package/dist/tasks/define.d.ts +25 -0
  687. package/dist/tasks/define.d.ts.map +1 -0
  688. package/dist/tasks/define.js +17 -0
  689. package/dist/tasks/define.js.map +1 -0
  690. package/dist/tasks/dlq.d.ts +29 -0
  691. package/dist/tasks/dlq.d.ts.map +1 -0
  692. package/dist/tasks/dlq.js +185 -0
  693. package/dist/tasks/dlq.js.map +1 -0
  694. package/dist/tasks/idempotency.d.ts +13 -0
  695. package/dist/tasks/idempotency.d.ts.map +1 -0
  696. package/dist/tasks/idempotency.js +21 -0
  697. package/dist/tasks/idempotency.js.map +1 -0
  698. package/dist/tasks/index.d.ts +27 -0
  699. package/dist/tasks/index.d.ts.map +1 -0
  700. package/dist/tasks/index.js +15 -0
  701. package/dist/tasks/index.js.map +1 -0
  702. package/dist/tasks/integration.d.ts +18 -0
  703. package/dist/tasks/integration.d.ts.map +1 -0
  704. package/dist/tasks/integration.js +86 -0
  705. package/dist/tasks/integration.js.map +1 -0
  706. package/dist/tasks/lock.d.ts +9 -0
  707. package/dist/tasks/lock.d.ts.map +1 -0
  708. package/dist/tasks/lock.js +31 -0
  709. package/dist/tasks/lock.js.map +1 -0
  710. package/dist/tasks/queue.d.ts +11 -0
  711. package/dist/tasks/queue.d.ts.map +1 -0
  712. package/dist/tasks/queue.js +75 -0
  713. package/dist/tasks/queue.js.map +1 -0
  714. package/dist/tasks/recurring.d.ts +16 -0
  715. package/dist/tasks/recurring.d.ts.map +1 -0
  716. package/dist/tasks/recurring.js +173 -0
  717. package/dist/tasks/recurring.js.map +1 -0
  718. package/dist/tasks/retry.d.ts +4 -0
  719. package/dist/tasks/retry.d.ts.map +1 -0
  720. package/dist/tasks/retry.js +29 -0
  721. package/dist/tasks/retry.js.map +1 -0
  722. package/dist/tasks/scheduler.d.ts +22 -0
  723. package/dist/tasks/scheduler.d.ts.map +1 -0
  724. package/dist/tasks/scheduler.js +125 -0
  725. package/dist/tasks/scheduler.js.map +1 -0
  726. package/dist/tasks/storage.d.ts +17 -0
  727. package/dist/tasks/storage.d.ts.map +1 -0
  728. package/dist/tasks/storage.js +231 -0
  729. package/dist/tasks/storage.js.map +1 -0
  730. package/dist/tasks/types.d.ts +144 -0
  731. package/dist/tasks/types.d.ts.map +1 -0
  732. package/dist/tasks/types.js +2 -0
  733. package/dist/tasks/types.js.map +1 -0
  734. package/dist/tasks/worker.d.ts +21 -0
  735. package/dist/tasks/worker.d.ts.map +1 -0
  736. package/dist/tasks/worker.js +267 -0
  737. package/dist/tasks/worker.js.map +1 -0
  738. package/dist/ui/admin-auth.d.ts +65 -0
  739. package/dist/ui/admin-auth.d.ts.map +1 -0
  740. package/dist/ui/admin-auth.js +248 -0
  741. package/dist/ui/admin-auth.js.map +1 -0
  742. package/dist/ui/data-explorer.d.ts +11 -0
  743. package/dist/ui/data-explorer.d.ts.map +1 -0
  744. package/dist/ui/data-explorer.js +414 -0
  745. package/dist/ui/data-explorer.js.map +1 -0
  746. package/dist/ui/html/components/index.d.ts +75 -0
  747. package/dist/ui/html/components/index.d.ts.map +1 -0
  748. package/dist/ui/html/components/index.js +154 -0
  749. package/dist/ui/html/components/index.js.map +1 -0
  750. package/dist/ui/html/index.d.ts +6 -0
  751. package/dist/ui/html/index.d.ts.map +1 -0
  752. package/dist/ui/html/index.js +6 -0
  753. package/dist/ui/html/index.js.map +1 -0
  754. package/dist/ui/html/layout.d.ts +19 -0
  755. package/dist/ui/html/layout.d.ts.map +1 -0
  756. package/dist/ui/html/layout.js +162 -0
  757. package/dist/ui/html/layout.js.map +1 -0
  758. package/dist/ui/html/pages/admin-audit.d.ts +21 -0
  759. package/dist/ui/html/pages/admin-audit.d.ts.map +1 -0
  760. package/dist/ui/html/pages/admin-audit.js +130 -0
  761. package/dist/ui/html/pages/admin-audit.js.map +1 -0
  762. package/dist/ui/html/pages/api-explorer.d.ts +40 -0
  763. package/dist/ui/html/pages/api-explorer.d.ts.map +1 -0
  764. package/dist/ui/html/pages/api-explorer.js +153 -0
  765. package/dist/ui/html/pages/api-explorer.js.map +1 -0
  766. package/dist/ui/html/pages/changelog.d.ts +27 -0
  767. package/dist/ui/html/pages/changelog.d.ts.map +1 -0
  768. package/dist/ui/html/pages/changelog.js +129 -0
  769. package/dist/ui/html/pages/changelog.js.map +1 -0
  770. package/dist/ui/html/pages/dashboard.d.ts +20 -0
  771. package/dist/ui/html/pages/dashboard.d.ts.map +1 -0
  772. package/dist/ui/html/pages/dashboard.js +49 -0
  773. package/dist/ui/html/pages/dashboard.js.map +1 -0
  774. package/dist/ui/html/pages/data-explorer.d.ts +48 -0
  775. package/dist/ui/html/pages/data-explorer.d.ts.map +1 -0
  776. package/dist/ui/html/pages/data-explorer.js +251 -0
  777. package/dist/ui/html/pages/data-explorer.js.map +1 -0
  778. package/dist/ui/html/pages/errors.d.ts +13 -0
  779. package/dist/ui/html/pages/errors.d.ts.map +1 -0
  780. package/dist/ui/html/pages/errors.js +38 -0
  781. package/dist/ui/html/pages/errors.js.map +1 -0
  782. package/dist/ui/html/pages/filter-tester.d.ts +21 -0
  783. package/dist/ui/html/pages/filter-tester.d.ts.map +1 -0
  784. package/dist/ui/html/pages/filter-tester.js +161 -0
  785. package/dist/ui/html/pages/filter-tester.js.map +1 -0
  786. package/dist/ui/html/pages/index.d.ts +15 -0
  787. package/dist/ui/html/pages/index.d.ts.map +1 -0
  788. package/dist/ui/html/pages/index.js +15 -0
  789. package/dist/ui/html/pages/index.js.map +1 -0
  790. package/dist/ui/html/pages/kv-inspector.d.ts +20 -0
  791. package/dist/ui/html/pages/kv-inspector.d.ts.map +1 -0
  792. package/dist/ui/html/pages/kv-inspector.js +130 -0
  793. package/dist/ui/html/pages/kv-inspector.js.map +1 -0
  794. package/dist/ui/html/pages/requests.d.ts +23 -0
  795. package/dist/ui/html/pages/requests.d.ts.map +1 -0
  796. package/dist/ui/html/pages/requests.js +127 -0
  797. package/dist/ui/html/pages/requests.js.map +1 -0
  798. package/dist/ui/html/pages/resources.d.ts +27 -0
  799. package/dist/ui/html/pages/resources.d.ts.map +1 -0
  800. package/dist/ui/html/pages/resources.js +85 -0
  801. package/dist/ui/html/pages/resources.js.map +1 -0
  802. package/dist/ui/html/pages/sessions.d.ts +24 -0
  803. package/dist/ui/html/pages/sessions.d.ts.map +1 -0
  804. package/dist/ui/html/pages/sessions.js +157 -0
  805. package/dist/ui/html/pages/sessions.js.map +1 -0
  806. package/dist/ui/html/pages/subscriptions.d.ts +32 -0
  807. package/dist/ui/html/pages/subscriptions.d.ts.map +1 -0
  808. package/dist/ui/html/pages/subscriptions.js +138 -0
  809. package/dist/ui/html/pages/subscriptions.js.map +1 -0
  810. package/dist/ui/html/pages/tasks.d.ts +42 -0
  811. package/dist/ui/html/pages/tasks.d.ts.map +1 -0
  812. package/dist/ui/html/pages/tasks.js +225 -0
  813. package/dist/ui/html/pages/tasks.js.map +1 -0
  814. package/dist/ui/html/pages/users.d.ts +29 -0
  815. package/dist/ui/html/pages/users.d.ts.map +1 -0
  816. package/dist/ui/html/pages/users.js +192 -0
  817. package/dist/ui/html/pages/users.js.map +1 -0
  818. package/dist/ui/html/styles.d.ts +2 -0
  819. package/dist/ui/html/styles.d.ts.map +1 -0
  820. package/dist/ui/html/styles.js +675 -0
  821. package/dist/ui/html/styles.js.map +1 -0
  822. package/dist/ui/html/utils.d.ts +14 -0
  823. package/dist/ui/html/utils.d.ts.map +1 -0
  824. package/dist/ui/html/utils.js +76 -0
  825. package/dist/ui/html/utils.js.map +1 -0
  826. package/dist/ui/index.d.ts +13 -0
  827. package/dist/ui/index.d.ts.map +1 -0
  828. package/dist/ui/index.js +7 -0
  829. package/dist/ui/index.js.map +1 -0
  830. package/dist/ui/kv-inspector.d.ts +11 -0
  831. package/dist/ui/kv-inspector.d.ts.map +1 -0
  832. package/dist/ui/kv-inspector.js +332 -0
  833. package/dist/ui/kv-inspector.js.map +1 -0
  834. package/dist/ui/middleware.d.ts +76 -0
  835. package/dist/ui/middleware.d.ts.map +1 -0
  836. package/dist/ui/middleware.js +1175 -0
  837. package/dist/ui/middleware.js.map +1 -0
  838. package/dist/ui/schema-registry.d.ts +82 -0
  839. package/dist/ui/schema-registry.d.ts.map +1 -0
  840. package/dist/ui/schema-registry.js +165 -0
  841. package/dist/ui/schema-registry.js.map +1 -0
  842. package/dist/ui/task-monitor.d.ts +12 -0
  843. package/dist/ui/task-monitor.d.ts.map +1 -0
  844. package/dist/ui/task-monitor.js +264 -0
  845. package/dist/ui/task-monitor.js.map +1 -0
  846. package/package.json +201 -7
@@ -0,0 +1,721 @@
1
+ import { getTableName } from "drizzle-orm";
2
+ import { changelog, recordCreate, recordUpdate, recordDelete } from "./changelog.js";
3
+ import { getGlobalKV, hasGlobalKV } from "../kv/index.js";
4
+ import { createHash } from "node:crypto";
5
+ import { pushInsertsToSubscriptions, pushUpdatesToSubscriptions, pushDeletesToSubscriptions, invalidateResourceSubscriptions, } from "./subscription.js";
6
+ import { createResourceFilter } from "./filter.js";
7
+ async function runOrDefer(context, thunk) {
8
+ if (context.pendingEvents) {
9
+ context.pendingEvents.push(thunk);
10
+ }
11
+ else {
12
+ await thunk();
13
+ }
14
+ }
15
+ const CACHE_KEY_PREFIX = "covara:cache:";
16
+ const CACHE_KEYS_SET_PREFIX = "covara:cache:keys:";
17
+ function generateCacheKey(tableName, sql, params, prefix) {
18
+ const hash = createHash("sha256")
19
+ .update(sql)
20
+ .update(JSON.stringify(params))
21
+ .digest("hex")
22
+ .slice(0, 16);
23
+ return `${prefix}${tableName}:${hash}`;
24
+ }
25
+ async function invalidateTableCache(tableName) {
26
+ if (!hasGlobalKV())
27
+ return;
28
+ const kv = getGlobalKV();
29
+ const keysSetKey = `${CACHE_KEYS_SET_PREFIX}${tableName}`;
30
+ const keys = await kv.smembers(keysSetKey);
31
+ if (keys.length > 0) {
32
+ await kv.del(...keys);
33
+ await kv.del(keysSetKey);
34
+ }
35
+ }
36
+ async function storeCacheKey(tableName, cacheKey) {
37
+ if (!hasGlobalKV())
38
+ return;
39
+ const kv = getGlobalKV();
40
+ const keysSetKey = `${CACHE_KEYS_SET_PREFIX}${tableName}`;
41
+ await kv.sadd(keysSetKey, cacheKey);
42
+ }
43
+ function detectMutation(sql) {
44
+ const normalized = sql.trim();
45
+ const insertMatch = normalized.match(/^INSERT\s+INTO\s+["'`]?(\w+)["'`]?/i);
46
+ if (insertMatch)
47
+ return { type: "create", tableName: insertMatch[1].toLowerCase() };
48
+ const updateMatch = normalized.match(/^UPDATE\s+["'`]?(\w+)["'`]?/i);
49
+ if (updateMatch)
50
+ return { type: "update", tableName: updateMatch[1].toLowerCase() };
51
+ const deleteMatch = normalized.match(/^DELETE\s+FROM\s+["'`]?(\w+)["'`]?/i);
52
+ if (deleteMatch)
53
+ return { type: "delete", tableName: deleteMatch[1].toLowerCase() };
54
+ return null;
55
+ }
56
+ function wrapInsertBuilder(builder, tableInfo, context) {
57
+ return new Proxy(builder, {
58
+ get(target, prop) {
59
+ if (prop === "values") {
60
+ return (data) => {
61
+ const base = target.values(data);
62
+ return wrapInsertBase(base, tableInfo, context, data);
63
+ };
64
+ }
65
+ const value = Reflect.get(target, prop, target);
66
+ if (typeof value === "function") {
67
+ return value.bind(target);
68
+ }
69
+ return value;
70
+ },
71
+ });
72
+ }
73
+ function wrapInsertBase(base, tableInfo, context, insertValues, state = { hasReturning: false, hasConflictHandler: false }) {
74
+ return new Proxy(base, {
75
+ get(target, prop) {
76
+ if (prop === "returning") {
77
+ return (fields) => {
78
+ const result = fields ? target.returning(fields) : target.returning();
79
+ return wrapInsertBase(result, tableInfo, context, insertValues, {
80
+ ...state,
81
+ hasReturning: true,
82
+ });
83
+ };
84
+ }
85
+ if (prop === "onConflictDoNothing" || prop === "onConflictDoUpdate") {
86
+ return (...args) => {
87
+ const result = target[prop](...args);
88
+ return wrapInsertBase(result, tableInfo, context, insertValues, {
89
+ ...state,
90
+ hasConflictHandler: true,
91
+ });
92
+ };
93
+ }
94
+ if (prop === "then") {
95
+ return async (resolve, reject) => {
96
+ try {
97
+ const result = await target;
98
+ if (context.trackingEnabled) {
99
+ const items = Array.isArray(result) ? result : (result ? [result] : []);
100
+ await runOrDefer(context, async () => {
101
+ // Only record mutations if we got results or if there's no conflict handler
102
+ // With a conflict handler and no results, the insert was a no-op
103
+ if (items.length === 0 && state.hasReturning === false && !state.hasConflictHandler) {
104
+ const insertArray = Array.isArray(insertValues) ? insertValues : [insertValues];
105
+ for (const item of insertArray) {
106
+ const id = item[tableInfo.idColumnName];
107
+ if (id !== undefined) {
108
+ const entry = await recordCreate(tableInfo.resourceName, String(id), item);
109
+ if (context.config.onMutation) {
110
+ await context.config.onMutation(entry);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ else if (items.length > 0) {
116
+ for (const item of items) {
117
+ const id = String(item[tableInfo.idColumnName]);
118
+ const entry = await recordCreate(tableInfo.resourceName, id, item);
119
+ if (context.config.onMutation) {
120
+ await context.config.onMutation(entry);
121
+ }
122
+ }
123
+ if (context.config.pushToSubscriptions !== false) {
124
+ await pushInsertsToSubscriptions(tableInfo.resourceName, tableInfo.filter, items, tableInfo.idColumnName);
125
+ }
126
+ }
127
+ if (context.config.cache?.enabled && items.length > 0) {
128
+ await invalidateTableCache(tableInfo.resourceName);
129
+ }
130
+ });
131
+ }
132
+ return resolve ? resolve(result) : result;
133
+ }
134
+ catch (error) {
135
+ if (reject)
136
+ return reject(error);
137
+ throw error;
138
+ }
139
+ };
140
+ }
141
+ const value = Reflect.get(target, prop, target);
142
+ if (typeof value === "function") {
143
+ return value.bind(target);
144
+ }
145
+ return value;
146
+ },
147
+ });
148
+ }
149
+ function wrapUpdateBuilder(builder, tableInfo, context) {
150
+ return new Proxy(builder, {
151
+ get(target, prop) {
152
+ if (prop === "set") {
153
+ return (data) => {
154
+ const base = target.set(data);
155
+ return wrapUpdateBase(base, tableInfo, context, data);
156
+ };
157
+ }
158
+ const value = Reflect.get(target, prop, target);
159
+ if (typeof value === "function") {
160
+ return value.bind(target);
161
+ }
162
+ return value;
163
+ },
164
+ });
165
+ }
166
+ function wrapUpdateBase(base, tableInfo, context, updateValues, state = { hasReturning: false }) {
167
+ return new Proxy(base, {
168
+ get(target, prop) {
169
+ if (prop === "where") {
170
+ return (condition) => {
171
+ const result = target.where(condition);
172
+ return wrapUpdateBase(result, tableInfo, context, updateValues, {
173
+ ...state,
174
+ whereClause: condition,
175
+ });
176
+ };
177
+ }
178
+ if (prop === "returning") {
179
+ return (fields) => {
180
+ const result = fields ? target.returning(fields) : target.returning();
181
+ return wrapUpdateBase(result, tableInfo, context, updateValues, {
182
+ ...state,
183
+ hasReturning: true,
184
+ });
185
+ };
186
+ }
187
+ if (prop === "then") {
188
+ return async (resolve, reject) => {
189
+ try {
190
+ let previousItems = [];
191
+ if (context.trackingEnabled && state.whereClause && context.config.capturePreviousState !== false) {
192
+ previousItems = await context.db.select().from(tableInfo.table).where(state.whereClause);
193
+ }
194
+ const previousMap = new Map(previousItems.map((i) => [String(i[tableInfo.idColumnName]), i]));
195
+ const result = await target;
196
+ if (context.trackingEnabled) {
197
+ const items = Array.isArray(result) ? result : (result ? [result] : []);
198
+ await runOrDefer(context, async () => {
199
+ for (const item of items) {
200
+ const id = String(item[tableInfo.idColumnName]);
201
+ const previousItem = previousMap.get(id);
202
+ const entry = await recordUpdate(tableInfo.resourceName, id, item, previousItem);
203
+ if (context.config.onMutation) {
204
+ await context.config.onMutation(entry);
205
+ }
206
+ }
207
+ if (context.config.pushToSubscriptions !== false && items.length > 0) {
208
+ await pushUpdatesToSubscriptions(tableInfo.resourceName, tableInfo.filter, items, tableInfo.idColumnName, previousMap);
209
+ }
210
+ if (context.config.cache?.enabled) {
211
+ await invalidateTableCache(tableInfo.resourceName);
212
+ }
213
+ });
214
+ }
215
+ return resolve ? resolve(result) : result;
216
+ }
217
+ catch (error) {
218
+ if (reject)
219
+ return reject(error);
220
+ throw error;
221
+ }
222
+ };
223
+ }
224
+ const value = Reflect.get(target, prop, target);
225
+ if (typeof value === "function") {
226
+ return value.bind(target);
227
+ }
228
+ return value;
229
+ },
230
+ });
231
+ }
232
+ function wrapDeleteBuilder(builder, tableInfo, context, state = { hasReturning: false }) {
233
+ return new Proxy(builder, {
234
+ get(target, prop) {
235
+ if (prop === "where") {
236
+ return (condition) => {
237
+ const result = target.where(condition);
238
+ return wrapDeleteBuilder(result, tableInfo, context, {
239
+ ...state,
240
+ whereClause: condition,
241
+ });
242
+ };
243
+ }
244
+ if (prop === "returning") {
245
+ return (fields) => {
246
+ const result = fields ? target.returning(fields) : target.returning();
247
+ return wrapDeleteBuilder(result, tableInfo, context, {
248
+ ...state,
249
+ hasReturning: true,
250
+ });
251
+ };
252
+ }
253
+ if (prop === "then") {
254
+ return async (resolve, reject) => {
255
+ try {
256
+ let itemsToDelete = [];
257
+ if (context.trackingEnabled && state.whereClause) {
258
+ itemsToDelete = await context.db.select().from(tableInfo.table).where(state.whereClause);
259
+ }
260
+ const result = await target;
261
+ if (context.trackingEnabled) {
262
+ await runOrDefer(context, async () => {
263
+ const deletedIds = [];
264
+ for (const item of itemsToDelete) {
265
+ const id = String(item[tableInfo.idColumnName]);
266
+ deletedIds.push(id);
267
+ const entry = await recordDelete(tableInfo.resourceName, id, item);
268
+ if (context.config.onMutation) {
269
+ await context.config.onMutation(entry);
270
+ }
271
+ }
272
+ if (context.config.pushToSubscriptions !== false && deletedIds.length > 0) {
273
+ await pushDeletesToSubscriptions(tableInfo.resourceName, deletedIds);
274
+ }
275
+ if (context.config.cache?.enabled) {
276
+ await invalidateTableCache(tableInfo.resourceName);
277
+ }
278
+ });
279
+ }
280
+ return resolve ? resolve(result) : result;
281
+ }
282
+ catch (error) {
283
+ if (reject)
284
+ return reject(error);
285
+ throw error;
286
+ }
287
+ };
288
+ }
289
+ const value = Reflect.get(target, prop, target);
290
+ if (typeof value === "function") {
291
+ return value.bind(target);
292
+ }
293
+ return value;
294
+ },
295
+ });
296
+ }
297
+ const JOIN_METHODS = ["leftJoin", "rightJoin", "innerJoin", "fullJoin"];
298
+ const CHAIN_METHODS = ["where", "orderBy", "limit", "offset", "groupBy", "having"];
299
+ function resolveResourceName(table, context) {
300
+ const name = getTableName(table);
301
+ return context.registryByName.get(name)?.resourceName ?? name;
302
+ }
303
+ function wrapSelectBuilder(builder, context, tableName = null, referencedTables = new Set()) {
304
+ let currentTableName = tableName;
305
+ return new Proxy(builder, {
306
+ get(target, prop) {
307
+ if (prop === "from") {
308
+ return (table) => {
309
+ currentTableName = resolveResourceName(table, context);
310
+ referencedTables.add(currentTableName);
311
+ const result = target.from(table);
312
+ return wrapSelectBuilder(result, context, currentTableName, referencedTables);
313
+ };
314
+ }
315
+ if (prop === "then") {
316
+ return async (resolve, reject) => {
317
+ try {
318
+ const cacheConfig = context.config.cache;
319
+ const shouldCache = cacheConfig?.enabled && currentTableName && hasGlobalKV();
320
+ if (shouldCache && currentTableName) {
321
+ const tableCache = cacheConfig?.tables?.[currentTableName];
322
+ if (tableCache?.enabled === false) {
323
+ const result = await target;
324
+ return resolve ? resolve(result) : result;
325
+ }
326
+ const kv = getGlobalKV();
327
+ const keyPrefix = cacheConfig?.keyPrefix ?? CACHE_KEY_PREFIX;
328
+ const queryObj = target.toSQL?.();
329
+ if (queryObj) {
330
+ const { sql, params } = queryObj;
331
+ const cacheKey = generateCacheKey(currentTableName, sql, params, keyPrefix);
332
+ const cached = await kv.get(cacheKey);
333
+ if (cached) {
334
+ const result = JSON.parse(cached);
335
+ return resolve ? resolve(result) : result;
336
+ }
337
+ const result = await target;
338
+ const ttl = tableCache?.ttl ?? cacheConfig?.ttl;
339
+ if (ttl) {
340
+ await kv.set(cacheKey, JSON.stringify(result), { ex: Math.ceil(ttl / 1000) });
341
+ }
342
+ else {
343
+ await kv.set(cacheKey, JSON.stringify(result));
344
+ }
345
+ // Register the cache key under EVERY table the query touches
346
+ // (including joined tables), so a mutation to any of them
347
+ // invalidates this cached result — not just the FROM table.
348
+ const tablesToTag = referencedTables.size > 0
349
+ ? referencedTables
350
+ : new Set([currentTableName]);
351
+ for (const table of tablesToTag) {
352
+ await storeCacheKey(table, cacheKey);
353
+ }
354
+ return resolve ? resolve(result) : result;
355
+ }
356
+ }
357
+ const result = await target;
358
+ return resolve ? resolve(result) : result;
359
+ }
360
+ catch (error) {
361
+ if (reject)
362
+ return reject(error);
363
+ throw error;
364
+ }
365
+ };
366
+ }
367
+ const value = Reflect.get(target, prop, target);
368
+ if (typeof value === "function") {
369
+ const result = value.bind(target);
370
+ if (JOIN_METHODS.includes(prop)) {
371
+ return (...args) => {
372
+ const joinedTable = args[0];
373
+ if (joinedTable && typeof joinedTable === "object") {
374
+ try {
375
+ referencedTables.add(resolveResourceName(joinedTable, context));
376
+ }
377
+ catch {
378
+ // not a table (e.g. a subquery) — nothing to tag
379
+ }
380
+ }
381
+ return wrapSelectBuilder(result(...args), context, currentTableName, referencedTables);
382
+ };
383
+ }
384
+ if (CHAIN_METHODS.includes(prop)) {
385
+ return (...args) => wrapSelectBuilder(result(...args), context, currentTableName, referencedTables);
386
+ }
387
+ return result;
388
+ }
389
+ return value;
390
+ },
391
+ });
392
+ }
393
+ function extractSqlString(query) {
394
+ if (typeof query === "string") {
395
+ return query;
396
+ }
397
+ const sqlObj = query;
398
+ if (sqlObj.queryChunks && Array.isArray(sqlObj.queryChunks)) {
399
+ return sqlObj.queryChunks
400
+ .flatMap((chunk) => {
401
+ if (typeof chunk === "string")
402
+ return [chunk];
403
+ if (chunk && Array.isArray(chunk.value))
404
+ return chunk.value;
405
+ if (chunk && chunk.encoder)
406
+ return ["?"];
407
+ return [""];
408
+ })
409
+ .join("");
410
+ }
411
+ return "";
412
+ }
413
+ function recordDetectedMutation(sqlString, context) {
414
+ const mutationInfo = detectMutation(sqlString);
415
+ if (!mutationInfo)
416
+ return;
417
+ const tableInfo = context.registryByName.get(mutationInfo.tableName);
418
+ if (!tableInfo)
419
+ return;
420
+ return runOrDefer(context, async () => {
421
+ await changelog.append({
422
+ resource: tableInfo.resourceName,
423
+ type: mutationInfo.type,
424
+ objectId: "*",
425
+ object: undefined,
426
+ previousObject: undefined,
427
+ timestamp: Date.now(),
428
+ });
429
+ if (context.config.onRawSqlMutation) {
430
+ await context.config.onRawSqlMutation(tableInfo.resourceName, mutationInfo.type);
431
+ }
432
+ if (context.config.cache?.enabled) {
433
+ await invalidateTableCache(tableInfo.resourceName);
434
+ }
435
+ // Row-level details are unknown for raw SQL, so notify subscribers to
436
+ // refetch rather than sending a precise added/changed/removed event.
437
+ if (context.config.pushToSubscriptions !== false) {
438
+ await invalidateResourceSubscriptions(tableInfo.resourceName, "raw-sql-mutation");
439
+ }
440
+ });
441
+ }
442
+ // Public entry point for writers OUTSIDE this process / outside trackMutations
443
+ // (cron jobs, other services, manual DB edits). Records a changelog entry,
444
+ // invalidates the query cache, and tells live subscribers to refetch. This is
445
+ // the portable alternative to database-specific CDC.
446
+ export async function recordExternalMutation(resource, type, options = {}) {
447
+ await changelog.append({
448
+ resource,
449
+ type,
450
+ objectId: options.objectId ?? "*",
451
+ object: undefined,
452
+ previousObject: undefined,
453
+ timestamp: Date.now(),
454
+ });
455
+ await invalidateTableCache(resource);
456
+ await invalidateResourceSubscriptions(resource, "external-mutation");
457
+ }
458
+ // drizzle's db.batch([...]) runs an array of query builders atomically without
459
+ // awaiting them individually, so the per-builder `.then()` tracking never
460
+ // fires. We extract each statement's SQL, detect the mutation, and record a
461
+ // coarse `invalidate` (objectId "*") — the same contract as raw SQL — so
462
+ // subscribers/caches stay correct even though we can't see individual rows.
463
+ function wrapBatch(target, context) {
464
+ return async (statements) => {
465
+ const result = await target.batch(statements);
466
+ if (context.trackingEnabled && Array.isArray(statements)) {
467
+ for (const stmt of statements) {
468
+ try {
469
+ const compiled = stmt?.toSQL?.();
470
+ const sqlString = compiled?.sql ?? "";
471
+ if (sqlString) {
472
+ await recordDetectedMutation(sqlString, context);
473
+ }
474
+ }
475
+ catch {
476
+ // a statement we can't introspect just isn't tracked
477
+ }
478
+ }
479
+ }
480
+ return result;
481
+ };
482
+ }
483
+ function wrapRawSql(method, target, context) {
484
+ return async (query) => {
485
+ const result = await target[method](query);
486
+ if (context.trackingEnabled) {
487
+ const sqlString = extractSqlString(query);
488
+ const mutationInfo = detectMutation(sqlString);
489
+ if (mutationInfo) {
490
+ const tableInfo = context.registryByName.get(mutationInfo.tableName);
491
+ if (tableInfo) {
492
+ await runOrDefer(context, async () => {
493
+ await changelog.append({
494
+ resource: tableInfo.resourceName,
495
+ type: mutationInfo.type,
496
+ objectId: "*",
497
+ object: undefined,
498
+ previousObject: undefined,
499
+ timestamp: Date.now(),
500
+ });
501
+ if (context.config.onRawSqlMutation) {
502
+ await context.config.onRawSqlMutation(tableInfo.resourceName, mutationInfo.type);
503
+ }
504
+ if (context.config.cache?.enabled) {
505
+ await invalidateTableCache(tableInfo.resourceName);
506
+ }
507
+ });
508
+ }
509
+ }
510
+ }
511
+ return result;
512
+ };
513
+ }
514
+ function wrapTransaction(tx, registry, registryByName, config, pendingEvents) {
515
+ const txContext = {
516
+ db: tx,
517
+ registry,
518
+ registryByName,
519
+ config,
520
+ trackingEnabled: true,
521
+ pendingEvents,
522
+ };
523
+ return new Proxy(tx, {
524
+ get(target, prop) {
525
+ if (prop === "transaction" && config.trackTransactions !== false) {
526
+ return async (fn, txConfig) => {
527
+ return target.transaction(async (nestedTx) => {
528
+ const wrappedNested = wrapTransaction(nestedTx, registry, registryByName, config, pendingEvents);
529
+ return fn(wrappedNested);
530
+ }, txConfig);
531
+ };
532
+ }
533
+ if (prop === "insert") {
534
+ return (table) => {
535
+ const tableInfo = registry.get(table);
536
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
537
+ return target.insert(table);
538
+ }
539
+ return wrapInsertBuilder(target.insert(table), tableInfo, txContext);
540
+ };
541
+ }
542
+ if (prop === "update") {
543
+ return (table) => {
544
+ const tableInfo = registry.get(table);
545
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
546
+ return target.update(table);
547
+ }
548
+ return wrapUpdateBuilder(target.update(table), tableInfo, txContext);
549
+ };
550
+ }
551
+ if (prop === "delete") {
552
+ return (table) => {
553
+ const tableInfo = registry.get(table);
554
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
555
+ return target.delete(table);
556
+ }
557
+ return wrapDeleteBuilder(target.delete(table), tableInfo, txContext);
558
+ };
559
+ }
560
+ if (prop === "select") {
561
+ return (fields) => {
562
+ const selectBuilder = fields ? target.select(fields) : target.select();
563
+ if (config.cache?.enabled) {
564
+ return wrapSelectBuilder(selectBuilder, txContext);
565
+ }
566
+ return selectBuilder;
567
+ };
568
+ }
569
+ if (prop === "run" || prop === "execute") {
570
+ return wrapRawSql(prop, target, txContext);
571
+ }
572
+ if (prop === "batch") {
573
+ return wrapBatch(target, txContext);
574
+ }
575
+ const value = Reflect.get(target, prop, target);
576
+ if (typeof value === "function") {
577
+ return value.bind(target);
578
+ }
579
+ return value;
580
+ },
581
+ });
582
+ }
583
+ export function isTrackedDb(db) {
584
+ if (db === null || typeof db !== "object") {
585
+ return false;
586
+ }
587
+ // Access properties directly since proxies may not have `has` trap
588
+ const maybeTracked = db;
589
+ return (maybeTracked._trackingContext !== undefined &&
590
+ maybeTracked._originalDb !== undefined);
591
+ }
592
+ export function trackMutations(db, tables, config = {}) {
593
+ const registry = new Map();
594
+ const registryByName = new Map();
595
+ for (const registration of Object.values(tables)) {
596
+ const tableName = getTableName(registration.table);
597
+ const resourceName = registration.resourceName ?? tableName;
598
+ const filter = createResourceFilter(registration.table, {});
599
+ const tableInfo = {
600
+ table: registration.table,
601
+ resourceName,
602
+ idColumn: registration.id,
603
+ idColumnName: registration.id.name,
604
+ filter,
605
+ };
606
+ registry.set(registration.table, tableInfo);
607
+ registryByName.set(tableName, tableInfo);
608
+ registryByName.set(resourceName, tableInfo);
609
+ }
610
+ const context = {
611
+ db,
612
+ registry,
613
+ registryByName,
614
+ config,
615
+ trackingEnabled: true,
616
+ };
617
+ const proxy = new Proxy(db, {
618
+ get(target, prop) {
619
+ if (prop === "_trackingContext") {
620
+ return context;
621
+ }
622
+ if (prop === "_originalDb") {
623
+ return db;
624
+ }
625
+ if (prop === "withoutTracking") {
626
+ return async (fn) => {
627
+ const prevEnabled = context.trackingEnabled;
628
+ context.trackingEnabled = false;
629
+ try {
630
+ return await fn(db);
631
+ }
632
+ finally {
633
+ context.trackingEnabled = prevEnabled;
634
+ }
635
+ };
636
+ }
637
+ if (prop === "insert") {
638
+ return (table) => {
639
+ const tableInfo = registry.get(table);
640
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
641
+ return target.insert(table);
642
+ }
643
+ return wrapInsertBuilder(target.insert(table), tableInfo, context);
644
+ };
645
+ }
646
+ if (prop === "update") {
647
+ return (table) => {
648
+ const tableInfo = registry.get(table);
649
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
650
+ return target.update(table);
651
+ }
652
+ return wrapUpdateBuilder(target.update(table), tableInfo, context);
653
+ };
654
+ }
655
+ if (prop === "delete") {
656
+ return (table) => {
657
+ const tableInfo = registry.get(table);
658
+ if (!tableInfo || config.skipTables?.includes(tableInfo.resourceName)) {
659
+ return target.delete(table);
660
+ }
661
+ return wrapDeleteBuilder(target.delete(table), tableInfo, context);
662
+ };
663
+ }
664
+ if (prop === "select") {
665
+ return (fields) => {
666
+ const selectBuilder = fields ? target.select(fields) : target.select();
667
+ if (config.cache?.enabled) {
668
+ return wrapSelectBuilder(selectBuilder, context);
669
+ }
670
+ return selectBuilder;
671
+ };
672
+ }
673
+ if (prop === "run" || prop === "execute") {
674
+ return wrapRawSql(prop, target, context);
675
+ }
676
+ if (prop === "batch") {
677
+ return wrapBatch(target, context);
678
+ }
679
+ if (prop === "transaction" && config.trackTransactions !== false) {
680
+ return async (fn, txConfig) => {
681
+ const pendingEvents = [];
682
+ const result = await target.transaction(async (tx) => {
683
+ const wrappedTx = wrapTransaction(tx, registry, registryByName, config, pendingEvents);
684
+ return fn(wrappedTx);
685
+ }, txConfig);
686
+ // The transaction committed successfully — only now emit changelog
687
+ // entries, subscription pushes, and cache invalidations. If the
688
+ // transaction had rolled back, `target.transaction` would have thrown
689
+ // and these buffered side effects would be discarded.
690
+ for (const emit of pendingEvents) {
691
+ await emit();
692
+ }
693
+ return result;
694
+ };
695
+ }
696
+ const value = Reflect.get(target, prop, target);
697
+ if (typeof value === "function") {
698
+ return value.bind(target);
699
+ }
700
+ return value;
701
+ },
702
+ });
703
+ return proxy;
704
+ }
705
+ export async function invalidateCache(resourceName) {
706
+ await invalidateTableCache(resourceName);
707
+ }
708
+ export async function invalidateAllCache() {
709
+ if (!hasGlobalKV())
710
+ return;
711
+ const kv = getGlobalKV();
712
+ const keys = await kv.keys(`${CACHE_KEYS_SET_PREFIX}*`);
713
+ for (const keysSetKey of keys) {
714
+ const cacheKeys = await kv.smembers(keysSetKey);
715
+ if (cacheKeys.length > 0) {
716
+ await kv.del(...cacheKeys);
717
+ }
718
+ await kv.del(keysSetKey);
719
+ }
720
+ }
721
+ //# sourceMappingURL=track-mutations.js.map