// Copyright 2024 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import { version } from './packageJson.js'; import { getUserAgent } from './getUserAgent.js'; type AuthenticateOptionsType = Readonly<{ userIdentifier: string; userSecret: string; }>; export const API_BASE = new URL('https://api.smartling.com/'); export const PROJECT_ID = 'ef62d1ebb'; export async function authenticate({ userIdentifier, userSecret, }: AuthenticateOptionsType): Promise { const res = await fetch(new URL('./auth-api/v2/authenticate', API_BASE), { method: 'POST', headers: { 'content-type': 'application/json', }, body: JSON.stringify({ userIdentifier, userSecret, }), }); if (!res.ok) { throw new Error('Failed to authenticate with Smartling'); } const { response: { data: auth }, } = await res.json(); return new Headers({ authorization: `${auth.tokenType} ${auth.accessToken}`, 'user-agent': getUserAgent(version), }); }