UNPKG

dirigera

Version:

A TypeScript client for IKEA's DIRIGERA smart home hub

19 lines (15 loc) 540 B
import crypto from 'node:crypto' const CODE_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.split('') const CODE_LENGTH = 128 export const CODE_CHALLENGE_METHOD = 'S256' export const generateCodeVerifier = () => { return [...Array(CODE_LENGTH)] .map( () => CODE_CHARACTERS[Math.floor(Math.random() * CODE_CHARACTERS.length)] ) .join('') } export const calculateCodeChallenge = (codeVerifier: string) => { return crypto.createHash('sha256').update(codeVerifier).digest('base64url') }