42 lines · 1.1 KB · TypeScript
RawDownload
import * as Effect from "effect/Effect";import * as SqlClient from "effect/unstable/sql/SqlClient"; export default Effect.gen(function* () {  const sql = yield* SqlClient.SqlClient;   yield* sql`    CREATE TABLE IF NOT EXISTS auth_pairing_links (      id TEXT PRIMARY KEY,      credential TEXT NOT NULL UNIQUE,      method TEXT NOT NULL,      role TEXT NOT NULL,      subject TEXT NOT NULL,      created_at TEXT NOT NULL,      expires_at TEXT NOT NULL,      consumed_at TEXT,      revoked_at TEXT    )  `;   yield* sql`    CREATE INDEX IF NOT EXISTS idx_auth_pairing_links_active    ON auth_pairing_links(revoked_at, consumed_at, expires_at)  `;   yield* sql`    CREATE TABLE IF NOT EXISTS auth_sessions (      session_id TEXT PRIMARY KEY,      subject TEXT NOT NULL,      role TEXT NOT NULL,      method TEXT NOT NULL,      issued_at TEXT NOT NULL,      expires_at TEXT NOT NULL,      revoked_at TEXT    )  `;   yield* sql`    CREATE INDEX IF NOT EXISTS idx_auth_sessions_active    ON auth_sessions(revoked_at, expires_at, issued_at)  `;});