Socket
Socket
Sign inDemoInstall

paypal-braintree-web-client

Package Overview
Dependencies
6
Maintainers
1
Versions
64
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.0.38 to 4.0.39

server/meta.jsx

4

package.json
{
"name": "paypal-braintree-web-client",
"version": "4.0.38",
"version": "4.0.39",
"description": "Shared config between PayPal/Braintree.",

@@ -59,2 +59,3 @@ "main": "index.js",

"bowser": "^1.9.4",
"jsx-pragmatic": "^1.0.11",
"paypal-sdk-constants": "^1.0.12",

@@ -65,2 +66,3 @@ "zalgo-promise": "^1.0.22"

"babel-core": "^7.0.0-bridge.0",
"cheerio": "^1.0.0-rc.2",
"esdoc": "^1.0.4",

@@ -67,0 +69,0 @@ "esdoc-flow-type-plugin": "^1.0.1",

@@ -20,3 +20,5 @@ "use strict";

const DEFAULT_SDK_META = {
url: ''
url: '',
stageHost: '',
apiStageHost: ''
};

@@ -23,0 +25,0 @@ exports.DEFAULT_SDK_META = DEFAULT_SDK_META;

@@ -10,2 +10,4 @@ "use strict";

var _jsxPragmatic = require("jsx-pragmatic");
var _constants = require("./constants");

@@ -17,3 +19,4 @@

// eslint-disable-next-line import/no-nodejs-modules
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function validatePaymentsSDKUrl({

@@ -107,5 +110,21 @@ protocol,

function validateHost(url) {
const {
hostname
} = _url.default.parse(`https://${url}`, true);
if (url !== hostname) {
throw new Error(`Expected only host to be passed, got ${url}`);
}
if (!url.endsWith(_constants.HOST.PAYPAL)) {
throw new Error(`Expected a paypal host`);
}
}
function unpackSDKMeta(sdkMeta) {
const {
url
url,
stageHost,
apiStageHost
} = sdkMeta ? JSON.parse(Buffer.from(sdkMeta, 'base64').toString('utf8')) : _constants.DEFAULT_SDK_META;

@@ -117,2 +136,10 @@

if (stageHost) {
validateHost(stageHost);
}
if (apiStageHost) {
validateHost(apiStageHost);
}
const getSDKLoader = ({

@@ -123,29 +150,43 @@ baseURL = _constants.DEFAULT_LEGACY_SDK_BASE_URL,

if (url) {
return `<script nonce="${nonce}" src="${url}"></script>`;
const attrs = {};
if (stageHost) {
attrs[_paypalSdkConstants.SDK_SETTINGS.STAGE_HOST] = stageHost;
}
if (apiStageHost) {
attrs[_paypalSdkConstants.SDK_SETTINGS.API_STAGE_HOST] = apiStageHost;
}
return (0, _jsxPragmatic.node)("script", _extends({
nonce: nonce,
src: url
}, attrs)).render((0, _jsxPragmatic.html)());
}
return `
<script nonce="${nonce}">
(function() {
if (!window.name || window.name.indexOf('xcomponent') !== 0) {
return;
}
return (0, _jsxPragmatic.node)("script", {
nonce: nonce,
innerHTML: `
(function() {
if (!window.name || window.name.indexOf('xcomponent') !== 0) {
return;
}
var version = window.name.split('__')[2].replace(/_/g, '.');
if (!version.match(/^[0-9a-zA-Z.]+$/)) {
return;
}
var version = window.name.split('__')[2].replace(/_/g, '.');
if (version === '4' || version === 'latest') {
version = '';
}
if (!version.match(/^[0-9a-zA-Z.]+$/)) {
return;
}
var url = '${baseURL}/checkout' + (version ? ('.' + version) : '') + '.js';
if (version === '4' || version === 'latest') {
version = '';
}
var scriptTag = '<scr' + 'ipt src="${url}" data-paypal-checkout data-no-bridge data-state="ppxo_checkout"></scr' + 'ipt>';
document.write(scriptTag);
})();
</script>
`;
var url = '${baseURL}checkout' + (version ? ('.' + version) : '') + '.js';
var scriptTag = '<scr' + 'ipt src="' + url + '" data-paypal-checkout data-no-bridge data-state="ppxo_checkout"></scr' + 'ipt>';
document.write(scriptTag);
})();
`
}).render((0, _jsxPragmatic.html)());
};

@@ -152,0 +193,0 @@

@@ -5,8 +5,10 @@ /* @flow */

import { getScriptUrl } from './script';
import { getScriptUrl, getStageHost, getAPIStageHost } from './script';
export function getSDKMeta() : string {
return base64encode(JSON.stringify({
url: getScriptUrl()
url: getScriptUrl(),
stageHost: getStageHost(),
apiStageHost: getAPIStageHost()
}));
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc