UNPKG

@aws-amplify/auth

Version:
1 lines 6.6 kB
{"version":3,"file":"serde.mjs","sources":["../../../../../src/client/utils/passkey/serde.ts"],"sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { convertArrayBufferToBase64Url, convertBase64UrlToArrayBuffer, } from '../../../foundation/convert';\n/**\n * Deserializes Public Key Credential Creation Options JSON\n * @param input PasskeyCreateOptionsJson\n * @returns PublicKeyCredentialCreationOptions\n */\nexport const deserializeJsonToPkcCreationOptions = (input) => {\n const userIdBuffer = convertBase64UrlToArrayBuffer(input.user.id);\n const challengeBuffer = convertBase64UrlToArrayBuffer(input.challenge);\n const excludeCredentialsWithBuffer = (input.excludeCredentials || []).map(excludeCred => ({\n ...excludeCred,\n id: convertBase64UrlToArrayBuffer(excludeCred.id),\n }));\n return {\n ...input,\n excludeCredentials: excludeCredentialsWithBuffer,\n challenge: challengeBuffer,\n user: {\n ...input.user,\n id: userIdBuffer,\n },\n };\n};\n/**\n * Serializes a Public Key Credential With Attestation to JSON\n * @param input PasskeyCreateResult\n * @returns PasskeyCreateResultJson\n */\nexport const serializePkcWithAttestationToJson = (input) => {\n const response = {\n clientDataJSON: convertArrayBufferToBase64Url(input.response.clientDataJSON),\n attestationObject: convertArrayBufferToBase64Url(input.response.attestationObject),\n transports: input.response.getTransports(),\n publicKeyAlgorithm: input.response.getPublicKeyAlgorithm(),\n authenticatorData: convertArrayBufferToBase64Url(input.response.getAuthenticatorData()),\n };\n const publicKey = input.response.getPublicKey();\n if (publicKey) {\n response.publicKey = convertArrayBufferToBase64Url(publicKey);\n }\n const resultJson = {\n type: input.type,\n id: input.id,\n rawId: convertArrayBufferToBase64Url(input.rawId),\n clientExtensionResults: input.getClientExtensionResults(),\n response,\n };\n if (input.authenticatorAttachment) {\n resultJson.authenticatorAttachment = input.authenticatorAttachment;\n }\n return resultJson;\n};\n/**\n * Deserializes Public Key Credential Get Options JSON\n * @param input PasskeyGetOptionsJson\n * @returns PublicKeyCredentialRequestOptions\n */\nexport const deserializeJsonToPkcGetOptions = (input) => {\n const challengeBuffer = convertBase64UrlToArrayBuffer(input.challenge);\n const allowedCredentialsWithBuffer = (input.allowCredentials || []).map(allowedCred => ({\n ...allowedCred,\n id: convertBase64UrlToArrayBuffer(allowedCred.id),\n }));\n return {\n ...input,\n challenge: challengeBuffer,\n allowCredentials: allowedCredentialsWithBuffer,\n };\n};\n/**\n * Serializes a Public Key Credential With Attestation to JSON\n * @param input PasskeyGetResult\n * @returns PasskeyGetResultJson\n */\nexport const serializePkcWithAssertionToJson = (input) => {\n const response = {\n clientDataJSON: convertArrayBufferToBase64Url(input.response.clientDataJSON),\n authenticatorData: convertArrayBufferToBase64Url(input.response.authenticatorData),\n signature: convertArrayBufferToBase64Url(input.response.signature),\n };\n if (input.response.userHandle) {\n response.userHandle = convertArrayBufferToBase64Url(input.response.userHandle);\n }\n const resultJson = {\n id: input.id,\n rawId: convertArrayBufferToBase64Url(input.rawId),\n type: input.type,\n clientExtensionResults: input.getClientExtensionResults(),\n response,\n };\n if (input.authenticatorAttachment) {\n resultJson.authenticatorAttachment = input.authenticatorAttachment;\n }\n return resultJson;\n};\n"],"names":[],"mappings":"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"}