@sentecacommerce-theme/lib 0.11.88 → 0.11.92

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 (36) hide show
  1. package/dist/cjs/api/myCartApi/index.js.map +1 -1
  2. package/dist/cjs/api/usersApi/index.js +3 -3
  3. package/dist/cjs/api/usersApi/index.js.map +1 -1
  4. package/dist/cjs/components/GoogleOneTap/index.js +3 -3
  5. package/dist/cjs/components/GoogleOneTap/index.js.map +1 -1
  6. package/dist/cjs/hooks/basket-hooks/useBasketTotalCount/index.js +1 -3
  7. package/dist/cjs/hooks/basket-hooks/useBasketTotalCount/index.js.map +1 -1
  8. package/dist/cjs/index.js +0 -8
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/user/api/mutations/useLoginMutation.js.map +1 -1
  11. package/dist/cjs/user/api/mutations/useRegisterMutation.js +31 -2
  12. package/dist/cjs/user/api/mutations/useRegisterMutation.js.map +1 -1
  13. package/dist/cjs/user/api/utils/processLoginPayload.js.map +1 -1
  14. package/dist/esm/api/myCartApi/index.js.map +1 -1
  15. package/dist/esm/api/usersApi/index.js +3 -3
  16. package/dist/esm/api/usersApi/index.js.map +1 -1
  17. package/dist/esm/components/GoogleOneTap/index.js +2 -2
  18. package/dist/esm/components/GoogleOneTap/index.js.map +1 -1
  19. package/dist/esm/hooks/basket-hooks/useBasketTotalCount/index.js +1 -3
  20. package/dist/esm/hooks/basket-hooks/useBasketTotalCount/index.js.map +1 -1
  21. package/dist/esm/index.js +0 -1
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/user/api/mutations/useLoginMutation.js.map +1 -1
  24. package/dist/esm/user/api/mutations/useRegisterMutation.js +16 -3
  25. package/dist/esm/user/api/mutations/useRegisterMutation.js.map +1 -1
  26. package/dist/esm/user/api/utils/processLoginPayload.js.map +1 -1
  27. package/dist/types/api/myCartApi/index.d.ts +2 -5
  28. package/dist/types/index.d.ts +0 -1
  29. package/dist/types/user/api/mutations/useRegisterMutation.d.ts +2 -2
  30. package/dist/types/user/hooks/useRegister.d.ts +1 -1
  31. package/package.json +4 -4
  32. package/dist/cjs/api/authApi/index.js +0 -282
  33. package/dist/cjs/api/authApi/index.js.map +0 -1
  34. package/dist/esm/api/authApi/index.js +0 -224
  35. package/dist/esm/api/authApi/index.js.map +0 -1
  36. package/dist/types/api/authApi/index.d.ts +0 -37
@@ -1,224 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
-
4
- /* eslint-disable react-hooks/rules-of-hooks */
5
- import { AuthAPI, CustomersAPI, OAuthTokenRequestDTOResponseModeEnum, LoginRequestDTOResponseModeEnum, TokenRequestDTOGrantTypeEnum } from '@sentecacommerce/sdk';
6
- import { useQuery, useMutation, useQueryCache } from 'react-query';
7
- import { usersApi } from '../usersApi';
8
- import { WISHLIST_STORAGE_KEY, cacheKeys as wishlistCacheKeys } from '../wishlistApi';
9
- import { BASKET_STORAGE_KEY, myCartCacheKeys } from '../myCartApi';
10
- import { generateGuid } from '../../utils/guid';
11
- import { writeToLocalStorage } from '../../utils/localStorage';
12
- import { getSDKConfig } from '../getSDKConfig';
13
- import { removeAnonToken, removeAuthToken, setRefreshToken, getAnonToken, getAuthToken, setExpiryToken, setAccessToken, isTokenExpired, getRefreshToken, removeExpiryToken, removeRefreshToken, getAnonId, convertDateIntoRemainingDays } from '../../utils'; // import { consentsApi } from '../consentsApi'
14
-
15
- var cacheKeys = {
16
- isAuthenticated: 'token-api-is-authenticated'
17
- };
18
- export var AuthApiFactory = function () {
19
- // Instance stores a reference to the Singleton
20
- var instance;
21
-
22
- function initialise() {
23
- // Singleton
24
- // Private methods and variables
25
- var customersApi = new CustomersAPI(getSDKConfig());
26
- var tokenApi = new AuthAPI(getSDKConfig());
27
-
28
- var processLoginPayload = function processLoginPayload(data, anonymous) {
29
- if (anonymous === void 0) {
30
- anonymous = false;
31
- }
32
-
33
- var accessTokenExpires = data.expires;
34
- var refreshTokenExpires = data.refreshTokenExpires;
35
- writeToLocalStorage(WISHLIST_STORAGE_KEY, data.wishList);
36
- writeToLocalStorage(BASKET_STORAGE_KEY, data.basket);
37
- setAccessToken(data.accessToken, anonymous, {
38
- expires: convertDateIntoRemainingDays(new Date(), new Date(accessTokenExpires))
39
- });
40
- setExpiryToken(data.expires, {
41
- expires: convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
42
- });
43
- setRefreshToken(data.refreshToken, {
44
- expires: convertDateIntoRemainingDays(new Date(), new Date(refreshTokenExpires))
45
- });
46
- !anonymous && removeAnonToken();
47
- };
48
-
49
- var invalidateQueries = queryCache => {
50
- queryCache.invalidateQueries(cacheKeys.isAuthenticated);
51
- queryCache.invalidateQueries(usersApi.cacheKeys.useGet);
52
- queryCache.invalidateQueries(myCartCacheKeys.useGet);
53
- queryCache.invalidateQueries(myCartCacheKeys.useGetCompact);
54
- queryCache.invalidateQueries(wishlistCacheKeys.useGet);
55
- queryCache.invalidateQueries(wishlistCacheKeys.useGetCompact);
56
- queryCache.getQueries().forEach(query => query.refetch());
57
- }; // Public methods and variables
58
-
59
-
60
- var processLogin = (onSuccess, queryCache) => data => {
61
- processLoginPayload(data);
62
- invalidateQueries(queryCache);
63
- onSuccess == null ? void 0 : onSuccess();
64
- };
65
-
66
- return Object.freeze({
67
- cacheKeys,
68
- isAuthenticated: () => {
69
- return useQuery(cacheKeys.isAuthenticated, /*#__PURE__*/_asyncToGenerator(function* () {
70
- var authToken = getAuthToken();
71
- var anonToken = getAnonToken();
72
-
73
- if (!authToken && !anonToken) {
74
- var anonTokenData = yield tokenApi.createAnonymousToken({}, {
75
- grantType: TokenRequestDTOGrantTypeEnum.Implicit,
76
- anonymousId: generateGuid()
77
- });
78
- processLoginPayload(anonTokenData, true);
79
- }
80
-
81
- if (isTokenExpired()) {
82
- removeAnonToken();
83
- removeAuthToken();
84
- var newToken = yield tokenApi.refreshToken({}, {
85
- grantType: TokenRequestDTOGrantTypeEnum.RefreshToken,
86
- refreshToken: getRefreshToken()
87
- });
88
- processLoginPayload(newToken, !!authApi);
89
- }
90
-
91
- return authToken ? true : false;
92
- }), {
93
- staleTime: 60 * 1000 // 1 minute
94
-
95
- });
96
- },
97
- useLogin: (_ref2) => {
98
- var {
99
- onSuccess
100
- } = _ref2;
101
- var queryCache = useQueryCache();
102
- return useMutation(values => tokenApi.login({}, _extends({}, values, {
103
- responseMode: LoginRequestDTOResponseModeEnum.Compact,
104
- anonymousId: getAnonId()
105
- })), {
106
- onSuccess: processLogin(onSuccess, queryCache)
107
- });
108
- },
109
- useRegister: (_ref3) => {
110
- var {
111
- onSuccess
112
- } = _ref3;
113
- var queryCache = useQueryCache();
114
- return useMutation(values => {
115
- return tokenApi.register({}, _extends({}, values, {
116
- anonymousId: getAnonId()
117
- }));
118
- }, {
119
- onSuccess: processLogin(onSuccess, queryCache)
120
- });
121
- },
122
- useLoginFacebook: onSuccess => {
123
- var queryCache = useQueryCache();
124
- return useMutation(values => tokenApi.createFacebookToken(values, {
125
- responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,
126
- anonymousId: getAnonId()
127
- }), {
128
- onSuccess: processLogin(onSuccess, queryCache)
129
- });
130
- },
131
- useLoginGoogle: onSuccess => {
132
- var queryCache = useQueryCache();
133
- return useMutation(values => tokenApi.createGoogleToken(values, {
134
- responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,
135
- anonymousId: getAnonId()
136
- }), {
137
- onSuccess: processLogin(onSuccess, queryCache)
138
- });
139
- },
140
- useLoginApple: onSuccess => {
141
- var queryCache = useQueryCache();
142
- return useMutation(values => tokenApi.createAppleToken(values, {
143
- responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,
144
- anonymousId: getAnonId()
145
- }), {
146
- onSuccess: processLogin(onSuccess, queryCache)
147
- });
148
- },
149
- useResetPassword: (_ref4) => {
150
- var {
151
- onSuccess
152
- } = _ref4;
153
- return useMutation(values => customersApi.resetPassword({}, values), {
154
- onSuccess: function (_onSuccess) {
155
- function onSuccess() {
156
- return _onSuccess.apply(this, arguments);
157
- }
158
-
159
- onSuccess.toString = function () {
160
- return _onSuccess.toString();
161
- };
162
-
163
- return onSuccess;
164
- }(() => {
165
- onSuccess == null ? void 0 : onSuccess();
166
- })
167
- });
168
- },
169
- useRequestResetPasswordToken: (_ref5) => {
170
- var {
171
- onSuccess
172
- } = _ref5;
173
- return useMutation(values => customersApi.createPasswordToken({}, values), {
174
- onSuccess: function (_onSuccess2) {
175
- function onSuccess() {
176
- return _onSuccess2.apply(this, arguments);
177
- }
178
-
179
- onSuccess.toString = function () {
180
- return _onSuccess2.toString();
181
- };
182
-
183
- return onSuccess;
184
- }(() => {
185
- onSuccess == null ? void 0 : onSuccess();
186
- })
187
- });
188
- },
189
- useLogout: () => {
190
- var queryCache = useQueryCache();
191
- return () => {
192
- writeToLocalStorage(WISHLIST_STORAGE_KEY, {
193
- itemsCount: 0,
194
- items: {}
195
- });
196
- writeToLocalStorage(BASKET_STORAGE_KEY, {
197
- lineItems: {},
198
- customLineItems: {},
199
- lineItemsCount: 0,
200
- customLineItemsCount: 0
201
- });
202
- removeAuthToken();
203
- removeRefreshToken();
204
- removeExpiryToken();
205
- invalidateQueries(queryCache);
206
- };
207
- }
208
- });
209
- }
210
-
211
- return {
212
- // Get the Singleton instance if one exists
213
- // or create one if it doesn't
214
- getInstance: function getInstance() {
215
- if (!instance) {
216
- instance = initialise();
217
- }
218
-
219
- return instance;
220
- }
221
- };
222
- }();
223
- export var authApi = AuthApiFactory.getInstance();
224
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/api/authApi/index.ts"],"names":["AuthAPI","CustomersAPI","OAuthTokenRequestDTOResponseModeEnum","LoginRequestDTOResponseModeEnum","TokenRequestDTOGrantTypeEnum","useQuery","useMutation","useQueryCache","usersApi","WISHLIST_STORAGE_KEY","cacheKeys","wishlistCacheKeys","BASKET_STORAGE_KEY","myCartCacheKeys","generateGuid","writeToLocalStorage","getSDKConfig","removeAnonToken","removeAuthToken","setRefreshToken","getAnonToken","getAuthToken","setExpiryToken","setAccessToken","isTokenExpired","getRefreshToken","removeExpiryToken","removeRefreshToken","getAnonId","convertDateIntoRemainingDays","isAuthenticated","AuthApiFactory","instance","initialise","customersApi","tokenApi","processLoginPayload","data","anonymous","accessTokenExpires","expires","refreshTokenExpires","wishList","basket","accessToken","Date","refreshToken","invalidateQueries","queryCache","useGet","useGetCompact","getQueries","forEach","query","refetch","processLogin","onSuccess","Object","freeze","authToken","anonToken","anonTokenData","createAnonymousToken","grantType","Implicit","anonymousId","newToken","RefreshToken","authApi","staleTime","useLogin","values","login","responseMode","Compact","useRegister","register","useLoginFacebook","createFacebookToken","useLoginGoogle","createGoogleToken","useLoginApple","createAppleToken","useResetPassword","resetPassword","useRequestResetPasswordToken","createPasswordToken","useLogout","itemsCount","items","lineItems","customLineItems","lineItemsCount","customLineItemsCount","getInstance"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n AuthAPI,\n CustomersAPI,\n RegisterRequestDTO,\n CustomerDTO,\n PasswordResetDTO,\n PasswordTokenDTO,\n TokenResponseDTO,\n OAuthTokenRequestDTOResponseModeEnum,\n LoginRequestDTOResponseModeEnum,\n TokenRequestDTOGrantTypeEnum,\n} from '@sentecacommerce/sdk'\nimport {\n useQuery,\n useMutation,\n QueryCache,\n MutationResultPair,\n QueryResult,\n useQueryCache,\n} from 'react-query'\nimport { usersApi } from '../usersApi'\nimport {\n WISHLIST_STORAGE_KEY,\n cacheKeys as wishlistCacheKeys,\n} from '../wishlistApi'\nimport { BASKET_STORAGE_KEY, myCartCacheKeys } from '../myCartApi'\nimport { generateGuid } from '../../utils/guid'\nimport { writeToLocalStorage } from '../../utils/localStorage'\nimport { getSDKConfig } from '../getSDKConfig'\nimport {\n removeAnonToken,\n removeAuthToken,\n setRefreshToken,\n getAnonToken,\n getAuthToken,\n setExpiryToken,\n setAccessToken,\n isTokenExpired,\n getRefreshToken,\n removeExpiryToken,\n removeRefreshToken,\n getAnonId,\n convertDateIntoRemainingDays,\n} from '../../utils'\n\n// import { consentsApi } from '../consentsApi'\n\ntype AuthApiType = {\n isAuthenticated: () => QueryResult<boolean, unknown>\n\n useLogin: ({\n onSuccess,\n }: {\n onSuccess?: () => void\n }) => MutationResultPair<\n TokenResponseDTO,\n unknown,\n { email: string; password: string },\n unknown\n >\n\n useLoginFacebook: (\n onSuccess?: () => void\n ) => MutationResultPair<\n TokenResponseDTO,\n unknown,\n { access_token: string },\n unknown\n >\n\n useLoginGoogle: (\n onSuccess?: () => void\n ) => MutationResultPair<\n TokenResponseDTO,\n unknown,\n { access_token: string },\n unknown\n >\n\n useLoginApple: (\n onSuccess?: () => void\n ) => MutationResultPair<\n TokenResponseDTO,\n unknown,\n {\n lastName?: string\n firstName?: string\n id_token: string\n },\n unknown\n >\n\n useRegister: ({\n onSuccess,\n }: {\n onSuccess?: () => void\n }) => MutationResultPair<\n TokenResponseDTO,\n unknown,\n RegisterRequestDTO,\n unknown\n >\n\n useResetPassword: ({\n onSuccess,\n }: {\n onSuccess?: () => void\n }) => MutationResultPair<CustomerDTO, unknown, PasswordResetDTO, unknown>\n\n useRequestResetPasswordToken: ({\n onSuccess,\n }: {\n onSuccess?: () => void\n }) => MutationResultPair<void, unknown, PasswordTokenDTO, unknown>\n\n useLogout: () => Function\n}\n\nconst cacheKeys = { isAuthenticated: 'token-api-is-authenticated' }\n\nexport const AuthApiFactory = (function () {\n // Instance stores a reference to the Singleton\n let instance: AuthApiType\n\n function initialise(): Readonly<AuthApiType> {\n // Singleton\n\n // Private methods and variables\n const customersApi = new CustomersAPI(getSDKConfig())\n const tokenApi = new AuthAPI(getSDKConfig())\n\n const processLoginPayload = (data: TokenResponseDTO, anonymous = false) => {\n const accessTokenExpires = data.expires as number\n const refreshTokenExpires = data.refreshTokenExpires as number\n\n writeToLocalStorage(WISHLIST_STORAGE_KEY, data.wishList)\n writeToLocalStorage(BASKET_STORAGE_KEY, data.basket)\n\n setAccessToken(data.accessToken as string, anonymous, {\n expires: convertDateIntoRemainingDays(\n new Date(),\n new Date(accessTokenExpires as number)\n ),\n })\n setExpiryToken(data.expires as number, {\n expires: convertDateIntoRemainingDays(\n new Date(),\n new Date(refreshTokenExpires as number)\n ),\n })\n setRefreshToken(data.refreshToken as string, {\n expires: convertDateIntoRemainingDays(\n new Date(),\n new Date(refreshTokenExpires as number)\n ),\n })\n !anonymous && removeAnonToken()\n }\n\n const invalidateQueries = (queryCache: QueryCache) => {\n queryCache.invalidateQueries(cacheKeys.isAuthenticated)\n queryCache.invalidateQueries(usersApi.cacheKeys.useGet)\n queryCache.invalidateQueries(myCartCacheKeys.useGet)\n queryCache.invalidateQueries(myCartCacheKeys.useGetCompact)\n queryCache.invalidateQueries(wishlistCacheKeys.useGet)\n queryCache.invalidateQueries(wishlistCacheKeys.useGetCompact)\n queryCache.getQueries().forEach((query) => query.refetch())\n }\n\n // Public methods and variables\n\n const processLogin = (onSuccess: any, queryCache: any) => (data: any) => {\n processLoginPayload(data)\n invalidateQueries(queryCache)\n onSuccess?.()\n }\n\n return Object.freeze({\n cacheKeys,\n isAuthenticated: () => {\n return useQuery(\n cacheKeys.isAuthenticated,\n async () => {\n const authToken = getAuthToken()\n const anonToken = getAnonToken()\n\n if (!authToken && !anonToken) {\n const anonTokenData = await tokenApi.createAnonymousToken(\n {},\n {\n grantType: TokenRequestDTOGrantTypeEnum.Implicit,\n anonymousId: generateGuid(),\n }\n )\n\n processLoginPayload(anonTokenData, true)\n }\n\n if (isTokenExpired()) {\n removeAnonToken()\n removeAuthToken()\n const newToken = await tokenApi.refreshToken(\n {},\n {\n grantType: TokenRequestDTOGrantTypeEnum.RefreshToken,\n refreshToken: getRefreshToken(),\n }\n )\n\n processLoginPayload(newToken, !!authApi)\n }\n return authToken ? true : false\n },\n {\n staleTime: 60 * 1000, // 1 minute\n }\n )\n },\n useLogin: ({ onSuccess }) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) =>\n tokenApi.login(\n {},\n {\n ...values,\n responseMode: LoginRequestDTOResponseModeEnum.Compact,\n anonymousId: getAnonId(),\n }\n ),\n {\n onSuccess: processLogin(onSuccess, queryCache),\n }\n )\n },\n useRegister: ({ onSuccess }) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n (values) => {\n return tokenApi.register(\n {},\n { ...values, anonymousId: getAnonId() }\n )\n },\n {\n onSuccess: processLogin(onSuccess, queryCache),\n }\n )\n },\n useLoginFacebook: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) =>\n tokenApi.createFacebookToken(values, {\n responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,\n anonymousId: getAnonId(),\n }),\n {\n onSuccess: processLogin(onSuccess, queryCache),\n }\n )\n },\n useLoginGoogle: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) =>\n tokenApi.createGoogleToken(values, {\n responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,\n anonymousId: getAnonId(),\n }),\n {\n onSuccess: processLogin(onSuccess, queryCache),\n }\n )\n },\n useLoginApple: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) =>\n tokenApi.createAppleToken(values, {\n responseMode: OAuthTokenRequestDTOResponseModeEnum.Compact,\n anonymousId: getAnonId(),\n }),\n {\n onSuccess: processLogin(onSuccess, queryCache),\n }\n )\n },\n useResetPassword: ({ onSuccess }) => {\n return useMutation((values) => customersApi.resetPassword({}, values), {\n onSuccess: () => {\n onSuccess?.()\n },\n })\n },\n useRequestResetPasswordToken: ({ onSuccess }) => {\n return useMutation(\n (values) => customersApi.createPasswordToken({}, values),\n {\n onSuccess: () => {\n onSuccess?.()\n },\n }\n )\n },\n useLogout: () => {\n const queryCache = useQueryCache()\n\n return () => {\n writeToLocalStorage(WISHLIST_STORAGE_KEY, {\n itemsCount: 0,\n items: {},\n })\n writeToLocalStorage(BASKET_STORAGE_KEY, {\n lineItems: {},\n customLineItems: {},\n lineItemsCount: 0,\n customLineItemsCount: 0,\n })\n removeAuthToken()\n removeRefreshToken()\n removeExpiryToken()\n invalidateQueries(queryCache)\n }\n },\n })\n }\n\n return {\n // Get the Singleton instance if one exists\n // or create one if it doesn't\n getInstance: function () {\n if (!instance) {\n instance = initialise()\n }\n\n return instance\n },\n }\n})()\n\nexport const authApi = AuthApiFactory.getInstance()\n"],"file":"index.js"}
@@ -1,37 +0,0 @@
1
- import { RegisterRequestDTO, CustomerDTO, PasswordResetDTO, PasswordTokenDTO, TokenResponseDTO } from '@sentecacommerce/sdk';
2
- import { MutationResultPair, QueryResult } from 'react-query';
3
- declare type AuthApiType = {
4
- isAuthenticated: () => QueryResult<boolean, unknown>;
5
- useLogin: ({ onSuccess, }: {
6
- onSuccess?: () => void;
7
- }) => MutationResultPair<TokenResponseDTO, unknown, {
8
- email: string;
9
- password: string;
10
- }, unknown>;
11
- useLoginFacebook: (onSuccess?: () => void) => MutationResultPair<TokenResponseDTO, unknown, {
12
- access_token: string;
13
- }, unknown>;
14
- useLoginGoogle: (onSuccess?: () => void) => MutationResultPair<TokenResponseDTO, unknown, {
15
- access_token: string;
16
- }, unknown>;
17
- useLoginApple: (onSuccess?: () => void) => MutationResultPair<TokenResponseDTO, unknown, {
18
- lastName?: string;
19
- firstName?: string;
20
- id_token: string;
21
- }, unknown>;
22
- useRegister: ({ onSuccess, }: {
23
- onSuccess?: () => void;
24
- }) => MutationResultPair<TokenResponseDTO, unknown, RegisterRequestDTO, unknown>;
25
- useResetPassword: ({ onSuccess, }: {
26
- onSuccess?: () => void;
27
- }) => MutationResultPair<CustomerDTO, unknown, PasswordResetDTO, unknown>;
28
- useRequestResetPasswordToken: ({ onSuccess, }: {
29
- onSuccess?: () => void;
30
- }) => MutationResultPair<void, unknown, PasswordTokenDTO, unknown>;
31
- useLogout: () => Function;
32
- };
33
- export declare const AuthApiFactory: {
34
- getInstance: () => AuthApiType;
35
- };
36
- export declare const authApi: AuthApiType;
37
- export {};