squarefi-bff-api-module 1.31.5 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/package.json +10 -3
  2. package/src/api/types/autogen/apiV2.types.ts +117 -2
  3. package/src/utils/apiClientFactory.ts +0 -1
  4. package/tsconfig.json +2 -2
  5. package/dist/api/auth.d.ts +0 -29
  6. package/dist/api/auth.js +0 -76
  7. package/dist/api/bank-data.d.ts +0 -4
  8. package/dist/api/bank-data.js +0 -9
  9. package/dist/api/counterparties.d.ts +0 -14
  10. package/dist/api/counterparties.js +0 -48
  11. package/dist/api/developer.d.ts +0 -12
  12. package/dist/api/developer.js +0 -15
  13. package/dist/api/exchange.d.ts +0 -14
  14. package/dist/api/exchange.js +0 -23
  15. package/dist/api/frontend.d.ts +0 -11
  16. package/dist/api/frontend.js +0 -14
  17. package/dist/api/index.d.ts +0 -38
  18. package/dist/api/index.js +0 -39
  19. package/dist/api/issuing.d.ts +0 -64
  20. package/dist/api/issuing.js +0 -157
  21. package/dist/api/kyc.d.ts +0 -21
  22. package/dist/api/kyc.js +0 -24
  23. package/dist/api/list.d.ts +0 -16
  24. package/dist/api/list.js +0 -19
  25. package/dist/api/orders.d.ts +0 -49
  26. package/dist/api/orders.js +0 -107
  27. package/dist/api/persona.d.ts +0 -7
  28. package/dist/api/persona.js +0 -10
  29. package/dist/api/storage.d.ts +0 -8
  30. package/dist/api/storage.js +0 -19
  31. package/dist/api/tenants.d.ts +0 -6
  32. package/dist/api/tenants.js +0 -9
  33. package/dist/api/totp.d.ts +0 -17
  34. package/dist/api/totp.js +0 -48
  35. package/dist/api/types/autogen/apiV2.types.d.ts +0 -4729
  36. package/dist/api/types/autogen/apiV2.types.js +0 -6
  37. package/dist/api/types/types.d.ts +0 -2258
  38. package/dist/api/types/types.js +0 -2
  39. package/dist/api/user.d.ts +0 -18
  40. package/dist/api/user.js +0 -21
  41. package/dist/api/virtual-accounts.d.ts +0 -9
  42. package/dist/api/virtual-accounts.js +0 -26
  43. package/dist/api/wallets.d.ts +0 -24
  44. package/dist/api/wallets.js +0 -56
  45. package/dist/constants.d.ts +0 -303
  46. package/dist/constants.js +0 -335
  47. package/dist/hooks/index.d.ts +0 -3
  48. package/dist/hooks/index.js +0 -19
  49. package/dist/hooks/useCalc.d.ts +0 -25
  50. package/dist/hooks/useCalc.js +0 -129
  51. package/dist/hooks/useFileUpload.d.ts +0 -49
  52. package/dist/hooks/useFileUpload.js +0 -113
  53. package/dist/hooks/useSupabaseSubscription/config.d.ts +0 -2
  54. package/dist/hooks/useSupabaseSubscription/config.js +0 -9
  55. package/dist/hooks/useSupabaseSubscription/index.d.ts +0 -3
  56. package/dist/hooks/useSupabaseSubscription/index.js +0 -7
  57. package/dist/hooks/useSupabaseSubscription/specialized.d.ts +0 -5
  58. package/dist/hooks/useSupabaseSubscription/specialized.js +0 -21
  59. package/dist/hooks/useSupabaseSubscription/types.d.ts +0 -16
  60. package/dist/hooks/useSupabaseSubscription/types.js +0 -2
  61. package/dist/hooks/useSupabaseSubscription/useSupabaseSubscription.d.ts +0 -5
  62. package/dist/hooks/useSupabaseSubscription/useSupabaseSubscription.js +0 -36
  63. package/dist/hooks/useUserFiles.d.ts +0 -49
  64. package/dist/hooks/useUserFiles.js +0 -118
  65. package/dist/index.d.ts +0 -7
  66. package/dist/index.js +0 -26
  67. package/dist/utils/apiClientFactory.d.ts +0 -31
  68. package/dist/utils/apiClientFactory.js +0 -155
  69. package/dist/utils/converters.d.ts +0 -1
  70. package/dist/utils/converters.js +0 -5
  71. package/dist/utils/encrypt.d.ts +0 -10
  72. package/dist/utils/encrypt.js +0 -95
  73. package/dist/utils/fileStorage.d.ts +0 -113
  74. package/dist/utils/fileStorage.js +0 -344
  75. package/dist/utils/storage.d.ts +0 -3
  76. package/dist/utils/storage.js +0 -30
  77. package/dist/utils/supabase.d.ts +0 -1
  78. package/dist/utils/supabase.js +0 -15
  79. package/dist/utils/tokensFactory.d.ts +0 -12
  80. package/dist/utils/tokensFactory.js +0 -60
@@ -1,113 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.useFileUpload = void 0;
13
- const react_1 = require("react");
14
- const fileStorage_1 = require("../utils/fileStorage");
15
- /**
16
- * React хук для загрузки файлов в Supabase Storage
17
- *
18
- * Папки создаются автоматически при загрузке файла, если их не существует.
19
- *
20
- * @example
21
- * ```tsx
22
- * // Загрузка в корень бакета
23
- * const { upload, uploading, error, result } = useFileUpload({
24
- * bucket: 'user-files',
25
- * onSuccess: (result) => console.log('Загружено:', result.path),
26
- * });
27
- *
28
- * // Загрузка в конкретную папку (папка создастся автоматически)
29
- * const { upload } = useFileUpload({
30
- * bucket: 'documents',
31
- * folder: 'invoices', // файл будет загружен в invoices/
32
- * });
33
- *
34
- * // Загрузка во вложенную папку (все папки создадутся автоматически)
35
- * const { upload } = useFileUpload({
36
- * bucket: 'images',
37
- * folder: 'avatars/2024', // файл будет загружен в avatars/2024/
38
- * });
39
- *
40
- * const handleFileChange = async (e: React.ChangeEvent<HTMLInputElement>) => {
41
- * const file = e.target.files?.[0];
42
- * if (file) await upload(file);
43
- * };
44
- * ```
45
- */
46
- const useFileUpload = (options) => {
47
- const { bucket, folder, authToken, onSuccess, onError } = options;
48
- const [uploading, setUploading] = (0, react_1.useState)(false);
49
- const [progress, setProgress] = (0, react_1.useState)(0);
50
- const [error, setError] = (0, react_1.useState)(null);
51
- const [result, setResult] = (0, react_1.useState)(null);
52
- const upload = (0, react_1.useCallback)((file, customFileName) => __awaiter(void 0, void 0, void 0, function* () {
53
- setUploading(true);
54
- setProgress(0);
55
- setError(null);
56
- setResult(null);
57
- try {
58
- // Симулируем прогресс (Supabase не предоставляет реальный progress)
59
- const progressInterval = setInterval(() => {
60
- setProgress((prev) => Math.min(prev + 10, 90));
61
- }, 100);
62
- const uploadOptions = {
63
- file,
64
- fileName: customFileName || `${Date.now()}-${file.name}`,
65
- bucket,
66
- folder,
67
- contentType: file.type,
68
- authToken,
69
- };
70
- const uploadResult = yield (0, fileStorage_1.uploadFile)(uploadOptions);
71
- clearInterval(progressInterval);
72
- setProgress(100);
73
- setResult(uploadResult);
74
- if (uploadResult.success) {
75
- onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(uploadResult);
76
- }
77
- else {
78
- const errorMsg = uploadResult.error || 'Ошибка загрузки файла';
79
- setError(errorMsg);
80
- onError === null || onError === void 0 ? void 0 : onError(errorMsg);
81
- }
82
- return uploadResult;
83
- }
84
- catch (err) {
85
- const errorMsg = err instanceof Error ? err.message : 'Непредвиденная ошибка';
86
- setError(errorMsg);
87
- onError === null || onError === void 0 ? void 0 : onError(errorMsg);
88
- setProgress(0);
89
- return {
90
- success: false,
91
- error: errorMsg,
92
- };
93
- }
94
- finally {
95
- setUploading(false);
96
- }
97
- }), [bucket, folder, authToken, onSuccess, onError]);
98
- const reset = (0, react_1.useCallback)(() => {
99
- setUploading(false);
100
- setProgress(0);
101
- setError(null);
102
- setResult(null);
103
- }, []);
104
- return {
105
- upload,
106
- uploading,
107
- progress,
108
- error,
109
- result,
110
- reset,
111
- };
112
- };
113
- exports.useFileUpload = useFileUpload;
@@ -1,2 +0,0 @@
1
- import { SubscriptionConfig } from './types';
2
- export declare const createWalletTransactionsConfig: (walletId: string) => SubscriptionConfig;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createWalletTransactionsConfig = void 0;
4
- const createWalletTransactionsConfig = (walletId) => ({
5
- channelName: `wallet-transactions-${walletId}`,
6
- table: 'transactions',
7
- filter: `wallet_id=eq.${walletId}`,
8
- });
9
- exports.createWalletTransactionsConfig = createWalletTransactionsConfig;
@@ -1,3 +0,0 @@
1
- export { useSupabaseSubscription } from './useSupabaseSubscription';
2
- export { useWalletTransactionsSubscription } from './specialized';
3
- export type { SubscriptionConfig, UseSupabaseSubscriptionProps, UseWalletTransactionsSubscriptionProps } from './types';
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useWalletTransactionsSubscription = exports.useSupabaseSubscription = void 0;
4
- var useSupabaseSubscription_1 = require("./useSupabaseSubscription");
5
- Object.defineProperty(exports, "useSupabaseSubscription", { enumerable: true, get: function () { return useSupabaseSubscription_1.useSupabaseSubscription; } });
6
- var specialized_1 = require("./specialized");
7
- Object.defineProperty(exports, "useWalletTransactionsSubscription", { enumerable: true, get: function () { return specialized_1.useWalletTransactionsSubscription; } });
@@ -1,5 +0,0 @@
1
- import { UseWalletTransactionsSubscriptionProps } from './types';
2
- export declare const useWalletTransactionsSubscription: ({ walletId, ...props }: UseWalletTransactionsSubscriptionProps) => {
3
- isConnected: boolean;
4
- isClientAvailable: boolean;
5
- };
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __rest = (this && this.__rest) || function (s, e) {
3
- var t = {};
4
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
- t[p] = s[p];
6
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
- t[p[i]] = s[p[i]];
10
- }
11
- return t;
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.useWalletTransactionsSubscription = void 0;
15
- const config_1 = require("./config");
16
- const useSupabaseSubscription_1 = require("./useSupabaseSubscription");
17
- const useWalletTransactionsSubscription = (_a) => {
18
- var { walletId } = _a, props = __rest(_a, ["walletId"]);
19
- return (0, useSupabaseSubscription_1.useSupabaseSubscription)(Object.assign(Object.assign({}, props), { config: (0, config_1.createWalletTransactionsConfig)(walletId || '') }));
20
- };
21
- exports.useWalletTransactionsSubscription = useWalletTransactionsSubscription;
@@ -1,16 +0,0 @@
1
- export interface SubscriptionConfig {
2
- channelName: string;
3
- table: string;
4
- schema?: string;
5
- event?: 'INSERT' | 'UPDATE' | 'DELETE' | '*';
6
- filter?: string;
7
- }
8
- export interface UseSupabaseSubscriptionProps {
9
- config: SubscriptionConfig;
10
- callback: (payload?: unknown) => void;
11
- enabled?: boolean;
12
- key?: string;
13
- }
14
- export interface UseWalletTransactionsSubscriptionProps extends Omit<UseSupabaseSubscriptionProps, 'config'> {
15
- walletId: string | undefined;
16
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,5 +0,0 @@
1
- import { UseSupabaseSubscriptionProps } from './types';
2
- export declare const useSupabaseSubscription: ({ config, callback, enabled, key }: UseSupabaseSubscriptionProps) => {
3
- isConnected: boolean;
4
- isClientAvailable: boolean;
5
- };
@@ -1,36 +0,0 @@
1
- "use strict";
2
- 'use client';
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.useSupabaseSubscription = void 0;
5
- const react_1 = require("react");
6
- const supabase_1 = require("../../utils/supabase");
7
- const useSupabaseSubscription = ({ config, callback, enabled = true, key }) => {
8
- const subscriptionRef = (0, react_1.useRef)(null);
9
- const callbackRef = (0, react_1.useRef)(callback);
10
- callbackRef.current = callback;
11
- (0, react_1.useEffect)(() => {
12
- if (!enabled || !supabase_1.supabaseClient) {
13
- return;
14
- }
15
- if (subscriptionRef.current) {
16
- supabase_1.supabaseClient.removeChannel(subscriptionRef.current);
17
- subscriptionRef.current = null;
18
- }
19
- const subscription = supabase_1.supabaseClient
20
- .channel(key || config.channelName)
21
- .on('postgres_changes', Object.assign({ event: config.event || '*', schema: config.schema || 'public', table: config.table }, (config.filter && { filter: config.filter })), (payload) => callbackRef.current(payload))
22
- .subscribe();
23
- subscriptionRef.current = subscription;
24
- return () => {
25
- if (subscriptionRef.current && supabase_1.supabaseClient) {
26
- supabase_1.supabaseClient.removeChannel(subscriptionRef.current);
27
- subscriptionRef.current = null;
28
- }
29
- };
30
- }, [enabled, config.channelName, config.table, config.schema, config.event, config.filter, supabase_1.supabaseClient, key]);
31
- return {
32
- isConnected: !!subscriptionRef.current,
33
- isClientAvailable: !!supabase_1.supabaseClient,
34
- };
35
- };
36
- exports.useSupabaseSubscription = useSupabaseSubscription;
@@ -1,49 +0,0 @@
1
- interface FileItem {
2
- name: string;
3
- id: string;
4
- created_at: string;
5
- updated_at: string;
6
- signedUrl?: string;
7
- }
8
- interface UseUserFilesOptions {
9
- userId: string;
10
- bucket?: string;
11
- autoLoad?: boolean;
12
- autoGenerateUrls?: boolean;
13
- urlExpiresIn?: number;
14
- authToken?: string;
15
- }
16
- interface UseUserFilesReturn {
17
- files: FileItem[];
18
- loading: boolean;
19
- error: string | null;
20
- reload: () => Promise<void>;
21
- deleteOne: (fileName: string) => Promise<boolean>;
22
- deleteMultiple: (fileNames: string[]) => Promise<boolean>;
23
- getFileUrl: (fileName: string) => Promise<string | null>;
24
- }
25
- /**
26
- * React хук для работы со списком файлов пользователя
27
- *
28
- * @example
29
- * ```tsx
30
- * const { files, loading, deleteOne, getFileUrl } = useUserFiles({
31
- * userId: 'user-123',
32
- * autoLoad: true,
33
- * autoGenerateUrls: true,
34
- * });
35
- *
36
- * return (
37
- * <ul>
38
- * {files.map(file => (
39
- * <li key={file.id}>
40
- * <a href={file.signedUrl} target="_blank">{file.name}</a>
41
- * <button onClick={() => deleteOne(file.name)}>Удалить</button>
42
- * </li>
43
- * ))}
44
- * </ul>
45
- * );
46
- * ```
47
- */
48
- export declare const useUserFiles: (options: UseUserFilesOptions) => UseUserFilesReturn;
49
- export {};
@@ -1,118 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.useUserFiles = void 0;
13
- const react_1 = require("react");
14
- const fileStorage_1 = require("../utils/fileStorage");
15
- /**
16
- * React хук для работы со списком файлов пользователя
17
- *
18
- * @example
19
- * ```tsx
20
- * const { files, loading, deleteOne, getFileUrl } = useUserFiles({
21
- * userId: 'user-123',
22
- * autoLoad: true,
23
- * autoGenerateUrls: true,
24
- * });
25
- *
26
- * return (
27
- * <ul>
28
- * {files.map(file => (
29
- * <li key={file.id}>
30
- * <a href={file.signedUrl} target="_blank">{file.name}</a>
31
- * <button onClick={() => deleteOne(file.name)}>Удалить</button>
32
- * </li>
33
- * ))}
34
- * </ul>
35
- * );
36
- * ```
37
- */
38
- const useUserFiles = (options) => {
39
- const { userId, bucket, autoLoad = true, autoGenerateUrls = false, urlExpiresIn = 3600, authToken, } = options;
40
- const [files, setFiles] = (0, react_1.useState)([]);
41
- const [loading, setLoading] = (0, react_1.useState)(false);
42
- const [error, setError] = (0, react_1.useState)(null);
43
- const reload = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
44
- setLoading(true);
45
- setError(null);
46
- try {
47
- const userFiles = yield (0, fileStorage_1.listUserFiles)(userId, bucket, authToken);
48
- let filesWithUrls = userFiles.map((file) => ({
49
- name: file.name,
50
- id: file.id,
51
- created_at: file.created_at,
52
- updated_at: file.updated_at,
53
- }));
54
- // Генерируем signed URLs если нужно
55
- if (autoGenerateUrls) {
56
- const filesWithSignedUrls = yield Promise.all(filesWithUrls.map((file) => __awaiter(void 0, void 0, void 0, function* () {
57
- const signedUrl = yield (0, fileStorage_1.getSignedUrl)({
58
- path: `${userId}/${file.name}`,
59
- bucket,
60
- expiresIn: urlExpiresIn,
61
- authToken,
62
- });
63
- return Object.assign(Object.assign({}, file), { signedUrl: signedUrl || undefined });
64
- })));
65
- filesWithUrls = filesWithSignedUrls;
66
- }
67
- setFiles(filesWithUrls);
68
- }
69
- catch (err) {
70
- const errorMsg = err instanceof Error ? err.message : 'Ошибка загрузки файлов';
71
- setError(errorMsg);
72
- console.error('Error loading files:', err);
73
- }
74
- finally {
75
- setLoading(false);
76
- }
77
- }), [userId, bucket, autoGenerateUrls, urlExpiresIn, authToken]);
78
- const deleteOne = (0, react_1.useCallback)((fileName) => __awaiter(void 0, void 0, void 0, function* () {
79
- const filePath = `${userId}/${fileName}`;
80
- const success = yield (0, fileStorage_1.deleteFile)(filePath, bucket, authToken);
81
- if (success) {
82
- setFiles((prev) => prev.filter((file) => file.name !== fileName));
83
- }
84
- return success;
85
- }), [userId, bucket, authToken]);
86
- const deleteMultiple = (0, react_1.useCallback)((fileNames) => __awaiter(void 0, void 0, void 0, function* () {
87
- const filePaths = fileNames.map((name) => `${userId}/${name}`);
88
- const success = yield (0, fileStorage_1.deleteFiles)(filePaths, bucket, authToken);
89
- if (success) {
90
- setFiles((prev) => prev.filter((file) => !fileNames.includes(file.name)));
91
- }
92
- return success;
93
- }), [userId, bucket, authToken]);
94
- const getFileUrl = (0, react_1.useCallback)((fileName) => __awaiter(void 0, void 0, void 0, function* () {
95
- const filePath = `${userId}/${fileName}`;
96
- return yield (0, fileStorage_1.getSignedUrl)({
97
- path: filePath,
98
- bucket,
99
- expiresIn: urlExpiresIn,
100
- authToken,
101
- });
102
- }), [userId, bucket, urlExpiresIn, authToken]);
103
- (0, react_1.useEffect)(() => {
104
- if (autoLoad) {
105
- reload();
106
- }
107
- }, [autoLoad, reload]);
108
- return {
109
- files,
110
- loading,
111
- error,
112
- reload,
113
- deleteOne,
114
- deleteMultiple,
115
- getFileUrl,
116
- };
117
- };
118
- exports.useUserFiles = useUserFiles;
package/dist/index.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export { squarefi_bff_api_client } from './api';
2
- export * from './utils/apiClientFactory';
3
- export * from './utils/tokensFactory';
4
- export * from './utils/fileStorage';
5
- export * from './constants';
6
- export * from './hooks';
7
- export * from './api/types/types';
package/dist/index.js DELETED
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.squarefi_bff_api_client = void 0;
18
- var api_1 = require("./api");
19
- Object.defineProperty(exports, "squarefi_bff_api_client", { enumerable: true, get: function () { return api_1.squarefi_bff_api_client; } });
20
- __exportStar(require("./utils/apiClientFactory"), exports);
21
- __exportStar(require("./utils/tokensFactory"), exports);
22
- __exportStar(require("./utils/fileStorage"), exports);
23
- __exportStar(require("./constants"), exports);
24
- __exportStar(require("./hooks"), exports);
25
- // Also export types if you have any
26
- __exportStar(require("./api/types/types"), exports);
@@ -1,31 +0,0 @@
1
- import { AxiosRequestConfig } from 'axios';
2
- type CreateApiClientOptions = {
3
- baseURL: string;
4
- tenantId: string;
5
- isBearerToken?: boolean;
6
- };
7
- export declare const createApiClient: ({ baseURL, isBearerToken, tenantId }: CreateApiClientOptions) => {
8
- patchRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
9
- postRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
10
- deleteRequest: (url: string, config?: AxiosRequestConfig) => Promise<any>;
11
- getRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
12
- };
13
- export declare const apiClientV1: {
14
- patchRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
15
- postRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
16
- deleteRequest: (url: string, config?: AxiosRequestConfig) => Promise<any>;
17
- getRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
18
- };
19
- export declare const apiClientV2: {
20
- patchRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
21
- postRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
22
- deleteRequest: (url: string, config?: AxiosRequestConfig) => Promise<any>;
23
- getRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
24
- };
25
- export declare const apiClientTOTP: {
26
- patchRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
27
- postRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
28
- deleteRequest: (url: string, config?: AxiosRequestConfig) => Promise<any>;
29
- getRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<T>;
30
- };
31
- export {};
@@ -1,155 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
- var __importDefault = (this && this.__importDefault) || function (mod) {
23
- return (mod && mod.__esModule) ? mod : { "default": mod };
24
- };
25
- var _a, _b, _c, _d, _e;
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.apiClientTOTP = exports.apiClientV2 = exports.apiClientV1 = exports.createApiClient = void 0;
28
- /* eslint-disable no-console */
29
- const sdk_react_1 = require("@telegram-apps/sdk-react");
30
- const axios_1 = __importDefault(require("axios"));
31
- const auth_1 = require("../api/auth");
32
- const constants_1 = require("../constants");
33
- const tokensFactory_1 = require("./tokensFactory");
34
- // eslint-disable-next-line no-constant-condition
35
- const apiV1BaseURL = (_a = process.env.API_URL) !== null && _a !== void 0 ? _a : 'ENV variable API_URL is not defined';
36
- const apiV2BaseURL = (_b = process.env.API_V2_URL) !== null && _b !== void 0 ? _b : 'ENV variable API_V2_URL is not defined';
37
- const apiTOTPBaseURL = (_c = process.env.API_TOTP_URL) !== null && _c !== void 0 ? _c : 'ENV variable API_TOTP_URL is not defined';
38
- const envTenantId = (_d = process.env.TENANT_ID) !== null && _d !== void 0 ? _d : 'ENV variable TENANT_ID is not defined';
39
- const envLogoutURL = (_e = process.env.LOGOUT_URL) !== null && _e !== void 0 ? _e : '/auth/logout';
40
- let isTokenRefreshing = false;
41
- let requestQueue = [];
42
- const createApiClient = ({ baseURL, isBearerToken, tenantId }) => {
43
- const instance = axios_1.default.create({
44
- baseURL,
45
- timeout: 60000,
46
- });
47
- instance.interceptors.request.use((config) => {
48
- const { access_token } = (0, tokensFactory_1.getTokens)();
49
- const modifiedHeaders = Object.assign(Object.assign({}, config.headers), { 'Content-Type': 'application/json', 'x-tenant-id': tenantId });
50
- if (access_token) {
51
- const authHeader = isBearerToken ? `Bearer ${access_token}` : access_token;
52
- modifiedHeaders.Authorization = authHeader;
53
- }
54
- config.context = Object.assign(Object.assign({}, config.context), { appEnvironment: (0, sdk_react_1.isTMA)() ? constants_1.AppEnviroment.TELEGRAM : constants_1.AppEnviroment.WEB });
55
- return Object.assign(Object.assign({}, config), { headers: modifiedHeaders });
56
- });
57
- instance.interceptors.response.use((response) => response, (error) => {
58
- var _a, _b, _c, _d, _e, _f, _g;
59
- if (typeof window === 'undefined') {
60
- return Promise.reject(error);
61
- }
62
- if (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === constants_1.ResponseStatus.UNAUTHORIZED &&
63
- !((_c = (_b = error === null || error === void 0 ? void 0 : error.response) === null || _b === void 0 ? void 0 : _b.config.context) === null || _c === void 0 ? void 0 : _c.bypassUnauthorizedHandler)) {
64
- const { response, config: failedRequestConfig } = error;
65
- const { refresh_token } = (0, tokensFactory_1.getTokens)();
66
- const isRetryRequest = (_d = failedRequestConfig.context) === null || _d === void 0 ? void 0 : _d.isRetryRequest;
67
- const isRefreshTokenRequest = (_e = failedRequestConfig.url) === null || _e === void 0 ? void 0 : _e.includes(auth_1.refreshTokenPath);
68
- const isTelegramSignInRequest = (_f = failedRequestConfig.url) === null || _f === void 0 ? void 0 : _f.includes(auth_1.telegramSignInPath);
69
- const isTelegramSignUpRequest = (_g = failedRequestConfig.url) === null || _g === void 0 ? void 0 : _g.includes(auth_1.telegramSignUpPath);
70
- const isRefreshNotRequired = !refresh_token && !(0, sdk_react_1.isTMA)();
71
- const isLogoutNeccesary = isRefreshNotRequired ||
72
- isTelegramSignInRequest ||
73
- isTelegramSignUpRequest ||
74
- isRefreshTokenRequest ||
75
- isRetryRequest;
76
- const isRefreshAvailable = !isTokenRefreshing && !isRefreshNotRequired;
77
- if (isLogoutNeccesary) {
78
- if (typeof window !== 'undefined') {
79
- window.location.href = envLogoutURL;
80
- (0, tokensFactory_1.deleteTokens)();
81
- }
82
- requestQueue = [];
83
- return Promise.reject(response);
84
- }
85
- if (isRefreshAvailable) {
86
- isTokenRefreshing = true;
87
- (0, tokensFactory_1.refreshTokens)()
88
- .then((data) => {
89
- if (data === null || data === void 0 ? void 0 : data.access_token) {
90
- requestQueue.forEach((request) => request.resolve());
91
- requestQueue = [];
92
- }
93
- })
94
- .catch((tokenRefreshError) => {
95
- if (typeof window !== 'undefined') {
96
- window.location.href = envLogoutURL;
97
- (0, tokensFactory_1.deleteTokens)();
98
- }
99
- requestQueue = [];
100
- return Promise.reject(tokenRefreshError);
101
- })
102
- .finally(() => {
103
- isTokenRefreshing = false;
104
- });
105
- }
106
- return new Promise((res, rej) => {
107
- requestQueue.push({
108
- resolve: () => {
109
- failedRequestConfig.context = Object.assign(Object.assign({}, failedRequestConfig.context), { isRetryRequest: true });
110
- return res(instance(failedRequestConfig));
111
- },
112
- reject: () => rej(instance(failedRequestConfig)),
113
- });
114
- });
115
- }
116
- console.error('Axios error', error);
117
- return Promise.reject(error);
118
- });
119
- const patchRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
120
- const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
121
- const res = yield instance.patch(url, data, restConfig);
122
- return res.data;
123
- });
124
- const postRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
125
- const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
126
- const res = yield instance.post(url, data, restConfig);
127
- return res.data;
128
- });
129
- const deleteRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
130
- const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
131
- const res = yield instance.delete(url, Object.assign({ data }, restConfig));
132
- return res.data;
133
- });
134
- const getRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
135
- const _a = config !== null && config !== void 0 ? config : {}, { params = {} } = _a, restConfig = __rest(_a, ["params"]);
136
- const res = yield instance.get(url, Object.assign({ params }, restConfig));
137
- return res.data;
138
- });
139
- return { patchRequest, postRequest, deleteRequest, getRequest };
140
- };
141
- exports.createApiClient = createApiClient;
142
- exports.apiClientV1 = (0, exports.createApiClient)({
143
- baseURL: apiV1BaseURL,
144
- tenantId: envTenantId,
145
- });
146
- exports.apiClientV2 = (0, exports.createApiClient)({
147
- baseURL: apiV2BaseURL,
148
- isBearerToken: true,
149
- tenantId: envTenantId,
150
- });
151
- exports.apiClientTOTP = (0, exports.createApiClient)({
152
- baseURL: apiTOTPBaseURL,
153
- isBearerToken: true,
154
- tenantId: envTenantId,
155
- });
@@ -1 +0,0 @@
1
- export declare const convertPhoneToSupabaseFormat: (phone: string) => string;
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertPhoneToSupabaseFormat = void 0;
4
- const convertPhoneToSupabaseFormat = (phone) => phone.replace(/\D/g, '');
5
- exports.convertPhoneToSupabaseFormat = convertPhoneToSupabaseFormat;
@@ -1,10 +0,0 @@
1
- import { CipherKey } from 'crypto';
2
- import { API } from '../api/types/types';
3
- type MakeSecureRequestParams = {
4
- callback: (props: API.Common.Encrypted.Request) => Promise<API.Common.Encrypted.Response>;
5
- publicKey: string;
6
- };
7
- export declare const generateSecretKey: () => Buffer<ArrayBufferLike>;
8
- export declare const decryptAESData: (encryptedData: string, iv: string, secretKey: CipherKey) => Promise<any>;
9
- export declare const makeSecureRequest: <T>({ callback, publicKey }: MakeSecureRequestParams) => Promise<T>;
10
- export {};