@replyke/core 5.1.5-beta.2 → 5.1.5-beta.4

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 (71) hide show
  1. package/dist/cjs/context/index.d.ts +1 -1
  2. package/dist/cjs/context/index.js +5 -3
  3. package/dist/cjs/context/index.js.map +1 -1
  4. package/dist/cjs/context/replyke-context.d.ts +0 -1
  5. package/dist/cjs/context/replyke-context.js +2 -3
  6. package/dist/cjs/context/replyke-context.js.map +1 -1
  7. package/dist/cjs/context/replyke-store-context.d.ts +3 -2
  8. package/dist/cjs/context/replyke-store-context.js +23 -6
  9. package/dist/cjs/context/replyke-store-context.js.map +1 -1
  10. package/dist/cjs/hooks/auth-redux/index.d.ts +2 -0
  11. package/dist/cjs/hooks/auth-redux/index.js +11 -0
  12. package/dist/cjs/hooks/auth-redux/index.js.map +1 -0
  13. package/dist/cjs/hooks/auth-redux/useAuthRedux.d.ts +32 -0
  14. package/dist/cjs/hooks/auth-redux/useAuthRedux.js +180 -0
  15. package/dist/cjs/hooks/auth-redux/useAuthRedux.js.map +1 -0
  16. package/dist/cjs/hooks/auth-redux/useUserRedux.d.ts +6 -0
  17. package/dist/cjs/hooks/auth-redux/useUserRedux.js +20 -0
  18. package/dist/cjs/hooks/auth-redux/useUserRedux.js.map +1 -0
  19. package/dist/cjs/index.d.ts +7 -5
  20. package/dist/cjs/index.js +15 -8
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/store/api/baseApi.js +12 -4
  23. package/dist/cjs/store/api/baseApi.js.map +1 -1
  24. package/dist/cjs/store/index.d.ts +2 -0
  25. package/dist/cjs/store/middleware.js +6 -8
  26. package/dist/cjs/store/middleware.js.map +1 -1
  27. package/dist/cjs/store/rootReducer.d.ts +2 -0
  28. package/dist/cjs/store/rootReducer.js +5 -0
  29. package/dist/cjs/store/rootReducer.js.map +1 -1
  30. package/dist/cjs/store/slices/authSlice.d.ts +24 -0
  31. package/dist/cjs/store/slices/authSlice.js +79 -0
  32. package/dist/cjs/store/slices/authSlice.js.map +1 -0
  33. package/dist/cjs/store/slices/authThunks.d.ts +40 -0
  34. package/dist/cjs/store/slices/authThunks.js +357 -0
  35. package/dist/cjs/store/slices/authThunks.js.map +1 -0
  36. package/dist/esm/context/index.d.ts +1 -1
  37. package/dist/esm/context/index.js +3 -1
  38. package/dist/esm/context/index.js.map +1 -1
  39. package/dist/esm/context/replyke-context.d.ts +0 -1
  40. package/dist/esm/context/replyke-context.js +2 -3
  41. package/dist/esm/context/replyke-context.js.map +1 -1
  42. package/dist/esm/context/replyke-store-context.d.ts +3 -2
  43. package/dist/esm/context/replyke-store-context.js +25 -8
  44. package/dist/esm/context/replyke-store-context.js.map +1 -1
  45. package/dist/esm/hooks/auth-redux/index.d.ts +2 -0
  46. package/dist/esm/hooks/auth-redux/index.js +3 -0
  47. package/dist/esm/hooks/auth-redux/index.js.map +1 -0
  48. package/dist/esm/hooks/auth-redux/useAuthRedux.d.ts +32 -0
  49. package/dist/esm/hooks/auth-redux/useAuthRedux.js +174 -0
  50. package/dist/esm/hooks/auth-redux/useAuthRedux.js.map +1 -0
  51. package/dist/esm/hooks/auth-redux/useUserRedux.d.ts +6 -0
  52. package/dist/esm/hooks/auth-redux/useUserRedux.js +17 -0
  53. package/dist/esm/hooks/auth-redux/useUserRedux.js.map +1 -0
  54. package/dist/esm/index.d.ts +7 -5
  55. package/dist/esm/index.js +13 -8
  56. package/dist/esm/index.js.map +1 -1
  57. package/dist/esm/store/api/baseApi.js +12 -4
  58. package/dist/esm/store/api/baseApi.js.map +1 -1
  59. package/dist/esm/store/index.d.ts +2 -0
  60. package/dist/esm/store/middleware.js +6 -8
  61. package/dist/esm/store/middleware.js.map +1 -1
  62. package/dist/esm/store/rootReducer.d.ts +2 -0
  63. package/dist/esm/store/rootReducer.js +2 -0
  64. package/dist/esm/store/rootReducer.js.map +1 -1
  65. package/dist/esm/store/slices/authSlice.d.ts +24 -0
  66. package/dist/esm/store/slices/authSlice.js +69 -0
  67. package/dist/esm/store/slices/authSlice.js.map +1 -0
  68. package/dist/esm/store/slices/authThunks.d.ts +40 -0
  69. package/dist/esm/store/slices/authThunks.js +351 -0
  70. package/dist/esm/store/slices/authThunks.js.map +1 -0
  71. package/package.json +1 -1
@@ -2,11 +2,12 @@ import React from "react";
2
2
  import type { ReactNode } from "react";
3
3
  export interface ReplykeStoreProviderProps {
4
4
  children: ReactNode;
5
+ projectId: string;
6
+ signedToken?: string | null;
5
7
  }
6
8
  /**
7
9
  * Redux store provider for Replyke
8
- * This component provides the Redux store to all child components
9
- * Can be used standalone or wrapped around the existing ReplykeProvider
10
+ * This component provides the Redux store and initializes auth state
10
11
  */
11
12
  export declare const ReplykeStoreProvider: React.FC<ReplykeStoreProviderProps>;
12
13
  export default ReplykeStoreProvider;
@@ -1,16 +1,33 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Provider } from "react-redux";
1
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect } from "react";
3
+ import { Provider, useDispatch } from "react-redux";
3
4
  import { replykeStore } from "../store";
5
+ import { initializeAuthThunk } from "../store/slices/authThunks";
6
+ /**
7
+ * Component that initializes auth state in Redux
8
+ * Must be inside the Redux Provider to dispatch actions
9
+ */
10
+ var AuthInitializer = function (_a) {
11
+ var children = _a.children, projectId = _a.projectId, signedToken = _a.signedToken;
12
+ var dispatch = useDispatch();
13
+ useEffect(function () {
14
+ // Initialize auth with project and signed token
15
+ dispatch(initializeAuthThunk({
16
+ projectId: projectId,
17
+ signedToken: signedToken
18
+ }));
19
+ }, [dispatch, projectId, signedToken]);
20
+ return _jsx(_Fragment, { children: children });
21
+ };
4
22
  /**
5
23
  * Redux store provider for Replyke
6
- * This component provides the Redux store to all child components
7
- * Can be used standalone or wrapped around the existing ReplykeProvider
24
+ * This component provides the Redux store and initializes auth state
8
25
  */
9
26
  export var ReplykeStoreProvider = function (_a) {
10
- var children = _a.children;
11
- return (_jsx(Provider, { store: replykeStore, children: children }));
27
+ var children = _a.children, projectId = _a.projectId, signedToken = _a.signedToken;
28
+ return (_jsx(Provider, { store: replykeStore, children: _jsx(AuthInitializer, { projectId: projectId, signedToken: signedToken, children: children }) }));
12
29
  };
13
- // ReplykeProviderWithRedux has been deprecated
14
- // Use ReplykeProvider with enableRedux={true} instead
30
+ // Clean Redux-only architecture
31
+ // Always integrated with ReplykeProvider
15
32
  export default ReplykeStoreProvider;
16
33
  //# sourceMappingURL=replyke-store-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC;;;;GAIG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAwC,UAAC,EAEzE;QADC,QAAQ,cAAA;IAER,OAAO,CACL,KAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC1B,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,+CAA+C;AAC/C,sDAAsD;AAEtD,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"replyke-store-context.js","sourceRoot":"","sources":["../../../src/context/replyke-store-context.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAQjE;;;GAGG;AACH,IAAM,eAAe,GAIhB,UAAC,EAAoC;QAAlC,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,WAAW,iBAAA;IACtC,IAAM,QAAQ,GAAG,WAAW,EAAe,CAAC;IAE5C,SAAS,CAAC;QACR,gDAAgD;QAChD,QAAQ,CAAC,mBAAmB,CAAC;YAC3B,SAAS,WAAA;YACT,WAAW,aAAA;SACZ,CAAC,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvC,OAAO,4BAAG,QAAQ,GAAI,CAAC;AACzB,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,IAAM,oBAAoB,GAAwC,UAAC,EAIzE;QAHC,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,WAAW,iBAAA;IAEX,OAAO,CACL,KAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC3B,KAAC,eAAe,IAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,YAC5D,QAAQ,GACO,GACT,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,gCAAgC;AAChC,yCAAyC;AAEzC,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as useAuthRedux, type UseAuthReduxValues } from './useAuthRedux';
2
+ export { default as useUserRedux, type UseUserReduxValues } from './useUserRedux';
@@ -0,0 +1,3 @@
1
+ export { default as useAuthRedux } from './useAuthRedux';
2
+ export { default as useUserRedux } from './useUserRedux';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/hooks/auth-redux/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,YAAY,EAA2B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface UseAuthReduxValues {
2
+ loadingInitial: boolean;
3
+ accessToken: string | null;
4
+ refreshToken: string | null;
5
+ setRefreshToken: React.Dispatch<React.SetStateAction<string | null>>;
6
+ signUpWithEmailAndPassword: (props: {
7
+ email: string;
8
+ password: string;
9
+ name?: string;
10
+ username?: string;
11
+ avatar?: string;
12
+ bio?: string;
13
+ location?: {
14
+ latitude: number;
15
+ longitude: number;
16
+ };
17
+ birthdate?: Date;
18
+ metadata?: Record<string, any>;
19
+ secureMetadata?: Record<string, any>;
20
+ }) => Promise<void>;
21
+ signInWithEmailAndPassword: (props: {
22
+ email: string;
23
+ password: string;
24
+ }) => Promise<void>;
25
+ signOut: () => Promise<void>;
26
+ changePassword: (props: {
27
+ password: string;
28
+ newPassword: string;
29
+ }) => Promise<void>;
30
+ requestNewAccessToken: () => Promise<void>;
31
+ }
32
+ export default function useAuthRedux(): UseAuthReduxValues;
@@ -0,0 +1,174 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { useDispatch, useSelector } from 'react-redux';
49
+ import { useCallback } from 'react';
50
+ import { selectAccessToken, selectRefreshToken, selectLoadingInitial, setRefreshToken } from '../../store/slices/authSlice';
51
+ import { signUpWithEmailAndPasswordThunk, signInWithEmailAndPasswordThunk, signOutThunk, changePasswordThunk, requestNewAccessTokenThunk } from '../../store/slices/authThunks';
52
+ import useProject from '../projects/useProject';
53
+ export default function useAuthRedux() {
54
+ var _this = this;
55
+ var dispatch = useDispatch();
56
+ var projectId = useProject().projectId;
57
+ // Selectors
58
+ var loadingInitial = useSelector(function (state) { return selectLoadingInitial(state); });
59
+ var accessToken = useSelector(function (state) { return selectAccessToken(state); });
60
+ var refreshToken = useSelector(function (state) { return selectRefreshToken(state); });
61
+ // Actions
62
+ var handleSignUpWithEmailAndPassword = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
63
+ var result;
64
+ return __generator(this, function (_a) {
65
+ switch (_a.label) {
66
+ case 0:
67
+ if (!projectId) {
68
+ throw new Error("No projectId available.");
69
+ }
70
+ return [4 /*yield*/, dispatch(signUpWithEmailAndPasswordThunk(__assign({ projectId: projectId }, props)))];
71
+ case 1:
72
+ result = _a.sent();
73
+ if (signUpWithEmailAndPasswordThunk.rejected.match(result)) {
74
+ throw new Error(result.payload);
75
+ }
76
+ return [2 /*return*/];
77
+ }
78
+ });
79
+ }); }, [dispatch, projectId]);
80
+ var handleSignInWithEmailAndPassword = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
81
+ var result;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0:
85
+ if (!projectId) {
86
+ throw new Error("No projectId available.");
87
+ }
88
+ return [4 /*yield*/, dispatch(signInWithEmailAndPasswordThunk(__assign({ projectId: projectId }, props)))];
89
+ case 1:
90
+ result = _a.sent();
91
+ if (signInWithEmailAndPasswordThunk.rejected.match(result)) {
92
+ throw new Error(result.payload);
93
+ }
94
+ return [2 /*return*/];
95
+ }
96
+ });
97
+ }); }, [dispatch, projectId]);
98
+ var handleSignOut = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
99
+ var result;
100
+ return __generator(this, function (_a) {
101
+ switch (_a.label) {
102
+ case 0:
103
+ if (!projectId) {
104
+ throw new Error("No projectId available.");
105
+ }
106
+ return [4 /*yield*/, dispatch(signOutThunk({ projectId: projectId }))];
107
+ case 1:
108
+ result = _a.sent();
109
+ if (signOutThunk.rejected.match(result)) {
110
+ throw new Error(result.payload);
111
+ }
112
+ return [2 /*return*/];
113
+ }
114
+ });
115
+ }); }, [dispatch, projectId]);
116
+ var handleChangePassword = useCallback(function (props) { return __awaiter(_this, void 0, void 0, function () {
117
+ var result;
118
+ return __generator(this, function (_a) {
119
+ switch (_a.label) {
120
+ case 0:
121
+ if (!projectId) {
122
+ throw new Error("No projectId available.");
123
+ }
124
+ return [4 /*yield*/, dispatch(changePasswordThunk(__assign({ projectId: projectId }, props)))];
125
+ case 1:
126
+ result = _a.sent();
127
+ if (changePasswordThunk.rejected.match(result)) {
128
+ throw new Error(result.payload);
129
+ }
130
+ return [2 /*return*/];
131
+ }
132
+ });
133
+ }); }, [dispatch, projectId]);
134
+ var handleRequestNewAccessToken = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
135
+ var result;
136
+ return __generator(this, function (_a) {
137
+ switch (_a.label) {
138
+ case 0:
139
+ if (!projectId)
140
+ return [2 /*return*/];
141
+ return [4 /*yield*/, dispatch(requestNewAccessTokenThunk({ projectId: projectId }))];
142
+ case 1:
143
+ result = _a.sent();
144
+ if (requestNewAccessTokenThunk.fulfilled.match(result)) {
145
+ return [2 /*return*/, result.payload];
146
+ }
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ }); }, [dispatch, projectId]);
151
+ var handleSetRefreshToken = useCallback(function (token) {
152
+ // Handle both direct value and function setter patterns
153
+ if (typeof token === 'function') {
154
+ var currentToken = refreshToken;
155
+ var newToken = token(currentToken);
156
+ dispatch(setRefreshToken(newToken));
157
+ }
158
+ else {
159
+ dispatch(setRefreshToken(token));
160
+ }
161
+ }, [dispatch, refreshToken]);
162
+ return {
163
+ loadingInitial: loadingInitial,
164
+ accessToken: accessToken,
165
+ refreshToken: refreshToken,
166
+ setRefreshToken: handleSetRefreshToken,
167
+ signUpWithEmailAndPassword: handleSignUpWithEmailAndPassword,
168
+ signInWithEmailAndPassword: handleSignInWithEmailAndPassword,
169
+ signOut: handleSignOut,
170
+ changePassword: handleChangePassword,
171
+ requestNewAccessToken: handleRequestNewAccessToken,
172
+ };
173
+ }
174
+ //# sourceMappingURL=useAuthRedux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAuthRedux.js","sourceRoot":"","sources":["../../../../src/hooks/auth-redux/useAuthRedux.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,+BAA+B,EAC/B,+BAA+B,EAC/B,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AACvC,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAmChD,MAAM,CAAC,OAAO,UAAU,YAAY;IAApC,iBA0HC;IAzHC,IAAM,QAAQ,GAAG,WAAW,EAAe,CAAC;IACpC,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAEnC,YAAY;IACZ,IAAM,cAAc,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,oBAAoB,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACtF,IAAM,WAAW,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,iBAAiB,CAAC,KAAK,CAAC,EAAxB,CAAwB,CAAC,CAAC;IAChF,IAAM,YAAY,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,kBAAkB,CAAC,KAAK,CAAC,EAAzB,CAAyB,CAAC,CAAC;IAElF,UAAU;IACV,IAAM,gCAAgC,GAAG,WAAW,CAClD,UAAO,KAcN;;;;;oBACC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAEc,qBAAM,QAAQ,CAAC,+BAA+B,YAC3D,SAAS,WAAA,IACN,KAAK,EACR,CAAC,EAAA;;oBAHG,MAAM,GAAG,SAGZ;oBAEH,IAAI,+BAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3D,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC,CAAC;oBAC5C,CAAC;;;;SACF,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAC;IAEF,IAAM,gCAAgC,GAAG,WAAW,CAClD,UAAO,KAA0C;;;;;oBAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAEc,qBAAM,QAAQ,CAAC,+BAA+B,YAC3D,SAAS,WAAA,IACN,KAAK,EACR,CAAC,EAAA;;oBAHG,MAAM,GAAG,SAGZ;oBAEH,IAAI,+BAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3D,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC,CAAC;oBAC5C,CAAC;;;;SACF,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAC;IAEF,IAAM,aAAa,GAAG,WAAW,CAAC;;;;;oBAChC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAEc,qBAAM,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC,EAAA;;oBAApD,MAAM,GAAG,SAA2C;oBAE1D,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBACxC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC,CAAC;oBAC5C,CAAC;;;;SACF,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,IAAM,oBAAoB,GAAG,WAAW,CACtC,UAAO,KAAgD;;;;;oBACrD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAEc,qBAAM,QAAQ,CAAC,mBAAmB,YAC/C,SAAS,WAAA,IACN,KAAK,EACR,CAAC,EAAA;;oBAHG,MAAM,GAAG,SAGZ;oBAEH,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC,CAAC;oBAC5C,CAAC;;;;SACF,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAC;IAEF,IAAM,2BAA2B,GAAG,WAAW,CAAC;;;;;oBAC9C,IAAI,CAAC,SAAS;wBAAE,sBAAO;oBAER,qBAAM,QAAQ,CAAC,0BAA0B,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC,EAAA;;oBAAlE,MAAM,GAAG,SAAyD;oBAExE,IAAI,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBACvD,sBAAO,MAAM,CAAC,OAAO,EAAC;oBACxB,CAAC;;;;SACF,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,IAAM,qBAAqB,GAAG,WAAW,CAAC,UAAC,KAA0C;QACnF,wDAAwD;QACxD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAM,YAAY,GAAG,YAAY,CAAC;YAClC,IAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;YACrC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,cAAc,gBAAA;QACd,WAAW,aAAA;QACX,YAAY,cAAA;QACZ,eAAe,EAAE,qBAAqB;QACtC,0BAA0B,EAAE,gCAAgC;QAC5D,0BAA0B,EAAE,gCAAgC;QAC5D,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,oBAAoB;QACpC,qBAAqB,EAAE,2BAA2B;KACnD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { AuthUser } from '../../interfaces/models/User';
2
+ export interface UseUserReduxValues {
3
+ user: AuthUser | null;
4
+ setUser: (newUser: AuthUser) => void;
5
+ }
6
+ export default function useUserRedux(): UseUserReduxValues;
@@ -0,0 +1,17 @@
1
+ import { useDispatch, useSelector } from 'react-redux';
2
+ import { useCallback } from 'react';
3
+ import { selectUser, setUser } from '../../store/slices/authSlice';
4
+ export default function useUserRedux() {
5
+ var dispatch = useDispatch();
6
+ // Selectors
7
+ var user = useSelector(function (state) { return selectUser(state); });
8
+ // Actions
9
+ var handleSetUser = useCallback(function (newUser) {
10
+ dispatch(setUser(newUser));
11
+ }, [dispatch]);
12
+ return {
13
+ user: user,
14
+ setUser: handleSetUser,
15
+ };
16
+ }
17
+ //# sourceMappingURL=useUserRedux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserRedux.js","sourceRoot":"","sources":["../../../../src/hooks/auth-redux/useUserRedux.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGpC,OAAO,EACL,UAAU,EACV,OAAO,EACR,MAAM,8BAA8B,CAAC;AAQtC,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,IAAM,QAAQ,GAAG,WAAW,EAAe,CAAC;IAE5C,YAAY;IACZ,IAAM,IAAI,GAAG,WAAW,CAAC,UAAC,KAAgB,IAAK,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB,CAAC,CAAC;IAElE,UAAU;IACV,IAAM,aAAa,GAAG,WAAW,CAAC,UAAC,OAAiB;QAClD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO;QACL,IAAI,MAAA;QACJ,OAAO,EAAE,aAAa;KACvB,CAAC;AACJ,CAAC"}
@@ -4,18 +4,20 @@ export { getUserName } from "./helpers/getUserName";
4
4
  export { default as getPublicFileUrl } from "./helpers/getPublicFileUrl";
5
5
  export { reportReasons } from "./constants/reportReasons";
6
6
  export type { ReportReasonKey } from "./constants/reportReasons";
7
- export { ReplykeProvider, // Now includes optional Redux support via enableRedux prop
8
- EntityListProvider, EntityProvider, ListsProvider, AppNotificationsProvider, CommentSectionProvider, } from "./context";
9
- export { ReplykeStoreProvider, } from "./context";
7
+ export { ReplykeProvider, // Always includes Redux auth and notification management
8
+ EntityListProvider, EntityProvider, ListsProvider, AppNotificationsProvider, CommentSectionProvider, ReplykeStoreProvider, } from "./context";
9
+ export { AuthProvider, } from "./context";
10
10
  export { useProject, useProjectData } from "./hooks/projects";
11
11
  export { useSignTestingJwt } from "./hooks/crypto";
12
- export { useAuth, useAuthData, useRequestNewAccessToken, useSignUpWithEmailAndPassword, useSignInWithEmailAndPassword, useSignOut, useChangePassword, useVerifyExternalUser, } from "./hooks/auth";
12
+ export { useAuthRedux as useAuth, useUserRedux as useUser, type UseAuthReduxValues as UseAuthValues, type UseUserReduxValues as UseUserValues, } from "./hooks/auth-redux";
13
+ export { useAuth as useAuthContext, useAuthData, useRequestNewAccessToken, useSignUpWithEmailAndPassword, useSignInWithEmailAndPassword, useSignOut, useChangePassword, useVerifyExternalUser, } from "./hooks/auth";
13
14
  export { useAppNotifications, useAppNotificationsData, useCountUnreadNotifications, useFetchAppNotifications, useMarkNotificationAsRead, } from "./hooks/app-notifications";
14
15
  export { useAppNotificationsRedux, useAppNotificationsDataRedux, type UseAppNotificationsDataProps, type UseAppNotificationsDataValues, } from "./hooks/app-notifications-redux";
15
16
  export { useEntity, useEntityData, useCreateEntity, useFetchEntity, useFetchEntityByForeignId, useFetchEntityByShortId, useUpdateEntity, useEntityVotes, useDeleteEntity, useEntityList, useEntityListData, useInfusedData, } from "./hooks/entities";
16
17
  export { useCommentSection, useCommentSectionData, useCreateComment, useFetchManyComments, useFetchComment, useFetchCommentByForeignId, useReplies, useUpdateComment, useCommentVotes, useDeleteComment, useEntityComments, useProfileComments, } from "./hooks/comments";
17
18
  export { useLists, useListsData, useCreateList, useFetchRootList, useFetchSubLists, useIsEntitySaved, useUpdateList, useAddToList, useRemoveFromList, useDeleteList, } from "./hooks/lists";
18
- export { useUser, useUserData, useFetchUser, useFetchUserByForeignId, useFetchUserFollowersCount, useFetchUserFollowingCount, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, useFetchFollow, useFollowUser, useUnfollowUser, } from "./hooks/users";
19
+ export { useUserData, useFetchUser, useFetchUserByForeignId, useFetchUserFollowersCount, useFetchUserFollowingCount, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, useFetchFollow, useFollowUser, useUnfollowUser, } from "./hooks/users";
20
+ export { useUser as useUserContext, } from "./hooks/users";
19
21
  export { useCreateReport } from "./hooks/reports";
20
22
  export { useGetMetadata } from "./hooks/utils";
21
23
  export { useUploadFile } from "./hooks/storage";
package/dist/esm/index.js CHANGED
@@ -5,18 +5,21 @@ export { getUserName } from "./helpers/getUserName";
5
5
  export { default as getPublicFileUrl } from "./helpers/getPublicFileUrl";
6
6
  // Constants
7
7
  export { reportReasons } from "./constants/reportReasons";
8
- // Context providers
9
- export { ReplykeProvider, // Now includes optional Redux support via enableRedux prop
10
- EntityListProvider, EntityProvider, ListsProvider, AppNotificationsProvider, CommentSectionProvider, } from "./context";
11
- // Advanced Redux providers (for advanced use cases)
12
- export { ReplykeStoreProvider, // Standalone Redux provider
8
+ // Context providers (now Redux-powered by default)
9
+ export { ReplykeProvider, // Always includes Redux auth and notification management
10
+ EntityListProvider, EntityProvider, ListsProvider, AppNotificationsProvider, CommentSectionProvider, ReplykeStoreProvider, // Advanced: standalone Redux provider
11
+ } from "./context";
12
+ // Legacy Context providers (for reference)
13
+ export { AuthProvider, // Legacy - use Redux-powered ReplykeProvider instead
13
14
  } from "./context";
14
15
  // -- projects
15
16
  export { useProject, useProjectData } from "./hooks/projects";
16
17
  // -- crypto
17
18
  export { useSignTestingJwt } from "./hooks/crypto";
18
- // -- authentication
19
- export { useAuth, useAuthData, useRequestNewAccessToken, useSignUpWithEmailAndPassword, useSignInWithEmailAndPassword, useSignOut, useChangePassword, useVerifyExternalUser, } from "./hooks/auth";
19
+ // -- authentication (now Redux-powered)
20
+ export { useAuthRedux as useAuth, useUserRedux as useUser, } from "./hooks/auth-redux";
21
+ // Legacy auth exports (for reference - keep existing Context implementation available)
22
+ export { useAuth as useAuthContext, useAuthData, useRequestNewAccessToken, useSignUpWithEmailAndPassword, useSignInWithEmailAndPassword, useSignOut, useChangePassword, useVerifyExternalUser, } from "./hooks/auth";
20
23
  // -- app notifications
21
24
  export { useAppNotifications, useAppNotificationsData, useCountUnreadNotifications, useFetchAppNotifications, useMarkNotificationAsRead, } from "./hooks/app-notifications";
22
25
  // -- app notifications (Redux-powered)
@@ -28,7 +31,9 @@ export { useCommentSection, useCommentSectionData, useCreateComment, useFetchMan
28
31
  // -- lists
29
32
  export { useLists, useListsData, useCreateList, useFetchRootList, useFetchSubLists, useIsEntitySaved, useUpdateList, useAddToList, useRemoveFromList, useDeleteList, } from "./hooks/lists";
30
33
  // -- users
31
- export { useUser, useUserData, useFetchUser, useFetchUserByForeignId, useFetchUserFollowersCount, useFetchUserFollowingCount, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, useFetchFollow, useFollowUser, useUnfollowUser, } from "./hooks/users";
34
+ export { useUserData, useFetchUser, useFetchUserByForeignId, useFetchUserFollowersCount, useFetchUserFollowingCount, useCheckUsernameAvailability, useFetchUserSuggestions, useMentions, useUpdateUser, useFetchFollow, useFollowUser, useUnfollowUser, } from "./hooks/users";
35
+ // Legacy user exports (for reference - keep existing Context implementation available)
36
+ export { useUser as useUserContext, } from "./hooks/users";
32
37
  // -- reports
33
38
  export { useCreateReport } from "./hooks/reports";
34
39
  // -- general
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,oBAAoB;AACpB,OAAO,EACL,eAAe,EAAE,2DAA2D;AAC5E,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAEnB,oDAAoD;AACpD,OAAO,EACL,oBAAoB,EAAE,4BAA4B;EACnD,MAAM,WAAW,CAAC;AAEnB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,oBAAoB;AACpB,OAAO,EACL,OAAO,EACP,WAAW,EACX,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,uCAAuC;AACvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAG7B,MAAM,iCAAiC,CAAC;AAEzC,cAAc;AACd,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEzE,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,mDAAmD;AACnD,OAAO,EACL,eAAe,EAAE,yDAAyD;AAC1E,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EAAE,sCAAsC;EAC7D,MAAM,WAAW,CAAC;AAEnB,2CAA2C;AAC3C,OAAO,EACL,YAAY,EAAE,qDAAqD;EACpE,MAAM,WAAW,CAAC;AAEnB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,YAAY;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wCAAwC;AACxC,OAAO,EACL,YAAY,IAAI,OAAO,EACvB,YAAY,IAAI,OAAO,GAGxB,MAAM,oBAAoB,CAAC;AAE5B,uFAAuF;AACvF,OAAO,EACL,OAAO,IAAI,cAAc,EACzB,WAAW,EACX,wBAAwB,EACxB,6BAA6B,EAC7B,6BAA6B,EAC7B,UAAU,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,uCAAuC;AACvC,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAG7B,MAAM,iCAAiC,CAAC;AAEzC,cAAc;AACd,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,0BAA0B,EAC1B,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,WAAW;AACX,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,uFAAuF;AACvF,OAAO,EACL,OAAO,IAAI,cAAc,GAC1B,MAAM,eAAe,CAAC;AAEvB,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC"}
@@ -3,11 +3,19 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
3
3
  // Base query that uses the current project context and auth
4
4
  var createBaseQuery = function () {
5
5
  return fetchBaseQuery({
6
- baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com',
6
+ baseUrl: process.env.REACT_APP_API_BASE_URL || 'https://api.replyke.com/api/v5',
7
7
  credentials: 'include', // Equivalent to withCredentials: true
8
- prepareHeaders: function (headers) {
9
- // Headers are prepared but don't need auth tokens since we use credentials: 'include'
10
- // This matches the existing pattern in the Context-based hooks
8
+ prepareHeaders: function (headers, _a) {
9
+ var getState = _a.getState;
10
+ // Add Content-Type header
11
+ headers.set('Content-Type', 'application/json');
12
+ // Get access token from Redux state
13
+ var state = getState();
14
+ var accessToken = state.auth.accessToken;
15
+ // Add Authorization header if we have a token
16
+ if (accessToken) {
17
+ headers.set('Authorization', "Bearer ".concat(accessToken));
18
+ }
11
19
  return headers;
12
20
  },
13
21
  });
@@ -1 +1 @@
1
- {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,yBAAyB;QACxE,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO;YACtB,sFAAsF;YACtF,+DAA+D;YAC/D,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAO,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"baseApi.js","sourceRoot":"","sources":["../../../../src/store/api/baseApi.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGzE,4DAA4D;AAC5D,IAAM,eAAe,GAAG;IACtB,OAAO,cAAc,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,gCAAgC;QAC/E,WAAW,EAAE,SAAS,EAAE,sCAAsC;QAC9D,cAAc,EAAE,UAAC,OAAO,EAAE,EAAY;gBAAV,QAAQ,cAAA;YAClC,0BAA0B;YAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAEhD,oCAAoC;YACpC,IAAM,KAAK,GAAG,QAAQ,EAAe,CAAC;YACtC,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;YAE3C,8CAA8C;YAC9C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAU,WAAW,CAAE,CAAC,CAAC;YACxD,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,eAAe,EAAE;IAC5B,QAAQ,EAAE;QACR,iBAAiB;QACjB,oBAAoB;QACpB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,UAAU;KACX;IACD,SAAS,EAAE,cAAM,OAAA,CAAC,EAAE,CAAC,EAAJ,CAAI,EAAE,6CAA6C;CACrE,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAO,KAAK,OAAO,CAAC"}
@@ -1,9 +1,11 @@
1
1
  export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("@reduxjs/toolkit").StoreEnhancer<{
5
6
  dispatch: import("@reduxjs/toolkit").ThunkDispatch<{
6
7
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
8
+ auth: import("./slices/authSlice").AuthState;
7
9
  appNotifications: import("./slices").AppNotificationsState;
8
10
  }, undefined, import("@reduxjs/toolkit").UnknownAction>;
9
11
  }>, import("@reduxjs/toolkit").StoreEnhancer]>>;
@@ -18,16 +18,14 @@ export var errorMiddleware = function (store) { return function (next) { return
18
18
  throw error;
19
19
  }
20
20
  }; }; };
21
- // Logger middleware for development
21
+ // Selective logger middleware for development - only logs important actions
22
22
  export var loggerMiddleware = function (store) { return function (next) { return function (action) {
23
- if (process.env.NODE_ENV === 'development') {
24
- console.group("\uD83D\uDD04 Redux Action: ".concat(action.type));
25
- console.log('Previous State:', store.getState());
26
- console.log('Action:', action);
27
- }
28
23
  var result = next(action);
29
- if (process.env.NODE_ENV === 'development') {
30
- console.log('Next State:', store.getState());
24
+ // Only log failed API calls and errors in development
25
+ if (process.env.NODE_ENV === 'development' && action.type.includes('/rejected')) {
26
+ console.group("\u274C Redux Action Failed: ".concat(action.type));
27
+ console.log('Error:', action.payload);
28
+ console.log('Action:', action);
31
29
  console.groupEnd();
32
30
  }
33
31
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,CAAC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,qCAAoB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAfgE,CAehE,EAfsD,CAetD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,IAAM,gBAAgB;IAC3B,eAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACtE,CAAC"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../../src/store/middleware.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,8CAA8C;AAC9C,MAAM,CAAC,IAAM,eAAe,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC1E,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,EAAE,+BAAwB,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QAC1D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,EAP+D,CAO/D,EAPqD,CAOrD,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,IAAM,gBAAgB,GAAe,UAAC,KAAK,IAAK,OAAA,UAAC,IAAI,IAAK,OAAA,UAAC,MAAW;IAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAE5B,sDAAsD;IACtD,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChF,OAAO,CAAC,KAAK,CAAC,sCAA0B,MAAM,CAAC,IAAI,CAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,EAZgE,CAYhE,EAZsD,CAYtD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,IAAM,gBAAgB;IAC3B,eAAe;GACZ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OACtE,CAAC"}
@@ -1,8 +1,10 @@
1
1
  export declare const rootReducer: import("@reduxjs/toolkit").Reducer<{
2
2
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api">;
3
+ auth: import("./slices/authSlice").AuthState;
3
4
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState;
4
5
  }, import("@reduxjs/toolkit").UnknownAction, Partial<{
5
6
  api: import("@reduxjs/toolkit/query").CombinedState<{}, "AppNotification", "api"> | undefined;
7
+ auth: import("./slices/authSlice").AuthState | undefined;
6
8
  appNotifications: import("./slices/appNotificationsSlice").AppNotificationsState | undefined;
7
9
  }>>;
8
10
  export type RootState = ReturnType<typeof rootReducer>;
@@ -2,11 +2,13 @@ var _a;
2
2
  import { combineReducers } from "@reduxjs/toolkit";
3
3
  import { baseApi } from "./api/baseApi";
4
4
  import { appNotificationsSlice } from "./slices/appNotificationsSlice";
5
+ import authReducer from "./slices/authSlice";
5
6
  // Combine all reducers
6
7
  export var rootReducer = combineReducers((_a = {},
7
8
  // API slice reducer (manages RTK Query cache)
8
9
  _a[baseApi.reducerPath] = baseApi.reducer,
9
10
  // Feature slices
11
+ _a.auth = authReducer,
10
12
  _a.appNotifications = appNotificationsSlice.reducer,
11
13
  _a));
12
14
  //# sourceMappingURL=rootReducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAEvE,uBAAuB;AACvB,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe;IACxC,8CAA8C;IAC9C,GAAC,OAAO,CAAC,WAAW,IAAG,OAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,mBAAgB,GAAE,qBAAqB,CAAC,OAAO;QAM/C,CAAC"}
1
+ {"version":3,"file":"rootReducer.js","sourceRoot":"","sources":["../../../src/store/rootReducer.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAE7C,uBAAuB;AACvB,MAAM,CAAC,IAAM,WAAW,GAAG,eAAe;IACxC,8CAA8C;IAC9C,GAAC,OAAO,CAAC,WAAW,IAAG,OAAO,CAAC,OAAO;IAEtC,iBAAiB;IACjB,OAAI,GAAE,WAAW;IACjB,mBAAgB,GAAE,qBAAqB,CAAC,OAAO;QAM/C,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { RootState } from '../index';
2
+ import type { AuthUser } from '../../interfaces/models/User';
3
+ export interface AuthState {
4
+ accessToken: string | null;
5
+ refreshToken: string | null;
6
+ user: AuthUser | null;
7
+ loadingInitial: boolean;
8
+ isAuthenticating: boolean;
9
+ initialized: boolean;
10
+ signedToken: string | null;
11
+ }
12
+ export declare const setTokens: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
13
+ accessToken: string | null;
14
+ refreshToken?: string | null;
15
+ }, "auth/setTokens">, clearTokens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/clearTokens">, setUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<AuthUser | null, "auth/setUser">, setLoadingInitial: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "auth/setLoadingInitial">, setAuthenticating: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "auth/setAuthenticating">, setInitialized: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "auth/setInitialized">, setSignedToken: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "auth/setSignedToken">, resetAuth: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"auth/resetAuth">, setRefreshToken: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "auth/setRefreshToken">;
16
+ export declare const selectAccessToken: (state: RootState) => string | null;
17
+ export declare const selectRefreshToken: (state: RootState) => string | null;
18
+ export declare const selectUser: (state: RootState) => AuthUser | null;
19
+ export declare const selectLoadingInitial: (state: RootState) => boolean;
20
+ export declare const selectIsAuthenticating: (state: RootState) => boolean;
21
+ export declare const selectInitialized: (state: RootState) => boolean;
22
+ export declare const selectSignedToken: (state: RootState) => string | null;
23
+ declare const _default: import("@reduxjs/toolkit").Reducer<AuthState>;
24
+ export default _default;
@@ -0,0 +1,69 @@
1
+ var _a;
2
+ import { createSlice } from '@reduxjs/toolkit';
3
+ var initialState = {
4
+ accessToken: null,
5
+ refreshToken: null,
6
+ user: null,
7
+ loadingInitial: true,
8
+ isAuthenticating: false,
9
+ initialized: false,
10
+ signedToken: null,
11
+ };
12
+ var authSlice = createSlice({
13
+ name: 'auth',
14
+ initialState: initialState,
15
+ reducers: {
16
+ // Token management
17
+ setTokens: function (state, action) {
18
+ state.accessToken = action.payload.accessToken;
19
+ if (action.payload.refreshToken !== undefined) {
20
+ state.refreshToken = action.payload.refreshToken;
21
+ }
22
+ },
23
+ clearTokens: function (state) {
24
+ state.accessToken = null;
25
+ state.refreshToken = null;
26
+ },
27
+ // User management
28
+ setUser: function (state, action) {
29
+ state.user = action.payload;
30
+ },
31
+ // Loading states
32
+ setLoadingInitial: function (state, action) {
33
+ state.loadingInitial = action.payload;
34
+ },
35
+ setAuthenticating: function (state, action) {
36
+ state.isAuthenticating = action.payload;
37
+ },
38
+ // Initialization
39
+ setInitialized: function (state, action) {
40
+ state.initialized = action.payload;
41
+ },
42
+ setSignedToken: function (state, action) {
43
+ state.signedToken = action.payload;
44
+ },
45
+ // Complete auth reset (for signout)
46
+ resetAuth: function (state) {
47
+ state.accessToken = null;
48
+ state.refreshToken = null;
49
+ state.user = null;
50
+ state.isAuthenticating = false;
51
+ // Keep loadingInitial and initialized as they are
52
+ },
53
+ // Individual token setter for compatibility
54
+ setRefreshToken: function (state, action) {
55
+ state.refreshToken = action.payload;
56
+ },
57
+ },
58
+ });
59
+ export var setTokens = (_a = authSlice.actions, _a.setTokens), clearTokens = _a.clearTokens, setUser = _a.setUser, setLoadingInitial = _a.setLoadingInitial, setAuthenticating = _a.setAuthenticating, setInitialized = _a.setInitialized, setSignedToken = _a.setSignedToken, resetAuth = _a.resetAuth, setRefreshToken = _a.setRefreshToken;
60
+ // Selectors
61
+ export var selectAccessToken = function (state) { return state.auth.accessToken; };
62
+ export var selectRefreshToken = function (state) { return state.auth.refreshToken; };
63
+ export var selectUser = function (state) { return state.auth.user; };
64
+ export var selectLoadingInitial = function (state) { return state.auth.loadingInitial; };
65
+ export var selectIsAuthenticating = function (state) { return state.auth.isAuthenticating; };
66
+ export var selectInitialized = function (state) { return state.auth.initialized; };
67
+ export var selectSignedToken = function (state) { return state.auth.signedToken; };
68
+ export default authSlice.reducer;
69
+ //# sourceMappingURL=authSlice.js.map