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.
- package/dist/backend/middleware/loggingMiddleware.d.ts +1 -5
- package/dist/backend/middleware/loggingMiddleware.d.ts.map +1 -1
- package/dist/backend/middleware/loggingMiddleware.js +146 -103
- package/dist/backend/middleware/loggingMiddleware.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/exports.test.d.ts +0 -2
- package/dist/__tests__/exports.test.d.ts.map +0 -1
- package/dist/__tests__/exports.test.js +0 -48
- package/dist/__tests__/exports.test.js.map +0 -1
|
@@ -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;
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
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":";;
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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 +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"}
|