@zennify/sdk-js 1.0.0-beta.15 → 1.0.0-beta.17

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/utils.js CHANGED
@@ -3,9 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetResponseError = GetResponseError;
4
4
  exports.TreatZennifyResponse = TreatZennifyResponse;
5
5
  const RequestError_1 = require("./RequestError");
6
- function GetResponseError(code, additional = {}) {
7
- return { code, ...additional };
8
- }
6
+ function GetResponseError(code, additional) { return { code, ...additional }; }
9
7
  async function TreatZennifyResponse(response) {
10
8
  const body = await response.json().catch(() => ({}));
11
9
  if (response.ok) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zennify/sdk-js",
3
- "version": "1.0.0-beta.15",
3
+ "version": "1.0.0-beta.17",
4
4
  "description": "A simple package to work with https://api.zennify.app",
5
5
  "main": "dist/main.js",
6
6
  "keywords": [],
@@ -10,7 +10,7 @@ const replacer = (body: any, value: string) => {
10
10
  }
11
11
 
12
12
  type Body = Record<string, any> & {
13
- code: APIErrors
13
+ code: keyof APIErrors
14
14
  }
15
15
 
16
16
  export class ZennifyAPIRequestError extends Error {
package/src/errors.ts CHANGED
@@ -1,102 +1,136 @@
1
- export type APIErrors =
1
+ export interface APIErrors {
2
2
  // = general errors
3
- | 'UNKNOWN_ERROR'
4
- | 'UNKNOWN_TRANSLATION'
5
- | 'METHOD_NOT_ALLOWED'
6
- | 'EXPECTED_AN_OBJECT_ARRAY'
7
- | 'EXPECTED_A_STRING_ARRAY'
8
- | 'EXPECTED_A_NUMBER_ARRAY'
9
- | 'EXPECTED_AN_OBJECT'
10
- | 'EXPECTED_A_NON_EMPTY_OBJECT'
11
- | 'EXPECTED_A_STRING'
12
- | 'EXPECTED_A_NUMBER'
13
- | 'EXPECTED_A_VALID_ID'
14
- | 'DUPLICATED_VALUES_ISNT_ALLOWED'
3
+ 'UNKNOWN_ERROR': {
4
+ id: string | number
5
+ };
6
+ 'UNKNOWN_TRANSLATION': {
7
+ code: keyof APIErrors | string
8
+ };
9
+ 'METHOD_NOT_ALLOWED': {};
10
+ 'EXPECTED_AN_OBJECT_ARRAY': ExpectedAdditionalData;
11
+ 'EXPECTED_A_STRING_ARRAY': ExpectedAdditionalData;
12
+ 'EXPECTED_A_NUMBER_ARRAY': ExpectedAdditionalData;
13
+ 'EXPECTED_AN_OBJECT': ExpectedAdditionalData;
14
+ 'EXPECTED_A_NON_EMPTY_OBJECT': ExpectedAdditionalData;
15
+ 'EXPECTED_A_STRING': ExpectedAdditionalData;
16
+ 'EXPECTED_A_NUMBER': ExpectedAdditionalData;
17
+ 'EXPECTED_A_VALID_ID': ExpectedAdditionalData;
18
+ 'DUPLICATED_VALUES_ISNT_ALLOWED': {};
15
19
  // = oAuth errors
16
- | 'GRANT_CODE_MISSING_IN_QUERY'
17
- | 'INVALID_SCOPE'
18
- | 'VERIFY_YOUR_EMAIL'
19
- | 'PLEASE_REVERIFY'
20
+ 'GRANT_CODE_MISSING_IN_QUERY': {};
21
+ 'INVALID_SCOPE': {};
22
+ 'VERIFY_YOUR_EMAIL': {};
23
+ 'PLEASE_REVERIFY': {};
20
24
  // = user errors
21
- | 'USER_NOT_FOUND'
25
+ 'USER_NOT_FOUND': {};
22
26
  /// password errors
23
- | 'INVALID_PASSWORD'
24
- | 'YOU_MUST_INSERT_THE_ACTUAL_PASSWORD'
25
- | 'THE_PASSWORD_DOES_NOT_MATCH'
26
- | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_8_CHARACTERS'
27
- | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_NUMBER'
28
- | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_LETTER'
29
- | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_SPECIAL_CHARACTER'
27
+ 'INVALID_PASSWORD': {};
28
+ 'YOU_MUST_INSERT_THE_ACTUAL_PASSWORD': {};
29
+ 'THE_PASSWORD_DOES_NOT_MATCH': {};
30
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_8_CHARACTERS': {};
31
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_NUMBER': {};
32
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_LETTER': {};
33
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_SPECIAL_CHARACTER': {};
30
34
  /// pix key errors
31
- | 'THE_EMAIL_SENDED_ISNT_VALID'
32
- | 'CELLPHONE_NUMBERS_MUST_HAVE_THE_9_DIGIT'
33
- | 'THE_CELLPHONE_NUMBER_MUST_HAVE_ONLY_DIGITS'
34
- | 'THE_PIX_KEY_INSERTED_ISNT_VALID'
35
+ 'THE_EMAIL_SENDED_ISNT_VALID': {};
36
+ 'CELLPHONE_NUMBERS_MUST_HAVE_THE_9_DIGIT': {};
37
+ 'THE_CELLPHONE_NUMBER_MUST_HAVE_ONLY_DIGITS': {};
38
+ 'THE_PIX_KEY_INSERTED_ISNT_VALID': {};
35
39
  /// webhook url error
36
- | 'INSERT_A_VALID_URL'
37
- | 'THE_ONLY_ACCEPTED_PROTOCOL_IS_HTTPS'
38
- | 'THIS_DOMAIN_IS_BLACKLISTED'
39
- | 'THE_URL_EXTENSION_ISNT_ACCEPTED_YET'
40
- | 'THE_URL_IS_INACCESSIBLE_BY_THE_WEBHOOK_SERVER'
41
- | 'THE_URL_WOULD_NOT_HAVE_REDIRECTS'
42
- | 'THE_URL_HAS_TIMEOUT_5S'
40
+ 'INSERT_A_VALID_URL': {};
41
+ 'THE_ONLY_ACCEPTED_PROTOCOL_IS_HTTPS': {};
42
+ 'THIS_DOMAIN_IS_BLACKLISTED': {};
43
+ 'THE_URL_EXTENSION_ISNT_ACCEPTED_YET': {};
44
+ 'THE_URL_IS_INACCESSIBLE_BY_THE_WEBHOOK_SERVER': {};
45
+ 'THE_URL_WOULD_NOT_HAVE_REDIRECTS': {};
46
+ 'THE_URL_HAS_TIMEOUT_5S': {};
43
47
  /// payment errors
44
- | 'INVALID_PAYMENT_METHOD'
48
+ 'INVALID_PAYMENT_METHOD': {};
45
49
  // Order Errors
46
- | 'YOU_NEED_TO_INSERT_AT_LEAST_1_ITEM'
47
- | 'ONE_PROVIDED_PRODUCT_IS_OUT_OF_STOCK'
48
- | 'WE_DONT_HAVE_THIS_AMOUNT_IN_STOCK'
49
- | 'THIS_SELLER_WAS_BANNED_FROM_ZENNIFY'
50
- | 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_USER_PRODUCTS'
51
- | 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_STORE_PRODUCTS'
52
- | 'YOU_ALREADY_HAVE_ANOTHER_ORDER_WAITING_PAYMENT'
53
- | 'YOU_INSERTED_AN_INVALID_ADDITIONAL'
50
+ 'YOU_NEED_TO_INSERT_AT_LEAST_1_ITEM': {};
51
+ 'ONE_PROVIDED_PRODUCT_IS_OUT_OF_STOCK': {
52
+ name: string
53
+ };
54
+ 'WE_DONT_HAVE_THIS_AMOUNT_IN_STOCK': {
55
+ name: string,
56
+ received: string | number,
57
+ available: string | number
58
+ };
59
+ 'THIS_SELLER_WAS_BANNED_FROM_ZENNIFY': {};
60
+ 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_USER_PRODUCTS': {
61
+ name: string,
62
+ id: string | number
63
+ };
64
+ 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_STORE_PRODUCTS': {
65
+ name: string
66
+ id: string | number
67
+ };
68
+ 'YOU_ALREADY_HAVE_ANOTHER_ORDER_WAITING_PAYMENT': {
69
+ id: string | number
70
+ };
71
+ 'YOU_INSERTED_AN_INVALID_ADDITIONAL': {
72
+ addon: string
73
+ };
54
74
  /// bad preference configuration
55
- | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_PIX'
56
- | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_BOLETO'
57
- | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_CRYPTO'
75
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_PIX': {};
76
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_BOLETO': {};
77
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_CRYPTO': {};
58
78
  /// coupons
59
- | 'THIS_COUPON_DOES_NOT_EXISTS'
60
- | 'THIS_COUPON_HAS_EXPIRED'
61
- | 'THIS_COUPON_REACHED_THE_USE_LIMIT'
62
- | 'SELECT_MORE_ITENS_TO_REACH_MINIMUM_COUPON_VALUE'
63
- | 'THIS_COUPON_IS_VALID_ONLY_FOR_THE_FIRST_BUY'
79
+ 'THIS_COUPON_DOES_NOT_EXISTS': {
80
+ received: string
81
+ };
82
+ 'THIS_COUPON_HAS_EXPIRED': {};
83
+ 'THIS_COUPON_REACHED_THE_USE_LIMIT': {};
84
+ 'SELECT_MORE_ITENS_TO_REACH_MINIMUM_COUPON_VALUE': {
85
+ formated_value: string,
86
+ value: number
87
+ };
88
+ 'THIS_COUPON_IS_VALID_ONLY_FOR_THE_FIRST_BUY': {};
64
89
  // store errors
65
- | 'UNKNOWN_STORE'
66
- | 'UNKNOWN_BANK'
67
- | 'INVALID_STORE_NAME'
90
+ 'UNKNOWN_STORE': {};
91
+ 'UNKNOWN_BANK': {
92
+ received: string
93
+ };
94
+ 'INVALID_STORE_NAME': {};
68
95
  /// bot errors
69
- | 'WAIT_OR_TRY_AGAIN_WITH_ANOTHER_DISCORD_BOT'
70
- | 'INVALID_DISCORD_BOT_TOKEN'
71
- | 'DISABLE_REQUIRE_CODE_GRANT'
72
- | 'UNKNOWN_DISCORD_CHANNEL'
96
+ 'WAIT_OR_TRY_AGAIN_WITH_ANOTHER_DISCORD_BOT': {};
97
+ 'INVALID_DISCORD_BOT_TOKEN': {};
98
+ 'DISABLE_REQUIRE_CODE_GRANT': {};
99
+ 'UNKNOWN_DISCORD_CHANNEL': {};
73
100
  // product errors
74
- | 'UNKNOWN_PRODUCT'
75
- | 'INVALID_PRODUCT_NAME'
76
- | 'INVALID_PRODUCT_VALUE'
77
- | 'YOU_REACHED_THE_PRODUCT_LIMIT'
78
- | 'PRODUCT_NAME_ALREADY_EXIST'
101
+ 'UNKNOWN_PRODUCT': {};
102
+ 'INVALID_PRODUCT_NAME': {};
103
+ 'INVALID_PRODUCT_VALUE': {};
104
+ 'YOU_REACHED_THE_PRODUCT_LIMIT': {};
105
+ 'PRODUCT_NAME_ALREADY_EXIST': {};
79
106
  /// Description errors
80
- | 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD'
107
+ 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD': {};
81
108
  /// Stock errors
82
- | 'UNKNOWN_STOCK'
83
- | 'INVALID_STOCK_CONTENT'
84
- | 'INVALID_STOCK_COST'
109
+ 'UNKNOWN_STOCK': {};
110
+ 'INVALID_STOCK_CONTENT': {};
111
+ 'INVALID_STOCK_COST': {};
85
112
  // Media Errors
86
- | 'UNKNOWN_FILE'
87
- | 'NO_FILES_FOUND'
88
- | 'INVALID_FILE_TYPE'
89
- | 'INVALID_FILE_NAME'
90
- | 'INVALID_FILE_SIZE'
91
- | 'YOU_REACHED_STORAGE_LIMIT'
92
- | 'YOU_REACHED_MEDIA_LIMIT'
93
- | 'YOU_ALREADY_HAVE_THIS_MEDIA'
94
- | 'MEDIA_NAME_ALREADY_EXIST'
113
+ 'UNKNOWN_FILE': {};
114
+ 'NO_FILES_FOUND': {};
115
+ 'INVALID_FILE_TYPE': {};
116
+ 'INVALID_FILE_NAME': {};
117
+ 'INVALID_FILE_SIZE': {};
118
+ 'YOU_REACHED_STORAGE_LIMIT': {};
119
+ 'YOU_REACHED_MEDIA_LIMIT': {};
120
+ 'YOU_ALREADY_HAVE_THIS_MEDIA': {};
121
+ 'MEDIA_NAME_ALREADY_EXIST': {};
95
122
  // Discord Panels Errors
96
- | 'UNKNOWN_PANEL'
97
- | 'INVALID_PANEL_NAME'
98
- | 'INVALID_PANEL_DESCRIPTION'
99
- | 'INVALID_PANEL_PLACEHOLDER'
100
- | 'YOU_REACHED_PANEL_LIMIT'
101
- | 'PANEL_NAME_ALREADY_EXIST'
102
- | 'YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL'
123
+ 'UNKNOWN_PANEL': {};
124
+ 'INVALID_PANEL_NAME': {};
125
+ 'INVALID_PANEL_DESCRIPTION': {};
126
+ 'INVALID_PANEL_PLACEHOLDER': {};
127
+ 'YOU_REACHED_PANEL_LIMIT': {};
128
+ 'PANEL_NAME_ALREADY_EXIST': {};
129
+ 'YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL': {};
130
+ }
131
+
132
+ type ExpectedAdditionalData = {
133
+ field: string;
134
+ received: any;
135
+ type: string
136
+ }
package/src/utils.ts CHANGED
@@ -1,27 +1,10 @@
1
1
  import { ZennifyAPIRequestError } from './RequestError';
2
2
  import { APIErrors } from './errors';
3
3
 
4
- type ExpectedErrorAdditional = { field: string; received: any; type: string }
5
- type ExpectedError = Extract<
6
- APIErrors,
7
- | 'EXPECTED_AN_OBJECT_ARRAY'
8
- | 'EXPECTED_A_STRING_ARRAY'
9
- | 'EXPECTED_A_NUMBER_ARRAY'
10
- | 'EXPECTED_AN_OBJECT'
11
- | 'EXPECTED_A_NON_EMPTY_OBJECT'
12
- | 'EXPECTED_A_STRING'
13
- | 'EXPECTED_A_NUMBER'
14
- | 'EXPECTED_A_VALID_ID'
15
- >;
16
-
17
- type CommonError = Exclude<APIErrors, ExpectedError>;
18
-
19
- export function GetResponseError(code: CommonError): { code: CommonError };
20
- export function GetResponseError(code: ExpectedError, additional: ExpectedErrorAdditional): { code: ExpectedError } & ExpectedErrorAdditional;
21
- export function GetResponseError<T extends object>(code: CommonError, additional?: T): { code: CommonError } & T;
22
- export function GetResponseError(code: APIErrors, additional: any = {}) {
23
- return { code, ...additional };
24
- }
4
+ export function GetResponseError<Code extends keyof APIErrors>(
5
+ code: Code,
6
+ additional: APIErrors[Code]
7
+ ) { return { code, ...additional }; }
25
8
 
26
9
  export async function TreatZennifyResponse<T extends any>(response: Response): Promise<T> {
27
10
 
@@ -33,4 +16,4 @@ export async function TreatZennifyResponse<T extends any>(response: Response): P
33
16
 
34
17
  throw new ZennifyAPIRequestError(response, body);
35
18
 
36
- }
19
+ }
@@ -192,7 +192,7 @@
192
192
  "message": "Escolha outro método ou aguarde a configuração do vendedor."
193
193
  },
194
194
  "THIS_COUPON_DOES_NOT_EXISTS": {
195
- "name": "O cupom \"{name}\" não existe",
195
+ "name": "O cupom \"{received}\" não existe",
196
196
  "message": "Verifique o código do cupom."
197
197
  },
198
198
  "THIS_COUPON_HAS_EXPIRED": {
@@ -205,7 +205,7 @@
205
205
  },
206
206
  "SELECT_MORE_ITENS_TO_REACH_MINIMUM_COUPON_VALUE": {
207
207
  "name": "Adicione mais itens pra atingir o valor mínimo do cupom",
208
- "message": "O valor mínimo para usar esse cupom é de {value}."
208
+ "message": "O valor mínimo para usar esse cupom é de {formated_value}."
209
209
  },
210
210
  "THIS_COUPON_IS_VALID_ONLY_FOR_THE_FIRST_BUY": {
211
211
  "name": "Cupom válido apenas para a primeira compra",
@@ -217,7 +217,7 @@
217
217
  },
218
218
  "UNKNOWN_BANK": {
219
219
  "name": "Banco não suportado",
220
- "message": "Ainda não suportamos o banco \"{bank}\""
220
+ "message": "Ainda não suportamos o banco \"{received}\""
221
221
  },
222
222
  "INVALID_STORE_NAME": {
223
223
  "name": "Nome de loja inválido",
@@ -333,7 +333,7 @@
333
333
  },
334
334
  "PANEL_NAME_ALREADY_EXIST": {
335
335
  "name": "Você já possui outro painel com este nome",
336
- "message": "Tente alterar o nome"
336
+ "message": "Tente alterar o nome do painel"
337
337
  },
338
338
  "YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL": {
339
339
  "name": "Você atingiu o limite de produtos no painel",
@@ -1,6 +1,6 @@
1
1
  import { APIErrors } from './errors';
2
2
  type Body = Record<string, any> & {
3
- code: APIErrors;
3
+ code: keyof APIErrors;
4
4
  };
5
5
  export declare class ZennifyAPIRequestError extends Error {
6
6
  status: number;
package/types/errors.d.ts CHANGED
@@ -1 +1,119 @@
1
- export type APIErrors = 'UNKNOWN_ERROR' | 'UNKNOWN_TRANSLATION' | 'METHOD_NOT_ALLOWED' | 'EXPECTED_AN_OBJECT_ARRAY' | 'EXPECTED_A_STRING_ARRAY' | 'EXPECTED_A_NUMBER_ARRAY' | 'EXPECTED_AN_OBJECT' | 'EXPECTED_A_NON_EMPTY_OBJECT' | 'EXPECTED_A_STRING' | 'EXPECTED_A_NUMBER' | 'EXPECTED_A_VALID_ID' | 'DUPLICATED_VALUES_ISNT_ALLOWED' | 'GRANT_CODE_MISSING_IN_QUERY' | 'INVALID_SCOPE' | 'VERIFY_YOUR_EMAIL' | 'PLEASE_REVERIFY' | 'USER_NOT_FOUND' | 'INVALID_PASSWORD' | 'YOU_MUST_INSERT_THE_ACTUAL_PASSWORD' | 'THE_PASSWORD_DOES_NOT_MATCH' | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_8_CHARACTERS' | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_NUMBER' | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_LETTER' | 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_SPECIAL_CHARACTER' | 'THE_EMAIL_SENDED_ISNT_VALID' | 'CELLPHONE_NUMBERS_MUST_HAVE_THE_9_DIGIT' | 'THE_CELLPHONE_NUMBER_MUST_HAVE_ONLY_DIGITS' | 'THE_PIX_KEY_INSERTED_ISNT_VALID' | 'INSERT_A_VALID_URL' | 'THE_ONLY_ACCEPTED_PROTOCOL_IS_HTTPS' | 'THIS_DOMAIN_IS_BLACKLISTED' | 'THE_URL_EXTENSION_ISNT_ACCEPTED_YET' | 'THE_URL_IS_INACCESSIBLE_BY_THE_WEBHOOK_SERVER' | 'THE_URL_WOULD_NOT_HAVE_REDIRECTS' | 'THE_URL_HAS_TIMEOUT_5S' | 'INVALID_PAYMENT_METHOD' | 'YOU_NEED_TO_INSERT_AT_LEAST_1_ITEM' | 'ONE_PROVIDED_PRODUCT_IS_OUT_OF_STOCK' | 'WE_DONT_HAVE_THIS_AMOUNT_IN_STOCK' | 'THIS_SELLER_WAS_BANNED_FROM_ZENNIFY' | 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_USER_PRODUCTS' | 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_STORE_PRODUCTS' | 'YOU_ALREADY_HAVE_ANOTHER_ORDER_WAITING_PAYMENT' | 'YOU_INSERTED_AN_INVALID_ADDITIONAL' | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_PIX' | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_BOLETO' | 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_CRYPTO' | 'THIS_COUPON_DOES_NOT_EXISTS' | 'THIS_COUPON_HAS_EXPIRED' | 'THIS_COUPON_REACHED_THE_USE_LIMIT' | 'SELECT_MORE_ITENS_TO_REACH_MINIMUM_COUPON_VALUE' | 'THIS_COUPON_IS_VALID_ONLY_FOR_THE_FIRST_BUY' | 'UNKNOWN_STORE' | 'UNKNOWN_BANK' | 'INVALID_STORE_NAME' | 'WAIT_OR_TRY_AGAIN_WITH_ANOTHER_DISCORD_BOT' | 'INVALID_DISCORD_BOT_TOKEN' | 'DISABLE_REQUIRE_CODE_GRANT' | 'UNKNOWN_DISCORD_CHANNEL' | 'UNKNOWN_PRODUCT' | 'INVALID_PRODUCT_NAME' | 'INVALID_PRODUCT_VALUE' | 'YOU_REACHED_THE_PRODUCT_LIMIT' | 'PRODUCT_NAME_ALREADY_EXIST' | 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD' | 'UNKNOWN_STOCK' | 'INVALID_STOCK_CONTENT' | 'INVALID_STOCK_COST' | 'UNKNOWN_FILE' | 'NO_FILES_FOUND' | 'INVALID_FILE_TYPE' | 'INVALID_FILE_NAME' | 'INVALID_FILE_SIZE' | 'YOU_REACHED_STORAGE_LIMIT' | 'YOU_REACHED_MEDIA_LIMIT' | 'YOU_ALREADY_HAVE_THIS_MEDIA' | 'MEDIA_NAME_ALREADY_EXIST' | 'UNKNOWN_PANEL' | 'INVALID_PANEL_NAME' | 'INVALID_PANEL_DESCRIPTION' | 'INVALID_PANEL_PLACEHOLDER' | 'YOU_REACHED_PANEL_LIMIT' | 'PANEL_NAME_ALREADY_EXIST' | 'YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL';
1
+ export interface APIErrors {
2
+ 'UNKNOWN_ERROR': {
3
+ id: string | number;
4
+ };
5
+ 'UNKNOWN_TRANSLATION': {
6
+ code: keyof APIErrors | string;
7
+ };
8
+ 'METHOD_NOT_ALLOWED': {};
9
+ 'EXPECTED_AN_OBJECT_ARRAY': ExpectedAdditionalData;
10
+ 'EXPECTED_A_STRING_ARRAY': ExpectedAdditionalData;
11
+ 'EXPECTED_A_NUMBER_ARRAY': ExpectedAdditionalData;
12
+ 'EXPECTED_AN_OBJECT': ExpectedAdditionalData;
13
+ 'EXPECTED_A_NON_EMPTY_OBJECT': ExpectedAdditionalData;
14
+ 'EXPECTED_A_STRING': ExpectedAdditionalData;
15
+ 'EXPECTED_A_NUMBER': ExpectedAdditionalData;
16
+ 'EXPECTED_A_VALID_ID': ExpectedAdditionalData;
17
+ 'DUPLICATED_VALUES_ISNT_ALLOWED': {};
18
+ 'GRANT_CODE_MISSING_IN_QUERY': {};
19
+ 'INVALID_SCOPE': {};
20
+ 'VERIFY_YOUR_EMAIL': {};
21
+ 'PLEASE_REVERIFY': {};
22
+ 'USER_NOT_FOUND': {};
23
+ 'INVALID_PASSWORD': {};
24
+ 'YOU_MUST_INSERT_THE_ACTUAL_PASSWORD': {};
25
+ 'THE_PASSWORD_DOES_NOT_MATCH': {};
26
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_8_CHARACTERS': {};
27
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_NUMBER': {};
28
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_LETTER': {};
29
+ 'THE_PASSWORD_MUST_HAVE_AT_LEAST_ONE_SPECIAL_CHARACTER': {};
30
+ 'THE_EMAIL_SENDED_ISNT_VALID': {};
31
+ 'CELLPHONE_NUMBERS_MUST_HAVE_THE_9_DIGIT': {};
32
+ 'THE_CELLPHONE_NUMBER_MUST_HAVE_ONLY_DIGITS': {};
33
+ 'THE_PIX_KEY_INSERTED_ISNT_VALID': {};
34
+ 'INSERT_A_VALID_URL': {};
35
+ 'THE_ONLY_ACCEPTED_PROTOCOL_IS_HTTPS': {};
36
+ 'THIS_DOMAIN_IS_BLACKLISTED': {};
37
+ 'THE_URL_EXTENSION_ISNT_ACCEPTED_YET': {};
38
+ 'THE_URL_IS_INACCESSIBLE_BY_THE_WEBHOOK_SERVER': {};
39
+ 'THE_URL_WOULD_NOT_HAVE_REDIRECTS': {};
40
+ 'THE_URL_HAS_TIMEOUT_5S': {};
41
+ 'INVALID_PAYMENT_METHOD': {};
42
+ 'YOU_NEED_TO_INSERT_AT_LEAST_1_ITEM': {};
43
+ 'ONE_PROVIDED_PRODUCT_IS_OUT_OF_STOCK': {
44
+ name: string;
45
+ };
46
+ 'WE_DONT_HAVE_THIS_AMOUNT_IN_STOCK': {
47
+ name: string;
48
+ received: string | number;
49
+ available: string | number;
50
+ };
51
+ 'THIS_SELLER_WAS_BANNED_FROM_ZENNIFY': {};
52
+ 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_USER_PRODUCTS': {
53
+ name: string;
54
+ id: string | number;
55
+ };
56
+ 'WE_DO_NOT_YET_SUPPORT_MULTIPLE_STORE_PRODUCTS': {
57
+ name: string;
58
+ id: string | number;
59
+ };
60
+ 'YOU_ALREADY_HAVE_ANOTHER_ORDER_WAITING_PAYMENT': {
61
+ id: string | number;
62
+ };
63
+ 'YOU_INSERTED_AN_INVALID_ADDITIONAL': {
64
+ addon: string;
65
+ };
66
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_PIX': {};
67
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_BOLETO': {};
68
+ 'THIS_SELLER_HAS_NOT_YET_CONFIGURED_RECEIPT_VIA_CRYPTO': {};
69
+ 'THIS_COUPON_DOES_NOT_EXISTS': {
70
+ received: string;
71
+ };
72
+ 'THIS_COUPON_HAS_EXPIRED': {};
73
+ 'THIS_COUPON_REACHED_THE_USE_LIMIT': {};
74
+ 'SELECT_MORE_ITENS_TO_REACH_MINIMUM_COUPON_VALUE': {
75
+ formated_value: string;
76
+ value: number;
77
+ };
78
+ 'THIS_COUPON_IS_VALID_ONLY_FOR_THE_FIRST_BUY': {};
79
+ 'UNKNOWN_STORE': {};
80
+ 'UNKNOWN_BANK': {
81
+ received: string;
82
+ };
83
+ 'INVALID_STORE_NAME': {};
84
+ 'WAIT_OR_TRY_AGAIN_WITH_ANOTHER_DISCORD_BOT': {};
85
+ 'INVALID_DISCORD_BOT_TOKEN': {};
86
+ 'DISABLE_REQUIRE_CODE_GRANT': {};
87
+ 'UNKNOWN_DISCORD_CHANNEL': {};
88
+ 'UNKNOWN_PRODUCT': {};
89
+ 'INVALID_PRODUCT_NAME': {};
90
+ 'INVALID_PRODUCT_VALUE': {};
91
+ 'YOU_REACHED_THE_PRODUCT_LIMIT': {};
92
+ 'PRODUCT_NAME_ALREADY_EXIST': {};
93
+ 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD': {};
94
+ 'UNKNOWN_STOCK': {};
95
+ 'INVALID_STOCK_CONTENT': {};
96
+ 'INVALID_STOCK_COST': {};
97
+ 'UNKNOWN_FILE': {};
98
+ 'NO_FILES_FOUND': {};
99
+ 'INVALID_FILE_TYPE': {};
100
+ 'INVALID_FILE_NAME': {};
101
+ 'INVALID_FILE_SIZE': {};
102
+ 'YOU_REACHED_STORAGE_LIMIT': {};
103
+ 'YOU_REACHED_MEDIA_LIMIT': {};
104
+ 'YOU_ALREADY_HAVE_THIS_MEDIA': {};
105
+ 'MEDIA_NAME_ALREADY_EXIST': {};
106
+ 'UNKNOWN_PANEL': {};
107
+ 'INVALID_PANEL_NAME': {};
108
+ 'INVALID_PANEL_DESCRIPTION': {};
109
+ 'INVALID_PANEL_PLACEHOLDER': {};
110
+ 'YOU_REACHED_PANEL_LIMIT': {};
111
+ 'PANEL_NAME_ALREADY_EXIST': {};
112
+ 'YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL': {};
113
+ }
114
+ type ExpectedAdditionalData = {
115
+ field: string;
116
+ received: any;
117
+ type: string;
118
+ };
119
+ export {};
package/types/utils.d.ts CHANGED
@@ -1,19 +1,5 @@
1
1
  import { APIErrors } from './errors';
2
- type ExpectedErrorAdditional = {
3
- field: string;
4
- received: any;
5
- type: string;
6
- };
7
- type ExpectedError = Extract<APIErrors, 'EXPECTED_AN_OBJECT_ARRAY' | 'EXPECTED_A_STRING_ARRAY' | 'EXPECTED_A_NUMBER_ARRAY' | 'EXPECTED_AN_OBJECT' | 'EXPECTED_A_NON_EMPTY_OBJECT' | 'EXPECTED_A_STRING' | 'EXPECTED_A_NUMBER' | 'EXPECTED_A_VALID_ID'>;
8
- type CommonError = Exclude<APIErrors, ExpectedError>;
9
- export declare function GetResponseError(code: CommonError): {
10
- code: CommonError;
11
- };
12
- export declare function GetResponseError(code: ExpectedError, additional: ExpectedErrorAdditional): {
13
- code: ExpectedError;
14
- } & ExpectedErrorAdditional;
15
- export declare function GetResponseError<T extends object>(code: CommonError, additional?: T): {
16
- code: CommonError;
17
- } & T;
2
+ export declare function GetResponseError<Code extends keyof APIErrors>(code: Code, additional: APIErrors[Code]): {
3
+ code: Code;
4
+ } & APIErrors[Code];
18
5
  export declare function TreatZennifyResponse<T extends any>(response: Response): Promise<T>;
19
- export {};