@tagadapay/plugin-sdk 2.4.34 → 2.4.36
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/data/iso3166.d.ts +28 -0
- package/dist/data/iso3166.js +114 -49
- package/dist/data/languages.d.ts +79 -0
- package/dist/data/languages.js +151 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/react/hooks/useFunnel.d.ts +70 -0
- package/dist/react/hooks/useFunnel.js +385 -0
- package/dist/react/hooks/useISOData.d.ts +23 -4
- package/dist/react/hooks/useISOData.js +67 -11
- package/dist/react/hooks/useLogin.js +1 -1
- package/dist/react/hooks/usePluginConfig.d.ts +23 -4
- package/dist/react/hooks/usePluginConfig.js +50 -9
- package/dist/react/index.d.ts +3 -6
- package/dist/react/index.js +2 -5
- package/dist/react/providers/TagadaProvider.d.ts +5 -2
- package/dist/react/providers/TagadaProvider.js +65 -72
- package/dist/react/types.d.ts +0 -109
- package/dist/react/utils/tokenStorage.js +0 -1
- package/package.json +83 -83
- package/dist/data/countries.d.ts +0 -50
- package/dist/data/countries.js +0 -38181
- package/dist/react/hooks/useCustomerInfos.d.ts +0 -15
- package/dist/react/hooks/useCustomerInfos.js +0 -54
- package/dist/react/hooks/useCustomerOrders.d.ts +0 -14
- package/dist/react/hooks/useCustomerOrders.js +0 -51
- package/dist/react/hooks/useCustomerSubscriptions.d.ts +0 -56
- package/dist/react/hooks/useCustomerSubscriptions.js +0 -77
package/dist/data/iso3166.d.ts
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
export declare const AVAILABLE_LANGUAGES: readonly ["en", "ru", "de", "fr", "es", "zh", "hi", "pt", "ja", "ar", "it", "he"];
|
|
2
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
|
+
/**
|
|
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');
|
|
29
|
+
*/
|
|
30
|
+
export declare function importLanguage(language: SupportedLanguage): Promise<void>;
|
|
3
31
|
export interface Country {
|
|
4
32
|
code: string;
|
|
5
33
|
name: string;
|
package/dist/data/iso3166.js
CHANGED
|
@@ -1,63 +1,128 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
1
|
+
// Modular language database system - import only what you need
|
|
2
|
+
// English is imported by default as fallback
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
4
|
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
5
5
|
import enDatabase from 'iso3166-2-db/i18n/dispute/UN/en';
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
7
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
8
|
-
import ruDatabase from 'iso3166-2-db/i18n/dispute/UN/ru';
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
11
|
-
import deDatabase from 'iso3166-2-db/i18n/dispute/UN/de';
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
13
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
14
|
-
import frDatabase from 'iso3166-2-db/i18n/dispute/UN/fr';
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
16
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
17
|
-
import esDatabase from 'iso3166-2-db/i18n/dispute/UN/es';
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
19
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
20
|
-
import zhDatabase from 'iso3166-2-db/i18n/dispute/UN/zh';
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
22
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
23
|
-
import hiDatabase from 'iso3166-2-db/i18n/dispute/UN/hi';
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
25
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
26
|
-
import ptDatabase from 'iso3166-2-db/i18n/dispute/UN/pt';
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
28
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
29
|
-
import jaDatabase from 'iso3166-2-db/i18n/dispute/UN/ja';
|
|
30
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
31
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
32
|
-
import arDatabase from 'iso3166-2-db/i18n/dispute/UN/ar';
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
34
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
35
|
-
import itDatabase from 'iso3166-2-db/i18n/dispute/UN/it';
|
|
36
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
37
|
-
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
38
|
-
import heDatabase from 'iso3166-2-db/i18n/dispute/UN/he';
|
|
39
6
|
// All available languages from iso3166-2-db package
|
|
40
7
|
export const AVAILABLE_LANGUAGES = ['en', 'ru', 'de', 'fr', 'es', 'zh', 'hi', 'pt', 'ja', 'ar', 'it', 'he'];
|
|
41
|
-
//
|
|
8
|
+
// Dynamic language database registry - starts with English only
|
|
42
9
|
const languageDatabases = {
|
|
43
|
-
en: enDatabase, // English
|
|
44
|
-
ru: ruDatabase, // Russian
|
|
45
|
-
de: deDatabase, // German
|
|
46
|
-
fr: frDatabase, // French
|
|
47
|
-
es: esDatabase, // Spanish
|
|
48
|
-
zh: zhDatabase, // Chinese
|
|
49
|
-
hi: hiDatabase, // Hindi
|
|
50
|
-
pt: ptDatabase, // Portuguese
|
|
51
|
-
ja: jaDatabase, // Japanese
|
|
52
|
-
ar: arDatabase, // Arabic
|
|
53
|
-
it: itDatabase, // Italian
|
|
54
|
-
he: heDatabase, // Hebrew
|
|
10
|
+
en: enDatabase, // English (always available)
|
|
55
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Register a language database for use
|
|
14
|
+
* @param language - Language code
|
|
15
|
+
* @param database - The language database from iso3166-2-db
|
|
16
|
+
* @example
|
|
17
|
+
* import ruDatabase from 'iso3166-2-db/i18n/dispute/UN/ru';
|
|
18
|
+
* registerLanguage('ru', ruDatabase);
|
|
19
|
+
*/
|
|
20
|
+
export function registerLanguage(language, database) {
|
|
21
|
+
if (!AVAILABLE_LANGUAGES.includes(language)) {
|
|
22
|
+
console.warn(`Language ${language} is not supported. Available languages: ${AVAILABLE_LANGUAGES.join(', ')}`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
languageDatabases[language] = database;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Check if a language is registered
|
|
29
|
+
* @param language - Language code to check
|
|
30
|
+
* @returns true if the language is registered
|
|
31
|
+
*/
|
|
32
|
+
export function isLanguageRegistered(language) {
|
|
33
|
+
return language in languageDatabases;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get list of registered languages
|
|
37
|
+
* @returns Array of registered language codes
|
|
38
|
+
*/
|
|
39
|
+
export function getRegisteredLanguages() {
|
|
40
|
+
return Object.keys(languageDatabases);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Dynamically import and register a language
|
|
44
|
+
* @param language - Language code to import
|
|
45
|
+
* @returns Promise that resolves when language is registered
|
|
46
|
+
* @example
|
|
47
|
+
* await importLanguage('ru');
|
|
48
|
+
*/
|
|
49
|
+
export async function importLanguage(language) {
|
|
50
|
+
if (isLanguageRegistered(language)) {
|
|
51
|
+
return; // Already registered
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
let database;
|
|
55
|
+
switch (language) {
|
|
56
|
+
case 'ru':
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
58
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
59
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/ru')).default;
|
|
60
|
+
break;
|
|
61
|
+
case 'de':
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
63
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
64
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/de')).default;
|
|
65
|
+
break;
|
|
66
|
+
case 'fr':
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
68
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
69
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/fr')).default;
|
|
70
|
+
break;
|
|
71
|
+
case 'es':
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
73
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
74
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/es')).default;
|
|
75
|
+
break;
|
|
76
|
+
case 'zh':
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
78
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
79
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/zh')).default;
|
|
80
|
+
break;
|
|
81
|
+
case 'hi':
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
83
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
84
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/hi')).default;
|
|
85
|
+
break;
|
|
86
|
+
case 'pt':
|
|
87
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
88
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
89
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/pt')).default;
|
|
90
|
+
break;
|
|
91
|
+
case 'ja':
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
93
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
94
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/ja')).default;
|
|
95
|
+
break;
|
|
96
|
+
case 'ar':
|
|
97
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
98
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
99
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/ar')).default;
|
|
100
|
+
break;
|
|
101
|
+
case 'it':
|
|
102
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
103
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
104
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/it')).default;
|
|
105
|
+
break;
|
|
106
|
+
case 'he':
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
108
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
109
|
+
database = (await import('iso3166-2-db/i18n/dispute/UN/he')).default;
|
|
110
|
+
break;
|
|
111
|
+
default:
|
|
112
|
+
throw new Error(`Language ${language} is not supported`);
|
|
113
|
+
}
|
|
114
|
+
registerLanguage(language, database);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
console.error(`Failed to import language ${language}:`, error);
|
|
118
|
+
throw new Error(`Failed to import language ${language}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
56
121
|
// Function to get language-specific database
|
|
57
122
|
function getWorldDatabase(language = 'en') {
|
|
58
123
|
const database = languageDatabases[language];
|
|
59
124
|
if (!database) {
|
|
60
|
-
console.warn(`Language ${language} not available, falling back to English
|
|
125
|
+
console.warn(`Language ${language} not available, falling back to English. Use importLanguage('${language}') to load it.`);
|
|
61
126
|
return languageDatabases.en;
|
|
62
127
|
}
|
|
63
128
|
return database;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { SupportedLanguage } from './iso3166';
|
|
2
|
+
/**
|
|
3
|
+
* Import and register Russian language data
|
|
4
|
+
* @example
|
|
5
|
+
* import { importRussian } from '@tagadapay/plugin-sdk/data/languages';
|
|
6
|
+
* await importRussian();
|
|
7
|
+
*/
|
|
8
|
+
export declare function importRussian(): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Import and register German language data
|
|
11
|
+
*/
|
|
12
|
+
export declare function importGerman(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Import and register French language data
|
|
15
|
+
*/
|
|
16
|
+
export declare function importFrench(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Import and register Spanish language data
|
|
19
|
+
*/
|
|
20
|
+
export declare function importSpanish(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Import and register Chinese language data
|
|
23
|
+
*/
|
|
24
|
+
export declare function importChinese(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Import and register Hindi language data
|
|
27
|
+
*/
|
|
28
|
+
export declare function importHindi(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Import and register Portuguese language data
|
|
31
|
+
*/
|
|
32
|
+
export declare function importPortuguese(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Import and register Japanese language data
|
|
35
|
+
*/
|
|
36
|
+
export declare function importJapanese(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Import and register Arabic language data
|
|
39
|
+
*/
|
|
40
|
+
export declare function importArabic(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Import and register Italian language data
|
|
43
|
+
*/
|
|
44
|
+
export declare function importItalian(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Import and register Hebrew language data
|
|
47
|
+
*/
|
|
48
|
+
export declare function importHebrew(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Language import functions mapping
|
|
51
|
+
*/
|
|
52
|
+
export declare const languageImports: {
|
|
53
|
+
readonly ru: typeof importRussian;
|
|
54
|
+
readonly de: typeof importGerman;
|
|
55
|
+
readonly fr: typeof importFrench;
|
|
56
|
+
readonly es: typeof importSpanish;
|
|
57
|
+
readonly zh: typeof importChinese;
|
|
58
|
+
readonly hi: typeof importHindi;
|
|
59
|
+
readonly pt: typeof importPortuguese;
|
|
60
|
+
readonly ja: typeof importJapanese;
|
|
61
|
+
readonly ar: typeof importArabic;
|
|
62
|
+
readonly it: typeof importItalian;
|
|
63
|
+
readonly he: typeof importHebrew;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Import multiple languages at once
|
|
67
|
+
* @param languages - Array of language codes to import
|
|
68
|
+
* @example
|
|
69
|
+
* import { importLanguages } from '@tagadapay/plugin-sdk/data/languages';
|
|
70
|
+
* await importLanguages(['ru', 'de', 'fr']);
|
|
71
|
+
*/
|
|
72
|
+
export declare function importLanguages(languages: SupportedLanguage[]): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Import all available languages (except English which is already imported)
|
|
75
|
+
* @example
|
|
76
|
+
* import { importAllLanguages } from '@tagadapay/plugin-sdk/data/languages';
|
|
77
|
+
* await importAllLanguages();
|
|
78
|
+
*/
|
|
79
|
+
export declare function importAllLanguages(): Promise<void>;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
// Language import utilities for modular ISO data loading
|
|
2
|
+
// This file provides convenient functions to import specific languages
|
|
3
|
+
import { registerLanguage } from './iso3166';
|
|
4
|
+
/**
|
|
5
|
+
* Import and register Russian language data
|
|
6
|
+
* @example
|
|
7
|
+
* import { importRussian } from '@tagadapay/plugin-sdk/data/languages';
|
|
8
|
+
* await importRussian();
|
|
9
|
+
*/
|
|
10
|
+
export async function importRussian() {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
13
|
+
const ruDatabase = (await import('iso3166-2-db/i18n/dispute/UN/ru')).default;
|
|
14
|
+
registerLanguage('ru', ruDatabase);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Import and register German language data
|
|
18
|
+
*/
|
|
19
|
+
export async function importGerman() {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
21
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
22
|
+
const deDatabase = (await import('iso3166-2-db/i18n/dispute/UN/de')).default;
|
|
23
|
+
registerLanguage('de', deDatabase);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Import and register French language data
|
|
27
|
+
*/
|
|
28
|
+
export async function importFrench() {
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
30
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
31
|
+
const frDatabase = (await import('iso3166-2-db/i18n/dispute/UN/fr')).default;
|
|
32
|
+
registerLanguage('fr', frDatabase);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Import and register Spanish language data
|
|
36
|
+
*/
|
|
37
|
+
export async function importSpanish() {
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
39
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
40
|
+
const esDatabase = (await import('iso3166-2-db/i18n/dispute/UN/es')).default;
|
|
41
|
+
registerLanguage('es', esDatabase);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Import and register Chinese language data
|
|
45
|
+
*/
|
|
46
|
+
export async function importChinese() {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
48
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
49
|
+
const zhDatabase = (await import('iso3166-2-db/i18n/dispute/UN/zh')).default;
|
|
50
|
+
registerLanguage('zh', zhDatabase);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Import and register Hindi language data
|
|
54
|
+
*/
|
|
55
|
+
export async function importHindi() {
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
57
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
58
|
+
const hiDatabase = (await import('iso3166-2-db/i18n/dispute/UN/hi')).default;
|
|
59
|
+
registerLanguage('hi', hiDatabase);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Import and register Portuguese language data
|
|
63
|
+
*/
|
|
64
|
+
export async function importPortuguese() {
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
66
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
67
|
+
const ptDatabase = (await import('iso3166-2-db/i18n/dispute/UN/pt')).default;
|
|
68
|
+
registerLanguage('pt', ptDatabase);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Import and register Japanese language data
|
|
72
|
+
*/
|
|
73
|
+
export async function importJapanese() {
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
75
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
76
|
+
const jaDatabase = (await import('iso3166-2-db/i18n/dispute/UN/ja')).default;
|
|
77
|
+
registerLanguage('ja', jaDatabase);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Import and register Arabic language data
|
|
81
|
+
*/
|
|
82
|
+
export async function importArabic() {
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
84
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
85
|
+
const arDatabase = (await import('iso3166-2-db/i18n/dispute/UN/ar')).default;
|
|
86
|
+
registerLanguage('ar', arDatabase);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Import and register Italian language data
|
|
90
|
+
*/
|
|
91
|
+
export async function importItalian() {
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
93
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
94
|
+
const itDatabase = (await import('iso3166-2-db/i18n/dispute/UN/it')).default;
|
|
95
|
+
registerLanguage('it', itDatabase);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Import and register Hebrew language data
|
|
99
|
+
*/
|
|
100
|
+
export async function importHebrew() {
|
|
101
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
102
|
+
// @ts-ignore - iso3166-2-db doesn't have TypeScript definitions
|
|
103
|
+
const heDatabase = (await import('iso3166-2-db/i18n/dispute/UN/he')).default;
|
|
104
|
+
registerLanguage('he', heDatabase);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Language import functions mapping
|
|
108
|
+
*/
|
|
109
|
+
export const languageImports = {
|
|
110
|
+
ru: importRussian,
|
|
111
|
+
de: importGerman,
|
|
112
|
+
fr: importFrench,
|
|
113
|
+
es: importSpanish,
|
|
114
|
+
zh: importChinese,
|
|
115
|
+
hi: importHindi,
|
|
116
|
+
pt: importPortuguese,
|
|
117
|
+
ja: importJapanese,
|
|
118
|
+
ar: importArabic,
|
|
119
|
+
it: importItalian,
|
|
120
|
+
he: importHebrew,
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Import multiple languages at once
|
|
124
|
+
* @param languages - Array of language codes to import
|
|
125
|
+
* @example
|
|
126
|
+
* import { importLanguages } from '@tagadapay/plugin-sdk/data/languages';
|
|
127
|
+
* await importLanguages(['ru', 'de', 'fr']);
|
|
128
|
+
*/
|
|
129
|
+
export async function importLanguages(languages) {
|
|
130
|
+
const importPromises = languages
|
|
131
|
+
.filter(lang => lang !== 'en') // English is already imported
|
|
132
|
+
.map(lang => {
|
|
133
|
+
const importFn = languageImports[lang];
|
|
134
|
+
if (!importFn) {
|
|
135
|
+
console.warn(`No import function found for language: ${lang}`);
|
|
136
|
+
return Promise.resolve();
|
|
137
|
+
}
|
|
138
|
+
return importFn();
|
|
139
|
+
});
|
|
140
|
+
await Promise.all(importPromises);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Import all available languages (except English which is already imported)
|
|
144
|
+
* @example
|
|
145
|
+
* import { importAllLanguages } from '@tagadapay/plugin-sdk/data/languages';
|
|
146
|
+
* await importAllLanguages();
|
|
147
|
+
*/
|
|
148
|
+
export async function importAllLanguages() {
|
|
149
|
+
const allLanguages = ['ru', 'de', 'fr', 'es', 'zh', 'hi', 'pt', 'ja', 'ar', 'it', 'he'];
|
|
150
|
+
await importLanguages(allLanguages);
|
|
151
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
*/
|
|
13
13
|
export type { Currency, Customer, Environment, EnvironmentConfig, Locale, Order, OrderAddress, OrderItem, OrderSummary, PickupPoint, Session, Store, } from './react/types';
|
|
14
14
|
export { convertCurrency, formatMoney, formatMoneyWithoutSymbol, formatSimpleMoney, getCurrencyInfo, minorUnitsToMajorUnits, moneyStringOrNumberToMinorUnits, } from './react/utils/money';
|
|
15
|
-
export * from './data/countries';
|
|
16
15
|
export * from './data/iso3166';
|
|
16
|
+
export * from './data/languages';
|
package/dist/index.js
CHANGED
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
// Export utility functions that don't depend on React
|
|
14
14
|
export { convertCurrency, formatMoney, formatMoneyWithoutSymbol, formatSimpleMoney, getCurrencyInfo, minorUnitsToMajorUnits, moneyStringOrNumberToMinorUnits, } from './react/utils/money';
|
|
15
15
|
// Export data utilities
|
|
16
|
-
export * from './data/countries';
|
|
17
16
|
export * from './data/iso3166';
|
|
17
|
+
export * from './data/languages';
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface FunnelEvent {
|
|
2
|
+
type: string;
|
|
3
|
+
data?: any;
|
|
4
|
+
timestamp?: Date;
|
|
5
|
+
}
|
|
6
|
+
export interface FunnelNavigationAction {
|
|
7
|
+
type: 'redirect' | 'replace' | 'push' | 'external' | 'none';
|
|
8
|
+
url?: string;
|
|
9
|
+
data?: any;
|
|
10
|
+
}
|
|
11
|
+
export interface FunnelNavigationResult {
|
|
12
|
+
stepId: string;
|
|
13
|
+
action: FunnelNavigationAction;
|
|
14
|
+
context: SimpleFunnelContext;
|
|
15
|
+
tracking?: {
|
|
16
|
+
from: string;
|
|
17
|
+
to: string;
|
|
18
|
+
event: string;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface SimpleFunnelContext {
|
|
23
|
+
customerId: string;
|
|
24
|
+
storeId: string;
|
|
25
|
+
sessionId: string;
|
|
26
|
+
funnelId: string;
|
|
27
|
+
currentStepId: string;
|
|
28
|
+
previousStepId?: string;
|
|
29
|
+
startedAt: number;
|
|
30
|
+
lastActivityAt: number;
|
|
31
|
+
metadata?: Record<string, any>;
|
|
32
|
+
}
|
|
33
|
+
export interface UseFunnelOptions {
|
|
34
|
+
funnelId?: string;
|
|
35
|
+
currentStepId?: string;
|
|
36
|
+
onNavigate?: (result: FunnelNavigationResult) => void | boolean;
|
|
37
|
+
onError?: (error: Error) => void;
|
|
38
|
+
autoInitialize?: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface UseFunnelResult {
|
|
41
|
+
next: (event: FunnelEvent) => Promise<any>;
|
|
42
|
+
goToStep: (stepId: string) => Promise<any>;
|
|
43
|
+
updateContext: (updates: Partial<SimpleFunnelContext>) => Promise<void>;
|
|
44
|
+
currentStep: {
|
|
45
|
+
id: string;
|
|
46
|
+
};
|
|
47
|
+
context: SimpleFunnelContext | null;
|
|
48
|
+
isLoading: boolean;
|
|
49
|
+
isInitialized: boolean;
|
|
50
|
+
initializeSession: (entryStepId?: string) => Promise<void>;
|
|
51
|
+
endSession: () => Promise<void>;
|
|
52
|
+
retryInitialization: () => Promise<void>;
|
|
53
|
+
initializationError: Error | null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* React Hook for Funnel Navigation (Plugin SDK Version)
|
|
57
|
+
*
|
|
58
|
+
* Simplified funnel navigation using KV storage for funnel sessions.
|
|
59
|
+
* Integrates with TagadaPay authentication and plugin routing.
|
|
60
|
+
*/
|
|
61
|
+
export declare function useFunnel(options: UseFunnelOptions): UseFunnelResult;
|
|
62
|
+
/**
|
|
63
|
+
* Simplified funnel hook for basic step tracking
|
|
64
|
+
*/
|
|
65
|
+
export declare function useSimpleFunnel(funnelId: string, initialStepId?: string): {
|
|
66
|
+
currentStepId: string;
|
|
67
|
+
next: (event: FunnelEvent) => Promise<any>;
|
|
68
|
+
goToStep: (stepId: string) => Promise<any>;
|
|
69
|
+
isLoading: boolean;
|
|
70
|
+
};
|