zeti-framework 0.1.0 → 0.1.2
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 +244 -244
- package/dist/core/framework.d.ts +13 -0
- package/dist/core/framework.d.ts.map +1 -1
- package/dist/core/framework.js +96 -0
- package/dist/core/framework.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/types/config.d.ts +22 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/utils/http-exceptions.d.ts +9 -0
- package/dist/utils/http-exceptions.d.ts.map +1 -0
- package/dist/utils/http-exceptions.js +26 -0
- package/dist/utils/http-exceptions.js.map +1 -0
- package/dist/utils/jwt.d.ts +15 -0
- package/dist/utils/jwt.d.ts.map +1 -0
- package/dist/utils/jwt.js +33 -0
- package/dist/utils/jwt.js.map +1 -0
- package/dist/utils/password.d.ts +6 -0
- package/dist/utils/password.d.ts.map +1 -0
- package/dist/utils/password.js +11 -0
- package/dist/utils/password.js.map +1 -0
- package/package.json +71 -67
package/README.md
CHANGED
|
@@ -1,244 +1,244 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
Framework Hono com suporte a multi-tenancy, Prisma e Swagger automático.
|
|
4
|
-
|
|
5
|
-
## 🚀 Instalação
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install
|
|
9
|
-
# ou
|
|
10
|
-
pnpm add
|
|
11
|
-
# ou
|
|
12
|
-
yarn add
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## 🔨 Build
|
|
16
|
-
|
|
17
|
-
A biblioteca usa TypeScript compiler padrão, funciona com qualquer gerenciador de pacotes:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Build
|
|
21
|
-
npm run build
|
|
22
|
-
|
|
23
|
-
# Desenvolvimento (watch mode)
|
|
24
|
-
npm run dev
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
> **Nota sobre Performance:** O uso de `tsc` ao invés de Bun não afeta a performance da biblioteca em runtime. O código JavaScript compilado é idêntico e roda com a mesma velocidade. A única diferença é no tempo de build durante desenvolvimento. Veja `PERFORMANCE.md` para mais detalhes.
|
|
28
|
-
|
|
29
|
-
## 📖 Uso Básico
|
|
30
|
-
|
|
31
|
-
### 1. Configuração
|
|
32
|
-
|
|
33
|
-
```typescript
|
|
34
|
-
// zeti.config.ts
|
|
35
|
-
import { defineZetiConfig } from '
|
|
36
|
-
import { PrismaClient } from '@prisma/client';
|
|
37
|
-
|
|
38
|
-
export default defineZetiConfig({
|
|
39
|
-
databases: {
|
|
40
|
-
connections: {
|
|
41
|
-
main: process.env.DATABASE_URL!,
|
|
42
|
-
mongo: process.env.MONGO_URL!,
|
|
43
|
-
},
|
|
44
|
-
cache: {
|
|
45
|
-
maxClients: 50,
|
|
46
|
-
ttl: 300000,
|
|
47
|
-
cleanupInterval: 60000,
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
|
-
specialDatabases: {
|
|
51
|
-
analytics: process.env.ANALYTICS_DB_URL!,
|
|
52
|
-
},
|
|
53
|
-
prisma: {
|
|
54
|
-
adapter: 'pg',
|
|
55
|
-
logLevel: ['error'],
|
|
56
|
-
},
|
|
57
|
-
swagger: {
|
|
58
|
-
enabled: true,
|
|
59
|
-
title: 'My API',
|
|
60
|
-
version: '1.0.0',
|
|
61
|
-
servers: [{ url: 'http://localhost:3334' }],
|
|
62
|
-
},
|
|
63
|
-
errorHandler: {
|
|
64
|
-
// Opcional: customizar formatação de erros
|
|
65
|
-
formatError: (error, context) => {
|
|
66
|
-
// Sua lógica customizada
|
|
67
|
-
return { data: null, status: 500, message: 'Error' };
|
|
68
|
-
},
|
|
69
|
-
// Opcional: customizar logging
|
|
70
|
-
logError: (error, context) => {
|
|
71
|
-
console.error('Error:', error);
|
|
72
|
-
},
|
|
73
|
-
},
|
|
74
|
-
middlewares: {
|
|
75
|
-
global: [
|
|
76
|
-
// Middlewares globais
|
|
77
|
-
],
|
|
78
|
-
named: {
|
|
79
|
-
// Middlewares nomeados
|
|
80
|
-
auth: createAuthMiddleware({ jwtSecret: '...' }),
|
|
81
|
-
requireRole: (roles: string[]) => createRoleMiddleware(roles),
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
});
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### 2. Inicialização
|
|
88
|
-
|
|
89
|
-
```typescript
|
|
90
|
-
// src/zeti/index.ts
|
|
91
|
-
import { createZetiApp } from '
|
|
92
|
-
import { PrismaClient } from '@prisma/client';
|
|
93
|
-
import config from '../../zeti.config';
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* IMPORTANTE: Passe o PrismaClient como generic para inferência de tipos
|
|
97
|
-
*
|
|
98
|
-
* Isso permite que TypeScript saiba todos os modelos do seu schema.prisma
|
|
99
|
-
* e forneça autocomplete completo em todas as rotas!
|
|
100
|
-
*/
|
|
101
|
-
const app = createZetiApp<PrismaClient>({
|
|
102
|
-
config,
|
|
103
|
-
prismaClient: PrismaClient,
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
export const { get, post, put, del, patch } = app;
|
|
107
|
-
export const { honoApp } = app;
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### 3. Criar Rotas
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
// src/controllers/users/get.ts
|
|
114
|
-
import { get } from '../../zeti';
|
|
115
|
-
|
|
116
|
-
get('/users', {
|
|
117
|
-
middleware: {
|
|
118
|
-
use: ['auth'],
|
|
119
|
-
schema: (z) => ({
|
|
120
|
-
query: {
|
|
121
|
-
page: z.number().optional(),
|
|
122
|
-
},
|
|
123
|
-
}),
|
|
124
|
-
},
|
|
125
|
-
route: async ({ db, query, user }) => {
|
|
126
|
-
/**
|
|
127
|
-
* db é automaticamente tipado como PrismaClient do seu projeto!
|
|
128
|
-
*
|
|
129
|
-
* TypeScript sabe todos os modelos do seu schema.prisma:
|
|
130
|
-
* - db.user ✅
|
|
131
|
-
* - db.post ✅
|
|
132
|
-
* - etc...
|
|
133
|
-
*
|
|
134
|
-
* Autocomplete funciona perfeitamente!
|
|
135
|
-
*/
|
|
136
|
-
const users = await db.user.findMany({
|
|
137
|
-
skip: query.page ? (query.page - 1) * 10 : 0,
|
|
138
|
-
take: 10,
|
|
139
|
-
});
|
|
140
|
-
return { data: users };
|
|
141
|
-
},
|
|
142
|
-
});
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
## 🔍 Como Funciona a Inferência de Tipos?
|
|
146
|
-
|
|
147
|
-
A biblioteca usa **TypeScript Generics** para propagar o tipo do `PrismaClient` do seu projeto para todas as rotas.
|
|
148
|
-
|
|
149
|
-
### Fluxo de Inferência
|
|
150
|
-
|
|
151
|
-
1. **Você passa o tipo:**
|
|
152
|
-
```typescript
|
|
153
|
-
const app = createZetiApp<PrismaClient>({ ... });
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
2. **Biblioteca propaga o tipo:**
|
|
157
|
-
```typescript
|
|
158
|
-
// Internamente
|
|
159
|
-
ZetiApp<TPrisma> → ZetiMethodOptions<..., TPrisma> → ZetiRouteProps<..., TPrisma>
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
3. **Nas rotas, `db` é tipado automaticamente:**
|
|
163
|
-
```typescript
|
|
164
|
-
route: async ({ db }) => {
|
|
165
|
-
// db é PrismaClient do seu projeto!
|
|
166
|
-
await db.user.findMany(); // ✅ Autocomplete funciona!
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Veja `examples/type-inference-explained.md` para explicação detalhada.
|
|
171
|
-
|
|
172
|
-
## 🔧 Middlewares Customizados
|
|
173
|
-
|
|
174
|
-
A biblioteca não implementa lógica de negócio. Você define seus próprios middlewares:
|
|
175
|
-
|
|
176
|
-
```typescript
|
|
177
|
-
// src/middleware/auth.ts
|
|
178
|
-
import { Middleware } from 'hono';
|
|
179
|
-
|
|
180
|
-
export function createAuthMiddleware(config: {
|
|
181
|
-
jwtSecret: string;
|
|
182
|
-
}): Middleware {
|
|
183
|
-
return async (c, next) => {
|
|
184
|
-
// Sua lógica de autenticação
|
|
185
|
-
const user = await verifyToken(c.req.header('authorization'));
|
|
186
|
-
c.set('user', user);
|
|
187
|
-
await next();
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
## 🔧 Scripts de Geração
|
|
193
|
-
|
|
194
|
-
A biblioteca inclui scripts para gerar automaticamente:
|
|
195
|
-
|
|
196
|
-
### 1. Registry de Controllers
|
|
197
|
-
|
|
198
|
-
Gera imports automáticos dos controllers:
|
|
199
|
-
|
|
200
|
-
```typescript
|
|
201
|
-
import { generateRegistry } from '
|
|
202
|
-
|
|
203
|
-
await generateRegistry({
|
|
204
|
-
controllersPath: './src/controllers',
|
|
205
|
-
indexPath: './src/zeti/index.ts',
|
|
206
|
-
});
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### 2. Tipos do Swagger
|
|
210
|
-
|
|
211
|
-
Gera schemas Zod a partir dos tipos de retorno das rotas:
|
|
212
|
-
|
|
213
|
-
```typescript
|
|
214
|
-
import { generateSwaggerTypes } from '@zeti/framework';
|
|
215
|
-
|
|
216
|
-
await generateSwaggerTypes({
|
|
217
|
-
controllersPath: './src/controllers',
|
|
218
|
-
outputPath: './src/zeti/swagger-schemas.generated.ts',
|
|
219
|
-
});
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### Uso no package.json
|
|
223
|
-
|
|
224
|
-
```json
|
|
225
|
-
{
|
|
226
|
-
"scripts": {
|
|
227
|
-
"prebuild": "node --loader ts-node/esm scripts/generate-swagger.ts",
|
|
228
|
-
"build": "tsc"
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Veja `examples/scripts-usage.ts` para mais detalhes.
|
|
234
|
-
|
|
235
|
-
## 📚 Documentação Completa
|
|
236
|
-
|
|
237
|
-
- `examples/scripts-usage.ts` - Uso dos scripts de geração
|
|
238
|
-
- `examples/graceful-shutdown.ts` - Graceful shutdown
|
|
239
|
-
- `examples/database-config-example.ts` - Configuração de databases
|
|
240
|
-
- `examples/metrics-usage.ts` - Uso de métricas
|
|
241
|
-
|
|
242
|
-
## 📝 Licença
|
|
243
|
-
|
|
244
|
-
MIT
|
|
1
|
+
# zeti-framework
|
|
2
|
+
|
|
3
|
+
Framework Hono com suporte a multi-tenancy, Prisma e Swagger automático.
|
|
4
|
+
|
|
5
|
+
## 🚀 Instalação
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install zeti-framework @prisma/client
|
|
9
|
+
# ou
|
|
10
|
+
pnpm add zeti-framework @prisma/client
|
|
11
|
+
# ou
|
|
12
|
+
yarn add zeti-framework @prisma/client
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 🔨 Build
|
|
16
|
+
|
|
17
|
+
A biblioteca usa TypeScript compiler padrão, funciona com qualquer gerenciador de pacotes:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Build
|
|
21
|
+
npm run build
|
|
22
|
+
|
|
23
|
+
# Desenvolvimento (watch mode)
|
|
24
|
+
npm run dev
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
> **Nota sobre Performance:** O uso de `tsc` ao invés de Bun não afeta a performance da biblioteca em runtime. O código JavaScript compilado é idêntico e roda com a mesma velocidade. A única diferença é no tempo de build durante desenvolvimento. Veja `PERFORMANCE.md` para mais detalhes.
|
|
28
|
+
|
|
29
|
+
## 📖 Uso Básico
|
|
30
|
+
|
|
31
|
+
### 1. Configuração
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// zeti.config.ts
|
|
35
|
+
import { defineZetiConfig } from 'zeti-framework';
|
|
36
|
+
import { PrismaClient } from '@prisma/client';
|
|
37
|
+
|
|
38
|
+
export default defineZetiConfig({
|
|
39
|
+
databases: {
|
|
40
|
+
connections: {
|
|
41
|
+
main: process.env.DATABASE_URL!,
|
|
42
|
+
mongo: process.env.MONGO_URL!,
|
|
43
|
+
},
|
|
44
|
+
cache: {
|
|
45
|
+
maxClients: 50,
|
|
46
|
+
ttl: 300000,
|
|
47
|
+
cleanupInterval: 60000,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
specialDatabases: {
|
|
51
|
+
analytics: process.env.ANALYTICS_DB_URL!,
|
|
52
|
+
},
|
|
53
|
+
prisma: {
|
|
54
|
+
adapter: 'pg',
|
|
55
|
+
logLevel: ['error'],
|
|
56
|
+
},
|
|
57
|
+
swagger: {
|
|
58
|
+
enabled: true,
|
|
59
|
+
title: 'My API',
|
|
60
|
+
version: '1.0.0',
|
|
61
|
+
servers: [{ url: 'http://localhost:3334' }],
|
|
62
|
+
},
|
|
63
|
+
errorHandler: {
|
|
64
|
+
// Opcional: customizar formatação de erros
|
|
65
|
+
formatError: (error, context) => {
|
|
66
|
+
// Sua lógica customizada
|
|
67
|
+
return { data: null, status: 500, message: 'Error' };
|
|
68
|
+
},
|
|
69
|
+
// Opcional: customizar logging
|
|
70
|
+
logError: (error, context) => {
|
|
71
|
+
console.error('Error:', error);
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
middlewares: {
|
|
75
|
+
global: [
|
|
76
|
+
// Middlewares globais
|
|
77
|
+
],
|
|
78
|
+
named: {
|
|
79
|
+
// Middlewares nomeados
|
|
80
|
+
auth: createAuthMiddleware({ jwtSecret: '...' }),
|
|
81
|
+
requireRole: (roles: string[]) => createRoleMiddleware(roles),
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2. Inicialização
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// src/zeti/index.ts
|
|
91
|
+
import { createZetiApp } from 'zeti-framework';
|
|
92
|
+
import { PrismaClient } from '@prisma/client';
|
|
93
|
+
import config from '../../zeti.config';
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* IMPORTANTE: Passe o PrismaClient como generic para inferência de tipos
|
|
97
|
+
*
|
|
98
|
+
* Isso permite que TypeScript saiba todos os modelos do seu schema.prisma
|
|
99
|
+
* e forneça autocomplete completo em todas as rotas!
|
|
100
|
+
*/
|
|
101
|
+
const app = createZetiApp<PrismaClient>({
|
|
102
|
+
config,
|
|
103
|
+
prismaClient: PrismaClient,
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
export const { get, post, put, del, patch } = app;
|
|
107
|
+
export const { honoApp } = app;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 3. Criar Rotas
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
// src/controllers/users/get.ts
|
|
114
|
+
import { get } from '../../zeti';
|
|
115
|
+
|
|
116
|
+
get('/users', {
|
|
117
|
+
middleware: {
|
|
118
|
+
use: ['auth'],
|
|
119
|
+
schema: (z) => ({
|
|
120
|
+
query: {
|
|
121
|
+
page: z.number().optional(),
|
|
122
|
+
},
|
|
123
|
+
}),
|
|
124
|
+
},
|
|
125
|
+
route: async ({ db, query, user }) => {
|
|
126
|
+
/**
|
|
127
|
+
* db é automaticamente tipado como PrismaClient do seu projeto!
|
|
128
|
+
*
|
|
129
|
+
* TypeScript sabe todos os modelos do seu schema.prisma:
|
|
130
|
+
* - db.user ✅
|
|
131
|
+
* - db.post ✅
|
|
132
|
+
* - etc...
|
|
133
|
+
*
|
|
134
|
+
* Autocomplete funciona perfeitamente!
|
|
135
|
+
*/
|
|
136
|
+
const users = await db.user.findMany({
|
|
137
|
+
skip: query.page ? (query.page - 1) * 10 : 0,
|
|
138
|
+
take: 10,
|
|
139
|
+
});
|
|
140
|
+
return { data: users };
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 🔍 Como Funciona a Inferência de Tipos?
|
|
146
|
+
|
|
147
|
+
A biblioteca usa **TypeScript Generics** para propagar o tipo do `PrismaClient` do seu projeto para todas as rotas.
|
|
148
|
+
|
|
149
|
+
### Fluxo de Inferência
|
|
150
|
+
|
|
151
|
+
1. **Você passa o tipo:**
|
|
152
|
+
```typescript
|
|
153
|
+
const app = createZetiApp<PrismaClient>({ ... });
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
2. **Biblioteca propaga o tipo:**
|
|
157
|
+
```typescript
|
|
158
|
+
// Internamente
|
|
159
|
+
ZetiApp<TPrisma> → ZetiMethodOptions<..., TPrisma> → ZetiRouteProps<..., TPrisma>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
3. **Nas rotas, `db` é tipado automaticamente:**
|
|
163
|
+
```typescript
|
|
164
|
+
route: async ({ db }) => {
|
|
165
|
+
// db é PrismaClient do seu projeto!
|
|
166
|
+
await db.user.findMany(); // ✅ Autocomplete funciona!
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Veja `examples/type-inference-explained.md` para explicação detalhada.
|
|
171
|
+
|
|
172
|
+
## 🔧 Middlewares Customizados
|
|
173
|
+
|
|
174
|
+
A biblioteca não implementa lógica de negócio. Você define seus próprios middlewares:
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// src/middleware/auth.ts
|
|
178
|
+
import { Middleware } from 'hono';
|
|
179
|
+
|
|
180
|
+
export function createAuthMiddleware(config: {
|
|
181
|
+
jwtSecret: string;
|
|
182
|
+
}): Middleware {
|
|
183
|
+
return async (c, next) => {
|
|
184
|
+
// Sua lógica de autenticação
|
|
185
|
+
const user = await verifyToken(c.req.header('authorization'));
|
|
186
|
+
c.set('user', user);
|
|
187
|
+
await next();
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## 🔧 Scripts de Geração
|
|
193
|
+
|
|
194
|
+
A biblioteca inclui scripts para gerar automaticamente:
|
|
195
|
+
|
|
196
|
+
### 1. Registry de Controllers
|
|
197
|
+
|
|
198
|
+
Gera imports automáticos dos controllers:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
import { generateRegistry } from 'zeti-framework';
|
|
202
|
+
|
|
203
|
+
await generateRegistry({
|
|
204
|
+
controllersPath: './src/controllers',
|
|
205
|
+
indexPath: './src/zeti/index.ts',
|
|
206
|
+
});
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 2. Tipos do Swagger
|
|
210
|
+
|
|
211
|
+
Gera schemas Zod a partir dos tipos de retorno das rotas:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
import { generateSwaggerTypes } from '@zeti/framework';
|
|
215
|
+
|
|
216
|
+
await generateSwaggerTypes({
|
|
217
|
+
controllersPath: './src/controllers',
|
|
218
|
+
outputPath: './src/zeti/swagger-schemas.generated.ts',
|
|
219
|
+
});
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Uso no package.json
|
|
223
|
+
|
|
224
|
+
```json
|
|
225
|
+
{
|
|
226
|
+
"scripts": {
|
|
227
|
+
"prebuild": "node --loader ts-node/esm scripts/generate-swagger.ts",
|
|
228
|
+
"build": "tsc"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Veja `examples/scripts-usage.ts` para mais detalhes.
|
|
234
|
+
|
|
235
|
+
## 📚 Documentação Completa
|
|
236
|
+
|
|
237
|
+
- `examples/scripts-usage.ts` - Uso dos scripts de geração
|
|
238
|
+
- `examples/graceful-shutdown.ts` - Graceful shutdown
|
|
239
|
+
- `examples/database-config-example.ts` - Configuração de databases
|
|
240
|
+
- `examples/metrics-usage.ts` - Uso de métricas
|
|
241
|
+
|
|
242
|
+
## 📝 Licença
|
|
243
|
+
|
|
244
|
+
MIT
|
package/dist/core/framework.d.ts
CHANGED
|
@@ -45,4 +45,17 @@ export declare function createZetiApp<TPrisma extends PrismaClientBase = PrismaC
|
|
|
45
45
|
config: ZetiConfig;
|
|
46
46
|
prismaClient: new (...args: any[]) => TPrisma;
|
|
47
47
|
}): ZetiApp<TPrisma, TUser>;
|
|
48
|
+
export declare function initializeZetiApp<TPrisma extends PrismaClientBase = PrismaClientBase, TUser = any>(options: {
|
|
49
|
+
config: ZetiConfig;
|
|
50
|
+
prismaClient: new (...args: any[]) => TPrisma;
|
|
51
|
+
}): ZetiApp<TPrisma, TUser>;
|
|
52
|
+
export declare function generateSwaggerFromGlobal(loadGeneratedSchemas?: () => Promise<{
|
|
53
|
+
routeResponseSchemas: Record<string, Record<string, {
|
|
54
|
+
schema: any;
|
|
55
|
+
ref: string | null;
|
|
56
|
+
}>>;
|
|
57
|
+
namedSchemas: Record<string, any>;
|
|
58
|
+
}>): any;
|
|
59
|
+
export declare function getZetiApp(): ZetiApp<any, any> | null;
|
|
60
|
+
export declare const honoRoutesZeti: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
48
61
|
//# sourceMappingURL=framework.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EACV,iBAAiB,EAEjB,gBAAgB,EAKjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,MAAM,WAAW,OAAO,CACtB,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EACnD,KAAK,GAAG,GAAG;IAEX,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,gBAAgB,GAAG,EAAE,EAC/D,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACvD,IAAI,CAAC;IAEV,IAAI,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,gBAAgB,GAAG,EAAE,EAChE,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACvD,IAAI,CAAC;IAEV,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,gBAAgB,GAAG,EAAE,EAC/D,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACvD,IAAI,CAAC;IAEV,GAAG,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,gBAAgB,GAAG,EAAE,EAC/D,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACvD,IAAI,CAAC;IAEV,KAAK,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,OAAO,SAAS,gBAAgB,GAAG,EAAE,EACjE,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,KACvD,IAAI,CAAC;IAEV,OAAO,EAAE,IAAI,CAAC;IACd,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EACnD,KAAK,GAAG,GAAG,EACX,OAAO,EAAE;IACT,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;CAC/C,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"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"}
|
package/dist/core/framework.js
CHANGED
|
@@ -35,10 +35,65 @@ export function createZetiApp(options) {
|
|
|
35
35
|
const honoApp = new Hono();
|
|
36
36
|
const tenantManager = new TenantManager(config.databases, config.prisma, config.specialDatabases);
|
|
37
37
|
const swaggerRegistry = new SwaggerRegistry();
|
|
38
|
+
// Aplica logger se habilitado
|
|
39
|
+
if (config.logger !== false) {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
41
|
+
const { logger } = require('hono/logger');
|
|
42
|
+
honoApp.use('*', logger());
|
|
43
|
+
}
|
|
44
|
+
// Aplica CORS se habilitado
|
|
45
|
+
if (config.cors?.enabled !== false) {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
47
|
+
const { cors } = require('hono/cors');
|
|
48
|
+
honoApp.use('*', cors({
|
|
49
|
+
origin: config.cors?.origin || '*',
|
|
50
|
+
allowMethods: config.cors?.allowMethods || ['GET', 'HEAD', 'PUT', 'PATCH', 'POST', 'DELETE', 'OPTIONS'],
|
|
51
|
+
allowHeaders: config.cors?.allowHeaders || ['*'],
|
|
52
|
+
credentials: config.cors?.credentials !== false,
|
|
53
|
+
maxAge: config.cors?.maxAge,
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
// Aplica error handler
|
|
38
57
|
if (config.errorHandler !== false) {
|
|
39
58
|
const errorHandlerConfig = typeof config.errorHandler === 'object' ? config.errorHandler : undefined;
|
|
40
59
|
honoApp.use('*', createErrorHandler(errorHandlerConfig));
|
|
41
60
|
}
|
|
61
|
+
// Adiciona rotas do Swagger se habilitado
|
|
62
|
+
if (config.swagger.enabled) {
|
|
63
|
+
const uiPath = config.swagger.uiPath || '/swagger';
|
|
64
|
+
const docPath = config.swagger.docPath || '/swagger/doc';
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
66
|
+
const { swaggerUI } = require('@hono/swagger-ui');
|
|
67
|
+
honoApp.get(uiPath, swaggerUI({ url: docPath }));
|
|
68
|
+
honoApp.get(docPath, async (c) => {
|
|
69
|
+
const { generateSwagger } = await import('../swagger/generator');
|
|
70
|
+
const spec = await generateSwagger(swaggerRegistry, config.swagger, {
|
|
71
|
+
loadGeneratedSchemas: async () => {
|
|
72
|
+
try {
|
|
73
|
+
// Tenta carregar schemas gerados se o outputPath estiver configurado
|
|
74
|
+
if (config.swagger.outputPath) {
|
|
75
|
+
const generated = await import(config.swagger.outputPath.replace(/\.ts$/, '.js'));
|
|
76
|
+
return {
|
|
77
|
+
routeResponseSchemas: generated.routeResponseSchemas || {},
|
|
78
|
+
namedSchemas: generated.namedSchemas || {},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
routeResponseSchemas: {},
|
|
83
|
+
namedSchemas: {},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return {
|
|
88
|
+
routeResponseSchemas: {},
|
|
89
|
+
namedSchemas: {},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
return c.json(spec);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
42
97
|
const createMethod = (httpMethod) => {
|
|
43
98
|
return (url, options) => {
|
|
44
99
|
const middlewares = [];
|
|
@@ -233,4 +288,45 @@ export function createZetiApp(options) {
|
|
|
233
288
|
},
|
|
234
289
|
};
|
|
235
290
|
}
|
|
291
|
+
let globalAppInstance = null;
|
|
292
|
+
let globalHonoApp = null;
|
|
293
|
+
let globalConfig = null;
|
|
294
|
+
export function initializeZetiApp(options) {
|
|
295
|
+
if (globalAppInstance) {
|
|
296
|
+
return globalAppInstance;
|
|
297
|
+
}
|
|
298
|
+
if (options.config.auth?.jwt) {
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
300
|
+
const { setJwtConfig } = require('../utils/jwt');
|
|
301
|
+
setJwtConfig({
|
|
302
|
+
secret: options.config.auth.jwt.secret || process.env.JWT_SECRET || '',
|
|
303
|
+
expiresIn: options.config.auth.jwt.expiresIn || '14d',
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
globalConfig = options.config;
|
|
307
|
+
globalAppInstance = createZetiApp(options);
|
|
308
|
+
globalHonoApp = globalAppInstance.honoApp;
|
|
309
|
+
return globalAppInstance;
|
|
310
|
+
}
|
|
311
|
+
export function generateSwaggerFromGlobal(loadGeneratedSchemas) {
|
|
312
|
+
if (!globalAppInstance || !globalConfig) {
|
|
313
|
+
throw new Error('Zeti app não foi inicializado. Chame initializeZetiApp() primeiro.');
|
|
314
|
+
}
|
|
315
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
316
|
+
const { generateSwagger } = require('../swagger/generator');
|
|
317
|
+
return generateSwagger(globalAppInstance.swaggerRegistry, globalConfig.swagger, {
|
|
318
|
+
loadGeneratedSchemas,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
export function getZetiApp() {
|
|
322
|
+
return globalAppInstance;
|
|
323
|
+
}
|
|
324
|
+
export const honoRoutesZeti = new Proxy({}, {
|
|
325
|
+
get(_target, prop) {
|
|
326
|
+
if (!globalHonoApp) {
|
|
327
|
+
throw new Error('Zeti app não foi inicializado. Chame initializeZetiApp() primeiro.');
|
|
328
|
+
}
|
|
329
|
+
return globalHonoApp[prop];
|
|
330
|
+
},
|
|
331
|
+
});
|
|
236
332
|
//# sourceMappingURL=framework.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"framework.js","sourceRoot":"","sources":["../../src/core/framework.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ export * from './tenants/metrics';
|
|
|
7
7
|
export * from './swagger/generator';
|
|
8
8
|
export * from './swagger/registry';
|
|
9
9
|
export * from './utils/error-handler';
|
|
10
|
+
export * from './utils/password';
|
|
11
|
+
export * from './utils/jwt';
|
|
12
|
+
export * from './utils/http-exceptions';
|
|
10
13
|
export * from './scripts/generate-registry';
|
|
11
14
|
export * from './scripts/generate-swagger-types';
|
|
15
|
+
export { initializeZetiApp, getZetiApp, honoRoutesZeti, generateSwaggerFromGlobal } from './core/framework';
|
|
12
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,10 @@ export * from './tenants/metrics';
|
|
|
7
7
|
export * from './swagger/generator';
|
|
8
8
|
export * from './swagger/registry';
|
|
9
9
|
export * from './utils/error-handler';
|
|
10
|
+
export * from './utils/password';
|
|
11
|
+
export * from './utils/jwt';
|
|
12
|
+
export * from './utils/http-exceptions';
|
|
10
13
|
export * from './scripts/generate-registry';
|
|
11
14
|
export * from './scripts/generate-swagger-types';
|
|
15
|
+
export { initializeZetiApp, getZetiApp, honoRoutesZeti, generateSwaggerFromGlobal } from './core/framework';
|
|
12
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -21,6 +21,14 @@ export interface ZetiPrismaConfig {
|
|
|
21
21
|
connectionTimeoutMillis?: number;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
+
export interface ZetiCorsConfig {
|
|
25
|
+
enabled?: boolean;
|
|
26
|
+
origin?: string | string[] | ((origin: string) => boolean);
|
|
27
|
+
allowMethods?: string[];
|
|
28
|
+
allowHeaders?: string[];
|
|
29
|
+
credentials?: boolean;
|
|
30
|
+
maxAge?: number;
|
|
31
|
+
}
|
|
24
32
|
export interface ZetiSwaggerConfig {
|
|
25
33
|
enabled: boolean;
|
|
26
34
|
title: string;
|
|
@@ -31,6 +39,8 @@ export interface ZetiSwaggerConfig {
|
|
|
31
39
|
}>;
|
|
32
40
|
outputPath?: string;
|
|
33
41
|
generateOnBuild?: boolean;
|
|
42
|
+
uiPath?: string;
|
|
43
|
+
docPath?: string;
|
|
34
44
|
}
|
|
35
45
|
export interface ZetiHeadersConfig {
|
|
36
46
|
tenant?: string;
|
|
@@ -47,13 +57,24 @@ export interface ZetiMiddlewareConfig {
|
|
|
47
57
|
named?: Record<string, Middleware | ((...args: any[]) => Middleware)>;
|
|
48
58
|
}
|
|
49
59
|
import type { ZetiErrorHandlerConfig } from '../utils/error-handler';
|
|
60
|
+
export interface ZetiAuthConfig {
|
|
61
|
+
jwt?: {
|
|
62
|
+
secret?: string;
|
|
63
|
+
expiresIn?: string;
|
|
64
|
+
};
|
|
65
|
+
password?: {
|
|
66
|
+
bcryptSaltRounds?: number;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
50
69
|
export interface ZetiConfig {
|
|
51
70
|
databases: ZetiDatabaseConfig;
|
|
52
71
|
specialDatabases?: Record<string, string>;
|
|
53
72
|
prisma: ZetiPrismaConfig;
|
|
54
73
|
swagger: ZetiSwaggerConfig;
|
|
55
74
|
tenant?: ZetiTenantConfig;
|
|
56
|
-
|
|
75
|
+
cors?: ZetiCorsConfig;
|
|
76
|
+
logger?: boolean;
|
|
77
|
+
auth?: ZetiAuthConfig;
|
|
57
78
|
headers?: ZetiHeadersConfig;
|
|
58
79
|
middlewares?: ZetiMiddlewareConfig;
|
|
59
80
|
errorHandler?: ZetiErrorHandlerConfig | boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC5D,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,cAAc,CAAC,EAAE;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AA+FA,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function badRequestError(message: string, cause?: any): never;
|
|
2
|
+
export declare function unauthorizedError(message: string, cause?: any): never;
|
|
3
|
+
export declare function forbiddenError(message: string, cause?: any): never;
|
|
4
|
+
export declare function notFoundError(message: string, cause?: any): never;
|
|
5
|
+
export declare function conflictError(message: string, cause?: any): never;
|
|
6
|
+
export declare function goneError(message: string, cause?: any): never;
|
|
7
|
+
export declare function unprocessableEntityError(message: string, cause?: any): never;
|
|
8
|
+
export declare function internalServerError(message: string, cause?: any): never;
|
|
9
|
+
//# sourceMappingURL=http-exceptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-exceptions.d.ts","sourceRoot":"","sources":["../../src/utils/http-exceptions.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAEnE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAErE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAElE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAEjE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAEjE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAE7D;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,KAAK,CAEvE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { HTTPException } from 'hono/http-exception';
|
|
2
|
+
export function badRequestError(message, cause) {
|
|
3
|
+
throw new HTTPException(400, { message, cause });
|
|
4
|
+
}
|
|
5
|
+
export function unauthorizedError(message, cause) {
|
|
6
|
+
throw new HTTPException(401, { message, cause });
|
|
7
|
+
}
|
|
8
|
+
export function forbiddenError(message, cause) {
|
|
9
|
+
throw new HTTPException(403, { message, cause });
|
|
10
|
+
}
|
|
11
|
+
export function notFoundError(message, cause) {
|
|
12
|
+
throw new HTTPException(404, { message, cause });
|
|
13
|
+
}
|
|
14
|
+
export function conflictError(message, cause) {
|
|
15
|
+
throw new HTTPException(409, { message, cause });
|
|
16
|
+
}
|
|
17
|
+
export function goneError(message, cause) {
|
|
18
|
+
throw new HTTPException(410, { message, cause });
|
|
19
|
+
}
|
|
20
|
+
export function unprocessableEntityError(message, cause) {
|
|
21
|
+
throw new HTTPException(422, { message, cause });
|
|
22
|
+
}
|
|
23
|
+
export function internalServerError(message, cause) {
|
|
24
|
+
throw new HTTPException(500, { message, cause });
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=http-exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-exceptions.js","sourceRoot":"","sources":["../../src/utils/http-exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,KAAW;IAC1D,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAW;IAC5D,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,KAAW;IACzD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAW;IACxD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,KAAW;IACxD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAW;IACpD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,KAAW;IACnE,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,KAAW;IAC9D,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface ZetiJwtConfig {
|
|
2
|
+
secret: string;
|
|
3
|
+
expiresIn?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface TokenPayload {
|
|
6
|
+
id: string;
|
|
7
|
+
iat?: number;
|
|
8
|
+
exp?: number;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export declare function setJwtConfig(config: ZetiJwtConfig): void;
|
|
12
|
+
export declare function getJwtConfig(): ZetiJwtConfig | null;
|
|
13
|
+
export declare function signToken(payload: Omit<TokenPayload, 'iat' | 'exp'>, config?: ZetiJwtConfig): string;
|
|
14
|
+
export declare function verifyToken(token: string, config?: ZetiJwtConfig): TokenPayload;
|
|
15
|
+
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAExD;AAED,wBAAgB,YAAY,IAAI,aAAa,GAAG,IAAI,CAEnD;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK,CAAC,EAC1C,MAAM,CAAC,EAAE,aAAa,GACrB,MAAM,CAYR;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,aAAa,GACrB,YAAY,CAed"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
let globalJwtConfig = null;
|
|
2
|
+
export function setJwtConfig(config) {
|
|
3
|
+
globalJwtConfig = config;
|
|
4
|
+
}
|
|
5
|
+
export function getJwtConfig() {
|
|
6
|
+
return globalJwtConfig;
|
|
7
|
+
}
|
|
8
|
+
export function signToken(payload, config) {
|
|
9
|
+
const jwtConfig = config || globalJwtConfig;
|
|
10
|
+
if (!jwtConfig || !jwtConfig.secret || typeof jwtConfig.secret !== 'string') {
|
|
11
|
+
throw new Error('JWT_SECRET is required. Configure auth.jwt.secret in zetiConfig or pass config parameter.');
|
|
12
|
+
}
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14
|
+
const jwt = require('jsonwebtoken');
|
|
15
|
+
return jwt.sign(payload, jwtConfig.secret, {
|
|
16
|
+
expiresIn: jwtConfig.expiresIn || '14d',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export function verifyToken(token, config) {
|
|
20
|
+
const jwtConfig = config || globalJwtConfig;
|
|
21
|
+
if (!jwtConfig || !jwtConfig.secret || typeof jwtConfig.secret !== 'string') {
|
|
22
|
+
throw new Error('JWT_SECRET is required. Configure auth.jwt.secret in zetiConfig or pass config parameter.');
|
|
23
|
+
}
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
25
|
+
const jwt = require('jsonwebtoken');
|
|
26
|
+
try {
|
|
27
|
+
return jwt.verify(token, jwtConfig.secret);
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error('Token inválido ou expirado');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=jwt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAYA,IAAI,eAAe,GAAyB,IAAI,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,eAAe,GAAG,MAAM,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,OAA0C,EAC1C,MAAsB;IAEtB,MAAM,SAAS,GAAG,MAAM,IAAI,eAAe,CAAC;IAE5C,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC/G,CAAC;IAED,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE;QACzC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,KAAK;KACxC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,MAAsB;IAEtB,MAAM,SAAS,GAAG,MAAM,IAAI,eAAe,CAAC;IAE5C,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;IAC/G,CAAC;IAED,iEAAiE;IACjE,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAiB,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface ZetiPasswordConfig {
|
|
2
|
+
bcryptSaltRounds?: number;
|
|
3
|
+
}
|
|
4
|
+
export declare function hashPassword(value: string, saltRounds?: number): Promise<string>;
|
|
5
|
+
export declare function comparePassword(value: string, hashedValue: string): Promise<boolean>;
|
|
6
|
+
//# sourceMappingURL=password.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../src/utils/password.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAIlB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export async function hashPassword(value, saltRounds = 10) {
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
3
|
+
const bcryptjs = require('bcryptjs');
|
|
4
|
+
return await bcryptjs.hash(value, saltRounds);
|
|
5
|
+
}
|
|
6
|
+
export async function comparePassword(value, hashedValue) {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
8
|
+
const bcryptjs = require('bcryptjs');
|
|
9
|
+
return await bcryptjs.compare(value, hashedValue);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=password.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"password.js","sourceRoot":"","sources":["../../src/utils/password.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,aAAqB,EAAE;IAEvB,iEAAiE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,WAAmB;IAEnB,iEAAiE;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,67 +1,71 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "zeti-framework",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Framework Hono com suporte a multi-tenancy, Prisma e Swagger automático",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"exports": {
|
|
9
|
-
".": {
|
|
10
|
-
"import": "./dist/index.js",
|
|
11
|
-
"types": "./dist/index.d.ts"
|
|
12
|
-
},
|
|
13
|
-
"./swagger": {
|
|
14
|
-
"import": "./dist/swagger/index.js",
|
|
15
|
-
"types": "./dist/swagger/index.d.ts"
|
|
16
|
-
},
|
|
17
|
-
"./tenants": {
|
|
18
|
-
"import": "./dist/tenants/index.js",
|
|
19
|
-
"types": "./dist/tenants/index.d.ts"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"pg": "^
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"@
|
|
57
|
-
"
|
|
58
|
-
},
|
|
59
|
-
"
|
|
60
|
-
"@prisma/client":
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "zeti-framework",
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Framework Hono com suporte a multi-tenancy, Prisma e Swagger automático",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./swagger": {
|
|
14
|
+
"import": "./dist/swagger/index.js",
|
|
15
|
+
"types": "./dist/swagger/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./tenants": {
|
|
18
|
+
"import": "./dist/tenants/index.js",
|
|
19
|
+
"types": "./dist/tenants/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./scripts": {
|
|
22
|
+
"import": "./dist/scripts/index.js",
|
|
23
|
+
"types": "./dist/scripts/index.d.ts"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist",
|
|
28
|
+
"README.md"
|
|
29
|
+
],
|
|
30
|
+
"scripts": {
|
|
31
|
+
"build": "tsc",
|
|
32
|
+
"dev": "tsc --watch",
|
|
33
|
+
"prepublishOnly": "npm run build",
|
|
34
|
+
"clean": "rm -rf dist"
|
|
35
|
+
},
|
|
36
|
+
"keywords": [
|
|
37
|
+
"hono",
|
|
38
|
+
"prisma",
|
|
39
|
+
"multi-tenant",
|
|
40
|
+
"swagger",
|
|
41
|
+
"typescript",
|
|
42
|
+
"framework"
|
|
43
|
+
],
|
|
44
|
+
"author": "",
|
|
45
|
+
"license": "MIT",
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@prisma/adapter-pg": "^7.2.0",
|
|
48
|
+
"@hono/zod-validator": "^0.4.0",
|
|
49
|
+
"hono": "^4.6.0",
|
|
50
|
+
"zod": "^3.23.0",
|
|
51
|
+
"pg": "^8.17.1",
|
|
52
|
+
"fast-glob": "^3.3.2"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@types/node": "^25.0.9",
|
|
56
|
+
"@types/pg": "^8.16.0",
|
|
57
|
+
"typescript": "^5.9.3"
|
|
58
|
+
},
|
|
59
|
+
"peerDependencies": {
|
|
60
|
+
"@prisma/client": "^7.0.0",
|
|
61
|
+
"hono": "^4.0.0"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"@prisma/client": {
|
|
65
|
+
"optional": false
|
|
66
|
+
},
|
|
67
|
+
"hono": {
|
|
68
|
+
"optional": false
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|