@axova/shared 1.0.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 (112) hide show
  1. package/CONFIGURATION_GUIDE.md +1 -0
  2. package/README.md +384 -0
  3. package/SCHEMA_ORGANIZATION.md +209 -0
  4. package/dist/configs/index.d.ts +85 -0
  5. package/dist/configs/index.js +555 -0
  6. package/dist/events/kafka.d.ts +40 -0
  7. package/dist/events/kafka.js +311 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.js +41 -0
  10. package/dist/interfaces/customer-events.d.ts +85 -0
  11. package/dist/interfaces/customer-events.js +2 -0
  12. package/dist/interfaces/inventory-events.d.ts +453 -0
  13. package/dist/interfaces/inventory-events.js +3 -0
  14. package/dist/interfaces/inventory-types.d.ts +894 -0
  15. package/dist/interfaces/inventory-types.js +3 -0
  16. package/dist/interfaces/order-events.d.ts +320 -0
  17. package/dist/interfaces/order-events.js +3 -0
  18. package/dist/lib/auditLogger.d.ts +162 -0
  19. package/dist/lib/auditLogger.js +626 -0
  20. package/dist/lib/authOrganization.d.ts +24 -0
  21. package/dist/lib/authOrganization.js +110 -0
  22. package/dist/lib/db.d.ts +6 -0
  23. package/dist/lib/db.js +88 -0
  24. package/dist/middleware/serviceAuth.d.ts +60 -0
  25. package/dist/middleware/serviceAuth.js +272 -0
  26. package/dist/middleware/storeOwnership.d.ts +15 -0
  27. package/dist/middleware/storeOwnership.js +156 -0
  28. package/dist/middleware/storeValidationMiddleware.d.ts +44 -0
  29. package/dist/middleware/storeValidationMiddleware.js +180 -0
  30. package/dist/middleware/userAuth.d.ts +27 -0
  31. package/dist/middleware/userAuth.js +218 -0
  32. package/dist/schemas/admin/admin-schema.d.ts +741 -0
  33. package/dist/schemas/admin/admin-schema.js +111 -0
  34. package/dist/schemas/ai-moderation/ai-moderation-schema.d.ts +648 -0
  35. package/dist/schemas/ai-moderation/ai-moderation-schema.js +88 -0
  36. package/dist/schemas/common/common-schemas.d.ts +436 -0
  37. package/dist/schemas/common/common-schemas.js +94 -0
  38. package/dist/schemas/compliance/compliance-schema.d.ts +3388 -0
  39. package/dist/schemas/compliance/compliance-schema.js +472 -0
  40. package/dist/schemas/compliance/kyc-schema.d.ts +2642 -0
  41. package/dist/schemas/compliance/kyc-schema.js +361 -0
  42. package/dist/schemas/customer/customer-schema.d.ts +2727 -0
  43. package/dist/schemas/customer/customer-schema.js +399 -0
  44. package/dist/schemas/index.d.ts +27 -0
  45. package/dist/schemas/index.js +138 -0
  46. package/dist/schemas/inventory/inventory-tables.d.ts +9476 -0
  47. package/dist/schemas/inventory/inventory-tables.js +1470 -0
  48. package/dist/schemas/inventory/lot-tables.d.ts +3281 -0
  49. package/dist/schemas/inventory/lot-tables.js +608 -0
  50. package/dist/schemas/order/order-schema.d.ts +5825 -0
  51. package/dist/schemas/order/order-schema.js +954 -0
  52. package/dist/schemas/product/discount-relations.d.ts +15 -0
  53. package/dist/schemas/product/discount-relations.js +34 -0
  54. package/dist/schemas/product/discount-schema.d.ts +1975 -0
  55. package/dist/schemas/product/discount-schema.js +297 -0
  56. package/dist/schemas/product/product-relations.d.ts +41 -0
  57. package/dist/schemas/product/product-relations.js +133 -0
  58. package/dist/schemas/product/product-schema.d.ts +4544 -0
  59. package/dist/schemas/product/product-schema.js +671 -0
  60. package/dist/schemas/store/store-audit-schema.d.ts +4135 -0
  61. package/dist/schemas/store/store-audit-schema.js +556 -0
  62. package/dist/schemas/store/store-schema.d.ts +3100 -0
  63. package/dist/schemas/store/store-schema.js +381 -0
  64. package/dist/schemas/store/store-settings-schema.d.ts +665 -0
  65. package/dist/schemas/store/store-settings-schema.js +141 -0
  66. package/dist/schemas/types.d.ts +50 -0
  67. package/dist/schemas/types.js +3 -0
  68. package/dist/types/events.d.ts +2396 -0
  69. package/dist/types/events.js +505 -0
  70. package/dist/utils/errorHandler.d.ts +12 -0
  71. package/dist/utils/errorHandler.js +36 -0
  72. package/dist/utils/subdomain.d.ts +6 -0
  73. package/dist/utils/subdomain.js +20 -0
  74. package/nul +8 -0
  75. package/package.json +43 -0
  76. package/src/configs/index.ts +654 -0
  77. package/src/events/kafka.ts +429 -0
  78. package/src/index.ts +26 -0
  79. package/src/interfaces/customer-events.ts +106 -0
  80. package/src/interfaces/inventory-events.ts +545 -0
  81. package/src/interfaces/inventory-types.ts +1004 -0
  82. package/src/interfaces/order-events.ts +381 -0
  83. package/src/lib/auditLogger.ts +1117 -0
  84. package/src/lib/authOrganization.ts +153 -0
  85. package/src/lib/db.ts +64 -0
  86. package/src/middleware/serviceAuth.ts +328 -0
  87. package/src/middleware/storeOwnership.ts +199 -0
  88. package/src/middleware/storeValidationMiddleware.ts +247 -0
  89. package/src/middleware/userAuth.ts +248 -0
  90. package/src/schemas/admin/admin-schema.ts +208 -0
  91. package/src/schemas/ai-moderation/ai-moderation-schema.ts +180 -0
  92. package/src/schemas/common/common-schemas.ts +108 -0
  93. package/src/schemas/compliance/compliance-schema.ts +927 -0
  94. package/src/schemas/compliance/kyc-schema.ts +649 -0
  95. package/src/schemas/customer/customer-schema.ts +576 -0
  96. package/src/schemas/index.ts +189 -0
  97. package/src/schemas/inventory/inventory-tables.ts +1927 -0
  98. package/src/schemas/inventory/lot-tables.ts +799 -0
  99. package/src/schemas/order/order-schema.ts +1400 -0
  100. package/src/schemas/product/discount-relations.ts +44 -0
  101. package/src/schemas/product/discount-schema.ts +464 -0
  102. package/src/schemas/product/product-relations.ts +187 -0
  103. package/src/schemas/product/product-schema.ts +955 -0
  104. package/src/schemas/store/ethiopian_business_api.md.resolved +212 -0
  105. package/src/schemas/store/store-audit-schema.ts +1257 -0
  106. package/src/schemas/store/store-schema.ts +661 -0
  107. package/src/schemas/store/store-settings-schema.ts +231 -0
  108. package/src/schemas/types.ts +67 -0
  109. package/src/types/events.ts +646 -0
  110. package/src/utils/errorHandler.ts +44 -0
  111. package/src/utils/subdomain.ts +19 -0
  112. package/tsconfig.json +21 -0
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // Comprehensive inventory management types and interfaces
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,320 @@
1
+ export interface OrderServiceConfig {
2
+ serviceName: string;
3
+ version: string;
4
+ kafkaTopics: {
5
+ orderCreated: string;
6
+ orderUpdated: string;
7
+ orderStatusChanged: string;
8
+ orderPaymentProcessed: string;
9
+ orderShipped: string;
10
+ orderDelivered: string;
11
+ orderCancelled: string;
12
+ orderRefunded: string;
13
+ orderNoteAdded: string;
14
+ orderItemAdded: string;
15
+ orderItemRemoved: string;
16
+ orderDiscountApplied: string;
17
+ };
18
+ features: {
19
+ multiOrderTypes: boolean;
20
+ advancedPayments: boolean;
21
+ realTimeTracking: boolean;
22
+ inventoryIntegration: boolean;
23
+ advancedDiscounts: boolean;
24
+ fraudDetection: boolean;
25
+ subscriptionSupport: boolean;
26
+ marketplaceIntegration: boolean;
27
+ };
28
+ limits: {
29
+ maxOrderValue: number;
30
+ maxItemsPerOrder: number;
31
+ maxAddressesPerOrder: number;
32
+ maxNotesPerOrder: number;
33
+ orderRetentionDays: number;
34
+ };
35
+ }
36
+ export interface OrderCreatedEvent {
37
+ orderId: string;
38
+ orderNumber: string;
39
+ storeId: string;
40
+ customerId?: string;
41
+ userId?: string;
42
+ orderType: string;
43
+ orderSource: string;
44
+ status: string;
45
+ totalAmount: string;
46
+ currency: string;
47
+ itemCount: number;
48
+ isGuestOrder: boolean;
49
+ paymentMethod?: string;
50
+ shippingRequired: boolean;
51
+ priority: string;
52
+ }
53
+ export interface OrderUpdatedEvent {
54
+ orderId: string;
55
+ orderNumber: string;
56
+ storeId: string;
57
+ customerId?: string;
58
+ changes: Record<string, unknown>;
59
+ previousValues: Record<string, unknown>;
60
+ statusChanged: boolean;
61
+ paymentStatusChanged: boolean;
62
+ fulfillmentStatusChanged: boolean;
63
+ amountChanged: boolean;
64
+ }
65
+ export interface OrderStatusChangedEvent {
66
+ orderId: string;
67
+ orderNumber: string;
68
+ storeId: string;
69
+ customerId?: string;
70
+ fromStatus: string;
71
+ toStatus: string;
72
+ reason?: string;
73
+ actorId: string;
74
+ actorType: string;
75
+ timestamp: string;
76
+ }
77
+ export interface OrderPaymentProcessedEvent {
78
+ orderId: string;
79
+ paymentId: string;
80
+ transactionId?: string;
81
+ paymentMethod: string;
82
+ paymentProvider?: string;
83
+ amount: string;
84
+ currency: string;
85
+ status: string;
86
+ isSuccessful: boolean;
87
+ failureReason?: string;
88
+ }
89
+ export interface OrderShippedEvent {
90
+ orderId: string;
91
+ fulfillmentId: string;
92
+ trackingNumber?: string;
93
+ trackingUrl?: string;
94
+ shippingCarrier?: string;
95
+ shippingService?: string;
96
+ estimatedDeliveryDate?: string;
97
+ packedBy?: string;
98
+ shippedBy?: string;
99
+ }
100
+ export interface OrderDeliveredEvent {
101
+ orderId: string;
102
+ fulfillmentId: string;
103
+ deliveredAt: string;
104
+ deliveredBy?: string;
105
+ signedBy?: string;
106
+ deliveryLocation?: string;
107
+ proofOfDelivery?: Record<string, unknown>;
108
+ }
109
+ export interface OrderCancelledEvent {
110
+ orderId: string;
111
+ orderNumber: string;
112
+ storeId: string;
113
+ customerId?: string;
114
+ cancellationReason: string;
115
+ cancelledBy: string;
116
+ cancelledByType: string;
117
+ refundRequired: boolean;
118
+ refundAmount?: string;
119
+ inventoryReleased: boolean;
120
+ }
121
+ export interface OrderRefundedEvent {
122
+ orderId: string;
123
+ paymentId: string;
124
+ refundId: string;
125
+ refundAmount: string;
126
+ refundReason: string;
127
+ refundMethod: string;
128
+ isPartialRefund: boolean;
129
+ processedBy: string;
130
+ customerNotified: boolean;
131
+ }
132
+ export interface OrderNoteAddedEvent {
133
+ orderId: string;
134
+ noteId: string;
135
+ noteType: string;
136
+ content: string;
137
+ isCustomerVisible: boolean;
138
+ priority: string;
139
+ createdBy: string;
140
+ createdByName: string;
141
+ requiresFollowUp: boolean;
142
+ }
143
+ export interface OrderItemAddedEvent {
144
+ orderId: string;
145
+ itemId: string;
146
+ productId: string;
147
+ variantId?: string;
148
+ sku: string;
149
+ productTitle: string;
150
+ quantity: number;
151
+ unitPrice: string;
152
+ totalPrice: string;
153
+ addedBy: string;
154
+ }
155
+ export interface OrderItemRemovedEvent {
156
+ orderId: string;
157
+ itemId: string;
158
+ productId: string;
159
+ sku: string;
160
+ productTitle: string;
161
+ quantity: number;
162
+ removedBy: string;
163
+ removalReason?: string;
164
+ }
165
+ export interface OrderDiscountAppliedEvent {
166
+ orderId: string;
167
+ discountId: string;
168
+ discountCode?: string;
169
+ discountType: string;
170
+ discountAmount: string;
171
+ discountPercentage?: number;
172
+ appliedBy?: string;
173
+ campaignId?: string;
174
+ }
175
+ export type OrderServiceEvent = OrderCreatedEvent | OrderUpdatedEvent | OrderStatusChangedEvent | OrderPaymentProcessedEvent | OrderShippedEvent | OrderDeliveredEvent | OrderCancelledEvent | OrderRefundedEvent | OrderNoteAddedEvent | OrderItemAddedEvent | OrderItemRemovedEvent | OrderDiscountAppliedEvent;
176
+ export interface OrderEventHandler<T = OrderServiceEvent> {
177
+ handle(event: T): Promise<void>;
178
+ canHandle(eventType: string): boolean;
179
+ priority: number;
180
+ }
181
+ export interface OrderEventEmitter {
182
+ emit(eventType: string, data: OrderServiceEvent): Promise<void>;
183
+ on(eventType: string, handler: OrderEventHandler): void;
184
+ off(eventType: string, handler: OrderEventHandler): void;
185
+ removeAllListeners(): void;
186
+ }
187
+ export interface OrderCalculation {
188
+ subtotal: string;
189
+ taxAmount: string;
190
+ shippingAmount: string;
191
+ discountAmount: string;
192
+ totalAmount: string;
193
+ currency: string;
194
+ }
195
+ export interface OrderValidation {
196
+ isValid: boolean;
197
+ errors: string[];
198
+ warnings: string[];
199
+ }
200
+ export interface OrderInventoryCheck {
201
+ isAvailable: boolean;
202
+ unavailableItems: Array<{
203
+ productId: string;
204
+ variantId?: string;
205
+ requestedQuantity: number;
206
+ availableQuantity: number;
207
+ reason: string;
208
+ }>;
209
+ }
210
+ export interface OrderFraudCheck {
211
+ riskScore: number;
212
+ riskLevel: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
213
+ fraudIndicators: string[];
214
+ recommendation: "APPROVE" | "REVIEW" | "DECLINE";
215
+ requiresManualReview: boolean;
216
+ }
217
+ export interface OrderShippingCalculation {
218
+ rates: Array<{
219
+ carrier: string;
220
+ service: string;
221
+ cost: string;
222
+ estimatedDays: number;
223
+ estimatedDeliveryDate: string;
224
+ }>;
225
+ recommendedRate?: {
226
+ carrier: string;
227
+ service: string;
228
+ cost: string;
229
+ };
230
+ }
231
+ export interface OrderSplitRequest {
232
+ originalOrderId: string;
233
+ splitReason: string;
234
+ splits: Array<{
235
+ items: Array<{
236
+ orderItemId: string;
237
+ quantity: number;
238
+ }>;
239
+ shippingAddress?: Record<string, unknown>;
240
+ fulfillmentType?: string;
241
+ priority?: string;
242
+ }>;
243
+ }
244
+ export interface OrderMergeRequest {
245
+ orderIds: string[];
246
+ mergeReason: string;
247
+ newShippingAddress?: Record<string, unknown>;
248
+ newPaymentMethod?: string;
249
+ }
250
+ export interface OrderModificationRequest {
251
+ orderId: string;
252
+ modificationType: "ADD_ITEM" | "REMOVE_ITEM" | "UPDATE_QUANTITY" | "CHANGE_ADDRESS" | "CHANGE_PAYMENT";
253
+ modifications: Record<string, unknown>;
254
+ reason: string;
255
+ requestedBy: string;
256
+ }
257
+ export interface OrderEscalationRequest {
258
+ orderId: string;
259
+ escalationType: "PAYMENT_ISSUE" | "SHIPPING_DELAY" | "QUALITY_ISSUE" | "CUSTOMER_COMPLAINT" | "FRAUD_ALERT";
260
+ priority: "LOW" | "MEDIUM" | "HIGH" | "URGENT";
261
+ description: string;
262
+ assignedTo?: string;
263
+ department?: string;
264
+ }
265
+ export interface OrderMetrics {
266
+ totalOrders: number;
267
+ totalRevenue: string;
268
+ averageOrderValue: string;
269
+ ordersByStatus: Record<string, number>;
270
+ ordersByType: Record<string, number>;
271
+ ordersBySource: Record<string, number>;
272
+ conversionRate: number;
273
+ cancelationRate: number;
274
+ refundRate: number;
275
+ averageProcessingTime: number;
276
+ customerSatisfactionScore?: number;
277
+ }
278
+ export interface OrderReportFilter {
279
+ dateRange?: {
280
+ start: string;
281
+ end: string;
282
+ };
283
+ storeIds?: string[];
284
+ orderTypes?: string[];
285
+ orderSources?: string[];
286
+ customerTypes?: string[];
287
+ paymentMethods?: string[];
288
+ statuses?: string[];
289
+ minAmount?: number;
290
+ maxAmount?: number;
291
+ includeTestOrders?: boolean;
292
+ }
293
+ export interface MarketplaceOrderSync {
294
+ marketplacePlatform: string;
295
+ externalOrderId: string;
296
+ syncStatus: "PENDING" | "SUCCESS" | "FAILED";
297
+ lastSyncAt?: string;
298
+ syncErrors?: string[];
299
+ marketplaceData?: Record<string, unknown>;
300
+ }
301
+ export interface InventoryReservation {
302
+ orderId: string;
303
+ reservations: Array<{
304
+ productId: string;
305
+ variantId?: string;
306
+ quantity: number;
307
+ locationId: string;
308
+ reservedAt: string;
309
+ expiresAt: string;
310
+ }>;
311
+ }
312
+ export interface PaymentIntentRequest {
313
+ orderId: string;
314
+ amount: string;
315
+ currency: string;
316
+ paymentMethod: string;
317
+ customerInfo: Record<string, unknown>;
318
+ billingAddress: Record<string, unknown>;
319
+ metadata?: Record<string, unknown>;
320
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // Order Service Event Interfaces
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,162 @@
1
+ export interface AuditLogEntry {
2
+ eventType: "CREATE" | "UPDATE" | "DELETE" | "LOGIN" | "LOGOUT" | "ACCESS" | "PERMISSION_CHANGE" | "SYSTEM_ACTION" | "COMPLIANCE_ACTION" | "SECURITY_EVENT";
3
+ eventCategory: "USER_ACTION" | "SYSTEM_ACTION" | "ADMIN_ACTION" | "COMPLIANCE_ACTION" | "SECURITY_ACTION" | "DATA_ACTION" | "NOTIFICATION_ACTION";
4
+ action: string;
5
+ resource: string;
6
+ resourceId: string;
7
+ resourceType?: "STORE" | "USER" | "PRODUCT" | "ORDER" | "COMPLIANCE" | "POLICY" | "VIOLATION" | "APPEAL" | "NOTIFICATION" | "SYSTEM" | "OTHER";
8
+ performedBy: string;
9
+ performedByType: "USER" | "SYSTEM" | "ADMIN" | "SERVICE" | "AI" | "AUTOMATION" | "ANONYMOUS";
10
+ performedByName?: string;
11
+ sessionId?: string;
12
+ requestId?: string;
13
+ correlationId?: string;
14
+ ipAddress?: string;
15
+ userAgent?: string;
16
+ clientType?: "WEB" | "MOBILE_APP" | "API" | "ADMIN_PANEL" | "SYSTEM" | "WEBHOOK" | "CRON_JOB";
17
+ clientId?: string;
18
+ clientVersion?: string;
19
+ location?: {
20
+ country?: string;
21
+ region?: string;
22
+ city?: string;
23
+ coordinates?: {
24
+ lat: number;
25
+ lng: number;
26
+ };
27
+ timezone?: string;
28
+ };
29
+ changes?: {
30
+ before?: Record<string, unknown>;
31
+ after?: Record<string, unknown>;
32
+ fields?: string[];
33
+ };
34
+ metadata?: {
35
+ businessImpact?: string;
36
+ severity?: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
37
+ tags?: string[];
38
+ department?: string;
39
+ project?: string;
40
+ feature?: string;
41
+ version?: string;
42
+ environment?: "DEVELOPMENT" | "STAGING" | "PRODUCTION";
43
+ customFields?: Record<string, unknown>;
44
+ };
45
+ success?: boolean;
46
+ errorCode?: string;
47
+ errorMessage?: string;
48
+ stackTrace?: string;
49
+ duration?: number;
50
+ size?: number;
51
+ sensitiveData?: boolean;
52
+ piiInvolved?: boolean;
53
+ complianceRelevant?: boolean;
54
+ retentionPeriod?: number;
55
+ riskLevel?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
56
+ securityImpact?: "NONE" | "LOW" | "MEDIUM" | "HIGH" | "CRITICAL";
57
+ workflowId?: string;
58
+ workflowStep?: string;
59
+ parentEventId?: string;
60
+ storeId?: string;
61
+ storeName?: string;
62
+ storeSubdomain?: string;
63
+ }
64
+ export interface AuditContext {
65
+ serviceName: string;
66
+ serviceVersion?: string;
67
+ requestId?: string;
68
+ correlationId?: string;
69
+ sessionId?: string;
70
+ userId?: string;
71
+ userType?: "USER" | "ADMIN" | "SYSTEM" | "SERVICE";
72
+ ipAddress?: string;
73
+ userAgent?: string;
74
+ clientId?: string;
75
+ clientType?: "WEB" | "MOBILE_APP" | "API" | "ADMIN_PANEL" | "SYSTEM" | "WEBHOOK" | "CRON_JOB";
76
+ storeId?: string;
77
+ storeName?: string;
78
+ environment?: "DEVELOPMENT" | "STAGING" | "PRODUCTION";
79
+ features?: string[];
80
+ tags?: string[];
81
+ customMetadata?: Record<string, unknown>;
82
+ }
83
+ export interface PerformanceTracker {
84
+ start: number;
85
+ end(): number;
86
+ duration(): number;
87
+ }
88
+ export interface AuditLoggerConfig {
89
+ serviceName: string;
90
+ serviceVersion?: string;
91
+ environment?: "DEVELOPMENT" | "STAGING" | "PRODUCTION";
92
+ auditServiceUrl?: string;
93
+ auditServiceApiKey?: string;
94
+ enableLocalLogging?: boolean;
95
+ enableRemoteLogging?: boolean;
96
+ bufferSize?: number;
97
+ flushInterval?: number;
98
+ defaultRetentionDays?: number;
99
+ autoEnrichment?: boolean;
100
+ sensitiveFieldMasking?: boolean;
101
+ geoLocationEnabled?: boolean;
102
+ }
103
+ export interface QuickActionBuilders {
104
+ userLogin: (userId: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
105
+ userLogout: (userId: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
106
+ dataAccess: (resource: string, resourceId: string, userId: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
107
+ dataCreate: (resource: string, resourceId: string, userId: string, data?: unknown, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
108
+ dataUpdate: (resource: string, resourceId: string, userId: string, changes?: unknown, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
109
+ dataDelete: (resource: string, resourceId: string, userId: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
110
+ permissionChange: (targetUserId: string, changedBy: string, changes: unknown, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
111
+ securityEvent: (eventType: string, description: string, severity: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL", additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
112
+ complianceEvent: (framework: string, requirement: string, status: "MET" | "NOT_MET", additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
113
+ systemAction: (action: string, resource: string, resourceId: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
114
+ storeAction: (storeId: string, action: string, resource: string, resourceId: string, userId?: string, additionalData?: Partial<AuditLogEntry>) => AuditLogEntry;
115
+ }
116
+ export declare class AuditLogger {
117
+ private config;
118
+ private context;
119
+ private buffer;
120
+ private flushTimer;
121
+ private performanceTrackers;
122
+ constructor(config: AuditLoggerConfig, initialContext?: Partial<AuditContext>);
123
+ updateContext(contextUpdate: Partial<AuditContext>): void;
124
+ getContext(): AuditContext;
125
+ log(entry: Partial<AuditLogEntry>): Promise<string>;
126
+ startPerformanceTracking(operationId?: string): string;
127
+ endPerformanceTracking(operationId: string): number;
128
+ get quick(): QuickActionBuilders;
129
+ logUserLogin(userId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
130
+ logUserLogout(userId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
131
+ logDataAccess(resource: string, resourceId: string, userId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
132
+ logDataCreate(resource: string, resourceId: string, userId: string, data?: unknown, additionalData?: Partial<AuditLogEntry>): Promise<string>;
133
+ logDataUpdate(resource: string, resourceId: string, userId: string, changes?: unknown, additionalData?: Partial<AuditLogEntry>): Promise<string>;
134
+ logDataDelete(resource: string, resourceId: string, userId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
135
+ logSecurityEvent(eventType: string, description: string, severity: "LOW" | "MEDIUM" | "HIGH" | "CRITICAL", additionalData?: Partial<AuditLogEntry>): Promise<string>;
136
+ logStoreAction(storeId: string, action: string, resource: string, resourceId: string, userId?: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
137
+ auditedOperation<T>(operationName: string, operation: () => Promise<T>, auditData: Partial<AuditLogEntry>): Promise<{
138
+ result: T;
139
+ auditId: string;
140
+ duration: number;
141
+ }>;
142
+ logBatch(entries: Partial<AuditLogEntry>[]): Promise<string[]>;
143
+ flush(): Promise<void>;
144
+ private enrichEntry;
145
+ private addToBuffer;
146
+ private logLocally;
147
+ private getLogLevel;
148
+ private isCriticalEvent;
149
+ private sendToAuditService;
150
+ private maskSensitiveData;
151
+ private setupAutoFlush;
152
+ shutdown(): Promise<void>;
153
+ }
154
+ export declare function createAuditLogger(config: AuditLoggerConfig, initialContext?: Partial<AuditContext>): AuditLogger;
155
+ export declare function createAuditMiddleware(logger: AuditLogger): (req: any, _res: unknown, next: () => void) => void;
156
+ export declare function logAuditEvent(serviceName: string, entry: Partial<AuditLogEntry>, context?: Partial<AuditContext>): Promise<string>;
157
+ export declare function logStoreAuditEvent(serviceName: string, storeId: string, action: string, resource: string, resourceId: string, userId?: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
158
+ export declare function setDefaultAuditLogger(logger: AuditLogger): void;
159
+ export declare function getDefaultAuditLogger(): AuditLogger;
160
+ export declare function quickLog(entry: Partial<AuditLogEntry>): Promise<string>;
161
+ export declare function quickLogUserAction(action: string, resource: string, resourceId: string, userId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;
162
+ export declare function quickLogSystemAction(action: string, resource: string, resourceId: string, additionalData?: Partial<AuditLogEntry>): Promise<string>;