@techstuff-dev/foundation-api-utils 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,641 @@
1
+ 'use strict';
2
+
3
+ var react = require('@reduxjs/toolkit/query/react');
4
+ var jwtDecode = require('jwt-decode');
5
+ var toolkit = require('@reduxjs/toolkit');
6
+ var nextReduxWrapper = require('next-redux-wrapper');
7
+ var reactRedux = require('react-redux');
8
+ var react$1 = require('react');
9
+ var reduxPersist = require('redux-persist');
10
+ var createWebStorage = require('redux-persist/lib/storage/createWebStorage');
11
+
12
+ /******************************************************************************
13
+ Copyright (c) Microsoft Corporation.
14
+
15
+ Permission to use, copy, modify, and/or distribute this software for any
16
+ purpose with or without fee is hereby granted.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
19
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
21
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
22
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
23
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
24
+ PERFORMANCE OF THIS SOFTWARE.
25
+ ***************************************************************************** */
26
+ /* global Reflect, Promise, SuppressedError, Symbol */
27
+
28
+
29
+ var __assign = function() {
30
+ __assign = Object.assign || function __assign(t) {
31
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
32
+ s = arguments[i];
33
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
34
+ }
35
+ return t;
36
+ };
37
+ return __assign.apply(this, arguments);
38
+ };
39
+
40
+ function __awaiter(thisArg, _arguments, P, generator) {
41
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
+ return new (P || (P = Promise))(function (resolve, reject) {
43
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
44
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
45
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
46
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
47
+ });
48
+ }
49
+
50
+ function __generator(thisArg, body) {
51
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
52
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
53
+ function verb(n) { return function (v) { return step([n, v]); }; }
54
+ function step(op) {
55
+ if (f) throw new TypeError("Generator is already executing.");
56
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
57
+ 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;
58
+ if (y = 0, t) op = [op[0] & 2, t.value];
59
+ switch (op[0]) {
60
+ case 0: case 1: t = op; break;
61
+ case 4: _.label++; return { value: op[1], done: false };
62
+ case 5: _.label++; y = op[1]; op = [0]; continue;
63
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
64
+ default:
65
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
66
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
67
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
68
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
69
+ if (t[2]) _.ops.pop();
70
+ _.trys.pop(); continue;
71
+ }
72
+ op = body.call(thisArg, _);
73
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
74
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
75
+ }
76
+ }
77
+
78
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
79
+ var e = new Error(message);
80
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
81
+ };
82
+
83
+ var _a$1, _b$1;
84
+ var initialState = {
85
+ authenticated: false,
86
+ verifying: false,
87
+ user: {
88
+ details: {
89
+ userSub: '',
90
+ uuid: '',
91
+ subscriptionDetails: {
92
+ status: '',
93
+ },
94
+ firstName: '',
95
+ lastName: '',
96
+ userEmail: '',
97
+ termsAccepted: '',
98
+ contactPreference: false,
99
+ dateOfBirth: '',
100
+ },
101
+ accessToken: '',
102
+ idToken: '',
103
+ accessTokenExpiry: undefined,
104
+ refreshToken: '',
105
+ email: '',
106
+ },
107
+ creating: {
108
+ details: '',
109
+ payment: '',
110
+ },
111
+ loading: false,
112
+ error: false,
113
+ session: undefined,
114
+ };
115
+ var authSlice = toolkit.createSlice({
116
+ name: 'auth',
117
+ initialState: initialState,
118
+ reducers: {
119
+ setCredentials: function (state, data) {
120
+ return __assign(__assign({}, state), { session: data.payload.accessToken, authenticated: true, verifying: true, user: data.payload });
121
+ },
122
+ resetCreating: function (state) {
123
+ return __assign(__assign({}, state), { creating: {
124
+ details: '',
125
+ payment: '',
126
+ } });
127
+ },
128
+ logout: function () { return initialState; },
129
+ },
130
+ selectors: {
131
+ isAuthenticated: function (auth) { return auth.authenticated; },
132
+ selectAccessToken: function (auth) { return auth.user.accessToken; },
133
+ selectRefreshToken: function (auth) { return auth.user.refreshToken; },
134
+ selectCurrentUser: function (auth) { return auth.user.details; },
135
+ selectUserCreating: function (auth) { return auth.creating; },
136
+ selectUserCreatingDetails: function (auth) { return auth.creating.details; },
137
+ isVerifying: function (auth) { return auth.verifying; },
138
+ getUserSession: function (auth) { return (auth.authenticated ? auth.session : false); },
139
+ selectCurrentUserSub: function (auth) { return auth.user.details.uuid; },
140
+ selectCurrentUserRefreshToken: function (auth) { return auth.user.refreshToken; },
141
+ },
142
+ });
143
+ // Action creators are generated for each case reducer function.
144
+ var setCredentials = (_a$1 = authSlice.actions, _a$1.setCredentials), resetCreating = _a$1.resetCreating, logout = _a$1.logout;
145
+ // Selectors returned by `slice.selectors` take the root state as their first argument.
146
+ var isAuthenticated = (_b$1 = authSlice.selectors, _b$1.isAuthenticated); _b$1.selectAccessToken; _b$1.selectRefreshToken; _b$1.selectCurrentUser; _b$1.selectUserCreating; _b$1.selectUserCreatingDetails; _b$1.isVerifying; _b$1.getUserSession; _b$1.selectCurrentUserSub; _b$1.selectCurrentUserRefreshToken;
147
+ authSlice.reducer;
148
+
149
+ // TODO: typing.
150
+ var formatUserPayload = function (payload) {
151
+ var userEmail = payload.email, firstName = payload.given_name, lastName = payload.family_name, dateOfBirth = payload.birthdate, uuid = payload["cognito:username"], termsAccepted = payload["custom:termsAccepted"], subscriptionId = payload["custom:subscriptionId"], contactPreference = payload["custom:contactPreferences"], customerId = payload["custom:customerId"];
152
+ var parsedTermsAccepted = termsAccepted ? JSON.parse(termsAccepted) : null;
153
+ var parsedContactPreference = contactPreference ? JSON.parse(contactPreference) : null;
154
+ var data = {
155
+ userEmail: userEmail,
156
+ lastName: lastName,
157
+ firstName: firstName,
158
+ dateOfBirth: dateOfBirth,
159
+ /** Handles the auth micro service/Cognito serving boolean options as a string. */
160
+ termsAccepted: parsedTermsAccepted,
161
+ contactPreference: parsedContactPreference,
162
+ uuid: uuid,
163
+ subscription: subscriptionId || null,
164
+ customerId: customerId,
165
+ };
166
+ return data;
167
+ };
168
+ function formatPromos(data) {
169
+ return data.map(function (item) {
170
+ var _source = item._source;
171
+ return {
172
+ uuid: _source.uuid && _source.uuid[0],
173
+ id: _source.uuid && _source.uuid[0],
174
+ title: _source.title && _source.title[0],
175
+ video: _source.video && _source.video[0],
176
+ align: _source.align && _source.align[0],
177
+ section: _source.section && _source.section[0],
178
+ image: _source.image && _source.image[0],
179
+ imageFormatted: _source.image_formatted && _source.image_formatted[0],
180
+ backgroundImage: _source.background_image && _source.background_image[0],
181
+ backgroundVideo: _source.background_video && _source.background_video[0],
182
+ backgroundImageFormatted: _source.background_image_formatted &&
183
+ _source.background_image_formatted[0],
184
+ description: _source.description && _source.description[0],
185
+ created: _source.created && _source.created[0],
186
+ updated: _source.updated && _source.updated[0],
187
+ langcode: _source.langcode && _source.langcode[0],
188
+ weight: _source.weight && _source.weight[0],
189
+ authPanel: _source.auth_panel && _source.auth_panel[0],
190
+ buttonText: _source.button_text && _source.button_text[0],
191
+ link: _source.link && _source.link[0],
192
+ };
193
+ });
194
+ }
195
+
196
+ var authApi = react.createApi({
197
+ reducerPath: 'authApi',
198
+ baseQuery: react.fetchBaseQuery({
199
+ baseUrl: process.env.API_PREFIX,
200
+ prepareHeaders: function (headers) {
201
+ return headers;
202
+ },
203
+ credentials: 'include',
204
+ }),
205
+ tagTypes: ['UserToken'],
206
+ keepUnusedDataFor: 300,
207
+ endpoints: function (builder) { return ({
208
+ /**
209
+ * USER API.
210
+ */
211
+ login: builder.query({
212
+ query: function (data) { return ({
213
+ url: '/api/login',
214
+ method: 'POST',
215
+ body: {
216
+ email: data.email,
217
+ password: data.password,
218
+ },
219
+ }); },
220
+ onQueryStarted: function (arg_1, _a) {
221
+ return __awaiter(this, arguments, void 0, function (arg, _b) {
222
+ var response, decoded, profile, creds;
223
+ var _c, _d, _e, _f, _g;
224
+ var dispatch = _b.dispatch, queryFulfilled = _b.queryFulfilled;
225
+ return __generator(this, function (_h) {
226
+ switch (_h.label) {
227
+ case 0:
228
+ _h.trys.push([0, 2, , 3]);
229
+ return [4 /*yield*/, queryFulfilled];
230
+ case 1:
231
+ response = _h.sent();
232
+ decoded = jwtDecode.jwtDecode((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.idToken);
233
+ profile = formatUserPayload(decoded);
234
+ creds = {
235
+ accessToken: (_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.accessToken,
236
+ idToken: (_e = response === null || response === void 0 ? void 0 : response.data) === null || _e === void 0 ? void 0 : _e.idToken,
237
+ refreshToken: (_f = response === null || response === void 0 ? void 0 : response.data) === null || _f === void 0 ? void 0 : _f.refreshToken,
238
+ accessTokenExpiry: (_g = response === null || response === void 0 ? void 0 : response.data) === null || _g === void 0 ? void 0 : _g.accessTokenExpiry,
239
+ details: __assign({}, profile),
240
+ };
241
+ dispatch(setCredentials(creds));
242
+ return [3 /*break*/, 3];
243
+ case 2:
244
+ _h.sent();
245
+ // `onError` log out user.
246
+ dispatch(logout());
247
+ return [3 /*break*/, 3];
248
+ case 3: return [2 /*return*/];
249
+ }
250
+ });
251
+ });
252
+ },
253
+ providesTags: ['UserToken'],
254
+ }),
255
+ refreshToken: builder.query({
256
+ query: function (data) { return ({
257
+ url: '/api/user/refreshtoken',
258
+ method: 'POST',
259
+ body: {
260
+ sub: data.sub,
261
+ refreshtoken: data.refreshToken,
262
+ },
263
+ }); },
264
+ onQueryStarted: function (arg_1, _a) {
265
+ return __awaiter(this, arguments, void 0, function (arg, _b) {
266
+ var response, decoded, profile, creds;
267
+ var _c, _d, _e, _f, _g;
268
+ var dispatch = _b.dispatch, queryFulfilled = _b.queryFulfilled;
269
+ return __generator(this, function (_h) {
270
+ switch (_h.label) {
271
+ case 0:
272
+ _h.trys.push([0, 2, , 3]);
273
+ return [4 /*yield*/, queryFulfilled];
274
+ case 1:
275
+ response = _h.sent();
276
+ decoded = jwtDecode.jwtDecode((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.idToken);
277
+ profile = formatUserPayload(decoded);
278
+ creds = {
279
+ accessToken: (_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.accessToken,
280
+ idToken: (_e = response === null || response === void 0 ? void 0 : response.data) === null || _e === void 0 ? void 0 : _e.idToken,
281
+ refreshToken: (_f = response === null || response === void 0 ? void 0 : response.data) === null || _f === void 0 ? void 0 : _f.refreshToken,
282
+ accessTokenExpiry: (_g = response === null || response === void 0 ? void 0 : response.data) === null || _g === void 0 ? void 0 : _g.accessTokenExpiry,
283
+ details: __assign({}, profile),
284
+ };
285
+ dispatch(setCredentials(creds));
286
+ return [3 /*break*/, 3];
287
+ case 2:
288
+ _h.sent();
289
+ // `onError` log out user.
290
+ dispatch(logout());
291
+ return [3 /*break*/, 3];
292
+ case 3: return [2 /*return*/];
293
+ }
294
+ });
295
+ });
296
+ },
297
+ providesTags: ['UserToken'],
298
+ }),
299
+ resetPassword: builder.mutation({
300
+ query: function (data) { return ({
301
+ url: '/api/user/password/reset',
302
+ method: 'POST',
303
+ body: {
304
+ sub: data.sub,
305
+ code: data.code,
306
+ currentPassword: data.currentPassword,
307
+ newPassword: data.newPassword,
308
+ },
309
+ }); },
310
+ }),
311
+ resetPasswordAuth: builder.mutation({
312
+ query: function (data) { return ({
313
+ url: '/api/user/password/reset-auth',
314
+ method: 'POST',
315
+ body: {
316
+ email: data.email,
317
+ currentPassword: data.currentPassword,
318
+ newPassword: data.newPassword,
319
+ },
320
+ }); },
321
+ }),
322
+ forgottenPassword: builder.mutation({
323
+ query: function (data) { return ({
324
+ url: '/api/user/password/forgot',
325
+ method: 'POST',
326
+ body: {
327
+ email: data.email,
328
+ },
329
+ }); },
330
+ }),
331
+ logout: builder.query({
332
+ query: function (data) { return ({
333
+ url: '/api/logout',
334
+ method: 'POST',
335
+ }); },
336
+ onQueryStarted: function (arg_1, _a) {
337
+ return __awaiter(this, arguments, void 0, function (arg, _b) {
338
+ var dispatch = _b.dispatch, queryFulfilled = _b.queryFulfilled;
339
+ return __generator(this, function (_c) {
340
+ switch (_c.label) {
341
+ case 0:
342
+ _c.trys.push([0, 2, , 3]);
343
+ return [4 /*yield*/, queryFulfilled];
344
+ case 1:
345
+ _c.sent();
346
+ dispatch(logout());
347
+ return [3 /*break*/, 3];
348
+ case 2:
349
+ _c.sent();
350
+ // `onError` log out user.
351
+ dispatch(logout());
352
+ return [3 /*break*/, 3];
353
+ case 3: return [2 /*return*/];
354
+ }
355
+ });
356
+ });
357
+ },
358
+ }),
359
+ register: builder.mutation({
360
+ query: function (data) { return ({
361
+ url: '/api/user/register',
362
+ method: 'POST',
363
+ body: data,
364
+ }); },
365
+ onQueryStarted: function (arg_1, _a) {
366
+ return __awaiter(this, arguments, void 0, function (arg, _b) {
367
+ var err_4;
368
+ var dispatch = _b.dispatch, queryFulfilled = _b.queryFulfilled;
369
+ return __generator(this, function (_c) {
370
+ switch (_c.label) {
371
+ case 0:
372
+ _c.trys.push([0, 2, , 3]);
373
+ return [4 /*yield*/, queryFulfilled];
374
+ case 1:
375
+ _c.sent();
376
+ dispatch(resetCreating());
377
+ return [3 /*break*/, 3];
378
+ case 2:
379
+ err_4 = _c.sent();
380
+ console.error('REGISTER: ', err_4);
381
+ return [3 /*break*/, 3];
382
+ case 3: return [2 /*return*/];
383
+ }
384
+ });
385
+ });
386
+ },
387
+ }),
388
+ verifyUser: builder.query({
389
+ query: function (data) { return ({
390
+ url: '/api/user/verify',
391
+ method: 'POST',
392
+ body: data,
393
+ }); },
394
+ transformErrorResponse: function (rawResult) {
395
+ var status = rawResult.status, data = rawResult.data, message = rawResult.message;
396
+ switch (status) {
397
+ case 429:
398
+ // Toast.info(TOO_MANY_REQUESTS_MESSAGE);
399
+ break;
400
+ case 410:
401
+ /**
402
+ * Invalid code provided, please request a code again.
403
+ * Attempt limit exceeded, please try after some time.
404
+ */
405
+ return {
406
+ route: 'resend',
407
+ message: (data === null || data === void 0 ? void 0 : data.message) || message,
408
+ };
409
+ case 404:
410
+ /**
411
+ * Username/client id combination not found.
412
+ */
413
+ return {
414
+ route: 'failed',
415
+ message: (data === null || data === void 0 ? void 0 : data.message) || message,
416
+ };
417
+ case 401:
418
+ /**
419
+ * Access denied error.
420
+ */
421
+ return {
422
+ route: 'error',
423
+ message: (data === null || data === void 0 ? void 0 : data.message) || message,
424
+ };
425
+ default:
426
+ return {
427
+ route: 'error',
428
+ message: (data === null || data === void 0 ? void 0 : data.message) || message,
429
+ };
430
+ }
431
+ },
432
+ transformResponse: function (rawResult) {
433
+ var data = rawResult.data;
434
+ return { route: 'success', message: data === null || data === void 0 ? void 0 : data.message };
435
+ },
436
+ }),
437
+ verifyUserAttributes: builder.query({
438
+ query: function (data) { return ({
439
+ url: '/api/user/verify/email',
440
+ method: 'POST',
441
+ body: data,
442
+ }); },
443
+ }),
444
+ verifyUserResend: builder.query({
445
+ query: function (data) { return ({
446
+ url: '/api/user/verify/resend',
447
+ method: 'POST',
448
+ body: data,
449
+ }); },
450
+ }),
451
+ getUserInfo: builder.query({
452
+ query: function (uuid) { return ({
453
+ url: "/api/data/user/".concat(uuid),
454
+ method: 'GET',
455
+ }); },
456
+ }),
457
+ updateUserInfo: builder.mutation({
458
+ query: function (expressions) { return ({
459
+ url: '/api/data/user',
460
+ method: 'PATCH',
461
+ body: expressions,
462
+ }); },
463
+ }),
464
+ updateUser: builder.mutation({
465
+ query: function (data) { return ({
466
+ url: '/api/user',
467
+ method: 'PATCH',
468
+ body: data,
469
+ }); },
470
+ }),
471
+ }); },
472
+ });
473
+ // Export hooks for usage in functional components.
474
+ var useLoginQuery = authApi.useLoginQuery, useLazyLoginQuery = authApi.useLazyLoginQuery, useResetPasswordMutation = authApi.useResetPasswordMutation, useResetPasswordAuthMutation = authApi.useResetPasswordAuthMutation, useRefreshTokenQuery = authApi.useRefreshTokenQuery, useLazyRefreshTokenQuery = authApi.useLazyRefreshTokenQuery, useLogoutQuery = authApi.useLogoutQuery, useLazyLogoutQuery = authApi.useLazyLogoutQuery, useRegisterMutation = authApi.useRegisterMutation, useVerifyUserQuery = authApi.useVerifyUserQuery, useLazyVerifyUserQuery = authApi.useLazyVerifyUserQuery, useGetUserInfoQuery = authApi.useGetUserInfoQuery, useLazyGetUserInfoQuery = authApi.useLazyGetUserInfoQuery, useUpdateUserInfoMutation = authApi.useUpdateUserInfoMutation, useForgottenPasswordMutation = authApi.useForgottenPasswordMutation, useVerifyUserAttributesQuery = authApi.useVerifyUserAttributesQuery, useLazyVerifyUserAttributesQuery = authApi.useLazyVerifyUserAttributesQuery, useVerifyUserResendQuery = authApi.useVerifyUserResendQuery, useLazyVerifyUserResendQuery = authApi.useLazyVerifyUserResendQuery, useUpdateUserMutation = authApi.useUpdateUserMutation;
475
+
476
+ // console.log('process.env', process.env);
477
+ // console.log('process.env?.WEB_APP', process.env?.WEB_APP);
478
+ // console.log(
479
+ // 'process.env?.NEXT_PUBLIC_WEB_APP',
480
+ // process.env?.NEXT_PUBLIC_WEB_APP,
481
+ // );
482
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
483
+ var ENV = ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NEXT_PUBLIC_WEB_APP)
484
+ ? process.env
485
+ : require('react-native-config').default;
486
+ // export const ENV = process.env;
487
+ ((_b = process.env) === null || _b === void 0 ? void 0 : _b.NEXT_PUBLIC_API_PREFIX) || ENV.API_PREFIX;
488
+ ((_c = process.env) === null || _c === void 0 ? void 0 : _c.NEXT_PUBLIC_APP_BASE_URL) || ENV.APP_BASE_URL;
489
+ var APP_ES_INSTANCE = ((_d = process.env) === null || _d === void 0 ? void 0 : _d.NEXT_PUBLIC_APP_ES_INSTANCE) || ENV.APP_ES_INSTANCE;
490
+ var APP_ES_AUTH = ((_e = process.env) === null || _e === void 0 ? void 0 : _e.NEXT_PUBLIC_APP_ES_AUTH) || ENV.APP_ES_AUTH;
491
+ ((_f = process.env) === null || _f === void 0 ? void 0 : _f.NEXT_PUBLIC_APP_ES_PROMO_PANEL_INDEX) || ENV.APP_ES_PROMO_PANEL_INDEX;
492
+ ((_g = process.env) === null || _g === void 0 ? void 0 : _g.NEXT_PUBLIC_APP_ES_FAQ_INDEX) || ENV.APP_ES_FAQ_INDEX;
493
+ ((_h = process.env) === null || _h === void 0 ? void 0 : _h.NEXT_PUBLIC_APP_ES_PAGES_INDEX) || ENV.APP_ES_PAGES_INDEX;
494
+ ((_j = process.env) === null || _j === void 0 ? void 0 : _j.NEXT_PUBLIC_APP_ES_SETTINGS_INDEX) || ENV.APP_ES_SETTINGS_INDEX;
495
+ ((_k = process.env) === null || _k === void 0 ? void 0 : _k.NEXT_PUBLIC_APP_ES_PRESS_INDEX) || ENV.APP_ES_PRESS_INDEX;
496
+ ((_l = process.env) === null || _l === void 0 ? void 0 : _l.NEXT_PUBLIC_APP_ES_GUESTS_INDEX) || ENV.APP_ES_GUESTS_INDEX;
497
+ ((_m = process.env) === null || _m === void 0 ? void 0 : _m.NEXT_PUBLIC_APP_ES_VIDEOS_INDEX) || ENV.APP_ES_VIDEOS_INDEX;
498
+ ((_o = process.env) === null || _o === void 0 ? void 0 : _o.NEXT_PUBLIC_APP_ES_SECTIONS_INDEX) || ENV.APP_ES_SECTIONS_INDEX;
499
+ ((_p = process.env) === null || _p === void 0 ? void 0 : _p.NEXT_PUBLIC_APP_ES_WORKOUTS_INDEX) || ENV.APP_ES_WORKOUTS_INDEX;
500
+ ((_q = process.env) === null || _q === void 0 ? void 0 : _q.NEXT_PUBLIC_APP_ES_SCHEDULE_INDEX) || ENV.APP_ES_SCHEDULE_INDEX;
501
+ ((_r = process.env) === null || _r === void 0 ? void 0 : _r.NEXT_PUBLIC_APP_ES_CHALLENGES_INDEX) || ENV.APP_ES_CHALLENGES_INDEX;
502
+ ((_s = process.env) === null || _s === void 0 ? void 0 : _s.NEXT_PUBLIC_APP_ES_CHALLENGE_DAYS_INDEX) || ENV.APP_ES_CHALLENGE_DAYS_INDEX;
503
+
504
+ function isHydrateAction(action) {
505
+ return action.type === nextReduxWrapper.HYDRATE;
506
+ }
507
+
508
+ var contentApi = react.createApi({
509
+ reducerPath: 'contentApi',
510
+ baseQuery: react.fetchBaseQuery({
511
+ baseUrl: APP_ES_INSTANCE,
512
+ prepareHeaders: function (headers) {
513
+ headers.set('Authorization', APP_ES_AUTH);
514
+ return headers;
515
+ },
516
+ }),
517
+ tagTypes: ['Promos'],
518
+ extractRehydrationInfo: function (action, _a) {
519
+ var reducerPath = _a.reducerPath;
520
+ if (isHydrateAction(action)) {
521
+ return action.payload[reducerPath];
522
+ }
523
+ },
524
+ // keepUnusedDataFor: 300,
525
+ endpoints: function (builder) { return ({
526
+ getPromos: builder.query({
527
+ query: function (index) { return ({
528
+ url: "".concat(index, "/_search"),
529
+ method: 'POST',
530
+ body: {
531
+ from: 0,
532
+ size: 100,
533
+ sort: [{ created: { order: 'desc' } }],
534
+ query: {
535
+ match_all: {},
536
+ },
537
+ },
538
+ }); },
539
+ transformResponse: function (response) { var _a; return formatPromos((_a = response === null || response === void 0 ? void 0 : response.hits) === null || _a === void 0 ? void 0 : _a.hits); },
540
+ providesTags: ['Promos'],
541
+ }),
542
+ }); },
543
+ });
544
+ var useGetPromosQuery = contentApi.useGetPromosQuery; contentApi.useLazyGetPromosQuery;
545
+
546
+ var useLoggedIn = function () {
547
+ var isLoggedIn = reactRedux.useSelector(isAuthenticated);
548
+ return react$1.useMemo(function () { return isLoggedIn; }, [isLoggedIn]);
549
+ };
550
+
551
+ // This file serves as a central hub for re-exporting pre-typed Redux hooks.
552
+ // Use throughout your app instead of plain `useDispatch` and `useSelector`
553
+ var useAppDispatch = reactRedux.useDispatch.withTypes();
554
+ var useAppSelector = reactRedux.useSelector.withTypes();
555
+ var useAppStore = reactRedux.useStore.withTypes();
556
+
557
+ function createPersistStorage() {
558
+ var isServer = typeof window === 'undefined';
559
+ // Returns noop (dummy) storage.
560
+ if (isServer) {
561
+ return {
562
+ getItem: function () {
563
+ return Promise.resolve(null);
564
+ },
565
+ setItem: function () {
566
+ return Promise.resolve();
567
+ },
568
+ removeItem: function () {
569
+ return Promise.resolve();
570
+ },
571
+ };
572
+ }
573
+ return createWebStorage('local');
574
+ }
575
+ var storage = createPersistStorage();
576
+
577
+ var persistConfig = {
578
+ key: 'root',
579
+ storage: storage,
580
+ // whitelist: ['auth', 'creating'],
581
+ };
582
+ var middlewares = [authApi.middleware, contentApi.middleware];
583
+ // `combineSlices` automatically combines the reducers using
584
+ // their `reducerPath`s, therefore we no longer need to call `combineReducers`.
585
+ var rootReducer = toolkit.combineSlices(authSlice, authApi, contentApi);
586
+ console.info('rootReducer', rootReducer);
587
+ var persistedReducer = reduxPersist.persistReducer(persistConfig, rootReducer);
588
+ // `makeStore` encapsulates the store configuration to allow
589
+ // creating unique store instances, which is particularly important for
590
+ // server-side rendering (SSR) scenarios. In SSR, separate store instances
591
+ // are needed for each request to prevent cross-request state pollution.
592
+ var makeStore = function () {
593
+ return toolkit.configureStore({
594
+ reducer: persistedReducer,
595
+ // Adding the api middleware enables caching, invalidation, polling,
596
+ // and other useful features of `rtk-query`.
597
+ middleware: function (getDefaultMiddleware) {
598
+ return getDefaultMiddleware({
599
+ immutableCheck: { warnAfter: 256 },
600
+ serializableCheck: {
601
+ warnAfter: 256,
602
+ ignoredActions: [reduxPersist.FLUSH, reduxPersist.REHYDRATE, reduxPersist.PAUSE, reduxPersist.PERSIST, reduxPersist.PURGE, reduxPersist.REGISTER],
603
+ },
604
+ }).concat(middlewares);
605
+ },
606
+ });
607
+ };
608
+ var store = makeStore();
609
+ var persistor = reduxPersist.persistStore(store);
610
+
611
+ exports.authApi = authApi;
612
+ exports.contentApi = contentApi;
613
+ exports.makeStore = makeStore;
614
+ exports.persistor = persistor;
615
+ exports.store = store;
616
+ exports.useAppDispatch = useAppDispatch;
617
+ exports.useAppSelector = useAppSelector;
618
+ exports.useAppStore = useAppStore;
619
+ exports.useForgottenPasswordMutation = useForgottenPasswordMutation;
620
+ exports.useGetPromosQuery = useGetPromosQuery;
621
+ exports.useGetUserInfoQuery = useGetUserInfoQuery;
622
+ exports.useLazyGetUserInfoQuery = useLazyGetUserInfoQuery;
623
+ exports.useLazyLoginQuery = useLazyLoginQuery;
624
+ exports.useLazyLogoutQuery = useLazyLogoutQuery;
625
+ exports.useLazyRefreshTokenQuery = useLazyRefreshTokenQuery;
626
+ exports.useLazyVerifyUserAttributesQuery = useLazyVerifyUserAttributesQuery;
627
+ exports.useLazyVerifyUserQuery = useLazyVerifyUserQuery;
628
+ exports.useLazyVerifyUserResendQuery = useLazyVerifyUserResendQuery;
629
+ exports.useLoggedIn = useLoggedIn;
630
+ exports.useLoginQuery = useLoginQuery;
631
+ exports.useLogoutQuery = useLogoutQuery;
632
+ exports.useRefreshTokenQuery = useRefreshTokenQuery;
633
+ exports.useRegisterMutation = useRegisterMutation;
634
+ exports.useResetPasswordAuthMutation = useResetPasswordAuthMutation;
635
+ exports.useResetPasswordMutation = useResetPasswordMutation;
636
+ exports.useUpdateUserInfoMutation = useUpdateUserInfoMutation;
637
+ exports.useUpdateUserMutation = useUpdateUserMutation;
638
+ exports.useVerifyUserAttributesQuery = useVerifyUserAttributesQuery;
639
+ exports.useVerifyUserQuery = useVerifyUserQuery;
640
+ exports.useVerifyUserResendQuery = useVerifyUserResendQuery;
641
+ //# sourceMappingURL=index.js.map