@oxyhq/core 1.0.0

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 (277) hide show
  1. package/README.md +50 -0
  2. package/dist/cjs/AuthManager.js +361 -0
  3. package/dist/cjs/CrossDomainAuth.js +258 -0
  4. package/dist/cjs/HttpService.js +618 -0
  5. package/dist/cjs/OxyServices.base.js +263 -0
  6. package/dist/cjs/OxyServices.errors.js +22 -0
  7. package/dist/cjs/OxyServices.js +63 -0
  8. package/dist/cjs/constants/version.js +16 -0
  9. package/dist/cjs/crypto/index.js +20 -0
  10. package/dist/cjs/crypto/keyManager.js +887 -0
  11. package/dist/cjs/crypto/polyfill.js +64 -0
  12. package/dist/cjs/crypto/recoveryPhrase.js +169 -0
  13. package/dist/cjs/crypto/signatureService.js +296 -0
  14. package/dist/cjs/i18n/index.js +73 -0
  15. package/dist/cjs/i18n/locales/ar-SA.json +120 -0
  16. package/dist/cjs/i18n/locales/ca-ES.json +120 -0
  17. package/dist/cjs/i18n/locales/de-DE.json +120 -0
  18. package/dist/cjs/i18n/locales/en-US.json +956 -0
  19. package/dist/cjs/i18n/locales/es-ES.json +944 -0
  20. package/dist/cjs/i18n/locales/fr-FR.json +120 -0
  21. package/dist/cjs/i18n/locales/it-IT.json +120 -0
  22. package/dist/cjs/i18n/locales/ja-JP.json +119 -0
  23. package/dist/cjs/i18n/locales/ko-KR.json +120 -0
  24. package/dist/cjs/i18n/locales/locales/ar-SA.json +120 -0
  25. package/dist/cjs/i18n/locales/locales/ca-ES.json +120 -0
  26. package/dist/cjs/i18n/locales/locales/de-DE.json +120 -0
  27. package/dist/cjs/i18n/locales/locales/en-US.json +956 -0
  28. package/dist/cjs/i18n/locales/locales/es-ES.json +944 -0
  29. package/dist/cjs/i18n/locales/locales/fr-FR.json +120 -0
  30. package/dist/cjs/i18n/locales/locales/it-IT.json +120 -0
  31. package/dist/cjs/i18n/locales/locales/ja-JP.json +119 -0
  32. package/dist/cjs/i18n/locales/locales/ko-KR.json +120 -0
  33. package/dist/cjs/i18n/locales/locales/pt-PT.json +120 -0
  34. package/dist/cjs/i18n/locales/locales/zh-CN.json +120 -0
  35. package/dist/cjs/i18n/locales/pt-PT.json +120 -0
  36. package/dist/cjs/i18n/locales/zh-CN.json +120 -0
  37. package/dist/cjs/index.js +153 -0
  38. package/dist/cjs/mixins/OxyServices.analytics.js +49 -0
  39. package/dist/cjs/mixins/OxyServices.assets.js +380 -0
  40. package/dist/cjs/mixins/OxyServices.auth.js +259 -0
  41. package/dist/cjs/mixins/OxyServices.developer.js +97 -0
  42. package/dist/cjs/mixins/OxyServices.devices.js +116 -0
  43. package/dist/cjs/mixins/OxyServices.features.js +309 -0
  44. package/dist/cjs/mixins/OxyServices.fedcm.js +435 -0
  45. package/dist/cjs/mixins/OxyServices.karma.js +108 -0
  46. package/dist/cjs/mixins/OxyServices.language.js +154 -0
  47. package/dist/cjs/mixins/OxyServices.location.js +43 -0
  48. package/dist/cjs/mixins/OxyServices.payment.js +158 -0
  49. package/dist/cjs/mixins/OxyServices.popup.js +371 -0
  50. package/dist/cjs/mixins/OxyServices.privacy.js +162 -0
  51. package/dist/cjs/mixins/OxyServices.redirect.js +345 -0
  52. package/dist/cjs/mixins/OxyServices.security.js +81 -0
  53. package/dist/cjs/mixins/OxyServices.user.js +355 -0
  54. package/dist/cjs/mixins/OxyServices.utility.js +156 -0
  55. package/dist/cjs/mixins/index.js +79 -0
  56. package/dist/cjs/mixins/mixinHelpers.js +53 -0
  57. package/dist/cjs/models/interfaces.js +20 -0
  58. package/dist/cjs/models/session.js +2 -0
  59. package/dist/cjs/shared/index.js +70 -0
  60. package/dist/cjs/shared/utils/colorUtils.js +153 -0
  61. package/dist/cjs/shared/utils/debugUtils.js +73 -0
  62. package/dist/cjs/shared/utils/errorUtils.js +183 -0
  63. package/dist/cjs/shared/utils/index.js +49 -0
  64. package/dist/cjs/shared/utils/networkUtils.js +183 -0
  65. package/dist/cjs/shared/utils/themeUtils.js +106 -0
  66. package/dist/cjs/utils/apiUtils.js +61 -0
  67. package/dist/cjs/utils/asyncUtils.js +194 -0
  68. package/dist/cjs/utils/cache.js +226 -0
  69. package/dist/cjs/utils/deviceManager.js +205 -0
  70. package/dist/cjs/utils/errorUtils.js +154 -0
  71. package/dist/cjs/utils/index.js +26 -0
  72. package/dist/cjs/utils/languageUtils.js +165 -0
  73. package/dist/cjs/utils/loggerUtils.js +126 -0
  74. package/dist/cjs/utils/platform.js +144 -0
  75. package/dist/cjs/utils/requestUtils.js +209 -0
  76. package/dist/cjs/utils/sessionUtils.js +181 -0
  77. package/dist/cjs/utils/validationUtils.js +173 -0
  78. package/dist/esm/AuthManager.js +356 -0
  79. package/dist/esm/CrossDomainAuth.js +253 -0
  80. package/dist/esm/HttpService.js +614 -0
  81. package/dist/esm/OxyServices.base.js +259 -0
  82. package/dist/esm/OxyServices.errors.js +17 -0
  83. package/dist/esm/OxyServices.js +59 -0
  84. package/dist/esm/constants/version.js +13 -0
  85. package/dist/esm/crypto/index.js +13 -0
  86. package/dist/esm/crypto/keyManager.js +850 -0
  87. package/dist/esm/crypto/polyfill.js +61 -0
  88. package/dist/esm/crypto/recoveryPhrase.js +132 -0
  89. package/dist/esm/crypto/signatureService.js +259 -0
  90. package/dist/esm/i18n/index.js +69 -0
  91. package/dist/esm/i18n/locales/ar-SA.json +120 -0
  92. package/dist/esm/i18n/locales/ca-ES.json +120 -0
  93. package/dist/esm/i18n/locales/de-DE.json +120 -0
  94. package/dist/esm/i18n/locales/en-US.json +956 -0
  95. package/dist/esm/i18n/locales/es-ES.json +944 -0
  96. package/dist/esm/i18n/locales/fr-FR.json +120 -0
  97. package/dist/esm/i18n/locales/it-IT.json +120 -0
  98. package/dist/esm/i18n/locales/ja-JP.json +119 -0
  99. package/dist/esm/i18n/locales/ko-KR.json +120 -0
  100. package/dist/esm/i18n/locales/locales/ar-SA.json +120 -0
  101. package/dist/esm/i18n/locales/locales/ca-ES.json +120 -0
  102. package/dist/esm/i18n/locales/locales/de-DE.json +120 -0
  103. package/dist/esm/i18n/locales/locales/en-US.json +956 -0
  104. package/dist/esm/i18n/locales/locales/es-ES.json +944 -0
  105. package/dist/esm/i18n/locales/locales/fr-FR.json +120 -0
  106. package/dist/esm/i18n/locales/locales/it-IT.json +120 -0
  107. package/dist/esm/i18n/locales/locales/ja-JP.json +119 -0
  108. package/dist/esm/i18n/locales/locales/ko-KR.json +120 -0
  109. package/dist/esm/i18n/locales/locales/pt-PT.json +120 -0
  110. package/dist/esm/i18n/locales/locales/zh-CN.json +120 -0
  111. package/dist/esm/i18n/locales/pt-PT.json +120 -0
  112. package/dist/esm/i18n/locales/zh-CN.json +120 -0
  113. package/dist/esm/index.js +55 -0
  114. package/dist/esm/mixins/OxyServices.analytics.js +46 -0
  115. package/dist/esm/mixins/OxyServices.assets.js +377 -0
  116. package/dist/esm/mixins/OxyServices.auth.js +256 -0
  117. package/dist/esm/mixins/OxyServices.developer.js +94 -0
  118. package/dist/esm/mixins/OxyServices.devices.js +113 -0
  119. package/dist/esm/mixins/OxyServices.features.js +306 -0
  120. package/dist/esm/mixins/OxyServices.fedcm.js +433 -0
  121. package/dist/esm/mixins/OxyServices.karma.js +105 -0
  122. package/dist/esm/mixins/OxyServices.language.js +118 -0
  123. package/dist/esm/mixins/OxyServices.location.js +40 -0
  124. package/dist/esm/mixins/OxyServices.payment.js +155 -0
  125. package/dist/esm/mixins/OxyServices.popup.js +369 -0
  126. package/dist/esm/mixins/OxyServices.privacy.js +159 -0
  127. package/dist/esm/mixins/OxyServices.redirect.js +343 -0
  128. package/dist/esm/mixins/OxyServices.security.js +78 -0
  129. package/dist/esm/mixins/OxyServices.user.js +352 -0
  130. package/dist/esm/mixins/OxyServices.utility.js +153 -0
  131. package/dist/esm/mixins/index.js +76 -0
  132. package/dist/esm/mixins/mixinHelpers.js +48 -0
  133. package/dist/esm/models/interfaces.js +17 -0
  134. package/dist/esm/models/session.js +1 -0
  135. package/dist/esm/shared/index.js +31 -0
  136. package/dist/esm/shared/utils/colorUtils.js +143 -0
  137. package/dist/esm/shared/utils/debugUtils.js +65 -0
  138. package/dist/esm/shared/utils/errorUtils.js +170 -0
  139. package/dist/esm/shared/utils/index.js +15 -0
  140. package/dist/esm/shared/utils/networkUtils.js +173 -0
  141. package/dist/esm/shared/utils/themeUtils.js +98 -0
  142. package/dist/esm/utils/apiUtils.js +55 -0
  143. package/dist/esm/utils/asyncUtils.js +179 -0
  144. package/dist/esm/utils/cache.js +218 -0
  145. package/dist/esm/utils/deviceManager.js +168 -0
  146. package/dist/esm/utils/errorUtils.js +146 -0
  147. package/dist/esm/utils/index.js +7 -0
  148. package/dist/esm/utils/languageUtils.js +158 -0
  149. package/dist/esm/utils/loggerUtils.js +115 -0
  150. package/dist/esm/utils/platform.js +102 -0
  151. package/dist/esm/utils/requestUtils.js +203 -0
  152. package/dist/esm/utils/sessionUtils.js +171 -0
  153. package/dist/esm/utils/validationUtils.js +153 -0
  154. package/dist/types/AuthManager.d.ts +143 -0
  155. package/dist/types/CrossDomainAuth.d.ts +160 -0
  156. package/dist/types/HttpService.d.ts +163 -0
  157. package/dist/types/OxyServices.base.d.ts +126 -0
  158. package/dist/types/OxyServices.d.ts +81 -0
  159. package/dist/types/OxyServices.errors.d.ts +11 -0
  160. package/dist/types/constants/version.d.ts +13 -0
  161. package/dist/types/crypto/index.d.ts +11 -0
  162. package/dist/types/crypto/keyManager.d.ts +189 -0
  163. package/dist/types/crypto/polyfill.d.ts +11 -0
  164. package/dist/types/crypto/recoveryPhrase.d.ts +58 -0
  165. package/dist/types/crypto/signatureService.d.ts +86 -0
  166. package/dist/types/i18n/index.d.ts +3 -0
  167. package/dist/types/index.d.ts +50 -0
  168. package/dist/types/mixins/OxyServices.analytics.d.ts +66 -0
  169. package/dist/types/mixins/OxyServices.assets.d.ts +135 -0
  170. package/dist/types/mixins/OxyServices.auth.d.ts +186 -0
  171. package/dist/types/mixins/OxyServices.developer.d.ts +99 -0
  172. package/dist/types/mixins/OxyServices.devices.d.ts +96 -0
  173. package/dist/types/mixins/OxyServices.features.d.ts +228 -0
  174. package/dist/types/mixins/OxyServices.fedcm.d.ts +200 -0
  175. package/dist/types/mixins/OxyServices.karma.d.ts +85 -0
  176. package/dist/types/mixins/OxyServices.language.d.ts +81 -0
  177. package/dist/types/mixins/OxyServices.location.d.ts +64 -0
  178. package/dist/types/mixins/OxyServices.payment.d.ts +111 -0
  179. package/dist/types/mixins/OxyServices.popup.d.ts +205 -0
  180. package/dist/types/mixins/OxyServices.privacy.d.ts +122 -0
  181. package/dist/types/mixins/OxyServices.redirect.d.ts +245 -0
  182. package/dist/types/mixins/OxyServices.security.d.ts +78 -0
  183. package/dist/types/mixins/OxyServices.user.d.ts +182 -0
  184. package/dist/types/mixins/OxyServices.utility.d.ts +93 -0
  185. package/dist/types/mixins/index.d.ts +30 -0
  186. package/dist/types/mixins/mixinHelpers.d.ts +31 -0
  187. package/dist/types/models/interfaces.d.ts +415 -0
  188. package/dist/types/models/session.d.ts +27 -0
  189. package/dist/types/shared/index.d.ts +28 -0
  190. package/dist/types/shared/utils/colorUtils.d.ts +104 -0
  191. package/dist/types/shared/utils/debugUtils.d.ts +48 -0
  192. package/dist/types/shared/utils/errorUtils.d.ts +97 -0
  193. package/dist/types/shared/utils/index.d.ts +13 -0
  194. package/dist/types/shared/utils/networkUtils.d.ts +139 -0
  195. package/dist/types/shared/utils/themeUtils.d.ts +90 -0
  196. package/dist/types/utils/apiUtils.d.ts +53 -0
  197. package/dist/types/utils/asyncUtils.d.ts +58 -0
  198. package/dist/types/utils/cache.d.ts +127 -0
  199. package/dist/types/utils/deviceManager.d.ts +65 -0
  200. package/dist/types/utils/errorUtils.d.ts +46 -0
  201. package/dist/types/utils/index.d.ts +6 -0
  202. package/dist/types/utils/languageUtils.d.ts +37 -0
  203. package/dist/types/utils/loggerUtils.d.ts +48 -0
  204. package/dist/types/utils/platform.d.ts +40 -0
  205. package/dist/types/utils/requestUtils.d.ts +123 -0
  206. package/dist/types/utils/sessionUtils.d.ts +54 -0
  207. package/dist/types/utils/validationUtils.d.ts +85 -0
  208. package/package.json +84 -0
  209. package/src/AuthManager.ts +436 -0
  210. package/src/CrossDomainAuth.ts +307 -0
  211. package/src/HttpService.ts +752 -0
  212. package/src/OxyServices.base.ts +334 -0
  213. package/src/OxyServices.errors.ts +26 -0
  214. package/src/OxyServices.ts +129 -0
  215. package/src/constants/version.ts +15 -0
  216. package/src/crypto/index.ts +25 -0
  217. package/src/crypto/keyManager.ts +962 -0
  218. package/src/crypto/polyfill.ts +70 -0
  219. package/src/crypto/recoveryPhrase.ts +166 -0
  220. package/src/crypto/signatureService.ts +323 -0
  221. package/src/i18n/index.ts +75 -0
  222. package/src/i18n/locales/ar-SA.json +120 -0
  223. package/src/i18n/locales/ca-ES.json +120 -0
  224. package/src/i18n/locales/de-DE.json +120 -0
  225. package/src/i18n/locales/en-US.json +956 -0
  226. package/src/i18n/locales/es-ES.json +944 -0
  227. package/src/i18n/locales/fr-FR.json +120 -0
  228. package/src/i18n/locales/it-IT.json +120 -0
  229. package/src/i18n/locales/ja-JP.json +119 -0
  230. package/src/i18n/locales/ko-KR.json +120 -0
  231. package/src/i18n/locales/pt-PT.json +120 -0
  232. package/src/i18n/locales/zh-CN.json +120 -0
  233. package/src/index.ts +153 -0
  234. package/src/mixins/OxyServices.analytics.ts +53 -0
  235. package/src/mixins/OxyServices.assets.ts +412 -0
  236. package/src/mixins/OxyServices.auth.ts +358 -0
  237. package/src/mixins/OxyServices.developer.ts +114 -0
  238. package/src/mixins/OxyServices.devices.ts +119 -0
  239. package/src/mixins/OxyServices.features.ts +428 -0
  240. package/src/mixins/OxyServices.fedcm.ts +494 -0
  241. package/src/mixins/OxyServices.karma.ts +111 -0
  242. package/src/mixins/OxyServices.language.ts +127 -0
  243. package/src/mixins/OxyServices.location.ts +46 -0
  244. package/src/mixins/OxyServices.payment.ts +163 -0
  245. package/src/mixins/OxyServices.popup.ts +443 -0
  246. package/src/mixins/OxyServices.privacy.ts +182 -0
  247. package/src/mixins/OxyServices.redirect.ts +397 -0
  248. package/src/mixins/OxyServices.security.ts +103 -0
  249. package/src/mixins/OxyServices.user.ts +392 -0
  250. package/src/mixins/OxyServices.utility.ts +191 -0
  251. package/src/mixins/index.ts +91 -0
  252. package/src/mixins/mixinHelpers.ts +69 -0
  253. package/src/models/interfaces.ts +511 -0
  254. package/src/models/session.ts +30 -0
  255. package/src/shared/index.ts +82 -0
  256. package/src/shared/utils/colorUtils.ts +155 -0
  257. package/src/shared/utils/debugUtils.ts +73 -0
  258. package/src/shared/utils/errorUtils.ts +181 -0
  259. package/src/shared/utils/index.ts +59 -0
  260. package/src/shared/utils/networkUtils.ts +248 -0
  261. package/src/shared/utils/themeUtils.ts +115 -0
  262. package/src/types/bip39.d.ts +32 -0
  263. package/src/types/buffer.d.ts +97 -0
  264. package/src/types/color.d.ts +20 -0
  265. package/src/types/elliptic.d.ts +62 -0
  266. package/src/utils/apiUtils.ts +88 -0
  267. package/src/utils/asyncUtils.ts +252 -0
  268. package/src/utils/cache.ts +264 -0
  269. package/src/utils/deviceManager.ts +198 -0
  270. package/src/utils/errorUtils.ts +216 -0
  271. package/src/utils/index.ts +21 -0
  272. package/src/utils/languageUtils.ts +174 -0
  273. package/src/utils/loggerUtils.ts +153 -0
  274. package/src/utils/platform.ts +117 -0
  275. package/src/utils/requestUtils.ts +237 -0
  276. package/src/utils/sessionUtils.ts +206 -0
  277. package/src/utils/validationUtils.ts +174 -0
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.OxyServicesLanguageMixin = OxyServicesLanguageMixin;
37
+ /**
38
+ * Language Methods Mixin
39
+ */
40
+ const languageUtils_1 = require("../utils/languageUtils");
41
+ function OxyServicesLanguageMixin(Base) {
42
+ return class extends Base {
43
+ constructor(...args) {
44
+ super(...args);
45
+ }
46
+ /**
47
+ * Get appropriate storage for the platform (similar to DeviceManager)
48
+ */
49
+ async getStorage() {
50
+ const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
51
+ if (isReactNative) {
52
+ try {
53
+ const asyncStorageModule = await Promise.resolve().then(() => __importStar(require('@react-native-async-storage/async-storage')));
54
+ const storage = asyncStorageModule.default;
55
+ return {
56
+ getItem: storage.getItem.bind(storage),
57
+ setItem: storage.setItem.bind(storage),
58
+ removeItem: storage.removeItem.bind(storage),
59
+ };
60
+ }
61
+ catch (error) {
62
+ console.error('AsyncStorage not available in React Native:', error);
63
+ throw new Error('AsyncStorage is required in React Native environment');
64
+ }
65
+ }
66
+ else {
67
+ // Use localStorage for web
68
+ return {
69
+ getItem: async (key) => {
70
+ if (typeof window !== 'undefined' && window.localStorage) {
71
+ return localStorage.getItem(key);
72
+ }
73
+ return null;
74
+ },
75
+ setItem: async (key, value) => {
76
+ if (typeof window !== 'undefined' && window.localStorage) {
77
+ localStorage.setItem(key, value);
78
+ }
79
+ },
80
+ removeItem: async (key) => {
81
+ if (typeof window !== 'undefined' && window.localStorage) {
82
+ localStorage.removeItem(key);
83
+ }
84
+ }
85
+ };
86
+ }
87
+ }
88
+ /**
89
+ * Get the current language from storage or user profile
90
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
91
+ * @returns The current language code (e.g., 'en-US') or null if not set
92
+ */
93
+ async getCurrentLanguage(storageKeyPrefix = 'oxy_session') {
94
+ try {
95
+ // First try to get from user profile if authenticated
96
+ try {
97
+ const user = await this.getCurrentUser();
98
+ const userLanguage = user?.language;
99
+ if (userLanguage) {
100
+ return (0, languageUtils_1.normalizeLanguageCode)(userLanguage) || userLanguage;
101
+ }
102
+ }
103
+ catch (e) {
104
+ // User not authenticated or error, continue to storage
105
+ }
106
+ // Fall back to storage
107
+ const storage = await this.getStorage();
108
+ const storageKey = `${storageKeyPrefix}_language`;
109
+ const storedLanguage = await storage.getItem(storageKey);
110
+ if (storedLanguage) {
111
+ return (0, languageUtils_1.normalizeLanguageCode)(storedLanguage) || storedLanguage;
112
+ }
113
+ return null;
114
+ }
115
+ catch (error) {
116
+ if (__DEV__) {
117
+ console.warn('Failed to get current language:', error);
118
+ }
119
+ return null;
120
+ }
121
+ }
122
+ /**
123
+ * Get the current language with metadata (name, nativeName, etc.)
124
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
125
+ * @returns Language metadata object or null if not set
126
+ */
127
+ async getCurrentLanguageMetadata(storageKeyPrefix = 'oxy_session') {
128
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
129
+ return (0, languageUtils_1.getLanguageMetadata)(languageCode);
130
+ }
131
+ /**
132
+ * Get the current language name (e.g., 'English')
133
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
134
+ * @returns Language name or null if not set
135
+ */
136
+ async getCurrentLanguageName(storageKeyPrefix = 'oxy_session') {
137
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
138
+ if (!languageCode)
139
+ return null;
140
+ return (0, languageUtils_1.getLanguageName)(languageCode);
141
+ }
142
+ /**
143
+ * Get the current native language name (e.g., 'Español')
144
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
145
+ * @returns Native language name or null if not set
146
+ */
147
+ async getCurrentNativeLanguageName(storageKeyPrefix = 'oxy_session') {
148
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
149
+ if (!languageCode)
150
+ return null;
151
+ return (0, languageUtils_1.getNativeLanguageName)(languageCode);
152
+ }
153
+ };
154
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OxyServicesLocationMixin = OxyServicesLocationMixin;
4
+ function OxyServicesLocationMixin(Base) {
5
+ return class extends Base {
6
+ constructor(...args) {
7
+ super(...args);
8
+ }
9
+ /**
10
+ * Update user location
11
+ * @param latitude - Latitude coordinate
12
+ * @param longitude - Longitude coordinate
13
+ * @returns Location update result
14
+ */
15
+ async updateLocation(latitude, longitude) {
16
+ try {
17
+ return await this.makeRequest('POST', '/api/location', {
18
+ latitude,
19
+ longitude
20
+ }, { cache: false });
21
+ }
22
+ catch (error) {
23
+ throw this.handleError(error);
24
+ }
25
+ }
26
+ /**
27
+ * Get nearby users
28
+ * @param radius - Optional search radius in meters
29
+ * @returns Array of nearby users
30
+ */
31
+ async getNearbyUsers(radius) {
32
+ try {
33
+ const params = radius ? { radius } : undefined;
34
+ return await this.makeRequest('GET', '/api/location/nearby', params, {
35
+ cache: false, // Don't cache location data - always get fresh data
36
+ });
37
+ }
38
+ catch (error) {
39
+ throw this.handleError(error);
40
+ }
41
+ }
42
+ };
43
+ }
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OxyServicesPaymentMixin = OxyServicesPaymentMixin;
4
+ const mixinHelpers_1 = require("./mixinHelpers");
5
+ function OxyServicesPaymentMixin(Base) {
6
+ return class extends Base {
7
+ constructor(...args) {
8
+ super(...args);
9
+ }
10
+ /**
11
+ * Create a payment
12
+ * @param data - Payment data
13
+ * @returns Created payment object
14
+ */
15
+ async createPayment(data) {
16
+ try {
17
+ return await this.makeRequest('POST', '/api/payments', data, { cache: false });
18
+ }
19
+ catch (error) {
20
+ throw this.handleError(error);
21
+ }
22
+ }
23
+ /**
24
+ * Get payment by ID
25
+ * @param paymentId - The payment ID
26
+ * @returns Payment object
27
+ */
28
+ async getPayment(paymentId) {
29
+ try {
30
+ return await this.makeRequest('GET', `/api/payments/${paymentId}`, undefined, {
31
+ cache: true,
32
+ cacheTTL: mixinHelpers_1.CACHE_TIMES.LONG,
33
+ });
34
+ }
35
+ catch (error) {
36
+ throw this.handleError(error);
37
+ }
38
+ }
39
+ /**
40
+ * Get user payments
41
+ * @returns Array of user payments
42
+ */
43
+ async getUserPayments() {
44
+ try {
45
+ return await this.makeRequest('GET', '/api/payments/user', undefined, {
46
+ cache: false, // Don't cache user payments - always get fresh data
47
+ });
48
+ }
49
+ catch (error) {
50
+ throw this.handleError(error);
51
+ }
52
+ }
53
+ /**
54
+ * Get user subscription
55
+ * @param userId - The user ID
56
+ * @returns Subscription object
57
+ */
58
+ async getSubscription(userId) {
59
+ try {
60
+ return await this.makeRequest('GET', `/api/subscription/${userId}`, undefined, {
61
+ cache: true,
62
+ cacheTTL: mixinHelpers_1.CACHE_TIMES.MEDIUM,
63
+ });
64
+ }
65
+ catch (error) {
66
+ throw this.handleError(error);
67
+ }
68
+ }
69
+ /**
70
+ * Get current user's subscription
71
+ * @returns Subscription object
72
+ */
73
+ async getCurrentUserSubscription() {
74
+ try {
75
+ const userId = this.getCurrentUserId();
76
+ if (!userId) {
77
+ throw new Error('User not authenticated');
78
+ }
79
+ return await this.getSubscription(userId);
80
+ }
81
+ catch (error) {
82
+ throw this.handleError(error);
83
+ }
84
+ }
85
+ /**
86
+ * Get user wallet
87
+ * @param userId - The user ID
88
+ * @returns Wallet object with balance
89
+ */
90
+ async getWallet(userId) {
91
+ try {
92
+ return await this.makeRequest('GET', `/api/wallet/${userId}`, undefined, {
93
+ cache: true,
94
+ cacheTTL: mixinHelpers_1.CACHE_TIMES.SHORT, // Cache wallet for short time as balance changes frequently
95
+ });
96
+ }
97
+ catch (error) {
98
+ throw this.handleError(error);
99
+ }
100
+ }
101
+ /**
102
+ * Get current user's wallet
103
+ * @returns Wallet object with balance
104
+ */
105
+ async getCurrentUserWallet() {
106
+ try {
107
+ const userId = this.getCurrentUserId();
108
+ if (!userId) {
109
+ throw new Error('User not authenticated');
110
+ }
111
+ return await this.getWallet(userId);
112
+ }
113
+ catch (error) {
114
+ throw this.handleError(error);
115
+ }
116
+ }
117
+ /**
118
+ * Get wallet transaction history
119
+ * @param userId - The user ID
120
+ * @param options - Pagination options
121
+ * @returns Transaction history
122
+ */
123
+ async getWalletTransactions(userId, options) {
124
+ try {
125
+ const params = new URLSearchParams();
126
+ if (options?.limit)
127
+ params.append('limit', options.limit.toString());
128
+ if (options?.offset)
129
+ params.append('offset', options.offset.toString());
130
+ const queryString = params.toString();
131
+ const url = `/api/wallet/transactions/${userId}${queryString ? `?${queryString}` : ''}`;
132
+ return await this.makeRequest('GET', url, undefined, {
133
+ cache: false, // Don't cache transactions - always get fresh data
134
+ });
135
+ }
136
+ catch (error) {
137
+ throw this.handleError(error);
138
+ }
139
+ }
140
+ /**
141
+ * Get current user's wallet transaction history
142
+ * @param options - Pagination options
143
+ * @returns Transaction history
144
+ */
145
+ async getCurrentUserWalletTransactions(options) {
146
+ try {
147
+ const userId = this.getCurrentUserId();
148
+ if (!userId) {
149
+ throw new Error('User not authenticated');
150
+ }
151
+ return await this.getWalletTransactions(userId, options);
152
+ }
153
+ catch (error) {
154
+ throw this.handleError(error);
155
+ }
156
+ }
157
+ };
158
+ }