import { ok } from "@atcute/client"; import type { ResourceUri } from "@atcute/lexicons/syntax"; import type { OAuthUserAgent } from "@atcute/oauth-browser-client"; import { serviceClient } from "$lib/api/_request"; import { mainSchema as addSecretSchema } from "$lib/api/lexicons/types/sh/tangled/repo/addSecret"; import { mainSchema as listSecretsSchema, type Secret } from "$lib/api/lexicons/types/sh/tangled/repo/listSecrets"; import { mainSchema as removeSecretSchema } from "$lib/api/lexicons/types/sh/tangled/repo/removeSecret"; export type { Secret }; export const listSecrets = async ( agent: OAuthUserAgent, spindle: string, repo: string ): Promise => { const { secrets } = await ok( serviceClient(agent, spindle).xrpc.call(listSecretsSchema, { params: { repo: repo as ResourceUri } }) ); return secrets ?? []; }; export const addSecret = async ( agent: OAuthUserAgent, spindle: string, repo: string, key: string, value: string ): Promise => { await ok( serviceClient(agent, spindle).xrpc.call(addSecretSchema, { input: { repo: repo as ResourceUri, key, value } }) ); }; export const removeSecret = async ( agent: OAuthUserAgent, spindle: string, repo: string, key: string ): Promise => { await ok( serviceClient(agent, spindle).xrpc.call(removeSecretSchema, { input: { repo: repo as ResourceUri, key } }) ); };