@sazito/checkout 0.4.19 → 0.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -37
- package/dist/chunks/{labels-Cy05dLJx.cjs → labels-BYJQjaT_.cjs} +9 -5
- package/dist/chunks/labels-BYJQjaT_.cjs.map +1 -0
- package/dist/chunks/{labels-Cysz2BgA.js → labels-Cqrb2MwA.js} +9 -5
- package/dist/chunks/labels-Cqrb2MwA.js.map +1 -0
- package/dist/chunks/{use-checkout-uWEi8iqK.js → use-checkout-BRDfZp4Z.js} +8 -5
- package/dist/chunks/use-checkout-BRDfZp4Z.js.map +1 -0
- package/dist/chunks/{use-checkout-wHkKNkbK.cjs → use-checkout-MM-Ld0Ew.cjs} +7 -4
- package/dist/chunks/use-checkout-MM-Ld0Ew.cjs.map +1 -0
- package/dist/core/index.cjs +3 -1
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.cts +18 -4
- package/dist/core/index.d.ts +18 -4
- package/dist/core/index.js +2 -2
- package/dist/next/index.cjs +12 -6
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.d.cts +10 -3
- package/dist/next/index.d.ts +10 -3
- package/dist/next/index.js +14 -8
- package/dist/next/index.js.map +1 -1
- package/dist/next/payment-return.cjs +52 -0
- package/dist/next/payment-return.cjs.map +1 -1
- package/dist/next/payment-return.d.cts +16 -2
- package/dist/next/payment-return.d.ts +16 -2
- package/dist/next/payment-return.js +51 -1
- package/dist/next/payment-return.js.map +1 -1
- package/dist/next/server.cjs +10 -0
- package/dist/next/server.cjs.map +1 -0
- package/dist/next/server.d.cts +33 -0
- package/dist/next/server.d.ts +33 -0
- package/dist/next/server.js +4 -0
- package/dist/next/server.js.map +1 -0
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.d.cts +3 -2
- package/dist/react/index.d.ts +3 -2
- package/dist/react/index.js +2 -2
- package/dist/server/index.cjs +205 -0
- package/dist/server/index.cjs.map +1 -0
- package/dist/server/index.d.cts +33 -0
- package/dist/server/index.d.ts +33 -0
- package/dist/server/index.js +203 -0
- package/dist/server/index.js.map +1 -0
- package/package.json +30 -2
- package/dist/chunks/labels-Cy05dLJx.cjs.map +0 -1
- package/dist/chunks/labels-Cysz2BgA.js.map +0 -1
- package/dist/chunks/use-checkout-uWEi8iqK.js.map +0 -1
- package/dist/chunks/use-checkout-wHkKNkbK.cjs.map +0 -1
package/dist/core/index.d.ts
CHANGED
|
@@ -105,7 +105,14 @@ interface CheckoutPaymentReturn {
|
|
|
105
105
|
identifier: string;
|
|
106
106
|
};
|
|
107
107
|
params: Record<string, string>;
|
|
108
|
+
/**
|
|
109
|
+
* `callback` forwards gateway fields for verification. `status` is emitted
|
|
110
|
+
* by the SDK server handler after it has already verified the gateway POST,
|
|
111
|
+
* so the browser performs only an authoritative status read.
|
|
112
|
+
*/
|
|
113
|
+
resolution?: PaymentReturnResolution;
|
|
108
114
|
}
|
|
115
|
+
type PaymentReturnResolution = 'callback' | 'status';
|
|
109
116
|
/** Search-param shape exposed by current Next.js App Router pages. */
|
|
110
117
|
type PaymentReturnSearchParams = Record<string, string | string[] | undefined>;
|
|
111
118
|
interface PaymentReturnParserOptions {
|
|
@@ -259,8 +266,8 @@ interface CheckoutActions {
|
|
|
259
266
|
placeOrder(): Promise<void>;
|
|
260
267
|
/** Rehydrate a failed gateway return and reopen a usable payment step. */
|
|
261
268
|
retryPayment(): Promise<void>;
|
|
262
|
-
/** Resolve a
|
|
263
|
-
resolvePaymentReturn(params: Record<string, string
|
|
269
|
+
/** Resolve a gateway callback or a server-verified payment status return. */
|
|
270
|
+
resolvePaymentReturn(params: Record<string, string>, resolution?: PaymentReturnResolution): Promise<void>;
|
|
264
271
|
reset(): void;
|
|
265
272
|
}
|
|
266
273
|
|
|
@@ -311,6 +318,13 @@ declare function createBrowserEffectExecutor(config?: CheckoutConfig): CheckoutE
|
|
|
311
318
|
/** A no-op executor for SSR / tests. */
|
|
312
319
|
declare const noopEffectExecutor: CheckoutEffectExecutor;
|
|
313
320
|
|
|
321
|
+
declare const SAZITO_PAYMENT_STATUS_QUERY: {
|
|
322
|
+
readonly resolution: "sazito_payment_return";
|
|
323
|
+
readonly paymentId: "sazito_payment_id";
|
|
324
|
+
readonly paymentIdentifier: "sazito_payment_identifier";
|
|
325
|
+
};
|
|
326
|
+
/** Remove internal payment-return credentials from the visible URL after they are read. */
|
|
327
|
+
declare function stripPaymentStatusReturn(url: string | URL): string | undefined;
|
|
314
328
|
declare const SAZITO_PAYMENT_RESULT_MARKERS: readonly ["mellatpaymentresult", "pecpaymentresult", "uppaymentresult", "seppaymentresult", "vandarpaymentresult", "yourgatepaymentresult", "bazarpaymentresult", "zifypaymentresult", "zibalpaymentresult", "snapppaypaymentresult", "torobpaypaymentresult", "ghestapaypaymentresult", "azkipaymentresult", "digipaypaymentresult", "greenpaypaymentresult", "novapaypaymentresult", "zarinpluspaymentresult", "tomanpaymentresult", "tarapaymentresult", "ozonpaymentresult", "millipaypaymentresult", "ayriapaymentresult", "sadadpaymentresult", "freepaymentresult", "paymentinplaceresult", "cardtocardpaymentresult", "zarinpalpaymentresult", "directpayresult", "paypingpaymentresult", "podpaymentresult", "sabinpaymentresult", "firoozepaymentresult", "technopaypaymentresult", "buywithdigikalaresult"];
|
|
315
329
|
/**
|
|
316
330
|
* Parse Sazito's nested payment callback path into checkout-ready data.
|
|
@@ -538,5 +552,5 @@ declare function selectSummary(invoice: Invoice | null): CheckoutSummary;
|
|
|
538
552
|
/** Items that don't require shipping (digital), for display in the shipping step. */
|
|
539
553
|
declare function selectDigitalItems(invoice: Invoice | null, groups: ShippingGroup[], applicable: ApplicableShippingMethods | null): InvoiceItem[];
|
|
540
554
|
|
|
541
|
-
export { SAZITO_PAYMENT_RESULT_MARKERS, addressFormFromInvoice, buildShippingAssignments, classifyAppliedDiscount, createBrowserEffectExecutor, createCheckoutEngine, createSdkBinding, createStore, defaultCurrencyLabel, deriveShippingGroups, emptyAddressForm, formatMoney, formatNumber, formatPercent, formatPrice, fromSdkError, isAddressComplete, isAddressDirty, isDigitalServiceGroup, isShippingComplete, isValidIranianMobile, isValidIranianPhone, makeError, makeEvent, messageForCode, noopEffectExecutor, normalizeIranianPhone, parsePaymentReturn, parsePaymentReturnUrl, paymentMethodInfo, paymentMethodLabel, selectDigitalItems, selectSummary, sortCartItemsNewestFirst, strings, toEnglishDigits, toPersianDigits };
|
|
542
|
-
export type { AddressFormValues, AppliedDiscount, CheckoutActions, CheckoutCity, CheckoutConfig, CheckoutCredentials, CheckoutDirection, CheckoutEffect, CheckoutEffectExecutor, CheckoutEngine, CheckoutEngineOptions, CheckoutError, CheckoutErrorCode, CheckoutEvent, CheckoutEventName, CheckoutFlags, CheckoutLocale, CheckoutPaymentReturn, CheckoutRegion, CheckoutResult, CheckoutResultStatus, CheckoutSdkBinding, CheckoutState, CheckoutStatus, CheckoutStep, CheckoutSummary, CheckoutTheme, DiscountKind, PaymentMethodInfo, PaymentMethodKind, PaymentReturnParserOptions, PaymentReturnSearchParams, ShippingGroup, Store, Strings, SummaryLine, SummaryLineKey };
|
|
555
|
+
export { SAZITO_PAYMENT_RESULT_MARKERS, SAZITO_PAYMENT_STATUS_QUERY, addressFormFromInvoice, buildShippingAssignments, classifyAppliedDiscount, createBrowserEffectExecutor, createCheckoutEngine, createSdkBinding, createStore, defaultCurrencyLabel, deriveShippingGroups, emptyAddressForm, formatMoney, formatNumber, formatPercent, formatPrice, fromSdkError, isAddressComplete, isAddressDirty, isDigitalServiceGroup, isShippingComplete, isValidIranianMobile, isValidIranianPhone, makeError, makeEvent, messageForCode, noopEffectExecutor, normalizeIranianPhone, parsePaymentReturn, parsePaymentReturnUrl, paymentMethodInfo, paymentMethodLabel, selectDigitalItems, selectSummary, sortCartItemsNewestFirst, strings, stripPaymentStatusReturn, toEnglishDigits, toPersianDigits };
|
|
556
|
+
export type { AddressFormValues, AppliedDiscount, CheckoutActions, CheckoutCity, CheckoutConfig, CheckoutCredentials, CheckoutDirection, CheckoutEffect, CheckoutEffectExecutor, CheckoutEngine, CheckoutEngineOptions, CheckoutError, CheckoutErrorCode, CheckoutEvent, CheckoutEventName, CheckoutFlags, CheckoutLocale, CheckoutPaymentReturn, CheckoutRegion, CheckoutResult, CheckoutResultStatus, CheckoutSdkBinding, CheckoutState, CheckoutStatus, CheckoutStep, CheckoutSummary, CheckoutTheme, DiscountKind, PaymentMethodInfo, PaymentMethodKind, PaymentReturnParserOptions, PaymentReturnResolution, PaymentReturnSearchParams, ShippingGroup, Store, Strings, SummaryLine, SummaryLineKey };
|
package/dist/core/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { a as addressFormFromInvoice, b as buildShippingAssignments, c as classifyAppliedDiscount, d as createBrowserEffectExecutor, e as createCheckoutEngine, f as createSdkBinding, g as createStore, h as defaultCurrencyLabel, i as deriveShippingGroups, j as emptyAddressForm, k as formatMoney, l as formatNumber, m as formatPercent, n as formatPrice, o as fromSdkError, p as isAddressComplete, q as isAddressDirty, r as isDigitalServiceGroup, s as isShippingComplete, t as isValidIranianMobile, u as isValidIranianPhone, v as makeError, w as makeEvent, x as messageForCode, y as noopEffectExecutor, z as normalizeIranianPhone, A as paymentMethodInfo, B as paymentMethodLabel, C as selectDigitalItems, D as selectSummary, E as sortCartItemsNewestFirst, F as strings, G as toEnglishDigits, H as toPersianDigits } from '../chunks/labels-
|
|
2
|
-
export { SAZITO_PAYMENT_RESULT_MARKERS, parsePaymentReturn, parsePaymentReturnUrl } from '../next/payment-return.js';
|
|
1
|
+
export { a as addressFormFromInvoice, b as buildShippingAssignments, c as classifyAppliedDiscount, d as createBrowserEffectExecutor, e as createCheckoutEngine, f as createSdkBinding, g as createStore, h as defaultCurrencyLabel, i as deriveShippingGroups, j as emptyAddressForm, k as formatMoney, l as formatNumber, m as formatPercent, n as formatPrice, o as fromSdkError, p as isAddressComplete, q as isAddressDirty, r as isDigitalServiceGroup, s as isShippingComplete, t as isValidIranianMobile, u as isValidIranianPhone, v as makeError, w as makeEvent, x as messageForCode, y as noopEffectExecutor, z as normalizeIranianPhone, A as paymentMethodInfo, B as paymentMethodLabel, C as selectDigitalItems, D as selectSummary, E as sortCartItemsNewestFirst, F as strings, G as toEnglishDigits, H as toPersianDigits } from '../chunks/labels-Cqrb2MwA.js';
|
|
2
|
+
export { SAZITO_PAYMENT_RESULT_MARKERS, SAZITO_PAYMENT_STATUS_QUERY, parsePaymentReturn, parsePaymentReturnUrl, stripPaymentStatusReturn } from '../next/payment-return.js';
|
|
3
3
|
import '@sazito/client-sdk';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/next/index.cjs
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var react = require('react');
|
|
6
|
-
var useCheckout = require('../chunks/use-checkout-
|
|
7
|
-
var labels = require('../chunks/labels-
|
|
6
|
+
var useCheckout = require('../chunks/use-checkout-MM-Ld0Ew.cjs');
|
|
7
|
+
var labels = require('../chunks/labels-BYJQjaT_.cjs');
|
|
8
8
|
var next_paymentReturn = require('./payment-return.cjs');
|
|
9
9
|
require('@sazito/client-sdk');
|
|
10
10
|
|
|
@@ -935,14 +935,15 @@ function SazitoCheckoutPage({ credentials, config, paymentReturn, paymentReturnP
|
|
|
935
935
|
: undefined;
|
|
936
936
|
const resolvedPaymentReturn = paymentReturn ?? detectedPaymentReturn;
|
|
937
937
|
const returnParams = resolvedPaymentReturn?.params ?? paymentReturnParams;
|
|
938
|
+
const returnResolution = resolvedPaymentReturn?.resolution ?? 'callback';
|
|
938
939
|
const isReturn = returnParams != null;
|
|
939
940
|
const checkoutCredentials = resolvedPaymentReturn
|
|
940
941
|
? { ...credentials, payment: resolvedPaymentReturn.payment }
|
|
941
942
|
: credentials;
|
|
942
943
|
const client = useCheckout.useSazitoClient();
|
|
943
|
-
return (jsxRuntime.jsxs(useCheckout.CheckoutProvider, { client: client, credentials: checkoutCredentials, config: config, autoStart: !isReturn, children: [returnParams ? jsxRuntime.jsx(ResolveReturn, { params: returnParams }) : null, jsxRuntime.jsx(SazitoCheckout, { theme: config?.theme, continueShoppingUrl: config?.continueShoppingUrl, className: className, renderNextButton: renderNextButton, renderBackButton: renderBackButton, renderEmptyCart: renderEmptyCart, renderResult: renderResult, emptyCart: emptyCart })] }));
|
|
944
|
+
return (jsxRuntime.jsxs(useCheckout.CheckoutProvider, { client: client, credentials: checkoutCredentials, config: config, autoStart: !isReturn, children: [returnParams ? (jsxRuntime.jsx(ResolveReturn, { params: returnParams, resolution: returnResolution })) : null, jsxRuntime.jsx(SazitoCheckout, { theme: config?.theme, continueShoppingUrl: config?.continueShoppingUrl, className: className, renderNextButton: renderNextButton, renderBackButton: renderBackButton, renderEmptyCart: renderEmptyCart, renderResult: renderResult, emptyCart: emptyCart })] }));
|
|
944
945
|
}
|
|
945
|
-
function ResolveReturn({ params }) {
|
|
946
|
+
function ResolveReturn({ params, resolution }) {
|
|
946
947
|
const { actions } = useCheckout.useCheckout();
|
|
947
948
|
const resolvedKey = react.useRef(null);
|
|
948
949
|
const paramsKey = JSON.stringify(Object.entries(params).sort(([a], [b]) => a.localeCompare(b)));
|
|
@@ -950,8 +951,13 @@ function ResolveReturn({ params }) {
|
|
|
950
951
|
if (resolvedKey.current === paramsKey)
|
|
951
952
|
return;
|
|
952
953
|
resolvedKey.current = paramsKey;
|
|
953
|
-
void actions.resolvePaymentReturn(params);
|
|
954
|
-
|
|
954
|
+
void actions.resolvePaymentReturn(params, resolution);
|
|
955
|
+
if (typeof window !== 'undefined') {
|
|
956
|
+
const cleanUrl = next_paymentReturn.stripPaymentStatusReturn(window.location.href);
|
|
957
|
+
if (cleanUrl)
|
|
958
|
+
window.history.replaceState(window.history.state, '', cleanUrl);
|
|
959
|
+
}
|
|
960
|
+
}, [actions, params, paramsKey, resolution]);
|
|
955
961
|
return null;
|
|
956
962
|
}
|
|
957
963
|
|