@hed-hog/address 0.0.270 → 0.0.272
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/README.md +453 -0
- package/package.json +4 -3
package/README.md
ADDED
|
@@ -0,0 +1,453 @@
|
|
|
1
|
+
```markdown
|
|
2
|
+
# @hed-hog/address
|
|
3
|
+
|
|
4
|
+
Módulo para gerenciamento de endereços no HedHog. Fornece endpoints para criar, listar, atualizar e deletar endereços, com suporte a múltiplos tipos de endereço e controle de endereço primário por tipo.
|
|
5
|
+
|
|
6
|
+
## 1. Visão geral do módulo
|
|
7
|
+
|
|
8
|
+
Este módulo gerencia informações de endereços, permitindo operações CRUD (criar, ler, atualizar, deletar) com suporte a múltiplos tipos de endereço (residencial, comercial, correspondência, etc.). Possui controle para garantir que apenas um endereço por tipo seja marcado como primário. Suporta busca, paginação, ordenação e filtros nos endpoints.
|
|
9
|
+
|
|
10
|
+
## 2. Escopo e responsabilidades
|
|
11
|
+
|
|
12
|
+
- Gerenciar dados de endereços com validação e consistência.
|
|
13
|
+
- Controlar endereço primário único por tipo.
|
|
14
|
+
- Suportar operações RESTful autenticadas.
|
|
15
|
+
- Fornecer respostas paginadas e filtradas.
|
|
16
|
+
- Garantir mensagens localizadas conforme idioma da requisição.
|
|
17
|
+
- Integrar com sistema de roles para autorização.
|
|
18
|
+
|
|
19
|
+
## 3. Endpoints
|
|
20
|
+
|
|
21
|
+
### 3.1 Listar Endereços
|
|
22
|
+
|
|
23
|
+
- **Método:** GET
|
|
24
|
+
- **Path:** `/address`
|
|
25
|
+
- **Autenticação:** Requerida (`@Role()`)
|
|
26
|
+
- **Descrição:** Retorna lista paginada de endereços com busca, ordenação e seleção de campos.
|
|
27
|
+
- **Query Parameters:**
|
|
28
|
+
|
|
29
|
+
| Parâmetro | Tipo | Obrigatório | Descrição |
|
|
30
|
+
|------------|----------------|-------------|---------------------------------------------------------------------------------------------|
|
|
31
|
+
| `page` | number | Não | Número da página (padrão: 1) |
|
|
32
|
+
| `pageSize` | number | Não | Quantidade de itens por página (padrão: 10) |
|
|
33
|
+
| `search` | string | Não | Busca por texto (procura em id, tipo, país, estado, cidade, CEP, linha1 e linha2) |
|
|
34
|
+
| `sortField`| string | Não | Campo para ordenação (padrão: id) |
|
|
35
|
+
| `sortOrder`| `asc` \| `desc`| Não | Ordem de classificação (padrão: desc) |
|
|
36
|
+
| `fields` | string | Não | Campos a retornar, separados por vírgula |
|
|
37
|
+
|
|
38
|
+
- **Resposta de Sucesso (200 OK):**
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"data": [
|
|
43
|
+
{
|
|
44
|
+
"id": 1,
|
|
45
|
+
"address_type": "residential",
|
|
46
|
+
"country_code": "BR",
|
|
47
|
+
"state": "SP",
|
|
48
|
+
"city": "São Paulo",
|
|
49
|
+
"postal_code": "01234-567",
|
|
50
|
+
"line1": "Rua A, 123",
|
|
51
|
+
"line2": "Apartamento 101",
|
|
52
|
+
"is_primary": true,
|
|
53
|
+
"created_at": "2025-01-10T14:30:00Z",
|
|
54
|
+
"updated_at": "2025-01-10T14:30:00Z"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"meta": {
|
|
58
|
+
"page": 1,
|
|
59
|
+
"pageSize": 10,
|
|
60
|
+
"total": 1,
|
|
61
|
+
"pageCount": 1,
|
|
62
|
+
"hasNextPage": false,
|
|
63
|
+
"hasPreviousPage": false
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
- **Erros Comuns:** Nenhum específico além dos padrões de autenticação/autorização.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### 3.2 Obter Endereço por ID
|
|
73
|
+
|
|
74
|
+
- **Método:** GET
|
|
75
|
+
- **Path:** `/address/:id`
|
|
76
|
+
- **Autenticação:** Requerida (`@Role()`)
|
|
77
|
+
- **Descrição:** Retorna detalhes de um endereço pelo seu ID.
|
|
78
|
+
- **Path Parameters:**
|
|
79
|
+
|
|
80
|
+
| Parâmetro | Tipo | Descrição |
|
|
81
|
+
|-----------|--------|----------------------|
|
|
82
|
+
| `id` | number | ID único do endereço |
|
|
83
|
+
|
|
84
|
+
- **Resposta de Sucesso (200 OK):**
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"id": 1,
|
|
89
|
+
"address_type": "residential",
|
|
90
|
+
"country_code": "BR",
|
|
91
|
+
"state": "SP",
|
|
92
|
+
"city": "São Paulo",
|
|
93
|
+
"postal_code": "01234-567",
|
|
94
|
+
"line1": "Rua A, 123",
|
|
95
|
+
"line2": "Apartamento 101",
|
|
96
|
+
"is_primary": true,
|
|
97
|
+
"created_at": "2025-01-10T14:30:00Z",
|
|
98
|
+
"updated_at": "2025-01-10T14:30:00Z"
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
- **Erros Possíveis:**
|
|
103
|
+
|
|
104
|
+
- **404 Not Found:** Endereço com ID especificado não encontrado.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 3.3 Criar Novo Endereço
|
|
109
|
+
|
|
110
|
+
- **Método:** POST
|
|
111
|
+
- **Path:** `/address`
|
|
112
|
+
- **Autenticação:** Requerida (`@Role()`)
|
|
113
|
+
- **Descrição:** Cria um novo endereço. Se `is_primary=true`, remove o status primário de outros endereços do mesmo tipo.
|
|
114
|
+
- **Request Body:**
|
|
115
|
+
|
|
116
|
+
| Campo | Tipo | Obrigatório | Descrição |
|
|
117
|
+
|---------------|---------|-------------|---------------------------------------------------------------------------------------------|
|
|
118
|
+
| `address_type`| enum | Sim | Tipo do endereço. Valores: `residential`, `commercial`, `correspondence`, `alternative`, `work`, `billing`, `shipping` |
|
|
119
|
+
| `country_code`| string | Sim | Código do país (ex: "BR", "US", "ES") |
|
|
120
|
+
| `state` | string | Sim | Nome do estado/província (ex: "SP", "RJ") |
|
|
121
|
+
| `city` | string | Sim | Nome da cidade |
|
|
122
|
+
| `postal_code` | string | Sim | CEP/código postal |
|
|
123
|
+
| `line1` | string | Sim | Linha de endereço principal (rua, número, etc) |
|
|
124
|
+
| `line2` | string | Não | Linha de endereço complementar (apartamento, complemento, etc) |
|
|
125
|
+
| `is_primary` | boolean | Não | Define como endereço primário do tipo (padrão: false) |
|
|
126
|
+
|
|
127
|
+
- **Exemplo de Requisição:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
POST /address
|
|
131
|
+
Content-Type: application/json
|
|
132
|
+
|
|
133
|
+
{
|
|
134
|
+
"address_type": "residential",
|
|
135
|
+
"country_code": "BR",
|
|
136
|
+
"state": "SP",
|
|
137
|
+
"city": "São Paulo",
|
|
138
|
+
"postal_code": "01234-567",
|
|
139
|
+
"line1": "Rua A, 123",
|
|
140
|
+
"line2": "Apartamento 101",
|
|
141
|
+
"is_primary": true
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
- **Resposta de Sucesso (201 Created):**
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"id": 1,
|
|
150
|
+
"address_type": "residential",
|
|
151
|
+
"country_code": "BR",
|
|
152
|
+
"state": "SP",
|
|
153
|
+
"city": "São Paulo",
|
|
154
|
+
"postal_code": "01234-567",
|
|
155
|
+
"line1": "Rua A, 123",
|
|
156
|
+
"line2": "Apartamento 101",
|
|
157
|
+
"is_primary": true,
|
|
158
|
+
"created_at": "2025-01-10T14:30:00Z",
|
|
159
|
+
"updated_at": "2025-01-10T14:30:00Z"
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- **Erros Possíveis:**
|
|
164
|
+
|
|
165
|
+
- **400 Bad Request:** Validação de dados falhou ou erro ao criar endereço.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### 3.4 Atualizar Endereço
|
|
170
|
+
|
|
171
|
+
- **Método:** PATCH
|
|
172
|
+
- **Path:** `/address/:id`
|
|
173
|
+
- **Autenticação:** Requerida (`@Role()`)
|
|
174
|
+
- **Descrição:** Atualiza parcialmente um endereço existente. Ajusta o status primário conforme tipo e flag `is_primary`.
|
|
175
|
+
- **Path Parameters:**
|
|
176
|
+
|
|
177
|
+
| Parâmetro | Tipo | Descrição |
|
|
178
|
+
|-----------|--------|----------------------------|
|
|
179
|
+
| `id` | number | ID do endereço a atualizar |
|
|
180
|
+
|
|
181
|
+
- **Request Body:** (todos opcionais)
|
|
182
|
+
|
|
183
|
+
| Campo | Tipo | Descrição |
|
|
184
|
+
|---------------|---------|--------------------------------|
|
|
185
|
+
| `address_type`| enum | Novo tipo do endereço |
|
|
186
|
+
| `country_code`| string | Novo código do país |
|
|
187
|
+
| `state` | string | Novo estado/província |
|
|
188
|
+
| `city` | string | Nova cidade |
|
|
189
|
+
| `postal_code` | string | Novo CEP/código postal |
|
|
190
|
+
| `line1` | string | Nova linha de endereço principal |
|
|
191
|
+
| `line2` | string | Nova linha de endereço complementar |
|
|
192
|
+
| `is_primary` | boolean | Novo status de primário |
|
|
193
|
+
|
|
194
|
+
- **Exemplo de Requisição:**
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
PATCH /address/1
|
|
198
|
+
Content-Type: application/json
|
|
199
|
+
|
|
200
|
+
{
|
|
201
|
+
"city": "Rio de Janeiro",
|
|
202
|
+
"state": "RJ",
|
|
203
|
+
"is_primary": false
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
- **Resposta de Sucesso (200 OK):**
|
|
208
|
+
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"id": 1,
|
|
212
|
+
"address_type": "residential",
|
|
213
|
+
"country_code": "BR",
|
|
214
|
+
"state": "RJ",
|
|
215
|
+
"city": "Rio de Janeiro",
|
|
216
|
+
"postal_code": "01234-567",
|
|
217
|
+
"line1": "Rua A, 123",
|
|
218
|
+
"line2": "Apartamento 101",
|
|
219
|
+
"is_primary": false,
|
|
220
|
+
"created_at": "2025-01-10T14:30:00Z",
|
|
221
|
+
"updated_at": "2025-01-11T10:15:00Z"
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
- **Erros Possíveis:**
|
|
226
|
+
|
|
227
|
+
- **400 Bad Request:** Validação de dados falhou ou erro ao atualizar.
|
|
228
|
+
- **404 Not Found:** Endereço com ID especificado não encontrado.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### 3.5 Deletar Endereço(s)
|
|
233
|
+
|
|
234
|
+
- **Método:** DELETE
|
|
235
|
+
- **Path:** `/address`
|
|
236
|
+
- **Autenticação:** Requerida (`@Role()`)
|
|
237
|
+
- **Descrição:** Deleta um ou múltiplos endereços por seus IDs.
|
|
238
|
+
- **Request Body:**
|
|
239
|
+
|
|
240
|
+
| Campo | Tipo | Obrigatório | Descrição |
|
|
241
|
+
|-------|------------|-------------|-------------------------------|
|
|
242
|
+
| `ids` | number[] | Sim | Array com IDs dos endereços a deletar |
|
|
243
|
+
|
|
244
|
+
- **Exemplo de Requisição:**
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
DELETE /address
|
|
248
|
+
Content-Type: application/json
|
|
249
|
+
|
|
250
|
+
{
|
|
251
|
+
"ids": [1, 2, 3]
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
- **Resposta de Sucesso (200 OK):**
|
|
256
|
+
|
|
257
|
+
```json
|
|
258
|
+
{
|
|
259
|
+
"count": 3
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
- **Erros Possíveis:**
|
|
264
|
+
|
|
265
|
+
- **400 Bad Request:** Campo `ids` não fornecido ou vazio.
|
|
266
|
+
- **404 Not Found:** Um ou mais IDs especificados não encontrados.
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## 4. Regras de autenticação e autorização
|
|
271
|
+
|
|
272
|
+
- Todos os endpoints requerem autenticação via JWT no header:
|
|
273
|
+
|
|
274
|
+
```
|
|
275
|
+
Authorization: Bearer <seu_token_jwt>
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
- A autorização é baseada em roles/funções, protegida pelo decorator `@Role()`.
|
|
279
|
+
- O usuário deve estar autenticado e possuir permissão para acessar a rota, conforme tabela `route` no banco.
|
|
280
|
+
- Role específica para acesso: `admin-address` (Administrador de Endereços).
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 5. Estruturas de request/response
|
|
285
|
+
|
|
286
|
+
### CreateDTO (Criar Endereço)
|
|
287
|
+
|
|
288
|
+
| Campo | Tipo | Obrigatório | Descrição |
|
|
289
|
+
|---------------|---------|-------------|--------------------------------|
|
|
290
|
+
| `address_type`| enum | Sim | Tipo do endereço (ver seção Tipos de Endereço) |
|
|
291
|
+
| `country_code`| string | Sim | Código do país (ex: "BR") |
|
|
292
|
+
| `state` | string | Sim | Estado/província |
|
|
293
|
+
| `city` | string | Sim | Cidade |
|
|
294
|
+
| `postal_code` | string | Sim | CEP/código postal |
|
|
295
|
+
| `line1` | string | Sim | Linha principal do endereço |
|
|
296
|
+
| `line2` | string | Não | Linha complementar |
|
|
297
|
+
| `is_primary` | boolean | Não | Endereço primário do tipo (default: false) |
|
|
298
|
+
|
|
299
|
+
### UpdateDTO (Atualizar Endereço)
|
|
300
|
+
|
|
301
|
+
- Todos os campos do CreateDTO são opcionais para atualização parcial.
|
|
302
|
+
|
|
303
|
+
### DeleteDTO (Deletar Endereços)
|
|
304
|
+
|
|
305
|
+
| Campo | Tipo | Obrigatório | Descrição |
|
|
306
|
+
|-------|----------|-------------|-------------------------------|
|
|
307
|
+
| `ids` | number[] | Sim | IDs dos endereços a deletar |
|
|
308
|
+
|
|
309
|
+
### Respostas
|
|
310
|
+
|
|
311
|
+
- Listagem: objeto com `data` (array de endereços) e `meta` (paginação).
|
|
312
|
+
- Obter, criar e atualizar: objeto com dados do endereço.
|
|
313
|
+
- Deletar: objeto com `count` de registros deletados.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 6. Erros comuns
|
|
318
|
+
|
|
319
|
+
| Código | Descrição |
|
|
320
|
+
|--------|-----------------------------------------------------|
|
|
321
|
+
| 400 | Dados inválidos, campo obrigatório ausente ou erro na validação. |
|
|
322
|
+
| 404 | Endereço(s) não encontrado(s) para o(s) ID(s) informado(s). |
|
|
323
|
+
| 401/403| Falha na autenticação ou autorização (não documentado diretamente, mas implícito). |
|
|
324
|
+
|
|
325
|
+
Mensagens de erro são localizadas conforme header `Accept-Language`.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## 7. Banco de dados (tabelas YAML)
|
|
330
|
+
|
|
331
|
+
### Tabela: `address`
|
|
332
|
+
|
|
333
|
+
- **Finalidade:** Armazenar informações de endereços com múltiplos tipos e controle de endereço primário.
|
|
334
|
+
|
|
335
|
+
| Coluna | Tipo | Nulável | Default | Descrição |
|
|
336
|
+
|---------------|------------|---------|-------------------|------------------------------------------------|
|
|
337
|
+
| `id` | INT (PK) | Não | auto-increment | Identificador único do endereço |
|
|
338
|
+
| `address_type`| ENUM | Não | - | Tipo do endereço (valores definidos abaixo) |
|
|
339
|
+
| `country_code`| VARCHAR | Não | - | Código do país (ISO 3166-1 alpha-2) |
|
|
340
|
+
| `state` | VARCHAR | Não | - | Estado ou província |
|
|
341
|
+
| `city` | VARCHAR | Não | - | Cidade |
|
|
342
|
+
| `postal_code` | VARCHAR | Não | - | CEP ou código postal |
|
|
343
|
+
| `line1` | VARCHAR | Não | - | Linha principal do endereço |
|
|
344
|
+
| `line2` | VARCHAR | Sim | NULL | Linha complementar |
|
|
345
|
+
| `is_primary` | BOOLEAN | Não | false | Indica se é o endereço primário do tipo |
|
|
346
|
+
| `created_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora de criação |
|
|
347
|
+
| `updated_at` | TIMESTAMP | Não | CURRENT_TIMESTAMP | Data e hora da última atualização |
|
|
348
|
+
|
|
349
|
+
#### Índices
|
|
350
|
+
|
|
351
|
+
| Nome | Colunas | Único | Condição | Propósito |
|
|
352
|
+
|------------------------|-----------------------|-------|--------------------|--------------------------------------------------------|
|
|
353
|
+
| `idx_address_type_primary` | `address_type`, `is_primary` | Sim | `is_primary = true` | Garante apenas um endereço primário por tipo |
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## 8. Regras de negócio relevantes
|
|
358
|
+
|
|
359
|
+
- **Endereço primário único por tipo:**
|
|
360
|
+
Ao criar ou atualizar um endereço com `is_primary=true`, o sistema automaticamente remove a flag `is_primary` de outros endereços do mesmo tipo, garantindo unicidade.
|
|
361
|
+
|
|
362
|
+
- **Busca:**
|
|
363
|
+
O parâmetro `search` realiza busca case-insensitive em múltiplos campos: `id` (se numérico), `address_type`, `country_code`, `state`, `city`, `postal_code`, `line1`, `line2`.
|
|
364
|
+
|
|
365
|
+
- **Localização:**
|
|
366
|
+
Mensagens de erro e validação são localizadas conforme o header `Accept-Language`.
|
|
367
|
+
|
|
368
|
+
- **Autorização:**
|
|
369
|
+
Acesso restrito a usuários autenticados com roles específicas, conforme tabela `route` e `role`.
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## 9. Guia rápido de uso (exemplos)
|
|
374
|
+
|
|
375
|
+
### Listar endereços com busca e paginação
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
GET /address?page=1&pageSize=10&search=residential&sortField=city&sortOrder=asc
|
|
379
|
+
Authorization: Bearer <token>
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Obter endereço por ID
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
GET /address/1
|
|
386
|
+
Authorization: Bearer <token>
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
### Criar novo endereço
|
|
390
|
+
|
|
391
|
+
```bash
|
|
392
|
+
POST /address
|
|
393
|
+
Content-Type: application/json
|
|
394
|
+
Authorization: Bearer <token>
|
|
395
|
+
|
|
396
|
+
{
|
|
397
|
+
"address_type": "residential",
|
|
398
|
+
"country_code": "BR",
|
|
399
|
+
"state": "SP",
|
|
400
|
+
"city": "São Paulo",
|
|
401
|
+
"postal_code": "01234-567",
|
|
402
|
+
"line1": "Rua A, 123",
|
|
403
|
+
"line2": "Apartamento 101",
|
|
404
|
+
"is_primary": true
|
|
405
|
+
}
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### Atualizar endereço parcialmente
|
|
409
|
+
|
|
410
|
+
```bash
|
|
411
|
+
PATCH /address/1
|
|
412
|
+
Content-Type: application/json
|
|
413
|
+
Authorization: Bearer <token>
|
|
414
|
+
|
|
415
|
+
{
|
|
416
|
+
"city": "Rio de Janeiro",
|
|
417
|
+
"state": "RJ",
|
|
418
|
+
"is_primary": false
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### Deletar múltiplos endereços
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
DELETE /address
|
|
426
|
+
Content-Type: application/json
|
|
427
|
+
Authorization: Bearer <token>
|
|
428
|
+
|
|
429
|
+
{
|
|
430
|
+
"ids": [1, 2, 3]
|
|
431
|
+
}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## Tipos de Endereço
|
|
437
|
+
|
|
438
|
+
| Valor | Descrição |
|
|
439
|
+
|----------------|--------------------------------|
|
|
440
|
+
| `residential` | Endereço residencial/doméstico |
|
|
441
|
+
| `commercial` | Endereço comercial/empresarial |
|
|
442
|
+
| `correspondence`| Endereço para correspondência |
|
|
443
|
+
| `alternative` | Endereço alternativo/secundário|
|
|
444
|
+
| `work` | Endereço de trabalho/empresa |
|
|
445
|
+
| `billing` | Endereço para faturamento |
|
|
446
|
+
| `shipping` | Endereço para entrega/despacho |
|
|
447
|
+
|
|
448
|
+
---
|
|
449
|
+
|
|
450
|
+
## Licença
|
|
451
|
+
|
|
452
|
+
Parte do projeto HedHog Lab v2.
|
|
453
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hed-hog/address",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.272",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"dependencies": {
|
|
@@ -9,11 +9,12 @@
|
|
|
9
9
|
"@nestjs/core": "^11",
|
|
10
10
|
"@nestjs/jwt": "^11",
|
|
11
11
|
"@nestjs/mapped-types": "*",
|
|
12
|
+
"@hed-hog/core": "0.0.271",
|
|
12
13
|
"@hed-hog/api": "0.0.4",
|
|
13
14
|
"@hed-hog/api-pagination": "0.0.6",
|
|
14
|
-
"@hed-hog/api-
|
|
15
|
+
"@hed-hog/api-prisma": "0.0.5",
|
|
15
16
|
"@hed-hog/api-locale": "0.0.13",
|
|
16
|
-
"@hed-hog/api-
|
|
17
|
+
"@hed-hog/api-types": "0.0.1"
|
|
17
18
|
},
|
|
18
19
|
"exports": {
|
|
19
20
|
".": {
|