squarefi-bff-api-module 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.
Files changed (58) hide show
  1. package/README.md +36 -0
  2. package/dist/api/auth.d.ts +27 -0
  3. package/dist/api/auth.js +38 -0
  4. package/dist/api/config.d.ts +37 -0
  5. package/dist/api/config.js +40 -0
  6. package/dist/api/developer.d.ts +12 -0
  7. package/dist/api/developer.js +15 -0
  8. package/dist/api/exchange.d.ts +35 -0
  9. package/dist/api/exchange.js +27 -0
  10. package/dist/api/fetch_api.d.ts +1 -0
  11. package/dist/api/fetch_api.js +122 -0
  12. package/dist/api/fiat_accounts.d.ts +32 -0
  13. package/dist/api/fiat_accounts.js +51 -0
  14. package/dist/api/index.d.ts +12 -0
  15. package/dist/api/index.js +17 -0
  16. package/dist/api/issuing.d.ts +31 -0
  17. package/dist/api/issuing.js +68 -0
  18. package/dist/api/kyc.d.ts +6 -0
  19. package/dist/api/kyc.js +9 -0
  20. package/dist/api/list.d.ts +10 -0
  21. package/dist/api/list.js +13 -0
  22. package/dist/api/orders.d.ts +12 -0
  23. package/dist/api/orders.js +34 -0
  24. package/dist/api/types.d.ts +945 -0
  25. package/dist/api/types.js +2 -0
  26. package/dist/api/user.d.ts +18 -0
  27. package/dist/api/user.js +21 -0
  28. package/dist/api/wallets.d.ts +18 -0
  29. package/dist/api/wallets.js +42 -0
  30. package/dist/constants.d.ts +149 -0
  31. package/dist/constants.js +172 -0
  32. package/dist/index.d.ts +5 -0
  33. package/dist/index.js +22 -0
  34. package/dist/utils/apiClientFactory.d.ts +13 -0
  35. package/dist/utils/apiClientFactory.js +132 -0
  36. package/dist/utils/storage.d.ts +3 -0
  37. package/dist/utils/storage.js +30 -0
  38. package/dist/utils/tokensFactory.d.ts +12 -0
  39. package/dist/utils/tokensFactory.js +53 -0
  40. package/package.json +35 -0
  41. package/src/api/auth.ts +50 -0
  42. package/src/api/developer.ts +18 -0
  43. package/src/api/exchange.ts +32 -0
  44. package/src/api/fiat_accounts.ts +69 -0
  45. package/src/api/index.ts +16 -0
  46. package/src/api/issuing.ts +66 -0
  47. package/src/api/kyc.ts +10 -0
  48. package/src/api/list.ts +18 -0
  49. package/src/api/orders.ts +32 -0
  50. package/src/api/types.ts +1141 -0
  51. package/src/api/user.ts +24 -0
  52. package/src/api/wallets.ts +39 -0
  53. package/src/constants.ts +180 -0
  54. package/src/index.ts +7 -0
  55. package/src/utils/apiClientFactory.ts +154 -0
  56. package/src/utils/storage.ts +29 -0
  57. package/src/utils/tokensFactory.ts +50 -0
  58. package/tsconfig.json +15 -0
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import { API } from './types';
2
+ export declare const user: {
3
+ get: () => Promise<import("axios").AxiosResponse<API.User.User, any>>;
4
+ userData: {
5
+ get: () => Promise<import("axios").AxiosResponse<API.User.UserData.UserData, any>>;
6
+ update: (data: API.User.UserData.UpdateUserData.Request) => Promise<import("axios").AxiosResponse<API.User.UserData.UserData, any>>;
7
+ };
8
+ update: {
9
+ phone: {
10
+ request: (data: API.User.UpdateUser.Phone.RequestOTP.Request) => Promise<import("axios").AxiosResponse<unknown, any>>;
11
+ confirm: (data: API.User.UpdateUser.Phone.Confirm.Request) => Promise<import("axios").AxiosResponse<unknown, any>>;
12
+ };
13
+ email: {
14
+ request: (data: API.User.UpdateUser.Email.RequestOTP.Request) => Promise<import("axios").AxiosResponse<unknown, any>>;
15
+ confirm: (data: API.User.UpdateUser.Email.Confirm.Request) => Promise<import("axios").AxiosResponse<unknown, any>>;
16
+ };
17
+ };
18
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.user = void 0;
4
+ const _1 = require(".");
5
+ exports.user = {
6
+ get: () => _1.apiClientV2.getRequest('/user'),
7
+ userData: {
8
+ get: () => _1.apiClientV2.getRequest('/user/user-data'),
9
+ update: (data) => _1.apiClientV2.patchRequest('/user/user-data', { data }),
10
+ },
11
+ update: {
12
+ phone: {
13
+ request: (data) => _1.apiClientV2.patchRequest('/user/phone', { data }),
14
+ confirm: (data) => _1.apiClientV2.postRequest('/user/phone', { data }),
15
+ },
16
+ email: {
17
+ request: (data) => _1.apiClientV2.patchRequest('/user/email', { data }),
18
+ confirm: (data) => _1.apiClientV2.postRequest('/user/email', { data }),
19
+ },
20
+ },
21
+ };
@@ -0,0 +1,18 @@
1
+ import { API } from './types';
2
+ import { WalletTypeValues } from '../constants';
3
+ export declare const wallets: {
4
+ create: (type: WalletTypeValues) => Promise<unknown>;
5
+ getAll: () => Promise<API.Wallets.WalletsList.Response>;
6
+ getByUuid: (uuid: string) => Promise<API.Wallets.Wallet>;
7
+ addresses: {
8
+ create: ({ wallet_uuid, chain, label }: API.Wallets.WalletChain.Create.Request) => Promise<API.Wallets.WalletChain.WalletChain>;
9
+ get: {
10
+ byWalletUuid: {
11
+ byChainId: (wallet_uuid: string, chain_id: number) => Promise<API.Wallets.WalletChain.WalletChain>;
12
+ };
13
+ };
14
+ };
15
+ transactions: {
16
+ getByWalletUuid: (wallet_uuid: string, limit?: number, offset?: number) => Promise<API.Wallets.WalletTransactions.TransactionList.Response>;
17
+ };
18
+ };
@@ -0,0 +1,42 @@
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.wallets = void 0;
13
+ const _1 = require(".");
14
+ const constants_1 = require("../constants");
15
+ exports.wallets = {
16
+ create: (type) => _1.apiClientV2.postRequest('/wallets', { data: { type } }).then(({ data }) => data),
17
+ getAll: () => _1.apiClientV2.getRequest('/wallets').then(({ data }) => data),
18
+ getByUuid: (uuid) => _1.apiClientV2.getRequest(`/wallets/${uuid}`).then(({ data }) => data),
19
+ addresses: {
20
+ create: ({ wallet_uuid, chain, label }) => _1.apiClientV2
21
+ .postRequest(`/wallets/${wallet_uuid}/addresses/${chain}`, {
22
+ data: { label },
23
+ })
24
+ .then(({ data }) => data),
25
+ get: {
26
+ byWalletUuid: {
27
+ byChainId: (wallet_uuid, chain_id) => _1.apiClientV2
28
+ .getRequest(`/wallets/${wallet_uuid}/addresses/${chain_id}`)
29
+ .then(({ data }) => data),
30
+ },
31
+ },
32
+ },
33
+ transactions: {
34
+ getByWalletUuid: (wallet_uuid_1, ...args_1) => __awaiter(void 0, [wallet_uuid_1, ...args_1], void 0, function* (wallet_uuid, limit = constants_1.defaultPaginationParams.limit, offset = constants_1.defaultPaginationParams.offset) {
35
+ return _1.apiClientV2
36
+ .getRequest(`/wallets/${wallet_uuid}/transactions`, {
37
+ params: { limit, offset },
38
+ })
39
+ .then(({ data }) => data);
40
+ }),
41
+ },
42
+ };
@@ -0,0 +1,149 @@
1
+ export type ValueWithLabel = {
2
+ value: string;
3
+ label: string;
4
+ };
5
+ export type WalletType = {
6
+ [key: string]: ValueWithLabel;
7
+ };
8
+ export declare const falsyValues: (string | number | boolean | null | undefined)[];
9
+ export declare enum AppEnviroment {
10
+ WEB = "web",
11
+ TELEGRAM = "telegram"
12
+ }
13
+ export declare enum CardFormFactor {
14
+ VIRTUAL = "VIRTUAL",
15
+ PHYSICAL = "PHYSICAL"
16
+ }
17
+ export declare enum CardType {
18
+ CREDIT = "CREDIT",
19
+ DEBIT = "DEBIT"
20
+ }
21
+ export declare enum CardTransactionType {
22
+ AUTHORIZATION = "AUTHORIZATION",
23
+ CLEARING = "CLEARING",
24
+ REFUND = "REFUND",
25
+ REVERSAL = "REVERSAL",
26
+ ORIGINAL_CREDIT = "ORIGINAL_CREDIT",
27
+ FEE = "FEE",
28
+ DEPOSIT = "DEPOSIT",
29
+ WITHDRAWAL = "WITHDRAWAL"
30
+ }
31
+ export declare enum WalletTransactionType {
32
+ DEPOSIT = "deposit",
33
+ WITHDRAWAL = "withdrawal"
34
+ }
35
+ export declare enum WalletTransactionMethod {
36
+ P2P = "p2p",
37
+ CRYPTO = "crypto",
38
+ BANK_TRANSFER = "bank_transfer",
39
+ EXCHANGE = "exchange",
40
+ SBP = "sbp"
41
+ }
42
+ export declare enum WalletTransactionRecordType {
43
+ CARD_PROVIDER_DEPOSIT = "CARD_PROVIDER_DEPOSIT",
44
+ CARD_PROVIDER_REFUND = "CARD_PROVIDER_REFUND",
45
+ DEPOSIT = "DEPOSIT",
46
+ DEPOSIT_CRYPTO_EXTERNAL = "DEPOSIT_CRYPTO_EXTERNAL",
47
+ DEPOSIT_CRYPTO_INTERNAL = "DEPOSIT_CRYPTO_INTERNAL",
48
+ EXCHANGE_CRYPTO_INTERNAL = "EXCHANGE_CRYPTO_INTERNAL",
49
+ EXT_EXCHANGE = "EXT_EXCHANGE",
50
+ FEE = "FEE",
51
+ NETWORK_FEE = "NETWORK_FEE",
52
+ REFUND = "REFUND",
53
+ WITHDRAWAL = "WITHDRAWAL",
54
+ WITHDRAWAL_CRYPTO_EXTERNAL = "WITHDRAWAL_CRYPTO_EXTERNAL",
55
+ WITHDRAWAL_CRYPTO_INTERNAL = "WITHDRAWAL_CRYPTO_INTERNAL",
56
+ WHOLESALE_CARD_DEPOSIT = "WHOLESALE_CARD_DEPOSIT"
57
+ }
58
+ export declare enum RequestStatus {
59
+ NONE = "none",
60
+ PENDING = "pending",
61
+ FULLFILLED = "fulfilled",
62
+ REJECTED = "rejected"
63
+ }
64
+ export declare enum RequestLoadingType {
65
+ NORMAL = "normal",
66
+ TRANSPARENT = "transparent"
67
+ }
68
+ export declare enum ResponseStatus {
69
+ BAD_REQUEST = 400,
70
+ UNAUTHORIZED = 401,
71
+ FORBIDDEN = 403,
72
+ NOT_FOUND = 404,
73
+ VERIFICATION_EXPIRED = 419,
74
+ UNPROCESSABLE_ENTITY = 422,
75
+ USER_BLOCKED = 423,
76
+ SERVER_ERROR = 500
77
+ }
78
+ export declare enum WalletTypeValues {
79
+ BUSINESS = "business",
80
+ PERSONAL = "personal",
81
+ P2P = "trading",
82
+ ESCROW = "escrow",
83
+ MERCHANT = "merchant",
84
+ EXCHANGE = "exchange",
85
+ STAKING = "staking",
86
+ VAULT = "vault"
87
+ }
88
+ export declare const walletType: WalletType;
89
+ export declare const defaultPaginationParams: {
90
+ limit: number;
91
+ offset: number;
92
+ isLastPage: boolean;
93
+ };
94
+ export declare enum KYCStatuses {
95
+ APPROVED = "APPROVED",
96
+ DECLINED = "DECLINED",
97
+ PENDING = "PENDING",
98
+ HOLD = "HOLD",
99
+ DOUBLE = "DOUBLE",
100
+ SOFT_REJECT = "SOFT_REJECT",
101
+ REJECT = "REJECT",
102
+ UNVERIFIED = "UNVERIFIED"
103
+ }
104
+ export declare enum OrderStatuses {
105
+ NEW = "NEW",
106
+ PENDING = "PENDING",
107
+ CANCELED = "CANCELED",
108
+ COMPLETE = "COMPLETE",
109
+ ERROR = "ERROR",
110
+ FAILED = "FAILED"
111
+ }
112
+ export declare enum CardStatus {
113
+ ACTIVE = "ACTIVE",
114
+ FROZEN = "FROZEN",
115
+ BLOCKED = "BLOCKED",
116
+ INACTIVE = "INACTIVE",
117
+ CANCELED = "CANCELED",
118
+ CLOSED = "CLOSED"
119
+ }
120
+ export declare enum FiatAccountStatus {
121
+ ACTIVE = "ACTIVE",
122
+ BLOCKED = "BLOCKED",
123
+ INACTIVE = "INACTIVE",
124
+ CANCELED = "CANCELED"
125
+ }
126
+ export declare enum SubAccountType {
127
+ PREPAID = "prepaid",
128
+ BALANCE = "balance"
129
+ }
130
+ export declare enum CurrencyType {
131
+ TOKEN = "token",
132
+ NATIVE = "native",
133
+ FIAT = "fiat"
134
+ }
135
+ export declare enum OrderType {
136
+ DEPOSIT_FIAT_SEPA = "DEPOSIT_FIAT_SEPA",
137
+ DEPOSIT_FIAT_SWIFT = "DEPOSIT_FIAT_SWIFT",
138
+ WITHDRAWAL_FIAT_SEPA = "WITHDRAWAL_FIAT_SEPA",
139
+ TRANSFER_CARD_PREPAID = "TRANSFER_CARD_PREPAID",
140
+ TRANSFER_CARD_SUBACCOUNT = "TRANSFER_CARD_SUBACCOUNT",
141
+ WITHDRAWAL_CRYPTO = "WITHDRAWAL_CRYPTO",
142
+ EXCHANGE_CRYPTO_INTERNAL = "EXCHANGE_CRYPTO_INTERNAL",
143
+ TRANSFER_CARD_WHOLESALE = "TRANSFER_CARD_WHOLESALE"
144
+ }
145
+ export declare enum APIKeyRole {
146
+ READ_ONLY = "READ_ONLY",
147
+ DEVELOPER = "DEVELOPER",
148
+ PRODUCTION = "PRODUCTION"
149
+ }
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.APIKeyRole = exports.OrderType = exports.CurrencyType = exports.SubAccountType = exports.FiatAccountStatus = exports.CardStatus = exports.OrderStatuses = exports.KYCStatuses = exports.defaultPaginationParams = exports.walletType = exports.WalletTypeValues = exports.ResponseStatus = exports.RequestLoadingType = exports.RequestStatus = exports.WalletTransactionRecordType = exports.WalletTransactionMethod = exports.WalletTransactionType = exports.CardTransactionType = exports.CardType = exports.CardFormFactor = exports.AppEnviroment = exports.falsyValues = void 0;
4
+ exports.falsyValues = ['false', '0', '', 'FALSE', false, null, undefined, NaN, 0];
5
+ var AppEnviroment;
6
+ (function (AppEnviroment) {
7
+ AppEnviroment["WEB"] = "web";
8
+ AppEnviroment["TELEGRAM"] = "telegram";
9
+ })(AppEnviroment || (exports.AppEnviroment = AppEnviroment = {}));
10
+ var CardFormFactor;
11
+ (function (CardFormFactor) {
12
+ CardFormFactor["VIRTUAL"] = "VIRTUAL";
13
+ CardFormFactor["PHYSICAL"] = "PHYSICAL";
14
+ })(CardFormFactor || (exports.CardFormFactor = CardFormFactor = {}));
15
+ var CardType;
16
+ (function (CardType) {
17
+ CardType["CREDIT"] = "CREDIT";
18
+ CardType["DEBIT"] = "DEBIT";
19
+ })(CardType || (exports.CardType = CardType = {}));
20
+ var CardTransactionType;
21
+ (function (CardTransactionType) {
22
+ CardTransactionType["AUTHORIZATION"] = "AUTHORIZATION";
23
+ CardTransactionType["CLEARING"] = "CLEARING";
24
+ CardTransactionType["REFUND"] = "REFUND";
25
+ CardTransactionType["REVERSAL"] = "REVERSAL";
26
+ CardTransactionType["ORIGINAL_CREDIT"] = "ORIGINAL_CREDIT";
27
+ CardTransactionType["FEE"] = "FEE";
28
+ CardTransactionType["DEPOSIT"] = "DEPOSIT";
29
+ CardTransactionType["WITHDRAWAL"] = "WITHDRAWAL";
30
+ })(CardTransactionType || (exports.CardTransactionType = CardTransactionType = {}));
31
+ var WalletTransactionType;
32
+ (function (WalletTransactionType) {
33
+ WalletTransactionType["DEPOSIT"] = "deposit";
34
+ WalletTransactionType["WITHDRAWAL"] = "withdrawal";
35
+ })(WalletTransactionType || (exports.WalletTransactionType = WalletTransactionType = {}));
36
+ var WalletTransactionMethod;
37
+ (function (WalletTransactionMethod) {
38
+ WalletTransactionMethod["P2P"] = "p2p";
39
+ WalletTransactionMethod["CRYPTO"] = "crypto";
40
+ WalletTransactionMethod["BANK_TRANSFER"] = "bank_transfer";
41
+ WalletTransactionMethod["EXCHANGE"] = "exchange";
42
+ WalletTransactionMethod["SBP"] = "sbp";
43
+ })(WalletTransactionMethod || (exports.WalletTransactionMethod = WalletTransactionMethod = {}));
44
+ var WalletTransactionRecordType;
45
+ (function (WalletTransactionRecordType) {
46
+ WalletTransactionRecordType["CARD_PROVIDER_DEPOSIT"] = "CARD_PROVIDER_DEPOSIT";
47
+ WalletTransactionRecordType["CARD_PROVIDER_REFUND"] = "CARD_PROVIDER_REFUND";
48
+ WalletTransactionRecordType["DEPOSIT"] = "DEPOSIT";
49
+ WalletTransactionRecordType["DEPOSIT_CRYPTO_EXTERNAL"] = "DEPOSIT_CRYPTO_EXTERNAL";
50
+ WalletTransactionRecordType["DEPOSIT_CRYPTO_INTERNAL"] = "DEPOSIT_CRYPTO_INTERNAL";
51
+ WalletTransactionRecordType["EXCHANGE_CRYPTO_INTERNAL"] = "EXCHANGE_CRYPTO_INTERNAL";
52
+ WalletTransactionRecordType["EXT_EXCHANGE"] = "EXT_EXCHANGE";
53
+ WalletTransactionRecordType["FEE"] = "FEE";
54
+ WalletTransactionRecordType["NETWORK_FEE"] = "NETWORK_FEE";
55
+ WalletTransactionRecordType["REFUND"] = "REFUND";
56
+ WalletTransactionRecordType["WITHDRAWAL"] = "WITHDRAWAL";
57
+ WalletTransactionRecordType["WITHDRAWAL_CRYPTO_EXTERNAL"] = "WITHDRAWAL_CRYPTO_EXTERNAL";
58
+ WalletTransactionRecordType["WITHDRAWAL_CRYPTO_INTERNAL"] = "WITHDRAWAL_CRYPTO_INTERNAL";
59
+ WalletTransactionRecordType["WHOLESALE_CARD_DEPOSIT"] = "WHOLESALE_CARD_DEPOSIT";
60
+ })(WalletTransactionRecordType || (exports.WalletTransactionRecordType = WalletTransactionRecordType = {}));
61
+ var RequestStatus;
62
+ (function (RequestStatus) {
63
+ RequestStatus["NONE"] = "none";
64
+ RequestStatus["PENDING"] = "pending";
65
+ RequestStatus["FULLFILLED"] = "fulfilled";
66
+ RequestStatus["REJECTED"] = "rejected";
67
+ })(RequestStatus || (exports.RequestStatus = RequestStatus = {}));
68
+ var RequestLoadingType;
69
+ (function (RequestLoadingType) {
70
+ RequestLoadingType["NORMAL"] = "normal";
71
+ RequestLoadingType["TRANSPARENT"] = "transparent";
72
+ })(RequestLoadingType || (exports.RequestLoadingType = RequestLoadingType = {}));
73
+ var ResponseStatus;
74
+ (function (ResponseStatus) {
75
+ ResponseStatus[ResponseStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
76
+ ResponseStatus[ResponseStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
77
+ ResponseStatus[ResponseStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
78
+ ResponseStatus[ResponseStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
79
+ ResponseStatus[ResponseStatus["VERIFICATION_EXPIRED"] = 419] = "VERIFICATION_EXPIRED";
80
+ ResponseStatus[ResponseStatus["UNPROCESSABLE_ENTITY"] = 422] = "UNPROCESSABLE_ENTITY";
81
+ ResponseStatus[ResponseStatus["USER_BLOCKED"] = 423] = "USER_BLOCKED";
82
+ ResponseStatus[ResponseStatus["SERVER_ERROR"] = 500] = "SERVER_ERROR";
83
+ })(ResponseStatus || (exports.ResponseStatus = ResponseStatus = {}));
84
+ var WalletTypeValues;
85
+ (function (WalletTypeValues) {
86
+ WalletTypeValues["BUSINESS"] = "business";
87
+ WalletTypeValues["PERSONAL"] = "personal";
88
+ WalletTypeValues["P2P"] = "trading";
89
+ WalletTypeValues["ESCROW"] = "escrow";
90
+ WalletTypeValues["MERCHANT"] = "merchant";
91
+ WalletTypeValues["EXCHANGE"] = "exchange";
92
+ WalletTypeValues["STAKING"] = "staking";
93
+ WalletTypeValues["VAULT"] = "vault";
94
+ })(WalletTypeValues || (exports.WalletTypeValues = WalletTypeValues = {}));
95
+ exports.walletType = {
96
+ personal: { value: WalletTypeValues.PERSONAL, label: 'Personal' },
97
+ p2p: { value: 'p2p', label: 'P2P' },
98
+ escrow: { value: WalletTypeValues.ESCROW, label: 'Escrow' },
99
+ merchant: { value: WalletTypeValues.MERCHANT, label: 'Merchant' },
100
+ exchange: { value: WalletTypeValues.EXCHANGE, label: 'Exchange' },
101
+ staking: { value: WalletTypeValues.STAKING, label: 'Staking' },
102
+ vault: { value: WalletTypeValues.VAULT, label: 'Vault' },
103
+ };
104
+ exports.defaultPaginationParams = {
105
+ limit: 10,
106
+ offset: 0,
107
+ isLastPage: true,
108
+ };
109
+ var KYCStatuses;
110
+ (function (KYCStatuses) {
111
+ KYCStatuses["APPROVED"] = "APPROVED";
112
+ KYCStatuses["DECLINED"] = "DECLINED";
113
+ KYCStatuses["PENDING"] = "PENDING";
114
+ KYCStatuses["HOLD"] = "HOLD";
115
+ KYCStatuses["DOUBLE"] = "DOUBLE";
116
+ KYCStatuses["SOFT_REJECT"] = "SOFT_REJECT";
117
+ KYCStatuses["REJECT"] = "REJECT";
118
+ KYCStatuses["UNVERIFIED"] = "UNVERIFIED";
119
+ })(KYCStatuses || (exports.KYCStatuses = KYCStatuses = {}));
120
+ var OrderStatuses;
121
+ (function (OrderStatuses) {
122
+ OrderStatuses["NEW"] = "NEW";
123
+ OrderStatuses["PENDING"] = "PENDING";
124
+ OrderStatuses["CANCELED"] = "CANCELED";
125
+ OrderStatuses["COMPLETE"] = "COMPLETE";
126
+ OrderStatuses["ERROR"] = "ERROR";
127
+ OrderStatuses["FAILED"] = "FAILED";
128
+ })(OrderStatuses || (exports.OrderStatuses = OrderStatuses = {}));
129
+ var CardStatus;
130
+ (function (CardStatus) {
131
+ CardStatus["ACTIVE"] = "ACTIVE";
132
+ CardStatus["FROZEN"] = "FROZEN";
133
+ CardStatus["BLOCKED"] = "BLOCKED";
134
+ CardStatus["INACTIVE"] = "INACTIVE";
135
+ CardStatus["CANCELED"] = "CANCELED";
136
+ CardStatus["CLOSED"] = "CLOSED";
137
+ })(CardStatus || (exports.CardStatus = CardStatus = {}));
138
+ var FiatAccountStatus;
139
+ (function (FiatAccountStatus) {
140
+ FiatAccountStatus["ACTIVE"] = "ACTIVE";
141
+ FiatAccountStatus["BLOCKED"] = "BLOCKED";
142
+ FiatAccountStatus["INACTIVE"] = "INACTIVE";
143
+ FiatAccountStatus["CANCELED"] = "CANCELED";
144
+ })(FiatAccountStatus || (exports.FiatAccountStatus = FiatAccountStatus = {}));
145
+ var SubAccountType;
146
+ (function (SubAccountType) {
147
+ SubAccountType["PREPAID"] = "prepaid";
148
+ SubAccountType["BALANCE"] = "balance";
149
+ })(SubAccountType || (exports.SubAccountType = SubAccountType = {}));
150
+ var CurrencyType;
151
+ (function (CurrencyType) {
152
+ CurrencyType["TOKEN"] = "token";
153
+ CurrencyType["NATIVE"] = "native";
154
+ CurrencyType["FIAT"] = "fiat";
155
+ })(CurrencyType || (exports.CurrencyType = CurrencyType = {}));
156
+ var OrderType;
157
+ (function (OrderType) {
158
+ OrderType["DEPOSIT_FIAT_SEPA"] = "DEPOSIT_FIAT_SEPA";
159
+ OrderType["DEPOSIT_FIAT_SWIFT"] = "DEPOSIT_FIAT_SWIFT";
160
+ OrderType["WITHDRAWAL_FIAT_SEPA"] = "WITHDRAWAL_FIAT_SEPA";
161
+ OrderType["TRANSFER_CARD_PREPAID"] = "TRANSFER_CARD_PREPAID";
162
+ OrderType["TRANSFER_CARD_SUBACCOUNT"] = "TRANSFER_CARD_SUBACCOUNT";
163
+ OrderType["WITHDRAWAL_CRYPTO"] = "WITHDRAWAL_CRYPTO";
164
+ OrderType["EXCHANGE_CRYPTO_INTERNAL"] = "EXCHANGE_CRYPTO_INTERNAL";
165
+ OrderType["TRANSFER_CARD_WHOLESALE"] = "TRANSFER_CARD_WHOLESALE";
166
+ })(OrderType || (exports.OrderType = OrderType = {}));
167
+ var APIKeyRole;
168
+ (function (APIKeyRole) {
169
+ APIKeyRole["READ_ONLY"] = "READ_ONLY";
170
+ APIKeyRole["DEVELOPER"] = "DEVELOPER";
171
+ APIKeyRole["PRODUCTION"] = "PRODUCTION";
172
+ })(APIKeyRole || (exports.APIKeyRole = APIKeyRole = {}));
@@ -0,0 +1,5 @@
1
+ export * from './api';
2
+ export * from './utils/apiClientFactory';
3
+ export * from './utils/tokensFactory';
4
+ export * from './constants';
5
+ export * from './api/types';
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
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
+ __exportStar(require("./api"), exports);
18
+ __exportStar(require("./utils/apiClientFactory"), exports);
19
+ __exportStar(require("./utils/tokensFactory"), exports);
20
+ __exportStar(require("./constants"), exports);
21
+ // Also export types if you have any
22
+ __exportStar(require("./api/types"), exports);
@@ -0,0 +1,13 @@
1
+ import { AxiosRequestConfig, AxiosResponse } 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<AxiosResponse<T>>;
9
+ postRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
10
+ deleteRequest: (url: string, config?: AxiosRequestConfig) => Promise<AxiosResponse<any, any>>;
11
+ getRequest: <T>(url: string, config?: AxiosRequestConfig) => Promise<AxiosResponse<T>>;
12
+ };
13
+ export {};
@@ -0,0 +1,132 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createApiClient = void 0;
27
+ /* eslint-disable no-console */
28
+ const sdk_react_1 = require("@telegram-apps/sdk-react");
29
+ const axios_1 = __importDefault(require("axios"));
30
+ const auth_1 = require("../api/auth");
31
+ const constants_1 = require("../constants");
32
+ const storage_1 = require("../utils/storage");
33
+ const tokensFactory_1 = require("../utils/tokensFactory");
34
+ const createApiClient = ({ baseURL, isBearerToken, tenantId }) => {
35
+ const instance = axios_1.default.create({
36
+ baseURL,
37
+ timeout: 60000,
38
+ });
39
+ instance.interceptors.request.use((config) => {
40
+ const access_token = (0, storage_1.getFromLocalStorage)('access_token');
41
+ const modifiedHeaders = Object.assign(Object.assign({}, config.headers), { 'App-Enviroment': (0, sdk_react_1.isTMA)() ? constants_1.AppEnviroment.TELEGRAM : constants_1.AppEnviroment.WEB, 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'x-tenant-id': tenantId });
42
+ if (access_token) {
43
+ const authHeader = isBearerToken ? `Bearer ${access_token}` : access_token;
44
+ modifiedHeaders.Authorization = authHeader;
45
+ }
46
+ return Object.assign(Object.assign({}, config), { headers: modifiedHeaders });
47
+ });
48
+ let isTokenRefreshing = false;
49
+ let requestQueue = [];
50
+ instance.interceptors.response.use((response) => response, (error) => {
51
+ var _a, _b, _c, _d;
52
+ if (typeof window === 'undefined') {
53
+ return Promise.reject(error);
54
+ }
55
+ if (((_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status) === constants_1.ResponseStatus.UNAUTHORIZED) {
56
+ const { response, config: failedRequest } = error;
57
+ const refreshToken = (0, storage_1.getFromLocalStorage)('refresh_token');
58
+ const isRetryRequest = failedRequest.headers['X-Retry-Request'];
59
+ const isRefreshTokenRequest = (_b = response === null || response === void 0 ? void 0 : response.config) === null || _b === void 0 ? void 0 : _b.url.includes(auth_1.refreshTokenPath);
60
+ const isTelegramSignInRequest = (_c = response === null || response === void 0 ? void 0 : response.config) === null || _c === void 0 ? void 0 : _c.url.includes(auth_1.telegramSignInPath);
61
+ const isTelegramSignUpRequest = (_d = response === null || response === void 0 ? void 0 : response.config) === null || _d === void 0 ? void 0 : _d.url.includes(auth_1.telegramSignUpPath);
62
+ const isRefreshNotRequired = !refreshToken && !(0, sdk_react_1.isTMA)();
63
+ const isLogoutNeccesary = isRefreshNotRequired ||
64
+ isTelegramSignInRequest ||
65
+ isTelegramSignUpRequest ||
66
+ isRefreshTokenRequest ||
67
+ isRetryRequest;
68
+ const isRefreshAvailable = (!isTokenRefreshing && typeof refreshToken === 'string') || (0, sdk_react_1.isTMA)();
69
+ if (isLogoutNeccesary) {
70
+ if (typeof window !== 'undefined') {
71
+ // navigate('/auth/logout');
72
+ (0, tokensFactory_1.deleteTokens)();
73
+ }
74
+ requestQueue = [];
75
+ return Promise.reject(response);
76
+ }
77
+ if (isRefreshAvailable) {
78
+ (0, tokensFactory_1.refreshTokens)()
79
+ .then((data) => {
80
+ if (data === null || data === void 0 ? void 0 : data.access_token) {
81
+ requestQueue.forEach((request) => request.resolve());
82
+ requestQueue = [];
83
+ }
84
+ })
85
+ .catch((tokenRefreshError) => {
86
+ if (typeof window !== 'undefined') {
87
+ // navigate('/auth/logout');
88
+ (0, tokensFactory_1.deleteTokens)();
89
+ }
90
+ requestQueue = [];
91
+ return Promise.reject(tokenRefreshError);
92
+ })
93
+ .finally(() => {
94
+ isTokenRefreshing = false;
95
+ });
96
+ }
97
+ return new Promise((res, rej) => {
98
+ requestQueue.push({
99
+ resolve: () => {
100
+ failedRequest.headers['X-Retry-Request'] = 'true';
101
+ return res(instance(failedRequest));
102
+ },
103
+ reject: () => rej(instance(failedRequest)),
104
+ });
105
+ });
106
+ }
107
+ console.error('Axios error', error);
108
+ return Promise.reject(error);
109
+ });
110
+ const patchRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
111
+ const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
112
+ const res = yield instance.patch(url, data, restConfig);
113
+ return res;
114
+ });
115
+ const postRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
116
+ const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
117
+ const res = yield instance.post(url, data, restConfig);
118
+ return res;
119
+ });
120
+ const deleteRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
121
+ const _a = config !== null && config !== void 0 ? config : {}, { data = {} } = _a, restConfig = __rest(_a, ["data"]);
122
+ const res = yield instance.delete(url, Object.assign({ data }, restConfig));
123
+ return res;
124
+ });
125
+ const getRequest = (url, config) => __awaiter(void 0, void 0, void 0, function* () {
126
+ const _a = config !== null && config !== void 0 ? config : {}, { params = {} } = _a, restConfig = __rest(_a, ["params"]);
127
+ const res = yield instance.get(url, Object.assign({ params }, restConfig));
128
+ return res;
129
+ });
130
+ return { patchRequest, postRequest, deleteRequest, getRequest };
131
+ };
132
+ exports.createApiClient = createApiClient;
@@ -0,0 +1,3 @@
1
+ export declare const getFromLocalStorage: (key: string) => string | null;
2
+ export declare const setToLocalStorage: (key: string, value: string) => void;
3
+ export declare const deleteFromLocalStorage: (key: string) => void;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteFromLocalStorage = exports.setToLocalStorage = exports.getFromLocalStorage = void 0;
4
+ const getFromLocalStorage = (key) => {
5
+ if (typeof window === 'undefined') {
6
+ // eslint-disable-next-line no-console
7
+ console.error('call getFromLocalStorage in server side');
8
+ return null;
9
+ }
10
+ return localStorage.getItem(key);
11
+ };
12
+ exports.getFromLocalStorage = getFromLocalStorage;
13
+ const setToLocalStorage = (key, value) => {
14
+ if (typeof window === 'undefined') {
15
+ // eslint-disable-next-line no-console
16
+ console.error('call setToLocalStorage in server side');
17
+ return;
18
+ }
19
+ localStorage.setItem(key, value);
20
+ };
21
+ exports.setToLocalStorage = setToLocalStorage;
22
+ const deleteFromLocalStorage = (key) => {
23
+ if (typeof window === 'undefined') {
24
+ // eslint-disable-next-line no-console
25
+ console.error('call deleteFromLocalStorage in server side');
26
+ return;
27
+ }
28
+ localStorage.removeItem(key);
29
+ };
30
+ exports.deleteFromLocalStorage = deleteFromLocalStorage;
@@ -0,0 +1,12 @@
1
+ type SetTokensProps = {
2
+ access_token: string;
3
+ refresh_token?: string;
4
+ };
5
+ export declare function setTokens({ access_token, refresh_token }: SetTokensProps): void;
6
+ export declare function deleteTokens(): void;
7
+ export declare function refreshTokens(): Promise<import("..").API.Auth.Tokens | null>;
8
+ export declare function getTokens(): {
9
+ access_token: string | null;
10
+ refresh_token: string | null;
11
+ };
12
+ export {};