@zennify/sdk-js 1.0.0-beta.14 → 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.14",
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,101 +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'
96
+ 'WAIT_OR_TRY_AGAIN_WITH_ANOTHER_DISCORD_BOT': {};
97
+ 'INVALID_DISCORD_BOT_TOKEN': {};
98
+ 'DISABLE_REQUIRE_CODE_GRANT': {};
99
+ 'UNKNOWN_DISCORD_CHANNEL': {};
72
100
  // product errors
73
- | 'UNKNOWN_PRODUCT'
74
- | 'INVALID_PRODUCT_NAME'
75
- | 'INVALID_PRODUCT_VALUE'
76
- | 'YOU_REACHED_THE_PRODUCT_LIMIT'
77
- | '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': {};
78
106
  /// Description errors
79
- | 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD'
107
+ 'INVALID_PRODUCT_DESCRIPTION_FOR_DISCORD': {};
80
108
  /// Stock errors
81
- | 'UNKNOWN_STOCK'
82
- | 'INVALID_STOCK_CONTENT'
83
- | 'INVALID_STOCK_COST'
109
+ 'UNKNOWN_STOCK': {};
110
+ 'INVALID_STOCK_CONTENT': {};
111
+ 'INVALID_STOCK_COST': {};
84
112
  // Media Errors
85
- | 'UNKNOWN_FILE'
86
- | 'NO_FILES_FOUND'
87
- | 'INVALID_FILE_TYPE'
88
- | 'INVALID_FILE_NAME'
89
- | 'INVALID_FILE_SIZE'
90
- | 'YOU_REACHED_STORAGE_LIMIT'
91
- | 'YOU_REACHED_MEDIA_LIMIT'
92
- | 'YOU_ALREADY_HAVE_THIS_MEDIA'
93
- | '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': {};
94
122
  // Discord Panels Errors
95
- | 'UNKNOWN_PANEL'
96
- | 'INVALID_PANEL_NAME'
97
- | 'INVALID_PANEL_DESCRIPTION'
98
- | 'INVALID_PANEL_PLACEHOLDER'
99
- | 'YOU_REACHED_PANEL_LIMIT'
100
- | 'PANEL_NAME_ALREADY_EXIST'
101
- | '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
+ }
@@ -235,6 +235,10 @@
235
235
  "name": "Disable \"Require code grant\"",
236
236
  "message": "With it enabled, you won't be able to invite the bot."
237
237
  },
238
+ "UNKNOWN_DISCORD_CHANNEL": {
239
+ "name": "Unknown Discord channel",
240
+ "message": "Perhaps this channel no longer exists."
241
+ },
238
242
  "UNKNOWN_PRODUCT": {
239
243
  "name": "Unknown product",
240
244
  "message": "Perhaps this product no longer exists."
@@ -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",
@@ -235,6 +235,10 @@
235
235
  "name": "Desabilite o \"Require code grant\"",
236
236
  "message": "Com ele ativado você não conseguirá convidar o bot"
237
237
  },
238
+ "UNKNOWN_DISCORD_CHANNEL": {
239
+ "name": "Canal do Discord desconhecido",
240
+ "message": "Talvez esse canal não exista mais."
241
+ },
238
242
  "UNKNOWN_PRODUCT": {
239
243
  "name": "Produto desconhecido",
240
244
  "message": "Talvez esse produto não exista mais."
@@ -329,7 +333,7 @@
329
333
  },
330
334
  "PANEL_NAME_ALREADY_EXIST": {
331
335
  "name": "Você já possui outro painel com este nome",
332
- "message": "Tente alterar o nome"
336
+ "message": "Tente alterar o nome do painel"
333
337
  },
334
338
  "YOU_REACHED_THE_PRODUCT_LIMIT_ON_PANEL": {
335
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_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 {};