/** * Internxt API Client – Drive API + User Refresh * Nutzt Browser-Token (INXT_TOKEN) für drive-web Endpoints. */ import 'dotenv/config'; import { Storage, Users } from '@internxt/sdk/dist/drive/index.js'; const DRIVE_API_URL = process.env.DRIVE_API_URL || 'https://gateway.internxt.com/drive'; const appDetails = { clientName: 'drive-web', clientVersion: '1.0' }; /** * Erstellt API-Clients mit aktuellem Token. * @param {string} token - Bearer Token (xNewToken) * @returns {{ users: Users, storage: Storage }} */ export function createClients(token) { const apiSecurity = { token, unauthorizedCallback: () => { throw new Error('Token abgelaufen oder ungültig'); }, }; return { users: Users.client(DRIVE_API_URL, appDetails, apiSecurity), storage: Storage.client(DRIVE_API_URL, appDetails, apiSecurity), }; } /** * Holt User-Daten inkl. Bridge-Credentials via refreshUser. * @param {string} token * @returns {Promise<{ user: object, newToken?: string }>} */ export async function refreshUser(token) { const { users } = createClients(token); const response = await users.refreshUser(); const user = response?.user ?? response; return { user, newToken: response?.newToken }; }