@lssm/module.audit-trail 0.0.0-canary-20251206160926

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 (112) hide show
  1. package/README.md +110 -0
  2. package/dist/contracts/index.d.ts +582 -0
  3. package/dist/contracts/index.js +1 -0
  4. package/dist/entities/index.d.ts +90 -0
  5. package/dist/entities/index.js +1 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.js +1 -0
  8. package/dist/libs/contracts/dist/capabilities/openbanking.js +1 -0
  9. package/dist/libs/contracts/dist/client/index.js +1 -0
  10. package/dist/libs/contracts/dist/client/react/feature-render.js +1 -0
  11. package/dist/libs/contracts/dist/client/react/form-render.js +1 -0
  12. package/dist/libs/contracts/dist/client/react/index.js +1 -0
  13. package/dist/libs/contracts/dist/events.js +1 -0
  14. package/dist/libs/contracts/dist/experiments/evaluator.js +1 -0
  15. package/dist/libs/contracts/dist/graphql-federation/dist/index.js +1 -0
  16. package/dist/libs/contracts/dist/index.js +1 -0
  17. package/dist/libs/contracts/dist/install.js +1 -0
  18. package/dist/libs/contracts/dist/integrations/contracts.js +1 -0
  19. package/dist/libs/contracts/dist/integrations/index.js +1 -0
  20. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +1 -0
  21. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +1 -0
  22. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +1 -0
  23. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +1 -0
  24. package/dist/libs/contracts/dist/integrations/openbanking/models.js +1 -0
  25. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +1 -0
  26. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +1 -0
  27. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +1 -0
  28. package/dist/libs/contracts/dist/integrations/providers/gmail.js +1 -0
  29. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +1 -0
  30. package/dist/libs/contracts/dist/integrations/providers/impls/elevenlabs-voice.js +1 -0
  31. package/dist/libs/contracts/dist/integrations/providers/impls/gcs-storage.js +1 -0
  32. package/dist/libs/contracts/dist/integrations/providers/impls/gmail-inbound.js +1 -0
  33. package/dist/libs/contracts/dist/integrations/providers/impls/gmail-outbound.js +1 -0
  34. package/dist/libs/contracts/dist/integrations/providers/impls/google-calendar.js +1 -0
  35. package/dist/libs/contracts/dist/integrations/providers/impls/index.js +1 -0
  36. package/dist/libs/contracts/dist/integrations/providers/impls/mistral-embedding.js +1 -0
  37. package/dist/libs/contracts/dist/integrations/providers/impls/mistral-llm.js +1 -0
  38. package/dist/libs/contracts/dist/integrations/providers/impls/postmark-email.js +1 -0
  39. package/dist/libs/contracts/dist/integrations/providers/impls/powens-client.js +1 -0
  40. package/dist/libs/contracts/dist/integrations/providers/impls/powens-openbanking.js +1 -0
  41. package/dist/libs/contracts/dist/integrations/providers/impls/provider-factory.js +1 -0
  42. package/dist/libs/contracts/dist/integrations/providers/impls/qdrant-vector.js +1 -0
  43. package/dist/libs/contracts/dist/integrations/providers/impls/stripe-payments.js +1 -0
  44. package/dist/libs/contracts/dist/integrations/providers/impls/twilio-sms.js +1 -0
  45. package/dist/libs/contracts/dist/integrations/providers/index.js +1 -0
  46. package/dist/libs/contracts/dist/integrations/providers/mistral.js +1 -0
  47. package/dist/libs/contracts/dist/integrations/providers/postmark.js +1 -0
  48. package/dist/libs/contracts/dist/integrations/providers/powens.js +1 -0
  49. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +1 -0
  50. package/dist/libs/contracts/dist/integrations/providers/stripe.js +1 -0
  51. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +1 -0
  52. package/dist/libs/contracts/dist/integrations/runtime.js +1 -0
  53. package/dist/libs/contracts/dist/integrations/secrets/env-secret-provider.js +1 -0
  54. package/dist/libs/contracts/dist/integrations/secrets/gcp-secret-manager.js +1 -0
  55. package/dist/libs/contracts/dist/integrations/secrets/index.js +1 -0
  56. package/dist/libs/contracts/dist/integrations/secrets/manager.js +1 -0
  57. package/dist/libs/contracts/dist/integrations/secrets/provider.js +1 -0
  58. package/dist/libs/contracts/dist/jsonschema.js +1 -0
  59. package/dist/libs/contracts/dist/knowledge/contracts.js +1 -0
  60. package/dist/libs/contracts/dist/knowledge/index.js +1 -0
  61. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +1 -0
  62. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +1 -0
  63. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +1 -0
  64. package/dist/libs/contracts/dist/knowledge/spaces/index.js +1 -0
  65. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +1 -0
  66. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +1 -0
  67. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +1 -0
  68. package/dist/libs/contracts/dist/onboarding-base.js +1 -0
  69. package/dist/libs/contracts/dist/ownership.js +1 -0
  70. package/dist/libs/contracts/dist/presentations.js +1 -0
  71. package/dist/libs/contracts/dist/presentations.v2.js +1 -0
  72. package/dist/libs/contracts/dist/prompt.js +1 -0
  73. package/dist/libs/contracts/dist/promptRegistry.js +1 -0
  74. package/dist/libs/contracts/dist/regenerator/index.js +1 -0
  75. package/dist/libs/contracts/dist/regenerator/service.js +1 -0
  76. package/dist/libs/contracts/dist/registry.js +1 -0
  77. package/dist/libs/contracts/dist/resources.js +1 -0
  78. package/dist/libs/contracts/dist/schema/dist/EnumType.js +1 -0
  79. package/dist/libs/contracts/dist/schema/dist/FieldType.js +1 -0
  80. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +1 -0
  81. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +1 -0
  82. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +1 -0
  83. package/dist/libs/contracts/dist/schema/dist/entity/index.js +1 -0
  84. package/dist/libs/contracts/dist/schema/dist/entity/types.js +1 -0
  85. package/dist/libs/contracts/dist/schema/dist/index.js +1 -0
  86. package/dist/libs/contracts/dist/server/graphql-pothos.js +1 -0
  87. package/dist/libs/contracts/dist/server/graphql-schema-export.js +1 -0
  88. package/dist/libs/contracts/dist/server/index.js +1 -0
  89. package/dist/libs/contracts/dist/server/provider-mcp.js +1 -0
  90. package/dist/libs/contracts/dist/server/rest-elysia.js +1 -0
  91. package/dist/libs/contracts/dist/server/rest-express.js +1 -0
  92. package/dist/libs/contracts/dist/server/rest-generic.js +1 -0
  93. package/dist/libs/contracts/dist/server/rest-next-app.js +1 -0
  94. package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -0
  95. package/dist/libs/contracts/dist/spec.js +1 -0
  96. package/dist/libs/contracts/dist/telemetry/index.js +1 -0
  97. package/dist/libs/contracts/dist/telemetry/tracker.js +1 -0
  98. package/dist/libs/contracts/dist/tests/index.js +1 -0
  99. package/dist/libs/contracts/dist/tests/runner.js +1 -0
  100. package/dist/libs/contracts/dist/workflow/index.js +1 -0
  101. package/dist/libs/contracts/dist/workflow/runner.js +1 -0
  102. package/dist/libs/schema/dist/EnumType.js +1 -0
  103. package/dist/libs/schema/dist/FieldType.js +1 -0
  104. package/dist/libs/schema/dist/ScalarTypeEnum.js +1 -0
  105. package/dist/libs/schema/dist/SchemaModel.js +1 -0
  106. package/dist/libs/schema/dist/entity/defineEntity.js +1 -0
  107. package/dist/libs/schema/dist/entity/index.js +1 -0
  108. package/dist/libs/schema/dist/entity/types.js +1 -0
  109. package/dist/libs/schema/dist/index.js +1 -0
  110. package/dist/storage/index.d.ts +87 -0
  111. package/dist/storage/index.js +1 -0
  112. package/package.json +45 -0
@@ -0,0 +1,87 @@
1
+ import { AuditQueryOptions, AuditRecord, AuditStorage } from "@lssm/lib.bus";
2
+
3
+ //#region src/storage/index.d.ts
4
+
5
+ /**
6
+ * Extended query options for audit storage.
7
+ */
8
+ interface ExtendedAuditQueryOptions extends AuditQueryOptions {
9
+ targetType?: string;
10
+ clientIp?: string;
11
+ sessionId?: string;
12
+ orderBy?: 'occurredAt' | 'recordedAt';
13
+ orderDir?: 'asc' | 'desc';
14
+ }
15
+ /**
16
+ * Audit storage adapter interface with extended capabilities.
17
+ */
18
+ interface AuditStorageAdapter extends AuditStorage {
19
+ /** Query audit records with extended options */
20
+ query(options: ExtendedAuditQueryOptions): Promise<AuditRecord[]>;
21
+ /** Count matching records */
22
+ count(options: Omit<ExtendedAuditQueryOptions, 'limit' | 'offset'>): Promise<number>;
23
+ /** Get a single record by ID */
24
+ getById(id: string): Promise<AuditRecord | null>;
25
+ /** Get all records for a trace */
26
+ getByTraceId(traceId: string): Promise<AuditRecord[]>;
27
+ /** Delete old records (for retention) */
28
+ deleteOlderThan(date: Date): Promise<number>;
29
+ }
30
+ /**
31
+ * In-memory audit storage for development/testing.
32
+ */
33
+ declare class InMemoryAuditStorage implements AuditStorageAdapter {
34
+ private records;
35
+ store(record: AuditRecord): Promise<void>;
36
+ query(options: ExtendedAuditQueryOptions): Promise<AuditRecord[]>;
37
+ count(options: Omit<ExtendedAuditQueryOptions, 'limit' | 'offset'>): Promise<number>;
38
+ getById(id: string): Promise<AuditRecord | null>;
39
+ getByTraceId(traceId: string): Promise<AuditRecord[]>;
40
+ deleteOlderThan(date: Date): Promise<number>;
41
+ /**
42
+ * Get all records (for testing).
43
+ */
44
+ getAll(): AuditRecord[];
45
+ /**
46
+ * Clear all records (for testing).
47
+ */
48
+ clear(): void;
49
+ }
50
+ /**
51
+ * Retention policy configuration.
52
+ */
53
+ interface RetentionPolicyConfig {
54
+ /** Days to keep detailed logs */
55
+ hotRetentionDays: number;
56
+ /** Days to keep archived logs (for compliance) */
57
+ archiveRetentionDays?: number;
58
+ /** Cron expression for cleanup schedule */
59
+ cleanupSchedule?: string;
60
+ }
61
+ /**
62
+ * Retention policy manager.
63
+ */
64
+ declare class RetentionPolicy {
65
+ private readonly config;
66
+ constructor(config: RetentionPolicyConfig);
67
+ /**
68
+ * Get the cutoff date for hot storage.
69
+ */
70
+ getHotCutoff(): Date;
71
+ /**
72
+ * Get the cutoff date for archive storage.
73
+ */
74
+ getArchiveCutoff(): Date | null;
75
+ /**
76
+ * Apply retention policy to storage.
77
+ */
78
+ apply(storage: AuditStorageAdapter): Promise<{
79
+ deletedCount: number;
80
+ }>;
81
+ }
82
+ /**
83
+ * Create an in-memory audit storage.
84
+ */
85
+ declare function createInMemoryAuditStorage(): InMemoryAuditStorage;
86
+ //#endregion
87
+ export { AuditStorageAdapter, ExtendedAuditQueryOptions, InMemoryAuditStorage, RetentionPolicy, RetentionPolicyConfig, createInMemoryAuditStorage };
@@ -0,0 +1 @@
1
+ var e=class{records=[];async store(e){this.records.push(e)}async query(e){let t=[...this.records];if(e.eventName){let n=e.eventName.replace(/\*/g,`.*`),r=RegExp(`^${n}$`);t=t.filter(e=>r.test(e.eventName))}e.actorId&&(t=t.filter(t=>t.metadata?.actorId===e.actorId)),e.targetId&&(t=t.filter(t=>t.metadata?.targetId===e.targetId)),e.targetType&&(t=t.filter(t=>t.metadata?.targetType===e.targetType)),e.orgId&&(t=t.filter(t=>t.metadata?.orgId===e.orgId)),e.traceId&&(t=t.filter(t=>t.traceId===e.traceId)),e.from&&(t=t.filter(t=>new Date(t.occurredAt)>=e.from)),e.to&&(t=t.filter(t=>new Date(t.occurredAt)<=e.to));let n=e.orderBy??`occurredAt`,r=e.orderDir??`desc`;t.sort((e,t)=>{let i=n===`occurredAt`?new Date(e.occurredAt).getTime():e.recordedAt.getTime(),a=n===`occurredAt`?new Date(t.occurredAt).getTime():t.recordedAt.getTime();return r===`desc`?a-i:i-a});let i=e.offset??0,a=e.limit??100;return t.slice(i,i+a)}async count(e){return(await this.query({...e,limit:1/0})).length}async getById(e){return this.records.find(t=>t.id===e)??null}async getByTraceId(e){return this.query({traceId:e})}async deleteOlderThan(e){let t=this.records.length;return this.records=this.records.filter(t=>new Date(t.occurredAt)>=e),t-this.records.length}getAll(){return[...this.records]}clear(){this.records=[]}},t=class{constructor(e){this.config=e}getHotCutoff(){let e=new Date;return e.setDate(e.getDate()-this.config.hotRetentionDays),e}getArchiveCutoff(){if(!this.config.archiveRetentionDays)return null;let e=new Date;return e.setDate(e.getDate()-this.config.archiveRetentionDays),e}async apply(e){let t=this.getHotCutoff();return{deletedCount:await e.deleteOlderThan(t)}}};function n(){return new e}export{e as InMemoryAuditStorage,t as RetentionPolicy,n as createInMemoryAuditStorage};
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@lssm/module.audit-trail",
3
+ "version": "0.0.0-canary-20251206160926",
4
+ "description": "Audit trail module for tracking and querying system events",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
10
+ "build": "bun build:bundle && bun build:types",
11
+ "build:bundle": "tsdown",
12
+ "build:types": "tsc --noEmit",
13
+ "dev": "bun build:bundle --watch",
14
+ "clean": "rimraf dist .turbo",
15
+ "lint": "bun lint:fix",
16
+ "lint:fix": "eslint src --fix",
17
+ "lint:check": "eslint src"
18
+ },
19
+ "dependencies": {
20
+ "@lssm/lib.schema": "workspace:*",
21
+ "@lssm/lib.contracts": "workspace:*",
22
+ "@lssm/lib.bus": "workspace:*",
23
+ "zod": "^4.1.13"
24
+ },
25
+ "devDependencies": {
26
+ "@lssm/tool.typescript": "workspace:*",
27
+ "@lssm/tool.tsdown": "workspace:*",
28
+ "typescript": "^5.9.3"
29
+ },
30
+ "exports": {
31
+ ".": "./dist/index.js",
32
+ "./contracts": "./dist/contracts/index.js",
33
+ "./entities": "./dist/entities/index.js",
34
+ "./storage": "./dist/storage/index.js",
35
+ "./*": "./*"
36
+ },
37
+ "module": "./dist/index.js",
38
+ "files": [
39
+ "dist",
40
+ "README.md"
41
+ ],
42
+ "publishConfig": {
43
+ "access": "public"
44
+ }
45
+ }