import { smokeTest } from './smoke-test.ts' import { setupUrls } from './setup.ts' import { optionalBoolean, optionalString, type SupabaseAuthInput } from './types.ts' export { accounts } from './accounts.ts' export { smokeTest } from './smoke-test.ts' export { setupUrls } from './setup.ts' export { listProjects } from './list-projects.ts' export { getProject } from './get-project.ts' export { listOrganizations } from './list-organizations.ts' export { listUsers } from './list-users.ts' export { getUser } from './get-user.ts' export { createUser } from './create-user.ts' export { updateUser } from './update-user.ts' export { deleteUser } from './delete-user.ts' export { selectRows } from './select-rows.ts' export { insertRows } from './insert-rows.ts' export { updateRows } from './update-rows.ts' export { deleteRows } from './delete-rows.ts' export { listBuckets } from './list-buckets.ts' export { listObjects } from './list-objects.ts' export { uploadObject } from './upload-object.ts' export { deleteObject } from './delete-object.ts' export { createSignedUrl } from './create-signed-url.ts' export { request } from './request.ts' export { managementRequest } from './management-request.ts' const EXPORTS = [ '.', './accounts', './smoke-test', './setup', './types', './list-projects', './get-project', './list-organizations', './list-users', './get-user', './create-user', './update-user', './delete-user', './select-rows', './insert-rows', './update-rows', './delete-rows', './list-buckets', './list-objects', './upload-object', './delete-object', './create-signed-url', './request', './management-request', ] as const /** * Describe the Supabase package, auth lanes, and export surface. * The default call also runs the safe smoke test (local dry-run, live reads * only when secrets already exist). * @example * import supabase from 'kody:@kody/supabase' * const overview = await supabase() */ export default async function supabaseOverview( input: SupabaseAuthInput & { setupOnly?: boolean dryRun?: boolean } & Record = {}, ) { const auth = { account: optionalString(input.account, 'account'), secretName: optionalString(input.secretName, 'secretName'), patSecretName: optionalString(input.patSecretName, 'patSecretName'), serviceRoleSecretName: optionalString( input.serviceRoleSecretName, 'serviceRoleSecretName', ), projectRef: optionalString(input.projectRef, 'projectRef'), projectUrl: optionalString(input.projectUrl, 'projectUrl'), } const smoke = await smokeTest({ ...auth, setupOnly: optionalBoolean(input.setupOnly, 'setupOnly'), dryRun: optionalBoolean(input.dryRun, 'dryRun'), }) return { name: '@kody/supabase', publicUrl: 'https://kody.codes/@kody/supabase', intent: 'Official helpers for your Supabase projects, Auth admin, PostgREST tables, Storage, and Management API.', setup: setupUrls(auth), exports: EXPORTS, smoke, } }