@forgepack/request 1.0.4

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 (87) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +164 -0
  3. package/dist/api/api.d.ts +8 -0
  4. package/dist/api/api.d.ts.map +1 -0
  5. package/dist/api/api.js +35 -0
  6. package/dist/api/client.d.ts +30 -0
  7. package/dist/api/client.d.ts.map +1 -0
  8. package/dist/api/client.js +50 -0
  9. package/dist/component/auth.d.ts +8 -0
  10. package/dist/component/auth.d.ts.map +1 -0
  11. package/dist/component/auth.js +9 -0
  12. package/dist/component/errorMessage.d.ts +6 -0
  13. package/dist/component/errorMessage.d.ts.map +1 -0
  14. package/dist/component/errorMessage.js +7 -0
  15. package/dist/component/request.d.ts +13 -0
  16. package/dist/component/request.d.ts.map +1 -0
  17. package/dist/component/request.js +12 -0
  18. package/dist/component/response.d.ts +13 -0
  19. package/dist/component/response.d.ts.map +1 -0
  20. package/dist/component/response.js +13 -0
  21. package/dist/component/token.d.ts +32 -0
  22. package/dist/component/token.d.ts.map +1 -0
  23. package/dist/component/token.js +16 -0
  24. package/dist/hook/useProvider.d.ts +13 -0
  25. package/dist/hook/useProvider.d.ts.map +1 -0
  26. package/dist/hook/useProvider.js +51 -0
  27. package/dist/hook/useRequest.d.ts +11 -0
  28. package/dist/hook/useRequest.d.ts.map +1 -0
  29. package/dist/hook/useRequest.js +38 -0
  30. package/dist/hook/useRequireAuth.d.ts +4 -0
  31. package/dist/hook/useRequireAuth.d.ts.map +1 -0
  32. package/dist/hook/useRequireAuth.js +21 -0
  33. package/dist/hooks/AuthContext.d.ts +19 -0
  34. package/dist/hooks/AuthContext.d.ts.map +1 -0
  35. package/dist/hooks/AuthContext.js +10 -0
  36. package/dist/hooks/AuthProvider.d.ts +27 -0
  37. package/dist/hooks/AuthProvider.d.ts.map +1 -0
  38. package/dist/hooks/AuthProvider.js +71 -0
  39. package/dist/hooks/useAuth.d.ts +33 -0
  40. package/dist/hooks/useAuth.d.ts.map +1 -0
  41. package/dist/hooks/useAuth.js +50 -0
  42. package/dist/hooks/useRequest.d.ts +37 -0
  43. package/dist/hooks/useRequest.d.ts.map +1 -0
  44. package/dist/hooks/useRequest.js +63 -0
  45. package/dist/index.d.ts +29 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +49 -0
  48. package/dist/service/crud.d.ts +15 -0
  49. package/dist/service/crud.d.ts.map +1 -0
  50. package/dist/service/crud.js +116 -0
  51. package/dist/service/fetchPage.d.ts +5 -0
  52. package/dist/service/fetchPage.d.ts.map +1 -0
  53. package/dist/service/fetchPage.js +22 -0
  54. package/dist/service/token.d.ts +10 -0
  55. package/dist/service/token.d.ts.map +1 -0
  56. package/dist/service/token.js +93 -0
  57. package/dist/services/api.d.ts +33 -0
  58. package/dist/services/api.d.ts.map +1 -0
  59. package/dist/services/api.js +50 -0
  60. package/dist/services/auth.d.ts +51 -0
  61. package/dist/services/auth.d.ts.map +1 -0
  62. package/dist/services/auth.js +117 -0
  63. package/dist/services/crud.d.ts +120 -0
  64. package/dist/services/crud.d.ts.map +1 -0
  65. package/dist/services/crud.js +199 -0
  66. package/dist/services/token.d.ts +88 -0
  67. package/dist/services/token.d.ts.map +1 -0
  68. package/dist/services/token.js +176 -0
  69. package/dist/types/auth.d.ts +64 -0
  70. package/dist/types/auth.d.ts.map +1 -0
  71. package/dist/types/auth.js +2 -0
  72. package/dist/types/error.d.ts +11 -0
  73. package/dist/types/error.d.ts.map +1 -0
  74. package/dist/types/error.js +2 -0
  75. package/dist/types/request.d.ts +25 -0
  76. package/dist/types/request.d.ts.map +1 -0
  77. package/dist/types/request.js +2 -0
  78. package/dist/types/response.d.ts +44 -0
  79. package/dist/types/response.d.ts.map +1 -0
  80. package/dist/types/response.js +2 -0
  81. package/dist/types/token.d.ts +43 -0
  82. package/dist/types/token.d.ts.map +1 -0
  83. package/dist/types/token.js +2 -0
  84. package/dist/utils/constants.d.ts +41 -0
  85. package/dist/utils/constants.d.ts.map +1 -0
  86. package/dist/utils/constants.js +73 -0
  87. package/package.json +57 -0
@@ -0,0 +1,88 @@
1
+ import { Auth } from '../types/auth';
2
+ import { Header, Payload } from '../types/token';
3
+ /**
4
+ * Verifica se o token JWT atual é válido e não expirado
5
+ *
6
+ * @returns true se o token for válido e não expirado, false caso contrário
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * if (isValidToken()) {
11
+ * // Usuário autenticado
12
+ * } else {
13
+ * // Redirecionar para login
14
+ * }
15
+ * ```
16
+ */
17
+ export declare const isValidToken: () => boolean;
18
+ /**
19
+ * Recupera o token JWT armazenado no localStorage
20
+ *
21
+ * @returns Objeto Auth com dados do token ou estado inicial se inválido
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const token = getToken()
26
+ * console.log(token.accessToken)
27
+ * ```
28
+ */
29
+ export declare const getToken: () => Auth;
30
+ /**
31
+ * Armazena o token JWT no localStorage
32
+ *
33
+ * @param token - Dados de autenticação a serem armazenados
34
+ *
35
+ * @example
36
+ * ```typescript
37
+ * setToken({
38
+ * accessToken: 'jwt-token',
39
+ * refreshToken: 'refresh-token',
40
+ * tokenType: 'Bearer',
41
+ * role: ['USER']
42
+ * })
43
+ * ```
44
+ */
45
+ export declare const setToken: (token: any) => void;
46
+ /**
47
+ * Remove o token JWT do localStorage
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * removeToken() // Usuário será deslogado
52
+ * ```
53
+ */
54
+ export declare const removeToken: () => void;
55
+ /**
56
+ * Decodifica e retorna o payload do token JWT
57
+ *
58
+ * @returns Objeto Payload com informações do token ou estado inicial se inválido
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const payload = getPayload()
63
+ * console.log(payload.exp) // Data de expiração
64
+ * console.log(payload.sub) // Subject (ID do usuário)
65
+ * ```
66
+ */
67
+ export declare const getPayload: () => Payload;
68
+ /**
69
+ * Decodifica o token JWT e retorna o payload como string
70
+ *
71
+ * @deprecated Use getPayload() para uma abordagem mais segura
72
+ * @returns String com payload decodificado ou null se inválido
73
+ */
74
+ export declare const decodeJwt: () => string | null;
75
+ /**
76
+ * Decodifica e retorna o cabeçalho do token JWT
77
+ *
78
+ * @returns Objeto Header com informações do cabeçalho ou estado inicial se inválido
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const header = getHeader()
83
+ * console.log(header.alg) // Algoritmo usado
84
+ * console.log(header.typ) // Tipo do token
85
+ * ```
86
+ */
87
+ export declare const getHeader: () => Header;
88
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/services/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAiBhD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,QAAO,OAY/B,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,QAAO,IAG3B,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,GAAG,KAAG,IAErC,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,YAEvB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,QAAO,OAoB7B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,qBAUrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,QAAO,MAoB5B,CAAA"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHeader = exports.decodeJwt = exports.getPayload = exports.removeToken = exports.setToken = exports.getToken = exports.isValidToken = void 0;
4
+ const constants_1 = require("../utils/constants");
5
+ /**
6
+ * Verifica se uma string é um JSON válido
7
+ *
8
+ * @param json - String a ser verificada
9
+ * @returns true se for JSON válido, false caso contrário
10
+ */
11
+ const isValidJSON = (json) => {
12
+ try {
13
+ JSON.parse(json);
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ };
20
+ /**
21
+ * Verifica se o token JWT atual é válido e não expirado
22
+ *
23
+ * @returns true se o token for válido e não expirado, false caso contrário
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * if (isValidToken()) {
28
+ * // Usuário autenticado
29
+ * } else {
30
+ * // Redirecionar para login
31
+ * }
32
+ * ```
33
+ */
34
+ const isValidToken = () => {
35
+ try {
36
+ const token = (0, exports.getToken)();
37
+ if (!(token === null || token === void 0 ? void 0 : token.accessToken))
38
+ return false;
39
+ const { exp } = (0, exports.getPayload)();
40
+ if (typeof exp !== 'number')
41
+ return false;
42
+ return exp * 1000 > Date.now();
43
+ }
44
+ catch {
45
+ return false;
46
+ }
47
+ };
48
+ exports.isValidToken = isValidToken;
49
+ /**
50
+ * Recupera o token JWT armazenado no localStorage
51
+ *
52
+ * @returns Objeto Auth com dados do token ou estado inicial se inválido
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const token = getToken()
57
+ * console.log(token.accessToken)
58
+ * ```
59
+ */
60
+ const getToken = () => {
61
+ let token = `${localStorage.getItem(`token`)}`;
62
+ return isValidJSON(token) ? JSON.parse(token) : constants_1.initialAuth;
63
+ };
64
+ exports.getToken = getToken;
65
+ /**
66
+ * Armazena o token JWT no localStorage
67
+ *
68
+ * @param token - Dados de autenticação a serem armazenados
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * setToken({
73
+ * accessToken: 'jwt-token',
74
+ * refreshToken: 'refresh-token',
75
+ * tokenType: 'Bearer',
76
+ * role: ['USER']
77
+ * })
78
+ * ```
79
+ */
80
+ const setToken = (token) => {
81
+ localStorage.setItem(`token`, JSON.stringify(token));
82
+ };
83
+ exports.setToken = setToken;
84
+ /**
85
+ * Remove o token JWT do localStorage
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * removeToken() // Usuário será deslogado
90
+ * ```
91
+ */
92
+ const removeToken = () => {
93
+ localStorage.removeItem('token');
94
+ };
95
+ exports.removeToken = removeToken;
96
+ /**
97
+ * Decodifica e retorna o payload do token JWT
98
+ *
99
+ * @returns Objeto Payload com informações do token ou estado inicial se inválido
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * const payload = getPayload()
104
+ * console.log(payload.exp) // Data de expiração
105
+ * console.log(payload.sub) // Subject (ID do usuário)
106
+ * ```
107
+ */
108
+ const getPayload = () => {
109
+ try {
110
+ const token = (0, exports.getToken)();
111
+ if (!(token === null || token === void 0 ? void 0 : token.accessToken))
112
+ return constants_1.initialPayload;
113
+ const base64 = token.accessToken.split('.')[1]
114
+ .replace(/-/g, '+')
115
+ .replace(/_/g, '/');
116
+ const payload = decodeURIComponent(atob(base64)
117
+ .split('')
118
+ .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
119
+ .join(''));
120
+ return isValidJSON(payload) ? JSON.parse(payload) : constants_1.initialPayload;
121
+ }
122
+ catch {
123
+ return constants_1.initialPayload;
124
+ }
125
+ };
126
+ exports.getPayload = getPayload;
127
+ /**
128
+ * Decodifica o token JWT e retorna o payload como string
129
+ *
130
+ * @deprecated Use getPayload() para uma abordagem mais segura
131
+ * @returns String com payload decodificado ou null se inválido
132
+ */
133
+ const decodeJwt = () => {
134
+ if ((0, exports.getToken)() !== null) {
135
+ var base64Url = (0, exports.getToken)().accessToken.split('.')[1];
136
+ var base64 = decodeURIComponent(atob(base64Url).split('').map((c) => {
137
+ return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
138
+ }).join(''));
139
+ return base64;
140
+ }
141
+ else {
142
+ return null;
143
+ }
144
+ };
145
+ exports.decodeJwt = decodeJwt;
146
+ /**
147
+ * Decodifica e retorna o cabeçalho do token JWT
148
+ *
149
+ * @returns Objeto Header com informações do cabeçalho ou estado inicial se inválido
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const header = getHeader()
154
+ * console.log(header.alg) // Algoritmo usado
155
+ * console.log(header.typ) // Tipo do token
156
+ * ```
157
+ */
158
+ const getHeader = () => {
159
+ try {
160
+ const token = (0, exports.getToken)();
161
+ if (!(token === null || token === void 0 ? void 0 : token.accessToken))
162
+ return constants_1.initialHeader;
163
+ const base64 = token.accessToken.split('.')[0]
164
+ .replace(/-/g, '+')
165
+ .replace(/_/g, '/');
166
+ const header = decodeURIComponent(atob(base64)
167
+ .split('')
168
+ .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
169
+ .join(''));
170
+ return isValidJSON(header) ? JSON.parse(header) : constants_1.initialHeader;
171
+ }
172
+ catch {
173
+ return constants_1.initialHeader;
174
+ }
175
+ };
176
+ exports.getHeader = getHeader;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Interface que representa os dados de autenticação do usuário
3
+ * @interface Auth
4
+ */
5
+ export interface Auth {
6
+ /** Token de acesso JWT para autenticação */
7
+ readonly accessToken: string;
8
+ /** Token para renovação da sessão */
9
+ refreshToken: string;
10
+ /** Tipo do token (geralmente "Bearer") */
11
+ tokenType: string;
12
+ /** Lista de roles/permissões do usuário */
13
+ role: string[];
14
+ }
15
+ /**
16
+ * Interface para credenciais de login
17
+ * @interface LoginCredentials
18
+ */
19
+ export interface LoginCredentials {
20
+ /** Nome de usuário ou email */
21
+ username: string;
22
+ /** Senha do usuário */
23
+ password: string;
24
+ }
25
+ /**
26
+ * Interface para resposta de login
27
+ * @interface LoginResponse
28
+ */
29
+ export interface LoginResponse {
30
+ /** Indica se o login foi bem-sucedido */
31
+ success: boolean;
32
+ /** Dados de autenticação (se sucesso) */
33
+ data?: Auth;
34
+ /** Erros de validação (se falha) */
35
+ errors?: Array<{
36
+ field: string;
37
+ message: string;
38
+ }>;
39
+ }
40
+ /**
41
+ * Interface para alteração de senha
42
+ * @interface ChangePasswordData
43
+ */
44
+ export interface ChangePasswordData {
45
+ /** Senha atual */
46
+ currentPassword: string;
47
+ /** Nova senha */
48
+ newPassword: string;
49
+ /** Confirmação da nova senha */
50
+ confirmPassword?: string;
51
+ }
52
+ /**
53
+ * Interface genérica para reset de senha
54
+ * @interface ResetPasswordData
55
+ */
56
+ export interface ResetPasswordData {
57
+ /** Email para reset */
58
+ email?: string;
59
+ /** Token de reset */
60
+ token?: string;
61
+ /** Nova senha */
62
+ newPassword?: string;
63
+ }
64
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,IAAI;IACjB,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qCAAqC;IACxC,YAAY,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC7C,SAAS,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC9C,IAAI,EAAE,MAAM,EAAE,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,oCAAoC;IACpC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,kBAAkB;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAC9B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Interface que representa uma mensagem de erro de validação
3
+ * @interface ErrorMessage
4
+ */
5
+ export interface ErrorMessage {
6
+ /** Nome do campo que contém o erro */
7
+ field: string;
8
+ /** Mensagem descritiva do erro */
9
+ message: string;
10
+ }
11
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/types/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Interface que define os parâmetros de ordenação
3
+ * @interface Sort
4
+ */
5
+ export interface Sort {
6
+ /** Campo pelo qual ordenar */
7
+ key: string;
8
+ /** Direção da ordenação */
9
+ order: 'ASC' | 'DESC';
10
+ }
11
+ /**
12
+ * Interface que define os parâmetros de busca e paginação
13
+ * @interface Search
14
+ */
15
+ export interface Search {
16
+ /** Termo de busca/filtro */
17
+ value?: string;
18
+ /** Número da página (baseado em zero) */
19
+ page?: number;
20
+ /** Quantidade de itens por página */
21
+ size?: number;
22
+ /** Configuração de ordenação */
23
+ sort?: Sort;
24
+ }
25
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/types/request.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,IAAI;IACjB,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,IAAI,CAAC,EAAE,IAAI,CAAA;CACd"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Interface que representa as informações de paginação
3
+ * @interface PageInfo
4
+ */
5
+ export interface PageInfo {
6
+ /** Tamanho da página atual */
7
+ size: number;
8
+ /** Número da página atual */
9
+ number: number;
10
+ /** Total de elementos em todas as páginas */
11
+ totalElements: number;
12
+ /** Total de páginas disponíveis */
13
+ totalPages: number;
14
+ }
15
+ /**
16
+ * Interface genérica que representa uma resposta paginada da API
17
+ * @template T Tipo dos elementos contidos na página
18
+ * @interface Page
19
+ */
20
+ export interface Page<T = unknown> {
21
+ /** Array com os elementos da página atual */
22
+ content: T[];
23
+ /** Informações de paginação */
24
+ page: PageInfo;
25
+ }
26
+ /**
27
+ * Interface para respostas de API genéricas
28
+ * @template T Tipo dos dados retornados
29
+ * @interface ApiResponse
30
+ */
31
+ export interface ApiResponse<T = unknown> {
32
+ /** Indica se a operação foi bem-sucedida */
33
+ success: boolean;
34
+ /** Dados retornados (se sucesso) */
35
+ data?: T;
36
+ /** Mensagem de resposta */
37
+ message?: string;
38
+ /** Erros de validação (se falha) */
39
+ errors?: Array<{
40
+ field: string;
41
+ message: string;
42
+ }>;
43
+ }
44
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/types/response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAChC,MAAM,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAChD,aAAa,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACtC,UAAU,EAAE,MAAM,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,GAAG,OAAO;IAC7B,6CAA6C;IAChD,OAAO,EAAE,CAAC,EAAE,CAAC;IACV,+BAA+B;IAClC,IAAI,EAAE,QAAQ,CAAA;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACpC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACrD"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Interface que representa a estrutura completa de um token JWT
3
+ * @interface Token
4
+ */
5
+ export interface Token {
6
+ /** Cabeçalho do token contendo algoritmo e tipo */
7
+ header: Header;
8
+ /** Payload do token contendo as claims */
9
+ payload: Payload;
10
+ /** Assinatura do token */
11
+ signature: string;
12
+ }
13
+ /**
14
+ * Interface que representa o cabeçalho de um token JWT
15
+ * @interface Header
16
+ */
17
+ export interface Header {
18
+ /** Algoritmo usado para assinar o token */
19
+ alg: string;
20
+ /** Tipo do token */
21
+ typ: string;
22
+ }
23
+ /**
24
+ * Interface que representa o payload de um token JWT
25
+ * @interface Payload
26
+ */
27
+ export interface Payload {
28
+ /** Identificador único do token JSON */
29
+ jti: string;
30
+ /** Emissor do token */
31
+ iss: string;
32
+ /** Data/hora de emissão do token (timestamp Unix) */
33
+ iat: number;
34
+ /** Token não é válido antes desta data/hora (timestamp Unix) */
35
+ nbf: number;
36
+ /** Data/hora de expiração do token (timestamp Unix) */
37
+ exp: number;
38
+ /** Assunto do token (geralmente ID do usuário) */
39
+ sub: string;
40
+ /** Audiência destinatária do token */
41
+ aud: string;
42
+ }
43
+ //# sourceMappingURL=token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/types/token.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,KAAK;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACnB,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACpB,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAA;CACd"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,41 @@
1
+ import { Auth } from '../types/auth';
2
+ import { ErrorMessage } from '../types/error';
3
+ import { Search } from '../types/request';
4
+ import { Page, PageInfo } from '../types/response';
5
+ import { Header, Payload } from '../types/token';
6
+ /**
7
+ * Estado inicial vazio para dados de autenticação
8
+ * @constant
9
+ */
10
+ export declare const initialAuth: Auth;
11
+ /**
12
+ * Estado inicial vazio para mensagens de erro
13
+ * @constant
14
+ */
15
+ export declare const initialErrorMessage: ErrorMessage;
16
+ /**
17
+ * Configuração padrão para buscas e paginação
18
+ * @constant
19
+ */
20
+ export declare const initialSearch: Search;
21
+ /**
22
+ * Estado inicial vazio para informações de paginação
23
+ * @constant
24
+ */
25
+ export declare const initialPageInfo: PageInfo;
26
+ /**
27
+ * Estado inicial vazio para respostas paginadas
28
+ * @constant
29
+ */
30
+ export declare const initialPage: Page;
31
+ /**
32
+ * Estado inicial vazio para cabeçalho de token
33
+ * @constant
34
+ */
35
+ export declare const initialHeader: Header;
36
+ /**
37
+ * Estado inicial vazio para payload de token
38
+ * @constant
39
+ */
40
+ export declare const initialPayload: Payload;
41
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,IAKzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAGjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAQ3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAK7B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,IAGzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAG3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAQ5B,CAAA"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initialPayload = exports.initialHeader = exports.initialPage = exports.initialPageInfo = exports.initialSearch = exports.initialErrorMessage = exports.initialAuth = void 0;
4
+ /**
5
+ * Estado inicial vazio para dados de autenticação
6
+ * @constant
7
+ */
8
+ exports.initialAuth = {
9
+ accessToken: '',
10
+ refreshToken: '',
11
+ tokenType: '',
12
+ role: []
13
+ };
14
+ /**
15
+ * Estado inicial vazio para mensagens de erro
16
+ * @constant
17
+ */
18
+ exports.initialErrorMessage = {
19
+ field: '',
20
+ message: ''
21
+ };
22
+ /**
23
+ * Configuração padrão para buscas e paginação
24
+ * @constant
25
+ */
26
+ exports.initialSearch = {
27
+ value: '',
28
+ page: 0,
29
+ size: 15,
30
+ sort: {
31
+ key: 'id',
32
+ order: 'ASC',
33
+ }
34
+ };
35
+ /**
36
+ * Estado inicial vazio para informações de paginação
37
+ * @constant
38
+ */
39
+ exports.initialPageInfo = {
40
+ size: 0,
41
+ number: 0,
42
+ totalElements: 0,
43
+ totalPages: 0
44
+ };
45
+ /**
46
+ * Estado inicial vazio para respostas paginadas
47
+ * @constant
48
+ */
49
+ exports.initialPage = {
50
+ content: [],
51
+ page: exports.initialPageInfo
52
+ };
53
+ /**
54
+ * Estado inicial vazio para cabeçalho de token
55
+ * @constant
56
+ */
57
+ exports.initialHeader = {
58
+ alg: '',
59
+ typ: ''
60
+ };
61
+ /**
62
+ * Estado inicial vazio para payload de token
63
+ * @constant
64
+ */
65
+ exports.initialPayload = {
66
+ jti: '',
67
+ iss: '',
68
+ iat: 0,
69
+ nbf: 0,
70
+ exp: 0,
71
+ sub: '',
72
+ aud: ''
73
+ };
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@forgepack/request",
3
+ "version": "1.0.4",
4
+ "description": "",
5
+ "homepage": "https://github.com/forgepack/request#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/forgepack/request/issues"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/forgepack/request.git"
12
+ },
13
+ "license": "MIT License",
14
+ "keywords": [
15
+ "react",
16
+ "frontend",
17
+ "admin",
18
+ "admin-dashboard",
19
+ "internal-tools",
20
+ "crud",
21
+ "authenticated-crud",
22
+ "datatable",
23
+ "data-table",
24
+ "modal",
25
+ "sidebar",
26
+ "layout",
27
+ "api-client",
28
+ "authentication",
29
+ "authorization",
30
+ "boilerplate",
31
+ "application-kit",
32
+ "react-admin",
33
+ "react-crud"
34
+ ],
35
+ "author": "Marcelo Gadelha",
36
+ "type": "commonjs",
37
+ "main": "dist/index.js",
38
+ "types": "dist/index.d.ts",
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "scripts": {
43
+ "build": "tsc",
44
+ "test": "echo \"Error: no test specified\" && exit 1"
45
+ },
46
+ "peerDependencies": {
47
+ "react": "^19.2.3",
48
+ "react-router-dom": "^7.12.0"
49
+ },
50
+ "devDependencies": {
51
+ "@types/react": "^19.2.9",
52
+ "typescript": "^5.9.3"
53
+ },
54
+ "dependencies": {
55
+ "axios": "^1.13.2"
56
+ }
57
+ }