πŸ“„ File detail

services/oauth/crypto.ts

🧩 .tsπŸ“ 24 linesπŸ’Ύ 566 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œservices/”, which covers long-lived services (LSP, MCP, OAuth, tool execution, memory, compaction, voice, settings sync, …). On the API surface it exposes generateCodeVerifier, generateCodeChallenge, and generateState β€” mainly functions, hooks, or classes. Dependencies touch crypto.

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

import { createHash, randomBytes } from 'crypto' function base64URLEncode(buffer: Buffer): string { return buffer .toString('base64')

πŸ“€ Exports (heuristic)

  • generateCodeVerifier
  • generateCodeChallenge
  • generateState

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • crypto

πŸ–₯️ Source preview

import { createHash, randomBytes } from 'crypto'

function base64URLEncode(buffer: Buffer): string {
  return buffer
    .toString('base64')
    .replace(/\+/g, '-')
    .replace(/\//g, '_')
    .replace(/=/g, '')
}

export function generateCodeVerifier(): string {
  return base64URLEncode(randomBytes(32))
}

export function generateCodeChallenge(verifier: string): string {
  const hash = createHash('sha256')
  hash.update(verifier)
  return base64URLEncode(hash.digest())
}

export function generateState(): string {
  return base64URLEncode(randomBytes(32))
}