@tagadapay/plugin-sdk 3.1.11 → 3.1.22

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.
Files changed (116) hide show
  1. package/README.md +1129 -1129
  2. package/build-cdn.js +231 -228
  3. package/dist/data/iso3166.d.ts +23 -33
  4. package/dist/data/iso3166.js +134 -198
  5. package/dist/data/languages.d.ts +5 -64
  6. package/dist/data/languages.js +23 -143
  7. package/dist/external-tracker.js +968 -102
  8. package/dist/external-tracker.min.js +2 -2
  9. package/dist/external-tracker.min.js.map +4 -4
  10. package/dist/react/hooks/useISOData.js +1 -1
  11. package/dist/react/hooks/usePaymentPolling.d.ts +3 -3
  12. package/dist/react/hooks/useShippingRates.d.ts +6 -0
  13. package/dist/react/hooks/useShippingRates.js +38 -0
  14. package/dist/react/providers/TagadaProvider.js +5 -5
  15. package/dist/react/services/apiService.d.ts +21 -0
  16. package/dist/react/services/apiService.js +10 -0
  17. package/dist/tagada-sdk.js +2079 -179
  18. package/dist/tagada-sdk.min.js +4 -2
  19. package/dist/tagada-sdk.min.js.map +4 -4
  20. package/dist/v2/core/client.d.ts +4 -2
  21. package/dist/v2/core/client.js +4 -3
  22. package/dist/v2/core/errors.d.ts +75 -0
  23. package/dist/v2/core/errors.js +104 -0
  24. package/dist/v2/core/funnelClient.d.ts +16 -15
  25. package/dist/v2/core/funnelClient.js +1 -1
  26. package/dist/v2/core/index.d.ts +1 -0
  27. package/dist/v2/core/index.js +2 -0
  28. package/dist/v2/core/pixelMapping.d.ts +49 -0
  29. package/dist/v2/core/pixelMapping.js +325 -0
  30. package/dist/v2/core/resources/apiClient.d.ts +2 -0
  31. package/dist/v2/core/resources/apiClient.js +52 -9
  32. package/dist/v2/core/resources/checkout.d.ts +89 -30
  33. package/dist/v2/core/resources/checkout.js +8 -0
  34. package/dist/v2/core/resources/customer.d.ts +20 -19
  35. package/dist/v2/core/resources/funnel.d.ts +17 -17
  36. package/dist/v2/core/resources/payments.d.ts +84 -13
  37. package/dist/v2/core/resources/payments.js +26 -9
  38. package/dist/v2/core/resources/shippingRates.d.ts +15 -0
  39. package/dist/v2/core/resources/shippingRates.js +11 -0
  40. package/dist/v2/core/types.d.ts +50 -12
  41. package/dist/v2/core/types.js +0 -3
  42. package/dist/v2/core/utils/checkout.d.ts +2 -2
  43. package/dist/v2/core/utils/checkout.js +7 -2
  44. package/dist/v2/core/utils/order.d.ts +11 -9
  45. package/dist/v2/core/utils/previewModeIndicator.js +101 -101
  46. package/dist/v2/index.d.ts +4 -2
  47. package/dist/v2/index.js +1 -1
  48. package/dist/v2/react/components/ApplePayButton.js +13 -4
  49. package/dist/v2/react/components/FunnelScriptInjector.js +51 -30
  50. package/dist/v2/react/components/WhopCheckout.d.ts +24 -0
  51. package/dist/v2/react/components/WhopCheckout.js +231 -0
  52. package/dist/v2/react/hooks/__examples__/FunnelContextExample.js +1 -1
  53. package/dist/v2/react/hooks/payment-actions/useAirwallexRadarAction.d.ts +14 -0
  54. package/dist/v2/react/hooks/payment-actions/useAirwallexRadarAction.js +181 -0
  55. package/dist/v2/react/hooks/payment-actions/useErrorAction.d.ts +9 -0
  56. package/dist/v2/react/hooks/payment-actions/useErrorAction.js +21 -0
  57. package/dist/v2/react/hooks/payment-actions/useFinixRadarAction.d.ts +14 -0
  58. package/dist/v2/react/hooks/payment-actions/useFinixRadarAction.js +187 -0
  59. package/dist/v2/react/hooks/payment-actions/useKessPayAction.d.ts +11 -0
  60. package/dist/v2/react/hooks/payment-actions/useKessPayAction.js +91 -0
  61. package/dist/v2/react/hooks/payment-actions/useMasterCardAction.d.ts +24 -0
  62. package/dist/v2/react/hooks/payment-actions/useMasterCardAction.js +221 -0
  63. package/dist/v2/react/hooks/payment-actions/usePaymentActionHandler.d.ts +15 -0
  64. package/dist/v2/react/hooks/payment-actions/usePaymentActionHandler.js +142 -0
  65. package/dist/v2/react/hooks/payment-actions/useProcessorAuthAction.d.ts +3 -0
  66. package/dist/v2/react/hooks/payment-actions/useProcessorAuthAction.js +13 -0
  67. package/dist/v2/react/hooks/payment-actions/useRedirectAction.d.ts +10 -0
  68. package/dist/v2/react/hooks/payment-actions/useRedirectAction.js +35 -0
  69. package/dist/v2/react/hooks/payment-actions/useStripeRadarAction.d.ts +14 -0
  70. package/dist/v2/react/hooks/payment-actions/useStripeRadarAction.js +192 -0
  71. package/dist/v2/react/hooks/payment-actions/useThreedsAuthAction.d.ts +14 -0
  72. package/dist/v2/react/hooks/payment-actions/useThreedsAuthAction.js +81 -0
  73. package/dist/v2/react/hooks/payment-actions/useTrustFlowAction.d.ts +11 -0
  74. package/dist/v2/react/hooks/payment-actions/useTrustFlowAction.js +84 -0
  75. package/dist/v2/react/hooks/payment-processing/usePaymentInstruments.d.ts +14 -0
  76. package/dist/v2/react/hooks/payment-processing/usePaymentInstruments.js +36 -0
  77. package/dist/v2/react/hooks/payment-processing/usePaymentProcessors.d.ts +31 -0
  78. package/dist/v2/react/hooks/payment-processing/usePaymentProcessors.js +212 -0
  79. package/dist/v2/react/hooks/payment-redirect/useAirwallex3dsReturn.d.ts +14 -0
  80. package/dist/v2/react/hooks/payment-redirect/useAirwallex3dsReturn.js +207 -0
  81. package/dist/v2/react/hooks/payment-redirect/useGenericPaymentReturn.d.ts +12 -0
  82. package/dist/v2/react/hooks/payment-redirect/useGenericPaymentReturn.js +101 -0
  83. package/dist/v2/react/hooks/useCheckoutQuery.d.ts +6 -0
  84. package/dist/v2/react/hooks/useCheckoutQuery.js +45 -0
  85. package/dist/v2/react/hooks/useFunnel.d.ts +1 -2
  86. package/dist/v2/react/hooks/useGeoLocation.d.ts +2 -1
  87. package/dist/v2/react/hooks/useGeoLocation.js +4 -2
  88. package/dist/v2/react/hooks/useGoogleAutocomplete.js +82 -33
  89. package/dist/v2/react/hooks/useISOData.js +1 -1
  90. package/dist/v2/react/hooks/usePaymentPolling.d.ts +3 -3
  91. package/dist/v2/react/hooks/usePaymentQuery.d.ts +18 -5
  92. package/dist/v2/react/hooks/usePaymentQuery.js +63 -1015
  93. package/dist/v2/react/hooks/usePaymentRetrieve.d.ts +3 -2
  94. package/dist/v2/react/hooks/usePaymentRetrieve.js +3 -1
  95. package/dist/v2/react/hooks/usePixelTracking.d.ts +5 -43
  96. package/dist/v2/react/hooks/usePixelTracking.js +213 -407
  97. package/dist/v2/react/hooks/useShippingRatesQuery.d.ts +6 -0
  98. package/dist/v2/react/hooks/useShippingRatesQuery.js +47 -4
  99. package/dist/v2/react/hooks/useStepConfig.d.ts +2 -8
  100. package/dist/v2/react/hooks/useStepConfig.js +1 -1
  101. package/dist/v2/react/hooks/useWhopPaymentPolling.d.ts +30 -0
  102. package/dist/v2/react/hooks/useWhopPaymentPolling.js +61 -0
  103. package/dist/v2/react/index.d.ts +7 -0
  104. package/dist/v2/react/index.js +4 -0
  105. package/dist/v2/react/providers/ExpressPaymentMethodsProvider.d.ts +2 -1
  106. package/dist/v2/react/providers/ExpressPaymentMethodsProvider.js +3 -1
  107. package/dist/v2/react/providers/TagadaProvider.js +76 -7
  108. package/dist/v2/standalone/external-tracker.d.ts +52 -46
  109. package/dist/v2/standalone/external-tracker.js +205 -98
  110. package/dist/v2/standalone/index.d.ts +22 -0
  111. package/dist/v2/standalone/index.js +125 -0
  112. package/package.json +112 -112
  113. package/dist/react/utils/__tests__/urlUtils.test.d.ts +0 -1
  114. package/dist/react/utils/__tests__/urlUtils.test.js +0 -189
  115. package/dist/v2/core/__tests__/pathRemapping.test.d.ts +0 -11
  116. package/dist/v2/core/__tests__/pathRemapping.test.js +0 -776
package/build-cdn.js CHANGED
@@ -1,228 +1,231 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Build script for creating standalone CDN bundles
5
- *
6
- * This creates:
7
- * - dist/external-tracker.min.js - Minified UMD bundle for CDN (tracking only)
8
- * - dist/external-tracker.js - Non-minified for debugging
9
- * - dist/tagada-sdk.min.js - Full standalone SDK bundle for CDN
10
- * - dist/tagada-sdk.js - Non-minified for debugging
11
- *
12
- * Usage:
13
- * node build-cdn.js
14
- * npm run build:cdn
15
- */
16
-
17
- const esbuild = require('esbuild');
18
- const path = require('path');
19
- const fs = require('fs');
20
-
21
- const TRACKER_ENTRY = path.join(__dirname, 'src/v2/standalone/external-tracker.ts');
22
- const SDK_ENTRY = path.join(__dirname, 'src/v2/standalone/index.ts');
23
- const OUT_DIR = path.join(__dirname, 'dist');
24
-
25
- async function build() {
26
- console.log('šŸ”Ø Building CDN bundles...\n');
27
-
28
- // ==========================================================================
29
- // EXTERNAL TRACKER (lightweight, tracking only)
30
- // ==========================================================================
31
- console.log('šŸ“¦ Building external-tracker...');
32
-
33
- // Build minified UMD bundle
34
- await esbuild.build({
35
- entryPoints: [TRACKER_ENTRY],
36
- bundle: true,
37
- minify: true,
38
- sourcemap: true,
39
- target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
40
- format: 'iife',
41
- globalName: 'TagadaTrackerBundle',
42
- outfile: path.join(OUT_DIR, 'external-tracker.min.js'),
43
- // Don't include React - this is a standalone script
44
- external: [],
45
- // Define globals for browser environment
46
- define: {
47
- 'process.env.NODE_ENV': '"production"',
48
- },
49
- // Footer to expose TagadaTracker on window
50
- footer: {
51
- js: `
52
- // Expose TagadaTracker globally (if not already done in bundle)
53
- if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
54
- window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;
55
- }
56
- `.trim(),
57
- },
58
- banner: {
59
- js: `/**
60
- * TagadaPay External Tracker v${require('./package.json').version}
61
- * CDN Bundle - Standalone tracking for external pages
62
- * @license MIT
63
- */`,
64
- },
65
- });
66
-
67
- console.log(' āœ… dist/external-tracker.min.js (minified + sourcemap)');
68
-
69
- // Build non-minified version for debugging
70
- await esbuild.build({
71
- entryPoints: [TRACKER_ENTRY],
72
- bundle: true,
73
- minify: false,
74
- sourcemap: false,
75
- target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
76
- format: 'iife',
77
- globalName: 'TagadaTrackerBundle',
78
- outfile: path.join(OUT_DIR, 'external-tracker.js'),
79
- external: [],
80
- define: {
81
- 'process.env.NODE_ENV': '"development"',
82
- },
83
- footer: {
84
- js: `
85
- // Expose TagadaTracker globally
86
- if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
87
- window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;
88
- }
89
- `.trim(),
90
- },
91
- banner: {
92
- js: `/**
93
- * TagadaPay External Tracker v${require('./package.json').version}
94
- * CDN Bundle - Standalone tracking for external pages (Debug Build)
95
- * @license MIT
96
- */`,
97
- },
98
- });
99
-
100
- console.log(' āœ… dist/external-tracker.js (non-minified for debugging)');
101
-
102
- // ==========================================================================
103
- // FULL STANDALONE SDK (createTagadaClient, config loading, hot reload, etc.)
104
- // ==========================================================================
105
- console.log('\nšŸ“¦ Building tagada-sdk (full standalone SDK)...');
106
-
107
- // Build minified SDK bundle
108
- await esbuild.build({
109
- entryPoints: [SDK_ENTRY],
110
- bundle: true,
111
- minify: true,
112
- sourcemap: true,
113
- target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
114
- format: 'iife',
115
- globalName: 'TagadaSDKBundle',
116
- outfile: path.join(OUT_DIR, 'tagada-sdk.min.js'),
117
- external: [],
118
- define: {
119
- 'process.env.NODE_ENV': '"production"',
120
- },
121
- footer: {
122
- js: `
123
- // Expose SDK under window.tgd namespace (clean, single global)
124
- if (typeof window !== 'undefined' && TagadaSDKBundle) {
125
- window.tgd = window.tgd || {};
126
- // Core
127
- window.tgd.createTagadaClient = TagadaSDKBundle.createTagadaClient;
128
- // Config utilities
129
- window.tgd.getPluginConfig = TagadaSDKBundle.getPluginConfig;
130
- window.tgd.loadPluginConfig = TagadaSDKBundle.loadPluginConfig;
131
- // Hot reload
132
- window.tgd.onConfigUpdate = TagadaSDKBundle.onConfigUpdate;
133
- window.tgd.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate;
134
- window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
135
- // Currency
136
- window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
137
- // Full bundle reference
138
- window.tgd.sdk = TagadaSDKBundle;
139
- }
140
- `.trim(),
141
- },
142
- banner: {
143
- js: `/**
144
- * TagadaPay SDK v${require('./package.json').version}
145
- * CDN Bundle - Full standalone SDK for external/vanilla pages
146
- * Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
147
- * @license MIT
148
- */`,
149
- },
150
- });
151
-
152
- console.log(' āœ… dist/tagada-sdk.min.js (minified + sourcemap)');
153
-
154
- // Build non-minified SDK version for debugging
155
- await esbuild.build({
156
- entryPoints: [SDK_ENTRY],
157
- bundle: true,
158
- minify: false,
159
- sourcemap: false,
160
- target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
161
- format: 'iife',
162
- globalName: 'TagadaSDKBundle',
163
- outfile: path.join(OUT_DIR, 'tagada-sdk.js'),
164
- external: [],
165
- define: {
166
- 'process.env.NODE_ENV': '"development"',
167
- },
168
- footer: {
169
- js: `
170
- // Expose SDK under window.tgd namespace (clean, single global)
171
- if (typeof window !== 'undefined' && TagadaSDKBundle) {
172
- window.tgd = window.tgd || {};
173
- window.tgd.createTagadaClient = TagadaSDKBundle.createTagadaClient;
174
- window.tgd.getPluginConfig = TagadaSDKBundle.getPluginConfig;
175
- window.tgd.loadPluginConfig = TagadaSDKBundle.loadPluginConfig;
176
- window.tgd.onConfigUpdate = TagadaSDKBundle.onConfigUpdate;
177
- window.tgd.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate;
178
- window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
179
- window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
180
- window.tgd.sdk = TagadaSDKBundle;
181
- }
182
- `.trim(),
183
- },
184
- banner: {
185
- js: `/**
186
- * TagadaPay SDK v${require('./package.json').version}
187
- * CDN Bundle - Full standalone SDK (Debug Build)
188
- * Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
189
- * @license MIT
190
- */`,
191
- },
192
- });
193
-
194
- console.log(' āœ… dist/tagada-sdk.js (non-minified for debugging)');
195
-
196
- // Get file sizes
197
- const trackerMinSize = fs.statSync(path.join(OUT_DIR, 'external-tracker.min.js')).size;
198
- const trackerFullSize = fs.statSync(path.join(OUT_DIR, 'external-tracker.js')).size;
199
- const sdkMinSize = fs.statSync(path.join(OUT_DIR, 'tagada-sdk.min.js')).size;
200
- const sdkFullSize = fs.statSync(path.join(OUT_DIR, 'tagada-sdk.js')).size;
201
-
202
- console.log('\nšŸ“¦ Bundle sizes:');
203
- console.log(` external-tracker.min.js: ${(trackerMinSize / 1024).toFixed(2)} KB`);
204
- console.log(` external-tracker.js: ${(trackerFullSize / 1024).toFixed(2)} KB`);
205
- console.log(` tagada-sdk.min.js: ${(sdkMinSize / 1024).toFixed(2)} KB`);
206
- console.log(` tagada-sdk.js: ${(sdkFullSize / 1024).toFixed(2)} KB`);
207
-
208
- console.log('\n✨ CDN build complete!\n');
209
- console.log('Usage via CDN:');
210
- console.log('');
211
- console.log(' // External Tracker (lightweight, tracking only):');
212
- console.log(' <script src="https://cdn.jsdelivr.net/npm/@tagadapay/plugin-sdk/dist/external-tracker.min.js"></script>');
213
- console.log(' <script>TagadaTracker.init({ storeId: "store_xxx", ... });</script>');
214
- console.log('');
215
- console.log(' // Full SDK (createTagadaClient, config, hot reload):');
216
- console.log(' <script src="https://cdn.jsdelivr.net/npm/@tagadapay/plugin-sdk/dist/tagada-sdk.min.js"></script>');
217
- console.log(' <script>');
218
- console.log(' const client = createTagadaClient({ features: { funnel: true } });');
219
- console.log(' client.subscribe((state) => console.log(state));');
220
- console.log(' </script>\n');
221
- }
222
-
223
- build().catch((err) => {
224
- console.error('Build failed:', err);
225
- process.exit(1);
226
- });
227
-
228
-
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Build script for creating standalone CDN bundles
5
+ *
6
+ * This creates:
7
+ * - dist/external-tracker.min.js - Minified UMD bundle for CDN (tracking only)
8
+ * - dist/external-tracker.js - Non-minified for debugging
9
+ * - dist/tagada-sdk.min.js - Full standalone SDK bundle for CDN
10
+ * - dist/tagada-sdk.js - Non-minified for debugging
11
+ *
12
+ * Usage:
13
+ * node build-cdn.js
14
+ * npm run build:cdn
15
+ */
16
+
17
+ const esbuild = require('esbuild');
18
+ const path = require('path');
19
+ const fs = require('fs');
20
+
21
+ const TRACKER_ENTRY = path.join(__dirname, 'src/v2/standalone/external-tracker.ts');
22
+ const SDK_ENTRY = path.join(__dirname, 'src/v2/standalone/index.ts');
23
+ const OUT_DIR = path.join(__dirname, 'dist');
24
+
25
+ async function build() {
26
+ console.log('šŸ”Ø Building CDN bundles...\n');
27
+
28
+ // ==========================================================================
29
+ // EXTERNAL TRACKER (lightweight, tracking only)
30
+ // ==========================================================================
31
+ console.log('šŸ“¦ Building external-tracker...');
32
+
33
+ // Build minified UMD bundle
34
+ await esbuild.build({
35
+ entryPoints: [TRACKER_ENTRY],
36
+ bundle: true,
37
+ minify: true,
38
+ sourcemap: true,
39
+ target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
40
+ format: 'iife',
41
+ globalName: 'TagadaTrackerBundle',
42
+ outfile: path.join(OUT_DIR, 'external-tracker.min.js'),
43
+ // Don't include React - this is a standalone script
44
+ external: [],
45
+ // Define globals for browser environment
46
+ define: {
47
+ 'process.env.NODE_ENV': '"production"',
48
+ },
49
+ // Footer to expose TagadaTracker on window
50
+ footer: {
51
+ js: `
52
+ // Expose TagadaTracker globally (if not already done in bundle)
53
+ if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
54
+ window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;
55
+ }
56
+ `.trim(),
57
+ },
58
+ banner: {
59
+ js: `/**
60
+ * TagadaPay External Tracker v${require('./package.json').version}
61
+ * CDN Bundle - Standalone tracking for external pages
62
+ * @license MIT
63
+ */`,
64
+ },
65
+ });
66
+
67
+ console.log(' āœ… dist/external-tracker.min.js (minified + sourcemap)');
68
+
69
+ // Build non-minified version for debugging
70
+ await esbuild.build({
71
+ entryPoints: [TRACKER_ENTRY],
72
+ bundle: true,
73
+ minify: false,
74
+ sourcemap: false,
75
+ target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
76
+ format: 'iife',
77
+ globalName: 'TagadaTrackerBundle',
78
+ outfile: path.join(OUT_DIR, 'external-tracker.js'),
79
+ external: [],
80
+ define: {
81
+ 'process.env.NODE_ENV': '"development"',
82
+ },
83
+ footer: {
84
+ js: `
85
+ // Expose TagadaTracker globally
86
+ if (typeof window !== 'undefined' && TagadaTrackerBundle && TagadaTrackerBundle.TagadaTracker) {
87
+ window.TagadaTracker = TagadaTrackerBundle.TagadaTracker;
88
+ }
89
+ `.trim(),
90
+ },
91
+ banner: {
92
+ js: `/**
93
+ * TagadaPay External Tracker v${require('./package.json').version}
94
+ * CDN Bundle - Standalone tracking for external pages (Debug Build)
95
+ * @license MIT
96
+ */`,
97
+ },
98
+ });
99
+
100
+ console.log(' āœ… dist/external-tracker.js (non-minified for debugging)');
101
+
102
+ // ==========================================================================
103
+ // FULL STANDALONE SDK (createTagadaClient, config loading, hot reload, etc.)
104
+ // ==========================================================================
105
+ console.log('\nšŸ“¦ Building tagada-sdk (full standalone SDK)...');
106
+
107
+ // Build minified SDK bundle
108
+ await esbuild.build({
109
+ entryPoints: [SDK_ENTRY],
110
+ bundle: true,
111
+ minify: true,
112
+ sourcemap: true,
113
+ target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
114
+ format: 'iife',
115
+ globalName: 'TagadaSDKBundle',
116
+ outfile: path.join(OUT_DIR, 'tagada-sdk.min.js'),
117
+ external: [],
118
+ define: {
119
+ 'process.env.NODE_ENV': '"production"',
120
+ },
121
+ footer: {
122
+ js: `
123
+ // Expose SDK under window.tgd namespace (clean, single global)
124
+ if (typeof window !== 'undefined' && TagadaSDKBundle) {
125
+ window.tgd = window.tgd || {};
126
+ // Core
127
+ window.tgd.createTagadaClient = TagadaSDKBundle.createTagadaClient;
128
+ // Config utilities
129
+ window.tgd.getPluginConfig = TagadaSDKBundle.getPluginConfig;
130
+ window.tgd.loadPluginConfig = TagadaSDKBundle.loadPluginConfig;
131
+ // Hot reload
132
+ window.tgd.onConfigUpdate = TagadaSDKBundle.onConfigUpdate;
133
+ window.tgd.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate;
134
+ window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
135
+ // Currency
136
+ window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
137
+ // Script injection (auto-runs on load, but can be manually called)
138
+ window.tgd.injectStepConfigScripts = TagadaSDKBundle.injectStepConfigScripts;
139
+ // Full bundle reference
140
+ window.tgd.sdk = TagadaSDKBundle;
141
+ }
142
+ `.trim(),
143
+ },
144
+ banner: {
145
+ js: `/**
146
+ * TagadaPay SDK v${require('./package.json').version}
147
+ * CDN Bundle - Full standalone SDK for external/vanilla pages
148
+ * Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
149
+ * @license MIT
150
+ */`,
151
+ },
152
+ });
153
+
154
+ console.log(' āœ… dist/tagada-sdk.min.js (minified + sourcemap)');
155
+
156
+ // Build non-minified SDK version for debugging
157
+ await esbuild.build({
158
+ entryPoints: [SDK_ENTRY],
159
+ bundle: true,
160
+ minify: false,
161
+ sourcemap: false,
162
+ target: ['es2018', 'chrome58', 'firefox57', 'safari11', 'edge79'],
163
+ format: 'iife',
164
+ globalName: 'TagadaSDKBundle',
165
+ outfile: path.join(OUT_DIR, 'tagada-sdk.js'),
166
+ external: [],
167
+ define: {
168
+ 'process.env.NODE_ENV': '"development"',
169
+ },
170
+ footer: {
171
+ js: `
172
+ // Expose SDK under window.tgd namespace (clean, single global)
173
+ if (typeof window !== 'undefined' && TagadaSDKBundle) {
174
+ window.tgd = window.tgd || {};
175
+ window.tgd.createTagadaClient = TagadaSDKBundle.createTagadaClient;
176
+ window.tgd.getPluginConfig = TagadaSDKBundle.getPluginConfig;
177
+ window.tgd.loadPluginConfig = TagadaSDKBundle.loadPluginConfig;
178
+ window.tgd.onConfigUpdate = TagadaSDKBundle.onConfigUpdate;
179
+ window.tgd.sendConfigUpdate = TagadaSDKBundle.sendConfigUpdate;
180
+ window.tgd.broadcastConfigUpdate = TagadaSDKBundle.broadcastConfigUpdate;
181
+ window.tgd.formatMoney = TagadaSDKBundle.formatMoney;
182
+ window.tgd.injectStepConfigScripts = TagadaSDKBundle.injectStepConfigScripts;
183
+ window.tgd.sdk = TagadaSDKBundle;
184
+ }
185
+ `.trim(),
186
+ },
187
+ banner: {
188
+ js: `/**
189
+ * TagadaPay SDK v${require('./package.json').version}
190
+ * CDN Bundle - Full standalone SDK (Debug Build)
191
+ * Usage: window.tgd.createTagadaClient(), window.tgd.formatMoney(), etc.
192
+ * @license MIT
193
+ */`,
194
+ },
195
+ });
196
+
197
+ console.log(' āœ… dist/tagada-sdk.js (non-minified for debugging)');
198
+
199
+ // Get file sizes
200
+ const trackerMinSize = fs.statSync(path.join(OUT_DIR, 'external-tracker.min.js')).size;
201
+ const trackerFullSize = fs.statSync(path.join(OUT_DIR, 'external-tracker.js')).size;
202
+ const sdkMinSize = fs.statSync(path.join(OUT_DIR, 'tagada-sdk.min.js')).size;
203
+ const sdkFullSize = fs.statSync(path.join(OUT_DIR, 'tagada-sdk.js')).size;
204
+
205
+ console.log('\nšŸ“¦ Bundle sizes:');
206
+ console.log(` external-tracker.min.js: ${(trackerMinSize / 1024).toFixed(2)} KB`);
207
+ console.log(` external-tracker.js: ${(trackerFullSize / 1024).toFixed(2)} KB`);
208
+ console.log(` tagada-sdk.min.js: ${(sdkMinSize / 1024).toFixed(2)} KB`);
209
+ console.log(` tagada-sdk.js: ${(sdkFullSize / 1024).toFixed(2)} KB`);
210
+
211
+ console.log('\n✨ CDN build complete!\n');
212
+ console.log('Usage via CDN:');
213
+ console.log('');
214
+ console.log(' // External Tracker (lightweight, tracking only):');
215
+ console.log(' <script src="https://cdn.jsdelivr.net/npm/@tagadapay/plugin-sdk/dist/external-tracker.min.js"></script>');
216
+ console.log(' <script>TagadaTracker.init({ storeId: "store_xxx", ... });</script>');
217
+ console.log('');
218
+ console.log(' // Full SDK (createTagadaClient, config, hot reload):');
219
+ console.log(' <script src="https://cdn.jsdelivr.net/npm/@tagadapay/plugin-sdk/dist/tagada-sdk.min.js"></script>');
220
+ console.log(' <script>');
221
+ console.log(' const client = createTagadaClient({ features: { funnel: true } });');
222
+ console.log(' client.subscribe((state) => console.log(state));');
223
+ console.log(' </script>\n');
224
+ }
225
+
226
+ build().catch((err) => {
227
+ console.error('Build failed:', err);
228
+ process.exit(1);
229
+ });
230
+
231
+
@@ -1,33 +1,16 @@
1
- export declare const AVAILABLE_LANGUAGES: readonly ["en", "ru", "de", "fr", "es", "zh", "hi", "pt", "ja", "ar", "it", "he"];
2
- export type SupportedLanguage = typeof AVAILABLE_LANGUAGES[number];
3
- /**
4
- * Register a language database for use
5
- * @param language - Language code
6
- * @param database - The language database from iso3166-2-db
7
- * @example
8
- * import ruDatabase from 'iso3166-2-db/i18n/dispute/UN/ru';
9
- * registerLanguage('ru', ruDatabase);
10
- */
11
- export declare function registerLanguage(language: SupportedLanguage, database: any): void;
12
- /**
13
- * Check if a language is registered
14
- * @param language - Language code to check
15
- * @returns true if the language is registered
16
- */
17
- export declare function isLanguageRegistered(language: SupportedLanguage): boolean;
18
- /**
19
- * Get list of registered languages
20
- * @returns Array of registered language codes
21
- */
22
- export declare function getRegisteredLanguages(): SupportedLanguage[];
23
1
  /**
24
- * Dynamically import and register a language
25
- * @param language - Language code to import
26
- * @returns Promise that resolves when language is registered
27
- * @example
28
- * await importLanguage('ru');
2
+ * Geodata — CDN-backed country/region data.
3
+ *
4
+ * Instead of bundling the 775KB iso3166-2-db package, we fetch slim JSON
5
+ * from Vercel Blob CDN on demand:
6
+ * - countries.json (~10KB) — fetched once on first getCountries() call
7
+ * - regions.json (~95KB) — fetched lazily on first getStatesForCountry() call
8
+ *
9
+ * Both are cached in memory after first fetch. The API surface is identical
10
+ * to the previous static-import version so all consumers work unchanged.
29
11
  */
30
- export declare function importLanguage(language: SupportedLanguage): Promise<void>;
12
+ export declare const AVAILABLE_LANGUAGES: readonly ["en", "ru", "de", "da", "fr", "es", "zh", "hi", "pt", "ja", "ar", "it", "he"];
13
+ export type SupportedLanguage = typeof AVAILABLE_LANGUAGES[number];
31
14
  export interface Country {
32
15
  code: string;
33
16
  name: string;
@@ -41,20 +24,27 @@ export interface State {
41
24
  countryCode: string;
42
25
  uniqueKey?: string;
43
26
  }
27
+ export declare function ensureCountriesLoaded(language?: SupportedLanguage): Promise<void>;
28
+ export declare function ensureRegionsLoaded(language?: SupportedLanguage): Promise<void>;
29
+ export declare function ensureGeoDataLoaded(language?: SupportedLanguage): Promise<void>;
44
30
  export declare const getCountries: (language?: SupportedLanguage) => Country[];
45
- export declare const getAllStates: (language?: SupportedLanguage) => State[];
46
31
  export declare const getStatesForCountry: (countryCode: string, language?: SupportedLanguage) => State[];
32
+ export declare const getAllStates: (language?: SupportedLanguage) => State[];
47
33
  export declare const findCountryByName: (countryName: string, language?: SupportedLanguage) => Country | null;
48
34
  export declare const findRegionByCode: (regionCode: string, language?: SupportedLanguage) => State | null;
49
35
  export declare const isValidCountryCode: (countryCode: string, language?: SupportedLanguage) => boolean;
50
36
  export declare const isValidStateCode: (countryCode: string, stateCode: string, language?: SupportedLanguage) => boolean;
51
37
  export declare const getCountryWithRegions: (countryCode: string, language?: SupportedLanguage) => {
52
38
  country: {
53
- code: any;
54
- name: any;
55
- iso3: any;
56
- numeric: any;
39
+ code: string;
40
+ name: string;
41
+ iso3: string | undefined;
42
+ numeric: number | undefined;
57
43
  uniqueKey: string;
58
44
  };
59
45
  regions: State[];
60
46
  } | null;
47
+ export declare function registerLanguage(_language: SupportedLanguage, _database: any): void;
48
+ export declare function isLanguageRegistered(language: SupportedLanguage): boolean;
49
+ export declare function getRegisteredLanguages(): SupportedLanguage[];
50
+ export declare function importLanguage(language: SupportedLanguage): Promise<void>;