UNPKG

mapnests-browser-sdk

Version:

TypeScript SDK for Mapnests API integration (Distance Matrix, Distance Matrix Details, Geocode, Reverse Geocode)

24 lines (23 loc) 927 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateToken = generateToken; const fetch_remote_time_1 = require("./fetch_remote_time"); async function generateToken(apiKey) { const randInt = Math.floor(Math.random() * 1000000); const utc_time = await (0, fetch_remote_time_1.fetchRemoteTime)(); const expires = utc_time + 30; const input = `${expires}:${randInt}:${apiKey}`; const encoder = new TextEncoder(); const data = encoder.encode(input); const hashBuffer = await crypto.subtle.digest('SHA-256', data); const hashArray = Array.from(new Uint8Array(hashBuffer)); const hash = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); const jsonPayload = { random: randInt, expires: expires, sign: hash, }; const jsonStr = JSON.stringify(jsonPayload); const base64 = btoa(jsonStr); return base64; }