diff --git a/apps/server/src/provider/cursorCredentialStore.ts b/apps/server/src/provider/cursorCredentialStore.ts index c071e2a885789e589e47c375a20eedf4f3aa1c05..9d7d1c3bccff3c31b91284a54e871d7e959630a6 100644 --- a/apps/server/src/provider/cursorCredentialStore.ts +++ b/apps/server/src/provider/cursorCredentialStore.ts @@ -1,5 +1,9 @@ +import * as NodeModule from "node:module"; + const CACHE_MS = 5 * 60_000; +const requireForKeyring = NodeModule.createRequire(import.meta.url); + /** Share one Keychain request across usage history and limits in this server process. */ export function makeCachedCursorAccessTokenReader( read: () => Promise, @@ -24,6 +28,6 @@ export function makeCachedCursorAccessTokenReader( /** Read the Cursor CLI's default macOS credential without invoking the shared security binary. */ export const readMacCursorAccessToken = makeCachedCursorAccessTokenReader(async () => { - const { AsyncEntry } = await import("@napi-rs/keyring"); + const { AsyncEntry } = requireForKeyring("@napi-rs/keyring") as typeof import("@napi-rs/keyring"); return (await new AsyncEntry("cursor-access-token", "cursor-user").getPassword()) ?? null; });