From 49608cff201b3f2acb80dccd470820b62b370970 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sun, 7 Jun 2026 22:06:49 +0200 Subject: [PATCH] refactor(search,auth): export pure helpers for direct testing encodeCursor/decodeCursor/firstSnippet (opensearch) and decodeJwtPayload (verify) become public exports so tests can hit them without round-tripping through fetch. --- src/auth/verify.ts | 2 +- src/search/opensearch.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/auth/verify.ts b/src/auth/verify.ts index 423a51f..db0008b 100644 --- a/src/auth/verify.ts +++ b/src/auth/verify.ts @@ -7,7 +7,7 @@ interface DidDocument { service?: { id: string; serviceEndpoint: string }[]; } -function decodeJwtPayload(token: string): JwtPayload { +export function decodeJwtPayload(token: string): JwtPayload { const parts = token.split("."); if (parts.length !== 3) throw new Error("Invalid JWT format"); const payload = parts[1].replace(/-/g, "+").replace(/_/g, "/"); diff --git a/src/search/opensearch.ts b/src/search/opensearch.ts index cb0ffe2..3462b73 100644 --- a/src/search/opensearch.ts +++ b/src/search/opensearch.ts @@ -139,7 +139,7 @@ export type SearchOptions = { limit: number; }; -const decodeCursor = (cursor: string): [number, string] | undefined => { +export const decodeCursor = (cursor: string): [number, string] | undefined => { try { const parsed = JSON.parse(atob(cursor)); if ( @@ -157,10 +157,10 @@ const decodeCursor = (cursor: string): [number, string] | undefined => { return undefined; }; -const encodeCursor = (score: number, rkey: string): string => +export const encodeCursor = (score: number, rkey: string): string => btoa(JSON.stringify([score, rkey])); -const firstSnippet = ( +export const firstSnippet = ( highlight: Record | undefined, source: { content?: string; title?: string }, ): string => {