@aurabase/aurabase-js 0.3.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 (344) hide show
  1. package/.changeset/config.json +11 -0
  2. package/CHANGELOG.md +30 -0
  3. package/LICENSE +21 -0
  4. package/README.md +833 -0
  5. package/package.json +90 -0
  6. package/packages/ai/LICENSE +21 -0
  7. package/packages/ai/README.md +106 -0
  8. package/packages/ai/dist/index.cjs +229 -0
  9. package/packages/ai/dist/index.d.cts +139 -0
  10. package/packages/ai/dist/index.d.ts +139 -0
  11. package/packages/ai/dist/index.js +226 -0
  12. package/packages/ai/node_modules/.bin/esbuild +19 -0
  13. package/packages/ai/node_modules/.bin/tsc +22 -0
  14. package/packages/ai/node_modules/.bin/tsserver +22 -0
  15. package/packages/ai/node_modules/.bin/tsup +22 -0
  16. package/packages/ai/node_modules/.bin/tsup-node +22 -0
  17. package/packages/ai/node_modules/.bin/vite +22 -0
  18. package/packages/ai/node_modules/.bin/vitest +22 -0
  19. package/packages/ai/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  20. package/packages/ai/package.json +61 -0
  21. package/packages/ai/src/AiService.ts +226 -0
  22. package/packages/ai/src/index.ts +18 -0
  23. package/packages/ai/src/sse.ts +141 -0
  24. package/packages/ai/src/types.ts +30 -0
  25. package/packages/ai/tests/chat-stream.test.ts +151 -0
  26. package/packages/ai/tests/rag-namespaces.test.ts +54 -0
  27. package/packages/ai/tests/sse.test.ts +69 -0
  28. package/packages/ai/tsconfig.json +5 -0
  29. package/packages/ai/tsup.config.ts +11 -0
  30. package/packages/aurabase/LICENSE +21 -0
  31. package/packages/aurabase/README.md +64 -0
  32. package/packages/aurabase/dist/AuraClient-DAtDbfPB.d.cts +77 -0
  33. package/packages/aurabase/dist/AuraClient-DAtDbfPB.d.ts +77 -0
  34. package/packages/aurabase/dist/index.cjs +237 -0
  35. package/packages/aurabase/dist/index.d.cts +46 -0
  36. package/packages/aurabase/dist/index.d.ts +46 -0
  37. package/packages/aurabase/dist/index.js +177 -0
  38. package/packages/aurabase/dist/ssr.cjs +224 -0
  39. package/packages/aurabase/dist/ssr.d.cts +65 -0
  40. package/packages/aurabase/dist/ssr.d.ts +65 -0
  41. package/packages/aurabase/dist/ssr.js +214 -0
  42. package/packages/aurabase/node_modules/.bin/esbuild +19 -0
  43. package/packages/aurabase/node_modules/.bin/tsc +22 -0
  44. package/packages/aurabase/node_modules/.bin/tsserver +22 -0
  45. package/packages/aurabase/node_modules/.bin/tsup +22 -0
  46. package/packages/aurabase/node_modules/.bin/tsup-node +22 -0
  47. package/packages/aurabase/node_modules/.bin/vite +22 -0
  48. package/packages/aurabase/node_modules/.bin/vitest +22 -0
  49. package/packages/aurabase/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  50. package/packages/aurabase/package.json +80 -0
  51. package/packages/aurabase/src/AuraClient.ts +237 -0
  52. package/packages/aurabase/src/index.ts +152 -0
  53. package/packages/aurabase/src/ssr.ts +156 -0
  54. package/packages/aurabase/tests/ai-streaming-rag-e2e.test.ts +82 -0
  55. package/packages/aurabase/tests/ai.test.ts +111 -0
  56. package/packages/aurabase/tests/auth-admin.test.ts +515 -0
  57. package/packages/aurabase/tests/auth-e2e.test.ts +135 -0
  58. package/packages/aurabase/tests/auth-hardening.test.ts +206 -0
  59. package/packages/aurabase/tests/auth.test.ts +947 -0
  60. package/packages/aurabase/tests/database.test.ts +230 -0
  61. package/packages/aurabase/tests/db-types-e2e.test.ts +217 -0
  62. package/packages/aurabase/tests/dispose.test.ts +23 -0
  63. package/packages/aurabase/tests/foreign-token.e2e.test.ts +129 -0
  64. package/packages/aurabase/tests/functions.test.ts +107 -0
  65. package/packages/aurabase/tests/integration.test.ts +413 -0
  66. package/packages/aurabase/tests/live-production-validation.js +241 -0
  67. package/packages/aurabase/tests/live-sdk-production-validation.js +293 -0
  68. package/packages/aurabase/tests/mocks.ts +139 -0
  69. package/packages/aurabase/tests/notifications.test.ts +314 -0
  70. package/packages/aurabase/tests/observability-backup.test.ts +186 -0
  71. package/packages/aurabase/tests/observability-hook.test.ts +130 -0
  72. package/packages/aurabase/tests/production-robustness.test.ts +268 -0
  73. package/packages/aurabase/tests/public-api-surface.test.ts +53 -0
  74. package/packages/aurabase/tests/query-builder.test.ts +329 -0
  75. package/packages/aurabase/tests/readme-smoke-e2e.test.ts +231 -0
  76. package/packages/aurabase/tests/realtime-filter-e2e.test.ts +344 -0
  77. package/packages/aurabase/tests/refresh-locks.test.ts +210 -0
  78. package/packages/aurabase/tests/retry-option.test.ts +17 -0
  79. package/packages/aurabase/tests/rpc-e2e.test.ts +254 -0
  80. package/packages/aurabase/tests/rs256-local-e2e.test.ts +114 -0
  81. package/packages/aurabase/tests/rt-alias-public-e2e.test.ts +235 -0
  82. package/packages/aurabase/tests/rt-http-broadcast-e2e.test.ts +124 -0
  83. package/packages/aurabase/tests/service-role-guard.test.ts +99 -0
  84. package/packages/aurabase/tests/ssr.test.ts +91 -0
  85. package/packages/aurabase/tests/storage-backend-e2e.test.ts +481 -0
  86. package/packages/aurabase/tests/storage-sdk-parity-e2e.test.ts +104 -0
  87. package/packages/aurabase/tests/storage-transform-e2e.test.ts +684 -0
  88. package/packages/aurabase/tests/storage.test.ts +55 -0
  89. package/packages/aurabase/tests/types/client-generic.test-d.ts +79 -0
  90. package/packages/aurabase/tests/types/docs-snippets.test-d.ts +571 -0
  91. package/packages/aurabase/tests/types/error-code.test-d.ts +53 -0
  92. package/packages/aurabase/tsconfig.json +5 -0
  93. package/packages/aurabase/tsconfig.test-d.json +5 -0
  94. package/packages/aurabase/tsup.config.ts +11 -0
  95. package/packages/aurabase/vitest.config.ts +16 -0
  96. package/packages/aurabase/vitest.e2e.config.ts +9 -0
  97. package/packages/auth/LICENSE +21 -0
  98. package/packages/auth/README.md +215 -0
  99. package/packages/auth/dist/index.cjs +1175 -0
  100. package/packages/auth/dist/index.d.cts +397 -0
  101. package/packages/auth/dist/index.d.ts +397 -0
  102. package/packages/auth/dist/index.js +1170 -0
  103. package/packages/auth/node_modules/.bin/esbuild +19 -0
  104. package/packages/auth/node_modules/.bin/tsc +22 -0
  105. package/packages/auth/node_modules/.bin/tsserver +22 -0
  106. package/packages/auth/node_modules/.bin/tsup +22 -0
  107. package/packages/auth/node_modules/.bin/tsup-node +22 -0
  108. package/packages/auth/node_modules/.bin/vite +22 -0
  109. package/packages/auth/node_modules/.bin/vitest +22 -0
  110. package/packages/auth/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  111. package/packages/auth/package.json +61 -0
  112. package/packages/auth/src/AuthAdminService.ts +149 -0
  113. package/packages/auth/src/AuthService.ts +1166 -0
  114. package/packages/auth/src/SessionManager.ts +92 -0
  115. package/packages/auth/src/index.ts +17 -0
  116. package/packages/auth/src/jwks.ts +337 -0
  117. package/packages/auth/src/pkce.ts +27 -0
  118. package/packages/auth/src/types.ts +89 -0
  119. package/packages/auth/tests/auth-lifecycle.test.ts +149 -0
  120. package/packages/auth/tests/detect-session.test.ts +361 -0
  121. package/packages/auth/tests/getclaims.test.ts +780 -0
  122. package/packages/auth/tests/is-mfa-challenge.test.ts +27 -0
  123. package/packages/auth/tests/password-recovery.test.ts +124 -0
  124. package/packages/auth/tests/pkce.test.ts +192 -0
  125. package/packages/auth/tests/session-manager.test.ts +103 -0
  126. package/packages/auth/tests/set-session.test.ts +139 -0
  127. package/packages/auth/tests/verify-otp.test.ts +153 -0
  128. package/packages/auth/tsconfig.json +5 -0
  129. package/packages/auth/tsup.config.ts +11 -0
  130. package/packages/core/LICENSE +21 -0
  131. package/packages/core/README.md +132 -0
  132. package/packages/core/dist/index.cjs +695 -0
  133. package/packages/core/dist/index.d.cts +1137 -0
  134. package/packages/core/dist/index.d.ts +1137 -0
  135. package/packages/core/dist/index.js +673 -0
  136. package/packages/core/node_modules/.bin/esbuild +22 -0
  137. package/packages/core/node_modules/.bin/tsc +22 -0
  138. package/packages/core/node_modules/.bin/tsserver +22 -0
  139. package/packages/core/node_modules/.bin/tsup +22 -0
  140. package/packages/core/node_modules/.bin/tsup-node +22 -0
  141. package/packages/core/node_modules/.bin/vite +22 -0
  142. package/packages/core/node_modules/.bin/vitest +22 -0
  143. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  144. package/packages/core/package.json +57 -0
  145. package/packages/core/src/AuraError.ts +89 -0
  146. package/packages/core/src/BaseService.ts +44 -0
  147. package/packages/core/src/client.ts +34 -0
  148. package/packages/core/src/cookie-utils.ts +42 -0
  149. package/packages/core/src/fetch.ts +435 -0
  150. package/packages/core/src/index.ts +22 -0
  151. package/packages/core/src/retry.ts +63 -0
  152. package/packages/core/src/serialize.ts +6 -0
  153. package/packages/core/src/stores/BaseAuthStore.ts +164 -0
  154. package/packages/core/src/stores/LocalAuthStore.ts +199 -0
  155. package/packages/core/src/types.ts +1042 -0
  156. package/packages/core/tests/auth-store.test.ts +300 -0
  157. package/packages/core/tests/error-code.test.ts +61 -0
  158. package/packages/core/tests/error.test.ts +24 -0
  159. package/packages/core/tests/fetch.test.ts +286 -0
  160. package/packages/core/tests/mocks.ts +139 -0
  161. package/packages/core/tests/observability.test.ts +86 -0
  162. package/packages/core/tests/refresh-hardening.test.ts +164 -0
  163. package/packages/core/tests/refresh-observability.test.ts +111 -0
  164. package/packages/core/tests/retry.test.ts +106 -0
  165. package/packages/core/tests/serialize.test.ts +12 -0
  166. package/packages/core/tests/timeout.test.ts +79 -0
  167. package/packages/core/tsconfig.json +5 -0
  168. package/packages/core/tsup.config.ts +11 -0
  169. package/packages/db/LICENSE +21 -0
  170. package/packages/db/README.md +152 -0
  171. package/packages/db/VENDORED.md +93 -0
  172. package/packages/db/dist/index.cjs +544 -0
  173. package/packages/db/dist/index.d.cts +1111 -0
  174. package/packages/db/dist/index.d.ts +1111 -0
  175. package/packages/db/dist/index.js +541 -0
  176. package/packages/db/node_modules/.bin/esbuild +19 -0
  177. package/packages/db/node_modules/.bin/tsc +22 -0
  178. package/packages/db/node_modules/.bin/tsserver +22 -0
  179. package/packages/db/node_modules/.bin/tsup +22 -0
  180. package/packages/db/node_modules/.bin/tsup-node +22 -0
  181. package/packages/db/node_modules/.bin/vite +22 -0
  182. package/packages/db/node_modules/.bin/vitest +22 -0
  183. package/packages/db/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  184. package/packages/db/package.json +62 -0
  185. package/packages/db/src/DatabaseService.ts +170 -0
  186. package/packages/db/src/QueryBuilder.ts +830 -0
  187. package/packages/db/src/index.ts +2 -0
  188. package/packages/db/src/pgrst-types/common/common.ts +86 -0
  189. package/packages/db/src/pgrst-types/common/rpc.ts +151 -0
  190. package/packages/db/src/pgrst-types/feature-flags.ts +20 -0
  191. package/packages/db/src/pgrst-types/types.ts +134 -0
  192. package/packages/db/src/select-query-parser/parser.ts +479 -0
  193. package/packages/db/src/select-query-parser/result.ts +553 -0
  194. package/packages/db/src/select-query-parser/types.ts +132 -0
  195. package/packages/db/src/select-query-parser/utils.ts +707 -0
  196. package/packages/db/tests/filters.test.ts +81 -0
  197. package/packages/db/tests/mutations-filtered.e2e.test.ts +132 -0
  198. package/packages/db/tests/mutations-filtered.test.ts +188 -0
  199. package/packages/db/tests/order.test.ts +45 -0
  200. package/packages/db/tests/rpc.test.ts +41 -0
  201. package/packages/db/tests/scale/build-large-schema.ts +94 -0
  202. package/packages/db/tests/scale/scale-compile.test.ts +167 -0
  203. package/packages/db/tests/schema.test.ts +77 -0
  204. package/packages/db/tests/single-accept.e2e.test.ts +123 -0
  205. package/packages/db/tests/single.test.ts +211 -0
  206. package/packages/db/tests/types/filters.test-d.ts +52 -0
  207. package/packages/db/tests/types/fixtures.ts +40 -0
  208. package/packages/db/tests/types/from-views.test-d.ts +18 -0
  209. package/packages/db/tests/types/mutations.test-d.ts +23 -0
  210. package/packages/db/tests/types/rpc.test-d.ts +60 -0
  211. package/packages/db/tests/types/schema-shape.test-d.ts +8 -0
  212. package/packages/db/tests/types/select-inference.test-d.ts +38 -0
  213. package/packages/db/tests/vendored/fixtures.ts +83 -0
  214. package/packages/db/tests/vendored/get-result.test-d.ts +75 -0
  215. package/packages/db/tsconfig.json +5 -0
  216. package/packages/db/tsconfig.test-d.json +5 -0
  217. package/packages/db/tsup.config.ts +11 -0
  218. package/packages/db/vitest.config.ts +8 -0
  219. package/packages/functions/LICENSE +21 -0
  220. package/packages/functions/README.md +96 -0
  221. package/packages/functions/dist/index.cjs +173 -0
  222. package/packages/functions/dist/index.d.cts +81 -0
  223. package/packages/functions/dist/index.d.ts +81 -0
  224. package/packages/functions/dist/index.js +168 -0
  225. package/packages/functions/node_modules/.bin/esbuild +19 -0
  226. package/packages/functions/node_modules/.bin/tsc +22 -0
  227. package/packages/functions/node_modules/.bin/tsserver +22 -0
  228. package/packages/functions/node_modules/.bin/tsup +22 -0
  229. package/packages/functions/node_modules/.bin/tsup-node +22 -0
  230. package/packages/functions/node_modules/.bin/vite +22 -0
  231. package/packages/functions/node_modules/.bin/vitest +22 -0
  232. package/packages/functions/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  233. package/packages/functions/package.json +60 -0
  234. package/packages/functions/src/FunctionsService.ts +188 -0
  235. package/packages/functions/src/errors.ts +70 -0
  236. package/packages/functions/src/index.ts +6 -0
  237. package/packages/functions/tests/invoke.test.ts +97 -0
  238. package/packages/functions/tests/response-type-errors.test.ts +135 -0
  239. package/packages/functions/tsconfig.json +5 -0
  240. package/packages/functions/tsup.config.ts +11 -0
  241. package/packages/gen/LICENSE +21 -0
  242. package/packages/gen/README.md +84 -0
  243. package/packages/gen/dist/cli.cjs +334 -0
  244. package/packages/gen/dist/cli.d.cts +1 -0
  245. package/packages/gen/dist/cli.d.ts +1 -0
  246. package/packages/gen/dist/cli.js +332 -0
  247. package/packages/gen/dist/index.cjs +257 -0
  248. package/packages/gen/dist/index.d.cts +12 -0
  249. package/packages/gen/dist/index.d.ts +12 -0
  250. package/packages/gen/dist/index.js +255 -0
  251. package/packages/gen/node_modules/.bin/esbuild +19 -0
  252. package/packages/gen/node_modules/.bin/tsc +22 -0
  253. package/packages/gen/node_modules/.bin/tsserver +22 -0
  254. package/packages/gen/node_modules/.bin/tsup +22 -0
  255. package/packages/gen/node_modules/.bin/tsup-node +22 -0
  256. package/packages/gen/node_modules/.bin/vite +22 -0
  257. package/packages/gen/node_modules/.bin/vitest +22 -0
  258. package/packages/gen/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  259. package/packages/gen/package.json +66 -0
  260. package/packages/gen/src/cli.ts +67 -0
  261. package/packages/gen/src/generate.ts +0 -0
  262. package/packages/gen/src/index.ts +2 -0
  263. package/packages/gen/tests/compile.test.ts +213 -0
  264. package/packages/gen/tests/e2e.test.ts +130 -0
  265. package/packages/gen/tests/generate.test.ts +396 -0
  266. package/packages/gen/tsconfig.json +5 -0
  267. package/packages/gen/tsup.config.ts +11 -0
  268. package/packages/notifications/LICENSE +21 -0
  269. package/packages/notifications/README.md +134 -0
  270. package/packages/notifications/dist/index.cjs +128 -0
  271. package/packages/notifications/dist/index.d.cts +81 -0
  272. package/packages/notifications/dist/index.d.ts +81 -0
  273. package/packages/notifications/dist/index.js +125 -0
  274. package/packages/notifications/node_modules/.bin/esbuild +19 -0
  275. package/packages/notifications/node_modules/.bin/tsc +22 -0
  276. package/packages/notifications/node_modules/.bin/tsserver +22 -0
  277. package/packages/notifications/node_modules/.bin/tsup +22 -0
  278. package/packages/notifications/node_modules/.bin/tsup-node +22 -0
  279. package/packages/notifications/node_modules/.bin/vite +22 -0
  280. package/packages/notifications/node_modules/.bin/vitest +22 -0
  281. package/packages/notifications/package.json +60 -0
  282. package/packages/notifications/src/NotificationsService.ts +230 -0
  283. package/packages/notifications/src/index.ts +19 -0
  284. package/packages/notifications/tsconfig.json +5 -0
  285. package/packages/notifications/tsup.config.ts +11 -0
  286. package/packages/realtime/LICENSE +21 -0
  287. package/packages/realtime/README.md +183 -0
  288. package/packages/realtime/dist/index.cjs +977 -0
  289. package/packages/realtime/dist/index.d.cts +259 -0
  290. package/packages/realtime/dist/index.d.ts +259 -0
  291. package/packages/realtime/dist/index.js +973 -0
  292. package/packages/realtime/node_modules/.bin/esbuild +19 -0
  293. package/packages/realtime/node_modules/.bin/tsc +22 -0
  294. package/packages/realtime/node_modules/.bin/tsserver +22 -0
  295. package/packages/realtime/node_modules/.bin/tsup +22 -0
  296. package/packages/realtime/node_modules/.bin/tsup-node +22 -0
  297. package/packages/realtime/node_modules/.bin/vite +22 -0
  298. package/packages/realtime/node_modules/.bin/vitest +22 -0
  299. package/packages/realtime/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  300. package/packages/realtime/package.json +60 -0
  301. package/packages/realtime/src/AuraChannel.ts +485 -0
  302. package/packages/realtime/src/HeartbeatManager.ts +73 -0
  303. package/packages/realtime/src/RealtimeService.ts +505 -0
  304. package/packages/realtime/src/columnFilter.ts +301 -0
  305. package/packages/realtime/src/index.ts +4 -0
  306. package/packages/realtime/tests/ack-routing.test.ts +81 -0
  307. package/packages/realtime/tests/column-filter.test.ts +144 -0
  308. package/packages/realtime/tests/dispatch.test.ts +191 -0
  309. package/packages/realtime/tests/heartbeat.test.ts +67 -0
  310. package/packages/realtime/tests/http-broadcast.test.ts +68 -0
  311. package/packages/realtime/tests/realtime-token.test.ts +43 -0
  312. package/packages/realtime/tests/reconnect-race.test.ts +149 -0
  313. package/packages/realtime/tests/ref-id.test.ts +34 -0
  314. package/packages/realtime/tests/set-auth.test.ts +70 -0
  315. package/packages/realtime/tsconfig.json +5 -0
  316. package/packages/realtime/tsup.config.ts +11 -0
  317. package/packages/storage/LICENSE +21 -0
  318. package/packages/storage/README.md +141 -0
  319. package/packages/storage/dist/index.cjs +333 -0
  320. package/packages/storage/dist/index.d.cts +185 -0
  321. package/packages/storage/dist/index.d.ts +185 -0
  322. package/packages/storage/dist/index.js +329 -0
  323. package/packages/storage/node_modules/.bin/esbuild +19 -0
  324. package/packages/storage/node_modules/.bin/tsc +22 -0
  325. package/packages/storage/node_modules/.bin/tsserver +22 -0
  326. package/packages/storage/node_modules/.bin/tsup +22 -0
  327. package/packages/storage/node_modules/.bin/tsup-node +22 -0
  328. package/packages/storage/node_modules/.bin/vite +22 -0
  329. package/packages/storage/node_modules/.bin/vitest +22 -0
  330. package/packages/storage/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
  331. package/packages/storage/package.json +60 -0
  332. package/packages/storage/src/DownloadBuilder.ts +60 -0
  333. package/packages/storage/src/StorageService.ts +323 -0
  334. package/packages/storage/src/index.ts +2 -0
  335. package/packages/storage/src/path.ts +35 -0
  336. package/packages/storage/src/transform.ts +15 -0
  337. package/packages/storage/tests/download.test.ts +64 -0
  338. package/packages/storage/tests/parity.test.ts +154 -0
  339. package/packages/storage/tests/path.test.ts +87 -0
  340. package/packages/storage/tests/transform.test.ts +79 -0
  341. package/packages/storage/tsconfig.json +5 -0
  342. package/packages/storage/tsup.config.ts +11 -0
  343. package/pnpm-workspace.yaml +24 -0
  344. package/tsconfig.base.json +15 -0
@@ -0,0 +1,177 @@
1
+ import { DEFAULT_MAX_RETRIES, BaseAuthStore, LocalAuthStore } from '@aurabase/core';
2
+ export { AuraError, BaseAuthStore, LocalAuthStore, isAuraError } from '@aurabase/core';
3
+ import { AuthService, AuthAdminService } from '@aurabase/auth';
4
+ export { AuthAdminService, AuthService, isMfaChallenge } from '@aurabase/auth';
5
+ import { DatabaseService } from '@aurabase/db';
6
+ export { DatabaseService, QueryBuilder } from '@aurabase/db';
7
+ import { StorageService } from '@aurabase/storage';
8
+ export { StorageService } from '@aurabase/storage';
9
+ import { RealtimeService } from '@aurabase/realtime';
10
+ export { AuraChannel, RealtimeService } from '@aurabase/realtime';
11
+ import { FunctionsService } from '@aurabase/functions';
12
+ export { FunctionsService } from '@aurabase/functions';
13
+ import { AiService } from '@aurabase/ai';
14
+ export { AiService } from '@aurabase/ai';
15
+ import { NotificationsService } from '@aurabase/notifications';
16
+ export { NotificationsAdminService, NotificationsService } from '@aurabase/notifications';
17
+
18
+ // src/AuraClient.ts
19
+ function isBrowserContext() {
20
+ if (typeof window !== "undefined") return true;
21
+ const g = globalThis;
22
+ if (typeof g.DedicatedWorkerGlobalScope !== "undefined") return true;
23
+ if (typeof g.SharedWorkerGlobalScope !== "undefined") return true;
24
+ return false;
25
+ }
26
+ var SERVICE_ROLE_KEY_PREFIX = "aura_sk_";
27
+ var AuraClient = class {
28
+ baseUrl;
29
+ projectId;
30
+ apiKey;
31
+ fetchFn;
32
+ authStore;
33
+ retryConfig;
34
+ /** Timeout par défaut (ms) des requêtes JSON sans signal. `undefined` → défaut core (30s). */
35
+ requestTimeoutMs;
36
+ /** Hook d'observabilité (LOT 3) — voir `AuraClientOptions.onEvent`. */
37
+ onEvent;
38
+ /** Journalise chaque `AuraObservabilityEvent` via `console.debug` — voir `AuraClientOptions.debug`. */
39
+ debug;
40
+ // Lazy-initialised service instances
41
+ _auth = null;
42
+ _db = null;
43
+ _storage = null;
44
+ _realtime = null;
45
+ _functions = null;
46
+ _ai = null;
47
+ _notifications = null;
48
+ _authAdmin = null;
49
+ _disposed = false;
50
+ _persistSession;
51
+ _autoRefresh;
52
+ _detectSessionInUrl;
53
+ constructor(baseUrl, projectId, apiKeyOrOptions, options) {
54
+ this.baseUrl = baseUrl.replace(/\/+$/, "");
55
+ this.projectId = projectId;
56
+ const resolvedOptions = typeof apiKeyOrOptions === "string" ? options : apiKeyOrOptions;
57
+ this.apiKey = typeof apiKeyOrOptions === "string" ? apiKeyOrOptions : apiKeyOrOptions?.apiKey ?? null;
58
+ this.fetchFn = resolvedOptions?.fetch ?? globalThis.fetch.bind(globalThis);
59
+ const r = resolvedOptions?.retry;
60
+ this.retryConfig = r === false ? { enabled: false, maxRetries: 0 } : r === void 0 || r === true ? { enabled: true, maxRetries: DEFAULT_MAX_RETRIES } : { enabled: r.enabled ?? true, maxRetries: r.maxRetries ?? DEFAULT_MAX_RETRIES };
61
+ this.requestTimeoutMs = resolvedOptions?.requestTimeoutMs;
62
+ this.onEvent = resolvedOptions?.onEvent;
63
+ this.debug = resolvedOptions?.debug;
64
+ if (!this.apiKey && typeof console !== "undefined") {
65
+ console.warn(
66
+ "[aurabase] No API key provided. Most operations require an API key (apikey header). Only public auth routes (register, login, refresh) will work without one."
67
+ );
68
+ }
69
+ if (this.apiKey?.startsWith(SERVICE_ROLE_KEY_PREFIX) && isBrowserContext()) {
70
+ const refuse = resolvedOptions?.refuseServiceRoleInBrowser ?? true;
71
+ const message = "[aurabase] S\xC9CURIT\xC9 : une cl\xE9 service_role (aura_sk_\u2026) est fournie \xE0 createClient() dans un contexte navigateur. Cette cl\xE9 \xE0 privil\xE8ges \xE9lev\xE9s NE DOIT JAMAIS \xEAtre expos\xE9e c\xF4t\xE9 client (elle fuiterait dans le bundle). Utilisez une cl\xE9 anon (aura_anon_\u2026) c\xF4t\xE9 client, et createAdminClient() c\xF4t\xE9 serveur pour les op\xE9rations d'administration.";
72
+ if (refuse) {
73
+ throw new Error(message);
74
+ } else if (typeof console !== "undefined") {
75
+ console.warn(message);
76
+ }
77
+ }
78
+ if (resolvedOptions?.auth?.storage) {
79
+ this.authStore = resolvedOptions.auth.storage;
80
+ } else if (resolvedOptions?.auth?.persistSession === false) {
81
+ this.authStore = new BaseAuthStore();
82
+ } else if (typeof localStorage !== "undefined") {
83
+ this.authStore = new LocalAuthStore();
84
+ } else {
85
+ this.authStore = new BaseAuthStore();
86
+ }
87
+ this.authStore.setObservabilityHook(this.onEvent, this.debug);
88
+ this._persistSession = resolvedOptions?.auth?.persistSession !== false;
89
+ this._autoRefresh = resolvedOptions?.auth?.autoRefresh ?? true;
90
+ this._detectSessionInUrl = resolvedOptions?.auth?.detectSessionInUrl;
91
+ if (this._autoRefresh && this._persistSession && typeof window !== "undefined") {
92
+ void this.auth;
93
+ }
94
+ }
95
+ /**
96
+ * Démonte le client : arrête le refresh proactif (ticker + visibilité + BroadcastChannel),
97
+ * déconnecte le realtime, vide les listeners d'auth. Idempotent. À appeler en teardown
98
+ * (React Strict Mode / HMR / tests).
99
+ */
100
+ dispose() {
101
+ if (this._disposed) return;
102
+ this._disposed = true;
103
+ this._auth?.dispose();
104
+ this._realtime?.disconnect();
105
+ }
106
+ // -- Lazy service getters ---------------------------------------------------
107
+ get auth() {
108
+ if (!this._auth) {
109
+ this._auth = new AuthService(this, {
110
+ autoRefresh: this._autoRefresh,
111
+ persistSession: this._persistSession,
112
+ detectSessionInUrl: this._detectSessionInUrl
113
+ });
114
+ }
115
+ return this._auth;
116
+ }
117
+ get authAdmin() {
118
+ if (isBrowserContext()) {
119
+ throw new Error(
120
+ "[aurabase] S\xC9CURIT\xC9 : authAdmin est inaccessible dans un contexte navigateur. L'API admin requiert une cl\xE9 service_role qui ne doit JAMAIS \xEAtre expos\xE9e c\xF4t\xE9 client (elle fuiterait dans le bundle). Utilisez createAdminClient() c\xF4t\xE9 serveur uniquement."
121
+ );
122
+ }
123
+ if (!this._authAdmin) this._authAdmin = new AuthAdminService(this);
124
+ return this._authAdmin;
125
+ }
126
+ get db() {
127
+ if (!this._db) this._db = new DatabaseService(this);
128
+ return this._db;
129
+ }
130
+ get storage() {
131
+ if (!this._storage) this._storage = new StorageService(this);
132
+ return this._storage;
133
+ }
134
+ get realtime() {
135
+ if (!this._realtime) this._realtime = new RealtimeService(this);
136
+ return this._realtime;
137
+ }
138
+ get functions() {
139
+ if (!this._functions) this._functions = new FunctionsService(this);
140
+ return this._functions;
141
+ }
142
+ get ai() {
143
+ if (!this._ai) this._ai = new AiService(this);
144
+ return this._ai;
145
+ }
146
+ get notifications() {
147
+ if (!this._notifications) this._notifications = new NotificationsService(this);
148
+ return this._notifications;
149
+ }
150
+ /**
151
+ * Shortcut: create a realtime channel with Supabase-compatible API.
152
+ * Equivalent to `aura.realtime.channel(name)`.
153
+ *
154
+ * @example
155
+ * ```ts
156
+ * const channel = aura.channel('room-1')
157
+ * .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages' }, cb)
158
+ * .subscribe()
159
+ * ```
160
+ */
161
+ channel(name, options) {
162
+ return this.realtime.channel(name, options);
163
+ }
164
+ };
165
+ function createClient(baseUrl, projectId, apiKeyOrOptions, options) {
166
+ return new AuraClient(baseUrl, projectId, apiKeyOrOptions, options);
167
+ }
168
+ function createAdminClient(baseUrl, projectId, serviceRoleKey, options) {
169
+ if (isBrowserContext()) {
170
+ throw new Error(
171
+ "[aurabase] createAdminClient() ne doit jamais \xEAtre appel\xE9 c\xF4t\xE9 navigateur : la cl\xE9 service_role serait expos\xE9e dans le bundle. \xC0 utiliser uniquement c\xF4t\xE9 serveur."
172
+ );
173
+ }
174
+ return new AuraClient(baseUrl, projectId, serviceRoleKey, options);
175
+ }
176
+
177
+ export { AuraClient, createAdminClient, createClient };
@@ -0,0 +1,224 @@
1
+ 'use strict';
2
+
3
+ var core = require('@aurabase/core');
4
+ var auth = require('@aurabase/auth');
5
+ var db = require('@aurabase/db');
6
+ var storage = require('@aurabase/storage');
7
+ var realtime = require('@aurabase/realtime');
8
+ var functions = require('@aurabase/functions');
9
+ var ai = require('@aurabase/ai');
10
+ var notifications = require('@aurabase/notifications');
11
+
12
+ // src/AuraClient.ts
13
+ function isBrowserContext() {
14
+ if (typeof window !== "undefined") return true;
15
+ const g = globalThis;
16
+ if (typeof g.DedicatedWorkerGlobalScope !== "undefined") return true;
17
+ if (typeof g.SharedWorkerGlobalScope !== "undefined") return true;
18
+ return false;
19
+ }
20
+ var SERVICE_ROLE_KEY_PREFIX = "aura_sk_";
21
+ var AuraClient = class {
22
+ baseUrl;
23
+ projectId;
24
+ apiKey;
25
+ fetchFn;
26
+ authStore;
27
+ retryConfig;
28
+ /** Timeout par défaut (ms) des requêtes JSON sans signal. `undefined` → défaut core (30s). */
29
+ requestTimeoutMs;
30
+ /** Hook d'observabilité (LOT 3) — voir `AuraClientOptions.onEvent`. */
31
+ onEvent;
32
+ /** Journalise chaque `AuraObservabilityEvent` via `console.debug` — voir `AuraClientOptions.debug`. */
33
+ debug;
34
+ // Lazy-initialised service instances
35
+ _auth = null;
36
+ _db = null;
37
+ _storage = null;
38
+ _realtime = null;
39
+ _functions = null;
40
+ _ai = null;
41
+ _notifications = null;
42
+ _authAdmin = null;
43
+ _disposed = false;
44
+ _persistSession;
45
+ _autoRefresh;
46
+ _detectSessionInUrl;
47
+ constructor(baseUrl, projectId, apiKeyOrOptions, options) {
48
+ this.baseUrl = baseUrl.replace(/\/+$/, "");
49
+ this.projectId = projectId;
50
+ const resolvedOptions = typeof apiKeyOrOptions === "string" ? options : apiKeyOrOptions;
51
+ this.apiKey = typeof apiKeyOrOptions === "string" ? apiKeyOrOptions : apiKeyOrOptions?.apiKey ?? null;
52
+ this.fetchFn = resolvedOptions?.fetch ?? globalThis.fetch.bind(globalThis);
53
+ const r = resolvedOptions?.retry;
54
+ this.retryConfig = r === false ? { enabled: false, maxRetries: 0 } : r === void 0 || r === true ? { enabled: true, maxRetries: core.DEFAULT_MAX_RETRIES } : { enabled: r.enabled ?? true, maxRetries: r.maxRetries ?? core.DEFAULT_MAX_RETRIES };
55
+ this.requestTimeoutMs = resolvedOptions?.requestTimeoutMs;
56
+ this.onEvent = resolvedOptions?.onEvent;
57
+ this.debug = resolvedOptions?.debug;
58
+ if (!this.apiKey && typeof console !== "undefined") {
59
+ console.warn(
60
+ "[aurabase] No API key provided. Most operations require an API key (apikey header). Only public auth routes (register, login, refresh) will work without one."
61
+ );
62
+ }
63
+ if (this.apiKey?.startsWith(SERVICE_ROLE_KEY_PREFIX) && isBrowserContext()) {
64
+ const refuse = resolvedOptions?.refuseServiceRoleInBrowser ?? true;
65
+ const message = "[aurabase] S\xC9CURIT\xC9 : une cl\xE9 service_role (aura_sk_\u2026) est fournie \xE0 createClient() dans un contexte navigateur. Cette cl\xE9 \xE0 privil\xE8ges \xE9lev\xE9s NE DOIT JAMAIS \xEAtre expos\xE9e c\xF4t\xE9 client (elle fuiterait dans le bundle). Utilisez une cl\xE9 anon (aura_anon_\u2026) c\xF4t\xE9 client, et createAdminClient() c\xF4t\xE9 serveur pour les op\xE9rations d'administration.";
66
+ if (refuse) {
67
+ throw new Error(message);
68
+ } else if (typeof console !== "undefined") {
69
+ console.warn(message);
70
+ }
71
+ }
72
+ if (resolvedOptions?.auth?.storage) {
73
+ this.authStore = resolvedOptions.auth.storage;
74
+ } else if (resolvedOptions?.auth?.persistSession === false) {
75
+ this.authStore = new core.BaseAuthStore();
76
+ } else if (typeof localStorage !== "undefined") {
77
+ this.authStore = new core.LocalAuthStore();
78
+ } else {
79
+ this.authStore = new core.BaseAuthStore();
80
+ }
81
+ this.authStore.setObservabilityHook(this.onEvent, this.debug);
82
+ this._persistSession = resolvedOptions?.auth?.persistSession !== false;
83
+ this._autoRefresh = resolvedOptions?.auth?.autoRefresh ?? true;
84
+ this._detectSessionInUrl = resolvedOptions?.auth?.detectSessionInUrl;
85
+ if (this._autoRefresh && this._persistSession && typeof window !== "undefined") {
86
+ void this.auth;
87
+ }
88
+ }
89
+ /**
90
+ * Démonte le client : arrête le refresh proactif (ticker + visibilité + BroadcastChannel),
91
+ * déconnecte le realtime, vide les listeners d'auth. Idempotent. À appeler en teardown
92
+ * (React Strict Mode / HMR / tests).
93
+ */
94
+ dispose() {
95
+ if (this._disposed) return;
96
+ this._disposed = true;
97
+ this._auth?.dispose();
98
+ this._realtime?.disconnect();
99
+ }
100
+ // -- Lazy service getters ---------------------------------------------------
101
+ get auth() {
102
+ if (!this._auth) {
103
+ this._auth = new auth.AuthService(this, {
104
+ autoRefresh: this._autoRefresh,
105
+ persistSession: this._persistSession,
106
+ detectSessionInUrl: this._detectSessionInUrl
107
+ });
108
+ }
109
+ return this._auth;
110
+ }
111
+ get authAdmin() {
112
+ if (isBrowserContext()) {
113
+ throw new Error(
114
+ "[aurabase] S\xC9CURIT\xC9 : authAdmin est inaccessible dans un contexte navigateur. L'API admin requiert une cl\xE9 service_role qui ne doit JAMAIS \xEAtre expos\xE9e c\xF4t\xE9 client (elle fuiterait dans le bundle). Utilisez createAdminClient() c\xF4t\xE9 serveur uniquement."
115
+ );
116
+ }
117
+ if (!this._authAdmin) this._authAdmin = new auth.AuthAdminService(this);
118
+ return this._authAdmin;
119
+ }
120
+ get db() {
121
+ if (!this._db) this._db = new db.DatabaseService(this);
122
+ return this._db;
123
+ }
124
+ get storage() {
125
+ if (!this._storage) this._storage = new storage.StorageService(this);
126
+ return this._storage;
127
+ }
128
+ get realtime() {
129
+ if (!this._realtime) this._realtime = new realtime.RealtimeService(this);
130
+ return this._realtime;
131
+ }
132
+ get functions() {
133
+ if (!this._functions) this._functions = new functions.FunctionsService(this);
134
+ return this._functions;
135
+ }
136
+ get ai() {
137
+ if (!this._ai) this._ai = new ai.AiService(this);
138
+ return this._ai;
139
+ }
140
+ get notifications() {
141
+ if (!this._notifications) this._notifications = new notifications.NotificationsService(this);
142
+ return this._notifications;
143
+ }
144
+ /**
145
+ * Shortcut: create a realtime channel with Supabase-compatible API.
146
+ * Equivalent to `aura.realtime.channel(name)`.
147
+ *
148
+ * @example
149
+ * ```ts
150
+ * const channel = aura.channel('room-1')
151
+ * .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages' }, cb)
152
+ * .subscribe()
153
+ * ```
154
+ */
155
+ channel(name, options) {
156
+ return this.realtime.channel(name, options);
157
+ }
158
+ };
159
+ var MAX_CHUNK_SIZE = 3600;
160
+ function createServerClient(baseUrl, projectId, options) {
161
+ const cookieName = `aura-${projectId}-auth`;
162
+ const store = new core.LocalAuthStore(cookieName);
163
+ const idxRe = new RegExp(`^${cookieName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\.(\\d+)$`);
164
+ const incoming = options.cookies.getAll();
165
+ const numbered = incoming.filter((c) => idxRe.test(c.name)).sort((a, b) => Number(a.name.match(idxRe)[1]) - Number(b.name.match(idxRe)[1]));
166
+ const base = incoming.find((c) => c.name === cookieName);
167
+ const decodedValue = numbered.length > 0 ? numbered.map((c) => c.value).join("") : base?.value;
168
+ if (decodedValue) {
169
+ store.loadFromCookie(`${cookieName}=${encodeURIComponent(decodedValue)}`);
170
+ }
171
+ const initialNames = incoming.filter((c) => c.name === cookieName || idxRe.test(c.name)).map((c) => c.name);
172
+ const defaultCookieOpts = {
173
+ path: "/",
174
+ secure: baseUrl.startsWith("https://"),
175
+ sameSite: "Lax",
176
+ httpOnly: true,
177
+ maxAge: 60 * 60 * 24 * 30,
178
+ // 30 days
179
+ ...options.cookieOptions
180
+ };
181
+ store.onChange(() => {
182
+ const toSet = [];
183
+ const used = /* @__PURE__ */ new Set();
184
+ if (store.token) {
185
+ const cookieStr = store.exportToCookie();
186
+ const eqIdx = cookieStr.indexOf("=");
187
+ const rawEncoded = eqIdx >= 0 ? cookieStr.slice(eqIdx + 1).split(";")[0] : "";
188
+ const decoded = rawEncoded ? decodeURIComponent(rawEncoded) : "";
189
+ if (decoded.length <= MAX_CHUNK_SIZE) {
190
+ toSet.push({ name: cookieName, value: decoded, options: defaultCookieOpts });
191
+ used.add(cookieName);
192
+ } else {
193
+ let idx = 0;
194
+ for (let i = 0; i < decoded.length; i += MAX_CHUNK_SIZE, idx++) {
195
+ const name = `${cookieName}.${idx}`;
196
+ toSet.push({ name, value: decoded.slice(i, i + MAX_CHUNK_SIZE), options: defaultCookieOpts });
197
+ used.add(name);
198
+ }
199
+ }
200
+ }
201
+ const expireOpts = { ...defaultCookieOpts, maxAge: 0 };
202
+ for (const name of initialNames) {
203
+ if (!used.has(name)) toSet.push({ name, value: "", options: expireOpts });
204
+ }
205
+ if (toSet.length > 0) options.cookies.setAll(toSet);
206
+ });
207
+ return new AuraClient(baseUrl, projectId, options.apiKey, {
208
+ auth: { persistSession: false, storage: store }
209
+ });
210
+ }
211
+ function createBrowserClient(baseUrl, projectId, apiKey, options) {
212
+ return new AuraClient(baseUrl, projectId, apiKey, options);
213
+ }
214
+
215
+ Object.defineProperty(exports, "parseCookieHeader", {
216
+ enumerable: true,
217
+ get: function () { return core.parseCookieHeader; }
218
+ });
219
+ Object.defineProperty(exports, "serializeCookieHeader", {
220
+ enumerable: true,
221
+ get: function () { return core.serializeCookieHeader; }
222
+ });
223
+ exports.createBrowserClient = createBrowserClient;
224
+ exports.createServerClient = createServerClient;
@@ -0,0 +1,65 @@
1
+ import { A as AuraClient } from './AuraClient-DAtDbfPB.cjs';
2
+ import { SerializeCookieOptions, AuraClientOptions } from '@aurabase/core';
3
+ export { SerializeCookieOptions, parseCookieHeader, serializeCookieHeader } from '@aurabase/core';
4
+ import '@aurabase/auth';
5
+ import '@aurabase/db';
6
+ import '@aurabase/storage';
7
+ import '@aurabase/realtime';
8
+ import '@aurabase/functions';
9
+ import '@aurabase/ai';
10
+ import '@aurabase/notifications';
11
+
12
+ /**
13
+ * Server-side rendering helpers for Aurabase.
14
+ *
15
+ * @example Next.js middleware
16
+ * ```ts
17
+ * import { createServerClient } from 'aurabase/ssr'
18
+ *
19
+ * export async function middleware(request) {
20
+ * let response = NextResponse.next({ request })
21
+ * const client = createServerClient(URL, PROJECT_ID, {
22
+ * cookies: {
23
+ * getAll: () => request.cookies.getAll(),
24
+ * setAll: (cookies) => {
25
+ * cookies.forEach(({ name, value, options }) => {
26
+ * request.cookies.set(name, value)
27
+ * response.cookies.set(name, value, options)
28
+ * })
29
+ * },
30
+ * },
31
+ * })
32
+ * await client.auth.getSession()
33
+ * return response
34
+ * }
35
+ * ```
36
+ *
37
+ * @module
38
+ */
39
+
40
+ interface CookieHandler {
41
+ /** Return all cookies from the incoming request. */
42
+ getAll(): Array<{
43
+ name: string;
44
+ value: string;
45
+ }>;
46
+ /** Set cookies on the outgoing response. */
47
+ setAll(cookies: Array<{
48
+ name: string;
49
+ value: string;
50
+ options: SerializeCookieOptions;
51
+ }>): void;
52
+ }
53
+ interface ServerClientOptions {
54
+ apiKey?: string;
55
+ cookies: CookieHandler;
56
+ cookieOptions?: SerializeCookieOptions;
57
+ }
58
+ declare function createServerClient<Database = any>(baseUrl: string, projectId: string, options: ServerClientOptions): AuraClient<Database>;
59
+ /**
60
+ * Create an Aurabase client for browser usage.
61
+ * Thin wrapper around AuraClient with sensible browser defaults.
62
+ */
63
+ declare function createBrowserClient<Database = any>(baseUrl: string, projectId: string, apiKey?: string, options?: AuraClientOptions): AuraClient<Database>;
64
+
65
+ export { type CookieHandler, type ServerClientOptions, createBrowserClient, createServerClient };
@@ -0,0 +1,65 @@
1
+ import { A as AuraClient } from './AuraClient-DAtDbfPB.js';
2
+ import { SerializeCookieOptions, AuraClientOptions } from '@aurabase/core';
3
+ export { SerializeCookieOptions, parseCookieHeader, serializeCookieHeader } from '@aurabase/core';
4
+ import '@aurabase/auth';
5
+ import '@aurabase/db';
6
+ import '@aurabase/storage';
7
+ import '@aurabase/realtime';
8
+ import '@aurabase/functions';
9
+ import '@aurabase/ai';
10
+ import '@aurabase/notifications';
11
+
12
+ /**
13
+ * Server-side rendering helpers for Aurabase.
14
+ *
15
+ * @example Next.js middleware
16
+ * ```ts
17
+ * import { createServerClient } from 'aurabase/ssr'
18
+ *
19
+ * export async function middleware(request) {
20
+ * let response = NextResponse.next({ request })
21
+ * const client = createServerClient(URL, PROJECT_ID, {
22
+ * cookies: {
23
+ * getAll: () => request.cookies.getAll(),
24
+ * setAll: (cookies) => {
25
+ * cookies.forEach(({ name, value, options }) => {
26
+ * request.cookies.set(name, value)
27
+ * response.cookies.set(name, value, options)
28
+ * })
29
+ * },
30
+ * },
31
+ * })
32
+ * await client.auth.getSession()
33
+ * return response
34
+ * }
35
+ * ```
36
+ *
37
+ * @module
38
+ */
39
+
40
+ interface CookieHandler {
41
+ /** Return all cookies from the incoming request. */
42
+ getAll(): Array<{
43
+ name: string;
44
+ value: string;
45
+ }>;
46
+ /** Set cookies on the outgoing response. */
47
+ setAll(cookies: Array<{
48
+ name: string;
49
+ value: string;
50
+ options: SerializeCookieOptions;
51
+ }>): void;
52
+ }
53
+ interface ServerClientOptions {
54
+ apiKey?: string;
55
+ cookies: CookieHandler;
56
+ cookieOptions?: SerializeCookieOptions;
57
+ }
58
+ declare function createServerClient<Database = any>(baseUrl: string, projectId: string, options: ServerClientOptions): AuraClient<Database>;
59
+ /**
60
+ * Create an Aurabase client for browser usage.
61
+ * Thin wrapper around AuraClient with sensible browser defaults.
62
+ */
63
+ declare function createBrowserClient<Database = any>(baseUrl: string, projectId: string, apiKey?: string, options?: AuraClientOptions): AuraClient<Database>;
64
+
65
+ export { type CookieHandler, type ServerClientOptions, createBrowserClient, createServerClient };