@aurabase/aurabase-js 0.3.0 → 0.4.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 (343) hide show
  1. package/README.md +26 -795
  2. package/{packages/aurabase/dist/AuraClient-DAtDbfPB.d.ts → dist/AuraClient-BcFE8u1v.d.cts} +1 -1
  3. package/{packages/aurabase/dist/AuraClient-DAtDbfPB.d.cts → dist/AuraClient-BcFE8u1v.d.ts} +1 -1
  4. package/{packages/aurabase/dist → dist}/index.d.cts +1 -1
  5. package/{packages/aurabase/dist → dist}/index.d.ts +1 -1
  6. package/{packages/aurabase/dist → dist}/ssr.d.cts +1 -1
  7. package/{packages/aurabase/dist → dist}/ssr.d.ts +1 -1
  8. package/package.json +72 -82
  9. package/.changeset/config.json +0 -11
  10. package/CHANGELOG.md +0 -30
  11. package/packages/ai/LICENSE +0 -21
  12. package/packages/ai/README.md +0 -106
  13. package/packages/ai/dist/index.cjs +0 -229
  14. package/packages/ai/dist/index.d.cts +0 -139
  15. package/packages/ai/dist/index.d.ts +0 -139
  16. package/packages/ai/dist/index.js +0 -226
  17. package/packages/ai/node_modules/.bin/esbuild +0 -19
  18. package/packages/ai/node_modules/.bin/tsc +0 -22
  19. package/packages/ai/node_modules/.bin/tsserver +0 -22
  20. package/packages/ai/node_modules/.bin/tsup +0 -22
  21. package/packages/ai/node_modules/.bin/tsup-node +0 -22
  22. package/packages/ai/node_modules/.bin/vite +0 -22
  23. package/packages/ai/node_modules/.bin/vitest +0 -22
  24. package/packages/ai/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  25. package/packages/ai/package.json +0 -61
  26. package/packages/ai/src/AiService.ts +0 -226
  27. package/packages/ai/src/index.ts +0 -18
  28. package/packages/ai/src/sse.ts +0 -141
  29. package/packages/ai/src/types.ts +0 -30
  30. package/packages/ai/tests/chat-stream.test.ts +0 -151
  31. package/packages/ai/tests/rag-namespaces.test.ts +0 -54
  32. package/packages/ai/tests/sse.test.ts +0 -69
  33. package/packages/ai/tsconfig.json +0 -5
  34. package/packages/ai/tsup.config.ts +0 -11
  35. package/packages/aurabase/LICENSE +0 -21
  36. package/packages/aurabase/README.md +0 -64
  37. package/packages/aurabase/node_modules/.bin/esbuild +0 -19
  38. package/packages/aurabase/node_modules/.bin/tsc +0 -22
  39. package/packages/aurabase/node_modules/.bin/tsserver +0 -22
  40. package/packages/aurabase/node_modules/.bin/tsup +0 -22
  41. package/packages/aurabase/node_modules/.bin/tsup-node +0 -22
  42. package/packages/aurabase/node_modules/.bin/vite +0 -22
  43. package/packages/aurabase/node_modules/.bin/vitest +0 -22
  44. package/packages/aurabase/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  45. package/packages/aurabase/package.json +0 -80
  46. package/packages/aurabase/src/AuraClient.ts +0 -237
  47. package/packages/aurabase/src/index.ts +0 -152
  48. package/packages/aurabase/src/ssr.ts +0 -156
  49. package/packages/aurabase/tests/ai-streaming-rag-e2e.test.ts +0 -82
  50. package/packages/aurabase/tests/ai.test.ts +0 -111
  51. package/packages/aurabase/tests/auth-admin.test.ts +0 -515
  52. package/packages/aurabase/tests/auth-e2e.test.ts +0 -135
  53. package/packages/aurabase/tests/auth-hardening.test.ts +0 -206
  54. package/packages/aurabase/tests/auth.test.ts +0 -947
  55. package/packages/aurabase/tests/database.test.ts +0 -230
  56. package/packages/aurabase/tests/db-types-e2e.test.ts +0 -217
  57. package/packages/aurabase/tests/dispose.test.ts +0 -23
  58. package/packages/aurabase/tests/foreign-token.e2e.test.ts +0 -129
  59. package/packages/aurabase/tests/functions.test.ts +0 -107
  60. package/packages/aurabase/tests/integration.test.ts +0 -413
  61. package/packages/aurabase/tests/live-production-validation.js +0 -241
  62. package/packages/aurabase/tests/live-sdk-production-validation.js +0 -293
  63. package/packages/aurabase/tests/mocks.ts +0 -139
  64. package/packages/aurabase/tests/notifications.test.ts +0 -314
  65. package/packages/aurabase/tests/observability-backup.test.ts +0 -186
  66. package/packages/aurabase/tests/observability-hook.test.ts +0 -130
  67. package/packages/aurabase/tests/production-robustness.test.ts +0 -268
  68. package/packages/aurabase/tests/public-api-surface.test.ts +0 -53
  69. package/packages/aurabase/tests/query-builder.test.ts +0 -329
  70. package/packages/aurabase/tests/readme-smoke-e2e.test.ts +0 -231
  71. package/packages/aurabase/tests/realtime-filter-e2e.test.ts +0 -344
  72. package/packages/aurabase/tests/refresh-locks.test.ts +0 -210
  73. package/packages/aurabase/tests/retry-option.test.ts +0 -17
  74. package/packages/aurabase/tests/rpc-e2e.test.ts +0 -254
  75. package/packages/aurabase/tests/rs256-local-e2e.test.ts +0 -114
  76. package/packages/aurabase/tests/rt-alias-public-e2e.test.ts +0 -235
  77. package/packages/aurabase/tests/rt-http-broadcast-e2e.test.ts +0 -124
  78. package/packages/aurabase/tests/service-role-guard.test.ts +0 -99
  79. package/packages/aurabase/tests/ssr.test.ts +0 -91
  80. package/packages/aurabase/tests/storage-backend-e2e.test.ts +0 -481
  81. package/packages/aurabase/tests/storage-sdk-parity-e2e.test.ts +0 -104
  82. package/packages/aurabase/tests/storage-transform-e2e.test.ts +0 -684
  83. package/packages/aurabase/tests/storage.test.ts +0 -55
  84. package/packages/aurabase/tests/types/client-generic.test-d.ts +0 -79
  85. package/packages/aurabase/tests/types/docs-snippets.test-d.ts +0 -571
  86. package/packages/aurabase/tests/types/error-code.test-d.ts +0 -53
  87. package/packages/aurabase/tsconfig.json +0 -5
  88. package/packages/aurabase/tsconfig.test-d.json +0 -5
  89. package/packages/aurabase/tsup.config.ts +0 -11
  90. package/packages/aurabase/vitest.config.ts +0 -16
  91. package/packages/aurabase/vitest.e2e.config.ts +0 -9
  92. package/packages/auth/LICENSE +0 -21
  93. package/packages/auth/README.md +0 -215
  94. package/packages/auth/dist/index.cjs +0 -1175
  95. package/packages/auth/dist/index.d.cts +0 -397
  96. package/packages/auth/dist/index.d.ts +0 -397
  97. package/packages/auth/dist/index.js +0 -1170
  98. package/packages/auth/node_modules/.bin/esbuild +0 -19
  99. package/packages/auth/node_modules/.bin/tsc +0 -22
  100. package/packages/auth/node_modules/.bin/tsserver +0 -22
  101. package/packages/auth/node_modules/.bin/tsup +0 -22
  102. package/packages/auth/node_modules/.bin/tsup-node +0 -22
  103. package/packages/auth/node_modules/.bin/vite +0 -22
  104. package/packages/auth/node_modules/.bin/vitest +0 -22
  105. package/packages/auth/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  106. package/packages/auth/package.json +0 -61
  107. package/packages/auth/src/AuthAdminService.ts +0 -149
  108. package/packages/auth/src/AuthService.ts +0 -1166
  109. package/packages/auth/src/SessionManager.ts +0 -92
  110. package/packages/auth/src/index.ts +0 -17
  111. package/packages/auth/src/jwks.ts +0 -337
  112. package/packages/auth/src/pkce.ts +0 -27
  113. package/packages/auth/src/types.ts +0 -89
  114. package/packages/auth/tests/auth-lifecycle.test.ts +0 -149
  115. package/packages/auth/tests/detect-session.test.ts +0 -361
  116. package/packages/auth/tests/getclaims.test.ts +0 -780
  117. package/packages/auth/tests/is-mfa-challenge.test.ts +0 -27
  118. package/packages/auth/tests/password-recovery.test.ts +0 -124
  119. package/packages/auth/tests/pkce.test.ts +0 -192
  120. package/packages/auth/tests/session-manager.test.ts +0 -103
  121. package/packages/auth/tests/set-session.test.ts +0 -139
  122. package/packages/auth/tests/verify-otp.test.ts +0 -153
  123. package/packages/auth/tsconfig.json +0 -5
  124. package/packages/auth/tsup.config.ts +0 -11
  125. package/packages/core/LICENSE +0 -21
  126. package/packages/core/README.md +0 -132
  127. package/packages/core/dist/index.cjs +0 -695
  128. package/packages/core/dist/index.d.cts +0 -1137
  129. package/packages/core/dist/index.d.ts +0 -1137
  130. package/packages/core/dist/index.js +0 -673
  131. package/packages/core/node_modules/.bin/esbuild +0 -22
  132. package/packages/core/node_modules/.bin/tsc +0 -22
  133. package/packages/core/node_modules/.bin/tsserver +0 -22
  134. package/packages/core/node_modules/.bin/tsup +0 -22
  135. package/packages/core/node_modules/.bin/tsup-node +0 -22
  136. package/packages/core/node_modules/.bin/vite +0 -22
  137. package/packages/core/node_modules/.bin/vitest +0 -22
  138. package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  139. package/packages/core/package.json +0 -57
  140. package/packages/core/src/AuraError.ts +0 -89
  141. package/packages/core/src/BaseService.ts +0 -44
  142. package/packages/core/src/client.ts +0 -34
  143. package/packages/core/src/cookie-utils.ts +0 -42
  144. package/packages/core/src/fetch.ts +0 -435
  145. package/packages/core/src/index.ts +0 -22
  146. package/packages/core/src/retry.ts +0 -63
  147. package/packages/core/src/serialize.ts +0 -6
  148. package/packages/core/src/stores/BaseAuthStore.ts +0 -164
  149. package/packages/core/src/stores/LocalAuthStore.ts +0 -199
  150. package/packages/core/src/types.ts +0 -1042
  151. package/packages/core/tests/auth-store.test.ts +0 -300
  152. package/packages/core/tests/error-code.test.ts +0 -61
  153. package/packages/core/tests/error.test.ts +0 -24
  154. package/packages/core/tests/fetch.test.ts +0 -286
  155. package/packages/core/tests/mocks.ts +0 -139
  156. package/packages/core/tests/observability.test.ts +0 -86
  157. package/packages/core/tests/refresh-hardening.test.ts +0 -164
  158. package/packages/core/tests/refresh-observability.test.ts +0 -111
  159. package/packages/core/tests/retry.test.ts +0 -106
  160. package/packages/core/tests/serialize.test.ts +0 -12
  161. package/packages/core/tests/timeout.test.ts +0 -79
  162. package/packages/core/tsconfig.json +0 -5
  163. package/packages/core/tsup.config.ts +0 -11
  164. package/packages/db/LICENSE +0 -21
  165. package/packages/db/README.md +0 -152
  166. package/packages/db/VENDORED.md +0 -93
  167. package/packages/db/dist/index.cjs +0 -544
  168. package/packages/db/dist/index.d.cts +0 -1111
  169. package/packages/db/dist/index.d.ts +0 -1111
  170. package/packages/db/dist/index.js +0 -541
  171. package/packages/db/node_modules/.bin/esbuild +0 -19
  172. package/packages/db/node_modules/.bin/tsc +0 -22
  173. package/packages/db/node_modules/.bin/tsserver +0 -22
  174. package/packages/db/node_modules/.bin/tsup +0 -22
  175. package/packages/db/node_modules/.bin/tsup-node +0 -22
  176. package/packages/db/node_modules/.bin/vite +0 -22
  177. package/packages/db/node_modules/.bin/vitest +0 -22
  178. package/packages/db/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  179. package/packages/db/package.json +0 -62
  180. package/packages/db/src/DatabaseService.ts +0 -170
  181. package/packages/db/src/QueryBuilder.ts +0 -830
  182. package/packages/db/src/index.ts +0 -2
  183. package/packages/db/src/pgrst-types/common/common.ts +0 -86
  184. package/packages/db/src/pgrst-types/common/rpc.ts +0 -151
  185. package/packages/db/src/pgrst-types/feature-flags.ts +0 -20
  186. package/packages/db/src/pgrst-types/types.ts +0 -134
  187. package/packages/db/src/select-query-parser/parser.ts +0 -479
  188. package/packages/db/src/select-query-parser/result.ts +0 -553
  189. package/packages/db/src/select-query-parser/types.ts +0 -132
  190. package/packages/db/src/select-query-parser/utils.ts +0 -707
  191. package/packages/db/tests/filters.test.ts +0 -81
  192. package/packages/db/tests/mutations-filtered.e2e.test.ts +0 -132
  193. package/packages/db/tests/mutations-filtered.test.ts +0 -188
  194. package/packages/db/tests/order.test.ts +0 -45
  195. package/packages/db/tests/rpc.test.ts +0 -41
  196. package/packages/db/tests/scale/build-large-schema.ts +0 -94
  197. package/packages/db/tests/scale/scale-compile.test.ts +0 -167
  198. package/packages/db/tests/schema.test.ts +0 -77
  199. package/packages/db/tests/single-accept.e2e.test.ts +0 -123
  200. package/packages/db/tests/single.test.ts +0 -211
  201. package/packages/db/tests/types/filters.test-d.ts +0 -52
  202. package/packages/db/tests/types/fixtures.ts +0 -40
  203. package/packages/db/tests/types/from-views.test-d.ts +0 -18
  204. package/packages/db/tests/types/mutations.test-d.ts +0 -23
  205. package/packages/db/tests/types/rpc.test-d.ts +0 -60
  206. package/packages/db/tests/types/schema-shape.test-d.ts +0 -8
  207. package/packages/db/tests/types/select-inference.test-d.ts +0 -38
  208. package/packages/db/tests/vendored/fixtures.ts +0 -83
  209. package/packages/db/tests/vendored/get-result.test-d.ts +0 -75
  210. package/packages/db/tsconfig.json +0 -5
  211. package/packages/db/tsconfig.test-d.json +0 -5
  212. package/packages/db/tsup.config.ts +0 -11
  213. package/packages/db/vitest.config.ts +0 -8
  214. package/packages/functions/LICENSE +0 -21
  215. package/packages/functions/README.md +0 -96
  216. package/packages/functions/dist/index.cjs +0 -173
  217. package/packages/functions/dist/index.d.cts +0 -81
  218. package/packages/functions/dist/index.d.ts +0 -81
  219. package/packages/functions/dist/index.js +0 -168
  220. package/packages/functions/node_modules/.bin/esbuild +0 -19
  221. package/packages/functions/node_modules/.bin/tsc +0 -22
  222. package/packages/functions/node_modules/.bin/tsserver +0 -22
  223. package/packages/functions/node_modules/.bin/tsup +0 -22
  224. package/packages/functions/node_modules/.bin/tsup-node +0 -22
  225. package/packages/functions/node_modules/.bin/vite +0 -22
  226. package/packages/functions/node_modules/.bin/vitest +0 -22
  227. package/packages/functions/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  228. package/packages/functions/package.json +0 -60
  229. package/packages/functions/src/FunctionsService.ts +0 -188
  230. package/packages/functions/src/errors.ts +0 -70
  231. package/packages/functions/src/index.ts +0 -6
  232. package/packages/functions/tests/invoke.test.ts +0 -97
  233. package/packages/functions/tests/response-type-errors.test.ts +0 -135
  234. package/packages/functions/tsconfig.json +0 -5
  235. package/packages/functions/tsup.config.ts +0 -11
  236. package/packages/gen/LICENSE +0 -21
  237. package/packages/gen/README.md +0 -84
  238. package/packages/gen/dist/cli.cjs +0 -334
  239. package/packages/gen/dist/cli.d.cts +0 -1
  240. package/packages/gen/dist/cli.d.ts +0 -1
  241. package/packages/gen/dist/cli.js +0 -332
  242. package/packages/gen/dist/index.cjs +0 -257
  243. package/packages/gen/dist/index.d.cts +0 -12
  244. package/packages/gen/dist/index.d.ts +0 -12
  245. package/packages/gen/dist/index.js +0 -255
  246. package/packages/gen/node_modules/.bin/esbuild +0 -19
  247. package/packages/gen/node_modules/.bin/tsc +0 -22
  248. package/packages/gen/node_modules/.bin/tsserver +0 -22
  249. package/packages/gen/node_modules/.bin/tsup +0 -22
  250. package/packages/gen/node_modules/.bin/tsup-node +0 -22
  251. package/packages/gen/node_modules/.bin/vite +0 -22
  252. package/packages/gen/node_modules/.bin/vitest +0 -22
  253. package/packages/gen/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  254. package/packages/gen/package.json +0 -66
  255. package/packages/gen/src/cli.ts +0 -67
  256. package/packages/gen/src/generate.ts +0 -0
  257. package/packages/gen/src/index.ts +0 -2
  258. package/packages/gen/tests/compile.test.ts +0 -213
  259. package/packages/gen/tests/e2e.test.ts +0 -130
  260. package/packages/gen/tests/generate.test.ts +0 -396
  261. package/packages/gen/tsconfig.json +0 -5
  262. package/packages/gen/tsup.config.ts +0 -11
  263. package/packages/notifications/LICENSE +0 -21
  264. package/packages/notifications/README.md +0 -134
  265. package/packages/notifications/dist/index.cjs +0 -128
  266. package/packages/notifications/dist/index.d.cts +0 -81
  267. package/packages/notifications/dist/index.d.ts +0 -81
  268. package/packages/notifications/dist/index.js +0 -125
  269. package/packages/notifications/node_modules/.bin/esbuild +0 -19
  270. package/packages/notifications/node_modules/.bin/tsc +0 -22
  271. package/packages/notifications/node_modules/.bin/tsserver +0 -22
  272. package/packages/notifications/node_modules/.bin/tsup +0 -22
  273. package/packages/notifications/node_modules/.bin/tsup-node +0 -22
  274. package/packages/notifications/node_modules/.bin/vite +0 -22
  275. package/packages/notifications/node_modules/.bin/vitest +0 -22
  276. package/packages/notifications/package.json +0 -60
  277. package/packages/notifications/src/NotificationsService.ts +0 -230
  278. package/packages/notifications/src/index.ts +0 -19
  279. package/packages/notifications/tsconfig.json +0 -5
  280. package/packages/notifications/tsup.config.ts +0 -11
  281. package/packages/realtime/LICENSE +0 -21
  282. package/packages/realtime/README.md +0 -183
  283. package/packages/realtime/dist/index.cjs +0 -977
  284. package/packages/realtime/dist/index.d.cts +0 -259
  285. package/packages/realtime/dist/index.d.ts +0 -259
  286. package/packages/realtime/dist/index.js +0 -973
  287. package/packages/realtime/node_modules/.bin/esbuild +0 -19
  288. package/packages/realtime/node_modules/.bin/tsc +0 -22
  289. package/packages/realtime/node_modules/.bin/tsserver +0 -22
  290. package/packages/realtime/node_modules/.bin/tsup +0 -22
  291. package/packages/realtime/node_modules/.bin/tsup-node +0 -22
  292. package/packages/realtime/node_modules/.bin/vite +0 -22
  293. package/packages/realtime/node_modules/.bin/vitest +0 -22
  294. package/packages/realtime/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  295. package/packages/realtime/package.json +0 -60
  296. package/packages/realtime/src/AuraChannel.ts +0 -485
  297. package/packages/realtime/src/HeartbeatManager.ts +0 -73
  298. package/packages/realtime/src/RealtimeService.ts +0 -505
  299. package/packages/realtime/src/columnFilter.ts +0 -301
  300. package/packages/realtime/src/index.ts +0 -4
  301. package/packages/realtime/tests/ack-routing.test.ts +0 -81
  302. package/packages/realtime/tests/column-filter.test.ts +0 -144
  303. package/packages/realtime/tests/dispatch.test.ts +0 -191
  304. package/packages/realtime/tests/heartbeat.test.ts +0 -67
  305. package/packages/realtime/tests/http-broadcast.test.ts +0 -68
  306. package/packages/realtime/tests/realtime-token.test.ts +0 -43
  307. package/packages/realtime/tests/reconnect-race.test.ts +0 -149
  308. package/packages/realtime/tests/ref-id.test.ts +0 -34
  309. package/packages/realtime/tests/set-auth.test.ts +0 -70
  310. package/packages/realtime/tsconfig.json +0 -5
  311. package/packages/realtime/tsup.config.ts +0 -11
  312. package/packages/storage/LICENSE +0 -21
  313. package/packages/storage/README.md +0 -141
  314. package/packages/storage/dist/index.cjs +0 -333
  315. package/packages/storage/dist/index.d.cts +0 -185
  316. package/packages/storage/dist/index.d.ts +0 -185
  317. package/packages/storage/dist/index.js +0 -329
  318. package/packages/storage/node_modules/.bin/esbuild +0 -19
  319. package/packages/storage/node_modules/.bin/tsc +0 -22
  320. package/packages/storage/node_modules/.bin/tsserver +0 -22
  321. package/packages/storage/node_modules/.bin/tsup +0 -22
  322. package/packages/storage/node_modules/.bin/tsup-node +0 -22
  323. package/packages/storage/node_modules/.bin/vite +0 -22
  324. package/packages/storage/node_modules/.bin/vitest +0 -22
  325. package/packages/storage/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +0 -1
  326. package/packages/storage/package.json +0 -60
  327. package/packages/storage/src/DownloadBuilder.ts +0 -60
  328. package/packages/storage/src/StorageService.ts +0 -323
  329. package/packages/storage/src/index.ts +0 -2
  330. package/packages/storage/src/path.ts +0 -35
  331. package/packages/storage/src/transform.ts +0 -15
  332. package/packages/storage/tests/download.test.ts +0 -64
  333. package/packages/storage/tests/parity.test.ts +0 -154
  334. package/packages/storage/tests/path.test.ts +0 -87
  335. package/packages/storage/tests/transform.test.ts +0 -79
  336. package/packages/storage/tsconfig.json +0 -5
  337. package/packages/storage/tsup.config.ts +0 -11
  338. package/pnpm-workspace.yaml +0 -24
  339. package/tsconfig.base.json +0 -15
  340. /package/{packages/aurabase/dist → dist}/index.cjs +0 -0
  341. /package/{packages/aurabase/dist → dist}/index.js +0 -0
  342. /package/{packages/aurabase/dist → dist}/ssr.cjs +0 -0
  343. /package/{packages/aurabase/dist → dist}/ssr.js +0 -0
@@ -1,79 +0,0 @@
1
- import { describe, it, expect, vi, afterEach } from 'vitest'
2
- import { fetchWithAuth } from '../src/fetch'
3
- import { BaseAuthStore } from '../src/stores/BaseAuthStore'
4
- import type { AuraClientLike } from '../src/client'
5
- import type { AuraObservabilityEvent } from '../src/types'
6
-
7
- afterEach(() => vi.useRealTimers())
8
-
9
- /** fetch qui ne résout jamais, mais rejette (AbortError) si son signal est aborté. */
10
- const hangFetch = (async (_url: string, init: RequestInit) =>
11
- new Promise<Response>((_res, rej) => {
12
- init.signal?.addEventListener('abort', () =>
13
- rej(Object.assign(new Error('aborted'), { name: 'AbortError' })),
14
- )
15
- })) as unknown as typeof globalThis.fetch
16
-
17
- function client(
18
- requestTimeoutMs?: number,
19
- fetchFn: typeof globalThis.fetch = hangFetch,
20
- onEvent?: (e: AuraObservabilityEvent) => void,
21
- ): AuraClientLike {
22
- return {
23
- baseUrl: 'http://x', projectId: 'p', apiKey: 'k', fetchFn,
24
- authStore: new BaseAuthStore(),
25
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- auth: { refreshSession: async () => ({ data: null, error: null }) as any },
27
- ...(requestTimeoutMs !== undefined ? { requestTimeoutMs } : {}),
28
- ...(onEvent ? { onEvent } : {}),
29
- }
30
- }
31
-
32
- describe('fetchWithAuth — timeout par défaut', () => {
33
- it('un serveur qui « hang » est coupé et renvoie le code `timeout`', async () => {
34
- vi.useFakeTimers()
35
- const p = fetchWithAuth('http://x/slow', { method: 'GET' }, client(100))
36
- await vi.advanceTimersByTimeAsync(100)
37
- const res = await p
38
- expect(res.data).toBeNull()
39
- expect(res.error?.code).toBe('timeout')
40
- })
41
-
42
- it('requestTimeoutMs: 0 désactive le timeout (aucune coupure)', async () => {
43
- vi.useFakeTimers()
44
- let settled = false
45
- const p = fetchWithAuth('http://x/slow', { method: 'GET' }, client(0)).then((r) => { settled = true; return r })
46
- await vi.advanceTimersByTimeAsync(60_000)
47
- expect(settled).toBe(false) // toujours en attente → pas de timeout
48
- void p
49
- })
50
-
51
- it("un `signal` fourni par l'appelant désactive le timeout par défaut", async () => {
52
- vi.useFakeTimers()
53
- const ac = new AbortController()
54
- let settled = false
55
- const p = fetchWithAuth('http://x/slow', { method: 'GET', signal: ac.signal }, client(100)).then((r) => { settled = true; return r })
56
- await vi.advanceTimersByTimeAsync(100)
57
- // Le timeout par défaut ne s'applique pas (l'appelant gère son annulation).
58
- expect(settled).toBe(false)
59
- ac.abort()
60
- await Promise.resolve()
61
- void p
62
- })
63
-
64
- it('LOT 3 (I8) : un timeout émet {kind:"timeout", url}', async () => {
65
- vi.useFakeTimers()
66
- const events: AuraObservabilityEvent[] = []
67
- const p = fetchWithAuth('http://x/slow', { method: 'GET' }, client(100, hangFetch, (e) => events.push(e)))
68
- await vi.advanceTimersByTimeAsync(100)
69
- await p
70
- expect(events).toContainEqual({ kind: 'timeout', url: 'http://x/slow' })
71
- })
72
-
73
- it('une requête normale (résolue) n’est pas affectée', async () => {
74
- const okFetch = (async () => new Response(JSON.stringify({ data: { ok: true } }), { status: 200, headers: { 'Content-Type': 'application/json' } })) as unknown as typeof globalThis.fetch
75
- const res = await fetchWithAuth<{ ok: boolean }>('http://x/y', { method: 'GET' }, client(100, okFetch))
76
- expect(res.error).toBeNull()
77
- expect(res.data).toEqual({ ok: true })
78
- })
79
- })
@@ -1,5 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.base.json",
3
- "compilerOptions": { "outDir": "dist", "rootDir": "src" },
4
- "include": ["src"]
5
- }
@@ -1,11 +0,0 @@
1
- import { defineConfig } from 'tsup'
2
-
3
- export default defineConfig({
4
- entry: ['src/index.ts'],
5
- format: ['cjs', 'esm'],
6
- dts: true,
7
- splitting: false,
8
- clean: true,
9
- treeshake: true,
10
- minify: false,
11
- })
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Aurabase
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,152 +0,0 @@
1
- # @aurabase/db
2
-
3
- Service base de données du SDK Aurabase : query builder typé, style PostgREST, avec inférence de types sur `select()`/`insert()`/`update()`.
4
-
5
- ![npm](https://img.shields.io/npm/v/@aurabase/db) ![license](https://img.shields.io/badge/license-MIT-blue)
6
-
7
- > Pre-release — pas encore publié sur npm.
8
-
9
- Fait partie du SDK **[aurabase](../aurabase)**. Installé automatiquement avec `aurabase` ; ce package est publié séparément pour un usage ciblé / tree-shaking.
10
-
11
- ## Installation
12
-
13
- ```bash
14
- npm i @aurabase/db
15
- ```
16
-
17
- > Dépend de `@aurabase/core`. Déjà inclus si vous utilisez le package `aurabase` — cette installation ciblée sert à composer votre propre client ou à limiter la taille du bundle.
18
-
19
- ## Usage
20
-
21
- `DatabaseService` est exposé par le client principal sous `aura.db`. Pour l'inférence de types (colonnes, embeds, `Insert`/`Update`), passez un type `Database` généré à `createClient<Database>(...)` (voir [`@aurabase/gen`](../gen)).
22
-
23
- ```ts
24
- import { createClient } from 'aurabase'
25
- import type { Database } from './database.types' // généré par @aurabase/gen, optionnel
26
-
27
- const aura = createClient<Database>('http://localhost:8080', 'my-project', 'aura_anon_xxx')
28
- ```
29
-
30
- ### Select, filtres, embeds
31
-
32
- ```ts
33
- const { data, error } = await aura.db
34
- .from('posts')
35
- .select('id,title,author:authors(*)') // embed PostgREST-like (alias:table(*)) — typé si Database est fourni
36
- .eq('published', true)
37
- .order('created_at', 'desc')
38
- .limit(10)
39
- ```
40
-
41
- Filtres disponibles : `eq`, `neq`, `gt`, `gte`, `lt`, `lte`, `like`, `ilike`, `is('null' | 'not.null' | 'true' | 'false' | 'unknown')`, `in`, `notIn`, `or([{ column, op, value }])`, `contains`, `containedBy`, `overlaps`, `rangeGt`/`rangeGte`/`rangeLt`/`rangeLte`/`rangeAdjacent`, `isDistinct`, `not(column, op, value)`, `filter(column, op, value)`, `match(obj)`, `textSearch(column, query, { type, config })`, `likeAllOf`/`likeAnyOf`/`ilikeAllOf`/`ilikeAnyOf`.
42
-
43
- ```ts
44
- await aura.db
45
- .from('posts')
46
- .or([
47
- { column: 'published', op: 'eq', value: true },
48
- { column: 'author_id', op: 'eq', value: 'user-id' },
49
- ])
50
- .textSearch('title', 'aurabase', { type: 'websearch' })
51
- ```
52
-
53
- Modificateurs : `order(column, 'asc' | 'desc')`, `limit(n)`, `offset(n)`, `cursor(nextCursor)`, `count('exact' | ...)`, `single()`, `maybeSingle()`, `throwOnError()`.
54
-
55
- ```ts
56
- const postId = 'post-id'
57
- const { data: post } = await aura.db.from('posts').eq('id', postId).single()
58
-
59
- const { data: maybePost } = await aura.db.from('posts').eq('slug', 'unknown').maybeSingle()
60
-
61
- const firstPage = await aura.db.from('posts').order('id').limit(20)
62
- const secondPage = await aura.db.from('posts').order('id').cursor(firstPage.meta?.next_cursor ?? '')
63
- ```
64
-
65
- ### Mutations — `update`/`delete` ciblent par `id`
66
-
67
- ```ts
68
- await aura.db.from('posts').insert({ title: 'Hello', published: false })
69
- await aura.db.from('posts').insert([{ title: 'A' }, { title: 'B' }])
70
-
71
- // Pas de .eq(...) : update()/delete() prennent l'id directement en premier argument.
72
- const postId = 'post-id'
73
- await aura.db.from('posts').update(postId, { published: true })
74
- await aura.db.from('posts').delete(postId)
75
-
76
- await aura.db.from('posts').upsert({ id: postId, title: 'Updated' }, { onConflict: 'id' })
77
- ```
78
-
79
- ### SQL brut et schéma
80
-
81
- ```ts
82
- // Passthrough direct vers Postgres — PAS en lecture seule (voir Limitations).
83
- const rows = await aura.db.sql('SELECT count(*) FROM posts WHERE published = $1', [true])
84
-
85
- const schema = await aura.db.schema() // schema.data: { tables: SchemaTable[]; functions: SchemaFunction[] } du projet courant
86
- ```
87
-
88
- ## Fonctions Postgres (rpc)
89
-
90
- `aura.db.rpc(fnName, args?, options?)` appelle une fonction Postgres exposée par PostgREST (`POST|GET|HEAD /rpc/{fn}`) et retourne un builder filtrable (mêmes modificateurs que `from()` : `.eq()`, `.select()`, `.single()`, `.order()`, …).
91
-
92
- ```ts
93
- // Appel scalaire (POST par défaut, args en body).
94
- const { data: sum } = await aura.db.rpc('add', { a: 1, b: 2 })
95
- ```
96
-
97
- ```ts
98
- // Fonction SETOF : le résultat est filtrable comme une table.
99
- const { data: thing } = await aura.db
100
- .rpc('list_things', {})
101
- .eq('id', 2)
102
- .select('id,name')
103
- .single()
104
- ```
105
-
106
- Options (3e argument) :
107
-
108
- ```ts
109
- // count: 'exact' | 'planned' | 'estimated' → total exposé dans meta.total.
110
- const { data, meta } = await aura.db.rpc('list_things', {}, { count: 'exact' })
111
- console.log(meta?.total)
112
-
113
- // get: true → GET (args sérialisés en query string, pas de body).
114
- await aura.db.rpc('now', undefined, { get: true })
115
-
116
- // head: true → HEAD (args en query, aucun corps de réponse — utile avec count).
117
- await aura.db.rpc('list_things', {}, { head: true, count: 'exact' })
118
- ```
119
-
120
- Typage : si `Database['public']['Functions'][fn]` est connu, `args` est typé strictement et le résultat infère `Row`/`Result` à partir de `Returns` (scalaire pour une fonction scalaire, tableau pour un SETOF) — sans double-emballage : `rpc('add', …)` type `number | null`, `rpc('list_things', …)` sans `.select()` type `{ id; name }[] | null`. Une colonne précise après `.select()` sur un SETOF (ex. `.select('id,name').single()` → `{ id: number; name: string } | null`) nécessite que `SetofOptions.to` pointe une **vraie table** du bloc `Tables` du `Database` — ce qui suppose un `Database` écrit à la main. **Généré par [`@aurabase/gen`](../gen) :** seuls les `Args` (et le retour scalaire) sont typés strictement ; `@aurabase/gen` ne résout pas la table réellement ciblée par un `SETOF`, donc `SetofOptions.to` y est un placeholder qui ne matche jamais une table — un SETOF `.select()` retombe alors sur `Record<string, unknown>[]` (voir [limitations de `@aurabase/gen`](../gen/README.md)). Sans `Database` typé (ou fonction absente du bloc `Functions`), `rpc()` reste permissif (`args?: Record<string, unknown>`, résultat `any`) — aucune régression pour les appels non typés.
121
-
122
- ```ts
123
- import { createClient } from 'aurabase'
124
-
125
- type Database = {
126
- public: {
127
- Tables: Record<string, never>
128
- Views: Record<string, never>
129
- Functions: {
130
- add: { Args: { a: number; b: number }; Returns: number }
131
- }
132
- Enums: Record<string, never>
133
- CompositeTypes: Record<string, never>
134
- }
135
- }
136
-
137
- const aura = createClient<Database>('http://localhost:8080', 'my-project', 'aura_anon_xxx')
138
- await aura.db.rpc('add', { a: 1, b: 2 }) // args vérifiés à la compilation
139
- ```
140
-
141
- ## Limitations
142
-
143
- - `rpc()` est Postgres-only : non disponible si le projet utilise MongoDB comme moteur (`aura.db.schema()` renvoie alors `functions: []`).
144
- - `update(id, body)` et `delete(id)` ciblent toujours une ligne par `id` : pas d'équivalent `.update(values).eq('col', v)` filtrant sur un critère arbitraire.
145
- - Pas de `range()`, `csv()`, `geojson()`, `explain()`, `abortSignal()`, `returns()` (parité postgrest-js partielle).
146
- - `or()` prend un tableau d'objets `{ column, op, value }`, pas la chaîne PostgREST `"col.eq.val,col2.gt.val2"`.
147
- - `sql()` n'a aucun filtre applicatif par type d'instruction (SELECT/INSERT/UPDATE/DELETE/DDL s'exécutent tous réellement, dans la limite des GRANTs du rôle Postgres du projet) — à ne pas exposer sans restriction à des clients non fiables.
148
- - Format de câblage (wire format) propre à Aurabase : non interopérable avec un serveur PostgREST tiers.
149
-
150
- ## Documentation
151
-
152
- Référence complète du SDK (tous les services, types partagés, SSR) : [README racine](../../README.md).
@@ -1,93 +0,0 @@
1
- # Code vendoré — `@supabase/postgrest-js`
2
-
3
- `@aurabase/db` embarque, sous licence MIT, une copie adaptée de la couche
4
- type-level de [`@supabase/postgrest-js`](https://github.com/supabase/postgrest-js)
5
- (parseur de `select()` + résolveur de types `GetResult`). Ce document fige la
6
- provenance et la procédure de resync — introduit par LOT 6 (audit SDK,
7
- 2026-07-12, finding I7 : « vendoré sans provenance »).
8
-
9
- ## Fichiers vendorés
10
-
11
- | Fichier | Rôle |
12
- |---|---|
13
- | `src/select-query-parser/parser.ts` | Parseur de la string `select()` en AST (`Ast.Node[]`) |
14
- | `src/select-query-parser/result.ts` | `GetResult<...>` — résolution du type de retour d'un `select()` (point d'entrée) |
15
- | `src/select-query-parser/types.ts` | Types utilitaires partagés du parseur/résolveur |
16
- | `src/select-query-parser/utils.ts` | `ResolveRelationship` et le reste de la logique de résolution des embeds |
17
- | `src/pgrst-types/feature-flags.ts` | Feature flags par version de PostgREST (`MaxAffectedEnabled`, `SpreadOnManyEnabled`) |
18
- | `src/pgrst-types/types.ts` | Types PostgREST génériques (`GenericTable`, `TypeScriptTypes`, `PostgreSQLTypes`, ...) |
19
- | `src/pgrst-types/common/common.ts` | Types partagés supabase-js/postgrest-js (`Fetch`, `ClientServerOptions`, ...) |
20
- | `src/pgrst-types/common/rpc.ts` | Typage des appels `.rpc()` (`GenericFunction`, matching des `Args`) |
21
-
22
- Chaque fichier porte un en-tête `// Vendored from @supabase/postgrest-js (MIT,
23
- Copyright (c) Supabase).` renvoyant vers ce document. **Ne pas modifier la
24
- logique de ces fichiers** hors resync délibéré (voir plus bas) — les
25
- adaptations aurabase (renommages, ajustements d'import) sont volontairement
26
- minimales pour garder un diff resync-friendly avec l'amont.
27
-
28
- ## Version d'origine
29
-
30
- Vendoré initialement dans le commit `414d9f60` (« feat(db): vendore la couche
31
- type-level de postgrest-js (MIT) pour l'inférence de select », 2026-07-12).
32
- **La version exacte / le SHA amont de `@supabase/postgrest-js` au moment du
33
- vendoring n'a pas été consigné à l'époque — à confirmer et à figer ici au
34
- prochain resync.** Tant que cette ligne n'est pas mise à jour, considérer la
35
- provenance comme « non pinnée » : en cas de bug suspecté dans cette couche,
36
- comparer manuellement avec la version courante de `@supabase/postgrest-js` sur
37
- npm/GitHub plutôt que de supposer une version précise.
38
-
39
- ```
40
- Source amont : @supabase/postgrest-js (https://github.com/supabase/postgrest-js)
41
- Licence : MIT (Copyright (c) Supabase)
42
- SHA / version amont au vendoring : NON CONSIGNÉ — à figer ici au prochain resync
43
- Vendoré le : 2026-07-12 (commit 414d9f60)
44
- ```
45
-
46
- ## `PostgrestVersion` figé à `'12'`
47
-
48
- `AuraClientOptionsT` (`src/QueryBuilder.ts`) fixe
49
- `PostgrestVersion: '12'` de façon codée en dur — le SDK Aurabase ne négocie
50
- pas de version PostgREST avec le backend. Conséquence directe sur le code
51
- vendoré : les feature flags `MaxAffectedEnabled` / `SpreadOnManyEnabled`
52
- (`src/pgrst-types/feature-flags.ts`), conçus en amont pour activer des
53
- comportements PostgREST 13/14, sont **présents mais structurellement inertes**
54
- dans aurabase-js (`IsPostgrestVersionGreaterThan12<'12'>` est toujours
55
- `false`). Ce n'est pas un bug — c'est un vendoring volontairement fidèle à
56
- l'amont (pas de fork de la logique) doublé d'un pin explicite de version côté
57
- aurabase. Si le backend `aura-db`/PostgREST venait à monter en version 13+,
58
- ce pin devra être révisé de concert avec le générateur de schéma (LOT 4) et
59
- les tests type-level du vendoré (`packages/db/tests/vendored/`).
60
-
61
- ## Procédure de resync manuelle
62
-
63
- Ce vendoring n'est pas automatisé (pas de sous-module, pas de script de sync).
64
- Pour rapatrier une version plus récente de `@supabase/postgrest-js` :
65
-
66
- 1. Récupérer la version cible du paquet npm `@supabase/postgrest-js` (choisir
67
- un tag/SHA précis — ne jamais resync sur un HEAD flottant).
68
- 2. Comparer fichier par fichier avec la liste ci-dessus (`src/select-query-parser/*`,
69
- `src/pgrst-types/*`) — l'amont peut avoir renommé/déplacé des fichiers
70
- entre deux versions, vérifier la table de correspondance à cette occasion.
71
- 3. Réappliquer les adaptations aurabase minimales (renommages de types
72
- `Aura*` le cas échéant, ajustements d'import relatifs — actuellement
73
- aucune divergence de logique volontaire n'est connue ; si une divergence
74
- est découverte pendant le resync, la documenter ici avant de l'écraser).
75
- 4. Mettre à jour la ligne « SHA / version amont » de ce document.
76
- 5. Faire tourner :
77
- - `pnpm --filter @aurabase/db test` (suite unitaire + `tsc -p tsconfig.test-d.json`)
78
- - `pnpm --filter @aurabase/db test tests/scale/scale-compile.test.ts` (garde
79
- TS2589 à l'échelle — LOT 6, voir `tests/scale/`)
80
- - `pnpm --filter @aurabase/db test tests/vendored/` (régression de forme sur
81
- le vendoré — LOT 6, voir `tests/vendored/`)
82
- 6. Si `PostgrestVersion` amont introduit un nouveau feature flag pertinent
83
- pour aurabase (ex. passage à PostgREST 13+ côté backend), le câbler
84
- explicitement plutôt que de le laisser inerte silencieusement.
85
-
86
- ## Pourquoi vendorer plutôt que dépendre de `@supabase/postgrest-js`
87
-
88
- Décision déjà actée au moment du vendoring (commit `414d9f60`) : le SDK
89
- Aurabase a son propre `AuraQueryBuilder`/`DatabaseService` (pas le client
90
- `postgrest-js`), seule la couche de résolution de types (`GetResult` et son
91
- parseur) est réutilisée. Vendorer évite une dépendance runtime/type sur un
92
- paquet dont l'API cliente n'est pas utilisée telle quelle, au prix du coût de
93
- maintenance documenté ci-dessus (resync manuel).