hierarchical-approval 3.0.0 → 3.2.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/{ApprovalEngine-CCOwhMrs.d.ts → ApprovalEngine-Cslh4Goz.d.ts} +6 -6
  3. package/dist/{ApprovalEngine-Bfs5BnMm.d.cts → ApprovalEngine-zAgvH_aO.d.cts} +6 -6
  4. package/dist/{IAuditAdapter-DxdK4UVt.d.cts → IAuditAdapter-BkxGx6TI.d.cts} +1 -1
  5. package/dist/{IAuditAdapter-B33n15YP.d.ts → IAuditAdapter-udkAnnmu.d.ts} +1 -1
  6. package/dist/{IAuthorizationPolicy-BzGVzkLJ.d.cts → IAuthorizationPolicy-YQlSwj-8.d.cts} +1 -1
  7. package/dist/{IAuthorizationPolicy-DOm6KCwI.d.ts → IAuthorizationPolicy-Z4nkX-bu.d.ts} +1 -1
  8. package/dist/{INotificationAdapter-DMvA4R-c.d.ts → INotificationAdapter-C-PL3Pvp.d.ts} +1 -1
  9. package/dist/{INotificationAdapter-DFKvGpOp.d.cts → INotificationAdapter-D3PBQE1B.d.cts} +1 -1
  10. package/dist/{IOperationMiddleware-Nk8Q1Z8o.d.ts → IOperationMiddleware-Cbd05rje.d.ts} +1 -1
  11. package/dist/{IOperationMiddleware-C8i06wq4.d.cts → IOperationMiddleware-tgJcKzTP.d.cts} +1 -1
  12. package/dist/{IStorageAdapter-C2QxUwbX.d.ts → IStorageAdapter-CEKfu-U8.d.ts} +1 -1
  13. package/dist/{IStorageAdapter-C0qeZgs4.d.cts → IStorageAdapter-DUrmnJUs.d.cts} +1 -1
  14. package/dist/adapters/MemoryAdapter.cjs +3 -3
  15. package/dist/adapters/MemoryAdapter.cjs.map +1 -1
  16. package/dist/adapters/MemoryAdapter.d.cts +2 -2
  17. package/dist/adapters/MemoryAdapter.d.ts +2 -2
  18. package/dist/adapters/MemoryAdapter.js +3 -3
  19. package/dist/adapters/MemoryAdapter.js.map +1 -1
  20. package/dist/adapters/PostgresAdapter.cjs +18 -0
  21. package/dist/adapters/PostgresAdapter.cjs.map +1 -1
  22. package/dist/adapters/PostgresAdapter.d.cts +2 -2
  23. package/dist/adapters/PostgresAdapter.d.ts +2 -2
  24. package/dist/adapters/PostgresAdapter.js +18 -0
  25. package/dist/adapters/PostgresAdapter.js.map +1 -1
  26. package/dist/index.cjs +6 -3
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +8 -8
  29. package/dist/index.d.ts +8 -8
  30. package/dist/index.js +6 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/{instance-BvOyT00S.d.cts → instance-BXHxvTLE.d.cts} +10 -0
  33. package/dist/{instance-BvOyT00S.d.ts → instance-BXHxvTLE.d.ts} +10 -0
  34. package/dist/nestjs.cjs +6 -3
  35. package/dist/nestjs.cjs.map +1 -1
  36. package/dist/nestjs.d.cts +7 -7
  37. package/dist/nestjs.d.ts +7 -7
  38. package/dist/nestjs.js +6 -3
  39. package/dist/nestjs.js.map +1 -1
  40. package/dist/plugins/audit.d.cts +2 -2
  41. package/dist/plugins/audit.d.ts +2 -2
  42. package/dist/plugins/notify.d.cts +2 -2
  43. package/dist/plugins/notify.d.ts +2 -2
  44. package/dist/plugins/resilience.d.cts +3 -3
  45. package/dist/plugins/resilience.d.ts +3 -3
  46. package/dist/plugins/tracing.d.cts +2 -2
  47. package/dist/plugins/tracing.d.ts +2 -2
  48. package/dist/plugins/webhook.d.cts +2 -2
  49. package/dist/plugins/webhook.d.ts +2 -2
  50. package/dist/testing.cjs +6 -3
  51. package/dist/testing.cjs.map +1 -1
  52. package/dist/testing.d.cts +7 -7
  53. package/dist/testing.d.ts +7 -7
  54. package/dist/testing.js +6 -3
  55. package/dist/testing.js.map +1 -1
  56. package/package.json +1 -1
package/dist/nestjs.d.cts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { OnModuleDestroy, DynamicModule, ModuleMetadata, InjectionToken, OptionalFactoryDependency, Inject } from '@nestjs/common';
2
- import { a as ApprovalEngine, b as ApprovalEngineOptions } from './ApprovalEngine-Bfs5BnMm.cjs';
3
- import './IStorageAdapter-C0qeZgs4.cjs';
4
- import './instance-BvOyT00S.cjs';
5
- import './INotificationAdapter-DFKvGpOp.cjs';
2
+ import { a as ApprovalEngine, b as ApprovalEngineOptions } from './ApprovalEngine-zAgvH_aO.cjs';
3
+ import './IStorageAdapter-DUrmnJUs.cjs';
4
+ import './instance-BXHxvTLE.cjs';
5
+ import './INotificationAdapter-D3PBQE1B.cjs';
6
6
  import 'zod';
7
7
  import './Logger-BplhlU7l.cjs';
8
8
  import './Clock-3FnOczFJ.cjs';
9
- import './IOperationMiddleware-C8i06wq4.cjs';
10
- import './IAuditAdapter-DxdK4UVt.cjs';
9
+ import './IOperationMiddleware-tgJcKzTP.cjs';
10
+ import './IAuditAdapter-BkxGx6TI.cjs';
11
11
  import './IMetricsAdapter-DWq8IFaf.cjs';
12
12
  import './ISchedulerAdapter-DKv_QjVN.cjs';
13
- import './IAuthorizationPolicy-BzGVzkLJ.cjs';
13
+ import './IAuthorizationPolicy-YQlSwj-8.cjs';
14
14
 
15
15
  /** Options for {@link HierarchicalApprovalModule.forRoot}. */
16
16
  interface HierarchicalApprovalModuleOptions extends ApprovalEngineOptions {
package/dist/nestjs.d.ts CHANGED
@@ -1,16 +1,16 @@
1
1
  import { OnModuleDestroy, DynamicModule, ModuleMetadata, InjectionToken, OptionalFactoryDependency, Inject } from '@nestjs/common';
2
- import { a as ApprovalEngine, b as ApprovalEngineOptions } from './ApprovalEngine-CCOwhMrs.js';
3
- import './IStorageAdapter-C2QxUwbX.js';
4
- import './instance-BvOyT00S.js';
5
- import './INotificationAdapter-DMvA4R-c.js';
2
+ import { a as ApprovalEngine, b as ApprovalEngineOptions } from './ApprovalEngine-Cslh4Goz.js';
3
+ import './IStorageAdapter-CEKfu-U8.js';
4
+ import './instance-BXHxvTLE.js';
5
+ import './INotificationAdapter-C-PL3Pvp.js';
6
6
  import 'zod';
7
7
  import './Logger-BplhlU7l.js';
8
8
  import './Clock-3FnOczFJ.js';
9
- import './IOperationMiddleware-Nk8Q1Z8o.js';
10
- import './IAuditAdapter-B33n15YP.js';
9
+ import './IOperationMiddleware-Cbd05rje.js';
10
+ import './IAuditAdapter-udkAnnmu.js';
11
11
  import './IMetricsAdapter-DWq8IFaf.js';
12
12
  import './ISchedulerAdapter-DKv_QjVN.js';
13
- import './IAuthorizationPolicy-DOm6KCwI.js';
13
+ import './IAuthorizationPolicy-Z4nkX-bu.js';
14
14
 
15
15
  /** Options for {@link HierarchicalApprovalModule.forRoot}. */
16
16
  interface HierarchicalApprovalModuleOptions extends ApprovalEngineOptions {
package/dist/nestjs.js CHANGED
@@ -195,6 +195,7 @@ function reviveDates(instance) {
195
195
  if (l.escalationDueAt) level.escalationDueAt = new Date(l.escalationDueAt);
196
196
  if (l.delegatedUntil) level.delegatedUntil = new Date(l.delegatedUntil);
197
197
  if (l.reminderDueAt) level.reminderDueAt = new Date(l.reminderDueAt);
198
+ if (l.openedAt) level.openedAt = new Date(l.openedAt);
198
199
  return level;
199
200
  })
200
201
  };
@@ -297,9 +298,8 @@ var MemoryAdapter = class {
297
298
  }
298
299
  async getOverdueInstances(tenantId, asOf, filter = {}) {
299
300
  return [...this.instances.values()].filter((i) => {
300
- if (i.tenantId !== tenantId || i.status !== "pending") return false;
301
- if (filter.documentType && i.documentType !== filter.documentType) return false;
302
- if (filter.submittedBy && i.submittedBy !== filter.submittedBy) return false;
301
+ if (i.tenantId !== tenantId) return false;
302
+ if (!applyFilter(i, { ...filter, status: "pending" })) return false;
303
303
  const hasOverdueEscalation = i.levels.some(
304
304
  (l) => l.escalationDueAt != null && new Date(l.escalationDueAt) <= asOf
305
305
  );
@@ -4065,6 +4065,7 @@ var ApprovalEngine = class _ApprovalEngine {
4065
4065
  remindersSent: 0
4066
4066
  };
4067
4067
  if (opts.open) {
4068
+ level.openedAt = opts.now;
4068
4069
  level.escalationDueAt = this.levelEscalationDue(opts.now, cfg, opts.firstRung);
4069
4070
  this.scheduleReminder(level, opts.now);
4070
4071
  }
@@ -4107,6 +4108,7 @@ var ApprovalEngine = class _ApprovalEngine {
4107
4108
  * the ladder no worse off than the single-step behaviour it replaces.
4108
4109
  */
4109
4110
  levelOpenedAt(instance, level, fallback) {
4111
+ if (level.openedAt) return new Date(level.openedAt);
4110
4112
  for (let i = instance.auditLog.length - 1; i >= 0; i--) {
4111
4113
  const entry = instance.auditLog[i];
4112
4114
  if (!entry) continue;
@@ -4227,6 +4229,7 @@ var ApprovalEngine = class _ApprovalEngine {
4227
4229
  now
4228
4230
  );
4229
4231
  }
4232
+ lvl.openedAt = now;
4230
4233
  lvl.escalationDueAt = this.levelEscalationDue(now, lvl, firstRung);
4231
4234
  lvl.escalationStep = 0;
4232
4235
  this.scheduleReminder(lvl, now);