@application-kit/audit-log 0.0.0-stage → 0.1.0
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/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +52 -2
- package/dist/cjs/audit-log.wire.d.ts +10 -0
- package/dist/cjs/audit-log.wire.js +2 -0
- package/dist/cjs/constants.d.ts +8 -0
- package/dist/cjs/constants.js +4 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +18 -0
- package/dist/cjs/nest/application/index.d.ts +2 -0
- package/dist/cjs/nest/application/index.js +18 -0
- package/dist/cjs/nest/application/ports/audit-log-read.interface.d.ts +3 -0
- package/dist/cjs/nest/application/ports/audit-log-read.interface.js +2 -0
- package/dist/cjs/nest/application/ports/audit-log-write.interface.d.ts +4 -0
- package/dist/cjs/nest/application/ports/audit-log-write.interface.js +2 -0
- package/dist/cjs/nest/application/ports/index.d.ts +2 -0
- package/dist/cjs/nest/application/ports/index.js +18 -0
- package/dist/cjs/nest/application/queries/dtos/audit-record.dto.d.ts +21 -0
- package/dist/cjs/nest/application/queries/dtos/audit-record.dto.js +24 -0
- package/dist/cjs/nest/application/queries/dtos/index.d.ts +1 -0
- package/dist/cjs/nest/application/queries/dtos/index.js +17 -0
- package/dist/cjs/nest/application/queries/get-audit-records.query.d.ts +6 -0
- package/dist/cjs/nest/application/queries/get-audit-records.query.js +7 -0
- package/dist/cjs/nest/application/queries/handlers/get-audit-records.handler.d.ts +9 -0
- package/dist/cjs/nest/application/queries/handlers/get-audit-records.handler.js +35 -0
- package/dist/cjs/nest/application/queries/handlers/index.d.ts +1 -0
- package/dist/cjs/nest/application/queries/handlers/index.js +17 -0
- package/dist/cjs/nest/application/queries/index.d.ts +3 -0
- package/dist/cjs/nest/application/queries/index.js +19 -0
- package/dist/cjs/nest/audit-log-consumers.module.d.ts +2 -0
- package/dist/cjs/nest/audit-log-consumers.module.js +22 -0
- package/dist/cjs/nest/audit-log-request-facts.module.d.ts +2 -0
- package/dist/cjs/nest/audit-log-request-facts.module.js +22 -0
- package/dist/cjs/nest/audit-log-web.module.d.ts +8 -0
- package/dist/cjs/nest/audit-log-web.module.js +39 -0
- package/dist/cjs/nest/audit-log.module.d.ts +2 -0
- package/dist/cjs/nest/audit-log.module.js +37 -0
- package/dist/cjs/nest/constants.d.ts +3 -0
- package/dist/cjs/nest/constants.js +6 -0
- package/dist/cjs/nest/domain/audit-record.d.ts +15 -0
- package/dist/cjs/nest/domain/audit-record.js +15 -0
- package/dist/cjs/nest/domain/index.d.ts +1 -0
- package/dist/cjs/nest/domain/index.js +17 -0
- package/dist/cjs/nest/index.d.ts +11 -0
- package/dist/cjs/nest/index.js +27 -0
- package/dist/cjs/nest/infrastructure/database/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/database/index.js +17 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/entities/audit-record.entity.d.ts +11 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/entities/audit-record.entity.js +69 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/entities/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/entities/index.js +17 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/index.d.ts +5 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/index.js +21 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/mappers/audit-record.mapper.d.ts +10 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/mappers/audit-record.mapper.js +35 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/mappers/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/mappers/index.js +17 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/migrations/audit-records-append-only.migration.d.ts +6 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/migrations/audit-records-append-only.migration.js +28 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/migrations/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/migrations/index.js +17 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/orm.d.ts +6 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/orm.js +9 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/repositories/audit-record.repository.d.ts +14 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/repositories/audit-record.repository.js +47 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/repositories/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/database/typeorm/repositories/index.js +17 -0
- package/dist/cjs/nest/infrastructure/index.d.ts +1 -0
- package/dist/cjs/nest/infrastructure/index.js +17 -0
- package/dist/cjs/nest/libs/audit-request-context.d.ts +25 -0
- package/dist/cjs/nest/libs/audit-request-context.js +23 -0
- package/dist/cjs/nest/libs/index.d.ts +1 -0
- package/dist/cjs/nest/libs/index.js +17 -0
- package/dist/cjs/nest/policy-handlers.d.ts +2 -0
- package/dist/cjs/nest/policy-handlers.js +5 -0
- package/dist/cjs/nest/user-interface/consumers/audit-facts.dto.d.ts +6 -0
- package/dist/cjs/nest/user-interface/consumers/audit-facts.dto.js +40 -0
- package/dist/cjs/nest/user-interface/consumers/audited-fact.dto.d.ts +5 -0
- package/dist/cjs/nest/user-interface/consumers/audited-fact.dto.js +30 -0
- package/dist/cjs/nest/user-interface/consumers/index.d.ts +3 -0
- package/dist/cjs/nest/user-interface/consumers/index.js +19 -0
- package/dist/cjs/nest/user-interface/consumers/record-audit-fact.handler.d.ts +13 -0
- package/dist/cjs/nest/user-interface/consumers/record-audit-fact.handler.js +44 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.d.ts +11 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.js +59 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.d.ts +8 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.js +58 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.type.d.ts +8 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.type.js +36 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/index.d.ts +3 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/index.js +19 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/index.d.ts +1 -0
- package/dist/cjs/nest/user-interface/controllers/graphql/index.js +17 -0
- package/dist/cjs/nest/user-interface/controllers/index.d.ts +1 -0
- package/dist/cjs/nest/user-interface/controllers/index.js +17 -0
- package/dist/cjs/nest/user-interface/index.d.ts +3 -0
- package/dist/cjs/nest/user-interface/index.js +19 -0
- package/dist/cjs/nest/user-interface/interceptors/audit-request-context.interceptor.d.ts +8 -0
- package/dist/cjs/nest/user-interface/interceptors/audit-request-context.interceptor.js +36 -0
- package/dist/cjs/nest/user-interface/interceptors/index.d.ts +1 -0
- package/dist/cjs/nest/user-interface/interceptors/index.js +17 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/testing/audit-log-read.fake.d.ts +14 -0
- package/dist/cjs/testing/audit-log-read.fake.js +16 -0
- package/dist/cjs/testing/audit-log-write.fake.d.ts +8 -0
- package/dist/cjs/testing/audit-log-write.fake.js +18 -0
- package/dist/cjs/testing/index.d.ts +2 -0
- package/dist/cjs/testing/index.js +18 -0
- package/dist/esm/audit-log.wire.d.ts +10 -0
- package/dist/esm/audit-log.wire.js +1 -0
- package/dist/esm/constants.d.ts +8 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/nest/application/index.d.ts +2 -0
- package/dist/esm/nest/application/index.js +2 -0
- package/dist/esm/nest/application/ports/audit-log-read.interface.d.ts +3 -0
- package/dist/esm/nest/application/ports/audit-log-read.interface.js +1 -0
- package/dist/esm/nest/application/ports/audit-log-write.interface.d.ts +4 -0
- package/dist/esm/nest/application/ports/audit-log-write.interface.js +1 -0
- package/dist/esm/nest/application/ports/index.d.ts +2 -0
- package/dist/esm/nest/application/ports/index.js +2 -0
- package/dist/esm/nest/application/queries/dtos/audit-record.dto.d.ts +21 -0
- package/dist/esm/nest/application/queries/dtos/audit-record.dto.js +20 -0
- package/dist/esm/nest/application/queries/dtos/index.d.ts +1 -0
- package/dist/esm/nest/application/queries/dtos/index.js +1 -0
- package/dist/esm/nest/application/queries/get-audit-records.query.d.ts +6 -0
- package/dist/esm/nest/application/queries/get-audit-records.query.js +3 -0
- package/dist/esm/nest/application/queries/handlers/get-audit-records.handler.d.ts +9 -0
- package/dist/esm/nest/application/queries/handlers/get-audit-records.handler.js +32 -0
- package/dist/esm/nest/application/queries/handlers/index.d.ts +1 -0
- package/dist/esm/nest/application/queries/handlers/index.js +1 -0
- package/dist/esm/nest/application/queries/index.d.ts +3 -0
- package/dist/esm/nest/application/queries/index.js +3 -0
- package/dist/esm/nest/audit-log-consumers.module.d.ts +2 -0
- package/dist/esm/nest/audit-log-consumers.module.js +19 -0
- package/dist/esm/nest/audit-log-request-facts.module.d.ts +2 -0
- package/dist/esm/nest/audit-log-request-facts.module.js +19 -0
- package/dist/esm/nest/audit-log-web.module.d.ts +8 -0
- package/dist/esm/nest/audit-log-web.module.js +36 -0
- package/dist/esm/nest/audit-log.module.d.ts +2 -0
- package/dist/esm/nest/audit-log.module.js +34 -0
- package/dist/esm/nest/constants.d.ts +3 -0
- package/dist/esm/nest/constants.js +3 -0
- package/dist/esm/nest/domain/audit-record.d.ts +15 -0
- package/dist/esm/nest/domain/audit-record.js +11 -0
- package/dist/esm/nest/domain/index.d.ts +1 -0
- package/dist/esm/nest/domain/index.js +1 -0
- package/dist/esm/nest/index.d.ts +11 -0
- package/dist/esm/nest/index.js +11 -0
- package/dist/esm/nest/infrastructure/database/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/database/index.js +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/entities/audit-record.entity.d.ts +11 -0
- package/dist/esm/nest/infrastructure/database/typeorm/entities/audit-record.entity.js +66 -0
- package/dist/esm/nest/infrastructure/database/typeorm/entities/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/entities/index.js +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/index.d.ts +5 -0
- package/dist/esm/nest/infrastructure/database/typeorm/index.js +5 -0
- package/dist/esm/nest/infrastructure/database/typeorm/mappers/audit-record.mapper.d.ts +10 -0
- package/dist/esm/nest/infrastructure/database/typeorm/mappers/audit-record.mapper.js +31 -0
- package/dist/esm/nest/infrastructure/database/typeorm/mappers/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/mappers/index.js +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/migrations/audit-records-append-only.migration.d.ts +6 -0
- package/dist/esm/nest/infrastructure/database/typeorm/migrations/audit-records-append-only.migration.js +24 -0
- package/dist/esm/nest/infrastructure/database/typeorm/migrations/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/migrations/index.js +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/orm.d.ts +6 -0
- package/dist/esm/nest/infrastructure/database/typeorm/orm.js +6 -0
- package/dist/esm/nest/infrastructure/database/typeorm/repositories/audit-record.repository.d.ts +14 -0
- package/dist/esm/nest/infrastructure/database/typeorm/repositories/audit-record.repository.js +44 -0
- package/dist/esm/nest/infrastructure/database/typeorm/repositories/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/database/typeorm/repositories/index.js +1 -0
- package/dist/esm/nest/infrastructure/index.d.ts +1 -0
- package/dist/esm/nest/infrastructure/index.js +1 -0
- package/dist/esm/nest/libs/audit-request-context.d.ts +25 -0
- package/dist/esm/nest/libs/audit-request-context.js +18 -0
- package/dist/esm/nest/libs/index.d.ts +1 -0
- package/dist/esm/nest/libs/index.js +1 -0
- package/dist/esm/nest/policy-handlers.d.ts +2 -0
- package/dist/esm/nest/policy-handlers.js +1 -0
- package/dist/esm/nest/user-interface/consumers/audit-facts.dto.d.ts +6 -0
- package/dist/esm/nest/user-interface/consumers/audit-facts.dto.js +36 -0
- package/dist/esm/nest/user-interface/consumers/audited-fact.dto.d.ts +5 -0
- package/dist/esm/nest/user-interface/consumers/audited-fact.dto.js +26 -0
- package/dist/esm/nest/user-interface/consumers/index.d.ts +3 -0
- package/dist/esm/nest/user-interface/consumers/index.js +3 -0
- package/dist/esm/nest/user-interface/consumers/record-audit-fact.handler.d.ts +13 -0
- package/dist/esm/nest/user-interface/consumers/record-audit-fact.handler.js +41 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.d.ts +11 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.js +56 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.d.ts +8 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.js +55 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-records.type.d.ts +8 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/audit-records.type.js +33 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/index.d.ts +3 -0
- package/dist/esm/nest/user-interface/controllers/graphql/audit-records/index.js +3 -0
- package/dist/esm/nest/user-interface/controllers/graphql/index.d.ts +1 -0
- package/dist/esm/nest/user-interface/controllers/graphql/index.js +1 -0
- package/dist/esm/nest/user-interface/controllers/index.d.ts +1 -0
- package/dist/esm/nest/user-interface/controllers/index.js +1 -0
- package/dist/esm/nest/user-interface/index.d.ts +3 -0
- package/dist/esm/nest/user-interface/index.js +3 -0
- package/dist/esm/nest/user-interface/interceptors/audit-request-context.interceptor.d.ts +8 -0
- package/dist/esm/nest/user-interface/interceptors/audit-request-context.interceptor.js +33 -0
- package/dist/esm/nest/user-interface/interceptors/index.d.ts +1 -0
- package/dist/esm/nest/user-interface/interceptors/index.js +1 -0
- package/dist/esm/testing/audit-log-read.fake.d.ts +14 -0
- package/dist/esm/testing/audit-log-read.fake.js +12 -0
- package/dist/esm/testing/audit-log-write.fake.d.ts +8 -0
- package/dist/esm/testing/audit-log-write.fake.js +14 -0
- package/dist/esm/testing/index.d.ts +2 -0
- package/dist/esm/testing/index.js +2 -0
- package/package.json +125 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AuditLogWriteInterface } from '../../application/ports/audit-log-write.interface.js';
|
|
2
|
+
import type { AuditFactsDto } from './audit-facts.dto.js';
|
|
3
|
+
export interface AuditFactInterface {
|
|
4
|
+
action: string;
|
|
5
|
+
eventId: null | string;
|
|
6
|
+
facts: AuditFactsDto | undefined;
|
|
7
|
+
subjectId: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class RecordAuditFactHandler {
|
|
10
|
+
private readonly auditLog;
|
|
11
|
+
constructor(auditLog: AuditLogWriteInterface);
|
|
12
|
+
record(fact: AuditFactInterface): Promise<void>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RecordAuditFactHandler = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const constants_js_1 = require("../../constants.js");
|
|
18
|
+
const audit_record_js_1 = require("../../domain/audit-record.js");
|
|
19
|
+
const known = (value) => value ?? null;
|
|
20
|
+
let RecordAuditFactHandler = class RecordAuditFactHandler {
|
|
21
|
+
auditLog;
|
|
22
|
+
constructor(auditLog) {
|
|
23
|
+
this.auditLog = auditLog;
|
|
24
|
+
}
|
|
25
|
+
async record(fact) {
|
|
26
|
+
const { action, eventId, facts, subjectId } = fact;
|
|
27
|
+
const { actorId, actorRole, ip, userAgent } = facts ?? {};
|
|
28
|
+
await this.auditLog.append(audit_record_js_1.AuditRecord.create({
|
|
29
|
+
action,
|
|
30
|
+
actorId: known(actorId),
|
|
31
|
+
actorRole: known(actorRole),
|
|
32
|
+
eventId,
|
|
33
|
+
ip: known(ip),
|
|
34
|
+
subjectId,
|
|
35
|
+
userAgent: known(userAgent),
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.RecordAuditFactHandler = RecordAuditFactHandler;
|
|
40
|
+
exports.RecordAuditFactHandler = RecordAuditFactHandler = __decorate([
|
|
41
|
+
(0, common_1.Injectable)(),
|
|
42
|
+
__param(0, (0, common_1.Inject)(constants_js_1.AUDIT_LOG_WRITE_PORT)),
|
|
43
|
+
__metadata("design:paramtypes", [Object])
|
|
44
|
+
], RecordAuditFactHandler);
|
package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AuditRecordWireInterface } from '../../../../../audit-log.wire.js';
|
|
2
|
+
export declare class AuditRecordItemType implements AuditRecordWireInterface<Date> {
|
|
3
|
+
action: string;
|
|
4
|
+
actorId: null | string;
|
|
5
|
+
actorRole: null | string;
|
|
6
|
+
createdAt: Date;
|
|
7
|
+
id: string;
|
|
8
|
+
ip: null | string;
|
|
9
|
+
subjectId: string;
|
|
10
|
+
userAgent: null | string;
|
|
11
|
+
}
|
package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-record-item.type.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
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.AuditRecordItemType = void 0;
|
|
13
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
14
|
+
let AuditRecordItemType = class AuditRecordItemType {
|
|
15
|
+
action;
|
|
16
|
+
actorId;
|
|
17
|
+
actorRole;
|
|
18
|
+
createdAt;
|
|
19
|
+
id;
|
|
20
|
+
ip;
|
|
21
|
+
subjectId;
|
|
22
|
+
userAgent;
|
|
23
|
+
};
|
|
24
|
+
exports.AuditRecordItemType = AuditRecordItemType;
|
|
25
|
+
__decorate([
|
|
26
|
+
(0, graphql_1.Field)(() => String),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], AuditRecordItemType.prototype, "action", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
31
|
+
__metadata("design:type", Object)
|
|
32
|
+
], AuditRecordItemType.prototype, "actorId", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
35
|
+
__metadata("design:type", Object)
|
|
36
|
+
], AuditRecordItemType.prototype, "actorRole", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, graphql_1.Field)(),
|
|
39
|
+
__metadata("design:type", Date)
|
|
40
|
+
], AuditRecordItemType.prototype, "createdAt", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, graphql_1.Field)(() => String),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], AuditRecordItemType.prototype, "id", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], AuditRecordItemType.prototype, "ip", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, graphql_1.Field)(() => String),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], AuditRecordItemType.prototype, "subjectId", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
55
|
+
__metadata("design:type", Object)
|
|
56
|
+
], AuditRecordItemType.prototype, "userAgent", void 0);
|
|
57
|
+
exports.AuditRecordItemType = AuditRecordItemType = __decorate([
|
|
58
|
+
(0, graphql_1.ObjectType)('AuditRecordItem')
|
|
59
|
+
], AuditRecordItemType);
|
package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Payload } from '@application-kit/graphql';
|
|
2
|
+
import { QueryBus } from '@nestjs/cqrs';
|
|
3
|
+
import { AuditRecordsType } from './audit-records.type.js';
|
|
4
|
+
export declare class AuditRecordsResolver {
|
|
5
|
+
private readonly queryBus;
|
|
6
|
+
constructor(queryBus: QueryBus);
|
|
7
|
+
auditRecords(payload: Payload): Promise<AuditRecordsType>;
|
|
8
|
+
}
|
package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.resolver.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AuditRecordsResolver = void 0;
|
|
16
|
+
const nest_1 = require("@application-kit/authorization/nest");
|
|
17
|
+
const graphql_1 = require("@application-kit/graphql");
|
|
18
|
+
const cqrs_1 = require("@nestjs/cqrs");
|
|
19
|
+
const graphql_2 = require("@nestjs/graphql");
|
|
20
|
+
const get_audit_records_query_js_1 = require("../../../../application/queries/get-audit-records.query.js");
|
|
21
|
+
const policy_handlers_js_1 = require("../../../../policy-handlers.js");
|
|
22
|
+
const audit_records_type_js_1 = require("./audit-records.type.js");
|
|
23
|
+
let AuditRecordsResolver = class AuditRecordsResolver {
|
|
24
|
+
queryBus;
|
|
25
|
+
constructor(queryBus) {
|
|
26
|
+
this.queryBus = queryBus;
|
|
27
|
+
}
|
|
28
|
+
async auditRecords(payload) {
|
|
29
|
+
const result = await this.queryBus.execute(new get_audit_records_query_js_1.GetAuditRecordsQuery(payload.paginator, payload.filters, payload.sorting));
|
|
30
|
+
return {
|
|
31
|
+
cursor: result.cursor,
|
|
32
|
+
data: result.data.map((record) => ({
|
|
33
|
+
action: record.action,
|
|
34
|
+
actorId: record.actorId,
|
|
35
|
+
actorRole: record.actorRole,
|
|
36
|
+
createdAt: record.createdAt,
|
|
37
|
+
id: record.id,
|
|
38
|
+
ip: record.ip,
|
|
39
|
+
subjectId: record.subjectId,
|
|
40
|
+
userAgent: record.userAgent,
|
|
41
|
+
})),
|
|
42
|
+
totalRecords: result.totalRecords,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.AuditRecordsResolver = AuditRecordsResolver;
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, graphql_2.Query)(() => audit_records_type_js_1.AuditRecordsType),
|
|
49
|
+
__param(0, (0, graphql_2.Args)()),
|
|
50
|
+
__metadata("design:type", Function),
|
|
51
|
+
__metadata("design:paramtypes", [graphql_1.Payload]),
|
|
52
|
+
__metadata("design:returntype", Promise)
|
|
53
|
+
], AuditRecordsResolver.prototype, "auditRecords", null);
|
|
54
|
+
exports.AuditRecordsResolver = AuditRecordsResolver = __decorate([
|
|
55
|
+
(0, nest_1.CheckPolicies)(policy_handlers_js_1.requireAuditLogAccess),
|
|
56
|
+
(0, graphql_2.Resolver)(),
|
|
57
|
+
__metadata("design:paramtypes", [cqrs_1.QueryBus])
|
|
58
|
+
], AuditRecordsResolver);
|
package/dist/cjs/nest/user-interface/controllers/graphql/audit-records/audit-records.type.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ListingResponseInterface } from '@application-kit/graphql';
|
|
2
|
+
import { CursorOutputType } from '@application-kit/graphql';
|
|
3
|
+
import { AuditRecordItemType } from './audit-record-item.type.js';
|
|
4
|
+
export declare class AuditRecordsType implements ListingResponseInterface<AuditRecordItemType> {
|
|
5
|
+
cursor: CursorOutputType;
|
|
6
|
+
data: AuditRecordItemType[];
|
|
7
|
+
totalRecords: number;
|
|
8
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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.AuditRecordsType = void 0;
|
|
13
|
+
const graphql_1 = require("@application-kit/graphql");
|
|
14
|
+
const graphql_2 = require("@nestjs/graphql");
|
|
15
|
+
const audit_record_item_type_js_1 = require("./audit-record-item.type.js");
|
|
16
|
+
let AuditRecordsType = class AuditRecordsType {
|
|
17
|
+
cursor;
|
|
18
|
+
data;
|
|
19
|
+
totalRecords;
|
|
20
|
+
};
|
|
21
|
+
exports.AuditRecordsType = AuditRecordsType;
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, graphql_2.Field)(() => graphql_1.CursorOutputType),
|
|
24
|
+
__metadata("design:type", graphql_1.CursorOutputType)
|
|
25
|
+
], AuditRecordsType.prototype, "cursor", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, graphql_2.Field)(() => [audit_record_item_type_js_1.AuditRecordItemType]),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], AuditRecordsType.prototype, "data", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, graphql_2.Field)(() => Number),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], AuditRecordsType.prototype, "totalRecords", void 0);
|
|
34
|
+
exports.AuditRecordsType = AuditRecordsType = __decorate([
|
|
35
|
+
(0, graphql_2.ObjectType)('AuditRecords')
|
|
36
|
+
], AuditRecordsType);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./audit-record-item.type.js"), exports);
|
|
18
|
+
__exportStar(require("./audit-records.resolver.js"), exports);
|
|
19
|
+
__exportStar(require("./audit-records.type.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './audit-records/index.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./audit-records/index.js"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './graphql/index.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./graphql/index.js"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./consumers/index.js"), exports);
|
|
18
|
+
__exportStar(require("./controllers/index.js"), exports);
|
|
19
|
+
__exportStar(require("./interceptors/index.js"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
+
import type { Observable } from 'rxjs';
|
|
3
|
+
import type { AuditRequestFactsResolver } from '../../libs/audit-request-context.js';
|
|
4
|
+
export declare class AuditRequestContextInterceptor implements NestInterceptor {
|
|
5
|
+
private readonly resolveRequestFacts;
|
|
6
|
+
constructor(resolveRequestFacts: AuditRequestFactsResolver);
|
|
7
|
+
intercept(context: ExecutionContext, next: CallHandler): Observable<unknown>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AuditRequestContextInterceptor = void 0;
|
|
16
|
+
const nest_1 = require("@application-kit/authorization/nest");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const rxjs_1 = require("rxjs");
|
|
19
|
+
const constants_js_1 = require("../../constants.js");
|
|
20
|
+
const audit_request_context_js_1 = require("../../libs/audit-request-context.js");
|
|
21
|
+
let AuditRequestContextInterceptor = class AuditRequestContextInterceptor {
|
|
22
|
+
resolveRequestFacts;
|
|
23
|
+
constructor(resolveRequestFacts) {
|
|
24
|
+
this.resolveRequestFacts = resolveRequestFacts;
|
|
25
|
+
}
|
|
26
|
+
intercept(context, next) {
|
|
27
|
+
const request = (0, nest_1.resolveExecutionRequest)(context);
|
|
28
|
+
return new rxjs_1.Observable((subscriber) => (0, audit_request_context_js_1.runWithAuditRequest)(request, this.resolveRequestFacts, () => next.handle().subscribe(subscriber)));
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.AuditRequestContextInterceptor = AuditRequestContextInterceptor;
|
|
32
|
+
exports.AuditRequestContextInterceptor = AuditRequestContextInterceptor = __decorate([
|
|
33
|
+
(0, common_1.Injectable)(),
|
|
34
|
+
__param(0, (0, common_1.Inject)(constants_js_1.AUDIT_REQUEST_FACTS_RESOLVER)),
|
|
35
|
+
__metadata("design:paramtypes", [Function])
|
|
36
|
+
], AuditRequestContextInterceptor);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './audit-request-context.interceptor.js';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./audit-request-context.interceptor.js"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FilterInterface, ListingResultInterface, PaginatorInterface, SortingInterface } from '@application-kit/typeorm/listing';
|
|
2
|
+
import type { AuditLogReadInterface } from '../nest/application/ports/audit-log-read.interface.js';
|
|
3
|
+
import type { AuditRecordDto } from '../nest/application/queries/dtos/audit-record.dto.js';
|
|
4
|
+
export interface ListingCallInterface {
|
|
5
|
+
filters: FilterInterface[] | undefined;
|
|
6
|
+
paginator: PaginatorInterface;
|
|
7
|
+
sorting: SortingInterface[] | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare class FakeAuditLogRead implements AuditLogReadInterface {
|
|
10
|
+
readonly calls: ListingCallInterface[];
|
|
11
|
+
private records;
|
|
12
|
+
list(paginator: PaginatorInterface, sorting?: SortingInterface[], filters?: FilterInterface[]): Promise<ListingResultInterface<AuditRecordDto>>;
|
|
13
|
+
store(records: AuditRecordDto[]): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FakeAuditLogRead = void 0;
|
|
4
|
+
class FakeAuditLogRead {
|
|
5
|
+
calls = [];
|
|
6
|
+
records = [];
|
|
7
|
+
async list(paginator, sorting, filters) {
|
|
8
|
+
await Promise.resolve();
|
|
9
|
+
this.calls.push({ filters, paginator, sorting });
|
|
10
|
+
return { cursor: { next: null, prev: null }, data: this.records, totalRecords: this.records.length };
|
|
11
|
+
}
|
|
12
|
+
store(records) {
|
|
13
|
+
this.records = records;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.FakeAuditLogRead = FakeAuditLogRead;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AuditLogWriteInterface } from '../nest/application/ports/audit-log-write.interface.js';
|
|
2
|
+
import type { AuditRecord } from '../nest/domain/audit-record.js';
|
|
3
|
+
export declare class FakeAuditLogWrite implements AuditLogWriteInterface {
|
|
4
|
+
readonly records: AuditRecord[];
|
|
5
|
+
private failure;
|
|
6
|
+
append(record: AuditRecord): Promise<void>;
|
|
7
|
+
failWith(error: Error): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FakeAuditLogWrite = void 0;
|
|
4
|
+
class FakeAuditLogWrite {
|
|
5
|
+
records = [];
|
|
6
|
+
failure = null;
|
|
7
|
+
async append(record) {
|
|
8
|
+
await Promise.resolve();
|
|
9
|
+
if (this.failure !== null) {
|
|
10
|
+
throw this.failure;
|
|
11
|
+
}
|
|
12
|
+
this.records.push(record);
|
|
13
|
+
}
|
|
14
|
+
failWith(error) {
|
|
15
|
+
this.failure = error;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.FakeAuditLogWrite = FakeAuditLogWrite;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./audit-log-read.fake.js"), exports);
|
|
18
|
+
__exportStar(require("./audit-log-write.fake.js"), exports);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface AuditRecordWireInterface<TDate = string, TRole extends string = string> {
|
|
2
|
+
action: string;
|
|
3
|
+
actorId: null | string;
|
|
4
|
+
actorRole: null | TRole;
|
|
5
|
+
createdAt: TDate;
|
|
6
|
+
id: string;
|
|
7
|
+
ip: null | string;
|
|
8
|
+
subjectId: string;
|
|
9
|
+
userAgent: null | string;
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Subject } from '@application-kit/authorization';
|
|
2
|
+
export declare const AUDIT_LOG_MODULE_NAME = "audit-log";
|
|
3
|
+
declare module '@application-kit/authorization' {
|
|
4
|
+
interface SubjectRegistryInterface {
|
|
5
|
+
AuditRecord: 'read';
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export type AuditLogSubject = Extract<Subject, 'AuditRecord'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const AUDIT_LOG_MODULE_NAME = 'audit-log';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface AuditRecordDtoOptionsInterface {
|
|
2
|
+
readonly action: string;
|
|
3
|
+
readonly actorId: null | string;
|
|
4
|
+
readonly actorRole: null | string;
|
|
5
|
+
readonly createdAt: Date;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly ip: null | string;
|
|
8
|
+
readonly subjectId: string;
|
|
9
|
+
readonly userAgent: null | string;
|
|
10
|
+
}
|
|
11
|
+
export declare class AuditRecordDto {
|
|
12
|
+
readonly action: string;
|
|
13
|
+
readonly actorId: null | string;
|
|
14
|
+
readonly actorRole: null | string;
|
|
15
|
+
readonly createdAt: Date;
|
|
16
|
+
readonly id: string;
|
|
17
|
+
readonly ip: null | string;
|
|
18
|
+
readonly subjectId: string;
|
|
19
|
+
readonly userAgent: null | string;
|
|
20
|
+
constructor(options: AuditRecordDtoOptionsInterface);
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export class AuditRecordDto {
|
|
2
|
+
action;
|
|
3
|
+
actorId;
|
|
4
|
+
actorRole;
|
|
5
|
+
createdAt;
|
|
6
|
+
id;
|
|
7
|
+
ip;
|
|
8
|
+
subjectId;
|
|
9
|
+
userAgent;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.action = options.action;
|
|
12
|
+
this.actorId = options.actorId;
|
|
13
|
+
this.actorRole = options.actorRole;
|
|
14
|
+
this.createdAt = options.createdAt;
|
|
15
|
+
this.id = options.id;
|
|
16
|
+
this.ip = options.ip;
|
|
17
|
+
this.subjectId = options.subjectId;
|
|
18
|
+
this.userAgent = options.userAgent;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './audit-record.dto.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './audit-record.dto.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ListingQueryResultInterface } from '@application-kit/typeorm/nest';
|
|
2
|
+
import { ListingQuery } from '@application-kit/typeorm/nest';
|
|
3
|
+
import type { AuditRecordDto } from './dtos/audit-record.dto.js';
|
|
4
|
+
export type GetAuditRecordsQueryResult = ListingQueryResultInterface<AuditRecordDto>;
|
|
5
|
+
export declare class GetAuditRecordsQuery extends ListingQuery {
|
|
6
|
+
}
|