UNPKG

@baqhub/sdk

Version:

The official JavaScript SDK for the BAQ federated app platform.

50 lines (49 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HttpBearerSignature = void 0; exports.signatureForRequest = signatureForRequest; const io_js_1 = require("../../helpers/io.js"); const signature_js_1 = require("../../helpers/signature.js"); const string_js_1 = require("../../helpers/string.js"); const credentialsAlgorithm_js_1 = require("../core/credentialsAlgorithm.js"); const httpMethod_js_1 = require("../core/httpMethod.js"); // // I/O. // function signatureToQuery(signature) { const values = [ signature.id, signature.timestamp, io_js_1.base64Bytes.encode(signature.signature), ]; return string_js_1.Str.toUrlBase64(values.join("\\")); } // // Sign. // function signatureForRequest(appRecordId, privateKey, input, timestamp) { const algorithm = credentialsAlgorithm_js_1.CredentialsAlgorithm.ED_25519; const signatureString = [ "baq.url", credentialsAlgorithm_js_1.RCredentialsAlgorithm.encode(algorithm), timestamp, "", input.authorizationId || "", httpMethod_js_1.HttpMethod.GET, input.pathAndQuery, input.host, input.port, "", ].join("\n"); const signatureBytes = (0, signature_js_1.sign)(privateKey, (0, io_js_1.decode)(io_js_1.utf8Bytes, signatureString)); return { id: appRecordId, timestamp, algorithm, signature: signatureBytes, }; } exports.HttpBearerSignature = { request: signatureForRequest, toQuery: signatureToQuery, };