UNPKG

@atomicjolt/lti-client

Version:

Client Javascript libraries to handle LTI.

34 lines 1.22 kB
import { DEEP_LINKING_CLAIM, LAUNCH_PRESENTATION, MESSAGE_TYPE, MessageTypes, NAMES_AND_ROLES_CLAIM, NAMES_AND_ROLES_SERVICE_VERSIONS, AGS_CLAIM, } from '@atomicjolt/lti-types'; export function lmsHost(idToken) { if (isDeepLinkLaunch(idToken)) { return idToken[DEEP_LINKING_CLAIM]?.deep_link_return_url || null; } else { return idToken[LAUNCH_PRESENTATION]?.return_url || null; } } export function lmsUrl(idToken) { return `https://${lmsHost(idToken)}`; } export function isDeepLinkLaunch(idToken) { return idToken[MESSAGE_TYPE] === MessageTypes.LtiDeepLinkingRequest; } export function isNamesAndRolesLaunch(idToken) { return idToken[NAMES_AND_ROLES_CLAIM]?.service_versions === NAMES_AND_ROLES_SERVICE_VERSIONS; } export function isAssignmentAndGradesLaunch(idToken) { return !!idToken[AGS_CLAIM]; } export function clientId(idToken) { if (idToken.auds && idToken.auds.length > 1 && idToken.azp) { // azp will contain the client_id if there are multiple auds return idToken.azp; } else if (idToken.auds && idToken.auds[0]) { return idToken.auds[0]; } else { return idToken.aud; } } //# sourceMappingURL=lti.js.map