@empleado-juan/commons 1.0.0 → 1.0.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/README.md +169 -0
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.d.ts.map +1 -1
- package/dist/enums/index.js +1 -0
- package/package.json +1 -1
- package/src/enums/index.ts +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# @empleado-juan/commons
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@empleado-juan/commons)
|
|
4
|
+
|
|
5
|
+
Paquete de código compartido entre frontend y backend para el sistema Empleado Juan Control.
|
|
6
|
+
|
|
7
|
+
## Instalación
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @empleado-juan/commons
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Características
|
|
14
|
+
|
|
15
|
+
- ✅ **TypeScript**: Tipos completamente tipados
|
|
16
|
+
- ✅ **Tree-shakeable**: Solo importa lo que necesitas
|
|
17
|
+
- ✅ **Zero dependencies**: No trae dependencias extra
|
|
18
|
+
- ✅ **ESM + CommonJS**: Compatible con ambos formatos
|
|
19
|
+
|
|
20
|
+
## Contenido
|
|
21
|
+
|
|
22
|
+
### 📦 Types
|
|
23
|
+
|
|
24
|
+
Interfaces TypeScript compartidas:
|
|
25
|
+
|
|
26
|
+
```typescript
|
|
27
|
+
import type {
|
|
28
|
+
AttendanceRecord,
|
|
29
|
+
EmployeeData,
|
|
30
|
+
LicenseStatus,
|
|
31
|
+
EventMessage,
|
|
32
|
+
HeartbeatMetrics
|
|
33
|
+
} from '@empleado-juan/commons';
|
|
34
|
+
|
|
35
|
+
// Ejemplo de uso
|
|
36
|
+
const attendance: AttendanceRecord = {
|
|
37
|
+
id: '123',
|
|
38
|
+
employeeId: 'emp-456',
|
|
39
|
+
timestamp: new Date(),
|
|
40
|
+
eventType: 'CHECK_IN',
|
|
41
|
+
branchId: 'branch-1'
|
|
42
|
+
};
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 🏷️ Enums
|
|
46
|
+
|
|
47
|
+
Enumeraciones del dominio:
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
import {
|
|
51
|
+
AttendanceEventType,
|
|
52
|
+
PaymentType,
|
|
53
|
+
LicenseValidationReason,
|
|
54
|
+
MessageBrokerType
|
|
55
|
+
} from '@empleado-juan/commons';
|
|
56
|
+
|
|
57
|
+
// Ejemplo de uso
|
|
58
|
+
if (record.eventType === AttendanceEventType.CHECK_IN) {
|
|
59
|
+
console.log('Empleado ingresó');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const paymentType = PaymentType.BIWEEKLY;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Enums disponibles**:
|
|
66
|
+
- `AttendanceEventType`: CHECK_IN, CHECK_OUT, BREAK_START, BREAK_END, etc.
|
|
67
|
+
- `PaymentType`: MONTHLY, BIWEEKLY, WEEKLY
|
|
68
|
+
- `ContractType`: FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY
|
|
69
|
+
- `LicenseValidationReason`: VALID, EXPIRED, INVALID, etc.
|
|
70
|
+
- `MessageBrokerType`: RABBITMQ, KAFKA, SQS
|
|
71
|
+
|
|
72
|
+
### 🔧 Constants
|
|
73
|
+
|
|
74
|
+
Constantes del sistema:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
import { LICENSE_CONSTANTS } from '@empleado-juan/commons';
|
|
78
|
+
|
|
79
|
+
// Ejemplo de uso
|
|
80
|
+
const cacheTTL = LICENSE_CONSTANTS.CACHE_TTL; // 5 minutos
|
|
81
|
+
const gracePeriod = LICENSE_CONSTANTS.GRACE_PERIOD; // 24 horas
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 📡 Event Topics
|
|
85
|
+
|
|
86
|
+
Definición de eventos del sistema:
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
import { EVENT_TOPICS } from '@empleado-juan/commons';
|
|
90
|
+
|
|
91
|
+
// Ejemplo de uso
|
|
92
|
+
const topic = EVENT_TOPICS.ATTENDANCE_CREATED; // 'attendance-created'
|
|
93
|
+
const empTopic = EVENT_TOPICS.EMPLOYEE_UPDATED; // 'employee-updated'
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Topics disponibles**:
|
|
97
|
+
- `ATTENDANCE_CREATED`, `ATTENDANCE_UPDATED`
|
|
98
|
+
- `EMPLOYEE_CREATED`, `EMPLOYEE_UPDATED`, `EMPLOYEE_DELETED`
|
|
99
|
+
- `COMPENSATION_CREATED`, `COMPENSATION_UPDATED`
|
|
100
|
+
- `SCHEDULE_CREATED`, `SCHEDULE_UPDATED`
|
|
101
|
+
|
|
102
|
+
## Ejemplos de Uso
|
|
103
|
+
|
|
104
|
+
### Frontend (React/Next.js)
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
import { AttendanceEventType, type EmployeeData } from '@empleado-juan/commons';
|
|
108
|
+
|
|
109
|
+
function EmployeeCard({ employee }: { employee: EmployeeData }) {
|
|
110
|
+
return (
|
|
111
|
+
<div>
|
|
112
|
+
<h3>{employee.firstName} {employee.lastName}</h3>
|
|
113
|
+
<p>Status: {employee.isActive ? 'Activo' : 'Inactivo'}</p>
|
|
114
|
+
</div>
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Backend (Node.js)
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
import { EVENT_TOPICS, type EventMessage } from '@empleado-juan/commons';
|
|
123
|
+
|
|
124
|
+
async function publishEvent(topic: string, data: any) {
|
|
125
|
+
const message: EventMessage = {
|
|
126
|
+
key: data.id,
|
|
127
|
+
value: data,
|
|
128
|
+
headers: {
|
|
129
|
+
'event-type': topic,
|
|
130
|
+
'timestamp': new Date().toISOString()
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
await messageQueue.send(EVENT_TOPICS.EMPLOYEE_CREATED, message);
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Desarrollo
|
|
139
|
+
|
|
140
|
+
### Setup
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
git clone <repo>
|
|
144
|
+
cd commons
|
|
145
|
+
npm install
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Build
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
npm run build
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Publish
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Incrementar versión
|
|
158
|
+
npm version patch|minor|major
|
|
159
|
+
|
|
160
|
+
# Compilar
|
|
161
|
+
npm run build
|
|
162
|
+
|
|
163
|
+
# Publicar
|
|
164
|
+
npm publish --access public
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
MIT © Empleado Juan Team
|
package/dist/enums/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;CACxB;AAGD,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAGD,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAGD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAGD,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAGD,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB;AAGD,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAGD,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAGD,oBAAY,uBAAuB;IACjC,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAGD,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAGD,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAGD,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;CACxB;AAGD,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAGD,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAGD,oBAAY,WAAW;IACrB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAGD,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAGD,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,OAAO,YAAY;CACpB;AAGD,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB;AAGD,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAGD,oBAAY,uBAAuB;IACjC,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,UAAU,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAGD,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAGD,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAGD,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ"}
|
package/dist/enums/index.js
CHANGED
|
@@ -46,6 +46,7 @@ export var PayrollFrequency;
|
|
|
46
46
|
(function (PayrollFrequency) {
|
|
47
47
|
PayrollFrequency["WEEKLY"] = "WEEKLY";
|
|
48
48
|
PayrollFrequency["BIWEEKLY"] = "BIWEEKLY";
|
|
49
|
+
PayrollFrequency["QUINCENAL"] = "QUINCENAL";
|
|
49
50
|
PayrollFrequency["MONTHLY"] = "MONTHLY";
|
|
50
51
|
})(PayrollFrequency || (PayrollFrequency = {}));
|
|
51
52
|
// User Roles
|
package/package.json
CHANGED