feat: actualizar versión a 0.10.7 en todos los módulos y cambiar identificador de fuente a 'factuges-erp'

This commit is contained in:
David Arranz 2026-08-26 14:38:44 +02:00
parent 5bac39527e
commit 23c77adc80
38 changed files with 46 additions and 46 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/factuges-server", "name": "@erp/factuges-server",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"scripts": { "scripts": {
"build": "tsup src/index.ts --config tsup.config.ts", "build": "tsup src/index.ts --config tsup.config.ts",

View File

@ -38,7 +38,7 @@ const operationContext = new AsyncLocalStorageOperationContextStore();
const transactionContext = new SequelizeTransactionContext(); const transactionContext = new SequelizeTransactionContext();
const auditContextProvider = new OperationAuditContextProvider(operationContext); const auditContextProvider = new OperationAuditContextProvider(operationContext);
const AUDIT_SOURCE = { type: "application", id: "uecko-erp" } as const; const AUDIT_SOURCE = { type: "application", id: "factuges-erp" } as const;
// Guardamos información del estado del servidor // Guardamos información del estado del servidor
export const currentState = { export const currentState = {

View File

@ -17,7 +17,7 @@ function event(id: string, scopeId: string | null) {
kind: "event", kind: "event",
occurred_at: new Date("2026-08-25T10:00:00.000Z"), occurred_at: new Date("2026-08-25T10:00:00.000Z"),
source_type: "application", source_type: "application",
source_id: "uecko-erp", source_id: "factuges-erp",
operation_id: `op-${id}`, operation_id: `op-${id}`,
correlation_id: `cor-${id}`, correlation_id: `cor-${id}`,
origin: "http", origin: "http",

View File

@ -64,7 +64,7 @@ function entry(id: string, action: string, scopeId: string | null, occurredAt: s
kind: "event", kind: "event",
occurred_at: new Date(occurredAt), occurred_at: new Date(occurredAt),
source_type: "application", source_type: "application",
source_id: "uecko-erp", source_id: "factuges-erp",
operation_id: `operation-${id}`, operation_id: `operation-${id}`,
correlation_id: `correlation-${id}`, correlation_id: `correlation-${id}`,
origin: "http", origin: "http",

View File

@ -156,7 +156,7 @@ test("Audit runtime propaga contexto HTTP y transacciones hasta MariaDB", async
const event = await AuditEventModel.findOne({ where: { action: "test.audit.event" } }); const event = await AuditEventModel.findOne({ where: { action: "test.audit.event" } });
assert.ok(event); assert.ok(event);
assert.equal(event.source_type, "application"); assert.equal(event.source_type, "application");
assert.equal(event.source_id, "uecko-erp"); assert.equal(event.source_id, "factuges-erp");
assert.equal(event.origin, "http"); assert.equal(event.origin, "http");
assert.equal(event.operation_id, eventResponse.headers.get("x-request-id")); assert.equal(event.operation_id, eventResponse.headers.get("x-request-id"));
assert.equal(event.correlation_id, correlationId); assert.equal(event.correlation_id, correlationId);

View File

@ -108,7 +108,7 @@ test("companies registra create, updates, no-ops y rollback con MariaDB", async
assert.equal(updatedEvent.target_type, "company"); assert.equal(updatedEvent.target_type, "company");
assert.equal(updatedEvent.target_label, "Updated company"); assert.equal(updatedEvent.target_label, "Updated company");
assert.equal(updatedEvent.source_type, "application"); assert.equal(updatedEvent.source_type, "application");
assert.equal(updatedEvent.source_id, "uecko-erp"); assert.equal(updatedEvent.source_id, "factuges-erp");
assert.equal(updatedEvent.origin, "http"); assert.equal(updatedEvent.origin, "http");
assert.equal(updatedEvent.operation_id, updateResponse.headers.get("x-request-id")); assert.equal(updatedEvent.operation_id, updateResponse.headers.get("x-request-id"));
assert.equal(updatedEvent.correlation_id, "company-update-correlation"); assert.equal(updatedEvent.correlation_id, "company-update-correlation");

View File

@ -157,7 +157,7 @@ test("customers registra create, update y el create público en MariaDB", async
}); });
assert.ok(createdEvent); assert.ok(createdEvent);
assert.equal(createdEvent.source_type, "application"); assert.equal(createdEvent.source_type, "application");
assert.equal(createdEvent.source_id, "uecko-erp"); assert.equal(createdEvent.source_id, "factuges-erp");
assert.equal(createdEvent.origin, "http"); assert.equal(createdEvent.origin, "http");
assert.equal(createdEvent.operation_id, createResponse.headers.get("x-request-id")); assert.equal(createdEvent.operation_id, createResponse.headers.get("x-request-id"));
assert.equal(createdEvent.correlation_id, "customer-create-correlation"); assert.equal(createdEvent.correlation_id, "customer-create-correlation");

View File

@ -47,7 +47,7 @@ import { registerModules } from "@/register-modules.ts";
const currentDir = dirname(fileURLToPath(import.meta.url)); const currentDir = dirname(fileURLToPath(import.meta.url));
const TEST_ENV_FILE = resolve(currentDir, "../../../.env.test"); const TEST_ENV_FILE = resolve(currentDir, "../../../.env.test");
const FORBIDDEN_DATABASE_NAMES = new Set(["uecko_erp", "uecko_erp_sync", "rodax_db"]); const FORBIDDEN_DATABASE_NAMES = new Set(["uecko_erp", "uecko_erp_sync", "rodax_db"]);
const AUDIT_SOURCE = { type: "application", id: "uecko-erp" } as const; const AUDIT_SOURCE = { type: "application", id: "factuges-erp" } as const;
export interface HttpTestRuntimeOptions { export interface HttpTestRuntimeOptions {
readonly testModules?: readonly IModuleServer[]; readonly testModules?: readonly IModuleServer[];

View File

@ -68,7 +68,7 @@ test("payment methods registra create y update con el contexto HTTP en MariaDB",
}); });
assert.ok(createdAudit); assert.ok(createdAudit);
assert.equal(createdAudit.source_type, "application"); assert.equal(createdAudit.source_type, "application");
assert.equal(createdAudit.source_id, "uecko-erp"); assert.equal(createdAudit.source_id, "factuges-erp");
assert.equal(createdAudit.origin, "http"); assert.equal(createdAudit.origin, "http");
assert.equal(createdAudit.operation_id, createResponse.headers.get("x-request-id")); assert.equal(createdAudit.operation_id, createResponse.headers.get("x-request-id"));
assert.equal(createdAudit.correlation_id, "payment-method-create-correlation"); assert.equal(createdAudit.correlation_id, "payment-method-create-correlation");

View File

@ -87,7 +87,7 @@ test("payment terms registra dueRules atómicas y revierte junto con el agregado
}); });
assert.ok(auditEvent); assert.ok(auditEvent);
assert.equal(auditEvent.source_type, "application"); assert.equal(auditEvent.source_type, "application");
assert.equal(auditEvent.source_id, "uecko-erp"); assert.equal(auditEvent.source_id, "factuges-erp");
assert.equal(auditEvent.origin, "http"); assert.equal(auditEvent.origin, "http");
assert.equal(auditEvent.operation_id, updateResponse.headers.get("x-request-id")); assert.equal(auditEvent.operation_id, updateResponse.headers.get("x-request-id"));
assert.equal(auditEvent.correlation_id, "payment-term-due-rules-correlation"); assert.equal(auditEvent.correlation_id, "payment-term-due-rules-correlation");

View File

@ -85,7 +85,7 @@ test("suppliers registra create/update, omite no-ops y revierte Supplier + Audit
}); });
assert.ok(createdEvent); assert.ok(createdEvent);
assert.equal(createdEvent.source_type, "application"); assert.equal(createdEvent.source_type, "application");
assert.equal(createdEvent.source_id, "uecko-erp"); assert.equal(createdEvent.source_id, "factuges-erp");
assert.equal(createdEvent.origin, "http"); assert.equal(createdEvent.origin, "http");
assert.equal(createdEvent.operation_id, createResponse.headers.get("x-request-id")); assert.equal(createdEvent.operation_id, createResponse.headers.get("x-request-id"));
assert.equal(createdEvent.correlation_id, "supplier-create-correlation"); assert.equal(createdEvent.correlation_id, "supplier-create-correlation");

View File

@ -74,7 +74,7 @@ test("suppliers activa y desactiva con Audit transaccional en MariaDB", async (t
}); });
assert.ok(deactivatedEvent); assert.ok(deactivatedEvent);
assert.equal(deactivatedEvent.source_type, "application"); assert.equal(deactivatedEvent.source_type, "application");
assert.equal(deactivatedEvent.source_id, "uecko-erp"); assert.equal(deactivatedEvent.source_id, "factuges-erp");
assert.equal(deactivatedEvent.origin, "http"); assert.equal(deactivatedEvent.origin, "http");
assert.equal(deactivatedEvent.operation_id, deactivateResponse.headers.get("x-request-id")); assert.equal(deactivatedEvent.operation_id, deactivateResponse.headers.get("x-request-id"));
assert.equal(deactivatedEvent.correlation_id, "supplier-deactivate-correlation"); assert.equal(deactivatedEvent.correlation_id, "supplier-deactivate-correlation");

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/factuges-web", "name": "@erp/factuges-web",
"private": true, "private": true,
"version": "0.10.5", "version": "0.10.7",
"type": "module", "type": "module",
"scripts": { "scripts": {
"typecheck": "tsc -p tsconfig.json --noEmit", "typecheck": "tsc -p tsconfig.json --noEmit",

View File

@ -107,7 +107,7 @@ Si Audit falla, el resultado debe propagarse y T1 revierte negocio y auditoría.
`audit_changes` tiene PK compuesta `(audit_event_id, position)`, FK a `audit_events(id)` con `ON DELETE CASCADE`, además de `path`, `kind`, `before_value` y `after_value` JSON. MariaDB puede devolver JSON como texto; los getters del modelo lo parsean para mantener el contrato al leer. `position` preserva el orden persistido. `audit_changes` tiene PK compuesta `(audit_event_id, position)`, FK a `audit_events(id)` con `ON DELETE CASCADE`, además de `path`, `kind`, `before_value` y `after_value` JSON. MariaDB puede devolver JSON como texto; los getters del modelo lo parsean para mantener el contrato al leer. `position` preserva el orden persistido.
La composición productiva crea una única instancia: `AsyncLocalStorageOperationContextStore -> OperationAuditContextProvider`, `SequelizeTransactionContext -> SequelizeAuditStore`, y `Audit({ source: { type: "application", id: "uecko-erp" }, ... })`. Esa instancia se entrega como `ModuleParams.audit`; los módulos reciben el puerto, no el store concreto ni una instancia por request. La composición productiva crea una única instancia: `AsyncLocalStorageOperationContextStore -> OperationAuditContextProvider`, `SequelizeTransactionContext -> SequelizeAuditStore`, y `Audit({ source: { type: "application", id: "factuges-erp" }, ... })`. Esa instancia se entrega como `ModuleParams.audit`; los módulos reciben el puerto, no el store concreto ni una instancia por request.
## Patrón de instrumentación funcional ## Patrón de instrumentación funcional

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/audit", "name": "@erp/audit",
"description": "Audit frontend module", "description": "Audit frontend module",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/auth", "name": "@erp/auth",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/catalogs", "name": "@erp/catalogs",
"description": "Catalogs module", "description": "Catalogs module",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/companies", "name": "@erp/companies",
"description": "Companies module", "description": "Companies module",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/core", "name": "@erp/core",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/customer-invoices", "name": "@erp/customer-invoices",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/customers", "name": "@erp/customers",
"description": "Customers", "description": "Customers",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/document-series", "name": "@erp/document-series",
"description": "Document series module", "description": "Document series module",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@erp/factuges", "name": "@erp/factuges",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/identity", "name": "@erp/identity",
"description": "Identity module", "description": "Identity module",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/supplier-invoices", "name": "@erp/supplier-invoices",
"description": "Supplier invoices", "description": "Supplier invoices",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "@erp/suppliers", "name": "@erp/suppliers",
"description": "Suppliers", "description": "Suppliers",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,7 +1,7 @@
{ {
"name": "uecko-erp-2025", "name": "factuges-erp-2025",
"private": true, "private": true,
"version": "0.10.5", "version": "0.10.7",
"workspaces": [ "workspaces": [
"apps/*", "apps/*",
"modules/*", "modules/*",

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/i18next", "name": "@repo/i18next",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-audit", "name": "@repo/rdx-audit",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-criteria", "name": "@repo/rdx-criteria",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-ddd", "name": "@repo/rdx-ddd",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-logger", "name": "@repo/rdx-logger",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-ui", "name": "@repo/rdx-ui",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/rdx-utils", "name": "@repo/rdx-utils",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/shadcn-ui", "name": "@repo/shadcn-ui",
"version": "0.10.5", "version": "0.10.7",
"type": "module", "type": "module",
"private": true, "private": true,
"exports": { "exports": {

View File

@ -1,6 +1,6 @@
{ {
"name": "@repo/typescript-config", "name": "@repo/typescript-config",
"version": "0.10.5", "version": "0.10.7",
"private": true, "private": true,
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"