@absolutejs/auth 0.41.0 → 0.43.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.
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/adaptive/postgresStores.ts", "../../src/stores/postgres.ts", "../../src/apikeys/postgresStores.ts", "../../src/audit/postgresAuditStore.ts", "../../src/credentials/postgresCredentialStore.ts", "../../src/fga/postgresStores.ts", "../../src/linkedProviders/neonStores.ts", "../../node_modules/citra/dist/index.js", "../../src/lockout/postgresLockoutStore.ts", "../../src/mfa/postgresMfaStore.ts", "../../src/oidc/postgresStores.ts", "../../src/organizations/postgresOrganizationStore.ts", "../../src/passwordless/postgresPasswordlessTokenStore.ts", "../../src/portal/postgresSetupSessionStore.ts", "../../src/roles/postgresRoleStore.ts", "../../src/scim/postgresScimTokenStore.ts", "../../src/session/neonStore.ts", "../../src/sso/postgresSamlServiceProviderStore.ts", "../../src/sso/postgresSsoConnectionStore.ts", "../../src/vc/postgresVcStores.ts", "../../src/vault/postgresVaultStore.ts", "../../src/webauthn/postgresWebAuthnCredentialStore.ts", "../../src/webhooks/postgresStore.ts", "../../src/migrations/generate.ts", "../../src/migrations/runner.ts", "../../src/migrations/index.ts", "../../src/cli/migrate.ts"],
3
+ "sources": ["../../src/cli/import/index.ts", "../../src/cli/import/auth0.ts", "../../src/cli/import/clerk.ts", "../../src/cli/import/lucia.ts", "../../src/cli/import/nextauth.ts", "../../src/cli/import/supabase.ts", "../../src/adaptive/postgresStores.ts", "../../src/stores/postgres.ts", "../../src/apikeys/postgresStores.ts", "../../src/audit/postgresAuditStore.ts", "../../src/credentials/postgresCredentialStore.ts", "../../src/fga/postgresStores.ts", "../../src/linkedProviders/neonStores.ts", "../../node_modules/citra/dist/index.js", "../../src/lockout/postgresLockoutStore.ts", "../../src/mfa/postgresMfaStore.ts", "../../src/oidc/postgresStores.ts", "../../src/organizations/postgresOrganizationStore.ts", "../../src/passwordless/postgresPasswordlessTokenStore.ts", "../../src/portal/postgresSetupSessionStore.ts", "../../src/roles/postgresRoleStore.ts", "../../src/scim/postgresScimTokenStore.ts", "../../src/session/neonStore.ts", "../../src/sso/postgresSamlServiceProviderStore.ts", "../../src/sso/postgresSsoConnectionStore.ts", "../../src/vc/postgresVcStores.ts", "../../src/vault/postgresVaultStore.ts", "../../src/webauthn/postgresWebAuthnCredentialStore.ts", "../../src/webhooks/postgresStore.ts", "../../src/migrations/generate.ts", "../../src/migrations/runner.ts", "../../src/migrations/index.ts", "../../src/cli/migrate.ts"],
4
4
  "sourcesContent": [
5
+ "// Dispatcher for the `import` subcommand. Picks the right per-source\n// parser (`auth0` / `clerk` / `supabase` / `lucia` / `nextauth`), runs\n// it against the export file, and writes the resulting users +\n// identities into the @absolutejs/auth schema via Postgres.\n//\n// One subcommand entry point, one dispatch table, one writer. Adding a\n// new source means: drop a `<source>.ts` parser that returns\n// `ImportResult`, register it here, done.\n\nimport { neon } from '@neondatabase/serverless';\nimport { auth0Importer } from './auth0';\nimport { clerkImporter } from './clerk';\nimport { luciaImporter } from './lucia';\nimport { nextauthImporter } from './nextauth';\nimport { supabaseImporter } from './supabase';\nimport type { ImportResult, Importer } from './types';\n\nexport const importers: Record<string, Importer> = {\n\tauth0: auth0Importer,\n\tclerk: clerkImporter,\n\tlucia: luciaImporter,\n\tnextauth: nextauthImporter,\n\tsupabase: supabaseImporter\n};\n\nexport type ImportOptions = {\n\tcommit: boolean;\n\tdatabaseUrl: string;\n};\n\n// Write the parsed records into the DB. Pre-flight by checking the\n// `users` + `auth_identities` tables exist (the consumer should have\n// run `bunx absolute-auth migrate` first). The writer assigns a fresh\n// UUID `sub` to each imported user — we don't reuse the source's\n// primary key as our `sub`, because most sources hand out short opaque\n// strings that aren't UUIDs.\nexport const runImport = async (\n\tresult: ImportResult,\n\toptions: ImportOptions\n) => {\n\tconst sql = neon(options.databaseUrl);\n\n\t// Map source externalId → fresh UUID sub so we can link identities\n\t// after the user inserts land.\n\tconst subByExternalId = new Map<string, string>();\n\tfor (const user of result.users) {\n\t\tsubByExternalId.set(user.externalId, crypto.randomUUID());\n\t}\n\n\tif (!options.commit) {\n\t\t// Dry run: just summarise.\n\t\treturn {\n\t\t\tidentityCount: result.identities.length,\n\t\t\tuserCount: result.users.length\n\t\t};\n\t}\n\n\t// Real run: insert users one at a time (per-source uniqueness keys\n\t// vary; INSERT ... ON CONFLICT DO NOTHING on email keeps the writer\n\t// idempotent for repeated runs).\n\tfor (const user of result.users) {\n\t\tconst sub = subByExternalId.get(user.externalId);\n\t\tawait sql`\n\t\t\tINSERT INTO users (sub, email, password, family_name, given_name, email_verified, created_at)\n\t\t\tVALUES (\n\t\t\t\t${sub},\n\t\t\t\t${user.email.toLowerCase().trim()},\n\t\t\t\t${user.passwordHash ?? null},\n\t\t\t\t${user.familyName ?? null},\n\t\t\t\t${user.givenName ?? null},\n\t\t\t\t${user.emailVerified},\n\t\t\t\tto_timestamp(${user.createdAtMs} / 1000.0)\n\t\t\t)\n\t\t\tON CONFLICT (email) DO NOTHING\n\t\t`;\n\t}\n\n\t// Insert identities. Skip rows whose source user we didn't insert\n\t// (e.g. email-collision dedupe). The lookup goes through email\n\t// because `subByExternalId` is in-process — we need to resolve the\n\t// canonical sub from whatever's in the DB now.\n\tlet insertedIdentities = 0;\n\tfor (const identity of result.identities) {\n\t\tconst sub = subByExternalId.get(identity.userExternalId);\n\t\tif (sub === undefined) continue;\n\t\tconst inserted = await sql`\n\t\t\tINSERT INTO auth_identities (id, auth_provider, provider_subject, user_sub, metadata)\n\t\t\tVALUES (\n\t\t\t\t${`${identity.authProvider}:${identity.providerSubject}`},\n\t\t\t\t${identity.authProvider},\n\t\t\t\t${identity.providerSubject},\n\t\t\t\t${sub},\n\t\t\t\t${identity.metadata ?? {}}\n\t\t\t)\n\t\t\tON CONFLICT (auth_provider, provider_subject) DO NOTHING\n\t\t\tRETURNING id\n\t\t`;\n\t\tif (Array.isArray(inserted) && inserted.length > 0) insertedIdentities++;\n\t}\n\n\treturn {\n\t\tidentityCount: insertedIdentities,\n\t\tuserCount: result.users.length\n\t};\n};\n",
6
+ "// Auth0 user export importer.\n//\n// Auth0's user export comes as a JSON or NDJSON file (depending on which\n// export endpoint you used). Each line/object is a user with this shape\n// (fields you'll always see):\n//\n// {\n// \"user_id\": \"auth0|663c...\",\n// \"email\": \"alice@example.com\",\n// \"email_verified\": true,\n// \"name\": \"Alice\",\n// \"given_name\": \"Alice\",\n// \"family_name\": \"Smith\",\n// \"created_at\": \"2024-03-12T...\",\n// \"identities\": [\n// { \"provider\": \"auth0\", \"user_id\": \"663c...\", \"connection\": \"Username-Password-Authentication\" },\n// { \"provider\": \"google-oauth2\", \"user_id\": \"11839...\", ...}\n// ],\n// \"password_hash\": \"$2b$10$...\" // present if export-with-passwords was enabled\n// }\n//\n// Get the export via: Auth0 dashboard → User Management → Users → Export.\n// Or programmatically: POST /api/v2/jobs/users-exports with fields=password_hash.\n// Auth0 hashes with bcrypt by default; verbatim copy works.\n\nimport { readFile } from 'node:fs/promises';\nimport type { ImportResult, Importer } from './types';\n\ntype Auth0Identity = {\n\tconnection?: string;\n\tprovider: string;\n\tuser_id: string;\n};\n\ntype Auth0User = {\n\tcreated_at?: string;\n\temail: string;\n\temail_verified?: boolean;\n\tfamily_name?: string;\n\tgiven_name?: string;\n\tidentities?: Auth0Identity[];\n\tname?: string;\n\tpassword_hash?: string;\n\tuser_id: string;\n};\n\nconst parseUsersFromText = (text: string): Auth0User[] => {\n\tconst trimmed = text.trim();\n\tif (trimmed.startsWith('[')) {\n\t\treturn JSON.parse(trimmed) as Auth0User[];\n\t}\n\n\t// NDJSON — one user per line.\n\treturn trimmed\n\t\t.split('\\n')\n\t\t.filter((line) => line.length > 0)\n\t\t.map((line) => JSON.parse(line) as Auth0User);\n};\n\nexport const auth0Importer: Importer = {\n\tsource: 'auth0',\n\tparse: async (path: string): Promise<ImportResult> => {\n\t\tconst text = await readFile(path, 'utf-8');\n\t\tconst auth0Users = parseUsersFromText(text);\n\n\t\tconst users = auth0Users.map((raw) => ({\n\t\t\tcreatedAtMs:\n\t\t\t\traw.created_at === undefined\n\t\t\t\t\t? Date.now()\n\t\t\t\t\t: Date.parse(raw.created_at),\n\t\t\temail: raw.email,\n\t\t\temailVerified: raw.email_verified ?? false,\n\t\t\texternalId: raw.user_id,\n\t\t\tfamilyName: raw.family_name,\n\t\t\tgivenName: raw.given_name,\n\t\t\tpasswordHash: raw.password_hash,\n\t\t\tpasswordHashAlgo:\n\t\t\t\traw.password_hash?.startsWith('$2b$') ||\n\t\t\t\traw.password_hash?.startsWith('$2a$') ||\n\t\t\t\traw.password_hash?.startsWith('$2y$')\n\t\t\t\t\t? ('bcrypt' as const)\n\t\t\t\t\t: undefined\n\t\t}));\n\n\t\t// Auth0 always has at least one identity (the auth0 connection\n\t\t// itself); skip that one. Real OAuth identities are\n\t\t// google-oauth2 / github / apple / etc.\n\t\tconst identities = auth0Users.flatMap((raw) =>\n\t\t\t(raw.identities ?? [])\n\t\t\t\t.filter((identity) => identity.provider !== 'auth0')\n\t\t\t\t.map((identity) => ({\n\t\t\t\t\tauthProvider: identity.provider.replace('-oauth2', ''),\n\t\t\t\t\tcreatedAtMs:\n\t\t\t\t\t\traw.created_at === undefined\n\t\t\t\t\t\t\t? Date.now()\n\t\t\t\t\t\t\t: Date.parse(raw.created_at),\n\t\t\t\t\tmetadata:\n\t\t\t\t\t\tidentity.connection === undefined\n\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t: { connection: identity.connection },\n\t\t\t\t\tproviderSubject: identity.user_id,\n\t\t\t\t\tuserExternalId: raw.user_id\n\t\t\t\t}))\n\t\t);\n\n\t\treturn { identities, source: 'auth0', users };\n\t}\n};\n",
7
+ "// Clerk user export importer.\n//\n// Clerk doesn't expose a CSV export from the dashboard (as of 2026), but\n// you can iterate every user via GET /v1/users?limit=500&offset=N from\n// the backend API. The shape is:\n//\n// {\n// \"id\": \"user_2N...\",\n// \"email_addresses\": [{ \"email_address\": \"alice@x\", \"verification\": { \"status\": \"verified\" } }],\n// \"external_accounts\": [{ \"provider\": \"oauth_google\", \"external_id\": \"1183...\" }],\n// \"first_name\": \"Alice\",\n// \"last_name\": \"Smith\",\n// \"created_at\": 1709999999000,\n// \"password_enabled\": true,\n// \"password_digest\": \"$argon2id$...\" // requires the password-export beta\n// }\n//\n// Save the concatenated result as a single JSON array file → pass to\n// this importer. Clerk uses argon2id by default; verbatim copy works.\n\nimport { readFile } from 'node:fs/promises';\nimport type { ImportResult, Importer } from './types';\n\ntype ClerkEmail = {\n\temail_address: string;\n\tverification?: { status?: string };\n};\n\ntype ClerkExternalAccount = {\n\texternal_id?: string;\n\tprovider: string;\n\tprovider_user_id?: string;\n};\n\ntype ClerkUser = {\n\tcreated_at?: number;\n\temail_addresses?: ClerkEmail[];\n\texternal_accounts?: ClerkExternalAccount[];\n\tfirst_name?: string;\n\tid: string;\n\tlast_name?: string;\n\tpassword_digest?: string;\n\tprimary_email_address_id?: string;\n};\n\nconst stripOauthPrefix = (provider: string) =>\n\tprovider.startsWith('oauth_') ? provider.slice('oauth_'.length) : provider;\n\nexport const clerkImporter: Importer = {\n\tsource: 'clerk',\n\tparse: async (path: string): Promise<ImportResult> => {\n\t\tconst text = await readFile(path, 'utf-8');\n\t\tconst clerkUsers: ClerkUser[] = JSON.parse(text);\n\n\t\tconst users = clerkUsers\n\t\t\t.filter(\n\t\t\t\t(raw) =>\n\t\t\t\t\traw.email_addresses !== undefined &&\n\t\t\t\t\traw.email_addresses.length > 0\n\t\t\t)\n\t\t\t.map((raw) => {\n\t\t\t\tconst primary =\n\t\t\t\t\traw.email_addresses?.find(\n\t\t\t\t\t\t(e) =>\n\t\t\t\t\t\t\traw.primary_email_address_id === undefined ||\n\t\t\t\t\t\t\te.email_address.length > 0\n\t\t\t\t\t) ?? raw.email_addresses?.[0];\n\n\t\t\t\treturn {\n\t\t\t\t\tcreatedAtMs: raw.created_at ?? Date.now(),\n\t\t\t\t\temail: primary?.email_address ?? '',\n\t\t\t\t\temailVerified: primary?.verification?.status === 'verified',\n\t\t\t\t\texternalId: raw.id,\n\t\t\t\t\tfamilyName: raw.last_name,\n\t\t\t\t\tgivenName: raw.first_name,\n\t\t\t\t\tpasswordHash: raw.password_digest,\n\t\t\t\t\tpasswordHashAlgo: raw.password_digest?.startsWith('$argon2id')\n\t\t\t\t\t\t? ('argon2id' as const)\n\t\t\t\t\t\t: raw.password_digest?.startsWith('$2')\n\t\t\t\t\t\t\t? ('bcrypt' as const)\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst identities = clerkUsers.flatMap((raw) =>\n\t\t\t(raw.external_accounts ?? []).map((account) => ({\n\t\t\t\tauthProvider: stripOauthPrefix(account.provider),\n\t\t\t\tcreatedAtMs: raw.created_at ?? Date.now(),\n\t\t\t\tproviderSubject:\n\t\t\t\t\taccount.provider_user_id ?? account.external_id ?? '',\n\t\t\t\tuserExternalId: raw.id\n\t\t\t}))\n\t\t);\n\n\t\treturn { identities, source: 'clerk', users };\n\t}\n};\n",
8
+ "// Lucia v3 user importer.\n//\n// Lucia (deprecated 2024) keeps users in `user` + key/identity rows in\n// `key` (or `oauth_account` depending on adapter). Export both tables\n// as JSON arrays and concatenate:\n//\n// {\n// \"users\": [{ \"id\": \"abc...\", \"email\": \"alice@x\", \"created_at\": 17... }, …],\n// \"keys\": [\n// { \"id\": \"email:alice@x\", \"user_id\": \"abc...\", \"hashed_password\": \"$argon2id$...\" },\n// { \"id\": \"google:118392...\", \"user_id\": \"abc...\" }\n// ]\n// }\n//\n// Lucia's default hash is argon2id from `oslo/password`; verbatim copy\n// works.\n\nimport { readFile } from 'node:fs/promises';\nimport type { ImportResult, Importer } from './types';\n\ntype LuciaUser = {\n\tcreated_at?: number | string;\n\temail?: string;\n\tid: string;\n};\n\ntype LuciaKey = {\n\thashed_password?: string;\n\tid: string;\n\tuser_id: string;\n};\n\ntype LuciaExport = {\n\tkeys?: LuciaKey[];\n\tusers: LuciaUser[];\n};\n\nconst toMs = (value: number | string | undefined) => {\n\tif (value === undefined) return Date.now();\n\tif (typeof value === 'number') return value < 1e12 ? value * 1000 : value;\n\n\treturn Date.parse(value);\n};\n\nexport const luciaImporter: Importer = {\n\tsource: 'lucia',\n\tparse: async (path: string): Promise<ImportResult> => {\n\t\tconst text = await readFile(path, 'utf-8');\n\t\tconst parsed: LuciaExport = JSON.parse(text);\n\n\t\t// Lucia's keys are formatted as `provider:subject`. The `email:`\n\t\t// keys carry the password hash; OAuth keys (`google:`, `github:`,\n\t\t// …) are the identities.\n\t\tconst passwordByUserId = new Map<string, string | undefined>();\n\t\tconst oauthKeys: LuciaKey[] = [];\n\t\tfor (const key of parsed.keys ?? []) {\n\t\t\tconst separator = key.id.indexOf(':');\n\t\t\tif (separator < 0) continue;\n\t\t\tconst provider = key.id.slice(0, separator);\n\t\t\tif (provider === 'email' || provider === 'username') {\n\t\t\t\tpasswordByUserId.set(key.user_id, key.hashed_password);\n\t\t\t} else {\n\t\t\t\toauthKeys.push(key);\n\t\t\t}\n\t\t}\n\n\t\tconst users = parsed.users.map((raw) => ({\n\t\t\tcreatedAtMs: toMs(raw.created_at),\n\t\t\temail: raw.email ?? '',\n\t\t\temailVerified: true,\n\t\t\texternalId: raw.id,\n\t\t\tpasswordHash: passwordByUserId.get(raw.id),\n\t\t\tpasswordHashAlgo: passwordByUserId\n\t\t\t\t.get(raw.id)\n\t\t\t\t?.startsWith('$argon2id')\n\t\t\t\t? ('argon2id' as const)\n\t\t\t\t: passwordByUserId.get(raw.id)?.startsWith('$2')\n\t\t\t\t\t? ('bcrypt' as const)\n\t\t\t\t\t: undefined\n\t\t}));\n\n\t\tconst identities = oauthKeys.map((key) => {\n\t\t\tconst separator = key.id.indexOf(':');\n\n\t\t\treturn {\n\t\t\t\tauthProvider: key.id.slice(0, separator),\n\t\t\t\tcreatedAtMs: Date.now(),\n\t\t\t\tproviderSubject: key.id.slice(separator + 1),\n\t\t\t\tuserExternalId: key.user_id\n\t\t\t};\n\t\t});\n\n\t\treturn { identities, source: 'lucia', users };\n\t}\n};\n",
9
+ "// NextAuth.js / Auth.js importer.\n//\n// NextAuth.js stores users in `users` and OAuth links in `accounts`\n// (Drizzle / Prisma adapter naming). MongoDB and SQL Server adapters\n// follow the same conceptual shape with different table naming.\n// Concatenate the two tables as a single JSON document:\n//\n// {\n// \"users\": [\n// { \"id\": \"...\", \"email\": \"alice@x\", \"emailVerified\": \"2024-01-01...\",\n// \"name\": \"Alice Smith\", \"image\": \"...\" },\n// …\n// ],\n// \"accounts\": [\n// { \"userId\": \"...\", \"provider\": \"google\", \"providerAccountId\": \"118392...\",\n// \"type\": \"oauth\" }\n// ]\n// }\n//\n// NextAuth doesn't ship a Credentials password store by default — its\n// official guidance is to discourage passwords. If your app added a\n// custom credentials provider, you'll have the hashes in your own\n// custom column; pass them via the optional `passwordsByUserId` field:\n//\n// { \"users\": […], \"accounts\": […],\n// \"passwordsByUserId\": { \"user_id_1\": \"$argon2id$…\" } }\n\nimport { readFile } from 'node:fs/promises';\nimport type { ImportResult, Importer } from './types';\n\ntype NextAuthUser = {\n\temail: string;\n\temailVerified?: string | null;\n\tid: string;\n\timage?: string;\n\tname?: string;\n};\n\ntype NextAuthAccount = {\n\tprovider: string;\n\tproviderAccountId: string;\n\ttype?: string;\n\tuserId: string;\n};\n\ntype NextAuthExport = {\n\taccounts?: NextAuthAccount[];\n\tpasswordsByUserId?: Record<string, string | undefined>;\n\tusers: NextAuthUser[];\n};\n\nconst splitName = (full: string | undefined) => {\n\tif (full === undefined) return { familyName: undefined, givenName: undefined };\n\tconst parts = full.split(/\\s+/);\n\tif (parts.length === 1) return { familyName: undefined, givenName: parts[0] };\n\n\treturn {\n\t\tfamilyName: parts.slice(1).join(' '),\n\t\tgivenName: parts[0]\n\t};\n};\n\nexport const nextauthImporter: Importer = {\n\tsource: 'nextauth',\n\tparse: async (path: string): Promise<ImportResult> => {\n\t\tconst text = await readFile(path, 'utf-8');\n\t\tconst parsed: NextAuthExport = JSON.parse(text);\n\n\t\tconst users = parsed.users.map((raw) => {\n\t\t\tconst split = splitName(raw.name);\n\t\t\tconst passwordHash = parsed.passwordsByUserId?.[raw.id];\n\n\t\t\treturn {\n\t\t\t\tcreatedAtMs: Date.now(),\n\t\t\t\temail: raw.email,\n\t\t\t\temailVerified: raw.emailVerified !== null && raw.emailVerified !== undefined,\n\t\t\t\texternalId: raw.id,\n\t\t\t\tfamilyName: split.familyName,\n\t\t\t\tgivenName: split.givenName,\n\t\t\t\tpasswordHash,\n\t\t\t\tpasswordHashAlgo: passwordHash?.startsWith('$argon2id')\n\t\t\t\t\t? ('argon2id' as const)\n\t\t\t\t\t: passwordHash?.startsWith('$2')\n\t\t\t\t\t\t? ('bcrypt' as const)\n\t\t\t\t\t\t: undefined\n\t\t\t};\n\t\t});\n\n\t\tconst identities = (parsed.accounts ?? [])\n\t\t\t.filter((account) => account.type === undefined || account.type === 'oauth')\n\t\t\t.map((account) => ({\n\t\t\t\tauthProvider: account.provider,\n\t\t\t\tcreatedAtMs: Date.now(),\n\t\t\t\tproviderSubject: account.providerAccountId,\n\t\t\t\tuserExternalId: account.userId\n\t\t\t}));\n\n\t\treturn { identities, source: 'nextauth', users };\n\t}\n};\n",
10
+ "// Supabase Auth importer.\n//\n// Supabase stores auth state in the `auth.users` + `auth.identities`\n// tables of your Postgres. Easiest path: dump the two tables to JSON\n// via `psql -c \"COPY (SELECT row_to_json(t) FROM auth.users t) TO ...\"`,\n// then concatenate the two files into one JSON document:\n//\n// {\n// \"users\": [\n// { \"id\": \"...\", \"email\": \"alice@x\", \"encrypted_password\": \"$2a$10$...\",\n// \"email_confirmed_at\": \"2024-01-01T...\", \"created_at\": \"...\",\n// \"raw_user_meta_data\": { \"full_name\": \"Alice Smith\" } },\n// …\n// ],\n// \"identities\": [\n// { \"user_id\": \"...\", \"provider\": \"google\", \"provider_id\": \"118392...\",\n// \"identity_data\": {...}, \"created_at\": \"...\" }\n// ]\n// }\n//\n// Supabase uses bcrypt for the `encrypted_password` column; verbatim copy\n// works (and our credentials block sniffs the $2 prefix at next login).\n\nimport { readFile } from 'node:fs/promises';\nimport type { ImportResult, Importer } from './types';\n\ntype SupabaseUser = {\n\tcreated_at?: string;\n\temail: string;\n\temail_confirmed_at?: string;\n\tencrypted_password?: string;\n\tid: string;\n\traw_user_meta_data?: { family_name?: string; full_name?: string; given_name?: string };\n};\n\ntype SupabaseIdentity = {\n\tcreated_at?: string;\n\tprovider: string;\n\tprovider_id: string;\n\tuser_id: string;\n};\n\ntype SupabaseExport = {\n\tidentities?: SupabaseIdentity[];\n\tusers: SupabaseUser[];\n};\n\nconst splitFullName = (full: string | undefined) => {\n\tif (full === undefined) return { familyName: undefined, givenName: undefined };\n\tconst parts = full.split(/\\s+/);\n\tif (parts.length === 1) return { familyName: undefined, givenName: parts[0] };\n\n\treturn {\n\t\tfamilyName: parts.slice(1).join(' '),\n\t\tgivenName: parts[0]\n\t};\n};\n\nexport const supabaseImporter: Importer = {\n\tsource: 'supabase',\n\tparse: async (path: string): Promise<ImportResult> => {\n\t\tconst text = await readFile(path, 'utf-8');\n\t\tconst parsed: SupabaseExport = JSON.parse(text);\n\n\t\tconst users = parsed.users.map((raw) => {\n\t\t\tconst meta = raw.raw_user_meta_data ?? {};\n\t\t\tconst split = splitFullName(meta.full_name);\n\n\t\t\treturn {\n\t\t\t\tcreatedAtMs:\n\t\t\t\t\traw.created_at === undefined\n\t\t\t\t\t\t? Date.now()\n\t\t\t\t\t\t: Date.parse(raw.created_at),\n\t\t\t\temail: raw.email,\n\t\t\t\temailVerified: raw.email_confirmed_at !== undefined,\n\t\t\t\texternalId: raw.id,\n\t\t\t\tfamilyName: meta.family_name ?? split.familyName,\n\t\t\t\tgivenName: meta.given_name ?? split.givenName,\n\t\t\t\tpasswordHash: raw.encrypted_password,\n\t\t\t\tpasswordHashAlgo: raw.encrypted_password?.startsWith('$2')\n\t\t\t\t\t? ('bcrypt' as const)\n\t\t\t\t\t: undefined\n\t\t\t};\n\t\t});\n\n\t\tconst identities = (parsed.identities ?? []).map((identity) => ({\n\t\t\tauthProvider: identity.provider,\n\t\t\tcreatedAtMs:\n\t\t\t\tidentity.created_at === undefined\n\t\t\t\t\t? Date.now()\n\t\t\t\t\t: Date.parse(identity.created_at),\n\t\t\tproviderSubject: identity.provider_id,\n\t\t\tuserExternalId: identity.user_id\n\t\t}));\n\n\t\treturn { identities, source: 'supabase', users };\n\t}\n};\n",
5
11
  "import { and, desc, eq } from 'drizzle-orm';\nimport {\n\tbigint,\n\tboolean,\n\tdoublePrecision,\n\tpgTable,\n\tprimaryKey,\n\tvarchar\n} from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type {\n\tKnownDevice,\n\tKnownDeviceStore,\n\tLoginAttempt,\n\tLoginHistoryStore\n} from './types';\n\nconst ID_LENGTH = 255;\n\nexport const knownDevicesTable = pgTable(\n\t'auth_known_devices',\n\t{\n\t\tdevice_id: varchar('device_id', { length: ID_LENGTH }).notNull(),\n\t\tfirst_seen_at_ms: bigint('first_seen_at_ms', {\n\t\t\tmode: 'number'\n\t\t}).notNull(),\n\t\tlabel: varchar('label', { length: ID_LENGTH }),\n\t\tlast_seen_at_ms: bigint('last_seen_at_ms', {\n\t\t\tmode: 'number'\n\t\t}).notNull(),\n\t\ttrusted: boolean('trusted').notNull().default(false),\n\t\tuser_id: varchar('user_id', { length: ID_LENGTH }).notNull()\n\t},\n\t(table) => [primaryKey({ columns: [table.user_id, table.device_id] })]\n);\n\nexport const loginHistoryTable = pgTable('auth_login_history', {\n\tattempt_id: varchar('attempt_id', { length: ID_LENGTH }).primaryKey(),\n\tcountry: varchar('country', { length: ID_LENGTH }),\n\tdevice_id: varchar('device_id', { length: ID_LENGTH }).notNull(),\n\tip_address: varchar('ip_address', { length: ID_LENGTH }),\n\tlatitude: doublePrecision('latitude'),\n\tlongitude: doublePrecision('longitude'),\n\toutcome: varchar('outcome', { length: ID_LENGTH }).notNull(),\n\ttimestamp_ms: bigint('timestamp_ms', { mode: 'number' }).notNull(),\n\tuser_id: varchar('user_id', { length: ID_LENGTH }).notNull()\n});\n\ntype KnownDeviceRow = typeof knownDevicesTable.$inferSelect;\ntype LoginAttemptRow = typeof loginHistoryTable.$inferSelect;\n\nconst toRiskAction = (value: string) => {\n\tif (value === 'deny') return 'deny';\n\tif (value === 'step_up') return 'step_up';\n\n\treturn 'allow';\n};\n\nconst toDevice = (row: KnownDeviceRow): KnownDevice => ({\n\tdeviceId: row.device_id,\n\tfirstSeenAt: row.first_seen_at_ms,\n\tlabel: row.label ?? undefined,\n\tlastSeenAt: row.last_seen_at_ms,\n\ttrusted: row.trusted,\n\tuserId: row.user_id\n});\n\nconst toDeviceValues = (\n\tdevice: KnownDevice\n): typeof knownDevicesTable.$inferInsert => ({\n\tdevice_id: device.deviceId,\n\tfirst_seen_at_ms: device.firstSeenAt,\n\tlabel: device.label ?? null,\n\tlast_seen_at_ms: device.lastSeenAt,\n\ttrusted: device.trusted,\n\tuser_id: device.userId\n});\n\nconst toAttempt = (row: LoginAttemptRow): LoginAttempt => ({\n\tattemptId: row.attempt_id,\n\tcountry: row.country ?? undefined,\n\tdeviceId: row.device_id,\n\tipAddress: row.ip_address ?? undefined,\n\tlatitude: row.latitude ?? undefined,\n\tlongitude: row.longitude ?? undefined,\n\toutcome: toRiskAction(row.outcome),\n\ttimestamp: row.timestamp_ms,\n\tuserId: row.user_id\n});\n\nconst toAttemptValues = (\n\tattempt: LoginAttempt\n): typeof loginHistoryTable.$inferInsert => ({\n\tattempt_id: attempt.attemptId,\n\tcountry: attempt.country ?? null,\n\tdevice_id: attempt.deviceId,\n\tip_address: attempt.ipAddress ?? null,\n\tlatitude: attempt.latitude ?? null,\n\tlongitude: attempt.longitude ?? null,\n\toutcome: attempt.outcome,\n\ttimestamp_ms: attempt.timestamp,\n\tuser_id: attempt.userId\n});\n\nexport const createNeonKnownDeviceStore = (databaseUrl: string) =>\n\tcreatePostgresKnownDeviceStore(createNeonDatabase(databaseUrl));\nexport const createNeonLoginHistoryStore = (databaseUrl: string) =>\n\tcreatePostgresLoginHistoryStore(createNeonDatabase(databaseUrl));\nexport const createPostgresKnownDeviceStore = (\n\tdb: AnyPgDatabase\n): KnownDeviceStore => ({\n\tfindDevice: async (userId, deviceId) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(knownDevicesTable)\n\t\t\t.where(\n\t\t\t\tand(\n\t\t\t\t\teq(knownDevicesTable.user_id, userId),\n\t\t\t\t\teq(knownDevicesTable.device_id, deviceId)\n\t\t\t\t)\n\t\t\t)\n\t\t\t.limit(1);\n\n\t\treturn row ? toDevice(row) : undefined;\n\t},\n\tlistDevices: async (userId) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(knownDevicesTable)\n\t\t\t.where(eq(knownDevicesTable.user_id, userId))\n\t\t\t.orderBy(desc(knownDevicesTable.last_seen_at_ms));\n\n\t\treturn rows.map(toDevice);\n\t},\n\tsaveDevice: async (device) => {\n\t\tconst values = toDeviceValues(device);\n\t\tawait db\n\t\t\t.insert(knownDevicesTable)\n\t\t\t.values(values)\n\t\t\t.onConflictDoUpdate({\n\t\t\t\tset: values,\n\t\t\t\ttarget: [knownDevicesTable.user_id, knownDevicesTable.device_id]\n\t\t\t});\n\t}\n});\nexport const createPostgresLoginHistoryStore = (\n\tdb: AnyPgDatabase\n): LoginHistoryStore => ({\n\tlistRecent: async (userId, limit) => {\n\t\tconst rows = await db\n\t\t\t.select()\n\t\t\t.from(loginHistoryTable)\n\t\t\t.where(eq(loginHistoryTable.user_id, userId))\n\t\t\t.orderBy(desc(loginHistoryTable.timestamp_ms))\n\t\t\t.limit(limit);\n\n\t\treturn rows.map(toAttempt);\n\t},\n\trecordAttempt: async (attempt) => {\n\t\tawait db.insert(loginHistoryTable).values(toAttemptValues(attempt));\n\t}\n});\n",
6
12
  "import { neon } from '@neondatabase/serverless';\nimport { drizzle } from 'drizzle-orm/neon-http';\nimport type { PgDatabase, PgQueryResultHKT } from 'drizzle-orm/pg-core';\n\n// Shared scaffolding for the enterprise stores. Every new store ships an\n// in-memory implementation (dev/test) plus a Postgres implementation that accepts\n// a Drizzle `PgDatabase` — so it runs on Neon (neon-http) AND node-postgres without\n// the package bundling a second driver. `createNeonDatabase` is the convenience\n// wrapper consumers reach for when they just want a Neon connection string.\n\nexport type AnyPgDatabase = PgDatabase<PgQueryResultHKT>;\n\nexport const createNeonDatabase = (databaseUrl: string) =>\n\tdrizzle(neon(databaseUrl));\n",
7
13
  "import { desc, eq, lt } from 'drizzle-orm';\nimport { bigint, pgTable, text, varchar } from 'drizzle-orm/pg-core';\nimport { type AnyPgDatabase, createNeonDatabase } from '../stores/postgres';\nimport type {\n\tAccessToken,\n\tAccessTokenStore,\n\tApiClient,\n\tApiClientStore,\n\tApiKey,\n\tApiKeyStore\n} from './types';\n\nconst ID_LENGTH = 255;\n\nexport const accessTokensTable = pgTable('auth_access_tokens', {\n\tclient_id: varchar('client_id', { length: ID_LENGTH }).notNull(),\n\tcreated_at_ms: bigint('created_at_ms', { mode: 'number' }).notNull(),\n\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }).notNull(),\n\thashed_token: varchar('hashed_token', { length: ID_LENGTH }).notNull(),\n\towner_id: varchar('owner_id', { length: ID_LENGTH }),\n\tscopes: text('scopes').array().notNull(),\n\ttoken_id: varchar('token_id', { length: ID_LENGTH }).primaryKey()\n});\nexport const apiClientsTable = pgTable('auth_api_clients', {\n\tclient_id: varchar('client_id', { length: ID_LENGTH }).primaryKey(),\n\tcreated_at_ms: bigint('created_at_ms', { mode: 'number' }).notNull(),\n\thashed_secret: varchar('hashed_secret', { length: ID_LENGTH }).notNull(),\n\tname: varchar('name', { length: ID_LENGTH }).notNull(),\n\towner_id: varchar('owner_id', { length: ID_LENGTH }),\n\tscopes: text('scopes').array().notNull()\n});\nexport const apiKeysTable = pgTable('auth_api_keys', {\n\tcreated_at_ms: bigint('created_at_ms', { mode: 'number' }).notNull(),\n\texpires_at_ms: bigint('expires_at_ms', { mode: 'number' }),\n\thashed_key: varchar('hashed_key', { length: ID_LENGTH }).notNull(),\n\tkey_id: varchar('key_id', { length: ID_LENGTH }).primaryKey(),\n\tlast_used_at_ms: bigint('last_used_at_ms', { mode: 'number' }),\n\tname: varchar('name', { length: ID_LENGTH }).notNull(),\n\towner_id: varchar('owner_id', { length: ID_LENGTH }),\n\tprefix: varchar('prefix', { length: ID_LENGTH }).notNull(),\n\tscopes: text('scopes').array().notNull()\n});\n\ntype ApiKeyRow = typeof apiKeysTable.$inferSelect;\ntype ApiClientRow = typeof apiClientsTable.$inferSelect;\ntype AccessTokenRow = typeof accessTokensTable.$inferSelect;\n\nconst toKey = (row: ApiKeyRow): ApiKey => ({\n\tcreatedAt: row.created_at_ms,\n\texpiresAt: row.expires_at_ms ?? undefined,\n\thashedKey: row.hashed_key,\n\tkeyId: row.key_id,\n\tlastUsedAt: row.last_used_at_ms ?? undefined,\n\tname: row.name,\n\townerId: row.owner_id ?? undefined,\n\tprefix: row.prefix,\n\tscopes: row.scopes\n});\n\nconst toKeyValues = (key: ApiKey): typeof apiKeysTable.$inferInsert => ({\n\tcreated_at_ms: key.createdAt,\n\texpires_at_ms: key.expiresAt ?? null,\n\thashed_key: key.hashedKey,\n\tkey_id: key.keyId,\n\tlast_used_at_ms: key.lastUsedAt ?? null,\n\tname: key.name,\n\towner_id: key.ownerId ?? null,\n\tprefix: key.prefix,\n\tscopes: key.scopes\n});\n\nconst toClient = (row: ApiClientRow): ApiClient => ({\n\tclientId: row.client_id,\n\tcreatedAt: row.created_at_ms,\n\thashedSecret: row.hashed_secret,\n\tname: row.name,\n\townerId: row.owner_id ?? undefined,\n\tscopes: row.scopes\n});\n\nconst toClientValues = (\n\tclient: ApiClient\n): typeof apiClientsTable.$inferInsert => ({\n\tclient_id: client.clientId,\n\tcreated_at_ms: client.createdAt,\n\thashed_secret: client.hashedSecret,\n\tname: client.name,\n\towner_id: client.ownerId ?? null,\n\tscopes: client.scopes\n});\n\nconst toAccessToken = (row: AccessTokenRow): AccessToken => ({\n\tclientId: row.client_id,\n\tcreatedAt: row.created_at_ms,\n\texpiresAt: row.expires_at_ms,\n\thashedToken: row.hashed_token,\n\townerId: row.owner_id ?? undefined,\n\tscopes: row.scopes,\n\ttokenId: row.token_id\n});\n\nconst toAccessTokenValues = (\n\ttoken: AccessToken\n): typeof accessTokensTable.$inferInsert => ({\n\tclient_id: token.clientId,\n\tcreated_at_ms: token.createdAt,\n\texpires_at_ms: token.expiresAt,\n\thashed_token: token.hashedToken,\n\towner_id: token.ownerId ?? null,\n\tscopes: token.scopes,\n\ttoken_id: token.tokenId\n});\n\nexport const createNeonAccessTokenStore = (databaseUrl: string) =>\n\tcreatePostgresAccessTokenStore(createNeonDatabase(databaseUrl));\nexport const createNeonApiClientStore = (databaseUrl: string) =>\n\tcreatePostgresApiClientStore(createNeonDatabase(databaseUrl));\nexport const createNeonApiKeyStore = (databaseUrl: string) =>\n\tcreatePostgresApiKeyStore(createNeonDatabase(databaseUrl));\nexport const createPostgresAccessTokenStore = (\n\tdb: AnyPgDatabase\n): AccessTokenStore => ({\n\tdeleteExpired: async (now) => {\n\t\tawait db\n\t\t\t.delete(accessTokensTable)\n\t\t\t.where(lt(accessTokensTable.expires_at_ms, now));\n\t},\n\tdeleteToken: async (tokenId) => {\n\t\tawait db\n\t\t\t.delete(accessTokensTable)\n\t\t\t.where(eq(accessTokensTable.token_id, tokenId));\n\t},\n\tfindByHashedToken: async (hashedToken) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(accessTokensTable)\n\t\t\t.where(eq(accessTokensTable.hashed_token, hashedToken))\n\t\t\t.limit(1);\n\n\t\treturn row ? toAccessToken(row) : undefined;\n\t},\n\tsaveToken: async (token) => {\n\t\tconst values = toAccessTokenValues(token);\n\t\tawait db.insert(accessTokensTable).values(values).onConflictDoUpdate({\n\t\t\tset: values,\n\t\t\ttarget: accessTokensTable.token_id\n\t\t});\n\t}\n});\nexport const createPostgresApiClientStore = (\n\tdb: AnyPgDatabase\n): ApiClientStore => ({\n\tdeleteClient: async (clientId) => {\n\t\tawait db\n\t\t\t.delete(apiClientsTable)\n\t\t\t.where(eq(apiClientsTable.client_id, clientId));\n\t},\n\tfindClient: async (clientId) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(apiClientsTable)\n\t\t\t.where(eq(apiClientsTable.client_id, clientId))\n\t\t\t.limit(1);\n\n\t\treturn row ? toClient(row) : undefined;\n\t},\n\tlistClients: async (ownerId) => {\n\t\tconst rows =\n\t\t\townerId === undefined\n\t\t\t\t? await db\n\t\t\t\t\t\t.select()\n\t\t\t\t\t\t.from(apiClientsTable)\n\t\t\t\t\t\t.orderBy(desc(apiClientsTable.created_at_ms))\n\t\t\t\t: await db\n\t\t\t\t\t\t.select()\n\t\t\t\t\t\t.from(apiClientsTable)\n\t\t\t\t\t\t.where(eq(apiClientsTable.owner_id, ownerId))\n\t\t\t\t\t\t.orderBy(desc(apiClientsTable.created_at_ms));\n\n\t\treturn rows.map(toClient);\n\t},\n\tsaveClient: async (client) => {\n\t\tconst values = toClientValues(client);\n\t\tawait db.insert(apiClientsTable).values(values).onConflictDoUpdate({\n\t\t\tset: values,\n\t\t\ttarget: apiClientsTable.client_id\n\t\t});\n\t}\n});\nexport const createPostgresApiKeyStore = (db: AnyPgDatabase): ApiKeyStore => ({\n\tdeleteKey: async (keyId) => {\n\t\tawait db.delete(apiKeysTable).where(eq(apiKeysTable.key_id, keyId));\n\t},\n\tfindByHashedKey: async (hashedKey) => {\n\t\tconst [row] = await db\n\t\t\t.select()\n\t\t\t.from(apiKeysTable)\n\t\t\t.where(eq(apiKeysTable.hashed_key, hashedKey))\n\t\t\t.limit(1);\n\n\t\treturn row ? toKey(row) : undefined;\n\t},\n\tlistKeys: async (ownerId) => {\n\t\tconst rows =\n\t\t\townerId === undefined\n\t\t\t\t? await db\n\t\t\t\t\t\t.select()\n\t\t\t\t\t\t.from(apiKeysTable)\n\t\t\t\t\t\t.orderBy(desc(apiKeysTable.created_at_ms))\n\t\t\t\t: await db\n\t\t\t\t\t\t.select()\n\t\t\t\t\t\t.from(apiKeysTable)\n\t\t\t\t\t\t.where(eq(apiKeysTable.owner_id, ownerId))\n\t\t\t\t\t\t.orderBy(desc(apiKeysTable.created_at_ms));\n\n\t\treturn rows.map(toKey);\n\t},\n\tsaveKey: async (key) => {\n\t\tconst values = toKeyValues(key);\n\t\tawait db.insert(apiKeysTable).values(values).onConflictDoUpdate({\n\t\t\tset: values,\n\t\t\ttarget: apiKeysTable.key_id\n\t\t});\n\t},\n\ttouchKey: async (keyId, lastUsedAt) => {\n\t\tawait db\n\t\t\t.update(apiKeysTable)\n\t\t\t.set({ last_used_at_ms: lastUsedAt })\n\t\t\t.where(eq(apiKeysTable.key_id, keyId));\n\t}\n});\n",
@@ -28,9 +34,9 @@
28
34
  "// Translate the package's existing `pgTable` definitions into `CREATE TABLE IF NOT EXISTS`\n// SQL, so each block's migration is derived from the same drizzle schema the runtime store\n// already uses. Eliminates the transcription-drift risk of hand-writing CREATE TABLEs that\n// have to stay in sync with the table definitions in `src/<block>/postgresStores.ts`.\n//\n// What this covers: column name + type + nullability + default + primary key + unique +\n// composite primary key. Doesn't cover: foreign keys (none of the package's tables use\n// them across blocks — sub-keys are referenced by id without referential integrity),\n// indices (consumers can add their own per their workload), check constraints (none in\n// the schema). If a block ever needs any of those, hand-write that migration entry\n// alongside the auto-generated one.\n\nimport { is, SQL } from 'drizzle-orm';\nimport {\n\tgetTableConfig,\n\ttype PgColumn,\n\ttype PgTable\n} from 'drizzle-orm/pg-core';\n\n// Defaults declared with drizzle's `sql\\`...\\`` template are `SQL` objects; render them as\n// raw SQL expressions (e.g. `now()`) instead of letting them fall into the generic-object\n// JSON branch, which would emit a `{\"queryChunks\":[...]}::jsonb` literal.\nconst renderChunk = (chunk: unknown) => {\n\tif (chunk === null || typeof chunk !== 'object') return String(chunk);\n\tconst value = Reflect.get(chunk, 'value');\n\tif (Array.isArray(value)) return value.map((part) => String(part)).join('');\n\n\treturn '';\n};\n\nconst formatSqlTemplate = (value: SQL) =>\n\tvalue.queryChunks.map(renderChunk).join('');\n\nconst formatDefault = (value: unknown) => {\n\tif (value === null || value === undefined) return 'NULL';\n\tif (is(value, SQL)) return formatSqlTemplate(value);\n\tif (typeof value === 'string') return `'${value.replace(/'/gu, \"''\")}'`;\n\tif (typeof value === 'boolean') return value ? 'true' : 'false';\n\tif (typeof value === 'number') return String(value);\n\tif (Array.isArray(value) || typeof value === 'object') {\n\t\treturn `'${JSON.stringify(value)}'::jsonb`;\n\t}\n\n\treturn String(value);\n};\n\nconst columnSql = (column: PgColumn) => {\n\tconst parts = [`\"${column.name}\"`, column.getSQLType()];\n\tif (column.primary) parts.push('PRIMARY KEY');\n\tif (column.notNull && !column.primary) parts.push('NOT NULL');\n\tif (column.hasDefault && column.default !== undefined) {\n\t\tparts.push(`DEFAULT ${formatDefault(column.default)}`);\n\t}\n\tif (column.isUnique) parts.push('UNIQUE');\n\n\treturn parts.join(' ');\n};\n\nconst compositePkLine = (compositePk: readonly PgColumn[]) =>\n\t`PRIMARY KEY (${compositePk.map((column) => `\"${column.name}\"`).join(', ')})`;\n\n// Emit a single `CREATE TABLE IF NOT EXISTS` for one table. Idempotent — re-running is a\n// no-op even when the consumer already wired the table by hand. The composite-PK case is\n// handled separately because Drizzle splits it out of the column metadata.\nconst tableToCreateSql = (table: PgTable) => {\n\tconst cfg = getTableConfig(table);\n\tconst columnLines = cfg.columns.map(columnSql);\n\tconst singlePk = cfg.columns.find((column) => column.primary);\n\tconst compositePk = cfg.primaryKeys[0]?.columns ?? [];\n\tconst lines =\n\t\tsinglePk === undefined && compositePk.length > 0\n\t\t\t? [...columnLines, compositePkLine(compositePk)]\n\t\t\t: columnLines;\n\tconst body = lines.map((line) => `\\t${line}`).join(',\\n');\n\n\treturn `CREATE TABLE IF NOT EXISTS \"${cfg.name}\" (\\n${body}\\n);`;\n};\n\n// Block migrations are always declared as one `0001_init` covering every table the block\n// owns + (rare) hand-written follow-up ids for schema changes. This helper does the init\n// step — pass every table you want included.\nexport const tablesToInitSql = (tables: PgTable[]) =>\n\ttables.map(tableToCreateSql).join('\\n\\n');\n",
29
35
  "// Migration runner. Uses `@neondatabase/serverless`'s Pool (already a package dep) so\n// consumers don't need to install drizzle-kit or a separate migrator. The Pool client\n// supports multi-statement queries (a block's init migration emits one CREATE TABLE per\n// table joined by `;`), which the HTTP `neon()` function does not.\n//\n// Tracks applied migrations in an `auth_migrations` table keyed by `${block}/${id}`.\n// Idempotent — re-running is a no-op when everything's been applied.\n//\n// Consumers can invoke programmatically (`await runMigrations({ databaseUrl })`) at boot\n// or via the bundled CLI (`bunx absolute-auth migrate --db $DATABASE_URL`).\n\nimport { Pool } from '@neondatabase/serverless';\nimport { blockMigrations, type BlockName } from './index';\n\nexport type RunMigrationsOptions = {\n\tdatabaseUrl: string;\n\t/** Subset of blocks to apply. Omit to apply every block the package ships. */\n\tblocks?: BlockName[];\n\t/** Optional logger; defaults to console.log. Pass `() => undefined` for silent mode. */\n\tlog?: (message: string) => void;\n};\n\nexport type MigrationRunResult = {\n\tapplied: string[];\n\tskipped: string[];\n};\n\nconst JOURNAL_DDL = `CREATE TABLE IF NOT EXISTS \"auth_migrations\" (\n\t\"id\" text PRIMARY KEY,\n\t\"applied_at_ms\" bigint NOT NULL\n);`;\n\ntype JournalRow = { id: string };\n\nconst isJournalRow = (value: unknown): value is JournalRow =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\ttypeof Reflect.get(value, 'id') === 'string';\n\nconst allBlockNames = () =>\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- Object.keys widens to string[]; the values are typed BlockName by construction of the manifest\n\tObject.keys(blockMigrations) as BlockName[];\n\nconst applyOne = async (\n\tpool: Pool,\n\tid: string,\n\tsql: string,\n\tlog: (message: string) => void\n) => {\n\tawait pool.query(sql);\n\tawait pool.query(\n\t\t`INSERT INTO \"auth_migrations\" (\"id\", \"applied_at_ms\") VALUES ($1, $2)`,\n\t\t[id, Date.now()]\n\t);\n\tlog(`apply ${id}`);\n};\n\nconst runOne = async (\n\tpool: Pool,\n\tid: string,\n\tsql: string,\n\tapplied: Set<string>,\n\tresult: MigrationRunResult,\n\tlog: (message: string) => void\n) => {\n\tif (applied.has(id)) {\n\t\tresult.skipped.push(id);\n\t\tlog(`skip ${id}`);\n\n\t\treturn;\n\t}\n\tawait applyOne(pool, id, sql, log);\n\tresult.applied.push(id);\n};\n\nexport const runMigrations = async ({\n\tblocks,\n\tdatabaseUrl,\n\tlog = console.log\n}: RunMigrationsOptions) => {\n\tconst pool = new Pool({ connectionString: databaseUrl });\n\tconst result: MigrationRunResult = { applied: [], skipped: [] };\n\n\ttry {\n\t\tawait pool.query(JOURNAL_DDL);\n\t\tconst journal = await pool.query(`SELECT \"id\" FROM \"auth_migrations\"`);\n\t\tconst applied = new Set(\n\t\t\tjournal.rows.filter(isJournalRow).map((row) => row.id)\n\t\t);\n\n\t\tconst selected = blocks ?? allBlockNames();\n\t\tconst flat = selected.flatMap((block) =>\n\t\t\tblockMigrations[block].migrations.map((migration) => ({\n\t\t\t\tid: `${block}/${migration.id}`,\n\t\t\t\tsql: migration.sql\n\t\t\t}))\n\t\t);\n\n\t\tawait flat.reduce(async (prior, item) => {\n\t\t\tawait prior;\n\n\t\t\treturn runOne(pool, item.id, item.sql, applied, result, log);\n\t\t}, Promise.resolve());\n\t} finally {\n\t\tawait pool.end();\n\t}\n\n\treturn result;\n};\n",
30
36
  "// Single export of every block's migrations. Consumers pick which blocks they enabled\n// in `auth()` and pass that subset to `runMigrations({ blocks: [...] })`, or omit `blocks`\n// to apply every migration the package ships. Adding a new block's migrations: import its\n// tables here + add to the `blockMigrations` map.\n\nimport { knownDevicesTable, loginHistoryTable } from '../adaptive/postgresStores';\nimport {\n\taccessTokensTable,\n\tapiClientsTable,\n\tapiKeysTable\n} from '../apikeys/postgresStores';\nimport { auditEventsTable } from '../audit/postgresAuditStore';\nimport {\n\tcredentialResetTokensTable,\n\tcredentialVerificationTokensTable,\n\tcredentialsTable\n} from '../credentials/postgresCredentialStore';\nimport { warrantsTable } from '../fga/postgresStores';\nimport {\n\tlinkedProviderBindingsTable,\n\tlinkedProviderGrantsTable\n} from '../linkedProviders/neonStores';\nimport { lockoutsTable } from '../lockout/postgresLockoutStore';\nimport { mfaEnrollmentsTable } from '../mfa/postgresMfaStore';\nimport {\n\toauthBackchannelAuthRequestsTable,\n\toauthClientAssertionJtisTable,\n\toauthClientRegistrationTokensTable,\n\toauthClientsTable,\n\toauthCodesTable,\n\toauthDeviceAuthorizationsTable,\n\toauthInitialAccessTokensTable,\n\toauthLogoutDeliveriesTable,\n\toauthPushedAuthorizationRequestsTable,\n\toauthRefreshTokensTable\n} from '../oidc/postgresStores';\nimport {\n\torganizationInvitationsTable,\n\torganizationMembershipsTable,\n\torganizationsTable\n} from '../organizations/postgresOrganizationStore';\nimport { passwordlessTokensTable } from '../passwordless/postgresPasswordlessTokenStore';\nimport { setupSessionsTable } from '../portal/postgresSetupSessionStore';\nimport { rolesTable } from '../roles/postgresRoleStore';\nimport { scimTokensTable } from '../scim/postgresScimTokenStore';\nimport {\n\tauthSessionsTable,\n\tauthUnregisteredSessionsTable\n} from '../session/neonStore';\nimport { samlServiceProvidersTable } from '../sso/postgresSamlServiceProviderStore';\nimport { ssoConnectionsTable } from '../sso/postgresSsoConnectionStore';\nimport {\n\tvcCredentialNoncesTable,\n\tvcCredentialOffersTable,\n\tvcPresentationRequestsTable\n} from '../vc/postgresVcStores';\nimport { vaultEntriesTable } from '../vault/postgresVaultStore';\nimport { webauthnCredentialsTable } from '../webauthn/postgresWebAuthnCredentialStore';\nimport { webhookDeliveriesTable } from '../webhooks/postgresStore';\nimport { tablesToInitSql } from './generate';\nimport type { BlockMigrations } from './types';\n\nexport type BlockName =\n\t| 'adaptive'\n\t| 'apikeys'\n\t| 'audit'\n\t| 'credentials'\n\t| 'fga'\n\t| 'linkedProviders'\n\t| 'lockout'\n\t| 'mfa'\n\t| 'oidc'\n\t| 'organizations'\n\t| 'passwordless'\n\t| 'portal'\n\t| 'roles'\n\t| 'scim'\n\t| 'sessions'\n\t| 'sso'\n\t| 'vault'\n\t| 'vc'\n\t| 'webauthn'\n\t| 'webhooks';\n\nconst initMigration = (block: BlockName, tables: Parameters<typeof tablesToInitSql>[0]): BlockMigrations => ({\n\tblock,\n\tmigrations: [{ id: '0001_init', sql: tablesToInitSql(tables) }]\n});\n\nexport const blockMigrations: Record<BlockName, BlockMigrations> = {\n\tadaptive: initMigration('adaptive', [knownDevicesTable, loginHistoryTable]),\n\tapikeys: initMigration('apikeys', [\n\t\taccessTokensTable,\n\t\tapiClientsTable,\n\t\tapiKeysTable\n\t]),\n\taudit: initMigration('audit', [auditEventsTable]),\n\tcredentials: initMigration('credentials', [\n\t\tcredentialsTable,\n\t\tcredentialResetTokensTable,\n\t\tcredentialVerificationTokensTable\n\t]),\n\tfga: initMigration('fga', [warrantsTable]),\n\tlinkedProviders: initMigration('linkedProviders', [\n\t\tlinkedProviderBindingsTable,\n\t\tlinkedProviderGrantsTable\n\t]),\n\tlockout: initMigration('lockout', [lockoutsTable]),\n\tmfa: initMigration('mfa', [mfaEnrollmentsTable]),\n\toidc: initMigration('oidc', [\n\t\toauthBackchannelAuthRequestsTable,\n\t\toauthClientAssertionJtisTable,\n\t\toauthClientRegistrationTokensTable,\n\t\toauthClientsTable,\n\t\toauthCodesTable,\n\t\toauthDeviceAuthorizationsTable,\n\t\toauthInitialAccessTokensTable,\n\t\toauthLogoutDeliveriesTable,\n\t\toauthPushedAuthorizationRequestsTable,\n\t\toauthRefreshTokensTable\n\t]),\n\torganizations: initMigration('organizations', [\n\t\torganizationsTable,\n\t\torganizationMembershipsTable,\n\t\torganizationInvitationsTable\n\t]),\n\tpasswordless: initMigration('passwordless', [passwordlessTokensTable]),\n\tportal: initMigration('portal', [setupSessionsTable]),\n\troles: initMigration('roles', [rolesTable]),\n\tscim: initMigration('scim', [scimTokensTable]),\n\tsessions: initMigration('sessions', [\n\t\tauthSessionsTable,\n\t\tauthUnregisteredSessionsTable\n\t]),\n\tsso: initMigration('sso', [ssoConnectionsTable, samlServiceProvidersTable]),\n\tvault: initMigration('vault', [vaultEntriesTable]),\n\tvc: initMigration('vc', [\n\t\tvcCredentialOffersTable,\n\t\tvcCredentialNoncesTable,\n\t\tvcPresentationRequestsTable\n\t]),\n\twebauthn: initMigration('webauthn', [webauthnCredentialsTable]),\n\twebhooks: initMigration('webhooks', [webhookDeliveriesTable])\n};\n\nexport { runMigrations } from './runner';\nexport type { Migration, BlockMigrations } from './types';\n",
31
- "#!/usr/bin/env bun\n// CLI entry for the migration runner. Invocation:\n// bunx absolute-auth migrate --db $DATABASE_URL\n// bunx absolute-auth migrate --db $DATABASE_URL --blocks credentials,mfa,sessions\n// bunx absolute-auth migrate --help\n//\n// Resolves --db from --db / --database-url flags or the DATABASE_URL env var. --blocks is\n// an optional comma-separated list; omit to apply every block the package ships.\n\nimport { blockMigrations, type BlockName, runMigrations } from '../migrations';\n\nconst USAGE = `Usage:\n bunx absolute-auth migrate --db <url> [--blocks block1,block2,...]\n\nOptions:\n --db, --database-url Postgres connection string (falls back to DATABASE_URL env)\n --blocks Comma-separated subset of blocks to apply (default: all)\n --help Print this message\n\nAvailable blocks: ${Object.keys(blockMigrations).sort().join(', ')}\n`;\n\ntype ParsedArgs = {\n\tblocks: BlockName[] | undefined;\n\tdatabaseUrl: string | undefined;\n\thelp: boolean;\n};\n\nconst consumeFlag = (\n\tparsed: ParsedArgs,\n\tflag: string | undefined,\n\targs: string[]\n) => {\n\tif (flag === '--help' || flag === '-h') {\n\t\tparsed.help = true;\n\t} else if (flag === '--db' || flag === '--database-url') {\n\t\tparsed.databaseUrl = args.shift();\n\t} else if (flag === '--blocks') {\n\t\tconst list = args.shift() ?? '';\n\t\tparsed.blocks = list\n\t\t\t.split(',')\n\t\t\t.map((entry) => entry.trim())\n\t\t\t.filter((entry) => entry.length > 0)\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- validated against blockMigrations keys below\n\t\t\t.map((entry) => entry as BlockName);\n\t}\n};\n\nconst parseArgs = (argv: string[]) => {\n\tconst parsed: ParsedArgs = {\n\t\tblocks: undefined,\n\t\tdatabaseUrl: undefined,\n\t\thelp: false\n\t};\n\tconst args = [...argv];\n\twhile (args.length > 0) {\n\t\tconsumeFlag(parsed, args.shift(), args);\n\t}\n\n\treturn parsed;\n};\n\nconst die = (message: string) => {\n\tprocess.stderr.write(`error: ${message}\\n\\n`);\n\tprocess.stderr.write(USAGE);\n\tprocess.exit(1);\n};\n\nconst main = async () => {\n\tconst positional = process.argv.slice(2);\n\tif (positional[0] === 'migrate') positional.shift();\n\tconst { blocks, databaseUrl, help } = parseArgs(positional);\n\n\tif (help) {\n\t\tprocess.stdout.write(USAGE);\n\n\t\treturn;\n\t}\n\n\tconst resolved = databaseUrl ?? process.env['DATABASE_URL'];\n\tif (resolved === undefined || resolved.length === 0) {\n\t\tdie('a Postgres URL is required (--db or DATABASE_URL)');\n\n\t\treturn;\n\t}\n\n\tconst unknown = blocks?.filter((block) => !(block in blockMigrations)) ?? [];\n\tif (unknown.length > 0) {\n\t\tdie(`unknown block(s): ${unknown.join(', ')}`);\n\n\t\treturn;\n\t}\n\n\tconst result = await runMigrations({ blocks, databaseUrl: resolved });\n\tprocess.stdout.write(\n\t\t`\\n${result.applied.length} migration(s) applied, ${result.skipped.length} skipped.\\n`\n\t);\n};\n\nawait main();\n"
37
+ "#!/usr/bin/env bun\n// CLI dispatcher. The bin entry `absolute-auth` lands here; the first\n// positional decides which subcommand we run.\n//\n// bunx absolute-auth migrate --db <url> [--blocks block1,block2,...]\n// bunx absolute-auth import <source> <file> --db <url> [--commit]\n//\n// Subcommands:\n// migrate apply the package's Drizzle migrations\n// import read a user export from another auth library, insert into our schema\n// help print this message\n\nimport { importers, runImport } from './import';\nimport { blockMigrations, type BlockName, runMigrations } from '../migrations';\n\nconst TOP_USAGE = `Usage:\n bunx absolute-auth <command> [options]\n\nCommands:\n migrate Apply the package's Drizzle migrations\n import <source> <file> Import a user export from another auth library\n <source> is one of: ${Object.keys(importers).sort().join(', ')}\n help Print this message\n\nRun 'bunx absolute-auth <command> --help' for command-specific options.\n`;\n\nconst MIGRATE_USAGE = `Usage:\n bunx absolute-auth migrate --db <url> [--blocks block1,block2,...]\n\nOptions:\n --db, --database-url Postgres connection string (falls back to DATABASE_URL env)\n --blocks Comma-separated subset of blocks to apply (default: all)\n --help Print this message\n\nAvailable blocks: ${Object.keys(blockMigrations).sort().join(', ')}\n`;\n\nconst IMPORT_USAGE = `Usage:\n bunx absolute-auth import <source> <file> --db <url> [--commit]\n\nArguments:\n source one of: ${Object.keys(importers).sort().join(', ')}\n file path to the export JSON (see docs/MIGRATE-FROM-*.md per source)\n\nOptions:\n --db, --database-url Postgres connection string (falls back to DATABASE_URL env)\n --commit Without this, the run is a dry-run (counts only, no inserts)\n --help Print this message\n`;\n\ntype MigrateArgs = {\n\tblocks: BlockName[] | undefined;\n\tdatabaseUrl: string | undefined;\n\thelp: boolean;\n};\n\nconst parseMigrateArgs = (argv: string[]): MigrateArgs => {\n\tconst parsed: MigrateArgs = {\n\t\tblocks: undefined,\n\t\tdatabaseUrl: undefined,\n\t\thelp: false\n\t};\n\tconst args = [...argv];\n\twhile (args.length > 0) {\n\t\tconst flag = args.shift();\n\t\tif (flag === '--help' || flag === '-h') {\n\t\t\tparsed.help = true;\n\t\t} else if (flag === '--db' || flag === '--database-url') {\n\t\t\tparsed.databaseUrl = args.shift();\n\t\t} else if (flag === '--blocks') {\n\t\t\tconst list = args.shift() ?? '';\n\t\t\tparsed.blocks = list\n\t\t\t\t.split(',')\n\t\t\t\t.map((entry) => entry.trim())\n\t\t\t\t.filter((entry) => entry.length > 0)\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- validated against blockMigrations keys below\n\t\t\t\t.map((entry) => entry as BlockName);\n\t\t}\n\t}\n\n\treturn parsed;\n};\n\ntype ImportArgs = {\n\tcommit: boolean;\n\tdatabaseUrl: string | undefined;\n\tfile: string | undefined;\n\thelp: boolean;\n\tsource: string | undefined;\n};\n\nconst parseImportArgs = (argv: string[]): ImportArgs => {\n\tconst parsed: ImportArgs = {\n\t\tcommit: false,\n\t\tdatabaseUrl: undefined,\n\t\tfile: undefined,\n\t\thelp: false,\n\t\tsource: undefined\n\t};\n\tconst args = [...argv];\n\tconst positionals: string[] = [];\n\twhile (args.length > 0) {\n\t\tconst next = args.shift();\n\t\tif (next === undefined) break;\n\t\tif (next === '--help' || next === '-h') {\n\t\t\tparsed.help = true;\n\t\t} else if (next === '--db' || next === '--database-url') {\n\t\t\tparsed.databaseUrl = args.shift();\n\t\t} else if (next === '--commit') {\n\t\t\tparsed.commit = true;\n\t\t} else if (!next.startsWith('--')) {\n\t\t\tpositionals.push(next);\n\t\t}\n\t}\n\tparsed.source = positionals[0];\n\tparsed.file = positionals[1];\n\n\treturn parsed;\n};\n\nconst die = (message: string, usage: string) => {\n\tprocess.stderr.write(`error: ${message}\\n\\n`);\n\tprocess.stderr.write(usage);\n\tprocess.exit(1);\n};\n\nconst runMigrate = async (argv: string[]) => {\n\tconst { blocks, databaseUrl, help } = parseMigrateArgs(argv);\n\tif (help) {\n\t\tprocess.stdout.write(MIGRATE_USAGE);\n\n\t\treturn;\n\t}\n\tconst resolved = databaseUrl ?? process.env['DATABASE_URL'];\n\tif (resolved === undefined || resolved.length === 0) {\n\t\tdie('a Postgres URL is required (--db or DATABASE_URL)', MIGRATE_USAGE);\n\n\t\treturn;\n\t}\n\tconst unknown = blocks?.filter((block) => !(block in blockMigrations)) ?? [];\n\tif (unknown.length > 0) {\n\t\tdie(`unknown block(s): ${unknown.join(', ')}`, MIGRATE_USAGE);\n\n\t\treturn;\n\t}\n\tconst result = await runMigrations({ blocks, databaseUrl: resolved });\n\tprocess.stdout.write(\n\t\t`\\n${result.applied.length} migration(s) applied, ${result.skipped.length} skipped.\\n`\n\t);\n};\n\nconst runImportCommand = async (argv: string[]) => {\n\tconst { commit, databaseUrl, file, help, source } = parseImportArgs(argv);\n\tif (help) {\n\t\tprocess.stdout.write(IMPORT_USAGE);\n\n\t\treturn;\n\t}\n\tif (source === undefined) {\n\t\tdie('source is required', IMPORT_USAGE);\n\n\t\treturn;\n\t}\n\tconst importer = importers[source];\n\tif (importer === undefined) {\n\t\tdie(`unknown source \"${source}\"`, IMPORT_USAGE);\n\n\t\treturn;\n\t}\n\tif (file === undefined) {\n\t\tdie('file path is required', IMPORT_USAGE);\n\n\t\treturn;\n\t}\n\tconst resolved = databaseUrl ?? process.env['DATABASE_URL'];\n\tif (resolved === undefined || resolved.length === 0) {\n\t\tdie('a Postgres URL is required (--db or DATABASE_URL)', IMPORT_USAGE);\n\n\t\treturn;\n\t}\n\n\tprocess.stdout.write(`[${source}] parsing ${file}…\\n`);\n\tconst result = await importer.parse(file);\n\tprocess.stdout.write(\n\t\t`[${source}] parsed ${result.users.length} user(s), ${result.identities.length} identity row(s).\\n`\n\t);\n\tconst counts = await runImport(result, { commit, databaseUrl: resolved });\n\tif (commit) {\n\t\tprocess.stdout.write(\n\t\t\t`[${source}] inserted ${counts.userCount} user(s), ${counts.identityCount} new identity row(s). ✓\\n`\n\t\t);\n\t} else {\n\t\tprocess.stdout.write(\n\t\t\t`[${source}] dry-run — pass --commit to insert.\\n`\n\t\t);\n\t}\n};\n\nconst main = async () => {\n\tconst argv = process.argv.slice(2);\n\tconst command = argv.shift();\n\tif (command === undefined || command === 'help' || command === '--help') {\n\t\tprocess.stdout.write(TOP_USAGE);\n\n\t\treturn;\n\t}\n\tif (command === 'migrate') {\n\t\tawait runMigrate(argv);\n\n\t\treturn;\n\t}\n\tif (command === 'import') {\n\t\tawait runImportCommand(argv);\n\n\t\treturn;\n\t}\n\tdie(`unknown command \"${command}\"`, TOP_USAGE);\n};\n\nawait main();\n"
32
38
  ],
33
- "mappings": "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",
34
- "debugId": "05E38D74A4CE167A64756E2164756E21",
39
+ "mappings": "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",
40
+ "debugId": "6E4C57DBFBD5A3C964756E2164756E21",
35
41
  "names": []
36
42
  }
package/dist/index.js CHANGED
@@ -6170,6 +6170,9 @@ var oidcProviderRoutes = (config) => {
6170
6170
  if (mtlsResult !== undefined)
6171
6171
  return mtlsResult;
6172
6172
  const clientSecret = bodyClientSecret ?? basicClientSecret;
6173
+ if (config.strictFapi === true && clientSecret !== undefined) {
6174
+ return;
6175
+ }
6173
6176
  const client = await authenticateClient(clientId, clientSecret);
6174
6177
  return client === undefined ? undefined : { client, clientCertThumbprint: undefined };
6175
6178
  };
@@ -6390,7 +6393,7 @@ var oidcProviderRoutes = (config) => {
6390
6393
  subject_types_supported: ["public"],
6391
6394
  tls_client_certificate_bound_access_tokens: true,
6392
6395
  token_endpoint: tokenUrl,
6393
- token_endpoint_auth_methods_supported: [
6396
+ token_endpoint_auth_methods_supported: config.strictFapi === true ? ["private_key_jwt", "self_signed_tls_client_auth"] : [
6394
6397
  "client_secret_basic",
6395
6398
  "client_secret_post",
6396
6399
  "none",
@@ -6403,6 +6406,9 @@ var oidcProviderRoutes = (config) => {
6403
6406
  if (config.deviceAuthorizationStore) {
6404
6407
  discovery.device_authorization_endpoint = `${issuer}${deviceAuthorizationRoute}`;
6405
6408
  }
6409
+ if (config.strictFapi === true) {
6410
+ discovery.require_pushed_authorization_requests = true;
6411
+ }
6406
6412
  if (config.backchannelAuthStore) {
6407
6413
  discovery.backchannel_authentication_endpoint = `${issuer}${backchannelAuthorizationRoute}`;
6408
6414
  discovery.backchannel_token_delivery_modes_supported = ["poll"];
@@ -6515,7 +6521,8 @@ var oidcProviderRoutes = (config) => {
6515
6521
  params2.state = state;
6516
6522
  return respondToClient(redirectUri, responseMode, params2);
6517
6523
  };
6518
- if (client.requirePushedAuthorizationRequests === true && query.request_uri === undefined) {
6524
+ const requirePar = client.requirePushedAuthorizationRequests === true || config.strictFapi === true;
6525
+ if (requirePar && query.request_uri === undefined) {
6519
6526
  return errorRedirect("invalid_request");
6520
6527
  }
6521
6528
  if (client.requireSignedRequestObject === true && query.request === undefined && query.request_uri === undefined) {
@@ -26180,5 +26187,5 @@ export {
26180
26187
  AuthIdentityConflictError
26181
26188
  };
26182
26189
 
26183
- //# debugId=3861326B7894F72964756E2164756E21
26190
+ //# debugId=02ED8EE4D0AFE4F564756E2164756E21
26184
26191
  //# sourceMappingURL=index.js.map