@oxyhq/services 5.8.1 → 5.8.2
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/lib/commonjs/index.js +9 -27
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/node/createAuth.js +7 -585
- package/lib/commonjs/node/createAuth.js.map +1 -1
- package/lib/commonjs/node/index.js +1 -38
- package/lib/commonjs/node/index.js.map +1 -1
- package/lib/commonjs/ui/components/FollowButton.js +100 -12
- package/lib/commonjs/ui/components/FollowButton.js.map +1 -1
- package/lib/commonjs/ui/components/Header.js +40 -6
- package/lib/commonjs/ui/components/Header.js.map +1 -1
- package/lib/commonjs/ui/components/OxyProvider.js +5 -0
- package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +63 -125
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/hooks/index.js +6 -0
- package/lib/commonjs/ui/hooks/index.js.map +1 -1
- package/lib/commonjs/ui/hooks/useFollow.js +59 -2
- package/lib/commonjs/ui/hooks/useFollow.js.map +1 -1
- package/lib/commonjs/ui/navigation/OxyRouter.js +10 -0
- package/lib/commonjs/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +9 -0
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/ProfileScreen.js +214 -37
- package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/UserLinksScreen.js +90 -0
- package/lib/commonjs/ui/screens/UserLinksScreen.js.map +1 -0
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js +9 -6
- package/lib/commonjs/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js +3 -30
- package/lib/commonjs/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js +37 -46
- package/lib/commonjs/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
- package/lib/commonjs/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js +9 -12
- package/lib/commonjs/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js +9 -12
- package/lib/commonjs/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +24 -6
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/commonjs/ui/stores/followStore.js +106 -1
- package/lib/commonjs/ui/stores/followStore.js.map +1 -1
- package/lib/module/index.js +1 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/node/createAuth.js +7 -584
- package/lib/module/node/createAuth.js.map +1 -1
- package/lib/module/node/index.js +1 -7
- package/lib/module/node/index.js.map +1 -1
- package/lib/module/ui/components/FollowButton.js +101 -13
- package/lib/module/ui/components/FollowButton.js.map +1 -1
- package/lib/module/ui/components/Header.js +40 -6
- package/lib/module/ui/components/Header.js.map +1 -1
- package/lib/module/ui/components/OxyProvider.js +5 -0
- package/lib/module/ui/components/OxyProvider.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +63 -125
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/hooks/index.js +1 -1
- package/lib/module/ui/hooks/index.js.map +1 -1
- package/lib/module/ui/hooks/useFollow.js +57 -1
- package/lib/module/ui/hooks/useFollow.js.map +1 -1
- package/lib/module/ui/navigation/OxyRouter.js +10 -0
- package/lib/module/ui/navigation/OxyRouter.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +9 -0
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/ProfileScreen.js +214 -37
- package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
- package/lib/module/ui/screens/UserLinksScreen.js +85 -0
- package/lib/module/ui/screens/UserLinksScreen.js.map +1 -0
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js +9 -6
- package/lib/module/ui/screens/karma/KarmaAboutScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js +3 -30
- package/lib/module/ui/screens/karma/KarmaCenterScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js +37 -46
- package/lib/module/ui/screens/karma/KarmaFAQScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js +9 -12
- package/lib/module/ui/screens/karma/KarmaLeaderboardScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js +9 -12
- package/lib/module/ui/screens/karma/KarmaRewardsScreen.js.map +1 -1
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js +9 -12
- package/lib/module/ui/screens/karma/KarmaRulesScreen.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +24 -6
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/module/ui/stores/followStore.js +106 -1
- package/lib/module/ui/stores/followStore.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/node/createAuth.d.ts +0 -112
- package/lib/typescript/node/createAuth.d.ts.map +1 -1
- package/lib/typescript/node/index.d.ts +0 -2
- package/lib/typescript/node/index.d.ts.map +1 -1
- package/lib/typescript/ui/components/FollowButton.d.ts +1 -0
- package/lib/typescript/ui/components/FollowButton.d.ts.map +1 -1
- package/lib/typescript/ui/components/Header.d.ts +2 -0
- package/lib/typescript/ui/components/Header.d.ts.map +1 -1
- package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/index.d.ts +1 -1
- package/lib/typescript/ui/hooks/index.d.ts.map +1 -1
- package/lib/typescript/ui/hooks/useFollow.d.ts +20 -0
- package/lib/typescript/ui/hooks/useFollow.d.ts.map +1 -1
- package/lib/typescript/ui/navigation/OxyRouter.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/ProfileScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts +15 -0
- package/lib/typescript/ui/screens/UserLinksScreen.d.ts.map +1 -0
- package/lib/typescript/ui/screens/karma/KarmaAboutScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaCenterScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaFAQScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaLeaderboardScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRewardsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/karma/KarmaRulesScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +3 -1
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/lib/typescript/ui/stores/followStore.d.ts +10 -0
- package/lib/typescript/ui/stores/followStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -10
- package/src/node/createAuth.ts +7 -623
- package/src/node/index.ts +1 -19
- package/src/ui/components/FollowButton.tsx +95 -11
- package/src/ui/components/Header.tsx +45 -4
- package/src/ui/components/OxyProvider.tsx +6 -0
- package/src/ui/context/OxyContext.tsx +65 -136
- package/src/ui/hooks/index.ts +1 -1
- package/src/ui/hooks/useFollow.ts +63 -0
- package/src/ui/navigation/OxyRouter.tsx +10 -0
- package/src/ui/screens/AccountSettingsScreen.tsx +8 -0
- package/src/ui/screens/ProfileScreen.tsx +191 -28
- package/src/ui/screens/UserLinksScreen.tsx +96 -0
- package/src/ui/screens/karma/KarmaAboutScreen.tsx +9 -2
- package/src/ui/screens/karma/KarmaCenterScreen.tsx +1 -20
- package/src/ui/screens/karma/KarmaFAQScreen.tsx +40 -24
- package/src/ui/screens/karma/KarmaLeaderboardScreen.tsx +9 -3
- package/src/ui/screens/karma/KarmaRewardsScreen.tsx +9 -3
- package/src/ui/screens/karma/KarmaRulesScreen.tsx +9 -3
- package/src/ui/stores/authStore.ts +22 -7
- package/src/ui/stores/followStore.ts +102 -1
|
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useAuthStore = void 0;
|
|
7
7
|
var _zustand = require("zustand");
|
|
8
|
-
const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
8
|
+
const useAuthStore = exports.useAuthStore = (0, _zustand.create)((set, get) => ({
|
|
9
9
|
user: null,
|
|
10
10
|
isAuthenticated: false,
|
|
11
11
|
isLoading: false,
|
|
12
12
|
error: null,
|
|
13
|
+
lastUserFetch: null,
|
|
13
14
|
loginStart: () => set({
|
|
14
15
|
isLoading: true,
|
|
15
16
|
error: null
|
|
@@ -17,7 +18,8 @@ const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
|
17
18
|
loginSuccess: user => set({
|
|
18
19
|
isLoading: false,
|
|
19
20
|
isAuthenticated: true,
|
|
20
|
-
user
|
|
21
|
+
user,
|
|
22
|
+
lastUserFetch: Date.now()
|
|
21
23
|
}),
|
|
22
24
|
loginFailure: error => set({
|
|
23
25
|
isLoading: false,
|
|
@@ -25,9 +27,24 @@ const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
|
25
27
|
}),
|
|
26
28
|
logout: () => set({
|
|
27
29
|
user: null,
|
|
28
|
-
isAuthenticated: false
|
|
30
|
+
isAuthenticated: false,
|
|
31
|
+
lastUserFetch: null
|
|
29
32
|
}),
|
|
30
|
-
|
|
33
|
+
setUser: user => set({
|
|
34
|
+
user,
|
|
35
|
+
lastUserFetch: Date.now()
|
|
36
|
+
}),
|
|
37
|
+
fetchUser: async (oxyServices, forceRefresh = false) => {
|
|
38
|
+
const state = get();
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
const cacheAge = state.lastUserFetch ? now - state.lastUserFetch : Infinity;
|
|
41
|
+
const cacheValid = cacheAge < 5 * 60 * 1000; // 5 minutes cache
|
|
42
|
+
|
|
43
|
+
// Use cached data if available and not forcing refresh
|
|
44
|
+
if (!forceRefresh && state.user && cacheValid) {
|
|
45
|
+
console.log('AuthStore: Using cached user data (age:', cacheAge, 'ms)');
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
31
48
|
set({
|
|
32
49
|
isLoading: true,
|
|
33
50
|
error: null
|
|
@@ -44,7 +61,8 @@ const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
|
44
61
|
set({
|
|
45
62
|
user,
|
|
46
63
|
isLoading: false,
|
|
47
|
-
isAuthenticated: true
|
|
64
|
+
isAuthenticated: true,
|
|
65
|
+
lastUserFetch: now
|
|
48
66
|
});
|
|
49
67
|
} catch (error) {
|
|
50
68
|
console.error('AuthStore: Error fetching user:', error);
|
|
@@ -64,7 +82,7 @@ const useAuthStore = exports.useAuthStore = (0, _zustand.create)(set => ({
|
|
|
64
82
|
await oxyServices.updateProfile(updates);
|
|
65
83
|
console.log('AuthStore: Profile updated successfully');
|
|
66
84
|
// Immediately fetch the latest user data after update
|
|
67
|
-
await useAuthStore.getState().fetchUser(oxyServices);
|
|
85
|
+
await useAuthStore.getState().fetchUser(oxyServices, true); // Force refresh
|
|
68
86
|
console.log('AuthStore: User data refreshed');
|
|
69
87
|
} catch (error) {
|
|
70
88
|
console.error('AuthStore: Error updating user:', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","useAuthStore","exports","create","set","user","isAuthenticated","isLoading","error","loginStart","loginSuccess","loginFailure","logout","fetchUser","oxyServices","console","log","getCurrentUser","hasUser","userLinksMetadata","linksMetadata","userLinks","links","userWebsite","website","message","updateUser","updates","updateProfile","getState"],"sourceRoot":"../../../../src","sources":["ui/stores/authStore.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_zustand","require","useAuthStore","exports","create","set","get","user","isAuthenticated","isLoading","error","lastUserFetch","loginStart","loginSuccess","Date","now","loginFailure","logout","setUser","fetchUser","oxyServices","forceRefresh","state","cacheAge","Infinity","cacheValid","console","log","getCurrentUser","hasUser","userLinksMetadata","linksMetadata","userLinks","links","userWebsite","website","message","updateUser","updates","updateProfile","getState"],"sourceRoot":"../../../../src","sources":["ui/stores/authStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,9 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
10
10
|
loadingUsers: {},
|
|
11
11
|
fetchingUsers: {},
|
|
12
12
|
errors: {},
|
|
13
|
+
followerCounts: {},
|
|
14
|
+
followingCounts: {},
|
|
15
|
+
loadingCounts: {},
|
|
13
16
|
setFollowingStatus: (userId, isFollowing) => set(state => ({
|
|
14
17
|
followingUsers: {
|
|
15
18
|
...state.followingUsers,
|
|
@@ -30,7 +33,10 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
30
33
|
followingUsers: {},
|
|
31
34
|
loadingUsers: {},
|
|
32
35
|
fetchingUsers: {},
|
|
33
|
-
errors: {}
|
|
36
|
+
errors: {},
|
|
37
|
+
followerCounts: {},
|
|
38
|
+
followingCounts: {},
|
|
39
|
+
loadingCounts: {}
|
|
34
40
|
}),
|
|
35
41
|
fetchFollowStatus: async (userId, oxyServices) => {
|
|
36
42
|
set(state => ({
|
|
@@ -93,6 +99,8 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
93
99
|
response = await oxyServices.followUser(userId);
|
|
94
100
|
newFollowState = true;
|
|
95
101
|
}
|
|
102
|
+
|
|
103
|
+
// Update follow status
|
|
96
104
|
set(state => ({
|
|
97
105
|
followingUsers: {
|
|
98
106
|
...state.followingUsers,
|
|
@@ -107,6 +115,37 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
107
115
|
[userId]: null
|
|
108
116
|
}
|
|
109
117
|
}));
|
|
118
|
+
|
|
119
|
+
// Update counts if the response includes them
|
|
120
|
+
// The API returns counts for both users:
|
|
121
|
+
// - followers: target user's follower count (the user being followed)
|
|
122
|
+
// - following: current user's following count (the user doing the following)
|
|
123
|
+
if (response && response.counts) {
|
|
124
|
+
const {
|
|
125
|
+
counts
|
|
126
|
+
} = response;
|
|
127
|
+
|
|
128
|
+
// Get current user ID from oxyServices
|
|
129
|
+
const currentUserId = oxyServices.getCurrentUserId();
|
|
130
|
+
set(state => {
|
|
131
|
+
const updates = {};
|
|
132
|
+
|
|
133
|
+
// Update target user's follower count (the user being followed)
|
|
134
|
+
updates.followerCounts = {
|
|
135
|
+
...state.followerCounts,
|
|
136
|
+
[userId]: counts.followers
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// Update current user's following count (the user doing the following)
|
|
140
|
+
if (currentUserId) {
|
|
141
|
+
updates.followingCounts = {
|
|
142
|
+
...state.followingCounts,
|
|
143
|
+
[currentUserId]: counts.following
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return updates;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
110
149
|
} catch (error) {
|
|
111
150
|
set(state => ({
|
|
112
151
|
loadingUsers: {
|
|
@@ -119,6 +158,72 @@ const useFollowStore = exports.useFollowStore = (0, _zustand.create)((set, get)
|
|
|
119
158
|
}
|
|
120
159
|
}));
|
|
121
160
|
}
|
|
161
|
+
},
|
|
162
|
+
setFollowerCount: (userId, count) => set(state => ({
|
|
163
|
+
followerCounts: {
|
|
164
|
+
...state.followerCounts,
|
|
165
|
+
[userId]: count
|
|
166
|
+
}
|
|
167
|
+
})),
|
|
168
|
+
setFollowingCount: (userId, count) => set(state => ({
|
|
169
|
+
followingCounts: {
|
|
170
|
+
...state.followingCounts,
|
|
171
|
+
[userId]: count
|
|
172
|
+
}
|
|
173
|
+
})),
|
|
174
|
+
updateCountsFromFollowAction: (targetUserId, action, counts, currentUserId) => {
|
|
175
|
+
set(state => {
|
|
176
|
+
const updates = {};
|
|
177
|
+
|
|
178
|
+
// Update target user's follower count (the user being followed)
|
|
179
|
+
updates.followerCounts = {
|
|
180
|
+
...state.followerCounts,
|
|
181
|
+
[targetUserId]: counts.followers
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// Update current user's following count (the user doing the following)
|
|
185
|
+
if (currentUserId) {
|
|
186
|
+
updates.followingCounts = {
|
|
187
|
+
...state.followingCounts,
|
|
188
|
+
[currentUserId]: counts.following
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
return updates;
|
|
192
|
+
});
|
|
193
|
+
},
|
|
194
|
+
fetchUserCounts: async (userId, oxyServices) => {
|
|
195
|
+
set(state => ({
|
|
196
|
+
loadingCounts: {
|
|
197
|
+
...state.loadingCounts,
|
|
198
|
+
[userId]: true
|
|
199
|
+
}
|
|
200
|
+
}));
|
|
201
|
+
try {
|
|
202
|
+
const user = await oxyServices.getUserById(userId);
|
|
203
|
+
if (user && user._count) {
|
|
204
|
+
set(state => ({
|
|
205
|
+
followerCounts: {
|
|
206
|
+
...state.followerCounts,
|
|
207
|
+
[userId]: user._count.followers || 0
|
|
208
|
+
},
|
|
209
|
+
followingCounts: {
|
|
210
|
+
...state.followingCounts,
|
|
211
|
+
[userId]: user._count.following || 0
|
|
212
|
+
},
|
|
213
|
+
loadingCounts: {
|
|
214
|
+
...state.loadingCounts,
|
|
215
|
+
[userId]: false
|
|
216
|
+
}
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
} catch (error) {
|
|
220
|
+
set(state => ({
|
|
221
|
+
loadingCounts: {
|
|
222
|
+
...state.loadingCounts,
|
|
223
|
+
[userId]: false
|
|
224
|
+
}
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
122
227
|
}
|
|
123
228
|
}));
|
|
124
229
|
//# sourceMappingURL=followStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","useFollowStore","exports","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_zustand","require","useFollowStore","exports","create","set","get","followingUsers","loadingUsers","fetchingUsers","errors","followerCounts","followingCounts","loadingCounts","setFollowingStatus","userId","isFollowing","state","clearFollowError","resetFollowState","fetchFollowStatus","oxyServices","response","getFollowStatus","error","message","toggleFollowUser","isCurrentlyFollowing","newFollowState","unfollowUser","followUser","counts","currentUserId","getCurrentUserId","updates","followers","following","setFollowerCount","count","setFollowingCount","updateCountsFromFollowAction","targetUserId","action","fetchUserCounts","user","getUserById","_count"],"sourceRoot":"../../../../src","sources":["ui/stores/followStore.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -12,9 +12,6 @@
|
|
|
12
12
|
export { OxyServices } from './core';
|
|
13
13
|
export { OXY_CLOUD_URL } from './core';
|
|
14
14
|
|
|
15
|
-
// Enhanced Backend Authentication (Node.js only)
|
|
16
|
-
export { OxyAuth, AuthRequest, AuthOptions, AuthMiddlewareOptions, TokenValidationResult } from './node/createAuth';
|
|
17
|
-
|
|
18
15
|
// React context
|
|
19
16
|
export { OxyContextProvider,
|
|
20
17
|
// Backward compatibility
|
|
@@ -34,4 +31,5 @@ export { useSessionSocket } from './ui/hooks/useSessionSocket';
|
|
|
34
31
|
|
|
35
32
|
// UI components
|
|
36
33
|
export { OxySignInButton } from './ui/components/OxySignInButton';
|
|
34
|
+
export { OxyLogo, FollowButton } from './ui';
|
|
37
35
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OxyServices","OXY_CLOUD_URL","
|
|
1
|
+
{"version":3,"names":["OxyServices","OXY_CLOUD_URL","OxyContextProvider","useOxy","default","OxyProvider","DeviceManager","useAuthStore","useSessionSocket","OxySignInButton","OxyLogo","FollowButton"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,WAAW,QAAQ,QAAQ;AACpC,SAASC,aAAa,QAAQ,QAAQ;;AAEtC;AACA,SACEC,kBAAkB;AAAE;AACpBC,MAAM,QACD,yBAAyB;;AAEhC;AACA,SAASC,OAAO,IAAIC,WAAW,QAAQ,6BAA6B;;AAEpE;AACA,SAASC,aAAa,QAAQ,uBAAuB;;AAGrD;;AAwCA;AACA,SAASC,YAAY,QAAQ,uBAAuB;AACpD,SAASC,gBAAgB,QAAQ,6BAA6B;;AAE9D;AACA,SAASC,eAAe,QAAQ,iCAAiC;AACjE,SAASC,OAAO,EAAEC,YAAY,QAAQ,MAAM","ignoreList":[]}
|