@oxyhq/services 5.8.11 → 5.9.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 (59) hide show
  1. package/lib/commonjs/core/index.js +207 -283
  2. package/lib/commonjs/core/index.js.map +1 -1
  3. package/lib/commonjs/node/index.js +0 -9
  4. package/lib/commonjs/node/index.js.map +1 -1
  5. package/lib/commonjs/ui/components/OxyProvider.js +3 -9
  6. package/lib/commonjs/ui/components/OxyProvider.js.map +1 -1
  7. package/lib/commonjs/ui/screens/FeedbackScreen.js +0 -4
  8. package/lib/commonjs/ui/screens/FeedbackScreen.js.map +1 -1
  9. package/lib/commonjs/ui/screens/RecoverAccountScreen.js +0 -4
  10. package/lib/commonjs/ui/screens/RecoverAccountScreen.js.map +1 -1
  11. package/lib/commonjs/ui/screens/SignInScreen.js +16 -27
  12. package/lib/commonjs/ui/screens/SignInScreen.js.map +1 -1
  13. package/lib/commonjs/ui/screens/SignUpScreen.js +4 -18
  14. package/lib/commonjs/ui/screens/SignUpScreen.js.map +1 -1
  15. package/lib/commonjs/ui/styles/authStyles.js +1 -2
  16. package/lib/commonjs/ui/styles/authStyles.js.map +1 -1
  17. package/lib/module/core/index.js +207 -283
  18. package/lib/module/core/index.js.map +1 -1
  19. package/lib/module/node/index.js +0 -4
  20. package/lib/module/node/index.js.map +1 -1
  21. package/lib/module/ui/components/OxyProvider.js +3 -9
  22. package/lib/module/ui/components/OxyProvider.js.map +1 -1
  23. package/lib/module/ui/screens/FeedbackScreen.js +0 -4
  24. package/lib/module/ui/screens/FeedbackScreen.js.map +1 -1
  25. package/lib/module/ui/screens/RecoverAccountScreen.js +0 -4
  26. package/lib/module/ui/screens/RecoverAccountScreen.js.map +1 -1
  27. package/lib/module/ui/screens/SignInScreen.js +16 -27
  28. package/lib/module/ui/screens/SignInScreen.js.map +1 -1
  29. package/lib/module/ui/screens/SignUpScreen.js +4 -18
  30. package/lib/module/ui/screens/SignUpScreen.js.map +1 -1
  31. package/lib/module/ui/styles/authStyles.js +1 -2
  32. package/lib/module/ui/styles/authStyles.js.map +1 -1
  33. package/lib/typescript/core/index.d.ts +29 -79
  34. package/lib/typescript/core/index.d.ts.map +1 -1
  35. package/lib/typescript/node/index.d.ts +0 -2
  36. package/lib/typescript/node/index.d.ts.map +1 -1
  37. package/lib/typescript/ui/components/OxyProvider.d.ts.map +1 -1
  38. package/lib/typescript/ui/screens/FeedbackScreen.d.ts.map +1 -1
  39. package/lib/typescript/ui/screens/RecoverAccountScreen.d.ts.map +1 -1
  40. package/lib/typescript/ui/screens/SignInScreen.d.ts.map +1 -1
  41. package/lib/typescript/ui/screens/SignUpScreen.d.ts.map +1 -1
  42. package/lib/typescript/ui/styles/authStyles.d.ts +0 -1
  43. package/lib/typescript/ui/styles/authStyles.d.ts.map +1 -1
  44. package/package.json +6 -6
  45. package/src/core/index.ts +213 -254
  46. package/src/node/index.ts +0 -4
  47. package/src/ui/components/OxyProvider.tsx +3 -9
  48. package/src/ui/screens/FeedbackScreen.tsx +0 -4
  49. package/src/ui/screens/RecoverAccountScreen.tsx +0 -4
  50. package/src/ui/screens/SignInScreen.tsx +16 -20
  51. package/src/ui/screens/SignUpScreen.tsx +4 -14
  52. package/src/ui/styles/authStyles.ts +0 -1
  53. package/lib/commonjs/node/createAuth.js +0 -95
  54. package/lib/commonjs/node/createAuth.js.map +0 -1
  55. package/lib/module/node/createAuth.js +0 -90
  56. package/lib/module/node/createAuth.js.map +0 -1
  57. package/lib/typescript/node/createAuth.d.ts +0 -7
  58. package/lib/typescript/node/createAuth.d.ts.map +0 -1
  59. package/src/node/createAuth.ts +0 -116
@@ -66,13 +66,6 @@ const SignInScreen: React.FC<BaseScreenProps> = ({
66
66
  const logoAnim = useRef(new Animated.Value(0)).current;
67
67
  const progressAnim = useRef(new Animated.Value(initialStep ? 1.0 : 0.5)).current;
68
68
 
69
- // Ensure animations are properly initialized
70
- useEffect(() => {
71
- fadeAnim.setValue(1);
72
- slideAnim.setValue(0);
73
- scaleAnim.setValue(1);
74
- }, [fadeAnim, slideAnim, scaleAnim]);
75
-
76
69
  const { login, isLoading, user, isAuthenticated, sessions, oxyServices } = useOxy();
77
70
 
78
71
  const colors = useThemeColors(theme);
@@ -236,10 +229,17 @@ const SignInScreen: React.FC<BaseScreenProps> = ({
236
229
 
237
230
  // Animation functions
238
231
  const animateTransition = useCallback((nextStep: number) => {
239
- // Use a shorter fade out duration to minimize white flash
232
+ // Scale down current content
233
+ Animated.timing(scaleAnim, {
234
+ toValue: 0.95,
235
+ duration: 150,
236
+ useNativeDriver: Platform.OS !== 'web',
237
+ }).start();
238
+
239
+ // Fade out
240
240
  Animated.timing(fadeAnim, {
241
- toValue: 0.3, // Don't fade completely to 0, keep some opacity
242
- duration: 100, // Faster fade out
241
+ toValue: 0,
242
+ duration: 200,
243
243
  useNativeDriver: Platform.OS !== 'web',
244
244
  }).start(() => {
245
245
  setCurrentStep(nextStep);
@@ -248,23 +248,23 @@ const SignInScreen: React.FC<BaseScreenProps> = ({
248
248
  slideAnim.setValue(-50);
249
249
  scaleAnim.setValue(0.95);
250
250
 
251
- // Animate in new content with faster timing
251
+ // Animate in new content
252
252
  Animated.parallel([
253
253
  Animated.timing(fadeAnim, {
254
254
  toValue: 1,
255
- duration: 200, // Faster fade in
255
+ duration: 300,
256
256
  useNativeDriver: Platform.OS !== 'web',
257
257
  }),
258
258
  Animated.spring(slideAnim, {
259
259
  toValue: 0,
260
- tension: 100, // Higher tension for faster animation
261
- friction: 6, // Lower friction for faster animation
260
+ tension: 80,
261
+ friction: 8,
262
262
  useNativeDriver: Platform.OS !== 'web',
263
263
  }),
264
264
  Animated.spring(scaleAnim, {
265
265
  toValue: 1,
266
- tension: 100, // Higher tension for faster animation
267
- friction: 6, // Lower friction for faster animation
266
+ tension: 80,
267
+ friction: 8,
268
268
  useNativeDriver: Platform.OS !== 'web',
269
269
  })
270
270
  ]).start();
@@ -407,8 +407,6 @@ const SignInScreen: React.FC<BaseScreenProps> = ({
407
407
  <KeyboardAvoidingView
408
408
  style={[styles.container, { backgroundColor: colors.background }]}
409
409
  behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
410
- keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : 20}
411
- enabled={Platform.OS !== 'web'}
412
410
  >
413
411
  <StatusBar
414
412
  barStyle={theme === 'dark' ? 'light-content' : 'dark-content'}
@@ -419,8 +417,6 @@ const SignInScreen: React.FC<BaseScreenProps> = ({
419
417
  contentContainerStyle={styles.scrollContent}
420
418
  showsVerticalScrollIndicator={false}
421
419
  keyboardShouldPersistTaps="handled"
422
- keyboardDismissMode="interactive"
423
- automaticallyAdjustKeyboardInsets={Platform.OS === 'ios'}
424
420
  >
425
421
  {renderCurrentStep()}
426
422
  </ScrollView>
@@ -634,12 +634,6 @@ const SignUpScreen: React.FC<BaseScreenProps> = ({
634
634
  const fadeAnim = useRef(new Animated.Value(1)).current;
635
635
  const slideAnim = useRef(new Animated.Value(0)).current;
636
636
 
637
- // Ensure animations are properly initialized
638
- useEffect(() => {
639
- fadeAnim.setValue(1);
640
- slideAnim.setValue(0);
641
- }, [fadeAnim, slideAnim]);
642
-
643
637
  // Memoized styles
644
638
  const styles = useMemo(() => createAuthStyles(colors, theme), [colors, theme]);
645
639
 
@@ -659,8 +653,8 @@ const SignUpScreen: React.FC<BaseScreenProps> = ({
659
653
  // Animation functions
660
654
  const animateTransition = useCallback((nextStep: number) => {
661
655
  Animated.timing(fadeAnim, {
662
- toValue: 0.3, // Don't fade completely to 0, keep some opacity
663
- duration: 100, // Faster fade out
656
+ toValue: 0,
657
+ duration: 250,
664
658
  useNativeDriver: Platform.OS !== 'web',
665
659
  }).start(() => {
666
660
  setCurrentStep(nextStep);
@@ -669,12 +663,12 @@ const SignUpScreen: React.FC<BaseScreenProps> = ({
669
663
  Animated.parallel([
670
664
  Animated.timing(fadeAnim, {
671
665
  toValue: 1,
672
- duration: 200, // Faster fade in
666
+ duration: 250,
673
667
  useNativeDriver: Platform.OS !== 'web',
674
668
  }),
675
669
  Animated.timing(slideAnim, {
676
670
  toValue: 0,
677
- duration: 250, // Slightly faster slide
671
+ duration: 300,
678
672
  useNativeDriver: Platform.OS !== 'web',
679
673
  })
680
674
  ]).start();
@@ -831,8 +825,6 @@ const SignUpScreen: React.FC<BaseScreenProps> = ({
831
825
  <KeyboardAvoidingView
832
826
  style={[styles.container, { backgroundColor: colors.background }]}
833
827
  behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
834
- keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : 20}
835
- enabled={Platform.OS !== 'web'}
836
828
  >
837
829
  <StatusBar
838
830
  barStyle={theme === 'dark' ? 'light-content' : 'dark-content'}
@@ -842,8 +834,6 @@ const SignUpScreen: React.FC<BaseScreenProps> = ({
842
834
  contentContainerStyle={styles.scrollContent}
843
835
  showsVerticalScrollIndicator={false}
844
836
  keyboardShouldPersistTaps="handled"
845
- keyboardDismissMode="interactive"
846
- automaticallyAdjustKeyboardInsets={Platform.OS === 'ios'}
847
837
  >
848
838
  {renderCurrentStep()}
849
839
  </ScrollView>
@@ -29,7 +29,6 @@ export const createAuthStyles = (colors: AuthThemeColors, theme: string) => Styl
29
29
  flex: 1,
30
30
  justifyContent: 'flex-start',
31
31
  alignItems: 'flex-start',
32
- backgroundColor: colors.background, // Ensure background is maintained during transitions
33
32
  },
34
33
 
35
34
  // Header styles
@@ -1,95 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createAuth = createAuth;
7
- var _express = _interopRequireDefault(require("express"));
8
- var _core = require("../core");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- function createAuth(options) {
11
- const oxy = new _core.OxyServices({
12
- baseURL: options.baseURL
13
- });
14
- const router = _express.default.Router();
15
-
16
- // Helper to handle async route functions
17
- const wrap = fn => async (req, res) => {
18
- try {
19
- await fn(req, res);
20
- } catch (err) {
21
- res.status(err?.status || 500).json({
22
- message: err?.message || 'Server error'
23
- });
24
- }
25
- };
26
- router.post('/signup', wrap(async (req, res) => {
27
- const {
28
- username,
29
- email,
30
- password
31
- } = req.body;
32
- const result = await oxy.signUp(username, email, password);
33
- res.json(result);
34
- }));
35
- router.post('/login', wrap(async (req, res) => {
36
- const {
37
- username,
38
- password
39
- } = req.body;
40
- const result = await oxy.login(username, password);
41
- res.json(result);
42
- }));
43
- router.post('/logout', wrap(async (req, res) => {
44
- const token = req.headers.authorization?.split(' ')[1];
45
- const refreshToken = req.body.refreshToken;
46
- if (token) oxy.setTokens(token, refreshToken);
47
- await oxy.logout();
48
- res.json({
49
- success: true
50
- });
51
- }));
52
- router.post('/refresh', wrap(async (req, res) => {
53
- const refreshToken = req.body.refreshToken;
54
- const accessToken = req.headers.authorization?.split(' ')[1] || '';
55
- oxy.setTokens(accessToken, refreshToken);
56
- const tokens = await oxy.refreshTokens();
57
- res.json(tokens);
58
- }));
59
- router.get('/validate', wrap(async (req, res) => {
60
- const token = req.headers.authorization?.split(' ')[1] || '';
61
- oxy.setTokens(token, '');
62
- const valid = await oxy.validate();
63
- res.json({
64
- valid
65
- });
66
- }));
67
- router.get('/sessions', wrap(async (req, res) => {
68
- const token = req.headers.authorization?.split(' ')[1] || '';
69
- oxy.setTokens(token, '');
70
- const sessions = await oxy.getUserSessions();
71
- res.json(sessions);
72
- }));
73
- router.delete('/sessions/:id', wrap(async (req, res) => {
74
- const token = req.headers.authorization?.split(' ')[1] || '';
75
- oxy.setTokens(token, '');
76
- const result = await oxy.logoutSession(req.params.id);
77
- res.json(result);
78
- }));
79
- router.post('/sessions/logout-others', wrap(async (req, res) => {
80
- const token = req.headers.authorization?.split(' ')[1] || '';
81
- oxy.setTokens(token, '');
82
- const result = await oxy.logoutOtherSessions();
83
- res.json(result);
84
- }));
85
- router.post('/sessions/logout-all', wrap(async (req, res) => {
86
- const token = req.headers.authorization?.split(' ')[1] || '';
87
- oxy.setTokens(token, '');
88
- const result = await oxy.logoutAllSessions();
89
- res.json(result);
90
- }));
91
- return {
92
- middleware: router
93
- };
94
- }
95
- //# sourceMappingURL=createAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_express","_interopRequireDefault","require","_core","e","__esModule","default","createAuth","options","oxy","OxyServices","baseURL","router","express","Router","wrap","fn","req","res","err","status","json","message","post","username","email","password","body","result","signUp","login","token","headers","authorization","split","refreshToken","setTokens","logout","success","accessToken","tokens","refreshTokens","get","valid","validate","sessions","getUserSessions","delete","logoutSession","params","id","logoutOtherSessions","logoutAllSessions","middleware"],"sourceRoot":"../../../src","sources":["node/createAuth.ts"],"mappings":"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","ignoreList":[]}
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- import express from 'express';
4
- import { OxyServices } from '../core';
5
- export function createAuth(options) {
6
- const oxy = new OxyServices({
7
- baseURL: options.baseURL
8
- });
9
- const router = express.Router();
10
-
11
- // Helper to handle async route functions
12
- const wrap = fn => async (req, res) => {
13
- try {
14
- await fn(req, res);
15
- } catch (err) {
16
- res.status(err?.status || 500).json({
17
- message: err?.message || 'Server error'
18
- });
19
- }
20
- };
21
- router.post('/signup', wrap(async (req, res) => {
22
- const {
23
- username,
24
- email,
25
- password
26
- } = req.body;
27
- const result = await oxy.signUp(username, email, password);
28
- res.json(result);
29
- }));
30
- router.post('/login', wrap(async (req, res) => {
31
- const {
32
- username,
33
- password
34
- } = req.body;
35
- const result = await oxy.login(username, password);
36
- res.json(result);
37
- }));
38
- router.post('/logout', wrap(async (req, res) => {
39
- const token = req.headers.authorization?.split(' ')[1];
40
- const refreshToken = req.body.refreshToken;
41
- if (token) oxy.setTokens(token, refreshToken);
42
- await oxy.logout();
43
- res.json({
44
- success: true
45
- });
46
- }));
47
- router.post('/refresh', wrap(async (req, res) => {
48
- const refreshToken = req.body.refreshToken;
49
- const accessToken = req.headers.authorization?.split(' ')[1] || '';
50
- oxy.setTokens(accessToken, refreshToken);
51
- const tokens = await oxy.refreshTokens();
52
- res.json(tokens);
53
- }));
54
- router.get('/validate', wrap(async (req, res) => {
55
- const token = req.headers.authorization?.split(' ')[1] || '';
56
- oxy.setTokens(token, '');
57
- const valid = await oxy.validate();
58
- res.json({
59
- valid
60
- });
61
- }));
62
- router.get('/sessions', wrap(async (req, res) => {
63
- const token = req.headers.authorization?.split(' ')[1] || '';
64
- oxy.setTokens(token, '');
65
- const sessions = await oxy.getUserSessions();
66
- res.json(sessions);
67
- }));
68
- router.delete('/sessions/:id', wrap(async (req, res) => {
69
- const token = req.headers.authorization?.split(' ')[1] || '';
70
- oxy.setTokens(token, '');
71
- const result = await oxy.logoutSession(req.params.id);
72
- res.json(result);
73
- }));
74
- router.post('/sessions/logout-others', wrap(async (req, res) => {
75
- const token = req.headers.authorization?.split(' ')[1] || '';
76
- oxy.setTokens(token, '');
77
- const result = await oxy.logoutOtherSessions();
78
- res.json(result);
79
- }));
80
- router.post('/sessions/logout-all', wrap(async (req, res) => {
81
- const token = req.headers.authorization?.split(' ')[1] || '';
82
- oxy.setTokens(token, '');
83
- const result = await oxy.logoutAllSessions();
84
- res.json(result);
85
- }));
86
- return {
87
- middleware: router
88
- };
89
- }
90
- //# sourceMappingURL=createAuth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["express","OxyServices","createAuth","options","oxy","baseURL","router","Router","wrap","fn","req","res","err","status","json","message","post","username","email","password","body","result","signUp","login","token","headers","authorization","split","refreshToken","setTokens","logout","success","accessToken","tokens","refreshTokens","get","valid","validate","sessions","getUserSessions","delete","logoutSession","params","id","logoutOtherSessions","logoutAllSessions","middleware"],"sourceRoot":"../../../src","sources":["node/createAuth.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- export interface CreateAuthOptions {
2
- baseURL: string;
3
- }
4
- export declare function createAuth(options: CreateAuthOptions): {
5
- middleware: any;
6
- };
7
- //# sourceMappingURL=createAuth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createAuth.d.ts","sourceRoot":"","sources":["../../../src/node/createAuth.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB;;EA2GpD"}
@@ -1,116 +0,0 @@
1
- import express from 'express';
2
- import type { Request, Response } from 'express';
3
- import { OxyServices } from '../core';
4
-
5
- export interface CreateAuthOptions {
6
- baseURL: string;
7
- }
8
-
9
- export function createAuth(options: CreateAuthOptions) {
10
- const oxy = new OxyServices({ baseURL: options.baseURL });
11
- const router = express.Router();
12
-
13
- // Helper to handle async route functions
14
- const wrap = (fn: (req: Request, res: Response) => Promise<any>) => async (
15
- req: Request,
16
- res: Response
17
- ) => {
18
- try {
19
- await fn(req, res);
20
- } catch (err: any) {
21
- res.status(err?.status || 500).json({ message: err?.message || 'Server error' });
22
- }
23
- };
24
-
25
- router.post(
26
- '/signup',
27
- wrap(async (req, res) => {
28
- const { username, email, password } = req.body;
29
- const result = await oxy.signUp(username, email, password);
30
- res.json(result);
31
- })
32
- );
33
-
34
- router.post(
35
- '/login',
36
- wrap(async (req, res) => {
37
- const { username, password } = req.body;
38
- const result = await oxy.login(username, password);
39
- res.json(result);
40
- })
41
- );
42
-
43
- router.post(
44
- '/logout',
45
- wrap(async (req, res) => {
46
- const token = req.headers.authorization?.split(' ')[1];
47
- const refreshToken = req.body.refreshToken;
48
- if (token) oxy.setTokens(token, refreshToken);
49
- await oxy.logout();
50
- res.json({ success: true });
51
- })
52
- );
53
-
54
- router.post(
55
- '/refresh',
56
- wrap(async (req, res) => {
57
- const refreshToken = req.body.refreshToken;
58
- const accessToken = req.headers.authorization?.split(' ')[1] || '';
59
- oxy.setTokens(accessToken, refreshToken);
60
- const tokens = await oxy.refreshTokens();
61
- res.json(tokens);
62
- })
63
- );
64
-
65
- router.get(
66
- '/validate',
67
- wrap(async (req, res) => {
68
- const token = req.headers.authorization?.split(' ')[1] || '';
69
- oxy.setTokens(token, '');
70
- const valid = await oxy.validate();
71
- res.json({ valid });
72
- })
73
- );
74
-
75
- router.get(
76
- '/sessions',
77
- wrap(async (req, res) => {
78
- const token = req.headers.authorization?.split(' ')[1] || '';
79
- oxy.setTokens(token, '');
80
- const sessions = await oxy.getUserSessions();
81
- res.json(sessions);
82
- })
83
- );
84
-
85
- router.delete(
86
- '/sessions/:id',
87
- wrap(async (req, res) => {
88
- const token = req.headers.authorization?.split(' ')[1] || '';
89
- oxy.setTokens(token, '');
90
- const result = await oxy.logoutSession(req.params.id);
91
- res.json(result);
92
- })
93
- );
94
-
95
- router.post(
96
- '/sessions/logout-others',
97
- wrap(async (req, res) => {
98
- const token = req.headers.authorization?.split(' ')[1] || '';
99
- oxy.setTokens(token, '');
100
- const result = await oxy.logoutOtherSessions();
101
- res.json(result);
102
- })
103
- );
104
-
105
- router.post(
106
- '/sessions/logout-all',
107
- wrap(async (req, res) => {
108
- const token = req.headers.authorization?.split(' ')[1] || '';
109
- oxy.setTokens(token, '');
110
- const result = await oxy.logoutAllSessions();
111
- res.json(result);
112
- })
113
- );
114
-
115
- return { middleware: router };
116
- }