35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
import { AnthropicError } from "../../core/error.mjs";
|
|
/**
|
|
* Reads a JWT from a file on every call. Supports automatic rotation
|
|
* (e.g. Kubernetes projected service-account tokens).
|
|
*/
|
|
export function identityTokenFromFile(path) {
|
|
if (!path) {
|
|
throw new AnthropicError('Identity token file path is empty');
|
|
}
|
|
return async () => {
|
|
const fs = await import('node:fs');
|
|
let content;
|
|
try {
|
|
content = await fs.promises.readFile(path, 'utf-8');
|
|
}
|
|
catch (err) {
|
|
throw new AnthropicError(`Failed to read identity token file at ${path}: ${err}`);
|
|
}
|
|
const token = content.trim();
|
|
if (!token) {
|
|
throw new AnthropicError(`Identity token file at ${path} is empty`);
|
|
}
|
|
return token;
|
|
};
|
|
}
|
|
/**
|
|
* Wraps a static JWT string as an {@link IdentityTokenProvider}.
|
|
*/
|
|
export function identityTokenFromValue(token) {
|
|
if (!token) {
|
|
throw new AnthropicError('Identity token value is empty');
|
|
}
|
|
return () => token;
|
|
}
|
|
//# sourceMappingURL=identity-token.mjs.map
|