@ape.swap/bonds-sdk 1.0.138 → 1.0.140

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.
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { ContextApi } from './types';
3
+ export declare const languageMap: Map<string, Record<string, string>>;
4
+ export declare const LanguageContext: React.Context<ContextApi | undefined>;
5
+ export declare const LanguageProvider: ({ children }: {
6
+ children: React.ReactNode;
7
+ }) => React.JSX.Element;
@@ -0,0 +1,134 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { jsx as _jsx } from "theme-ui/jsx-runtime";
49
+ import { createContext, useCallback, useEffect, useState } from 'react';
50
+ import { EN, languages } from '../../config/localization/languages';
51
+ import translations from '../../config/localization/translations.json';
52
+ import { LS_KEY, fetchLocale, getLanguageCodeFromLS } from './helpers';
53
+ import { setLocalStorage } from '../../utils/localStorageHelpers';
54
+ var initialState = {
55
+ isFetching: true,
56
+ currentLanguage: EN,
57
+ };
58
+ // Export the translations directly
59
+ export var languageMap = new Map();
60
+ languageMap.set(EN.locale, translations);
61
+ export var LanguageContext = createContext(undefined);
62
+ export var LanguageProvider = function (_a) {
63
+ var children = _a.children;
64
+ var _b = useState(function () {
65
+ var codeFromStorage = getLanguageCodeFromLS();
66
+ return __assign(__assign({}, initialState), { currentLanguage: languages[codeFromStorage] || EN });
67
+ }), state = _b[0], setState = _b[1];
68
+ var currentLanguage = state.currentLanguage;
69
+ useEffect(function () {
70
+ var fetchInitialLocales = function () { return __awaiter(void 0, void 0, void 0, function () {
71
+ var codeFromStorage, enLocale, currentLocale;
72
+ return __generator(this, function (_a) {
73
+ switch (_a.label) {
74
+ case 0:
75
+ codeFromStorage = getLanguageCodeFromLS();
76
+ if (!(codeFromStorage !== EN.locale)) return [3 /*break*/, 2];
77
+ enLocale = languageMap.get(EN.locale);
78
+ return [4 /*yield*/, fetchLocale(codeFromStorage)];
79
+ case 1:
80
+ currentLocale = _a.sent();
81
+ languageMap.set(codeFromStorage, __assign(__assign({}, enLocale), currentLocale));
82
+ _a.label = 2;
83
+ case 2:
84
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { isFetching: false })); });
85
+ return [2 /*return*/];
86
+ }
87
+ });
88
+ }); };
89
+ fetchInitialLocales();
90
+ }, [setState]);
91
+ var setLanguage = useCallback(function (language) { return __awaiter(void 0, void 0, void 0, function () {
92
+ var locale, enLocale;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ if (!!languageMap.has(language.locale)) return [3 /*break*/, 2];
97
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { isFetching: true })); });
98
+ return [4 /*yield*/, fetchLocale(language.locale)];
99
+ case 1:
100
+ locale = _a.sent();
101
+ if (locale) {
102
+ enLocale = languageMap.get(EN.locale);
103
+ languageMap.set(language.locale, __assign(__assign({}, enLocale), locale));
104
+ }
105
+ setLocalStorage(LS_KEY, language.locale);
106
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { isFetching: false, currentLanguage: language })); });
107
+ return [3 /*break*/, 3];
108
+ case 2:
109
+ setLocalStorage(LS_KEY, language.locale);
110
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { isFetching: false, currentLanguage: language })); });
111
+ _a.label = 3;
112
+ case 3: return [2 /*return*/];
113
+ }
114
+ });
115
+ }); }, []);
116
+ var translate = useCallback(function (key, data) {
117
+ var _a;
118
+ var translationSet = (_a = languageMap.get(currentLanguage.locale)) !== null && _a !== void 0 ? _a : languageMap.get(EN.locale);
119
+ var translatedText = (translationSet === null || translationSet === void 0 ? void 0 : translationSet[key]) || key;
120
+ // Check the existence of at least one combination of %%, separated by 1 or more non space characters
121
+ var includesVariable = translatedText.match(/%\S+?%/gm);
122
+ if (includesVariable && data) {
123
+ var interpolatedText_1 = translatedText;
124
+ Object.keys(data).forEach(function (dataKey) {
125
+ var _a;
126
+ var templateKey = new RegExp("%".concat(dataKey, "%"), 'g');
127
+ interpolatedText_1 = interpolatedText_1.replace(templateKey, (_a = data[dataKey]) === null || _a === void 0 ? void 0 : _a.toString());
128
+ });
129
+ return interpolatedText_1;
130
+ }
131
+ return translatedText;
132
+ }, [currentLanguage]);
133
+ return _jsx(LanguageContext.Provider, __assign({ value: __assign(__assign({}, state), { setLanguage: setLanguage, t: translate }) }, { children: children }));
134
+ };
@@ -0,0 +1,3 @@
1
+ export declare const LS_KEY = "apeswap_language";
2
+ export declare const fetchLocale: (locale: string) => Promise<any>;
3
+ export declare const getLanguageCodeFromLS: () => any;
@@ -0,0 +1,63 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { EN } from '../../config/localization/languages';
38
+ import { getLocalStorage } from '../../utils/localStorageHelpers';
39
+ var publicUrl = process.env.PUBLIC_URL || '';
40
+ export var LS_KEY = 'apeswap_language';
41
+ export var fetchLocale = function (locale) { return __awaiter(void 0, void 0, void 0, function () {
42
+ var response, data;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0: return [4 /*yield*/, fetch("".concat(publicUrl, "/locales/").concat(locale, ".json"))];
46
+ case 1:
47
+ response = _a.sent();
48
+ return [4 /*yield*/, response.json()];
49
+ case 2:
50
+ data = _a.sent();
51
+ return [2 /*return*/, data];
52
+ }
53
+ });
54
+ }); };
55
+ export var getLanguageCodeFromLS = function () {
56
+ try {
57
+ var codeFromStorage = getLocalStorage(LS_KEY);
58
+ return codeFromStorage || EN.locale;
59
+ }
60
+ catch (_a) {
61
+ return EN.locale;
62
+ }
63
+ };
@@ -0,0 +1,3 @@
1
+ export * from './Provider';
2
+ export { default as useTranslation } from './useTranslation';
3
+ export type { TranslateFunction } from './types';
@@ -0,0 +1,2 @@
1
+ export * from './Provider';
2
+ export { default as useTranslation } from './useTranslation';
@@ -0,0 +1,21 @@
1
+ import translations from '../../config/localization/translations.json';
2
+ export interface Language {
3
+ code: string;
4
+ language: string;
5
+ locale: string;
6
+ }
7
+ export type ContextData = {
8
+ [key: string]: string | number;
9
+ };
10
+ export interface ProviderState {
11
+ isFetching: boolean;
12
+ currentLanguage: Language;
13
+ }
14
+ export interface ContextApi extends ProviderState {
15
+ setLanguage: (language: Language) => void;
16
+ t: TranslateFunction;
17
+ }
18
+ type MaybeObject = Record<never, never>;
19
+ export type TranslationKey = keyof typeof translations | (string & MaybeObject);
20
+ export type TranslateFunction = (key: TranslationKey, data?: ContextData) => string;
21
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ declare const useTranslation: () => import("./types").ContextApi;
2
+ export default useTranslation;
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { LanguageContext } from './Provider';
3
+ var useTranslation = function () {
4
+ var languageContext = useContext(LanguageContext);
5
+ if (languageContext === undefined) {
6
+ throw new Error('Language context is undefined');
7
+ }
8
+ return languageContext;
9
+ };
10
+ export default useTranslation;
@@ -0,0 +1,3 @@
1
+ export declare const getLocalStorage: (key: string) => any;
2
+ export declare const setLocalStorage: (key: string, value: any) => void;
3
+ export declare const removeLocalStorage: (key: string) => void;
@@ -0,0 +1,47 @@
1
+ export var getLocalStorage = function (key) {
2
+ if (typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.self) === (window === null || window === void 0 ? void 0 : window.top)) {
3
+ // Not in an iframe, safe to access localStorage
4
+ try {
5
+ var item = localStorage.getItem(key);
6
+ return item ? JSON.parse(item) : null;
7
+ }
8
+ catch (error) {
9
+ console.error('Failed to get value from localStorage:', error);
10
+ return null;
11
+ }
12
+ }
13
+ else {
14
+ // Inside an iframe, don't access localStorage
15
+ return null;
16
+ }
17
+ };
18
+ export var setLocalStorage = function (key, value) {
19
+ if (typeof window !== 'undefined' && (window === null || window === void 0 ? void 0 : window.self) === (window === null || window === void 0 ? void 0 : window.top)) {
20
+ // Not in an iframe, safe to access localStorage
21
+ try {
22
+ localStorage.setItem(key, JSON.stringify(value));
23
+ }
24
+ catch (error) {
25
+ console.error('Failed to set value in localStorage:', error);
26
+ }
27
+ }
28
+ else {
29
+ // Inside an iframe, don't access localStorage
30
+ console.log('Running inside an iframe');
31
+ }
32
+ };
33
+ export var removeLocalStorage = function (key) {
34
+ if (window.self === window.top) {
35
+ // Not in an iframe, safe to access localStorage
36
+ try {
37
+ localStorage.removeItem(key);
38
+ }
39
+ catch (error) {
40
+ console.error('Failed to remove value from localStorage:', error);
41
+ }
42
+ }
43
+ else {
44
+ // Inside an iframe, don't access localStorage
45
+ console.log('Running inside an iframe');
46
+ }
47
+ };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Ape Bond SDK",
4
4
  "author": "Ape Bond",
5
5
  "license": "MIT",
6
- "version": "1.0.138",
6
+ "version": "1.0.140",
7
7
  "main": "dist/index.js",
8
8
  "module": "dist/index.es.js",
9
9
  "types": "dist/index.d.ts",