{"_id":"@auth-strategy-manager/supabase","_rev":"4-b226e6b49086bb04182fcb8b410c56aa","name":"@auth-strategy-manager/supabase","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"@auth-strategy-manager/supabase","version":"1.0.0","keywords":["authentication","authorization","strategy","supabase","auth"],"author":{"name":"azarov-serge","email":"s.a.azarov@gmail.com"},"license":"ISC","_id":"@auth-strategy-manager/supabase@1.0.0","maintainers":[{"name":"azarov-serge","email":"s.a.azarov@gmail.com"}],"homepage":"https://github.com/azarov-serge/auth-strategy-manager#readme","bugs":{"url":"https://github.com/azarov-serge/auth-strategy-manager/issues"},"dist":{"shasum":"5685d00d7611fa89e4452a490077d4246514628d","tarball":"https://registry.npmjs.org/@auth-strategy-manager/supabase/-/supabase-1.0.0.tgz","fileCount":11,"integrity":"sha512-cilOCzOnaiClNQeZTtsj+BaCLHqD2ZUVUTiHPyx9IkVIWrCbtUFMWeF/oNPD2g+kf1PksXxQVlFzkSw8xEgoOg==","signatures":[{"sig":"MEYCIQDxCfWaUCagDBJP7dsldi9WzhdMPCpTmRmD6wabU/shVQIhAIdVRewhUZrETACYEL0Sd8XTmEoTAGEetNp4bJxlncxI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18769},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ed046751c5faa82ba864a498a47413280848511","scripts":{"build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build"},"_npmUser":{"name":"azarov-serge","email":"s.a.azarov@gmail.com"},"repository":{"url":"git+https://github.com/azarov-serge/auth-strategy-manager.git","type":"git"},"_npmVersion":"10.5.0","description":"Supabase strategy for auth-strategy-manager","directories":{},"_nodeVersion":"20.12.2","dependencies":{"@supabase/supabase-js":"2.95.3","@auth-strategy-manager/core":"^1.0.6"},"_hasShrinkwrap":false,"peerDependencies":{"@supabase/supabase-js":"2.95.3"},"_npmOperationalInternal":{"tmp":"tmp/supabase_1.0.0_1770642051490_0.8682625925150909","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@auth-strategy-manager/supabase","version":"2.0.1","description":"Supabase strategy for auth-strategy-manager","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","prepare":"npm run build","prepublishOnly":"npm run build"},"dependencies":{"@supabase/supabase-js":"2.95.3"},"peerDependencies":{"@auth-strategy-manager/core":"^2.0.0","@supabase/supabase-js":"2.95.3"},"keywords":["authentication","authorization","strategy","supabase","auth"],"author":{"name":"azarov-serge","email":"s.a.azarov@gmail.com"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/azarov-serge/auth-strategy-manager.git"},"bugs":{"url":"https://github.com/azarov-serge/auth-strategy-manager/issues"},"homepage":"https://github.com/azarov-serge/auth-strategy-manager#readme","_id":"@auth-strategy-manager/supabase@2.0.1","gitHead":"01eedf0f7d55d9bc7cb32e2a5796da1883861f3b","_nodeVersion":"20.12.2","_npmVersion":"10.5.0","dist":{"integrity":"sha512-1HzM2tJAv4pK+jd1MM5VMl3nHUWdpnjAImL0Fp1Wd+jrzXhD+BrYNwTgY2JlGj63xgFkRJlK8xLrglZDhPOnVg==","shasum":"a4ae33575a6bc2fbc2c997577cdd765c331ced82","tarball":"https://registry.npmjs.org/@auth-strategy-manager/supabase/-/supabase-2.0.1.tgz","fileCount":12,"unpackedSize":27171,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD/1EsnT1qVxVHTnYf0AZgdS6UoOwYcz2SIHHVrHn6RCwIgAOQV1/RjVqvyceN3U4PGJO8PvOJbn7RNx5kYwKh/ukA="}]},"_npmUser":{"name":"azarov-serge","email":"s.a.azarov@gmail.com"},"directories":{},"maintainers":[{"name":"azarov-serge","email":"s.a.azarov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/supabase_2.0.1_1774456023577_0.9738541052279832"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-09T13:00:51.385Z","modified":"2026-03-25T16:27:03.883Z","1.0.0":"2026-02-09T13:00:51.639Z","2.0.0":"2026-03-25T15:45:50.105Z","2.0.1":"2026-03-25T16:27:03.737Z"},"bugs":{"url":"https://github.com/azarov-serge/auth-strategy-manager/issues"},"author":{"name":"azarov-serge","email":"s.a.azarov@gmail.com"},"license":"ISC","homepage":"https://github.com/azarov-serge/auth-strategy-manager#readme","keywords":["authentication","authorization","strategy","supabase","auth"],"repository":{"type":"git","url":"git+https://github.com/azarov-serge/auth-strategy-manager.git"},"description":"Supabase strategy for auth-strategy-manager","maintainers":[{"name":"azarov-serge","email":"s.a.azarov@gmail.com"}],"readme":"# @auth-strategy-manager/supabase\n\nSupabase strategy for [auth-strategy-manager](https://github.com/azarov-serge/auth-strategy-manager). **v2** targets `@auth-strategy-manager/core` **^2.0.0**.\n\n## Documentation in other languages\n\n- [Russian (Русский)](README_RU.md)\n- English (this file)\n\n## Installation\n\n```bash\nnpm install @auth-strategy-manager/supabase @auth-strategy-manager/core @supabase/supabase-js\n```\n\n## Usage\n\nUse `AuthStrategyManager` from **core** for persistence (`AuthStorageManager`, strategy name, tokens). `SupabaseStrategy` uses the Supabase client and returns `AuthManagerData` from `checkAuth`, `signIn`, `signUp`, and `refreshToken`.\n\n```typescript\nimport { AuthStrategyManager } from '@auth-strategy-manager/core';\nimport { SupabaseStrategy } from '@auth-strategy-manager/supabase';\nimport { createClient } from '@supabase/supabase-js';\n\nconst supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);\n\nconst supabaseStrategy = new SupabaseStrategy({\n  supabase,\n  name: 'supabase',\n  signInUrl: 'https://myapp.com/login',\n});\n\nconst authManager = new AuthStrategyManager([supabaseStrategy]);\n\nconst state = await authManager.checkAuth();\nawait authManager.signIn({ email: 'user@example.com', password: 'password123' });\nawait authManager.signUp({ email: 'user@example.com', password: 'password123', username: 'user' });\nawait authManager.refreshToken();\nawait authManager.signOut();\n```\n\n### Before you test (integration checklist)\n\n- Install **`@auth-strategy-manager/core@^2.0.0`** together with **`@auth-strategy-manager/supabase@^2.0.0`** (peer dependency).\n- Prefer **`authManager.checkAuth()` / `signIn()` / `signUp()` / `refreshToken()` / `signOut()`** so `AuthStorageManager` stays in sync with `AuthManagerData`. Calling only `supabaseStrategy.*` skips manager persistence.\n- Strategy name and tokens are owned by **core** `AuthStrategyManager` / `AuthStorageManager`.\n- With **multiple strategies**, call **`authManager.use('supabase')`** (same string as `name` in config, default is `'supabase'`).\n\n## Breaking changes from v1\n\n- **`checkAuth`** returns `Promise<AuthManagerData>` (not `boolean`). Prefer `authManager.checkAuth()` so storage stays in sync.\n- **`refreshToken`** returns `Promise<AuthManagerData>` (not `void`).\n- **`signIn` / `signUp`** merge **`AuthManagerData`** into the returned object (Supabase payload plus `isAuthenticated`, `strategyName`, `accessToken`, `refreshToken`).\n- This package does not duplicate active-strategy or auth flags — use **core** for persistence.\n- **Peer dependency**: install `@auth-strategy-manager/core` **^2.0.0** yourself; it is no longer a direct dependency of this package.\n\n## Configuration\n\n### SupabaseConfig\n\n```typescript\ntype SupabaseConfig = {\n  supabase: SupabaseClient;\n  name?: string;\n  /** URL for redirecting to the authorization page */\n  signInUrl?: string;\n};\n```\n\n### Parameters\n\n- `supabase` — Supabase client instance\n- `name` — Strategy name (default: `'supabase'`)\n- `signInUrl` — URL for redirect after logout / custom flows\n\nToken persistence is configured on **core** `AuthStrategyManager` via `AuthStorageManager`, not on this strategy.\n\n## API\n\n### SupabaseStrategy\n\n#### Constructor\n\n```typescript\nconstructor(config: SupabaseConfig)\n```\n\n#### Methods\n\n- `checkAuth(): Promise<AuthManagerData>`\n- `signIn<T, D>(config?: D): Promise<T>` — expects `{ email, password }`; return type merges `AuthResponse` with `AuthManagerData`\n- `signUp<T, D>(config?: D): Promise<T>` — expects `{ email, password, username }`; same merge (session may be absent until email confirmation)\n- `signOut(): Promise<void>`\n- `refreshToken<T>(args?: T): Promise<AuthManagerData>`\n- `clear(): void` — clears in-memory token mirror on the strategy; prefer `authManager.clear()` for full storage sync\n- `getCurrentUserId(): Promise<string | null>`\n- `getSessionInfo(): Promise<SessionInfo>`\n\n#### Properties\n\n- `name`, `supabase`, `signInUrl`\n- `token` (read-only) / `isAuthenticated` — mirror of the last known session from Supabase operations (can be stale if the Supabase session changes outside of this strategy; call `authManager.checkAuth()` / `supabaseStrategy.checkAuth()` to re-sync)\n- `startUrl` — get/set in-memory redirect base (for manager alignment)\n\n## License\n\nISC\n","readmeFilename":"README.md"}