@replyke/core 7.0.0-beta.83 → 7.0.0-beta.85
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/dist/cjs/config/axios.js +0 -1
- package/dist/cjs/config/axios.js.map +1 -1
- package/dist/cjs/config/useAxiosPrivate.js +16 -10
- package/dist/cjs/config/useAxiosPrivate.js.map +1 -1
- package/dist/cjs/context/replyke-integration-context.js +16 -1
- package/dist/cjs/context/replyke-integration-context.js.map +1 -1
- package/dist/cjs/context/replyke-store-context.js +17 -6
- package/dist/cjs/context/replyke-store-context.js.map +1 -1
- package/dist/cjs/hooks/auth/index.d.ts +6 -0
- package/dist/cjs/hooks/auth/index.js +13 -1
- package/dist/cjs/hooks/auth/index.js.map +1 -1
- package/dist/cjs/hooks/auth/useAccountSync.d.ts +2 -0
- package/dist/cjs/hooks/auth/useAccountSync.js +165 -0
- package/dist/cjs/hooks/auth/useAccountSync.js.map +1 -0
- package/dist/cjs/hooks/auth/useAccounts.d.ts +7 -0
- package/dist/cjs/hooks/auth/useAccounts.js +23 -0
- package/dist/cjs/hooks/auth/useAccounts.js.map +1 -0
- package/dist/cjs/hooks/auth/useAddAccount.d.ts +5 -0
- package/dist/cjs/hooks/auth/useAddAccount.js +27 -0
- package/dist/cjs/hooks/auth/useAddAccount.js.map +1 -0
- package/dist/cjs/hooks/auth/useAuth.d.ts +1 -1
- package/dist/cjs/hooks/auth/useRemoveAccount.d.ts +6 -0
- package/dist/cjs/hooks/auth/useRemoveAccount.js +128 -0
- package/dist/cjs/hooks/auth/useRemoveAccount.js.map +1 -0
- package/dist/cjs/hooks/auth/useSignOutAll.d.ts +4 -0
- package/dist/cjs/hooks/auth/useSignOutAll.js +71 -0
- package/dist/cjs/hooks/auth/useSignOutAll.js.map +1 -0
- package/dist/cjs/hooks/auth/useSwitchAccount.d.ts +6 -0
- package/dist/cjs/hooks/auth/useSwitchAccount.js +103 -0
- package/dist/cjs/hooks/auth/useSwitchAccount.js.map +1 -0
- package/dist/cjs/hooks/collections/useCollections.js +0 -1
- package/dist/cjs/hooks/collections/useCollections.js.map +1 -1
- package/dist/cjs/hooks/collections/useIsEntitySaved.js +0 -1
- package/dist/cjs/hooks/collections/useIsEntitySaved.js.map +1 -1
- package/dist/cjs/hooks/entities/useCreateEntity.js +1 -2
- package/dist/cjs/hooks/entities/useCreateEntity.js.map +1 -1
- package/dist/cjs/hooks/entities/useDeleteEntity.js +1 -3
- package/dist/cjs/hooks/entities/useDeleteEntity.js.map +1 -1
- package/dist/cjs/hooks/entities/useFetchDrafts.d.ts +2 -0
- package/dist/cjs/hooks/entities/useFetchDrafts.js +4 -0
- package/dist/cjs/hooks/entities/useFetchDrafts.js.map +1 -1
- package/dist/cjs/hooks/entities/usePublishDraft.js +1 -1
- package/dist/cjs/hooks/entities/usePublishDraft.js.map +1 -1
- package/dist/cjs/hooks/entities/useUpdateEntity.js +1 -1
- package/dist/cjs/hooks/entities/useUpdateEntity.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useAcceptConnection.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useAcceptConnection.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useDeclineConnection.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useDeclineConnection.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnectionStatus.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnectionStatus.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnections.js +0 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnections.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnectionsCount.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchConnectionsCount.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchReceivedPendingConnections.js +0 -1
- package/dist/cjs/hooks/relationships/connections/useFetchReceivedPendingConnections.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useFetchSentPendingConnections.js +0 -1
- package/dist/cjs/hooks/relationships/connections/useFetchSentPendingConnections.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useRemoveConnection.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useRemoveConnection.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useRemoveConnectionByUserId.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useRemoveConnectionByUserId.js.map +1 -1
- package/dist/cjs/hooks/relationships/connections/useRequestConnection.js +1 -1
- package/dist/cjs/hooks/relationships/connections/useRequestConnection.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowStatus.js +1 -3
- package/dist/cjs/hooks/relationships/follows/useFetchFollowStatus.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowers.js +0 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowers.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowersCount.js +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowersCount.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowing.js +0 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowing.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowingCount.js +1 -1
- package/dist/cjs/hooks/relationships/follows/useFetchFollowingCount.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useFollowUser.js +1 -1
- package/dist/cjs/hooks/relationships/follows/useFollowUser.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useUnfollowByFollowId.js +1 -3
- package/dist/cjs/hooks/relationships/follows/useUnfollowByFollowId.js.map +1 -1
- package/dist/cjs/hooks/relationships/follows/useUnfollowUserByUserId.js +1 -3
- package/dist/cjs/hooks/relationships/follows/useUnfollowUserByUserId.js.map +1 -1
- package/dist/cjs/hooks/reports/useCreateReport.js +1 -1
- package/dist/cjs/hooks/reports/useCreateReport.js.map +1 -1
- package/dist/cjs/hooks/storage/useUploadFile.js +0 -1
- package/dist/cjs/hooks/storage/useUploadFile.js.map +1 -1
- package/dist/cjs/hooks/storage/useUploadImage.js +0 -1
- package/dist/cjs/hooks/storage/useUploadImage.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +13 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/IAccountStorage.d.ts +6 -0
- package/dist/cjs/interfaces/IAccountStorage.js +3 -0
- package/dist/cjs/interfaces/IAccountStorage.js.map +1 -0
- package/dist/cjs/store/api/baseApi.js +0 -1
- package/dist/cjs/store/api/baseApi.js.map +1 -1
- package/dist/cjs/store/hooks.d.ts +1 -0
- package/dist/cjs/store/index.d.ts +2 -0
- package/dist/cjs/store/replykeReducers.d.ts +2 -0
- package/dist/cjs/store/replykeReducers.js +2 -0
- package/dist/cjs/store/replykeReducers.js.map +1 -1
- package/dist/cjs/store/rootReducer.d.ts +3 -0
- package/dist/cjs/store/slices/accountsSlice.d.ts +41 -0
- package/dist/cjs/store/slices/accountsSlice.js +71 -0
- package/dist/cjs/store/slices/accountsSlice.js.map +1 -0
- package/dist/cjs/store/slices/authThunks.d.ts +3 -0
- package/dist/cjs/store/slices/authThunks.js +102 -28
- package/dist/cjs/store/slices/authThunks.js.map +1 -1
- package/dist/esm/config/axios.js +0 -1
- package/dist/esm/config/axios.js.map +1 -1
- package/dist/esm/config/useAxiosPrivate.js +16 -10
- package/dist/esm/config/useAxiosPrivate.js.map +1 -1
- package/dist/esm/context/replyke-integration-context.js +18 -3
- package/dist/esm/context/replyke-integration-context.js.map +1 -1
- package/dist/esm/context/replyke-store-context.js +19 -8
- package/dist/esm/context/replyke-store-context.js.map +1 -1
- package/dist/esm/hooks/auth/index.d.ts +6 -0
- package/dist/esm/hooks/auth/index.js +6 -0
- package/dist/esm/hooks/auth/index.js.map +1 -1
- package/dist/esm/hooks/auth/useAccountSync.d.ts +2 -0
- package/dist/esm/hooks/auth/useAccountSync.js +162 -0
- package/dist/esm/hooks/auth/useAccountSync.js.map +1 -0
- package/dist/esm/hooks/auth/useAccounts.d.ts +7 -0
- package/dist/esm/hooks/auth/useAccounts.js +20 -0
- package/dist/esm/hooks/auth/useAccounts.js.map +1 -0
- package/dist/esm/hooks/auth/useAddAccount.d.ts +5 -0
- package/dist/esm/hooks/auth/useAddAccount.js +24 -0
- package/dist/esm/hooks/auth/useAddAccount.js.map +1 -0
- package/dist/esm/hooks/auth/useAuth.d.ts +1 -1
- package/dist/esm/hooks/auth/useRemoveAccount.d.ts +6 -0
- package/dist/esm/hooks/auth/useRemoveAccount.js +122 -0
- package/dist/esm/hooks/auth/useRemoveAccount.js.map +1 -0
- package/dist/esm/hooks/auth/useSignOutAll.d.ts +4 -0
- package/dist/esm/hooks/auth/useSignOutAll.js +65 -0
- package/dist/esm/hooks/auth/useSignOutAll.js.map +1 -0
- package/dist/esm/hooks/auth/useSwitchAccount.d.ts +6 -0
- package/dist/esm/hooks/auth/useSwitchAccount.js +97 -0
- package/dist/esm/hooks/auth/useSwitchAccount.js.map +1 -0
- package/dist/esm/hooks/collections/useCollections.js +0 -1
- package/dist/esm/hooks/collections/useCollections.js.map +1 -1
- package/dist/esm/hooks/collections/useIsEntitySaved.js +0 -1
- package/dist/esm/hooks/collections/useIsEntitySaved.js.map +1 -1
- package/dist/esm/hooks/entities/useCreateEntity.js +1 -2
- package/dist/esm/hooks/entities/useCreateEntity.js.map +1 -1
- package/dist/esm/hooks/entities/useDeleteEntity.js +1 -3
- package/dist/esm/hooks/entities/useDeleteEntity.js.map +1 -1
- package/dist/esm/hooks/entities/useFetchDrafts.d.ts +2 -0
- package/dist/esm/hooks/entities/useFetchDrafts.js +4 -0
- package/dist/esm/hooks/entities/useFetchDrafts.js.map +1 -1
- package/dist/esm/hooks/entities/usePublishDraft.js +1 -1
- package/dist/esm/hooks/entities/usePublishDraft.js.map +1 -1
- package/dist/esm/hooks/entities/useUpdateEntity.js +1 -1
- package/dist/esm/hooks/entities/useUpdateEntity.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useAcceptConnection.js +1 -1
- package/dist/esm/hooks/relationships/connections/useAcceptConnection.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useDeclineConnection.js +1 -1
- package/dist/esm/hooks/relationships/connections/useDeclineConnection.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnectionStatus.js +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnectionStatus.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnections.js +0 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnections.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnectionsCount.js +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchConnectionsCount.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchReceivedPendingConnections.js +0 -1
- package/dist/esm/hooks/relationships/connections/useFetchReceivedPendingConnections.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useFetchSentPendingConnections.js +0 -1
- package/dist/esm/hooks/relationships/connections/useFetchSentPendingConnections.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useRemoveConnection.js +1 -1
- package/dist/esm/hooks/relationships/connections/useRemoveConnection.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useRemoveConnectionByUserId.js +1 -1
- package/dist/esm/hooks/relationships/connections/useRemoveConnectionByUserId.js.map +1 -1
- package/dist/esm/hooks/relationships/connections/useRequestConnection.js +1 -1
- package/dist/esm/hooks/relationships/connections/useRequestConnection.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowStatus.js +1 -3
- package/dist/esm/hooks/relationships/follows/useFetchFollowStatus.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowers.js +0 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowers.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowersCount.js +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowersCount.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowing.js +0 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowing.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowingCount.js +1 -1
- package/dist/esm/hooks/relationships/follows/useFetchFollowingCount.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useFollowUser.js +1 -1
- package/dist/esm/hooks/relationships/follows/useFollowUser.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useUnfollowByFollowId.js +1 -3
- package/dist/esm/hooks/relationships/follows/useUnfollowByFollowId.js.map +1 -1
- package/dist/esm/hooks/relationships/follows/useUnfollowUserByUserId.js +1 -3
- package/dist/esm/hooks/relationships/follows/useUnfollowUserByUserId.js.map +1 -1
- package/dist/esm/hooks/reports/useCreateReport.js +1 -1
- package/dist/esm/hooks/reports/useCreateReport.js.map +1 -1
- package/dist/esm/hooks/storage/useUploadFile.js +0 -1
- package/dist/esm/hooks/storage/useUploadFile.js.map +1 -1
- package/dist/esm/hooks/storage/useUploadImage.js +0 -1
- package/dist/esm/hooks/storage/useUploadImage.js.map +1 -1
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/IAccountStorage.d.ts +6 -0
- package/dist/esm/interfaces/IAccountStorage.js +2 -0
- package/dist/esm/interfaces/IAccountStorage.js.map +1 -0
- package/dist/esm/store/api/baseApi.js +0 -1
- package/dist/esm/store/api/baseApi.js.map +1 -1
- package/dist/esm/store/hooks.d.ts +1 -0
- package/dist/esm/store/index.d.ts +2 -0
- package/dist/esm/store/replykeReducers.d.ts +2 -0
- package/dist/esm/store/replykeReducers.js +2 -0
- package/dist/esm/store/replykeReducers.js.map +1 -1
- package/dist/esm/store/rootReducer.d.ts +3 -0
- package/dist/esm/store/slices/accountsSlice.d.ts +41 -0
- package/dist/esm/store/slices/accountsSlice.js +64 -0
- package/dist/esm/store/slices/accountsSlice.js.map +1 -0
- package/dist/esm/store/slices/authThunks.d.ts +3 -0
- package/dist/esm/store/slices/authThunks.js +101 -27
- package/dist/esm/store/slices/authThunks.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
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);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useEffect, useRef } from "react";
|
|
38
|
+
import { useReplykeDispatch, useReplykeSelector } from "../../store/hooks";
|
|
39
|
+
import { setAccountMap, upsertAccount, setActiveAccount, setAccountsReady, registerAccountManager, selectAccounts, selectActiveAccountId, selectAccountsReady, } from "../../store/slices/accountsSlice";
|
|
40
|
+
import { selectRefreshToken, setRefreshToken } from "../../store/slices/authSlice";
|
|
41
|
+
import { selectUser } from "../../store/slices/userSlice";
|
|
42
|
+
import { handleError } from "../../utils/handleError";
|
|
43
|
+
function base64UrlDecode(str) {
|
|
44
|
+
// Convert base64url to standard base64
|
|
45
|
+
var base64 = str.replace(/-/g, "+").replace(/_/g, "/");
|
|
46
|
+
if (typeof atob === "function")
|
|
47
|
+
return atob(base64);
|
|
48
|
+
// Fallback for React Native (Buffer available via Node.js polyfill or hermes)
|
|
49
|
+
if (typeof Buffer === "function")
|
|
50
|
+
return Buffer.from(base64, "base64").toString("utf-8");
|
|
51
|
+
return "";
|
|
52
|
+
}
|
|
53
|
+
function extractExpFromJwt(jwt) {
|
|
54
|
+
var _a;
|
|
55
|
+
try {
|
|
56
|
+
var payload = JSON.parse(base64UrlDecode(jwt.split(".")[1]));
|
|
57
|
+
return ((_a = payload.exp) !== null && _a !== void 0 ? _a : 0) * 1000;
|
|
58
|
+
}
|
|
59
|
+
catch (_b) {
|
|
60
|
+
return 0;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export default function useAccountSync(storage, projectId) {
|
|
64
|
+
var _this = this;
|
|
65
|
+
var dispatch = useReplykeDispatch();
|
|
66
|
+
var refreshToken = useReplykeSelector(selectRefreshToken);
|
|
67
|
+
var user = useReplykeSelector(selectUser); // from userSlice (canonical)
|
|
68
|
+
var accounts = useReplykeSelector(selectAccounts);
|
|
69
|
+
var activeAccountId = useReplykeSelector(selectActiveAccountId);
|
|
70
|
+
var isReady = useReplykeSelector(selectAccountsReady);
|
|
71
|
+
var isInitialLoadRef = useRef(true);
|
|
72
|
+
// Phase A: Mount — register + load from storage
|
|
73
|
+
useEffect(function () {
|
|
74
|
+
dispatch(registerAccountManager());
|
|
75
|
+
var loadAccounts = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
76
|
+
var map, error_1;
|
|
77
|
+
return __generator(this, function (_a) {
|
|
78
|
+
switch (_a.label) {
|
|
79
|
+
case 0:
|
|
80
|
+
_a.trys.push([0, 2, 3, 4]);
|
|
81
|
+
return [4 /*yield*/, storage.getAccountMap(projectId)];
|
|
82
|
+
case 1:
|
|
83
|
+
map = _a.sent();
|
|
84
|
+
if (map) {
|
|
85
|
+
dispatch(setAccountMap(map));
|
|
86
|
+
if (map.activeAccountId && map.accounts[map.activeAccountId]) {
|
|
87
|
+
dispatch(setRefreshToken(map.accounts[map.activeAccountId].refreshToken));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return [3 /*break*/, 4];
|
|
91
|
+
case 2:
|
|
92
|
+
error_1 = _a.sent();
|
|
93
|
+
handleError(error_1, "Failed to load account map from storage");
|
|
94
|
+
return [3 /*break*/, 4];
|
|
95
|
+
case 3:
|
|
96
|
+
dispatch(setAccountsReady(true));
|
|
97
|
+
return [7 /*endfinally*/];
|
|
98
|
+
case 4: return [2 /*return*/];
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}); };
|
|
102
|
+
loadAccounts();
|
|
103
|
+
}, []); // projectId is stable for lifetime of ReplykeProvider
|
|
104
|
+
// Phase B: Watch refreshToken + user — upsert account entries
|
|
105
|
+
useEffect(function () {
|
|
106
|
+
var _a, _b, _c;
|
|
107
|
+
if (!isReady || !refreshToken || !(user === null || user === void 0 ? void 0 : user.id))
|
|
108
|
+
return;
|
|
109
|
+
var summary = {
|
|
110
|
+
id: user.id,
|
|
111
|
+
name: (_a = user.name) !== null && _a !== void 0 ? _a : null,
|
|
112
|
+
email: (_b = user.email) !== null && _b !== void 0 ? _b : null,
|
|
113
|
+
avatar: (_c = user.avatar) !== null && _c !== void 0 ? _c : null,
|
|
114
|
+
};
|
|
115
|
+
var entry = {
|
|
116
|
+
refreshToken: refreshToken,
|
|
117
|
+
tokenExpiresAt: extractExpFromJwt(refreshToken),
|
|
118
|
+
user: summary,
|
|
119
|
+
};
|
|
120
|
+
dispatch(upsertAccount({ userId: user.id, entry: entry }));
|
|
121
|
+
if (user.id !== activeAccountId) {
|
|
122
|
+
dispatch(setActiveAccount(user.id));
|
|
123
|
+
}
|
|
124
|
+
}, [refreshToken, user, isReady]);
|
|
125
|
+
// Phase C: Persist map on changes
|
|
126
|
+
useEffect(function () {
|
|
127
|
+
if (!isReady)
|
|
128
|
+
return;
|
|
129
|
+
// Skip persisting the initial load (that data came FROM storage)
|
|
130
|
+
if (isInitialLoadRef.current) {
|
|
131
|
+
isInitialLoadRef.current = false;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
var map = { activeAccountId: activeAccountId, accounts: accounts };
|
|
135
|
+
storage.setAccountMap(projectId, map).catch(function (error) {
|
|
136
|
+
handleError(error, "Failed to persist account map");
|
|
137
|
+
});
|
|
138
|
+
}, [accounts, activeAccountId, isReady]);
|
|
139
|
+
// Phase D: Cross-tab sync (web only)
|
|
140
|
+
useEffect(function () {
|
|
141
|
+
if (typeof window === "undefined")
|
|
142
|
+
return;
|
|
143
|
+
var storageKey = "replyke-accounts:".concat(projectId);
|
|
144
|
+
var handleStorageEvent = function (event) {
|
|
145
|
+
if (event.key !== storageKey || !event.newValue)
|
|
146
|
+
return;
|
|
147
|
+
try {
|
|
148
|
+
var map = JSON.parse(event.newValue);
|
|
149
|
+
dispatch(setAccountMap(map));
|
|
150
|
+
if (map.activeAccountId && map.accounts[map.activeAccountId]) {
|
|
151
|
+
dispatch(setRefreshToken(map.accounts[map.activeAccountId].refreshToken));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
handleError(error, "Failed to sync account map from storage event");
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
window.addEventListener("storage", handleStorageEvent);
|
|
159
|
+
return function () { return window.removeEventListener("storage", handleStorageEvent); };
|
|
160
|
+
}, [projectId, dispatch]);
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=useAccountSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAccountSync.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useAccountSync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type AccountSummary } from "../../store/slices/accountsSlice";
|
|
2
|
+
export interface UseAccountsReturn {
|
|
3
|
+
accounts: AccountSummary[];
|
|
4
|
+
activeAccount: AccountSummary | null;
|
|
5
|
+
accountCount: number;
|
|
6
|
+
}
|
|
7
|
+
export default function useAccounts(): UseAccountsReturn;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useReplykeSelector } from "../../store/hooks";
|
|
3
|
+
import { selectAccounts, selectActiveAccountId, } from "../../store/slices/accountsSlice";
|
|
4
|
+
export default function useAccounts() {
|
|
5
|
+
var accountsMap = useReplykeSelector(selectAccounts);
|
|
6
|
+
var activeAccountId = useReplykeSelector(selectActiveAccountId);
|
|
7
|
+
return useMemo(function () {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
var accountSummaries = Object.values(accountsMap).map(function (entry) { return entry.user; });
|
|
10
|
+
var activeAccount = activeAccountId
|
|
11
|
+
? (_b = (_a = accountsMap[activeAccountId]) === null || _a === void 0 ? void 0 : _a.user) !== null && _b !== void 0 ? _b : null
|
|
12
|
+
: null;
|
|
13
|
+
return {
|
|
14
|
+
accounts: accountSummaries,
|
|
15
|
+
activeAccount: activeAccount,
|
|
16
|
+
accountCount: accountSummaries.length,
|
|
17
|
+
};
|
|
18
|
+
}, [accountsMap, activeAccountId]);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=useAccounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAccounts.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,cAAc,EACd,qBAAqB,GAEtB,MAAM,kCAAkC,CAAC;AAQ1C,MAAM,CAAC,OAAO,UAAU,WAAW;IACjC,IAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACvD,IAAM,eAAe,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAElE,OAAO,OAAO,CAAC;;QACb,IAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CACrD,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,IAAI,EAAV,CAAU,CACtB,CAAC;QACF,IAAM,aAAa,GAAG,eAAe;YACnC,CAAC,CAAC,MAAA,MAAA,WAAW,CAAC,eAAe,CAAC,0CAAE,IAAI,mCAAI,IAAI;YAC5C,CAAC,CAAC,IAAI,CAAC;QAET,OAAO;YACL,QAAQ,EAAE,gBAAgB;YAC1B,aAAa,eAAA;YACb,YAAY,EAAE,gBAAgB,CAAC,MAAM;SACtC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useReplykeDispatch, useReplykeSelector } from "../../store/hooks";
|
|
3
|
+
import { resetAuth } from "../../store/slices/authSlice";
|
|
4
|
+
import { clearUser } from "../../store/slices/userSlice";
|
|
5
|
+
import { setActiveAccount, selectAccounts, MAX_ACCOUNTS, } from "../../store/slices/accountsSlice";
|
|
6
|
+
import { baseApi } from "../../store/api/baseApi";
|
|
7
|
+
export default function useAddAccount() {
|
|
8
|
+
var dispatch = useReplykeDispatch();
|
|
9
|
+
var accounts = useReplykeSelector(selectAccounts);
|
|
10
|
+
var canAddAccount = Object.keys(accounts).length < MAX_ACCOUNTS;
|
|
11
|
+
var addAccount = useCallback(function () {
|
|
12
|
+
if (!canAddAccount)
|
|
13
|
+
return;
|
|
14
|
+
// Clear active auth state so the sign-in UI appears.
|
|
15
|
+
// Existing accounts remain safely in the accounts map.
|
|
16
|
+
// After the user signs in, useAccountSync auto-upserts the new account.
|
|
17
|
+
dispatch(resetAuth());
|
|
18
|
+
dispatch(clearUser());
|
|
19
|
+
dispatch(setActiveAccount(null));
|
|
20
|
+
dispatch(baseApi.util.resetApiState());
|
|
21
|
+
}, [dispatch, canAddAccount]);
|
|
22
|
+
return { addAccount: addAccount, canAddAccount: canAddAccount };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=useAddAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAddAccount.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useAddAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOlD,MAAM,CAAC,OAAO,UAAU,aAAa;IACnC,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,IAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;IAElE,IAAM,UAAU,GAAG,WAAW,CAAC;QAC7B,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,qDAAqD;QACrD,uDAAuD;QACvD,wEAAwE;QACxE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACtB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QACtB,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAE,UAAU,YAAA,EAAE,aAAa,eAAA,EAAE,CAAC;AACvC,CAAC"}
|
|
@@ -34,6 +34,6 @@ export interface UseAuthValues {
|
|
|
34
34
|
signInWithEmailAndPassword: (props: SignInWithEmailAndPasswordProps) => Promise<void>;
|
|
35
35
|
signOut: () => Promise<void>;
|
|
36
36
|
changePassword: (props: ChangePasswordProps) => Promise<void>;
|
|
37
|
-
requestNewAccessToken: () => Promise<
|
|
37
|
+
requestNewAccessToken: () => Promise<string | undefined>;
|
|
38
38
|
}
|
|
39
39
|
export default function useAuth(): UseAuthValues;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
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);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback, useState } from "react";
|
|
38
|
+
import { useReplykeDispatch, useReplykeSelector } from "../../store/hooks";
|
|
39
|
+
import { selectAccounts, selectActiveAccountId, removeAccount as removeAccountAction, } from "../../store/slices/accountsSlice";
|
|
40
|
+
import { resetAuth, setTokens, setInitialized } from "../../store/slices/authSlice";
|
|
41
|
+
import { clearUser } from "../../store/slices/userSlice";
|
|
42
|
+
import { requestNewAccessTokenThunk } from "../../store/slices/authThunks";
|
|
43
|
+
import { baseApi } from "../../store/api/baseApi";
|
|
44
|
+
import useProject from "../projects/useProject";
|
|
45
|
+
import axios from "../../config/axios";
|
|
46
|
+
import { handleError } from "../../utils/handleError";
|
|
47
|
+
export default function useRemoveAccount() {
|
|
48
|
+
var _this = this;
|
|
49
|
+
var dispatch = useReplykeDispatch();
|
|
50
|
+
var projectId = useProject().projectId;
|
|
51
|
+
var accounts = useReplykeSelector(selectAccounts);
|
|
52
|
+
var activeAccountId = useReplykeSelector(selectActiveAccountId);
|
|
53
|
+
var _a = useState(false), isRemoving = _a[0], setIsRemoving = _a[1];
|
|
54
|
+
var _b = useState(null), error = _b[0], setError = _b[1];
|
|
55
|
+
var removeAccount = useCallback(function (userId) { return __awaiter(_this, void 0, void 0, function () {
|
|
56
|
+
var targetAccount, isActiveAccount, signOutError_1, remainingIds, nextId, nextAccount, err_1;
|
|
57
|
+
return __generator(this, function (_a) {
|
|
58
|
+
switch (_a.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
if (!projectId)
|
|
61
|
+
throw new Error("No projectId available");
|
|
62
|
+
targetAccount = accounts[userId];
|
|
63
|
+
if (!targetAccount)
|
|
64
|
+
throw new Error("Account ".concat(userId, " not found"));
|
|
65
|
+
setIsRemoving(true);
|
|
66
|
+
setError(null);
|
|
67
|
+
isActiveAccount = userId === activeAccountId;
|
|
68
|
+
_a.label = 1;
|
|
69
|
+
case 1:
|
|
70
|
+
_a.trys.push([1, 9, 10, 11]);
|
|
71
|
+
_a.label = 2;
|
|
72
|
+
case 2:
|
|
73
|
+
_a.trys.push([2, 4, , 5]);
|
|
74
|
+
return [4 /*yield*/, axios.post("/".concat(projectId, "/auth/sign-out"), { refreshToken: targetAccount.refreshToken })];
|
|
75
|
+
case 3:
|
|
76
|
+
_a.sent();
|
|
77
|
+
return [3 /*break*/, 5];
|
|
78
|
+
case 4:
|
|
79
|
+
signOutError_1 = _a.sent();
|
|
80
|
+
handleError(signOutError_1, "Server sign-out failed during account removal");
|
|
81
|
+
return [3 /*break*/, 5];
|
|
82
|
+
case 5:
|
|
83
|
+
// Remove from accounts map
|
|
84
|
+
dispatch(removeAccountAction(userId));
|
|
85
|
+
if (!isActiveAccount) return [3 /*break*/, 8];
|
|
86
|
+
remainingIds = Object.keys(accounts).filter(function (id) { return id !== userId; });
|
|
87
|
+
if (!(remainingIds.length > 0)) return [3 /*break*/, 7];
|
|
88
|
+
nextId = remainingIds[0];
|
|
89
|
+
nextAccount = accounts[nextId];
|
|
90
|
+
dispatch(resetAuth());
|
|
91
|
+
dispatch(clearUser());
|
|
92
|
+
dispatch(baseApi.util.resetApiState());
|
|
93
|
+
dispatch(setTokens({
|
|
94
|
+
accessToken: null,
|
|
95
|
+
refreshToken: nextAccount.refreshToken,
|
|
96
|
+
}));
|
|
97
|
+
dispatch(setInitialized(false));
|
|
98
|
+
return [4 /*yield*/, dispatch(requestNewAccessTokenThunk({ projectId: projectId }))];
|
|
99
|
+
case 6:
|
|
100
|
+
_a.sent();
|
|
101
|
+
dispatch(setInitialized(true));
|
|
102
|
+
return [3 /*break*/, 8];
|
|
103
|
+
case 7:
|
|
104
|
+
dispatch(resetAuth());
|
|
105
|
+
dispatch(clearUser());
|
|
106
|
+
dispatch(baseApi.util.resetApiState());
|
|
107
|
+
_a.label = 8;
|
|
108
|
+
case 8: return [3 /*break*/, 11];
|
|
109
|
+
case 9:
|
|
110
|
+
err_1 = _a.sent();
|
|
111
|
+
setError(err_1 instanceof Error ? err_1.message : "Failed to remove account");
|
|
112
|
+
return [3 /*break*/, 11];
|
|
113
|
+
case 10:
|
|
114
|
+
setIsRemoving(false);
|
|
115
|
+
return [7 /*endfinally*/];
|
|
116
|
+
case 11: return [2 /*return*/];
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}); }, [dispatch, projectId, accounts, activeAccountId]);
|
|
120
|
+
return { removeAccount: removeAccount, isRemoving: isRemoving, error: error };
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=useRemoveAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRemoveAccount.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useRemoveAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
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);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback } from "react";
|
|
38
|
+
import { useReplykeDispatch } from "../../store/hooks";
|
|
39
|
+
import { signOutAllThunk } from "../../store/slices/authThunks";
|
|
40
|
+
import useProject from "../projects/useProject";
|
|
41
|
+
export default function useSignOutAll() {
|
|
42
|
+
var _this = this;
|
|
43
|
+
var dispatch = useReplykeDispatch();
|
|
44
|
+
var projectId = useProject().projectId;
|
|
45
|
+
var signOutAll = useCallback(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
46
|
+
var result;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
if (!projectId) {
|
|
51
|
+
throw new Error("No projectId available.");
|
|
52
|
+
}
|
|
53
|
+
return [4 /*yield*/, dispatch(signOutAllThunk({ projectId: projectId }))];
|
|
54
|
+
case 1:
|
|
55
|
+
result = _a.sent();
|
|
56
|
+
if (signOutAllThunk.rejected.match(result)) {
|
|
57
|
+
throw new Error(result.payload);
|
|
58
|
+
}
|
|
59
|
+
return [2 /*return*/];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}); }, [dispatch, projectId]);
|
|
63
|
+
return { signOutAll: signOutAll };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=useSignOutAll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSignOutAll.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useSignOutAll.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAMhD,MAAM,CAAC,OAAO,UAAU,aAAa;IAArC,iBAiBC;IAhBC,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAC9B,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAEnC,IAAM,UAAU,GAAG,WAAW,CAAC;;;;;oBAC7B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;oBAC7C,CAAC;oBAEc,qBAAM,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC,EAAA;;oBAAvD,MAAM,GAAG,SAA8C;oBAE7D,IAAI,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAiB,CAAC,CAAC;oBAC5C,CAAC;;;;SACF,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1B,OAAO,EAAE,UAAU,YAAA,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
+
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);
|
|
12
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
+
function step(op) {
|
|
15
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
+
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;
|
|
18
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
+
switch (op[0]) {
|
|
20
|
+
case 0: case 1: t = op; break;
|
|
21
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
+
default:
|
|
25
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
+
if (t[2]) _.ops.pop();
|
|
30
|
+
_.trys.pop(); continue;
|
|
31
|
+
}
|
|
32
|
+
op = body.call(thisArg, _);
|
|
33
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
import { useCallback, useState } from "react";
|
|
38
|
+
import { useReplykeDispatch, useReplykeSelector } from "../../store/hooks";
|
|
39
|
+
import { selectAccounts, selectActiveAccountId, setActiveAccount, } from "../../store/slices/accountsSlice";
|
|
40
|
+
import { setTokens, resetAuth, setInitialized } from "../../store/slices/authSlice";
|
|
41
|
+
import { clearUser } from "../../store/slices/userSlice";
|
|
42
|
+
import { requestNewAccessTokenThunk } from "../../store/slices/authThunks";
|
|
43
|
+
import { baseApi } from "../../store/api/baseApi";
|
|
44
|
+
import useProject from "../projects/useProject";
|
|
45
|
+
export default function useSwitchAccount() {
|
|
46
|
+
var _this = this;
|
|
47
|
+
var dispatch = useReplykeDispatch();
|
|
48
|
+
var projectId = useProject().projectId;
|
|
49
|
+
var accounts = useReplykeSelector(selectAccounts);
|
|
50
|
+
var activeAccountId = useReplykeSelector(selectActiveAccountId);
|
|
51
|
+
var _a = useState(false), isSwitching = _a[0], setIsSwitching = _a[1];
|
|
52
|
+
var _b = useState(null), error = _b[0], setError = _b[1];
|
|
53
|
+
var switchAccount = useCallback(function (userId) { return __awaiter(_this, void 0, void 0, function () {
|
|
54
|
+
var err_1;
|
|
55
|
+
return __generator(this, function (_a) {
|
|
56
|
+
switch (_a.label) {
|
|
57
|
+
case 0:
|
|
58
|
+
if (!projectId)
|
|
59
|
+
throw new Error("No projectId available");
|
|
60
|
+
if (userId === activeAccountId)
|
|
61
|
+
return [2 /*return*/];
|
|
62
|
+
if (!accounts[userId])
|
|
63
|
+
throw new Error("Account ".concat(userId, " not found"));
|
|
64
|
+
setIsSwitching(true);
|
|
65
|
+
setError(null);
|
|
66
|
+
_a.label = 1;
|
|
67
|
+
case 1:
|
|
68
|
+
_a.trys.push([1, 3, 4, 5]);
|
|
69
|
+
dispatch(resetAuth());
|
|
70
|
+
dispatch(clearUser());
|
|
71
|
+
dispatch(baseApi.util.resetApiState());
|
|
72
|
+
dispatch(setActiveAccount(userId));
|
|
73
|
+
dispatch(setTokens({
|
|
74
|
+
accessToken: null,
|
|
75
|
+
refreshToken: accounts[userId].refreshToken,
|
|
76
|
+
}));
|
|
77
|
+
dispatch(setInitialized(false));
|
|
78
|
+
return [4 /*yield*/, dispatch(requestNewAccessTokenThunk({ projectId: projectId }))];
|
|
79
|
+
case 2:
|
|
80
|
+
_a.sent();
|
|
81
|
+
dispatch(setInitialized(true));
|
|
82
|
+
return [3 /*break*/, 5];
|
|
83
|
+
case 3:
|
|
84
|
+
err_1 = _a.sent();
|
|
85
|
+
setError(err_1 instanceof Error ? err_1.message : "Failed to switch account");
|
|
86
|
+
dispatch(setInitialized(true));
|
|
87
|
+
return [3 /*break*/, 5];
|
|
88
|
+
case 4:
|
|
89
|
+
setIsSwitching(false);
|
|
90
|
+
return [7 /*endfinally*/];
|
|
91
|
+
case 5: return [2 /*return*/];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}); }, [dispatch, projectId, accounts, activeAccountId]);
|
|
95
|
+
return { switchAccount: switchAccount, isSwitching: isSwitching, error: error };
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=useSwitchAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSwitchAccount.js","sourceRoot":"","sources":["../../../../src/hooks/auth/useSwitchAccount.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAQhD,MAAM,CAAC,OAAO,UAAU,gBAAgB;IAAxC,iBA8CC;IA7CC,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAC9B,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,IAAM,eAAe,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;IAC5D,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IAChD,IAAA,KAAoB,QAAQ,CAAgB,IAAI,CAAC,EAAhD,KAAK,QAAA,EAAE,QAAQ,QAAiC,CAAC;IAExD,IAAM,aAAa,GAAG,WAAW,CAC/B,UAAO,MAAc;;;;;oBACnB,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAC1D,IAAI,MAAM,KAAK,eAAe;wBAAE,sBAAO;oBACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,kBAAW,MAAM,eAAY,CAAC,CAAC;oBAEtE,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;oBAGb,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;oBACtB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;oBACtB,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBACvC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;oBACnC,QAAQ,CACN,SAAS,CAAC;wBACR,WAAW,EAAE,IAAI;wBACjB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,YAAY;qBAC5C,CAAC,CACH,CAAC;oBACF,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;oBAEhC,qBAAM,QAAQ,CAAC,0BAA0B,CAAC,EAAE,SAAS,WAAA,EAAE,CAAC,CAAC,EAAA;;oBAAzD,SAAyD,CAAC;oBAE1D,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;;;;oBAE/B,QAAQ,CACN,KAAG,YAAY,KAAK,CAAC,CAAC,CAAC,KAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAChE,CAAC;oBACF,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;;;oBAE/B,cAAc,CAAC,KAAK,CAAC,CAAC;;;;;SAEzB,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CACjD,CAAC;IAEF,OAAO,EAAE,aAAa,eAAA,EAAE,WAAW,aAAA,EAAE,KAAK,OAAA,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -102,7 +102,6 @@ function useCollections(_) {
|
|
|
102
102
|
_a.trys.push([1, 3, , 4]);
|
|
103
103
|
return [4 /*yield*/, axios.get("/".concat(projectId, "/collections/is-entity-saved"), {
|
|
104
104
|
params: { entityId: selectedEntityId },
|
|
105
|
-
withCredentials: true,
|
|
106
105
|
})];
|
|
107
106
|
case 2:
|
|
108
107
|
response = _a.sent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCollections.js","sourceRoot":"","sources":["../../../../src/hooks/collections/useCollections.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAmD3D;;;GAGG;AACH,SAAS,cAAc,CAAC,CAA2B;IAAnD,
|
|
1
|
+
{"version":3,"file":"useCollections.js","sourceRoot":"","sources":["../../../../src/hooks/collections/useCollections.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAmD3D;;;GAGG;AACH,SAAS,cAAc,CAAC,CAA2B;IAAnD,iBA2NC;IA3NuB,kBAAA,EAAA,MAA2B;IACjD,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,uBAAuB;IACf,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IAC3B,IAAA,IAAI,GAAK,OAAO,EAAE,KAAd,CAAe;IAE3B,kBAAkB;IAClB,IAAM,iBAAiB,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACtE,IAAM,cAAc,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;IAChE,IAAM,OAAO,GAAG,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IAC7D,IAAM,iBAAiB,GAAG,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;IACtE,IAAM,eAAe,GAAG,kBAAkB,CACxC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,EAAzC,CAAyC,CACrD,CAAC;IACF,IAAM,gBAAgB,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAEpE,cAAc;IACR,IAAA,KAWF,qBAAqB,EAAE,EAVzB,cAAc,oBAAA,EACd,MAAM,YAAA,EACN,QAAQ,cAAA,EACR,mBAAmB,yBAAA,EACnB,mBAAmB,yBAAA,EACD,sBAAsB,sBAAA,EACtB,sBAAsB,sBAAA,EACtB,sBAAsB,sBAAA,EACvB,qBAAqB,qBAAA,EAChB,0BAA0B,0BACvB,CAAC;IAE5B,0CAA0C;IAC1C,SAAS,CAAC;QACR,IAAI,SAAS,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;YAChD,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE5C,4DAA4D;IAC5D,SAAS,CAAC;QACR,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAEhC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3C,wDAAwD;IACxD,SAAS,CAAC;QACR,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAEtD,mEAAmE;QACnE,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;YAC1D,OAAO,CAAC,gEAAgE;QAC1E,CAAC;QAED,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEjF,yGAAyG;IACzG,IAAM,oBAAoB,GAAG,WAAW,CACtC,UAAO,gBAAwB,EAAE,YAAqB;;;;;oBACpD,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACpC,sBAAO;gCACL,KAAK,EAAE,KAAK;gCACZ,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gCACtD,WAAW,EAAE,EAAE;6BAChB,EAAC;oBACJ,CAAC;;;;oBAGkB,qBAAM,KAAK,CAAC,GAAG,CAG7B,WAAI,SAAS,iCAA8B,EAAE;4BAC9C,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE;yBACvC,CAAC,EAAA;;oBALI,QAAQ,GAAG,SAKf;oBAGI,oBAAoB,GAAG,YAAY;wBACvC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,EAAE,KAAK,YAAY,EAAvB,CAAuB,CAAC;wBAClE,CAAC,CAAC,SAAS,CAAC;oBAEd,sBAAO;4BACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;4BAC1B,oBAAoB,sBAAA;4BACpB,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW;yBACvC,EAAC;;;oBAEF,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAG,CAAC,CAAC;oBACjE,sBAAO;4BACL,KAAK,EAAE,KAAK;4BACZ,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;4BACtD,WAAW,EAAE,EAAE;yBAChB,EAAC;;;;SAEL,EACD,CAAC,SAAS,EAAE,KAAK,CAAC,CACnB,CAAC;IAEF,4DAA4D;IAC5D,IAAM,sBAAsB,GAAG,WAAW,CACxC,gEAAO,EAAyC;YAAvC,cAAc,oBAAA;;;;oBACrB,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;wBAC7C,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;wBACxC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,qBAAM,sBAAsB,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE,cAAc,CAAC,EAAA;;oBAA7E,SAA6E,CAAC;;;;SAC/E,EACD,CAAC,sBAAsB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CACvD,CAAC;IAEF,IAAM,sBAAsB,GAAG,WAAW,CACxC,gEAAO,EAA+C;YAA7C,YAAY,kBAAA,EAAE,MAAM,YAAA;;;;oBAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,qBAAM,sBAAsB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,EAAA;;oBAA7D,SAA6D,CAAC;;;;SAC/D,EACD,CAAC,sBAAsB,EAAE,SAAS,CAAC,CACpC,CAAC;IAEF,IAAM,sBAAsB,GAAG,WAAW,CACxC,gEAAO,EAAqC;YAAnC,UAAU,gBAAA;;;;oBACjB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,qBAAM,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAA;;oBAAnD,SAAmD,CAAC;;;;SACrD,EACD,CAAC,sBAAsB,EAAE,SAAS,CAAC,CACpC,CAAC;IAEF,IAAM,qBAAqB,GAAG,WAAW,CACvC,gEAAO,EAAkC;YAAhC,QAAQ,cAAA;;;;oBACf,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;wBACvC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;wBACxC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,qBAAM,qBAAqB,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAA;;oBAAtE,SAAsE,CAAC;;;;SACxE,EACD,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CACtD,CAAC;IAEF,IAAM,0BAA0B,GAAG,WAAW,CAC5C,gEAAO,EAAuC;YAArC,QAAQ,cAAA;;;;oBACf,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;wBACxC,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;wBACzC,sBAAO;oBACT,CAAC;oBAED,qBAAM,0BAA0B,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAA;;oBAA3E,SAA2E,CAAC;;;;SAC7E,EACD,CAAC,0BAA0B,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAC3D,CAAC;IAEF,iDAAiD;IACjD,OAAO,OAAO,CACZ,cAAM,OAAA,CAAC;QACL,iBAAiB,mBAAA;QACjB,cAAc,gBAAA;QACd,OAAO,SAAA;QAEP,cAAc,gBAAA;QACd,MAAM,QAAA;QACN,QAAQ,UAAA;QAER,oBAAoB,sBAAA;QAEpB,gBAAgB,EAAE,sBAAsB;QACxC,gBAAgB,EAAE,sBAAsB;QACxC,gBAAgB,EAAE,sBAAsB;QACxC,eAAe,EAAE,qBAAqB;QACtC,oBAAoB,EAAE,0BAA0B;KACjD,CAAC,EAhBI,CAgBJ,EACF;QACE,iBAAiB;QACjB,cAAc;QACd,OAAO;QACP,cAAc;QACd,MAAM;QACN,QAAQ;QACR,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,qBAAqB;QACrB,0BAA0B;KAC3B,CACF,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}
|