@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.
- package/.changeset/config.json +11 -0
- package/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +833 -0
- package/package.json +90 -0
- package/packages/ai/LICENSE +21 -0
- package/packages/ai/README.md +106 -0
- package/packages/ai/dist/index.cjs +229 -0
- package/packages/ai/dist/index.d.cts +139 -0
- package/packages/ai/dist/index.d.ts +139 -0
- package/packages/ai/dist/index.js +226 -0
- package/packages/ai/node_modules/.bin/esbuild +19 -0
- package/packages/ai/node_modules/.bin/tsc +22 -0
- package/packages/ai/node_modules/.bin/tsserver +22 -0
- package/packages/ai/node_modules/.bin/tsup +22 -0
- package/packages/ai/node_modules/.bin/tsup-node +22 -0
- package/packages/ai/node_modules/.bin/vite +22 -0
- package/packages/ai/node_modules/.bin/vitest +22 -0
- package/packages/ai/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/ai/package.json +61 -0
- package/packages/ai/src/AiService.ts +226 -0
- package/packages/ai/src/index.ts +18 -0
- package/packages/ai/src/sse.ts +141 -0
- package/packages/ai/src/types.ts +30 -0
- package/packages/ai/tests/chat-stream.test.ts +151 -0
- package/packages/ai/tests/rag-namespaces.test.ts +54 -0
- package/packages/ai/tests/sse.test.ts +69 -0
- package/packages/ai/tsconfig.json +5 -0
- package/packages/ai/tsup.config.ts +11 -0
- package/packages/aurabase/LICENSE +21 -0
- package/packages/aurabase/README.md +64 -0
- package/packages/aurabase/dist/AuraClient-DAtDbfPB.d.cts +77 -0
- package/packages/aurabase/dist/AuraClient-DAtDbfPB.d.ts +77 -0
- package/packages/aurabase/dist/index.cjs +237 -0
- package/packages/aurabase/dist/index.d.cts +46 -0
- package/packages/aurabase/dist/index.d.ts +46 -0
- package/packages/aurabase/dist/index.js +177 -0
- package/packages/aurabase/dist/ssr.cjs +224 -0
- package/packages/aurabase/dist/ssr.d.cts +65 -0
- package/packages/aurabase/dist/ssr.d.ts +65 -0
- package/packages/aurabase/dist/ssr.js +214 -0
- package/packages/aurabase/node_modules/.bin/esbuild +19 -0
- package/packages/aurabase/node_modules/.bin/tsc +22 -0
- package/packages/aurabase/node_modules/.bin/tsserver +22 -0
- package/packages/aurabase/node_modules/.bin/tsup +22 -0
- package/packages/aurabase/node_modules/.bin/tsup-node +22 -0
- package/packages/aurabase/node_modules/.bin/vite +22 -0
- package/packages/aurabase/node_modules/.bin/vitest +22 -0
- package/packages/aurabase/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/aurabase/package.json +80 -0
- package/packages/aurabase/src/AuraClient.ts +237 -0
- package/packages/aurabase/src/index.ts +152 -0
- package/packages/aurabase/src/ssr.ts +156 -0
- package/packages/aurabase/tests/ai-streaming-rag-e2e.test.ts +82 -0
- package/packages/aurabase/tests/ai.test.ts +111 -0
- package/packages/aurabase/tests/auth-admin.test.ts +515 -0
- package/packages/aurabase/tests/auth-e2e.test.ts +135 -0
- package/packages/aurabase/tests/auth-hardening.test.ts +206 -0
- package/packages/aurabase/tests/auth.test.ts +947 -0
- package/packages/aurabase/tests/database.test.ts +230 -0
- package/packages/aurabase/tests/db-types-e2e.test.ts +217 -0
- package/packages/aurabase/tests/dispose.test.ts +23 -0
- package/packages/aurabase/tests/foreign-token.e2e.test.ts +129 -0
- package/packages/aurabase/tests/functions.test.ts +107 -0
- package/packages/aurabase/tests/integration.test.ts +413 -0
- package/packages/aurabase/tests/live-production-validation.js +241 -0
- package/packages/aurabase/tests/live-sdk-production-validation.js +293 -0
- package/packages/aurabase/tests/mocks.ts +139 -0
- package/packages/aurabase/tests/notifications.test.ts +314 -0
- package/packages/aurabase/tests/observability-backup.test.ts +186 -0
- package/packages/aurabase/tests/observability-hook.test.ts +130 -0
- package/packages/aurabase/tests/production-robustness.test.ts +268 -0
- package/packages/aurabase/tests/public-api-surface.test.ts +53 -0
- package/packages/aurabase/tests/query-builder.test.ts +329 -0
- package/packages/aurabase/tests/readme-smoke-e2e.test.ts +231 -0
- package/packages/aurabase/tests/realtime-filter-e2e.test.ts +344 -0
- package/packages/aurabase/tests/refresh-locks.test.ts +210 -0
- package/packages/aurabase/tests/retry-option.test.ts +17 -0
- package/packages/aurabase/tests/rpc-e2e.test.ts +254 -0
- package/packages/aurabase/tests/rs256-local-e2e.test.ts +114 -0
- package/packages/aurabase/tests/rt-alias-public-e2e.test.ts +235 -0
- package/packages/aurabase/tests/rt-http-broadcast-e2e.test.ts +124 -0
- package/packages/aurabase/tests/service-role-guard.test.ts +99 -0
- package/packages/aurabase/tests/ssr.test.ts +91 -0
- package/packages/aurabase/tests/storage-backend-e2e.test.ts +481 -0
- package/packages/aurabase/tests/storage-sdk-parity-e2e.test.ts +104 -0
- package/packages/aurabase/tests/storage-transform-e2e.test.ts +684 -0
- package/packages/aurabase/tests/storage.test.ts +55 -0
- package/packages/aurabase/tests/types/client-generic.test-d.ts +79 -0
- package/packages/aurabase/tests/types/docs-snippets.test-d.ts +571 -0
- package/packages/aurabase/tests/types/error-code.test-d.ts +53 -0
- package/packages/aurabase/tsconfig.json +5 -0
- package/packages/aurabase/tsconfig.test-d.json +5 -0
- package/packages/aurabase/tsup.config.ts +11 -0
- package/packages/aurabase/vitest.config.ts +16 -0
- package/packages/aurabase/vitest.e2e.config.ts +9 -0
- package/packages/auth/LICENSE +21 -0
- package/packages/auth/README.md +215 -0
- package/packages/auth/dist/index.cjs +1175 -0
- package/packages/auth/dist/index.d.cts +397 -0
- package/packages/auth/dist/index.d.ts +397 -0
- package/packages/auth/dist/index.js +1170 -0
- package/packages/auth/node_modules/.bin/esbuild +19 -0
- package/packages/auth/node_modules/.bin/tsc +22 -0
- package/packages/auth/node_modules/.bin/tsserver +22 -0
- package/packages/auth/node_modules/.bin/tsup +22 -0
- package/packages/auth/node_modules/.bin/tsup-node +22 -0
- package/packages/auth/node_modules/.bin/vite +22 -0
- package/packages/auth/node_modules/.bin/vitest +22 -0
- package/packages/auth/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/auth/package.json +61 -0
- package/packages/auth/src/AuthAdminService.ts +149 -0
- package/packages/auth/src/AuthService.ts +1166 -0
- package/packages/auth/src/SessionManager.ts +92 -0
- package/packages/auth/src/index.ts +17 -0
- package/packages/auth/src/jwks.ts +337 -0
- package/packages/auth/src/pkce.ts +27 -0
- package/packages/auth/src/types.ts +89 -0
- package/packages/auth/tests/auth-lifecycle.test.ts +149 -0
- package/packages/auth/tests/detect-session.test.ts +361 -0
- package/packages/auth/tests/getclaims.test.ts +780 -0
- package/packages/auth/tests/is-mfa-challenge.test.ts +27 -0
- package/packages/auth/tests/password-recovery.test.ts +124 -0
- package/packages/auth/tests/pkce.test.ts +192 -0
- package/packages/auth/tests/session-manager.test.ts +103 -0
- package/packages/auth/tests/set-session.test.ts +139 -0
- package/packages/auth/tests/verify-otp.test.ts +153 -0
- package/packages/auth/tsconfig.json +5 -0
- package/packages/auth/tsup.config.ts +11 -0
- package/packages/core/LICENSE +21 -0
- package/packages/core/README.md +132 -0
- package/packages/core/dist/index.cjs +695 -0
- package/packages/core/dist/index.d.cts +1137 -0
- package/packages/core/dist/index.d.ts +1137 -0
- package/packages/core/dist/index.js +673 -0
- package/packages/core/node_modules/.bin/esbuild +22 -0
- package/packages/core/node_modules/.bin/tsc +22 -0
- package/packages/core/node_modules/.bin/tsserver +22 -0
- package/packages/core/node_modules/.bin/tsup +22 -0
- package/packages/core/node_modules/.bin/tsup-node +22 -0
- package/packages/core/node_modules/.bin/vite +22 -0
- package/packages/core/node_modules/.bin/vitest +22 -0
- package/packages/core/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/core/package.json +57 -0
- package/packages/core/src/AuraError.ts +89 -0
- package/packages/core/src/BaseService.ts +44 -0
- package/packages/core/src/client.ts +34 -0
- package/packages/core/src/cookie-utils.ts +42 -0
- package/packages/core/src/fetch.ts +435 -0
- package/packages/core/src/index.ts +22 -0
- package/packages/core/src/retry.ts +63 -0
- package/packages/core/src/serialize.ts +6 -0
- package/packages/core/src/stores/BaseAuthStore.ts +164 -0
- package/packages/core/src/stores/LocalAuthStore.ts +199 -0
- package/packages/core/src/types.ts +1042 -0
- package/packages/core/tests/auth-store.test.ts +300 -0
- package/packages/core/tests/error-code.test.ts +61 -0
- package/packages/core/tests/error.test.ts +24 -0
- package/packages/core/tests/fetch.test.ts +286 -0
- package/packages/core/tests/mocks.ts +139 -0
- package/packages/core/tests/observability.test.ts +86 -0
- package/packages/core/tests/refresh-hardening.test.ts +164 -0
- package/packages/core/tests/refresh-observability.test.ts +111 -0
- package/packages/core/tests/retry.test.ts +106 -0
- package/packages/core/tests/serialize.test.ts +12 -0
- package/packages/core/tests/timeout.test.ts +79 -0
- package/packages/core/tsconfig.json +5 -0
- package/packages/core/tsup.config.ts +11 -0
- package/packages/db/LICENSE +21 -0
- package/packages/db/README.md +152 -0
- package/packages/db/VENDORED.md +93 -0
- package/packages/db/dist/index.cjs +544 -0
- package/packages/db/dist/index.d.cts +1111 -0
- package/packages/db/dist/index.d.ts +1111 -0
- package/packages/db/dist/index.js +541 -0
- package/packages/db/node_modules/.bin/esbuild +19 -0
- package/packages/db/node_modules/.bin/tsc +22 -0
- package/packages/db/node_modules/.bin/tsserver +22 -0
- package/packages/db/node_modules/.bin/tsup +22 -0
- package/packages/db/node_modules/.bin/tsup-node +22 -0
- package/packages/db/node_modules/.bin/vite +22 -0
- package/packages/db/node_modules/.bin/vitest +22 -0
- package/packages/db/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/db/package.json +62 -0
- package/packages/db/src/DatabaseService.ts +170 -0
- package/packages/db/src/QueryBuilder.ts +830 -0
- package/packages/db/src/index.ts +2 -0
- package/packages/db/src/pgrst-types/common/common.ts +86 -0
- package/packages/db/src/pgrst-types/common/rpc.ts +151 -0
- package/packages/db/src/pgrst-types/feature-flags.ts +20 -0
- package/packages/db/src/pgrst-types/types.ts +134 -0
- package/packages/db/src/select-query-parser/parser.ts +479 -0
- package/packages/db/src/select-query-parser/result.ts +553 -0
- package/packages/db/src/select-query-parser/types.ts +132 -0
- package/packages/db/src/select-query-parser/utils.ts +707 -0
- package/packages/db/tests/filters.test.ts +81 -0
- package/packages/db/tests/mutations-filtered.e2e.test.ts +132 -0
- package/packages/db/tests/mutations-filtered.test.ts +188 -0
- package/packages/db/tests/order.test.ts +45 -0
- package/packages/db/tests/rpc.test.ts +41 -0
- package/packages/db/tests/scale/build-large-schema.ts +94 -0
- package/packages/db/tests/scale/scale-compile.test.ts +167 -0
- package/packages/db/tests/schema.test.ts +77 -0
- package/packages/db/tests/single-accept.e2e.test.ts +123 -0
- package/packages/db/tests/single.test.ts +211 -0
- package/packages/db/tests/types/filters.test-d.ts +52 -0
- package/packages/db/tests/types/fixtures.ts +40 -0
- package/packages/db/tests/types/from-views.test-d.ts +18 -0
- package/packages/db/tests/types/mutations.test-d.ts +23 -0
- package/packages/db/tests/types/rpc.test-d.ts +60 -0
- package/packages/db/tests/types/schema-shape.test-d.ts +8 -0
- package/packages/db/tests/types/select-inference.test-d.ts +38 -0
- package/packages/db/tests/vendored/fixtures.ts +83 -0
- package/packages/db/tests/vendored/get-result.test-d.ts +75 -0
- package/packages/db/tsconfig.json +5 -0
- package/packages/db/tsconfig.test-d.json +5 -0
- package/packages/db/tsup.config.ts +11 -0
- package/packages/db/vitest.config.ts +8 -0
- package/packages/functions/LICENSE +21 -0
- package/packages/functions/README.md +96 -0
- package/packages/functions/dist/index.cjs +173 -0
- package/packages/functions/dist/index.d.cts +81 -0
- package/packages/functions/dist/index.d.ts +81 -0
- package/packages/functions/dist/index.js +168 -0
- package/packages/functions/node_modules/.bin/esbuild +19 -0
- package/packages/functions/node_modules/.bin/tsc +22 -0
- package/packages/functions/node_modules/.bin/tsserver +22 -0
- package/packages/functions/node_modules/.bin/tsup +22 -0
- package/packages/functions/node_modules/.bin/tsup-node +22 -0
- package/packages/functions/node_modules/.bin/vite +22 -0
- package/packages/functions/node_modules/.bin/vitest +22 -0
- package/packages/functions/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/functions/package.json +60 -0
- package/packages/functions/src/FunctionsService.ts +188 -0
- package/packages/functions/src/errors.ts +70 -0
- package/packages/functions/src/index.ts +6 -0
- package/packages/functions/tests/invoke.test.ts +97 -0
- package/packages/functions/tests/response-type-errors.test.ts +135 -0
- package/packages/functions/tsconfig.json +5 -0
- package/packages/functions/tsup.config.ts +11 -0
- package/packages/gen/LICENSE +21 -0
- package/packages/gen/README.md +84 -0
- package/packages/gen/dist/cli.cjs +334 -0
- package/packages/gen/dist/cli.d.cts +1 -0
- package/packages/gen/dist/cli.d.ts +1 -0
- package/packages/gen/dist/cli.js +332 -0
- package/packages/gen/dist/index.cjs +257 -0
- package/packages/gen/dist/index.d.cts +12 -0
- package/packages/gen/dist/index.d.ts +12 -0
- package/packages/gen/dist/index.js +255 -0
- package/packages/gen/node_modules/.bin/esbuild +19 -0
- package/packages/gen/node_modules/.bin/tsc +22 -0
- package/packages/gen/node_modules/.bin/tsserver +22 -0
- package/packages/gen/node_modules/.bin/tsup +22 -0
- package/packages/gen/node_modules/.bin/tsup-node +22 -0
- package/packages/gen/node_modules/.bin/vite +22 -0
- package/packages/gen/node_modules/.bin/vitest +22 -0
- package/packages/gen/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/gen/package.json +66 -0
- package/packages/gen/src/cli.ts +67 -0
- package/packages/gen/src/generate.ts +0 -0
- package/packages/gen/src/index.ts +2 -0
- package/packages/gen/tests/compile.test.ts +213 -0
- package/packages/gen/tests/e2e.test.ts +130 -0
- package/packages/gen/tests/generate.test.ts +396 -0
- package/packages/gen/tsconfig.json +5 -0
- package/packages/gen/tsup.config.ts +11 -0
- package/packages/notifications/LICENSE +21 -0
- package/packages/notifications/README.md +134 -0
- package/packages/notifications/dist/index.cjs +128 -0
- package/packages/notifications/dist/index.d.cts +81 -0
- package/packages/notifications/dist/index.d.ts +81 -0
- package/packages/notifications/dist/index.js +125 -0
- package/packages/notifications/node_modules/.bin/esbuild +19 -0
- package/packages/notifications/node_modules/.bin/tsc +22 -0
- package/packages/notifications/node_modules/.bin/tsserver +22 -0
- package/packages/notifications/node_modules/.bin/tsup +22 -0
- package/packages/notifications/node_modules/.bin/tsup-node +22 -0
- package/packages/notifications/node_modules/.bin/vite +22 -0
- package/packages/notifications/node_modules/.bin/vitest +22 -0
- package/packages/notifications/package.json +60 -0
- package/packages/notifications/src/NotificationsService.ts +230 -0
- package/packages/notifications/src/index.ts +19 -0
- package/packages/notifications/tsconfig.json +5 -0
- package/packages/notifications/tsup.config.ts +11 -0
- package/packages/realtime/LICENSE +21 -0
- package/packages/realtime/README.md +183 -0
- package/packages/realtime/dist/index.cjs +977 -0
- package/packages/realtime/dist/index.d.cts +259 -0
- package/packages/realtime/dist/index.d.ts +259 -0
- package/packages/realtime/dist/index.js +973 -0
- package/packages/realtime/node_modules/.bin/esbuild +19 -0
- package/packages/realtime/node_modules/.bin/tsc +22 -0
- package/packages/realtime/node_modules/.bin/tsserver +22 -0
- package/packages/realtime/node_modules/.bin/tsup +22 -0
- package/packages/realtime/node_modules/.bin/tsup-node +22 -0
- package/packages/realtime/node_modules/.bin/vite +22 -0
- package/packages/realtime/node_modules/.bin/vitest +22 -0
- package/packages/realtime/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/realtime/package.json +60 -0
- package/packages/realtime/src/AuraChannel.ts +485 -0
- package/packages/realtime/src/HeartbeatManager.ts +73 -0
- package/packages/realtime/src/RealtimeService.ts +505 -0
- package/packages/realtime/src/columnFilter.ts +301 -0
- package/packages/realtime/src/index.ts +4 -0
- package/packages/realtime/tests/ack-routing.test.ts +81 -0
- package/packages/realtime/tests/column-filter.test.ts +144 -0
- package/packages/realtime/tests/dispatch.test.ts +191 -0
- package/packages/realtime/tests/heartbeat.test.ts +67 -0
- package/packages/realtime/tests/http-broadcast.test.ts +68 -0
- package/packages/realtime/tests/realtime-token.test.ts +43 -0
- package/packages/realtime/tests/reconnect-race.test.ts +149 -0
- package/packages/realtime/tests/ref-id.test.ts +34 -0
- package/packages/realtime/tests/set-auth.test.ts +70 -0
- package/packages/realtime/tsconfig.json +5 -0
- package/packages/realtime/tsup.config.ts +11 -0
- package/packages/storage/LICENSE +21 -0
- package/packages/storage/README.md +141 -0
- package/packages/storage/dist/index.cjs +333 -0
- package/packages/storage/dist/index.d.cts +185 -0
- package/packages/storage/dist/index.d.ts +185 -0
- package/packages/storage/dist/index.js +329 -0
- package/packages/storage/node_modules/.bin/esbuild +19 -0
- package/packages/storage/node_modules/.bin/tsc +22 -0
- package/packages/storage/node_modules/.bin/tsserver +22 -0
- package/packages/storage/node_modules/.bin/tsup +22 -0
- package/packages/storage/node_modules/.bin/tsup-node +22 -0
- package/packages/storage/node_modules/.bin/vite +22 -0
- package/packages/storage/node_modules/.bin/vitest +22 -0
- package/packages/storage/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -0
- package/packages/storage/package.json +60 -0
- package/packages/storage/src/DownloadBuilder.ts +60 -0
- package/packages/storage/src/StorageService.ts +323 -0
- package/packages/storage/src/index.ts +2 -0
- package/packages/storage/src/path.ts +35 -0
- package/packages/storage/src/transform.ts +15 -0
- package/packages/storage/tests/download.test.ts +64 -0
- package/packages/storage/tests/parity.test.ts +154 -0
- package/packages/storage/tests/path.test.ts +87 -0
- package/packages/storage/tests/transform.test.ts +79 -0
- package/packages/storage/tsconfig.json +5 -0
- package/packages/storage/tsup.config.ts +11 -0
- package/pnpm-workspace.yaml +24 -0
- 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 };
|