@tagadapay/plugin-sdk 2.3.14 → 2.4.2
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 +623 -623
- package/dist/react/components/ApplePayButton.d.ts +16 -0
- package/dist/react/components/ApplePayButton.js +53 -0
- package/dist/react/components/Button.d.ts +8 -0
- package/dist/react/components/Button.js +18 -0
- package/dist/react/components/index.d.ts +2 -0
- package/dist/react/components/index.js +2 -0
- package/dist/react/hooks/useApplePay.js +5 -5
- package/dist/react/hooks/useGoogleAutocomplete.js +4 -1
- package/dist/react/hooks/useTranslations.js +4 -12
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.js +1 -1
- package/dist/react/providers/TagadaProvider.js +5 -5
- package/package.json +83 -83
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CheckoutData } from '../hooks/useCheckout';
|
|
3
|
+
interface ApplePayButtonProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
onSuccess?: (payment: any) => void;
|
|
7
|
+
onError?: (error: string) => void;
|
|
8
|
+
onCancel?: () => void;
|
|
9
|
+
storeName?: string;
|
|
10
|
+
currencyCode?: string;
|
|
11
|
+
variant?: 'default' | 'outline' | 'ghost';
|
|
12
|
+
size?: 'sm' | 'md' | 'lg';
|
|
13
|
+
checkout: CheckoutData | null;
|
|
14
|
+
}
|
|
15
|
+
export declare const ApplePayButton: React.FC<ApplePayButtonProps>;
|
|
16
|
+
export default ApplePayButton;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useApplePay } from '../hooks/useApplePay';
|
|
3
|
+
import { Button } from './Button';
|
|
4
|
+
export const ApplePayButton = ({ className = '', disabled = false, onSuccess, onError, onCancel, storeName, currencyCode = 'USD', variant = 'outline', size = 'lg', checkout, }) => {
|
|
5
|
+
// Use the Apple Pay hook
|
|
6
|
+
const { handleApplePayClick, processingPayment, applePayError, isApplePayAvailable } = useApplePay({
|
|
7
|
+
onSuccess,
|
|
8
|
+
onError,
|
|
9
|
+
onCancel,
|
|
10
|
+
checkoutSessionId: checkout?.checkoutSession?.id,
|
|
11
|
+
customerId: checkout?.checkoutSession?.customerId,
|
|
12
|
+
});
|
|
13
|
+
// Apple Pay button click handler
|
|
14
|
+
const handleClick = () => {
|
|
15
|
+
if (processingPayment || !isApplePayAvailable || !checkout)
|
|
16
|
+
return;
|
|
17
|
+
const { summary, checkoutSession } = checkout;
|
|
18
|
+
// Build line items from checkout summary
|
|
19
|
+
const lineItems = summary.items?.map((item) => ({
|
|
20
|
+
label: item.product?.name || item.variant?.name || 'Item',
|
|
21
|
+
amount: (item.adjustedAmount / 100).toFixed(2), // Convert from minor units
|
|
22
|
+
type: 'final',
|
|
23
|
+
})) || [];
|
|
24
|
+
// Add shipping as a line item if present
|
|
25
|
+
if (checkoutSession.shippingRate && checkoutSession.shippingRate.amount > 0) {
|
|
26
|
+
lineItems.push({
|
|
27
|
+
label: checkoutSession.shippingRate.shippingRateName || 'Shipping',
|
|
28
|
+
amount: (checkoutSession.shippingRate.amount / 100).toFixed(2),
|
|
29
|
+
type: 'final',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Build total
|
|
33
|
+
const total = {
|
|
34
|
+
label: storeName || checkoutSession.store.name || 'Total',
|
|
35
|
+
amount: (summary.totalAdjustedAmount / 100).toFixed(2),
|
|
36
|
+
type: 'final',
|
|
37
|
+
};
|
|
38
|
+
// Apple Pay configuration
|
|
39
|
+
const config = {
|
|
40
|
+
countryCode: 'US',
|
|
41
|
+
supportedNetworks: ['visa', 'masterCard', 'amex', 'discover'],
|
|
42
|
+
merchantCapabilities: ['supports3DS'],
|
|
43
|
+
};
|
|
44
|
+
// Call the Apple Pay handler
|
|
45
|
+
handleApplePayClick(checkoutSession.id, lineItems, total, config, storeName || checkoutSession.store.name, currencyCode || summary.currency, []);
|
|
46
|
+
};
|
|
47
|
+
// Don't render the button if Apple Pay is not available
|
|
48
|
+
if (!isApplePayAvailable) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return (_jsxs("div", { className: "w-full", children: [_jsx(Button, { type: "button", variant: variant, size: size, className: `w-full shadow-sm ${className}`, onClick: handleClick, disabled: disabled || processingPayment, children: _jsxs("div", { className: "flex items-center justify-center gap-3", children: [processingPayment ? (_jsx("div", { className: "h-5 w-5 animate-spin rounded-full border-2 border-white border-t-transparent" })) : (_jsx("img", { src: "/brandnetwork/applepay.svg", alt: "Apple Pay", className: "h-6 w-auto" })), _jsx("span", { className: "font-medium", children: processingPayment ? 'Processing...' : 'Pay with Apple Pay' })] }) }), applePayError && (_jsx("div", { className: "mt-2 rounded border border-red-200 bg-red-50 p-2 text-sm text-red-600", children: applePayError }))] }));
|
|
52
|
+
};
|
|
53
|
+
export default ApplePayButton;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
variant?: 'default' | 'outline' | 'ghost';
|
|
4
|
+
size?: 'sm' | 'md' | 'lg';
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Button: React.FC<ButtonProps>;
|
|
8
|
+
export default Button;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
export const Button = ({ variant = 'default', size = 'md', className = '', children, ...props }) => {
|
|
3
|
+
// Determine button size classes
|
|
4
|
+
const sizeClasses = {
|
|
5
|
+
sm: 'h-10 px-3 text-sm',
|
|
6
|
+
md: 'h-11 px-4 text-sm',
|
|
7
|
+
lg: 'h-12 px-6 text-base',
|
|
8
|
+
};
|
|
9
|
+
// Determine button variant classes
|
|
10
|
+
const variantClasses = {
|
|
11
|
+
default: 'bg-blue-600 text-white border-blue-600 hover:bg-blue-700 hover:border-blue-700',
|
|
12
|
+
outline: 'border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 hover:border-gray-400',
|
|
13
|
+
ghost: 'bg-transparent text-gray-700 hover:bg-gray-100 border-transparent',
|
|
14
|
+
};
|
|
15
|
+
const baseClasses = 'inline-flex items-center justify-center rounded-md font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none';
|
|
16
|
+
return (_jsx("button", { className: `${baseClasses} ${sizeClasses[size]} ${variantClasses[variant]} ${className}`, ...props, children: children }));
|
|
17
|
+
};
|
|
18
|
+
export default Button;
|
|
@@ -122,30 +122,30 @@ export function useApplePay(options = {}) {
|
|
|
122
122
|
const lineItems = [
|
|
123
123
|
{
|
|
124
124
|
label: 'Subtotal',
|
|
125
|
-
amount: (orderSummary.subtotalAdjustedAmount / 100).toFixed(2),
|
|
125
|
+
amount: orderSummary.subtotalAdjustedAmount > 0 ? (orderSummary.subtotalAdjustedAmount / 100).toFixed(2) : '0.00',
|
|
126
126
|
type: 'final',
|
|
127
127
|
},
|
|
128
128
|
{
|
|
129
129
|
label: 'Shipping',
|
|
130
|
-
amount: (orderSummary.shippingCost / 100).toFixed(2),
|
|
130
|
+
amount: orderSummary.shippingCost > 0 ? (orderSummary.shippingCost / 100).toFixed(2) : '0.00',
|
|
131
131
|
type: 'final',
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
label: 'Tax',
|
|
135
|
-
amount: (orderSummary.totalTaxAmount / 100).toFixed(2),
|
|
135
|
+
amount: orderSummary.totalTaxAmount > 0 ? (orderSummary.totalTaxAmount / 100).toFixed(2) : '0.00',
|
|
136
136
|
type: 'final',
|
|
137
137
|
},
|
|
138
138
|
];
|
|
139
139
|
// Construct Apple Pay total
|
|
140
140
|
const total = {
|
|
141
141
|
label: 'Total',
|
|
142
|
-
amount: (orderSummary.totalAdjustedAmount / 100).toFixed(2),
|
|
142
|
+
amount: orderSummary.totalAdjustedAmount > 0 ? (orderSummary.totalAdjustedAmount / 100).toFixed(2) : '0.00',
|
|
143
143
|
type: 'final',
|
|
144
144
|
};
|
|
145
145
|
// Construct Apple Pay shipping methods from shipping rates
|
|
146
146
|
const shippingMethods = shippingRates?.rates?.map((rate) => ({
|
|
147
147
|
label: rate.shippingRateName,
|
|
148
|
-
amount: (rate.amount / 100).toFixed(2),
|
|
148
|
+
amount: rate.amount > 0 ? (rate.amount / 100).toFixed(2) : '0.00',
|
|
149
149
|
identifier: rate.id,
|
|
150
150
|
detail: rate.description || '',
|
|
151
151
|
})) || [];
|
|
@@ -167,7 +167,10 @@ export function useGoogleAutocomplete(options) {
|
|
|
167
167
|
if (types.includes('route')) {
|
|
168
168
|
extracted.route = component.long_name;
|
|
169
169
|
}
|
|
170
|
-
if (types.includes('locality')
|
|
170
|
+
if (types.includes('locality')) {
|
|
171
|
+
extracted.locality = component.long_name;
|
|
172
|
+
}
|
|
173
|
+
if (types.includes('administrative_area_level_2') && !!!extracted.locality) {
|
|
171
174
|
extracted.locality = component.long_name;
|
|
172
175
|
}
|
|
173
176
|
if (types.includes('administrative_area_level_1')) {
|
|
@@ -22,9 +22,7 @@ export function useTranslations(targetLanguageCode) {
|
|
|
22
22
|
useEffect(() => {
|
|
23
23
|
let cancelled = false;
|
|
24
24
|
async function fetchMessages() {
|
|
25
|
-
|
|
26
|
-
const desiredLanguage = selectedLanguage;
|
|
27
|
-
const targetLocale = `${desiredLanguage}-${region}`;
|
|
25
|
+
console.log('🔄 [useTranslations] Fetching messages for locale:', selectedLanguage);
|
|
28
26
|
try {
|
|
29
27
|
const storeId = pluginConfig?.storeId;
|
|
30
28
|
if (!storeId) {
|
|
@@ -33,7 +31,7 @@ export function useTranslations(targetLanguageCode) {
|
|
|
33
31
|
}
|
|
34
32
|
const data = await apiService.fetch('/api/v1/translation-messages', {
|
|
35
33
|
method: 'GET',
|
|
36
|
-
params: { locale:
|
|
34
|
+
params: { locale: selectedLanguage, storeId },
|
|
37
35
|
});
|
|
38
36
|
if (!cancelled) {
|
|
39
37
|
setFetchedMessages(data || {});
|
|
@@ -61,17 +59,11 @@ export function useTranslations(targetLanguageCode) {
|
|
|
61
59
|
return interpolate(raw, vars);
|
|
62
60
|
};
|
|
63
61
|
}, [messages]);
|
|
64
|
-
const computedLocale = useMemo(() => {
|
|
65
|
-
if (selectedLanguage === locale.language)
|
|
66
|
-
return locale.locale;
|
|
67
|
-
const region = locale.region || 'US';
|
|
68
|
-
return `${selectedLanguage}-${region}`;
|
|
69
|
-
}, [selectedLanguage, locale.locale, locale.language, locale.region]);
|
|
70
62
|
return {
|
|
71
63
|
t,
|
|
72
64
|
messages,
|
|
73
|
-
locale:
|
|
65
|
+
locale: selectedLanguage,
|
|
74
66
|
language: selectedLanguage,
|
|
75
|
-
region:
|
|
67
|
+
region: selectedLanguage,
|
|
76
68
|
};
|
|
77
69
|
}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -41,4 +41,5 @@ export type { Payment, PaymentPollingHook, PollingOptions } from './hooks/usePay
|
|
|
41
41
|
export type { PaymentInstrument, ThreedsChallenge, ThreedsHook, ThreedsOptions, ThreedsProvider, ThreedsSession } from './hooks/useThreeds';
|
|
42
42
|
export type { ApplePayToken, CardPaymentMethod, PaymentHook, PaymentInstrumentResponse, PaymentOptions, PaymentResponse } from './hooks/usePayment';
|
|
43
43
|
export type { ApplePayAddress, ApplePayConfig, ApplePayLineItem, ApplePayPaymentAuthorizedEvent, ApplePayPaymentRequest, ApplePayPaymentToken, ApplePayValidateMerchantEvent, BasisTheorySessionRequest, BasisTheoryTokenizeRequest, PayToken, UseApplePayOptions, UseApplePayResult } from './types/apple-pay';
|
|
44
|
+
export { Button, ApplePayButton } from './components';
|
|
44
45
|
export { convertCurrency, formatMoney, formatMoneyWithoutSymbol, formatSimpleMoney, getCurrencyInfo, minorUnitsToMajorUnits, moneyStringOrNumberToMinorUnits } from './utils/money';
|
package/dist/react/index.js
CHANGED
|
@@ -36,6 +36,6 @@ export { useThreedsModal } from './hooks/useThreedsModal';
|
|
|
36
36
|
// Apple Pay hooks exports
|
|
37
37
|
export { useApplePay } from './hooks/useApplePay';
|
|
38
38
|
// Component exports
|
|
39
|
-
|
|
39
|
+
export { Button, ApplePayButton } from './components';
|
|
40
40
|
// Utility exports
|
|
41
41
|
export { convertCurrency, formatMoney, formatMoneyWithoutSymbol, formatSimpleMoney, getCurrencyInfo, minorUnitsToMajorUnits, moneyStringOrNumberToMinorUnits } from './utils/money';
|
|
@@ -38,11 +38,11 @@ const InitializationLoader = () => (_jsxs("div", { style: {
|
|
|
38
38
|
borderTop: '1.5px solid #9ca3af',
|
|
39
39
|
borderRadius: '50%',
|
|
40
40
|
animation: 'tagada-spin 1s linear infinite',
|
|
41
|
-
} }), _jsx("span", { children: "Loading..." }), _jsx("style", { children: `
|
|
42
|
-
@keyframes tagada-spin {
|
|
43
|
-
0% { transform: rotate(0deg); }
|
|
44
|
-
100% { transform: rotate(360deg); }
|
|
45
|
-
}
|
|
41
|
+
} }), _jsx("span", { children: "Loading..." }), _jsx("style", { children: `
|
|
42
|
+
@keyframes tagada-spin {
|
|
43
|
+
0% { transform: rotate(0deg); }
|
|
44
|
+
100% { transform: rotate(360deg); }
|
|
45
|
+
}
|
|
46
46
|
` })] }));
|
|
47
47
|
const TagadaContext = createContext(null);
|
|
48
48
|
export function TagadaProvider({ children, environment, customApiConfig, debugMode, // Remove default, will be set based on environment
|
package/package.json
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@tagadapay/plugin-sdk",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Modern React SDK for building Tagada Pay plugins",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"types": "./dist/index.d.ts",
|
|
10
|
-
"import": "./dist/index.js",
|
|
11
|
-
"require": "./dist/index.js"
|
|
12
|
-
},
|
|
13
|
-
"./react": {
|
|
14
|
-
"types": "./dist/react/index.d.ts",
|
|
15
|
-
"import": "./dist/react/index.js",
|
|
16
|
-
"require": "./dist/react/index.js"
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "tsc",
|
|
21
|
-
"clean": "rm -rf dist",
|
|
22
|
-
"lint": "echo \"No linting configured\"",
|
|
23
|
-
"test": "echo \"No tests yet\" && exit 0",
|
|
24
|
-
"dev": "tsc --watch",
|
|
25
|
-
"prepublishOnly": "npm run clean && npm run build",
|
|
26
|
-
"publish:patch": "npm version patch && npm publish",
|
|
27
|
-
"publish:minor": "npm version minor && npm publish",
|
|
28
|
-
"publish:major": "npm version major && npm publish",
|
|
29
|
-
"publish:beta": "npm version prerelease --preid=beta && npm publish --tag beta",
|
|
30
|
-
"publish:alpha": "npm version prerelease --preid=alpha && npm publish --tag alpha",
|
|
31
|
-
"version:patch": "npm version patch",
|
|
32
|
-
"version:minor": "npm version minor",
|
|
33
|
-
"version:major": "npm version major",
|
|
34
|
-
"version:beta": "npm version prerelease --preid=beta",
|
|
35
|
-
"version:alpha": "npm version prerelease --preid=alpha",
|
|
36
|
-
"version:check": "node version-sync.js check",
|
|
37
|
-
"version:sync": "node version-sync.js sync",
|
|
38
|
-
"version:list": "node version-sync.js list",
|
|
39
|
-
"version:next": "node version-sync.js next",
|
|
40
|
-
"postversion": "echo \"✅ Version updated to $(node -p 'require(\"./package.json\").version')\" && git push && git push --tags"
|
|
41
|
-
},
|
|
42
|
-
"keywords": [
|
|
43
|
-
"tagadapay",
|
|
44
|
-
"cms",
|
|
45
|
-
"plugin",
|
|
46
|
-
"sdk",
|
|
47
|
-
"react",
|
|
48
|
-
"typescript"
|
|
49
|
-
],
|
|
50
|
-
"author": "Tagada Pay",
|
|
51
|
-
"license": "MIT",
|
|
52
|
-
"dependencies": {
|
|
53
|
-
"@basis-theory/apple-pay-js": "^2.0.2",
|
|
54
|
-
"@basis-theory/basis-theory-js": "^4.30.0",
|
|
55
|
-
"@basis-theory/basis-theory-react": "^1.32.5",
|
|
56
|
-
"@basis-theory/web-threeds": "^1.0.1",
|
|
57
|
-
"axios": "^1.6.0",
|
|
58
|
-
"iso3166-2-db": "^2.3.11",
|
|
59
|
-
"react-intl": "^7.1.11"
|
|
60
|
-
},
|
|
61
|
-
"devDependencies": {
|
|
62
|
-
"@types/node": "^18.0.0",
|
|
63
|
-
"@types/react": "^19",
|
|
64
|
-
"@types/react-dom": "^19",
|
|
65
|
-
"typescript": "^5.0.0"
|
|
66
|
-
},
|
|
67
|
-
"peerDependencies": {
|
|
68
|
-
"react": "^18.0.0 || ^19.0.0",
|
|
69
|
-
"react-dom": "^18.0.0 || ^19.0.0"
|
|
70
|
-
},
|
|
71
|
-
"files": [
|
|
72
|
-
"dist/**/*",
|
|
73
|
-
"README.md"
|
|
74
|
-
],
|
|
75
|
-
"repository": {
|
|
76
|
-
"type": "git",
|
|
77
|
-
"url": "git+https://github.com/tagadapay/plugin-sdk.git"
|
|
78
|
-
},
|
|
79
|
-
"bugs": {
|
|
80
|
-
"url": "https://github.com/tagadapay/plugin-sdk/issues"
|
|
81
|
-
},
|
|
82
|
-
"homepage": "https://github.com/tagadapay/plugin-sdk#readme"
|
|
83
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@tagadapay/plugin-sdk",
|
|
3
|
+
"version": "2.4.2",
|
|
4
|
+
"description": "Modern React SDK for building Tagada Pay plugins",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./react": {
|
|
14
|
+
"types": "./dist/react/index.d.ts",
|
|
15
|
+
"import": "./dist/react/index.js",
|
|
16
|
+
"require": "./dist/react/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"lint": "echo \"No linting configured\"",
|
|
23
|
+
"test": "echo \"No tests yet\" && exit 0",
|
|
24
|
+
"dev": "tsc --watch",
|
|
25
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
26
|
+
"publish:patch": "npm version patch && npm publish",
|
|
27
|
+
"publish:minor": "npm version minor && npm publish",
|
|
28
|
+
"publish:major": "npm version major && npm publish",
|
|
29
|
+
"publish:beta": "npm version prerelease --preid=beta && npm publish --tag beta",
|
|
30
|
+
"publish:alpha": "npm version prerelease --preid=alpha && npm publish --tag alpha",
|
|
31
|
+
"version:patch": "npm version patch",
|
|
32
|
+
"version:minor": "npm version minor",
|
|
33
|
+
"version:major": "npm version major",
|
|
34
|
+
"version:beta": "npm version prerelease --preid=beta",
|
|
35
|
+
"version:alpha": "npm version prerelease --preid=alpha",
|
|
36
|
+
"version:check": "node version-sync.js check",
|
|
37
|
+
"version:sync": "node version-sync.js sync",
|
|
38
|
+
"version:list": "node version-sync.js list",
|
|
39
|
+
"version:next": "node version-sync.js next",
|
|
40
|
+
"postversion": "echo \"✅ Version updated to $(node -p 'require(\"./package.json\").version')\" && git push && git push --tags"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"tagadapay",
|
|
44
|
+
"cms",
|
|
45
|
+
"plugin",
|
|
46
|
+
"sdk",
|
|
47
|
+
"react",
|
|
48
|
+
"typescript"
|
|
49
|
+
],
|
|
50
|
+
"author": "Tagada Pay",
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@basis-theory/apple-pay-js": "^2.0.2",
|
|
54
|
+
"@basis-theory/basis-theory-js": "^4.30.0",
|
|
55
|
+
"@basis-theory/basis-theory-react": "^1.32.5",
|
|
56
|
+
"@basis-theory/web-threeds": "^1.0.1",
|
|
57
|
+
"axios": "^1.6.0",
|
|
58
|
+
"iso3166-2-db": "^2.3.11",
|
|
59
|
+
"react-intl": "^7.1.11"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@types/node": "^18.0.0",
|
|
63
|
+
"@types/react": "^19",
|
|
64
|
+
"@types/react-dom": "^19",
|
|
65
|
+
"typescript": "^5.0.0"
|
|
66
|
+
},
|
|
67
|
+
"peerDependencies": {
|
|
68
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
69
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
70
|
+
},
|
|
71
|
+
"files": [
|
|
72
|
+
"dist/**/*",
|
|
73
|
+
"README.md"
|
|
74
|
+
],
|
|
75
|
+
"repository": {
|
|
76
|
+
"type": "git",
|
|
77
|
+
"url": "git+https://github.com/tagadapay/plugin-sdk.git"
|
|
78
|
+
},
|
|
79
|
+
"bugs": {
|
|
80
|
+
"url": "https://github.com/tagadapay/plugin-sdk/issues"
|
|
81
|
+
},
|
|
82
|
+
"homepage": "https://github.com/tagadapay/plugin-sdk#readme"
|
|
83
|
+
}
|