@hkdigital/lib-sveltekit 0.1.70 → 0.1.72
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/classes/cache/IndexedDbCache.d.ts +212 -0
- package/dist/classes/cache/IndexedDbCache.js +673 -0
- package/dist/classes/cache/MemoryResponseCache.d.ts +101 -14
- package/dist/classes/cache/MemoryResponseCache.js +97 -12
- package/dist/classes/cache/index.d.ts +1 -1
- package/dist/classes/cache/index.js +2 -1
- package/dist/classes/events/EventEmitter.d.ts +142 -0
- package/dist/classes/events/EventEmitter.js +275 -0
- package/dist/classes/events/index.d.ts +1 -0
- package/dist/classes/events/index.js +2 -0
- package/dist/classes/logging/Logger.d.ts +74 -0
- package/dist/classes/logging/Logger.js +158 -0
- package/dist/classes/logging/constants.d.ts +14 -0
- package/dist/classes/logging/constants.js +18 -0
- package/dist/classes/logging/index.d.ts +2 -0
- package/dist/classes/logging/index.js +4 -0
- package/dist/classes/services/ServiceBase.d.ts +153 -0
- package/dist/classes/services/ServiceBase.js +409 -0
- package/dist/classes/services/ServiceManager.d.ts +350 -0
- package/dist/classes/services/ServiceManager.js +1114 -0
- package/dist/classes/services/constants.d.ts +11 -0
- package/dist/classes/services/constants.js +12 -0
- package/dist/classes/services/index.d.ts +3 -0
- package/dist/classes/services/index.js +5 -0
- package/dist/util/env/index.d.ts +1 -0
- package/dist/util/env/index.js +9 -0
- package/dist/util/http/caching.js +24 -12
- package/dist/util/http/http-request.js +12 -7
- package/package.json +2 -1
- package/dist/classes/cache/PersistentResponseCache.d.ts +0 -46
- /package/dist/classes/cache/{PersistentResponseCache.js → PersistentResponseCache.js__} +0 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
/**
|
2
|
+
* Logger class for consistent logging across services
|
3
|
+
* @extends EventEmitter
|
4
|
+
*/
|
5
|
+
export default class Logger extends EventEmitter {
|
6
|
+
/**
|
7
|
+
* Create a new Logger instance
|
8
|
+
*
|
9
|
+
* @param {string} name - Name of the service/component for this logger
|
10
|
+
* @param {string} [defaultLevel=INFO] - Initial log level threshold
|
11
|
+
*/
|
12
|
+
constructor(name: string, defaultLevel?: string);
|
13
|
+
name: string;
|
14
|
+
level: string;
|
15
|
+
/**
|
16
|
+
* Set the minimum log level threshold
|
17
|
+
*
|
18
|
+
* @param {string} level - New log level (DEBUG, INFO, WARN, ERROR, FATAL,
|
19
|
+
* or NONE)
|
20
|
+
* @returns {boolean} True if level was valid and set, false otherwise
|
21
|
+
*/
|
22
|
+
setLevel(level: string): boolean;
|
23
|
+
/**
|
24
|
+
* Internal logging method
|
25
|
+
*
|
26
|
+
* @param {string} level - Log level
|
27
|
+
* @param {string} message - Log message
|
28
|
+
* @param {*} [details] - Additional details to include in the log
|
29
|
+
* @returns {boolean} True if the log was emitted, false if filtered
|
30
|
+
* @private
|
31
|
+
*/
|
32
|
+
private _log;
|
33
|
+
/**
|
34
|
+
* Log a debug message
|
35
|
+
*
|
36
|
+
* @param {string} message - Log message
|
37
|
+
* @param {*} [details] - Additional details
|
38
|
+
* @returns {boolean} True if the log was emitted
|
39
|
+
*/
|
40
|
+
debug(message: string, details?: any): boolean;
|
41
|
+
/**
|
42
|
+
* Log an info message
|
43
|
+
*
|
44
|
+
* @param {string} message - Log message
|
45
|
+
* @param {*} [details] - Additional details
|
46
|
+
* @returns {boolean} True if the log was emitted
|
47
|
+
*/
|
48
|
+
info(message: string, details?: any): boolean;
|
49
|
+
/**
|
50
|
+
* Log a warning message
|
51
|
+
*
|
52
|
+
* @param {string} message - Log message
|
53
|
+
* @param {*} [details] - Additional details
|
54
|
+
* @returns {boolean} True if the log was emitted
|
55
|
+
*/
|
56
|
+
warn(message: string, details?: any): boolean;
|
57
|
+
/**
|
58
|
+
* Log an error message
|
59
|
+
*
|
60
|
+
* @param {string} message - Log message
|
61
|
+
* @param {*} [details] - Additional details
|
62
|
+
* @returns {boolean} True if the log was emitted
|
63
|
+
*/
|
64
|
+
error(message: string, details?: any): boolean;
|
65
|
+
/**
|
66
|
+
* Log a fatal error message
|
67
|
+
*
|
68
|
+
* @param {string} message - Log message
|
69
|
+
* @param {*} [details] - Additional details
|
70
|
+
* @returns {boolean} True if the log was emitted
|
71
|
+
*/
|
72
|
+
fatal(message: string, details?: any): boolean;
|
73
|
+
}
|
74
|
+
import { EventEmitter } from '../events';
|
@@ -0,0 +1,158 @@
|
|
1
|
+
/**
|
2
|
+
* @fileoverview Logger implementation based on EventEmitter e.g.
|
3
|
+
* for service logging.
|
4
|
+
*
|
5
|
+
* This Logger provides consistent log level filtering and event-based
|
6
|
+
* distribution of log messages. It integrates with the service architecture
|
7
|
+
* to provide controlled, consistent logging across all services.
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* // Basic usage
|
11
|
+
* import { Logger, INFO, DEBUG } from './Logger.js';
|
12
|
+
*
|
13
|
+
* const logger = new Logger('myService', INFO);
|
14
|
+
*
|
15
|
+
* // Log at different levels
|
16
|
+
* logger.debug('Detailed information', { value: 42 }); // Filtered out at INFO
|
17
|
+
* logger.info('Operation completed', { items: 27 }); // Will be logged
|
18
|
+
* logger.warn('Unusual condition detected'); // Will be logged
|
19
|
+
*
|
20
|
+
* // Listen to log events
|
21
|
+
* logger.on('log', (logEvent) => {
|
22
|
+
* // Process all log events
|
23
|
+
* saveToLogFile(logEvent);
|
24
|
+
* });
|
25
|
+
*
|
26
|
+
* logger.on(ERROR, (logEvent) => {
|
27
|
+
* // Process only error events
|
28
|
+
* sendAlertEmail(logEvent);
|
29
|
+
* });
|
30
|
+
*
|
31
|
+
* // Change log level at runtime
|
32
|
+
* logger.setLevel(DEBUG); // Now debug messages will also be logged
|
33
|
+
*/
|
34
|
+
|
35
|
+
import { EventEmitter } from '../events';
|
36
|
+
|
37
|
+
import { DEBUG, INFO, WARN, ERROR, FATAL, NONE, LEVELS } from './constants.js';
|
38
|
+
|
39
|
+
/**
|
40
|
+
* Logger class for consistent logging across services
|
41
|
+
* @extends EventEmitter
|
42
|
+
*/
|
43
|
+
export default class Logger extends EventEmitter {
|
44
|
+
/**
|
45
|
+
* Create a new Logger instance
|
46
|
+
*
|
47
|
+
* @param {string} name - Name of the service/component for this logger
|
48
|
+
* @param {string} [defaultLevel=INFO] - Initial log level threshold
|
49
|
+
*/
|
50
|
+
constructor(name, defaultLevel = INFO) {
|
51
|
+
super();
|
52
|
+
this.name = name;
|
53
|
+
this.level = defaultLevel;
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Set the minimum log level threshold
|
58
|
+
*
|
59
|
+
* @param {string} level - New log level (DEBUG, INFO, WARN, ERROR, FATAL,
|
60
|
+
* or NONE)
|
61
|
+
* @returns {boolean} True if level was valid and set, false otherwise
|
62
|
+
*/
|
63
|
+
setLevel(level) {
|
64
|
+
if (LEVELS[level] !== undefined) {
|
65
|
+
this.level = level;
|
66
|
+
return true;
|
67
|
+
}
|
68
|
+
|
69
|
+
console.warn(`Invalid log level: ${level}`);
|
70
|
+
return false;
|
71
|
+
}
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Internal logging method
|
75
|
+
*
|
76
|
+
* @param {string} level - Log level
|
77
|
+
* @param {string} message - Log message
|
78
|
+
* @param {*} [details] - Additional details to include in the log
|
79
|
+
* @returns {boolean} True if the log was emitted, false if filtered
|
80
|
+
* @private
|
81
|
+
*/
|
82
|
+
_log(level, message, details) {
|
83
|
+
// Check if this log level should be filtered
|
84
|
+
if (LEVELS[level] < LEVELS[this.level]) {
|
85
|
+
return false; // Below threshold, don't emit
|
86
|
+
}
|
87
|
+
|
88
|
+
const timestamp = new Date();
|
89
|
+
const logEvent = {
|
90
|
+
timestamp,
|
91
|
+
service: this.name,
|
92
|
+
level,
|
93
|
+
message,
|
94
|
+
details
|
95
|
+
};
|
96
|
+
|
97
|
+
// Emit as both specific level event and generic 'log' event
|
98
|
+
this.emit(level, logEvent);
|
99
|
+
this.emit('log', logEvent);
|
100
|
+
|
101
|
+
return true;
|
102
|
+
}
|
103
|
+
|
104
|
+
/**
|
105
|
+
* Log a debug message
|
106
|
+
*
|
107
|
+
* @param {string} message - Log message
|
108
|
+
* @param {*} [details] - Additional details
|
109
|
+
* @returns {boolean} True if the log was emitted
|
110
|
+
*/
|
111
|
+
debug(message, details) {
|
112
|
+
return this._log(DEBUG, message, details);
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Log an info message
|
117
|
+
*
|
118
|
+
* @param {string} message - Log message
|
119
|
+
* @param {*} [details] - Additional details
|
120
|
+
* @returns {boolean} True if the log was emitted
|
121
|
+
*/
|
122
|
+
info(message, details) {
|
123
|
+
return this._log(INFO, message, details);
|
124
|
+
}
|
125
|
+
|
126
|
+
/**
|
127
|
+
* Log a warning message
|
128
|
+
*
|
129
|
+
* @param {string} message - Log message
|
130
|
+
* @param {*} [details] - Additional details
|
131
|
+
* @returns {boolean} True if the log was emitted
|
132
|
+
*/
|
133
|
+
warn(message, details) {
|
134
|
+
return this._log(WARN, message, details);
|
135
|
+
}
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Log an error message
|
139
|
+
*
|
140
|
+
* @param {string} message - Log message
|
141
|
+
* @param {*} [details] - Additional details
|
142
|
+
* @returns {boolean} True if the log was emitted
|
143
|
+
*/
|
144
|
+
error(message, details) {
|
145
|
+
return this._log(ERROR, message, details);
|
146
|
+
}
|
147
|
+
|
148
|
+
/**
|
149
|
+
* Log a fatal error message
|
150
|
+
*
|
151
|
+
* @param {string} message - Log message
|
152
|
+
* @param {*} [details] - Additional details
|
153
|
+
* @returns {boolean} True if the log was emitted
|
154
|
+
*/
|
155
|
+
fatal(message, details) {
|
156
|
+
return this._log(FATAL, message, details);
|
157
|
+
}
|
158
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
export const DEBUG: "debug";
|
2
|
+
export const INFO: "info";
|
3
|
+
export const WARN: "warn";
|
4
|
+
export const ERROR: "error";
|
5
|
+
export const FATAL: "fatal";
|
6
|
+
export const NONE: "none";
|
7
|
+
export namespace LEVELS {
|
8
|
+
let debug: number;
|
9
|
+
let info: number;
|
10
|
+
let warn: number;
|
11
|
+
let error: number;
|
12
|
+
let fatal: number;
|
13
|
+
let none: number;
|
14
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
// Log level names
|
3
|
+
export const DEBUG = 'debug';
|
4
|
+
export const INFO = 'info';
|
5
|
+
export const WARN = 'warn';
|
6
|
+
export const ERROR = 'error';
|
7
|
+
export const FATAL = 'fatal';
|
8
|
+
export const NONE = 'none';
|
9
|
+
|
10
|
+
// Level values for filtering (higher = more important)
|
11
|
+
export const LEVELS = {
|
12
|
+
[DEBUG]: 1,
|
13
|
+
[INFO]: 2,
|
14
|
+
[WARN]: 3,
|
15
|
+
[ERROR]: 4,
|
16
|
+
[FATAL]: 5,
|
17
|
+
[NONE]: 6
|
18
|
+
};
|
@@ -0,0 +1,153 @@
|
|
1
|
+
/**
|
2
|
+
* Base class for all services
|
3
|
+
*/
|
4
|
+
export default class ServiceBase {
|
5
|
+
/**
|
6
|
+
* Create a new service
|
7
|
+
*
|
8
|
+
* @param {string} name - Service name
|
9
|
+
* @param {Object} [options] - Service options
|
10
|
+
* @param {string} [options.logLevel=INFO] - Initial log level
|
11
|
+
*/
|
12
|
+
constructor(name: string, options?: {
|
13
|
+
logLevel?: string;
|
14
|
+
});
|
15
|
+
/**
|
16
|
+
* Service name
|
17
|
+
* @type {string}
|
18
|
+
*/
|
19
|
+
name: string;
|
20
|
+
/**
|
21
|
+
* Event emitter for service events
|
22
|
+
* @type {EventEmitter}
|
23
|
+
*/
|
24
|
+
events: EventEmitter;
|
25
|
+
/**
|
26
|
+
* Current service state
|
27
|
+
* @type {string}
|
28
|
+
*/
|
29
|
+
state: string;
|
30
|
+
/**
|
31
|
+
* Last error that occurred
|
32
|
+
* @type {Error|null}
|
33
|
+
*/
|
34
|
+
error: Error | null;
|
35
|
+
/**
|
36
|
+
* Last stable state before error
|
37
|
+
* @type {string|null}
|
38
|
+
* @private
|
39
|
+
*/
|
40
|
+
private _preErrorState;
|
41
|
+
/**
|
42
|
+
* Service logger
|
43
|
+
* @type {Logger}
|
44
|
+
*/
|
45
|
+
logger: Logger;
|
46
|
+
/**
|
47
|
+
* Set the service log level
|
48
|
+
*
|
49
|
+
* @param {string} level - New log level
|
50
|
+
* @returns {boolean} True if level was set, false if invalid
|
51
|
+
*/
|
52
|
+
setLogLevel(level: string): boolean;
|
53
|
+
/**
|
54
|
+
* Initialize the service
|
55
|
+
*
|
56
|
+
* @param {Object} [config] - Service configuration
|
57
|
+
* @returns {Promise<boolean>} True if initialized successfully
|
58
|
+
*/
|
59
|
+
initialize(config?: any): Promise<boolean>;
|
60
|
+
/**
|
61
|
+
* Start the service
|
62
|
+
*
|
63
|
+
* @returns {Promise<boolean>} True if started successfully
|
64
|
+
*/
|
65
|
+
start(): Promise<boolean>;
|
66
|
+
/**
|
67
|
+
* Stop the service
|
68
|
+
*
|
69
|
+
* @returns {Promise<boolean>} True if stopped successfully
|
70
|
+
*/
|
71
|
+
stop(): Promise<boolean>;
|
72
|
+
/**
|
73
|
+
* Recover the service
|
74
|
+
*
|
75
|
+
* @returns {Promise<boolean>} True if stopped successfully
|
76
|
+
*/
|
77
|
+
recover(): Promise<boolean>;
|
78
|
+
/**
|
79
|
+
* Destroy the service
|
80
|
+
*
|
81
|
+
* @returns {Promise<boolean>} True if destroyed successfully
|
82
|
+
*/
|
83
|
+
destroy(): Promise<boolean>;
|
84
|
+
/**
|
85
|
+
* Add an event listener
|
86
|
+
*
|
87
|
+
* @param {string} eventName - Event name
|
88
|
+
* @param {Function} handler - Event handler
|
89
|
+
* @returns {Function} Unsubscribe function
|
90
|
+
*/
|
91
|
+
on(eventName: string, handler: Function): Function;
|
92
|
+
/**
|
93
|
+
* Emit an event
|
94
|
+
*
|
95
|
+
* @param {string} eventName - Event name
|
96
|
+
* @param {*} data - Event data
|
97
|
+
* @returns {boolean} True if event had listeners
|
98
|
+
*/
|
99
|
+
emit(eventName: string, data: any): boolean;
|
100
|
+
/**
|
101
|
+
* Initialize the service (to be overridden)
|
102
|
+
*
|
103
|
+
* @protected
|
104
|
+
* @param {Object} config - Service configuration
|
105
|
+
* @returns {Promise<void>}
|
106
|
+
*/
|
107
|
+
protected _init(config: any): Promise<void>;
|
108
|
+
/**
|
109
|
+
* Start the service (to be overridden)
|
110
|
+
*
|
111
|
+
* @protected
|
112
|
+
* @returns {Promise<void>}
|
113
|
+
*/
|
114
|
+
protected _start(): Promise<void>;
|
115
|
+
/**
|
116
|
+
* Stop the service (to be overridden)
|
117
|
+
*
|
118
|
+
* @protected
|
119
|
+
* @returns {Promise<void>}
|
120
|
+
*/
|
121
|
+
protected _stop(): Promise<void>;
|
122
|
+
/**
|
123
|
+
* Destroy the service (to be overridden)
|
124
|
+
*
|
125
|
+
* @protected
|
126
|
+
* @returns {Promise<void>}
|
127
|
+
*/
|
128
|
+
protected _destroy(): Promise<void>;
|
129
|
+
/**
|
130
|
+
* Recover the service from an error (to be overridden)
|
131
|
+
*
|
132
|
+
* @protected
|
133
|
+
* @returns {Promise<void>}
|
134
|
+
*/
|
135
|
+
protected _recover(): Promise<void>;
|
136
|
+
/**
|
137
|
+
* Set the service state
|
138
|
+
*
|
139
|
+
* @private
|
140
|
+
* @param {string} state - New state
|
141
|
+
*/
|
142
|
+
private _setState;
|
143
|
+
/**
|
144
|
+
* Set an error state
|
145
|
+
*
|
146
|
+
* @private
|
147
|
+
* @param {string} operation - Operation that failed
|
148
|
+
* @param {Error} error - Error that occurred
|
149
|
+
*/
|
150
|
+
private _setError;
|
151
|
+
}
|
152
|
+
import { EventEmitter } from '../events';
|
153
|
+
import { Logger } from '../logging';
|