Socket
Socket
Sign inDemoInstall

@commercetools/checkout-browser-sdk

Package Overview
Dependencies
1
Maintainers
12
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.1 to 0.7.0-next.0

vite.config.ts

2

browser/sdk.js

@@ -1,1 +0,1 @@

!function(){var e;let o,n={};class t extends Error{constructor(e){super(`Missing field in the configuration: ${e}`),Object.setPrototypeOf(this,t.prototype)}}let r=()=>{if(!n.region&&!n.host)throw new t("region");return n.region?`https://app.checkout.${n.region}.commercetools.com`:n.host},i=()=>n,c=(e,o=!1)=>(o&&(n={}),n={paymentButtonSelector:"paymentButtonSelector"in e?e.paymentButtonSelector:n.paymentButtonSelector,skipConfirmationPages:"skipConfirmationPages"in e?e.skipConfirmationPages:n.skipConfirmationPages,accessToken:"accessToken"in e?e.accessToken:n.accessToken,applicationId:"applicationId"in e?e.applicationId:n.applicationId,applicationKey:"applicationKey"in e?e.applicationKey:n.applicationKey,callbackUrl:"callbackUrl"in e?e.callbackUrl:n.callbackUrl,returnUrl:"returnUrl"in e?e.returnUrl:n.returnUrl,sellerId:"sellerId"in e?e.sellerId:n.sellerId,cartId:"cartId"in e?e.cartId:n.cartId,host:"host"in e?e.host:n.host,paymentReference:"paymentReference"in e?e.paymentReference:n.paymentReference,locale:"locale"in e?e.locale:n.locale,projectKey:"projectKey"in e?e.projectKey:n.projectKey,storeKey:"storeKey"in e?e.storeKey:n.storeKey,skipShipping:"skipShipping"in e?e.skipShipping:n.skipShipping,styles:"styles"in e?e.styles:n.styles,languageOverrides:"languageOverrides"in e?e.languageOverrides:n.languageOverrides,forms:"forms"in e?e.forms:n.forms,currencyLocale:"currencyLocale"in e?e.currencyLocale:n.currencyLocale,showTaxes:"showTaxes"in e?e.showTaxes:n.showTaxes,sessionId:"sessionId"in e?e.sessionId:n.sessionId,region:"region"in e?e.region:n.region}),l="commercetools-checkout",a=document.body.style.overflow,s=()=>{let e=document.querySelectorAll("[data-ctc]");return e.length>0&&(e[0]instanceof HTMLDivElement||e[0]instanceof HTMLSpanElement)?e[0]:null};(e||(e={})).InitCheckout="init_checkout";let d=()=>{if(window.commercetoolsCheckout&&window.commercetoolsCheckout.root&&window.commercetoolsCheckout.root.unmount)window.commercetoolsCheckout.root.unmount();else{let e=s();e&&(e.innerHTML="")}let e=document.getElementById(l);e&&(document.body.style.overflow=a,e.remove()),o&&window.removeEventListener("message",o)},u=()=>{o=({origin:e,data:o})=>{if(e===window.location.origin){if((null==o?void 0:o.code)==="checkout_cancelled"&&d(),(null==o?void 0:o.code)==="checkout_loaded"){let e=Object.assign({},i());window.postMessage({code:"init_checkout",payload:e},window.location.origin)}if((null==o?void 0:o.code)==="checkout_completed"){var n;d();let{id:e}=(null==o?void 0:null===(n=o.payload)||void 0===n?void 0:n.order)||{},{callbackUrl:t,returnUrl:r}=i();r?window.location.href=`${r}?orderId=${e}`:t&&(window.location.href=`${t}?orderId=${e}`)}}},window.addEventListener("message",o)},p=async()=>{if(d(),u(),!s()){let e=document.createElement("div");e.setAttribute("id",l),document.body.appendChild(e),document.body.style.overflow="hidden"}if("object"==typeof window.commercetoolsCheckout&&"function"==typeof window.commercetoolsCheckout.render)window.commercetoolsCheckout.render();else{let e=document.createElement("script");e.src=`${r()}/main.js`,document.head.appendChild(e)}},m=e=>o=>{if(!e||!o)return!1;if("*"===e||o===e)return!0;let n=e.split(":"),t=o.split(":");return!!t[0]&&n[0]===t[0]&&m(n.slice(1).join(":"))(t.slice(1).join(":"))},w={},y=(e,o)=>{let n=`${e}_${Math.round(1e15*Math.random())}`,t=({origin:n,data:t})=>{if(n!==window.location.origin||"commercetoolsCheckout"!==t.source)return;let r=t||{};m(e)(r.type)&&o(r)};return window.addEventListener("message",t),w[n]=t,n},f=e=>window.removeEventListener("message",w[e]),h={},g=e=>{[["info","onInfo"],["warn","onWarn"],["error","onError"]].forEach(o=>{let n=o[0],t=o[1];"function"==typeof e[t]&&(h[t]&&f(h[t]),h[t]=y(`${n}:*`,e[t]))})},k=e=>{[["info","logInfo"],["warn","logWarn"],["error","logError"]].forEach(o=>{let n=o[0],t=o[1];!0===e[t]&&(h[t]&&f(h[t]),h[t]=y(`${n}:*`,function(e){console[n]("[ctc]",e.type,e.code,e.payload||{})}))})},v={checkout:e=>{c(e),p()},init:e=>{if("object"!=typeof e)throw Error("Bad config, please review docs");"object"==typeof e.checkoutConfig&&c(e.checkoutConfig),g(e),k(e)},subscribe:y,unsubscribe:f};function I(e){return v[e]&&v[e].apply(null,Array.prototype.slice.call(arguments,1))}window.ctc&&Array.isArray(window.ctc.queue)&&window.ctc.queue.forEach(e=>I.apply(null,e)),window.ctc&&Array.isArray(window.ctc.q)&&window.ctc.q.forEach(e=>I.apply(null,e)),window.ctc=I}();
(function(o){typeof define=="function"&&define.amd?define(o):o()})(function(){"use strict";let o={};class d extends Error{constructor(c){super(`Missing field in the configuration: ${c}`),Object.setPrototypeOf(this,d.prototype)}}const v=()=>{if(!o.region&&!o.host)throw new d("region");return o.region?`https://app.checkout.${o.region}.commercetools.com`:o.host},y=()=>o,f=(e,c=!1)=>(c&&(o={}),o={skipConfirmationPages:"skipConfirmationPages"in e?e.skipConfirmationPages:o.skipConfirmationPages,accessToken:"accessToken"in e?e.accessToken:o.accessToken,applicationId:"applicationId"in e?e.applicationId:o.applicationId,applicationKey:"applicationKey"in e?e.applicationKey:o.applicationKey,callbackUrl:"callbackUrl"in e?e.callbackUrl:o.callbackUrl,returnUrl:"returnUrl"in e?e.returnUrl:o.returnUrl,sellerId:"sellerId"in e?e.sellerId:o.sellerId,cartId:"cartId"in e?e.cartId:o.cartId,host:"host"in e?e.host:o.host,paymentReference:"paymentReference"in e?e.paymentReference:o.paymentReference,locale:"locale"in e?e.locale:o.locale,projectKey:"projectKey"in e?e.projectKey:o.projectKey,storeKey:"storeKey"in e?e.storeKey:o.storeKey,styles:"styles"in e?e.styles:o.styles,languageOverrides:"languageOverrides"in e?e.languageOverrides:o.languageOverrides,forms:"forms"in e?e.forms:o.forms,currencyLocale:"currencyLocale"in e?e.currencyLocale:o.currencyLocale,showTaxes:"showTaxes"in e?e.showTaxes:o.showTaxes,sessionId:"sessionId"in e?e.sessionId:o.sessionId,region:"region"in e?e.region:o.region,browserSdkVersion:"0.7.0-next.0"},o),k=e=>c=>{if(!e||!c)return!1;if(e==="*"||c===e)return!0;const t=e.split(":"),s=c.split(":");return!s[0]||t[0]!==s[0]?!1:k(t.slice(1).join(":"))(s.slice(1).join(":"))},b={},u=(e,c)=>{const t=`${e}_${Math.round(Math.random()*1e15)}`,s=({origin:r,data:n})=>{if(r!==window.location.origin||n.source!=="commercetoolsCheckout")return;const l=n||{};k(e)(l.type)&&c(l)};return window.addEventListener("message",s),b[t]=s,t},p=e=>window.removeEventListener("message",b[e]),i={},U=(e,c)=>{[["info","onInfo"],["warn","onWarn"],["error","onError"]].forEach(t=>{const s=t[0],r=t[1];typeof e[r]=="function"&&(i[r]&&p(i[r]),i[r]=u(`${s}:*`,e[r]))})},L=(e,c)=>{[["info","logInfo"],["warn","logWarn"],["error","logError"]].forEach(t=>{const s=t[0],r=t[1];e[r]===!0&&(i[r]&&p(i[r]),i[r]=u(`${s}:*`,function(n){console[s]("[ctc]",n.type,n.code,n.payload||{})}))})},M=e=>{if(typeof e!="object")throw new Error("Bad config, please review docs");typeof e.checkoutConfig=="object"&&f(e.checkoutConfig),U(e),L(e)},w="commercetools-checkout",j="data-ctc";let a;const K=document.body.style.overflow,I=()=>{const e=document.querySelectorAll(`[${j}]`);return e.length>0&&(e[0]instanceof HTMLDivElement||e[0]instanceof HTMLSpanElement)?e[0]:null},m=()=>{if(window.commercetoolsCheckout&&window.commercetoolsCheckout.root&&window.commercetoolsCheckout.root.unmount)window.commercetoolsCheckout.root.unmount();else{const t=I();t&&(t.innerHTML="")}const c=document.getElementById(w);c&&(document.body.style.overflow=K,c.remove()),a&&window.removeEventListener("message",a)},$=e=>{a=({origin:c,data:t})=>{var s;if(c===window.location.origin){if((t==null?void 0:t.code)==="checkout_cancelled"&&m(),(t==null?void 0:t.code)==="checkout_loaded"){const r=Object.assign({},y());window.postMessage({code:"init_checkout",payload:{...r,checkoutMode:e}},window.location.origin)}if((t==null?void 0:t.code)==="checkout_completed"){m();const{id:r}=((s=t==null?void 0:t.payload)==null?void 0:s.order)||{},{callbackUrl:n,returnUrl:l}=y();l?window.location.href=`${l}?orderId=${r}`:n&&(window.location.href=`${n}?orderId=${r}`)}}},window.addEventListener("message",a)},A=async(e="complete-flow")=>{if(m(),$(e),!I()){const c=document.createElement("div");c.setAttribute("id",w),document.body.appendChild(c),document.body.style.overflow="hidden"}if(typeof window.commercetoolsCheckout=="object"&&typeof window.commercetoolsCheckout.render=="function")window.commercetoolsCheckout.render();else{const c=document.createElement("script");c.src=`${v()}/main.js`,document.head.appendChild(c)}},E={checkout:e=>{f(e),A()},init:M,subscribe:u,unsubscribe:p};function h(e){return E[e]&&E[e].apply(null,Array.prototype.slice.call(arguments,1))}window.ctc&&Array.isArray(window.ctc.queue)&&window.ctc.queue.forEach(e=>h.apply(null,e)),window.ctc&&Array.isArray(window.ctc.q)&&window.ctc.q.forEach(e=>h.apply(null,e)),window.ctc=h});
# @commercetools/checkout-browser-sdk
## 0.7.0-next.0
### Minor Changes
- 07ec389: Added new payment command for payment-only mode
### Patch Changes
- 8e26bd3: change build system to vite
## 0.6.1

@@ -4,0 +14,0 @@

@@ -1,5 +0,13 @@

import { CheckoutData } from './services/config';
export declare const addMessageEventListener: () => void;
import { CheckoutData, PaymentData } from './services/config';
export declare enum CheckoutMode {
completeFlow = "complete-flow",
paymentOnly = "payment-only"
}
export declare const addMessageEventListener: (checkoutMode: CheckoutMode) => void;
export declare const createModal: (checkoutType?: CheckoutMode) => Promise<void>;
export type Checkout = (checkoutData: CheckoutData) => void;
export declare const checkout: Checkout;
export type Payment = (paymentData: PaymentData) => void;
export declare const payment: Payment;
export declare const close: () => void;
declare global {

@@ -6,0 +14,0 @@ interface Window {

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.checkout = exports.addMessageEventListener = void 0;
exports.close = exports.payment = exports.checkout = exports.createModal = exports.addMessageEventListener = exports.CheckoutMode = void 0;
const init_1 = require("./init");
const config_1 = require("./services/config");
var CheckoutMode;
(function (CheckoutMode) {
CheckoutMode["completeFlow"] = "complete-flow";
CheckoutMode["paymentOnly"] = "payment-only";
})(CheckoutMode || (exports.CheckoutMode = CheckoutMode = {}));
const MODAL_ID = 'commercetools-checkout';

@@ -43,3 +49,3 @@ const CONTAINER_EMBEDDED = 'data-ctc';

};
const addMessageEventListener = () => {
const addMessageEventListener = (checkoutMode) => {
listener = ({ origin, data }) => {

@@ -54,3 +60,6 @@ var _a;

const checkoutConfig = Object.assign({}, (0, config_1.getCheckoutConfig)());
window.postMessage({ code: PostMessageCodes.InitCheckout, payload: checkoutConfig }, window.location.origin);
window.postMessage({
code: PostMessageCodes.InitCheckout,
payload: Object.assign(Object.assign({}, checkoutConfig), { checkoutMode }),
}, window.location.origin);
}

@@ -72,5 +81,5 @@ if ((data === null || data === void 0 ? void 0 : data.code) === 'checkout_completed') {

exports.addMessageEventListener = addMessageEventListener;
const createModal = async () => {
const createModal = async (checkoutType = CheckoutMode.completeFlow) => {
closeModal();
(0, exports.addMessageEventListener)();
(0, exports.addMessageEventListener)(checkoutType);
if (!getEmbeddedContainer()) {

@@ -92,7 +101,21 @@ const div = document.createElement('div');

};
exports.createModal = createModal;
const checkout = (checkoutData) => {
(0, config_1.updateCheckoutConfig)(checkoutData);
createModal();
(0, exports.createModal)();
};
exports.checkout = checkout;
const payment = (config) => {
if (typeof config !== 'object')
throw new Error('Bad config, please review docs');
(0, config_1.updateCheckoutConfig)(config, true);
(0, init_1.handleCustomSubscriptions)(config, true);
(0, init_1.handleDefaultSubscriptions)(config, true);
(0, exports.createModal)(CheckoutMode.paymentOnly);
};
exports.payment = payment;
const close = () => {
closeModal();
};
exports.close = close;
//# sourceMappingURL=checkout.js.map

@@ -1,2 +0,2 @@

import { CheckoutData } from './services/config';
import { CheckoutData, PaymentData } from './services/config';
import { Handler } from './subscriptions';

@@ -13,3 +13,5 @@ type Config = {

export type Init = (config: Config) => void;
export declare const handleCustomSubscriptions: (config: Config | PaymentData, forceUnsubscribe?: boolean) => void;
export declare const handleDefaultSubscriptions: (config: Config | PaymentData, forceUnsubscribe?: boolean) => void;
export declare const init: Init;
export {};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.init = void 0;
exports.init = exports.handleDefaultSubscriptions = exports.handleCustomSubscriptions = void 0;
const config_1 = require("./services/config");
const subscriptions_1 = require("./subscriptions");
const subscriptions = {};
const handleCustomSubscriptions = (config) => {
const handleCustomSubscriptions = (config, forceUnsubscribe) => {
[

@@ -15,2 +15,4 @@ ['info', 'onInfo'],

const fnName = i[1];
if (forceUnsubscribe && subscriptions[fnName])
(0, subscriptions_1.unsubscribe)(subscriptions[fnName]);
if (typeof config[fnName] === 'function') {

@@ -23,3 +25,4 @@ if (subscriptions[fnName])

};
const handleDefaultSubscriptions = (config) => {
exports.handleCustomSubscriptions = handleCustomSubscriptions;
const handleDefaultSubscriptions = (config, forceUnsubscribe) => {
[

@@ -32,2 +35,4 @@ ['info', 'logInfo'],

const fnName = i[1];
if (forceUnsubscribe && subscriptions[fnName])
(0, subscriptions_1.unsubscribe)(subscriptions[fnName]);
if (config[fnName] === true) {

@@ -42,2 +47,3 @@ if (subscriptions[fnName])

};
exports.handleDefaultSubscriptions = handleDefaultSubscriptions;
const init = (config) => {

@@ -48,6 +54,6 @@ if (typeof config !== 'object')

(0, config_1.updateCheckoutConfig)(config.checkoutConfig);
handleCustomSubscriptions(config);
handleDefaultSubscriptions(config);
(0, exports.handleCustomSubscriptions)(config);
(0, exports.handleDefaultSubscriptions)(config);
};
exports.init = init;
//# sourceMappingURL=init.js.map

@@ -0,1 +1,2 @@

import { Handler } from '../subscriptions';
type Definitions = Record<string, string> | {

@@ -92,3 +93,21 @@ [key: string]: Definitions;

};
export type CheckoutData = {
export type PaymentData = {
currencyLocale?: string;
languageOverrides?: Definitions;
locale?: string;
paymentReference?: string;
projectKey?: string;
region?: string;
sessionId?: string;
storeKey?: string;
styles?: Record<string, string>;
browserSdkVersion?: string;
onInfo?: Handler;
onWarn?: Handler;
onError?: Handler;
logInfo?: boolean;
logWarn?: boolean;
logError?: boolean;
};
export type CheckoutData = PaymentData & {
/** @deprecated use sessionId instead */

@@ -110,16 +129,5 @@ accessToken?: string;

host?: string;
currencyLocale?: string;
forms?: Forms;
languageOverrides?: Definitions;
locale?: string;
paymentButtonSelector?: string;
paymentReference?: string;
projectKey?: string;
region?: string;
sessionId?: string;
showTaxes?: boolean;
skipConfirmationPages?: string;
skipShipping?: boolean;
storeKey?: string;
styles?: Record<string, string>;
};

@@ -126,0 +134,0 @@ export declare class MissingConfigurationField extends Error {

@@ -40,6 +40,2 @@ "use strict";

checkoutConfig = {
// not documented:
paymentButtonSelector: 'paymentButtonSelector' in newConfig
? newConfig.paymentButtonSelector
: checkoutConfig.paymentButtonSelector,
skipConfirmationPages: 'skipConfirmationPages' in newConfig

@@ -64,3 +60,2 @@ ? newConfig.skipConfirmationPages

storeKey: 'storeKey' in newConfig ? newConfig.storeKey : checkoutConfig.storeKey,
skipShipping: 'skipShipping' in newConfig ? newConfig.skipShipping : checkoutConfig.skipShipping,
styles: 'styles' in newConfig ? newConfig.styles : checkoutConfig.styles,

@@ -75,2 +70,3 @@ languageOverrides: 'languageOverrides' in newConfig

region: 'region' in newConfig ? newConfig.region : checkoutConfig.region,
browserSdkVersion: process.env.__VERSION__,
};

@@ -77,0 +73,0 @@ return checkoutConfig;

{
"private": false,
"name": "@commercetools/checkout-browser-sdk",
"version": "0.6.1",
"version": "0.7.0-next.0",
"main": "dist/index.js",

@@ -11,4 +11,4 @@ "types": "dist/index.d.ts",

"dependencies": {
"@swc/helpers": "0.5.10"
"@swc/helpers": "0.5.11"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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