@oxyhq/services 5.13.15 → 5.13.17

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 (138) hide show
  1. package/README.md +10 -0
  2. package/lib/commonjs/core/OxyServices.base.js +271 -0
  3. package/lib/commonjs/core/OxyServices.base.js.map +1 -0
  4. package/lib/commonjs/core/OxyServices.errors.js +26 -0
  5. package/lib/commonjs/core/OxyServices.errors.js.map +1 -0
  6. package/lib/commonjs/core/OxyServices.js +58 -2168
  7. package/lib/commonjs/core/OxyServices.js.map +1 -1
  8. package/lib/commonjs/core/mixins/OxyServices.analytics.js +60 -0
  9. package/lib/commonjs/core/mixins/OxyServices.analytics.js.map +1 -0
  10. package/lib/commonjs/core/mixins/OxyServices.assets.js +424 -0
  11. package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -0
  12. package/lib/commonjs/core/mixins/OxyServices.auth.js +303 -0
  13. package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -0
  14. package/lib/commonjs/core/mixins/OxyServices.developer.js +115 -0
  15. package/lib/commonjs/core/mixins/OxyServices.developer.js.map +1 -0
  16. package/lib/commonjs/core/mixins/OxyServices.devices.js +119 -0
  17. package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -0
  18. package/lib/commonjs/core/mixins/OxyServices.karma.js +117 -0
  19. package/lib/commonjs/core/mixins/OxyServices.karma.js.map +1 -0
  20. package/lib/commonjs/core/mixins/OxyServices.language.js +124 -0
  21. package/lib/commonjs/core/mixins/OxyServices.language.js.map +1 -0
  22. package/lib/commonjs/core/mixins/OxyServices.location.js +55 -0
  23. package/lib/commonjs/core/mixins/OxyServices.location.js.map +1 -0
  24. package/lib/commonjs/core/mixins/OxyServices.payment.js +66 -0
  25. package/lib/commonjs/core/mixins/OxyServices.payment.js.map +1 -0
  26. package/lib/commonjs/core/mixins/OxyServices.privacy.js +174 -0
  27. package/lib/commonjs/core/mixins/OxyServices.privacy.js.map +1 -0
  28. package/lib/commonjs/core/mixins/OxyServices.totp.js +53 -0
  29. package/lib/commonjs/core/mixins/OxyServices.totp.js.map +1 -0
  30. package/lib/commonjs/core/mixins/OxyServices.user.js +388 -0
  31. package/lib/commonjs/core/mixins/OxyServices.user.js.map +1 -0
  32. package/lib/commonjs/core/mixins/OxyServices.utility.js +161 -0
  33. package/lib/commonjs/core/mixins/OxyServices.utility.js.map +1 -0
  34. package/lib/commonjs/core/mixins/index.js +39 -0
  35. package/lib/commonjs/core/mixins/index.js.map +1 -0
  36. package/lib/commonjs/core/mixins/mixinHelpers.js +62 -0
  37. package/lib/commonjs/core/mixins/mixinHelpers.js.map +1 -0
  38. package/lib/commonjs/ui/context/OxyContext.js +27 -2
  39. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  40. package/lib/module/core/OxyServices.base.js +265 -0
  41. package/lib/module/core/OxyServices.base.js.map +1 -0
  42. package/lib/module/core/OxyServices.errors.js +20 -0
  43. package/lib/module/core/OxyServices.errors.js.map +1 -0
  44. package/lib/module/core/OxyServices.js +43 -2164
  45. package/lib/module/core/OxyServices.js.map +1 -1
  46. package/lib/module/core/mixins/OxyServices.analytics.js +56 -0
  47. package/lib/module/core/mixins/OxyServices.analytics.js.map +1 -0
  48. package/lib/module/core/mixins/OxyServices.assets.js +420 -0
  49. package/lib/module/core/mixins/OxyServices.assets.js.map +1 -0
  50. package/lib/module/core/mixins/OxyServices.auth.js +299 -0
  51. package/lib/module/core/mixins/OxyServices.auth.js.map +1 -0
  52. package/lib/module/core/mixins/OxyServices.developer.js +111 -0
  53. package/lib/module/core/mixins/OxyServices.developer.js.map +1 -0
  54. package/lib/module/core/mixins/OxyServices.devices.js +115 -0
  55. package/lib/module/core/mixins/OxyServices.devices.js.map +1 -0
  56. package/lib/module/core/mixins/OxyServices.karma.js +113 -0
  57. package/lib/module/core/mixins/OxyServices.karma.js.map +1 -0
  58. package/lib/module/core/mixins/OxyServices.language.js +120 -0
  59. package/lib/module/core/mixins/OxyServices.language.js.map +1 -0
  60. package/lib/module/core/mixins/OxyServices.location.js +51 -0
  61. package/lib/module/core/mixins/OxyServices.location.js.map +1 -0
  62. package/lib/module/core/mixins/OxyServices.payment.js +62 -0
  63. package/lib/module/core/mixins/OxyServices.payment.js.map +1 -0
  64. package/lib/module/core/mixins/OxyServices.privacy.js +170 -0
  65. package/lib/module/core/mixins/OxyServices.privacy.js.map +1 -0
  66. package/lib/module/core/mixins/OxyServices.totp.js +49 -0
  67. package/lib/module/core/mixins/OxyServices.totp.js.map +1 -0
  68. package/lib/module/core/mixins/OxyServices.user.js +384 -0
  69. package/lib/module/core/mixins/OxyServices.user.js.map +1 -0
  70. package/lib/module/core/mixins/OxyServices.utility.js +156 -0
  71. package/lib/module/core/mixins/OxyServices.utility.js.map +1 -0
  72. package/lib/module/core/mixins/index.js +36 -0
  73. package/lib/module/core/mixins/index.js.map +1 -0
  74. package/lib/module/core/mixins/mixinHelpers.js +56 -0
  75. package/lib/module/core/mixins/mixinHelpers.js.map +1 -0
  76. package/lib/module/ui/context/OxyContext.js +27 -2
  77. package/lib/module/ui/context/OxyContext.js.map +1 -1
  78. package/lib/typescript/core/OxyServices.base.d.ts +123 -0
  79. package/lib/typescript/core/OxyServices.base.d.ts.map +1 -0
  80. package/lib/typescript/core/OxyServices.d.ts +970 -746
  81. package/lib/typescript/core/OxyServices.d.ts.map +1 -1
  82. package/lib/typescript/core/OxyServices.errors.d.ts +12 -0
  83. package/lib/typescript/core/OxyServices.errors.d.ts.map +1 -0
  84. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts +70 -0
  85. package/lib/typescript/core/mixins/OxyServices.analytics.d.ts.map +1 -0
  86. package/lib/typescript/core/mixins/OxyServices.assets.d.ts +166 -0
  87. package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -0
  88. package/lib/typescript/core/mixins/OxyServices.auth.d.ts +168 -0
  89. package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -0
  90. package/lib/typescript/core/mixins/OxyServices.developer.d.ts +103 -0
  91. package/lib/typescript/core/mixins/OxyServices.developer.d.ts.map +1 -0
  92. package/lib/typescript/core/mixins/OxyServices.devices.d.ts +93 -0
  93. package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -0
  94. package/lib/typescript/core/mixins/OxyServices.karma.d.ts +89 -0
  95. package/lib/typescript/core/mixins/OxyServices.karma.d.ts.map +1 -0
  96. package/lib/typescript/core/mixins/OxyServices.language.d.ts +85 -0
  97. package/lib/typescript/core/mixins/OxyServices.language.d.ts.map +1 -0
  98. package/lib/typescript/core/mixins/OxyServices.location.d.ts +68 -0
  99. package/lib/typescript/core/mixins/OxyServices.location.d.ts.map +1 -0
  100. package/lib/typescript/core/mixins/OxyServices.payment.d.ts +74 -0
  101. package/lib/typescript/core/mixins/OxyServices.payment.d.ts.map +1 -0
  102. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts +126 -0
  103. package/lib/typescript/core/mixins/OxyServices.privacy.d.ts.map +1 -0
  104. package/lib/typescript/core/mixins/OxyServices.totp.d.ts +69 -0
  105. package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +1 -0
  106. package/lib/typescript/core/mixins/OxyServices.user.d.ts +189 -0
  107. package/lib/typescript/core/mixins/OxyServices.user.d.ts.map +1 -0
  108. package/lib/typescript/core/mixins/OxyServices.utility.d.ts +97 -0
  109. package/lib/typescript/core/mixins/OxyServices.utility.d.ts.map +1 -0
  110. package/lib/typescript/core/mixins/index.d.ts +899 -0
  111. package/lib/typescript/core/mixins/index.d.ts.map +1 -0
  112. package/lib/typescript/core/mixins/mixinHelpers.d.ts +32 -0
  113. package/lib/typescript/core/mixins/mixinHelpers.d.ts.map +1 -0
  114. package/lib/typescript/models/interfaces.d.ts +10 -0
  115. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  116. package/lib/typescript/ui/context/OxyContext.d.ts +2 -0
  117. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  118. package/package.json +1 -1
  119. package/src/core/OxyServices.base.ts +311 -0
  120. package/src/core/OxyServices.errors.ts +26 -0
  121. package/src/core/OxyServices.ts +43 -2199
  122. package/src/core/mixins/OxyServices.analytics.ts +53 -0
  123. package/src/core/mixins/OxyServices.assets.ts +410 -0
  124. package/src/core/mixins/OxyServices.auth.ts +275 -0
  125. package/src/core/mixins/OxyServices.developer.ts +114 -0
  126. package/src/core/mixins/OxyServices.devices.ts +103 -0
  127. package/src/core/mixins/OxyServices.karma.ts +111 -0
  128. package/src/core/mixins/OxyServices.language.ts +127 -0
  129. package/src/core/mixins/OxyServices.location.ts +46 -0
  130. package/src/core/mixins/OxyServices.payment.ts +59 -0
  131. package/src/core/mixins/OxyServices.privacy.ts +182 -0
  132. package/src/core/mixins/OxyServices.totp.ts +36 -0
  133. package/src/core/mixins/OxyServices.user.ts +384 -0
  134. package/src/core/mixins/OxyServices.utility.ts +187 -0
  135. package/src/core/mixins/index.ts +58 -0
  136. package/src/core/mixins/mixinHelpers.ts +69 -0
  137. package/src/models/interfaces.ts +12 -0
  138. package/src/ui/context/OxyContext.tsx +36 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Language Methods Mixin
5
+ */
6
+ import { normalizeLanguageCode, getLanguageMetadata, getLanguageName, getNativeLanguageName } from '../../utils/languageUtils';
7
+ export function OxyServicesLanguageMixin(Base) {
8
+ return class extends Base {
9
+ constructor(...args) {
10
+ super(...args);
11
+ }
12
+ /**
13
+ * Get appropriate storage for the platform (similar to DeviceManager)
14
+ */
15
+ async getStorage() {
16
+ const isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
17
+ if (isReactNative) {
18
+ try {
19
+ const asyncStorageModule = await import('@react-native-async-storage/async-storage');
20
+ const storage = asyncStorageModule.default;
21
+ return {
22
+ getItem: storage.getItem.bind(storage),
23
+ setItem: storage.setItem.bind(storage),
24
+ removeItem: storage.removeItem.bind(storage)
25
+ };
26
+ } catch (error) {
27
+ console.error('AsyncStorage not available in React Native:', error);
28
+ throw new Error('AsyncStorage is required in React Native environment');
29
+ }
30
+ } else {
31
+ // Use localStorage for web
32
+ return {
33
+ getItem: async key => {
34
+ if (typeof window !== 'undefined' && window.localStorage) {
35
+ return localStorage.getItem(key);
36
+ }
37
+ return null;
38
+ },
39
+ setItem: async (key, value) => {
40
+ if (typeof window !== 'undefined' && window.localStorage) {
41
+ localStorage.setItem(key, value);
42
+ }
43
+ },
44
+ removeItem: async key => {
45
+ if (typeof window !== 'undefined' && window.localStorage) {
46
+ localStorage.removeItem(key);
47
+ }
48
+ }
49
+ };
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Get the current language from storage or user profile
55
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
56
+ * @returns The current language code (e.g., 'en-US') or null if not set
57
+ */
58
+ async getCurrentLanguage(storageKeyPrefix = 'oxy_session') {
59
+ try {
60
+ // First try to get from user profile if authenticated
61
+ try {
62
+ const user = await this.getCurrentUser();
63
+ const userLanguage = user?.language;
64
+ if (userLanguage) {
65
+ return normalizeLanguageCode(userLanguage) || userLanguage;
66
+ }
67
+ } catch (e) {
68
+ // User not authenticated or error, continue to storage
69
+ }
70
+
71
+ // Fall back to storage
72
+ const storage = await this.getStorage();
73
+ const storageKey = `${storageKeyPrefix}_language`;
74
+ const storedLanguage = await storage.getItem(storageKey);
75
+ if (storedLanguage) {
76
+ return normalizeLanguageCode(storedLanguage) || storedLanguage;
77
+ }
78
+ return null;
79
+ } catch (error) {
80
+ if (__DEV__) {
81
+ console.warn('Failed to get current language:', error);
82
+ }
83
+ return null;
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Get the current language with metadata (name, nativeName, etc.)
89
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
90
+ * @returns Language metadata object or null if not set
91
+ */
92
+ async getCurrentLanguageMetadata(storageKeyPrefix = 'oxy_session') {
93
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
94
+ return getLanguageMetadata(languageCode);
95
+ }
96
+
97
+ /**
98
+ * Get the current language name (e.g., 'English')
99
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
100
+ * @returns Language name or null if not set
101
+ */
102
+ async getCurrentLanguageName(storageKeyPrefix = 'oxy_session') {
103
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
104
+ if (!languageCode) return null;
105
+ return getLanguageName(languageCode);
106
+ }
107
+
108
+ /**
109
+ * Get the current native language name (e.g., 'Español')
110
+ * @param storageKeyPrefix - Optional prefix for storage key (default: 'oxy_session')
111
+ * @returns Native language name or null if not set
112
+ */
113
+ async getCurrentNativeLanguageName(storageKeyPrefix = 'oxy_session') {
114
+ const languageCode = await this.getCurrentLanguage(storageKeyPrefix);
115
+ if (!languageCode) return null;
116
+ return getNativeLanguageName(languageCode);
117
+ }
118
+ };
119
+ }
120
+ //# sourceMappingURL=OxyServices.language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeLanguageCode","getLanguageMetadata","getLanguageName","getNativeLanguageName","OxyServicesLanguageMixin","Base","constructor","args","getStorage","isReactNative","navigator","product","asyncStorageModule","storage","default","getItem","bind","setItem","removeItem","error","console","Error","key","window","localStorage","value","getCurrentLanguage","storageKeyPrefix","user","getCurrentUser","userLanguage","language","e","storageKey","storedLanguage","__DEV__","warn","getCurrentLanguageMetadata","languageCode","getCurrentLanguageName","getCurrentNativeLanguageName"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.language.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Location Methods Mixin
5
+ */
6
+
7
+ export function OxyServicesLocationMixin(Base) {
8
+ return class extends Base {
9
+ constructor(...args) {
10
+ super(...args);
11
+ }
12
+
13
+ /**
14
+ * Update user location
15
+ * @param latitude - Latitude coordinate
16
+ * @param longitude - Longitude coordinate
17
+ * @returns Location update result
18
+ */
19
+ async updateLocation(latitude, longitude) {
20
+ try {
21
+ return await this.makeRequest('POST', '/api/location', {
22
+ latitude,
23
+ longitude
24
+ }, {
25
+ cache: false
26
+ });
27
+ } catch (error) {
28
+ throw this.handleError(error);
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Get nearby users
34
+ * @param radius - Optional search radius in meters
35
+ * @returns Array of nearby users
36
+ */
37
+ async getNearbyUsers(radius) {
38
+ try {
39
+ const params = radius ? {
40
+ radius
41
+ } : undefined;
42
+ return await this.makeRequest('GET', '/api/location/nearby', params, {
43
+ cache: false // Don't cache location data - always get fresh data
44
+ });
45
+ } catch (error) {
46
+ throw this.handleError(error);
47
+ }
48
+ }
49
+ };
50
+ }
51
+ //# sourceMappingURL=OxyServices.location.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyServicesLocationMixin","Base","constructor","args","updateLocation","latitude","longitude","makeRequest","cache","error","handleError","getNearbyUsers","radius","params","undefined"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.location.ts"],"mappings":";;AAAA;AACA;AACA;;AAGA,OAAO,SAASA,wBAAwBA,CAAmCC,IAAO,EAAE;EAClF,OAAO,cAAcA,IAAI,CAAC;IACxBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;MAC1B,KAAK,CAAC,GAAIA,IAAc,CAAC;IAC3B;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACI,MAAMC,cAAcA,CAACC,QAAgB,EAAEC,SAAiB,EAAgB;MACtE,IAAI;QACF,OAAO,MAAM,IAAI,CAACC,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE;UACrDF,QAAQ;UACRC;QACF,CAAC,EAAE;UAAEE,KAAK,EAAE;QAAM,CAAC,CAAC;MACtB,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;;IAEA;AACJ;AACA;AACA;AACA;IACI,MAAME,cAAcA,CAACC,MAAe,EAAkB;MACpD,IAAI;QACF,MAAMC,MAAW,GAAGD,MAAM,GAAG;UAAEA;QAAO,CAAC,GAAGE,SAAS;QACnD,OAAO,MAAM,IAAI,CAACP,WAAW,CAAC,KAAK,EAAE,sBAAsB,EAAEM,MAAM,EAAE;UACnEL,KAAK,EAAE,KAAK,CAAE;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Payment Methods Mixin
5
+ *
6
+ * Provides methods for payment processing and management
7
+ */
8
+
9
+ import { CACHE_TIMES } from './mixinHelpers';
10
+ export function OxyServicesPaymentMixin(Base) {
11
+ return class extends Base {
12
+ constructor(...args) {
13
+ super(...args);
14
+ }
15
+
16
+ /**
17
+ * Create a payment
18
+ * @param data - Payment data
19
+ * @returns Created payment object
20
+ */
21
+ async createPayment(data) {
22
+ try {
23
+ return await this.makeRequest('POST', '/api/payments', data, {
24
+ cache: false
25
+ });
26
+ } catch (error) {
27
+ throw this.handleError(error);
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Get payment by ID
33
+ * @param paymentId - The payment ID
34
+ * @returns Payment object
35
+ */
36
+ async getPayment(paymentId) {
37
+ try {
38
+ return await this.makeRequest('GET', `/api/payments/${paymentId}`, undefined, {
39
+ cache: true,
40
+ cacheTTL: CACHE_TIMES.LONG
41
+ });
42
+ } catch (error) {
43
+ throw this.handleError(error);
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Get user payments
49
+ * @returns Array of user payments
50
+ */
51
+ async getUserPayments() {
52
+ try {
53
+ return await this.makeRequest('GET', '/api/payments/user', undefined, {
54
+ cache: false // Don't cache user payments - always get fresh data
55
+ });
56
+ } catch (error) {
57
+ throw this.handleError(error);
58
+ }
59
+ }
60
+ };
61
+ }
62
+ //# sourceMappingURL=OxyServices.payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CACHE_TIMES","OxyServicesPaymentMixin","Base","constructor","args","createPayment","data","makeRequest","cache","error","handleError","getPayment","paymentId","undefined","cacheTTL","LONG","getUserPayments"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.payment.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,QAAQ,gBAAgB;AAE5C,OAAO,SAASC,uBAAuBA,CAAmCC,IAAO,EAAE;EACjF,OAAO,cAAcA,IAAI,CAAC;IACxBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;MAC1B,KAAK,CAAC,GAAIA,IAAc,CAAC;IAC3B;;IAEA;AACJ;AACA;AACA;AACA;IACI,MAAMC,aAAaA,CAACC,IAAS,EAAgB;MAC3C,IAAI;QACF,OAAO,MAAM,IAAI,CAACC,WAAW,CAAC,MAAM,EAAE,eAAe,EAAED,IAAI,EAAE;UAAEE,KAAK,EAAE;QAAM,CAAC,CAAC;MAChF,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;;IAEA;AACJ;AACA;AACA;AACA;IACI,MAAME,UAAUA,CAACC,SAAiB,EAAgB;MAChD,IAAI;QACF,OAAO,MAAM,IAAI,CAACL,WAAW,CAAC,KAAK,EAAE,iBAAiBK,SAAS,EAAE,EAAEC,SAAS,EAAE;UAC5EL,KAAK,EAAE,IAAI;UACXM,QAAQ,EAAEd,WAAW,CAACe;QACxB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAON,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;;IAEA;AACJ;AACA;AACA;IACI,MAAMO,eAAeA,CAAA,EAAmB;MACtC,IAAI;QACF,OAAO,MAAM,IAAI,CAACT,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAEM,SAAS,EAAE;UACpEL,KAAK,EAAE,KAAK,CAAE;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Privacy Methods Mixin (Blocked & Restricted Users)
5
+ */
6
+
7
+ export function OxyServicesPrivacyMixin(Base) {
8
+ return class extends Base {
9
+ constructor(...args) {
10
+ super(...args);
11
+ }
12
+ /**
13
+ * Extract user ID from blocked/restricted user object
14
+ */
15
+ extractUserId(userIdField) {
16
+ return typeof userIdField === 'string' ? userIdField : userIdField._id;
17
+ }
18
+
19
+ /**
20
+ * Check if a user is in a list (blocked or restricted)
21
+ */
22
+ async isUserInList(userId, getUserList, getIdField) {
23
+ try {
24
+ if (!userId) {
25
+ return false;
26
+ }
27
+ const users = await getUserList();
28
+ return users.some(item => {
29
+ const itemId = this.extractUserId(getIdField(item));
30
+ return itemId === userId;
31
+ });
32
+ } catch (error) {
33
+ // If there's an error, assume not in list to avoid breaking functionality
34
+ if (__DEV__) {
35
+ console.warn('Error checking user list:', error);
36
+ }
37
+ return false;
38
+ }
39
+ }
40
+
41
+ // ============================================================================
42
+ // BLOCKED USERS METHODS
43
+ // ============================================================================
44
+
45
+ /**
46
+ * Get list of blocked users
47
+ * @returns Array of blocked users
48
+ */
49
+ async getBlockedUsers() {
50
+ try {
51
+ return await this.makeRequest('GET', '/api/privacy/blocked', undefined, {
52
+ cache: true,
53
+ cacheTTL: 1 * 60 * 1000 // 1 minute cache
54
+ });
55
+ } catch (error) {
56
+ throw this.handleError(error);
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Block a user
62
+ * @param userId - The user ID to block
63
+ * @returns Success message
64
+ */
65
+ async blockUser(userId) {
66
+ try {
67
+ if (!userId) {
68
+ throw new Error('User ID is required');
69
+ }
70
+ return await this.makeRequest('POST', `/api/privacy/blocked/${userId}`, undefined, {
71
+ cache: false
72
+ });
73
+ } catch (error) {
74
+ throw this.handleError(error);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Unblock a user
80
+ * @param userId - The user ID to unblock
81
+ * @returns Success message
82
+ */
83
+ async unblockUser(userId) {
84
+ try {
85
+ if (!userId) {
86
+ throw new Error('User ID is required');
87
+ }
88
+ return await this.makeRequest('DELETE', `/api/privacy/blocked/${userId}`, undefined, {
89
+ cache: false
90
+ });
91
+ } catch (error) {
92
+ throw this.handleError(error);
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Check if a user is blocked
98
+ * @param userId - The user ID to check
99
+ * @returns True if the user is blocked, false otherwise
100
+ */
101
+ async isUserBlocked(userId) {
102
+ return this.isUserInList(userId, () => this.getBlockedUsers(), block => block.blockedId);
103
+ }
104
+
105
+ // ============================================================================
106
+ // RESTRICTED USERS METHODS
107
+ // ============================================================================
108
+
109
+ /**
110
+ * Get list of restricted users
111
+ * @returns Array of restricted users
112
+ */
113
+ async getRestrictedUsers() {
114
+ try {
115
+ return await this.makeRequest('GET', '/api/privacy/restricted', undefined, {
116
+ cache: true,
117
+ cacheTTL: 1 * 60 * 1000 // 1 minute cache
118
+ });
119
+ } catch (error) {
120
+ throw this.handleError(error);
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Restrict a user (limit their interactions without fully blocking)
126
+ * @param userId - The user ID to restrict
127
+ * @returns Success message
128
+ */
129
+ async restrictUser(userId) {
130
+ try {
131
+ if (!userId) {
132
+ throw new Error('User ID is required');
133
+ }
134
+ return await this.makeRequest('POST', `/api/privacy/restricted/${userId}`, undefined, {
135
+ cache: false
136
+ });
137
+ } catch (error) {
138
+ throw this.handleError(error);
139
+ }
140
+ }
141
+
142
+ /**
143
+ * Unrestrict a user
144
+ * @param userId - The user ID to unrestrict
145
+ * @returns Success message
146
+ */
147
+ async unrestrictUser(userId) {
148
+ try {
149
+ if (!userId) {
150
+ throw new Error('User ID is required');
151
+ }
152
+ return await this.makeRequest('DELETE', `/api/privacy/restricted/${userId}`, undefined, {
153
+ cache: false
154
+ });
155
+ } catch (error) {
156
+ throw this.handleError(error);
157
+ }
158
+ }
159
+
160
+ /**
161
+ * Check if a user is restricted
162
+ * @param userId - The user ID to check
163
+ * @returns True if the user is restricted, false otherwise
164
+ */
165
+ async isUserRestricted(userId) {
166
+ return this.isUserInList(userId, () => this.getRestrictedUsers(), restrict => restrict.restrictedId);
167
+ }
168
+ };
169
+ }
170
+ //# sourceMappingURL=OxyServices.privacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyServicesPrivacyMixin","Base","constructor","args","extractUserId","userIdField","_id","isUserInList","userId","getUserList","getIdField","users","some","item","itemId","error","__DEV__","console","warn","getBlockedUsers","makeRequest","undefined","cache","cacheTTL","handleError","blockUser","Error","unblockUser","isUserBlocked","block","blockedId","getRestrictedUsers","restrictUser","unrestrictUser","isUserRestricted","restrict","restrictedId"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.privacy.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * TOTP Enrollment Methods Mixin
5
+ */
6
+
7
+ export function OxyServicesTotpMixin(Base) {
8
+ return class extends Base {
9
+ constructor(...args) {
10
+ super(...args);
11
+ }
12
+ async startTotpEnrollment(sessionId) {
13
+ try {
14
+ return await this.makeRequest('POST', '/api/auth/totp/enroll/start', {
15
+ sessionId
16
+ }, {
17
+ cache: false
18
+ });
19
+ } catch (error) {
20
+ throw this.handleError(error);
21
+ }
22
+ }
23
+ async verifyTotpEnrollment(sessionId, code) {
24
+ try {
25
+ return await this.makeRequest('POST', '/api/auth/totp/enroll/verify', {
26
+ sessionId,
27
+ code
28
+ }, {
29
+ cache: false
30
+ });
31
+ } catch (error) {
32
+ throw this.handleError(error);
33
+ }
34
+ }
35
+ async disableTotp(sessionId, code) {
36
+ try {
37
+ return await this.makeRequest('POST', '/api/auth/totp/disable', {
38
+ sessionId,
39
+ code
40
+ }, {
41
+ cache: false
42
+ });
43
+ } catch (error) {
44
+ throw this.handleError(error);
45
+ }
46
+ }
47
+ };
48
+ }
49
+ //# sourceMappingURL=OxyServices.totp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OxyServicesTotpMixin","Base","constructor","args","startTotpEnrollment","sessionId","makeRequest","cache","error","handleError","verifyTotpEnrollment","code","disableTotp"],"sourceRoot":"../../../../src","sources":["core/mixins/OxyServices.totp.ts"],"mappings":";;AAAA;AACA;AACA;;AAGA,OAAO,SAASA,oBAAoBA,CAAmCC,IAAO,EAAE;EAC9E,OAAO,cAAcA,IAAI,CAAC;IACxBC,WAAWA,CAAC,GAAGC,IAAW,EAAE;MAC1B,KAAK,CAAC,GAAIA,IAAc,CAAC;IAC3B;IACA,MAAMC,mBAAmBA,CAACC,SAAiB,EAAkF;MAC3H,IAAI;QACF,OAAO,MAAM,IAAI,CAACC,WAAW,CAAC,MAAM,EAAE,6BAA6B,EAAE;UAAED;QAAU,CAAC,EAAE;UAAEE,KAAK,EAAE;QAAM,CAAC,CAAC;MACvG,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;IAEA,MAAME,oBAAoBA,CAACL,SAAiB,EAAEM,IAAY,EAA+E;MACvI,IAAI;QACF,OAAO,MAAM,IAAI,CAACL,WAAW,CAAC,MAAM,EAAE,8BAA8B,EAAE;UAAED,SAAS;UAAEM;QAAK,CAAC,EAAE;UAAEJ,KAAK,EAAE;QAAM,CAAC,CAAC;MAC9G,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;IAEA,MAAMI,WAAWA,CAACP,SAAiB,EAAEM,IAAY,EAAkC;MACjF,IAAI;QACF,OAAO,MAAM,IAAI,CAACL,WAAW,CAAC,MAAM,EAAE,wBAAwB,EAAE;UAAED,SAAS;UAAEM;QAAK,CAAC,EAAE;UAAEJ,KAAK,EAAE;QAAM,CAAC,CAAC;MACxG,CAAC,CAAC,OAAOC,KAAK,EAAE;QACd,MAAM,IAAI,CAACC,WAAW,CAACD,KAAK,CAAC;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}