enterprise-logging-system 1.0.0 → 1.0.1

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.
@@ -1,8 +1,4 @@
1
1
  import { Request, Response, NextFunction } from 'express';
2
2
  import { LoggingService } from '../services/LoggingService';
3
- export declare function createLoggingMiddleware(loggingService: LoggingService): {
4
- apiLogger: (req: Request, res: Response, next: NextFunction) => void;
5
- sessionTracker: (req: Request, res: Response, next: NextFunction) => Promise<void>;
6
- changeLogger: (req: Request, res: Response, next: NextFunction) => Promise<void>;
7
- };
3
+ export declare function createLoggingMiddleware(loggingService: LoggingService): ((req: Request, res: Response, next: NextFunction) => void)[];
8
4
  //# sourceMappingURL=loggingMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/backend/middleware/loggingMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,cAAc;qBAGjD,OAAO,OAAO,QAAQ,QAAQ,YAAY;0BAoC/B,OAAO,OAAO,QAAQ,QAAQ,YAAY;wBA0B5C,OAAO,OAAO,QAAQ,QAAQ,YAAY;EAoDvE"}
1
+ {"version":3,"file":"loggingMiddleware.d.ts","sourceRoot":"","sources":["../../../src/backend/middleware/loggingMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA2H5D,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,cAAc,UAC5C,OAAO,OAAO,QAAQ,QAAQ,YAAY,aAgDnE"}
@@ -1,112 +1,155 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createLoggingMiddleware = createLoggingMiddleware;
4
+ // export function createLoggingMiddleware(loggingService: LoggingService) {
5
+ // return {
6
+ // // Log all API requests
7
+ // apiLogger: (req: Request, res: Response, next: NextFunction) => {
8
+ // const startTime = Date.now();
9
+ // res.on('finish', async () => {
10
+ // try {
11
+ // const duration = Date.now() - startTime;
12
+ // await loggingService.logAction({
13
+ // tenantId: req.headers['x-tenant-id'] as string,
14
+ // userId: req.headers['x-user-id'] as string || 'anonymous',
15
+ // userRole: req.headers['x-user-role'] as string || 'guest',
16
+ // sessionId: req.headers['x-session-id'] as string || '',
17
+ // ipAddress: req.ip || '',
18
+ // userAgent: req.headers['user-agent'] || '',
19
+ // activityType: 'API_CALL',
20
+ // activityName: `${req.method} ${req.path}`,
21
+ // actionType: 'HTTP_REQUEST',
22
+ // actionTarget: req.path,
23
+ // actionData: {
24
+ // method: req.method,
25
+ // path: req.path,
26
+ // statusCode: res.statusCode,
27
+ // duration,
28
+ // query: req.query,
29
+ // params: req.params
30
+ // }
31
+ // });
32
+ // } catch (error) {
33
+ // console.error('Failed to log API request:', error);
34
+ // }
35
+ // });
36
+ // next();
37
+ // },
38
+ // // Auto-start session for authenticated requests
39
+ // sessionTracker: async (req: Request, res: Response, next: NextFunction) => {
40
+ // const sessionId = req.headers['x-session-id'] as string;
41
+ // const userId = req.headers['x-user-id'] as string;
42
+ // if (userId && sessionId && !req.headers['x-session-logged']) {
43
+ // try {
44
+ // await loggingService.startSession({
45
+ // tenantId: req.headers['x-tenant-id'] as string,
46
+ // userId,
47
+ // userRole: req.headers['x-user-role'] as string || 'user',
48
+ // sessionId,
49
+ // ipAddress: req.ip || '',
50
+ // userAgent: req.headers['user-agent'] || ''
51
+ // });
52
+ // // Mark as logged to prevent duplicate session starts
53
+ // req.headers['x-session-logged'] = 'true';
54
+ // } catch (error) {
55
+ // console.error('Failed to start session:', error);
56
+ // }
57
+ // }
58
+ // next();
59
+ // },
60
+ // // Track changes in request body
61
+ // changeLogger: async (req: Request, res: Response, next: NextFunction) => {
62
+ // const originalSend = res.send;
63
+ // res.send = function(body) {
64
+ // // Only log successful POST, PUT, PATCH, DELETE requests
65
+ // if ([200, 201].includes(res.statusCode) &&
66
+ // ['POST', 'PUT', 'PATCH', 'DELETE'].includes(req.method)) {
67
+ // // Parse the response to get entity information
68
+ // try {
69
+ // const response = typeof body === 'string' ? JSON.parse(body) : body;
70
+ // if (response.data?.id || response.data?._id) {
71
+ // // Extract entity info from request
72
+ // const entityMatch = req.path.match(/\/([^\/]+)\/?$/);
73
+ // const entityType = entityMatch ? entityMatch[1] : 'unknown';
74
+ // // In a real implementation, you would compare old vs new values
75
+ // // This is a simplified version
76
+ // setTimeout(async () => {
77
+ // try {
78
+ // await loggingService.logChange({
79
+ // tenantId: req.headers['x-tenant-id'] as string,
80
+ // userId: req.headers['x-user-id'] as string || 'system',
81
+ // userRole: req.headers['x-user-role'] as string || 'system',
82
+ // sessionId: req.headers['x-session-id'] as string || '',
83
+ // ipAddress: req.ip || '',
84
+ // userAgent: req.headers['user-agent'] || '',
85
+ // entityType,
86
+ // entityId: response.data.id || response.data._id,
87
+ // type: req.method === 'POST' ? 'CREATE' :
88
+ // req.method === 'DELETE' ? 'DELETE' : 'UPDATE',
89
+ // changes: [], // In real impl, populate with field changes
90
+ // status: 'SUCCESS',
91
+ // reason: req.headers['x-change-reason'] as string
92
+ // });
93
+ // } catch (error) {
94
+ // console.error('Failed to log change:', error);
95
+ // }
96
+ // }, 0);
97
+ // }
98
+ // } catch (error) {
99
+ // console.error('Failed to parse response for change logging:', error);
100
+ // }
101
+ // }
102
+ // return originalSend.call(this, body);
103
+ // };
104
+ // next();
105
+ // }
106
+ // };
107
+ // }
108
+ // loggingMiddleware.ts
4
109
  function createLoggingMiddleware(loggingService) {
5
- return {
6
- // Log all API requests
7
- apiLogger: (req, res, next) => {
8
- const startTime = Date.now();
9
- res.on('finish', async () => {
10
- try {
11
- const duration = Date.now() - startTime;
12
- await loggingService.logAction({
13
- tenantId: req.headers['x-tenant-id'],
14
- userId: req.headers['x-user-id'] || 'anonymous',
15
- userRole: req.headers['x-user-role'] || 'guest',
16
- sessionId: req.headers['x-session-id'] || '',
17
- ipAddress: req.ip || '',
18
- userAgent: req.headers['user-agent'] || '',
19
- activityType: 'API_CALL',
20
- activityName: `${req.method} ${req.path}`,
21
- actionType: 'HTTP_REQUEST',
22
- actionTarget: req.path,
23
- actionData: {
24
- method: req.method,
25
- path: req.path,
26
- statusCode: res.statusCode,
27
- duration,
28
- query: req.query,
29
- params: req.params
30
- }
31
- });
32
- }
33
- catch (error) {
34
- console.error('Failed to log API request:', error);
35
- }
36
- });
37
- next();
38
- },
39
- // Auto-start session for authenticated requests
40
- sessionTracker: async (req, res, next) => {
41
- const sessionId = req.headers['x-session-id'];
42
- const userId = req.headers['x-user-id'];
43
- if (userId && sessionId && !req.headers['x-session-logged']) {
44
- try {
45
- await loggingService.startSession({
46
- tenantId: req.headers['x-tenant-id'],
47
- userId,
48
- userRole: req.headers['x-user-role'] || 'user',
49
- sessionId,
50
- ipAddress: req.ip || '',
51
- userAgent: req.headers['user-agent'] || ''
52
- });
53
- // Mark as logged to prevent duplicate session starts
54
- req.headers['x-session-logged'] = 'true';
55
- }
56
- catch (error) {
57
- console.error('Failed to start session:', error);
58
- }
59
- }
60
- next();
61
- },
62
- // Track changes in request body
63
- changeLogger: async (req, res, next) => {
64
- const originalSend = res.send;
65
- res.send = function (body) {
66
- // Only log successful POST, PUT, PATCH, DELETE requests
67
- if ([200, 201].includes(res.statusCode) &&
68
- ['POST', 'PUT', 'PATCH', 'DELETE'].includes(req.method)) {
69
- // Parse the response to get entity information
70
- try {
71
- const response = typeof body === 'string' ? JSON.parse(body) : body;
72
- if (response.data?.id || response.data?._id) {
73
- // Extract entity info from request
74
- const entityMatch = req.path.match(/\/([^\/]+)\/?$/);
75
- const entityType = entityMatch ? entityMatch[1] : 'unknown';
76
- // In a real implementation, you would compare old vs new values
77
- // This is a simplified version
78
- setTimeout(async () => {
79
- try {
80
- await loggingService.logChange({
81
- tenantId: req.headers['x-tenant-id'],
82
- userId: req.headers['x-user-id'] || 'system',
83
- userRole: req.headers['x-user-role'] || 'system',
84
- sessionId: req.headers['x-session-id'] || '',
85
- ipAddress: req.ip || '',
86
- userAgent: req.headers['user-agent'] || '',
87
- entityType,
88
- entityId: response.data.id || response.data._id,
89
- type: req.method === 'POST' ? 'CREATE' :
90
- req.method === 'DELETE' ? 'DELETE' : 'UPDATE',
91
- changes: [], // In real impl, populate with field changes
92
- status: 'SUCCESS',
93
- reason: req.headers['x-change-reason']
94
- });
95
- }
96
- catch (error) {
97
- console.error('Failed to log change:', error);
98
- }
99
- }, 0);
100
- }
101
- }
102
- catch (error) {
103
- console.error('Failed to parse response for change logging:', error);
110
+ const apiLogger = (req, res, next) => {
111
+ const startTime = Date.now();
112
+ res.on('finish', async () => {
113
+ try {
114
+ await loggingService.logAction({
115
+ tenantId: req.headers['x-tenant-id'],
116
+ userId: req.headers['x-user-id'] || 'anonymous',
117
+ userRole: req.headers['x-user-role'] || 'guest',
118
+ sessionId: req.headers['x-session-id'] || '',
119
+ ipAddress: req.ip || '',
120
+ userAgent: req.headers['user-agent'] || '',
121
+ activityType: 'API_CALL',
122
+ activityName: `${req.method} ${req.path}`,
123
+ actionType: 'HTTP_REQUEST',
124
+ actionTarget: req.path,
125
+ actionData: {
126
+ statusCode: res.statusCode,
127
+ duration: Date.now() - startTime
104
128
  }
105
- }
106
- return originalSend.call(this, body);
107
- };
108
- next();
129
+ });
130
+ }
131
+ catch { }
132
+ });
133
+ next();
134
+ };
135
+ const sessionTracker = async (req, _, next) => {
136
+ const userId = req.headers['x-user-id'];
137
+ const sessionId = req.headers['x-session-id'];
138
+ if (userId && sessionId) {
139
+ try {
140
+ await loggingService.startSession({
141
+ tenantId: req.headers['x-tenant-id'],
142
+ userId,
143
+ userRole: req.headers['x-user-role'] || 'user',
144
+ sessionId,
145
+ ipAddress: req.ip || '',
146
+ userAgent: req.headers['user-agent'] || ''
147
+ });
148
+ }
149
+ catch { }
109
150
  }
151
+ next();
110
152
  };
153
+ return [sessionTracker, apiLogger];
111
154
  }
112
155
  //# sourceMappingURL=loggingMiddleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loggingMiddleware.js","sourceRoot":"","sources":["../../../src/backend/middleware/loggingMiddleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loggingMiddleware.js","sourceRoot":"","sources":["../../../src/backend/middleware/loggingMiddleware.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,14 +2,15 @@ export * from './backend/services/LoggingService';
2
2
  export * from './backend/repositories';
3
3
  export * from './backend/models';
4
4
  export * from './shared/types';
5
+ export * from './backend/controllers/LogController';
6
+ export * from './backend/middleware/loggingMiddleware';
7
+ export * from './backend/config/database';
8
+ export * from './backend/utils/Logger';
5
9
  export * from './frontend';
10
+ export * from '../src/backend/config/logging.config';
6
11
  export declare function setupLoggingSystem(db: any): Promise<{
7
12
  loggingService: import("./backend/services/LoggingService").LoggingService;
8
13
  logController: import("./backend/controllers/LogController").LogController;
9
- loggingMiddleware: {
10
- apiLogger: (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => void;
11
- sessionTracker: (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => Promise<void>;
12
- changeLogger: (req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => Promise<void>;
13
- };
14
+ loggingMiddleware: ((req: import("express").Request, res: import("express").Response, next: import("express").NextFunction) => void)[];
14
15
  }>;
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,GAAG;;;;;;;;GAuC/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,mCAAmC,CAAC;AAClD,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,YAAY,CAAC;AAG3B,cAAc,sCAAsC,CAAC;AAGrD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,GAAG;;;;GAuC/C"}
package/dist/index.js CHANGED
@@ -37,12 +37,20 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.setupLoggingSystem = setupLoggingSystem;
40
+ // src/index.ts
41
+ // Backend exports
40
42
  __exportStar(require("./backend/services/LoggingService"), exports);
41
43
  __exportStar(require("./backend/repositories"), exports);
42
44
  __exportStar(require("./backend/models"), exports);
43
45
  __exportStar(require("./shared/types"), exports);
46
+ __exportStar(require("./backend/controllers/LogController"), exports);
47
+ __exportStar(require("./backend/middleware/loggingMiddleware"), exports);
48
+ __exportStar(require("./backend/config/database"), exports); // Export DatabaseClient
49
+ __exportStar(require("./backend/utils/Logger"), exports);
44
50
  // Frontend exports
45
51
  __exportStar(require("./frontend"), exports);
52
+ // Configuration exports
53
+ __exportStar(require("../src/backend/config/logging.config"), exports);
46
54
  // Setup function for backend
47
55
  async function setupLoggingSystem(db) {
48
56
  const { AccessLogRepository, SessionLogRepository, ChangeLogRepository, ExportLogRepository } = await Promise.resolve().then(() => __importStar(require('./backend/repositories')));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,gDAuCC;AAhDD,oEAAkD;AAClD,yDAAuC;AACvC,mDAAiC;AACjC,iDAA+B;AAE/B,mBAAmB;AACnB,6CAA2B;AAE3B,6BAA6B;AACtB,KAAK,UAAU,kBAAkB,CAAC,EAAO;IAC9C,MAAM,EACJ,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,GAAG,wDAAa,wBAAwB,GAAC,CAAC;IAE3C,MAAM,KAAK,GAAG;QACZ,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC1C,cAAc,EAAE,IAAI,oBAAoB,CAAC,EAAE,CAAC;QAC5C,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC1C,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;KAC3C,CAAC;IAEF,8BAA8B;IAC9B,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;QAChC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE;QACjC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;QAChC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;KACjC,CAAC,CAAC;IAEH,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,mCAAmC,GAAC,CAAC;IAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;IAC9E,MAAM,EAAE,uBAAuB,EAAE,GAAG,wDAAa,wCAAwC,GAAC,CAAC;IAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACpB,CAAC;IAEF,OAAO;QACL,cAAc;QACd,aAAa,EAAE,IAAI,aAAa,CAAC,cAAc,CAAC;QAChD,iBAAiB,EAAE,uBAAuB,CAAC,cAAc,CAAC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,gDAuCC;AAzDD,eAAe;AACf,kBAAkB;AAClB,oEAAkD;AAClD,yDAAuC;AACvC,mDAAiC;AACjC,iDAA+B;AAC/B,sEAAoD;AACpD,yEAAuD;AACvD,4DAA0C,CAAC,wBAAwB;AACnE,yDAAuC;AAEvC,mBAAmB;AACnB,6CAA2B;AAE3B,wBAAwB;AACxB,uEAAqD;AAErD,6BAA6B;AACtB,KAAK,UAAU,kBAAkB,CAAC,EAAO;IAC9C,MAAM,EACJ,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACpB,GAAG,wDAAa,wBAAwB,GAAC,CAAC;IAE3C,MAAM,KAAK,GAAG;QACZ,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC1C,cAAc,EAAE,IAAI,oBAAoB,CAAC,EAAE,CAAC;QAC5C,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC1C,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;KAC3C,CAAC;IAEF,8BAA8B;IAC9B,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;QAChC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE;QACjC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;QAChC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;KACjC,CAAC,CAAC;IAEH,MAAM,EAAE,cAAc,EAAE,GAAG,wDAAa,mCAAmC,GAAC,CAAC;IAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,wDAAa,qCAAqC,GAAC,CAAC;IAC9E,MAAM,EAAE,uBAAuB,EAAE,GAAG,wDAAa,wCAAwC,GAAC,CAAC;IAE3F,MAAM,cAAc,GAAG,IAAI,cAAc,CACvC,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,cAAc,EACpB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,aAAa,CACpB,CAAC;IAEF,OAAO;QACL,cAAc;QACd,aAAa,EAAE,IAAI,aAAa,CAAC,cAAc,CAAC;QAChD,iBAAiB,EAAE,uBAAuB,CAAC,cAAc,CAAC;KAC3D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "enterprise-logging-system",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Enterprise logging system with idle time tracking for MongoDB/DocumentDB",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=exports.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exports.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const pkg = __importStar(require("../index"));
37
- describe('package exports', () => {
38
- it('exports expected symbols', () => {
39
- expect(pkg).toBeTruthy();
40
- // Backend
41
- expect(typeof pkg.setupLoggingSystem).toBe('function');
42
- expect(typeof pkg.LoggingService).toBe('function');
43
- // Frontend (should be importable; not instantiating in Node test env)
44
- expect(typeof pkg.ActivityMonitor).toBe('function');
45
- expect(typeof pkg.IdleTracker).toBe('function');
46
- });
47
- });
48
- //# sourceMappingURL=exports.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"exports.test.js","sourceRoot":"","sources":["../../src/__tests__/exports.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAgC;AAEhC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;QAEzB,UAAU;QACV,MAAM,CAAC,OAAQ,GAAW,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,MAAM,CAAC,OAAQ,GAAW,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5D,sEAAsE;QACtE,MAAM,CAAC,OAAQ,GAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,CAAC,OAAQ,GAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}