ar-saas 0.4.0 → 0.4.1
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center"><samp>
|
|
2
2
|
╔══════════════════════════════════╗<br/>
|
|
3
|
-
║
|
|
3
|
+
║ ar-saas-backend <br/>
|
|
4
4
|
║ AFIP · Mercado Pago · Auth · Mail <br/>
|
|
5
5
|
║ todo integrado en un comando <br/>
|
|
6
6
|
╚══════════════════════════════════╝<br/>
|
|
@@ -23,7 +23,7 @@ manejo de errores. Y cuando por fin terminás todo ese boilerplate, te das cuent
|
|
|
23
23
|
de que todavía falta integrar AFIP para facturación electrónica y Mercado Pago
|
|
24
24
|
para cobrar. Otras 2 semanas.
|
|
25
25
|
|
|
26
|
-
`
|
|
26
|
+
`ar-saas` genera este repositorio completo **en un comando**. Viene con
|
|
27
27
|
todo lo genérico ya resuelto, más integraciones reales para operar en Argentina.
|
|
28
28
|
**Solo tenés que agregar tus módulos de negocio** siguiendo el patrón de
|
|
29
29
|
`.ai-docs/`.
|
|
@@ -51,9 +51,9 @@ todo lo genérico ya resuelto, más integraciones reales para operar en Argentin
|
|
|
51
51
|
|
|
52
52
|
## Características principales
|
|
53
53
|
|
|
54
|
-
- **Multi-tenancy real** — Aislamiento por `workspaceId` garantizado en cada query.
|
|
54
|
+
- **Multi-tenancy real** — Aislamiento por `workspaceId` garantizado en cada query. El `workspaceId` se extrae del JWT verificado del usuario autenticado. `BaseRepository` fuerza el filtro en toda operación. Imposible leakear datos entre workspaces por error humano.
|
|
55
55
|
|
|
56
|
-
- **Auth completo** — Registro, login, refresh token rotativo, email verification, password reset
|
|
56
|
+
- **Auth completo** — Registro, login, refresh token rotativo, email verification, password reset. Access + refresh tokens en cookies `HttpOnly`, `Secure`, `SameSite=Strict`. Con rate limiting en endpoints sensibles y Helmet para headers de seguridad. Nunca en `localStorage` ni en el body.
|
|
57
57
|
|
|
58
58
|
- **BaseRepository genérico** — Soft delete, paginación, filtros dinámicos, agregaciones, conteo, upsert. Manejo automático de errores MongoDB (duplicate key, cast error). 12 métodos heredados por todos los repositorios.
|
|
59
59
|
|
|
@@ -197,7 +197,7 @@ src/
|
|
|
197
197
|
│ ├── guards/
|
|
198
198
|
│ │ └── jwt-auth.guard.ts # AuthGuard('jwt')
|
|
199
199
|
│ └── interceptors/
|
|
200
|
-
│ └── workspace-tenant.interceptor.ts #
|
|
200
|
+
│ └── workspace-tenant.interceptor.ts # Extrae workspaceId del JWT verificado
|
|
201
201
|
├── modules/
|
|
202
202
|
│ ├── auth/ # Registro, login, refresh, email verification, password reset
|
|
203
203
|
│ ├── users/ # CRUD de usuarios
|
|
@@ -246,4 +246,4 @@ El archivo `.ai-docs/examples/full-module-example.md` tiene el módulo Clientes
|
|
|
246
246
|
|
|
247
247
|
## Licencia
|
|
248
248
|
|
|
249
|
-
Privado (UNLICENSED). Generado con [`
|
|
249
|
+
Privado (UNLICENSED). Generado con [`ar-saas`](https://github.com/anomalyco/ar-saas).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ar-saas — Frontend
|
|
2
2
|
|
|
3
3
|
Frontend del template SaaS para startups argentinas. Stack: Next.js 15, TypeScript, Tailwind CSS 4, shadcn/ui.
|
|
4
4
|
|
|
@@ -98,7 +98,7 @@ src/
|
|
|
98
98
|
│ ├── (legal)/ # Términos y privacidad
|
|
99
99
|
│ ├── setup/ # Pantalla de setup inicial (se muestra al arrancar por primera vez)
|
|
100
100
|
│ ├── layout.tsx # Layout raíz con AuthProvider
|
|
101
|
-
│ └── page.tsx # Redirige a /
|
|
101
|
+
│ └── page.tsx # Redirige a /login
|
|
102
102
|
├── components/
|
|
103
103
|
│ ├── landing/ # Componentes de la landing page (navbar, hero, features, pricing)
|
|
104
104
|
│ ├── dashboard/ # Sidebar, header y cards del dashboard
|