src/meta.js
/* @flow */
import { SDK_SETTINGS } from '@paypal/sdk-constants/src';
import { base64encode, ATTRIBUTES } from '@krakenjs/belter/src';
import { getScriptUrl, getSDKAttributes } from './script';
const ALLOWED_ATTRS = [
SDK_SETTINGS.AMOUNT,
SDK_SETTINGS.MERCHANT_ID,
SDK_SETTINGS.PARTNER_ATTRIBUTION_ID,
SDK_SETTINGS.POPUPS_DISABLED,
SDK_SETTINGS.ENABLE_3DS,
SDK_SETTINGS.SDK_INTEGRATION_SOURCE,
SDK_SETTINGS.CLIENT_METADATA_ID,
ATTRIBUTES.UID,
SDK_SETTINGS.CSP_NONCE
];
export function getSDKMeta() : string {
const url = getScriptUrl();
const scriptAttrs = getSDKAttributes();
const attrs = {};
for (const attr of Object.keys(scriptAttrs)) {
if (ALLOWED_ATTRS.indexOf(attr) !== -1) {
attrs[attr] = scriptAttrs[attr];
}
}
return base64encode(JSON.stringify({ url, attrs })).replace(/\=+$/, ''); // eslint-disable-line no-useless-escape
}