@sigmatech/pergamo 0.1.55 → 0.1.57

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.
@@ -25,6 +25,9 @@ export * from "./person/characterization-family.entity";
25
25
  export * from "./person/characterization-linkage.entity";
26
26
  export * from "./vehicle";
27
27
  export * from "./accreditation";
28
+ export * from "./recim/recim-entry.entity";
29
+ export * from "./recim/recim-fingerprint.entity";
30
+ export * from "./recim/recim-detail-view.entity";
28
31
  export * from "./telefonia/telefonia.entity";
29
32
  export * from "./telefonia/historial-ubicacion.entity";
30
33
  export * from "./telefonia/bts.entity";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AAGjE,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,WAAW,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AAGvD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAG1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAG9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,eAAe,CAAC;AAG9B,cAAc,QAAQ,CAAC;AAGvB,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AAGpC,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kDAAkD,CAAC;AAGjE,cAAc,wBAAwB,CAAC;AACvC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,wCAAwC,CAAC;AACvD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,WAAW,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AAGzD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AAGvD,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAG1C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6BAA6B,CAAC;AAG5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,qCAAqC,CAAC;AAGpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAG9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,eAAe,CAAC;AAG9B,cAAc,QAAQ,CAAC;AAGvB,cAAc,qBAAqB,CAAC;AAGpC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,mDAAmD,CAAC;AAClE,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC"}
@@ -46,6 +46,10 @@ __exportStar(require("./person/characterization-linkage.entity"), exports);
46
46
  __exportStar(require("./vehicle"), exports);
47
47
  // Accreditation module
48
48
  __exportStar(require("./accreditation"), exports);
49
+ // RECIM module (Registro de Contrainteligencia Militar)
50
+ __exportStar(require("./recim/recim-entry.entity"), exports);
51
+ __exportStar(require("./recim/recim-fingerprint.entity"), exports);
52
+ __exportStar(require("./recim/recim-detail-view.entity"), exports);
49
53
  // Telefonia module
50
54
  __exportStar(require("./telefonia/telefonia.entity"), exports);
51
55
  __exportStar(require("./telefonia/historial-ubicacion.entity"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,+CAA6B;AAC7B,sDAAoC;AAEpC,sBAAsB;AACtB,8EAA4D;AAC5D,mFAAiE;AAEjE,gBAAgB;AAChB,yDAAuC;AACvC,wEAAsD;AACtD,mEAAiD;AACjD,qEAAmD;AACnD,6DAA2C;AAC3C,wEAAsD;AACtD,+DAA6C;AAC7C,wDAAsC;AACtC,uEAAqD;AACrD,oEAAkD;AAClD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AACpD,0EAAwD;AACxD,yEAAuD;AACvD,0EAAwD;AACxD,2EAAyD;AAEzD,iBAAiB;AACjB,4CAA0B;AAE1B,uBAAuB;AACvB,kDAAgC;AAEhC,mBAAmB;AACnB,+DAA6C;AAC7C,yEAAuD;AACvD,yDAAuC;AACvC,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,oEAAkD;AAClD,2EAAyD;AAEzD,kBAAkB;AAClB,6DAA2C;AAC3C,yEAAuD;AAEvD,cAAc;AACd,qDAAmC;AACnC,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAE1C,eAAe;AACf,uDAAqC;AAErC,cAAc;AACd,yDAAuC;AACvC,yDAAuC;AAEvC,cAAc;AACd,4DAA0C;AAC1C,6DAA2C;AAC3C,iEAA+C;AAC/C,oEAAkD;AAClD,4DAA0C;AAE1C,sBAAsB;AACtB,8EAA4D;AAC5D,gFAA8D;AAC9D,8DAA4C;AAE5C,uBAAuB;AACvB,yDAAuC;AACvC,6DAA2C;AAE3C,kBAAkB;AAClB,sEAAoD;AAEpD,sBAAsB;AACtB,iEAA+C;AAC/C,wEAAsD;AACtD,oEAAkD;AAElD,qBAAqB;AACrB,0EAAwD;AAExD,uBAAuB;AACvB,6EAA2D;AAC3D,gFAA8D;AAE9D,mBAAmB;AACnB,qEAAmD;AACnD,4EAA0D;AAE1D,sBAAsB;AACtB,2EAAyD;AACzD,wEAAsD;AACtD,yEAAuD;AAEvD,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,yCAAuB;AAEvB,aAAa;AACb,sDAAoC;AAEpC,YAAY;AACZ,qDAAmC;AAEnC,yBAAyB;AACzB,oFAAkE;AAClE,gEAA8C;AAC9C,yDAAuC;AAEvC,aAAa;AACb,6DAA2C;AAE3C,aAAa;AACb,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,oEAAkD;AAElD,kBAAkB;AAClB,6CAA2B;AAE3B,eAAe;AACf,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,gBAAgB;AAChB,+CAA6B;AAC7B,sDAAoC;AAEpC,sBAAsB;AACtB,8EAA4D;AAC5D,mFAAiE;AAEjE,gBAAgB;AAChB,yDAAuC;AACvC,wEAAsD;AACtD,mEAAiD;AACjD,qEAAmD;AACnD,6DAA2C;AAC3C,wEAAsD;AACtD,+DAA6C;AAC7C,wDAAsC;AACtC,uEAAqD;AACrD,oEAAkD;AAClD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AACpD,0EAAwD;AACxD,yEAAuD;AACvD,0EAAwD;AACxD,2EAAyD;AAEzD,iBAAiB;AACjB,4CAA0B;AAE1B,uBAAuB;AACvB,kDAAgC;AAEhC,wDAAwD;AACxD,6DAA2C;AAC3C,mEAAiD;AACjD,mEAAiD;AAEjD,mBAAmB;AACnB,+DAA6C;AAC7C,yEAAuD;AACvD,yDAAuC;AACvC,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,oEAAkD;AAClD,2EAAyD;AAEzD,kBAAkB;AAClB,6DAA2C;AAC3C,yEAAuD;AAEvD,cAAc;AACd,qDAAmC;AACnC,2DAAyC;AACzC,0DAAwC;AACxC,4DAA0C;AAE1C,eAAe;AACf,uDAAqC;AAErC,cAAc;AACd,yDAAuC;AACvC,yDAAuC;AAEvC,cAAc;AACd,4DAA0C;AAC1C,6DAA2C;AAC3C,iEAA+C;AAC/C,oEAAkD;AAClD,4DAA0C;AAE1C,sBAAsB;AACtB,8EAA4D;AAC5D,gFAA8D;AAC9D,8DAA4C;AAE5C,uBAAuB;AACvB,yDAAuC;AACvC,6DAA2C;AAE3C,kBAAkB;AAClB,sEAAoD;AAEpD,sBAAsB;AACtB,iEAA+C;AAC/C,wEAAsD;AACtD,oEAAkD;AAElD,qBAAqB;AACrB,0EAAwD;AAExD,uBAAuB;AACvB,6EAA2D;AAC3D,gFAA8D;AAE9D,mBAAmB;AACnB,qEAAmD;AACnD,4EAA0D;AAE1D,sBAAsB;AACtB,2EAAyD;AACzD,wEAAsD;AACtD,yEAAuD;AAEvD,cAAc;AACd,gDAA8B;AAE9B,cAAc;AACd,yCAAuB;AAEvB,aAAa;AACb,sDAAoC;AAEpC,YAAY;AACZ,qDAAmC;AAEnC,yBAAyB;AACzB,oFAAkE;AAClE,gEAA8C;AAC9C,yDAAuC;AAEvC,aAAa;AACb,6DAA2C;AAE3C,aAAa;AACb,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,oEAAkD;AAElD,kBAAkB;AAClB,6CAA2B;AAE3B,eAAe;AACf,0CAAwB"}
@@ -0,0 +1,46 @@
1
+ import { EntityBase } from '../base';
2
+ import { RecimEntry } from './recim-entry.entity';
3
+ import { User } from '../user.entity';
4
+ /**
5
+ * RecimDetailView Entity
6
+ *
7
+ * Audit trail for RECIM detail page views.
8
+ * Tracks when users access the full detail view of a RECIM entry.
9
+ *
10
+ * **Purpose:**
11
+ * - Different from profile revision (which logs full person searches)
12
+ * - Logs specifically when someone views a RECIM entry detail
13
+ * - Tracks access patterns to sensitive biometric data
14
+ *
15
+ * **Use Cases:**
16
+ * - Security auditing (who accessed biometric data)
17
+ * - Compliance reporting
18
+ * - Access pattern analysis
19
+ */
20
+ export declare class RecimDetailView extends EntityBase {
21
+ /**
22
+ * RECIM Entry being viewed
23
+ */
24
+ recimEntry: RecimEntry;
25
+ /**
26
+ * User who viewed the detail
27
+ */
28
+ viewedBy?: User;
29
+ /**
30
+ * Timestamp when the detail was viewed
31
+ */
32
+ viewedAt: Date;
33
+ /**
34
+ * IP address of the viewer (optional)
35
+ */
36
+ ipAddress?: string;
37
+ /**
38
+ * User agent of the viewer (optional)
39
+ */
40
+ userAgent?: string;
41
+ /**
42
+ * Additional context (e.g., "clicked from list", "direct link", etc.)
43
+ */
44
+ context?: Record<string, any>;
45
+ }
46
+ //# sourceMappingURL=recim-detail-view.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-detail-view.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/recim/recim-detail-view.entity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC;;;;;;;;;;;;;;;GAeG;AACH,qBAKa,eAAgB,SAAQ,UAAU;IAC7C;;OAEG;IAOH,UAAU,EAAG,UAAU,CAAC;IAExB;;OAEG;IAOH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAEhB;;OAEG;IAEH,QAAQ,EAAG,IAAI,CAAC;IAEhB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IAEH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RecimDetailView = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const base_1 = require("../base");
15
+ const recim_entry_entity_1 = require("./recim-entry.entity");
16
+ const user_entity_1 = require("../user.entity");
17
+ /**
18
+ * RecimDetailView Entity
19
+ *
20
+ * Audit trail for RECIM detail page views.
21
+ * Tracks when users access the full detail view of a RECIM entry.
22
+ *
23
+ * **Purpose:**
24
+ * - Different from profile revision (which logs full person searches)
25
+ * - Logs specifically when someone views a RECIM entry detail
26
+ * - Tracks access patterns to sensitive biometric data
27
+ *
28
+ * **Use Cases:**
29
+ * - Security auditing (who accessed biometric data)
30
+ * - Compliance reporting
31
+ * - Access pattern analysis
32
+ */
33
+ let RecimDetailView = class RecimDetailView extends base_1.EntityBase {
34
+ };
35
+ exports.RecimDetailView = RecimDetailView;
36
+ __decorate([
37
+ (0, typeorm_1.ManyToOne)(() => recim_entry_entity_1.RecimEntry, {
38
+ onDelete: 'CASCADE',
39
+ onUpdate: 'CASCADE',
40
+ nullable: false,
41
+ }),
42
+ (0, typeorm_1.JoinColumn)({ name: 'recim_entry_id' }),
43
+ __metadata("design:type", recim_entry_entity_1.RecimEntry)
44
+ ], RecimDetailView.prototype, "recimEntry", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User, {
47
+ onDelete: 'SET NULL',
48
+ onUpdate: 'CASCADE',
49
+ nullable: true,
50
+ }),
51
+ (0, typeorm_1.JoinColumn)({ name: 'viewed_by_id' }),
52
+ __metadata("design:type", user_entity_1.User)
53
+ ], RecimDetailView.prototype, "viewedBy", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)({ type: 'timestamptz', default: () => 'CURRENT_TIMESTAMP' }),
56
+ __metadata("design:type", Date)
57
+ ], RecimDetailView.prototype, "viewedAt", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ type: 'varchar', length: 45, nullable: true }),
60
+ __metadata("design:type", String)
61
+ ], RecimDetailView.prototype, "ipAddress", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
64
+ __metadata("design:type", String)
65
+ ], RecimDetailView.prototype, "userAgent", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
68
+ __metadata("design:type", Object)
69
+ ], RecimDetailView.prototype, "context", void 0);
70
+ exports.RecimDetailView = RecimDetailView = __decorate([
71
+ (0, typeorm_1.Entity)('recim_detail_view'),
72
+ (0, typeorm_1.Index)('recim_detail_view_entry_idx', ['recimEntry']),
73
+ (0, typeorm_1.Index)('recim_detail_view_user_idx', ['viewedBy']),
74
+ (0, typeorm_1.Index)('recim_detail_view_date_idx', ['viewedAt']),
75
+ (0, typeorm_1.Index)('recim_detail_view_tenant_date_idx', ['tenantId', 'viewedAt'])
76
+ ], RecimDetailView);
77
+ //# sourceMappingURL=recim-detail-view.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-detail-view.entity.js","sourceRoot":"","sources":["../../../src/entities/recim/recim-detail-view.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAuE;AACvE,kCAAqC;AACrC,6DAAkD;AAClD,gDAAsC;AAEtC;;;;;;;;;;;;;;;GAeG;AAMI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,iBAAU;CA8C9C,CAAA;AA9CY,0CAAe;AAU1B;IANC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,+BAAU,EAAE;QAC3B,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;8BAC1B,+BAAU;mDAAC;AAWxB;IANC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE;QACrB,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BAC1B,kBAAI;iDAAC;AAMhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACzD,IAAI;iDAAC;AAMhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACrC;AAMnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACtC;AAMnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACZ;0BA7CnB,eAAe;IAL3B,IAAA,gBAAM,EAAC,mBAAmB,CAAC;IAC3B,IAAA,eAAK,EAAC,6BAA6B,EAAE,CAAC,YAAY,CAAC,CAAC;IACpD,IAAA,eAAK,EAAC,4BAA4B,EAAE,CAAC,UAAU,CAAC,CAAC;IACjD,IAAA,eAAK,EAAC,4BAA4B,EAAE,CAAC,UAAU,CAAC,CAAC;IACjD,IAAA,eAAK,EAAC,mCAAmC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;GACxD,eAAe,CA8C3B"}
@@ -0,0 +1,81 @@
1
+ import { EntityBase } from '../base/_base';
2
+ import { Person } from '../person/person.entity';
3
+ import { RecimFingerprint } from './recim-fingerprint.entity';
4
+ /**
5
+ * RECIM Status Enum
6
+ *
7
+ * Defines the lifecycle status of a RECIM entry:
8
+ * - ACTIVE: Entry is active and current
9
+ * - INACTIVE: Entry has been deactivated
10
+ * - ARCHIVED: Entry has been archived for historical purposes
11
+ */
12
+ export declare enum RecimStatus {
13
+ ACTIVE = "ACTIVE",
14
+ INACTIVE = "INACTIVE",
15
+ ARCHIVED = "ARCHIVED"
16
+ }
17
+ /**
18
+ * RECIM Entry Entity
19
+ *
20
+ * Represents a permanent biometric registry entry for a person.
21
+ * Unlike accreditations, RECIM entries are not event-based and have no expiration.
22
+ *
23
+ * Key Features:
24
+ * - Permanent registry (no event dependency)
25
+ * - No approval workflow required
26
+ * - Status lifecycle management (ACTIVE/INACTIVE/ARCHIVED)
27
+ * - Tenant-specific with full audit trail
28
+ *
29
+ * @extends EntityBase - Tenant-specific entity with audit fields
30
+ */
31
+ export declare class RecimEntry extends EntityBase {
32
+ /**
33
+ * Person relation (GlobalBase)
34
+ *
35
+ * References the person in this RECIM entry.
36
+ * Eagerly loaded for easy access to person details.
37
+ */
38
+ person: Person;
39
+ /**
40
+ * Observaciones (Observations/Notes)
41
+ *
42
+ * Optional text field for any relevant observations or notes
43
+ * about this RECIM entry.
44
+ */
45
+ observaciones?: string;
46
+ /**
47
+ * Registration Timestamp
48
+ *
49
+ * When this entry was registered in the RECIM system.
50
+ * Automatically set on creation if not provided.
51
+ */
52
+ registeredAt?: Date;
53
+ /**
54
+ * Photo URL
55
+ *
56
+ * Optional URL to a photo of the person for visual identification.
57
+ */
58
+ photoUrl?: string;
59
+ /**
60
+ * Status
61
+ *
62
+ * Current status of this RECIM entry.
63
+ * Default: ACTIVE
64
+ */
65
+ status: RecimStatus;
66
+ /**
67
+ * Status Reason
68
+ *
69
+ * Optional reason for status change (e.g., why it was inactivated).
70
+ */
71
+ statusReason?: string;
72
+ /**
73
+ * Fingerprints Relation
74
+ *
75
+ * One-to-many relation with RecimFingerprint entities.
76
+ * CASCADE delete: when entry is deleted, fingerprints are also deleted.
77
+ * Lazy loaded to optimize list queries - load explicitly when needed.
78
+ */
79
+ fingerprints?: RecimFingerprint[];
80
+ }
81
+ //# sourceMappingURL=recim-entry.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-entry.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/recim/recim-entry.entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;;;;;;GAOG;AACH,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAGa,UAAW,SAAQ,UAAU;IACxC;;;;;OAKG;IAGH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;OAKG;IAEH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IAEH,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB;;;;OAIG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IAMH,MAAM,EAAG,WAAW,CAAC;IAErB;;;;OAIG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IAKH,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RecimEntry = exports.RecimStatus = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const _base_1 = require("../base/_base");
15
+ const person_entity_1 = require("../person/person.entity");
16
+ const recim_fingerprint_entity_1 = require("./recim-fingerprint.entity");
17
+ /**
18
+ * RECIM Status Enum
19
+ *
20
+ * Defines the lifecycle status of a RECIM entry:
21
+ * - ACTIVE: Entry is active and current
22
+ * - INACTIVE: Entry has been deactivated
23
+ * - ARCHIVED: Entry has been archived for historical purposes
24
+ */
25
+ var RecimStatus;
26
+ (function (RecimStatus) {
27
+ RecimStatus["ACTIVE"] = "ACTIVE";
28
+ RecimStatus["INACTIVE"] = "INACTIVE";
29
+ RecimStatus["ARCHIVED"] = "ARCHIVED";
30
+ })(RecimStatus || (exports.RecimStatus = RecimStatus = {}));
31
+ /**
32
+ * RECIM Entry Entity
33
+ *
34
+ * Represents a permanent biometric registry entry for a person.
35
+ * Unlike accreditations, RECIM entries are not event-based and have no expiration.
36
+ *
37
+ * Key Features:
38
+ * - Permanent registry (no event dependency)
39
+ * - No approval workflow required
40
+ * - Status lifecycle management (ACTIVE/INACTIVE/ARCHIVED)
41
+ * - Tenant-specific with full audit trail
42
+ *
43
+ * @extends EntityBase - Tenant-specific entity with audit fields
44
+ */
45
+ let RecimEntry = class RecimEntry extends _base_1.EntityBase {
46
+ };
47
+ exports.RecimEntry = RecimEntry;
48
+ __decorate([
49
+ (0, typeorm_1.ManyToOne)(() => person_entity_1.Person, { eager: true, nullable: false }),
50
+ (0, typeorm_1.JoinColumn)({ name: 'person_id' }),
51
+ __metadata("design:type", person_entity_1.Person)
52
+ ], RecimEntry.prototype, "person", void 0);
53
+ __decorate([
54
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
55
+ __metadata("design:type", String)
56
+ ], RecimEntry.prototype, "observaciones", void 0);
57
+ __decorate([
58
+ (0, typeorm_1.Column)({ name: 'registered_at', type: 'timestamp', nullable: true }),
59
+ __metadata("design:type", Date)
60
+ ], RecimEntry.prototype, "registeredAt", void 0);
61
+ __decorate([
62
+ (0, typeorm_1.Column)({ name: 'photo_url', type: 'varchar', length: 500, nullable: true }),
63
+ __metadata("design:type", String)
64
+ ], RecimEntry.prototype, "photoUrl", void 0);
65
+ __decorate([
66
+ (0, typeorm_1.Column)({
67
+ type: 'enum',
68
+ enum: RecimStatus,
69
+ default: RecimStatus.ACTIVE,
70
+ }),
71
+ __metadata("design:type", String)
72
+ ], RecimEntry.prototype, "status", void 0);
73
+ __decorate([
74
+ (0, typeorm_1.Column)({ name: 'status_reason', type: 'text', nullable: true }),
75
+ __metadata("design:type", String)
76
+ ], RecimEntry.prototype, "statusReason", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.OneToMany)(() => recim_fingerprint_entity_1.RecimFingerprint, (fingerprint) => fingerprint.recimEntry, {
79
+ cascade: true,
80
+ eager: false, // Changed to false for performance optimization
81
+ }),
82
+ __metadata("design:type", Array)
83
+ ], RecimEntry.prototype, "fingerprints", void 0);
84
+ exports.RecimEntry = RecimEntry = __decorate([
85
+ (0, typeorm_1.Entity)('recim_entry'),
86
+ (0, typeorm_1.Index)('recim_entry_person_idx', ['person']),
87
+ (0, typeorm_1.Index)('recim_entry_status_idx', ['status'])
88
+ ], RecimEntry);
89
+ //# sourceMappingURL=recim-entry.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-entry.entity.js","sourceRoot":"","sources":["../../../src/entities/recim/recim-entry.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAOiB;AACjB,yCAA2C;AAC3C,2DAAiD;AACjD,yEAA8D;AAE9D;;;;;;;GAOG;AACH,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED;;;;;;;;;;;;;GAaG;AAII,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,kBAAU;CAsEzC,CAAA;AAtEY,gCAAU;AASrB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,sBAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACzD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACzB,sBAAM;0CAAC;AAShB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAClB;AASvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACtD,IAAI;gDAAC;AAQpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CAC1D;AAalB;IALC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,WAAW,CAAC,MAAM;KAC5B,CAAC;;0CACmB;AAQrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC1C;AAatB;IAJC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,2CAAgB,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE;QAC1E,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK,EAAE,gDAAgD;KAC/D,CAAC;;gDACgC;qBArEvB,UAAU;IAHtB,IAAA,gBAAM,EAAC,aAAa,CAAC;IACrB,IAAA,eAAK,EAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAA,eAAK,EAAC,wBAAwB,EAAE,CAAC,QAAQ,CAAC,CAAC;GAC/B,UAAU,CAsEtB"}
@@ -0,0 +1,113 @@
1
+ import { EntityBase } from '../base/_base';
2
+ import { RecimEntry } from './recim-entry.entity';
3
+ import { FingerPosition, QualityMetrics } from '../accreditation/fingerprint.entity';
4
+ /**
5
+ * RECIM Fingerprint Entity
6
+ *
7
+ * Stores biometric fingerprint data for a RECIM entry.
8
+ * Includes both ANSI-378-2004 and ISO-19794-2-2005 templates,
9
+ * optional RAW image for audit, and quality metrics.
10
+ *
11
+ * Key Features:
12
+ * - ANSI-378-2004 template standard (~200-800 bytes)
13
+ * - ISO-19794-2-2005 template standard (~200-800 bytes)
14
+ * - Optional RAW image for audit purposes (~150KB)
15
+ * - Quality metrics validation (JSONB)
16
+ * - Device metadata tracking
17
+ * - CASCADE delete with RecimEntry
18
+ *
19
+ * @extends EntityBase - Tenant-specific entity with audit fields
20
+ */
21
+ export declare class RecimFingerprint extends EntityBase {
22
+ /**
23
+ * RECIM Entry Relation
24
+ *
25
+ * References the parent RECIM entry.
26
+ * CASCADE delete: when entry is deleted, fingerprints are also deleted.
27
+ */
28
+ recimEntry: RecimEntry;
29
+ /**
30
+ * Finger Position
31
+ *
32
+ * Indicates which finger was captured.
33
+ * Default: RIGHT_INDEX
34
+ */
35
+ fingerPosition: FingerPosition;
36
+ /**
37
+ * ANSI-378-2004 Template
38
+ *
39
+ * Biometric template in ANSI-378-2004 format.
40
+ * Stored as binary data (bytea) for efficiency.
41
+ * Typical size: 200-800 bytes
42
+ */
43
+ templateAnsi: Buffer;
44
+ /**
45
+ * ISO-19794-2-2005 Template
46
+ *
47
+ * Biometric template in ISO-19794-2-2005 format.
48
+ * Stored as binary data (bytea) for efficiency.
49
+ * Typical size: 200-800 bytes
50
+ */
51
+ templateIso: Buffer;
52
+ /**
53
+ * RAW Image
54
+ *
55
+ * Optional RAW 8-bit grayscale fingerprint image.
56
+ * Stored for audit purposes only.
57
+ * Typical size: ~150KB
58
+ */
59
+ rawImage?: Buffer;
60
+ /**
61
+ * Image Width
62
+ *
63
+ * Width of the captured fingerprint image in pixels.
64
+ * Default: 320
65
+ */
66
+ width: number;
67
+ /**
68
+ * Image Height
69
+ *
70
+ * Height of the captured fingerprint image in pixels.
71
+ * Default: 480
72
+ */
73
+ height: number;
74
+ /**
75
+ * Image DPI
76
+ *
77
+ * Dots per inch (resolution) of the captured image.
78
+ * Default: 500
79
+ */
80
+ dpi: number;
81
+ /**
82
+ * Quality Metrics
83
+ *
84
+ * Comprehensive quality metrics from the capture device.
85
+ * Stored as JSONB for flexibility and queryability.
86
+ */
87
+ qualityMetrics: QualityMetrics;
88
+ /**
89
+ * Capture Timestamp
90
+ *
91
+ * When this fingerprint was captured.
92
+ */
93
+ captureTimestamp: Date;
94
+ /**
95
+ * Device Serial Number
96
+ *
97
+ * Serial number of the capture device.
98
+ */
99
+ deviceSerial?: string;
100
+ /**
101
+ * Device Model
102
+ *
103
+ * Model name of the capture device.
104
+ */
105
+ deviceModel?: string;
106
+ /**
107
+ * Device Vendor
108
+ *
109
+ * Vendor/manufacturer of the capture device.
110
+ */
111
+ deviceVendor?: string;
112
+ }
113
+ //# sourceMappingURL=recim-fingerprint.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-fingerprint.entity.d.ts","sourceRoot":"","sources":["../../../src/entities/recim/recim-fingerprint.entity.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAErF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAEa,gBAAiB,SAAQ,UAAU;IAC9C;;;;;OAKG;IAMH,UAAU,EAAG,UAAU,CAAC;IAExB;;;;;OAKG;IAOH,cAAc,EAAG,cAAc,CAAC;IAEhC;;;;;;OAMG;IAEH,YAAY,EAAG,MAAM,CAAC;IAEtB;;;;;;OAMG;IAEH,WAAW,EAAG,MAAM,CAAC;IAErB;;;;;;OAMG;IAEH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IAEH,KAAK,EAAG,MAAM,CAAC;IAEf;;;;;OAKG;IAEH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;OAKG;IAEH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;OAKG;IAEH,cAAc,EAAG,cAAc,CAAC;IAEhC;;;;OAIG;IAEH,gBAAgB,EAAG,IAAI,CAAC;IAExB;;;;OAIG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IAEH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IAEH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RecimFingerprint = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const _base_1 = require("../base/_base");
15
+ const recim_entry_entity_1 = require("./recim-entry.entity");
16
+ const fingerprint_entity_1 = require("../accreditation/fingerprint.entity");
17
+ /**
18
+ * RECIM Fingerprint Entity
19
+ *
20
+ * Stores biometric fingerprint data for a RECIM entry.
21
+ * Includes both ANSI-378-2004 and ISO-19794-2-2005 templates,
22
+ * optional RAW image for audit, and quality metrics.
23
+ *
24
+ * Key Features:
25
+ * - ANSI-378-2004 template standard (~200-800 bytes)
26
+ * - ISO-19794-2-2005 template standard (~200-800 bytes)
27
+ * - Optional RAW image for audit purposes (~150KB)
28
+ * - Quality metrics validation (JSONB)
29
+ * - Device metadata tracking
30
+ * - CASCADE delete with RecimEntry
31
+ *
32
+ * @extends EntityBase - Tenant-specific entity with audit fields
33
+ */
34
+ let RecimFingerprint = class RecimFingerprint extends _base_1.EntityBase {
35
+ };
36
+ exports.RecimFingerprint = RecimFingerprint;
37
+ __decorate([
38
+ (0, typeorm_1.ManyToOne)(() => recim_entry_entity_1.RecimEntry, (entry) => entry.fingerprints, {
39
+ nullable: false,
40
+ onDelete: 'CASCADE',
41
+ }),
42
+ (0, typeorm_1.JoinColumn)({ name: 'recim_entry_id' }),
43
+ __metadata("design:type", recim_entry_entity_1.RecimEntry)
44
+ ], RecimFingerprint.prototype, "recimEntry", void 0);
45
+ __decorate([
46
+ (0, typeorm_1.Column)({
47
+ name: 'finger_position',
48
+ type: 'enum',
49
+ enum: fingerprint_entity_1.FingerPosition,
50
+ default: fingerprint_entity_1.FingerPosition.RIGHT_INDEX,
51
+ }),
52
+ __metadata("design:type", String)
53
+ ], RecimFingerprint.prototype, "fingerPosition", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)({ name: 'template_ansi', type: 'bytea' }),
56
+ __metadata("design:type", Buffer)
57
+ ], RecimFingerprint.prototype, "templateAnsi", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ name: 'template_iso', type: 'bytea' }),
60
+ __metadata("design:type", Buffer)
61
+ ], RecimFingerprint.prototype, "templateIso", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ name: 'raw_image', type: 'bytea', nullable: true }),
64
+ __metadata("design:type", Buffer)
65
+ ], RecimFingerprint.prototype, "rawImage", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ type: 'int', default: 320 }),
68
+ __metadata("design:type", Number)
69
+ ], RecimFingerprint.prototype, "width", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: 'int', default: 480 }),
72
+ __metadata("design:type", Number)
73
+ ], RecimFingerprint.prototype, "height", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: 'int', default: 500 }),
76
+ __metadata("design:type", Number)
77
+ ], RecimFingerprint.prototype, "dpi", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.Column)({ name: 'quality_metrics', type: 'jsonb' }),
80
+ __metadata("design:type", Object)
81
+ ], RecimFingerprint.prototype, "qualityMetrics", void 0);
82
+ __decorate([
83
+ (0, typeorm_1.Column)({ name: 'capture_timestamp', type: 'timestamp' }),
84
+ __metadata("design:type", Date)
85
+ ], RecimFingerprint.prototype, "captureTimestamp", void 0);
86
+ __decorate([
87
+ (0, typeorm_1.Column)({ name: 'device_serial', length: 100, nullable: true }),
88
+ __metadata("design:type", String)
89
+ ], RecimFingerprint.prototype, "deviceSerial", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.Column)({ name: 'device_model', length: 100, nullable: true }),
92
+ __metadata("design:type", String)
93
+ ], RecimFingerprint.prototype, "deviceModel", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.Column)({ name: 'device_vendor', length: 100, nullable: true }),
96
+ __metadata("design:type", String)
97
+ ], RecimFingerprint.prototype, "deviceVendor", void 0);
98
+ exports.RecimFingerprint = RecimFingerprint = __decorate([
99
+ (0, typeorm_1.Entity)('recim_fingerprint'),
100
+ (0, typeorm_1.Index)('recim_fingerprint_entry_idx', ['recimEntry'])
101
+ ], RecimFingerprint);
102
+ //# sourceMappingURL=recim-fingerprint.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recim-fingerprint.entity.js","sourceRoot":"","sources":["../../../src/entities/recim/recim-fingerprint.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAMiB;AACjB,yCAA2C;AAC3C,6DAAkD;AAClD,4EAAqF;AAErF;;;;;;;;;;;;;;;;GAgBG;AAGI,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,kBAAU;CA6H/C,CAAA;AA7HY,4CAAgB;AAY3B;IALC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,+BAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;QAC1D,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,SAAS;KACpB,CAAC;IACD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;8BAC1B,+BAAU;oDAAC;AAcxB;IANC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,mCAAc;QACpB,OAAO,EAAE,mCAAc,CAAC,WAAW;KACpC,CAAC;;wDAC8B;AAUhC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8BAClC,MAAM;sDAAC;AAUtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8BAClC,MAAM;qDAAC;AAUrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAClD,MAAM;kDAAC;AASlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;+CACvB;AASf;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;gDACtB;AAShB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;;6CACzB;AASb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;wDACnB;AAQhC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACtC,IAAI;0DAAC;AAQxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACzC;AAQtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACzC;AAQrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACzC;2BA5HX,gBAAgB;IAF5B,IAAA,gBAAM,EAAC,mBAAmB,CAAC;IAC3B,IAAA,eAAK,EAAC,6BAA6B,EAAE,CAAC,YAAY,CAAC,CAAC;GACxC,gBAAgB,CA6H5B"}
@@ -0,0 +1,14 @@
1
+ import { MigrationInterface, QueryRunner } from 'typeorm';
2
+ /**
3
+ * Migration to add performance indexes for RECIM queries
4
+ *
5
+ * Indexes added:
6
+ * 1. idx_recim_entry_tenant_status_date - Composite index for common list queries
7
+ * 2. idx_recim_entry_person_active - Index for person lookup with active status
8
+ */
9
+ export declare class AddRecimPerformanceIndexes1738001000000 implements MigrationInterface {
10
+ name: string;
11
+ up(queryRunner: QueryRunner): Promise<void>;
12
+ down(queryRunner: QueryRunner): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=1738001000000-AddRecimPerformanceIndexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1738001000000-AddRecimPerformanceIndexes.d.ts","sourceRoot":"","sources":["../../src/migrations/1738001000000-AddRecimPerformanceIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D;;;;;;GAMG;AACH,qBAAa,uCAAwC,YAAW,kBAAkB;IAChF,IAAI,SAA6C;IAEpC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAU3D"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddRecimPerformanceIndexes1738001000000 = void 0;
4
+ /**
5
+ * Migration to add performance indexes for RECIM queries
6
+ *
7
+ * Indexes added:
8
+ * 1. idx_recim_entry_tenant_status_date - Composite index for common list queries
9
+ * 2. idx_recim_entry_person_active - Index for person lookup with active status
10
+ */
11
+ class AddRecimPerformanceIndexes1738001000000 {
12
+ constructor() {
13
+ this.name = 'AddRecimPerformanceIndexes1738001000000';
14
+ }
15
+ async up(queryRunner) {
16
+ // Composite index for tenant + status + createdAt (covers most list queries)
17
+ await queryRunner.query(`
18
+ CREATE INDEX IF NOT EXISTS "idx_recim_entry_tenant_status_date"
19
+ ON "recim_entry" ("tenantId", "status", "createdAt" DESC)
20
+ `);
21
+ // Index for person lookup with active status (used in duplicate detection)
22
+ await queryRunner.query(`
23
+ CREATE INDEX IF NOT EXISTS "idx_recim_entry_person_active"
24
+ ON "recim_entry" ("person_id", "status")
25
+ WHERE "status" = 'ACTIVE'
26
+ `);
27
+ }
28
+ async down(queryRunner) {
29
+ // Drop indexes in reverse order
30
+ await queryRunner.query(`
31
+ DROP INDEX IF EXISTS "idx_recim_entry_person_active"
32
+ `);
33
+ await queryRunner.query(`
34
+ DROP INDEX IF EXISTS "idx_recim_entry_tenant_status_date"
35
+ `);
36
+ }
37
+ }
38
+ exports.AddRecimPerformanceIndexes1738001000000 = AddRecimPerformanceIndexes1738001000000;
39
+ //# sourceMappingURL=1738001000000-AddRecimPerformanceIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"1738001000000-AddRecimPerformanceIndexes.js","sourceRoot":"","sources":["../../src/migrations/1738001000000-AddRecimPerformanceIndexes.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,MAAa,uCAAuC;IAApD;QACE,SAAI,GAAG,yCAAyC,CAAC;IA2BnD,CAAC;IAzBQ,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,6EAA6E;QAC7E,MAAM,WAAW,CAAC,KAAK,CAAC;;;KAGvB,CAAC,CAAC;QAEH,2EAA2E;QAC3E,MAAM,WAAW,CAAC,KAAK,CAAC;;;;KAIvB,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,gCAAgC;QAChC,MAAM,WAAW,CAAC,KAAK,CAAC;;KAEvB,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,KAAK,CAAC;;KAEvB,CAAC,CAAC;IACL,CAAC;CACF;AA5BD,0FA4BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sigmatech/pergamo",
3
- "version": "0.1.55",
3
+ "version": "0.1.57",
4
4
  "description": "Shared TypeORM entities and utilities for Dataven intelligence system - Named after the ancient library of Pergamon",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",