@studiosonrai/nestjs-audit-log 1.1.1 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,12 +9,6 @@ hatch. The acting user is captured from the request via CLS, so you never thread
9
9
  via raw SQL through your existing DataSource, so **no migration is required and you do
10
10
  not need to add `AuditLog` to your `entities` array** (Microsoft SQL Server).
11
11
 
12
- ## Documentation
13
-
14
- - [Setup & Usage](docs/setup.md) — prerequisites, install, configuration, and day-to-day use.
15
- - [How It Works](docs/internals.md) — architecture, core logic, and design decisions.
16
- - [Migration Guide](docs/migration.md) — move an existing hand-rolled audit module onto this package.
17
-
18
12
  ## Installation
19
13
 
20
14
  ```bash
@@ -31,18 +25,33 @@ import { AuditLog } from '@studiosonrai/nestjs-audit-log';
31
25
 
32
26
  @Module({
33
27
  imports: [
34
- AuditModule.forRootAsync({
35
- inject: [getRepositoryToken(User)],
36
- useFactory: (userRepo: Repository<User>) => ({
37
- // read-time enrichment of `changedBy` -> name/email (optional)
38
- resolveUser: async (id) => {
39
- const u = await userRepo.findOneBy({ id });
40
- return u && { name: `${u.firstName} ${u.lastName ?? ''}`.trim(), email: u.email };
41
- },
42
- // how to read the acting user id from the request (default: req.user?.id)
43
- getUserId: (req) => (req as { user?: { id?: number } }).user?.id,
28
+ AuditModule.forRootAsync({
29
+ imports: [TypeOrmModule.forFeature([User])], // for `resolveUser` if you want it
30
+ inject: [LoggerFactory, getRepositoryToken(User)],
31
+ useFactory: (
32
+ loggerFactory: LoggerFactory,
33
+ userRepo: Repository<User>,
34
+ ) => ({
35
+ // Required if you want any package logs — otherwise the package is silent.
36
+ // Routes audit-log internal logs through your app's logger (winston,
37
+ // App Insights, whatever) with one context per internal class.
38
+ logger: (ctx) => loggerFactory.create(ctx),
39
+
40
+ // Optional: turn `changedBy` (a user id) into a name/email on read.
41
+ resolveUser: async (id) => {
42
+ const user = await userRepo.findOneBy({ id });
43
+ return user
44
+ ? {
45
+ name: `${user.firstName} ${user.lastName ?? ''}`.trim(),
46
+ email: user.email,
47
+ }
48
+ : null;
49
+ },
50
+ // Optional: how to read the acting user id from the request.
51
+ // Defaults to `request.user?.id`.
52
+ getUserId: (req) => (req as RequestWithUser).user?.sub,
53
+ }),
44
54
  }),
45
- }),
46
55
  ],
47
56
  })
48
57
  export class AppModule {}
@@ -60,7 +69,11 @@ Register the `AuditLog` entity with your DataSource (e.g. `autoLoadEntities: tru
60
69
  ```typescript
61
70
  import { Auditable } from '@studiosonrai/nestjs-audit-log';
62
71
 
63
- @Auditable({ nameField: 'fullName' }) // entityType defaults to the class name
72
+ @Auditable({
73
+ entityType: 'Contact', // default: the class name (You can change to your preferred name)
74
+ nameField: 'fullName', // property used as the human label
75
+ exclude: ['createdBy', 'updatedBy'], // omit from the diff (id/createdAt/updatedAt already excluded)
76
+ })
64
77
  @Entity()
65
78
  export class Contact { /* ... */ }
66
79
  ```
@@ -158,7 +158,9 @@ let AuditService = AuditService_1 = class AuditService {
158
158
  }
159
159
  async findAll(filterDto) {
160
160
  try {
161
- const { page = 0, limit = 10, entityType, entityId, changedBy, action, search, } = filterDto;
161
+ const { page: rawPage = 0, limit: rawLimit = 10, entityType, entityId, changedBy, action, search, } = filterDto;
162
+ const page = Math.floor(Number(rawPage));
163
+ const limit = Math.max(1, Math.floor(Number(rawLimit)));
162
164
  const conditions = [];
163
165
  const params = [];
164
166
  if (search) {
@@ -1 +1 @@
1
- {"version":3,"file":"audit.service.js","sourceRoot":"","sources":["../../src/audit.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.service.js","sourceRoot":"","sources":["../../src/audit.service.ts"],"names":[],"mappings":"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"}