@warlock.js/logger 4.0.48 → 4.0.59

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 (77) hide show
  1. package/cjs/channels/console-log.d.ts +17 -0
  2. package/cjs/channels/console-log.d.ts.map +1 -0
  3. package/cjs/channels/console-log.js +47 -0
  4. package/cjs/channels/console-log.js.map +1 -0
  5. package/cjs/channels/file-log.d.ts +167 -0
  6. package/cjs/channels/file-log.d.ts.map +1 -0
  7. package/cjs/channels/file-log.js +272 -0
  8. package/cjs/channels/file-log.js.map +1 -0
  9. package/cjs/channels/index.d.ts +4 -0
  10. package/cjs/channels/index.d.ts.map +1 -0
  11. package/cjs/channels/json-file-log.d.ts +29 -0
  12. package/cjs/channels/json-file-log.d.ts.map +1 -0
  13. package/cjs/channels/json-file-log.js +102 -0
  14. package/cjs/channels/json-file-log.js.map +1 -0
  15. package/cjs/index.d.ts +6 -0
  16. package/cjs/index.d.ts.map +1 -0
  17. package/cjs/index.js +1 -42
  18. package/cjs/index.js.map +1 -1
  19. package/cjs/log-channel.d.ts +63 -0
  20. package/cjs/log-channel.d.ts.map +1 -0
  21. package/cjs/log-channel.js +88 -0
  22. package/cjs/log-channel.js.map +1 -0
  23. package/cjs/logger.d.ts +58 -0
  24. package/cjs/logger.d.ts.map +1 -0
  25. package/cjs/logger.js +112 -0
  26. package/cjs/logger.js.map +1 -0
  27. package/cjs/types.d.ts +94 -0
  28. package/cjs/types.d.ts.map +1 -0
  29. package/cjs/utils/capture-unhandled-errors.d.ts +2 -0
  30. package/cjs/utils/capture-unhandled-errors.d.ts.map +1 -0
  31. package/cjs/utils/capture-unhandled-errors.js +12 -0
  32. package/cjs/utils/capture-unhandled-errors.js.map +1 -0
  33. package/cjs/utils/clear-message.d.ts +5 -0
  34. package/cjs/utils/clear-message.d.ts.map +1 -0
  35. package/cjs/utils/clear-message.js +9 -0
  36. package/cjs/utils/clear-message.js.map +1 -0
  37. package/cjs/utils/index.d.ts +3 -0
  38. package/cjs/utils/index.d.ts.map +1 -0
  39. package/esm/channels/console-log.d.ts +17 -0
  40. package/esm/channels/console-log.d.ts.map +1 -0
  41. package/esm/channels/console-log.js +47 -0
  42. package/esm/channels/console-log.js.map +1 -0
  43. package/esm/channels/file-log.d.ts +167 -0
  44. package/esm/channels/file-log.d.ts.map +1 -0
  45. package/esm/channels/file-log.js +272 -0
  46. package/esm/channels/file-log.js.map +1 -0
  47. package/esm/channels/index.d.ts +4 -0
  48. package/esm/channels/index.d.ts.map +1 -0
  49. package/esm/channels/json-file-log.d.ts +29 -0
  50. package/esm/channels/json-file-log.d.ts.map +1 -0
  51. package/esm/channels/json-file-log.js +102 -0
  52. package/esm/channels/json-file-log.js.map +1 -0
  53. package/esm/index.d.ts +6 -0
  54. package/esm/index.d.ts.map +1 -0
  55. package/esm/index.js +1 -7
  56. package/esm/index.js.map +1 -1
  57. package/esm/log-channel.d.ts +63 -0
  58. package/esm/log-channel.d.ts.map +1 -0
  59. package/esm/log-channel.js +88 -0
  60. package/esm/log-channel.js.map +1 -0
  61. package/esm/logger.d.ts +58 -0
  62. package/esm/logger.d.ts.map +1 -0
  63. package/esm/logger.js +112 -0
  64. package/esm/logger.js.map +1 -0
  65. package/esm/types.d.ts +94 -0
  66. package/esm/types.d.ts.map +1 -0
  67. package/esm/utils/capture-unhandled-errors.d.ts +2 -0
  68. package/esm/utils/capture-unhandled-errors.d.ts.map +1 -0
  69. package/esm/utils/capture-unhandled-errors.js +12 -0
  70. package/esm/utils/capture-unhandled-errors.js.map +1 -0
  71. package/esm/utils/clear-message.d.ts +5 -0
  72. package/esm/utils/clear-message.d.ts.map +1 -0
  73. package/esm/utils/clear-message.js +9 -0
  74. package/esm/utils/clear-message.js.map +1 -0
  75. package/esm/utils/index.d.ts +3 -0
  76. package/esm/utils/index.d.ts.map +1 -0
  77. package/package.json +38 -39
@@ -0,0 +1,63 @@
1
+ import type { BasicLogConfigurations, LogContract, LoggingData } from "./types";
2
+ export declare abstract class LogChannel<Options extends BasicLogConfigurations = BasicLogConfigurations> implements LogContract {
3
+ /**
4
+ * Channel name
5
+ */
6
+ name: string;
7
+ /**
8
+ * Channel description
9
+ */
10
+ description?: string;
11
+ /**
12
+ * Determine if channel is logging in terminal
13
+ */
14
+ terminal: boolean;
15
+ /**
16
+ * Default Configurations
17
+ */
18
+ protected defaultConfigurations: Options;
19
+ /**
20
+ * Channel configurations
21
+ */
22
+ protected channelConfigurations: Options;
23
+ /**
24
+ * Determine whether the channel is fully initialized
25
+ */
26
+ protected isInitialized: boolean;
27
+ /**
28
+ * Constructor
29
+ */
30
+ constructor(configurations?: Options);
31
+ /**
32
+ * Initialize the channel
33
+ */
34
+ protected init?(): void | Promise<void>;
35
+ /**
36
+ * Get config value
37
+ */
38
+ protected config<K extends keyof Options>(key: K): Options[K];
39
+ /**
40
+ * Set configurations
41
+ */
42
+ protected setConfigurations(configurations: Options): this;
43
+ /**
44
+ * Determine if the message should be logged
45
+ */
46
+ protected shouldBeLogged(data: LoggingData): boolean;
47
+ /**
48
+ * Log the given message
49
+ */
50
+ abstract log(data: LoggingData): void | Promise<void>;
51
+ /**
52
+ * Get date and time formats
53
+ */
54
+ protected getDateAndTimeFormat(): {
55
+ date: string;
56
+ time: string;
57
+ };
58
+ /**
59
+ * get basic configurations with the given ones
60
+ */
61
+ protected withBasicConfigurations(configurations: Partial<Options>): Options;
62
+ }
63
+ //# sourceMappingURL=log-channel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-channel.d.ts","sourceRoot":"","sources":["../src/log-channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhF,8BAAsB,UAAU,CAC9B,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,CAC/D,YAAW,WAAW;IAEtB;;OAEG;IACI,IAAI,EAAG,MAAM,CAAC;IAErB;;OAEG;IACI,WAAW,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACI,QAAQ,UAAS;IAExB;;OAEG;IACH,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAiB;IAEzD;;OAEG;IACH,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAiB;IAEzD;;OAEG;IACH,SAAS,CAAC,aAAa,UAAS;IAEhC;;OAEG;gBACgB,cAAc,CAAC,EAAE,OAAO;IAc3C;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEvC;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM7D;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,cAAc,EAAE,OAAO;IASnD;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO;IAgBpD;;OAEG;aACa,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D;;OAEG;IACH,SAAS,CAAC,oBAAoB;;;;IAQ9B;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO;CAM7E"}
@@ -0,0 +1,88 @@
1
+ class LogChannel {
2
+ /**
3
+ * Channel name
4
+ */
5
+ name;
6
+ /**
7
+ * Channel description
8
+ */
9
+ description;
10
+ /**
11
+ * Determine if channel is logging in terminal
12
+ */
13
+ terminal = false;
14
+ /**
15
+ * Default Configurations
16
+ */
17
+ defaultConfigurations = {};
18
+ /**
19
+ * Channel configurations
20
+ */
21
+ channelConfigurations = {}; //
22
+ /**
23
+ * Determine whether the channel is fully initialized
24
+ */
25
+ isInitialized = false;
26
+ /**
27
+ * Constructor
28
+ */
29
+ constructor(configurations) {
30
+ if (configurations) {
31
+ this.setConfigurations(configurations);
32
+ }
33
+ setTimeout(async () => {
34
+ if (this.init) {
35
+ await this.init();
36
+ }
37
+ this.isInitialized = true;
38
+ }, 0);
39
+ }
40
+ /**
41
+ * Get config value
42
+ */
43
+ config(key) {
44
+ return (this.channelConfigurations[key] ?? (this.defaultConfigurations ?? {})[key]);
45
+ }
46
+ /**
47
+ * Set configurations
48
+ */
49
+ setConfigurations(configurations) {
50
+ this.channelConfigurations = {
51
+ ...this.channelConfigurations,
52
+ ...configurations,
53
+ };
54
+ return this;
55
+ }
56
+ /**
57
+ * Determine if the message should be logged
58
+ */
59
+ shouldBeLogged(data) {
60
+ // check for debug mode
61
+ const allowedLevels = this.config("levels");
62
+ if (allowedLevels?.length && !allowedLevels.includes(data.type))
63
+ return false;
64
+ const filter = this.config("filter");
65
+ if (filter) {
66
+ return filter(data);
67
+ }
68
+ return true;
69
+ }
70
+ /**
71
+ * Get date and time formats
72
+ */
73
+ getDateAndTimeFormat() {
74
+ const dateFormat = this.config("dateFormat");
75
+ const date = dateFormat?.date ?? "DD-MM-YYYY";
76
+ const time = dateFormat?.time ?? "HH:mm:ss";
77
+ return { date, time };
78
+ }
79
+ /**
80
+ * get basic configurations with the given ones
81
+ */
82
+ withBasicConfigurations(configurations) {
83
+ return {
84
+ filter: () => true,
85
+ ...configurations,
86
+ };
87
+ }
88
+ }export{LogChannel};//# sourceMappingURL=log-channel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-channel.js","sources":["../src/log-channel.ts"],"sourcesContent":[null],"names":[],"mappings":"MAEsB,UAAU,CAAA;AAI9B;;AAEG;AACI,IAAA,IAAI,CAAU;AAErB;;AAEG;AACI,IAAA,WAAW,CAAU;AAE5B;;AAEG;IACI,QAAQ,GAAG,KAAK,CAAC;AAExB;;AAEG;IACO,qBAAqB,GAAY,EAAa,CAAC;AAEzD;;AAEG;AACO,IAAA,qBAAqB,GAAY,EAAa,CAAC;AAEzD;;AAEG;IACO,aAAa,GAAG,KAAK,CAAC;AAEhC;;AAEG;AACH,IAAA,WAAA,CAAmB,cAAwB,EAAA;AACzC,QAAA,IAAI,cAAc,EAAE;AAClB,YAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;AACxC,SAAA;QAED,UAAU,CAAC,YAAW;YACpB,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,gBAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AACnB,aAAA;AAED,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B,EAAE,CAAC,CAAC,CAAC;KACP;AAOD;;AAEG;AACO,IAAA,MAAM,CAA0B,GAAM,EAAA;AAC9C,QAAA,QACE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,IAAI,EAAE,EAAE,GAAG,CAAC,EAC1E;KACH;AAED;;AAEG;AACO,IAAA,iBAAiB,CAAC,cAAuB,EAAA;QACjD,IAAI,CAAC,qBAAqB,GAAG;YAC3B,GAAG,IAAI,CAAC,qBAAqB;AAC7B,YAAA,GAAG,cAAc;SAClB,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACO,IAAA,cAAc,CAAC,IAAiB,EAAA;;QAExC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE5C,QAAA,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AAC7D,YAAA,OAAO,KAAK,CAAC;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAErC,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;AAOD;;AAEG;IACO,oBAAoB,GAAA;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7C,QAAA,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,YAAY,CAAC;AAC9C,QAAA,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,UAAU,CAAC;AAE5C,QAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;KACvB;AAED;;AAEG;AACO,IAAA,uBAAuB,CAAC,cAAgC,EAAA;QAChE,OAAO;AACL,YAAA,MAAM,EAAE,MAAM,IAAI;AAClB,YAAA,GAAG,cAAc;SACA,CAAC;KACrB;AACF"}
@@ -0,0 +1,58 @@
1
+ import type { LogChannel } from "./log-channel";
2
+ import type { Log, LoggingData, OmittedLoggingData } from "./types";
3
+ export declare class Logger {
4
+ /**
5
+ * Current channel
6
+ */
7
+ channels: LogChannel[];
8
+ id: string;
9
+ /**
10
+ * Add a new channel
11
+ */
12
+ addChannel(channel: LogChannel): this;
13
+ /**
14
+ * Set base configurations
15
+ */
16
+ configure(config: {
17
+ channels: LogChannel[];
18
+ }): this;
19
+ /**
20
+ * Set channels
21
+ */
22
+ setChannels(channels: LogChannel[]): this;
23
+ /**
24
+ * Normalize log data to a single object
25
+ */
26
+ private normalizeLogData;
27
+ /**
28
+ * Make log
29
+ */
30
+ log(data: LoggingData): Promise<this>;
31
+ /**
32
+ * Make debug log
33
+ */
34
+ debug(dataOrModule: LoggingData | string, action?: string, message?: any): Promise<this>;
35
+ /**
36
+ * Make info log
37
+ */
38
+ info(dataOrModule: OmittedLoggingData | string, action?: string, message?: any): Promise<this>;
39
+ /**
40
+ * Make warn log
41
+ */
42
+ warn(dataOrModule: LoggingData | string, action?: string, message?: any): Promise<this>;
43
+ /**
44
+ * Make error log
45
+ */
46
+ error(dataOrModule: LoggingData | string, action?: string, message?: any): Promise<this>;
47
+ /**
48
+ * Make success log
49
+ */
50
+ success(dataOrModule: LoggingData | string, action?: string, message?: any): Promise<this>;
51
+ /**
52
+ * Get channel by name
53
+ */
54
+ channel(name: string): LogChannel<import("./types").BasicLogConfigurations>;
55
+ }
56
+ export declare const logger: Logger;
57
+ export declare const log: Log;
58
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,WAAW,EAAY,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG9E,qBAAa,MAAM;IACjB;;OAEG;IACI,QAAQ,EAAE,UAAU,EAAE,CAAM;IAE5B,EAAE,SAAiC;IAE1C;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,UAAU;IAMrC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE;IAMnD;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE;IAMzC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACU,GAAG,CAAC,IAAI,EAAE,WAAW;IAWlC;;OAEG;IACI,KAAK,CACV,YAAY,EAAE,WAAW,GAAG,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,GAAQ;IAMnB;;OAEG;IACI,IAAI,CACT,YAAY,EAAE,kBAAkB,GAAG,MAAM,EACzC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,GAAQ;IAMnB;;OAEG;IACI,IAAI,CACT,YAAY,EAAE,WAAW,GAAG,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,GAAQ;IAMnB;;OAEG;IACI,KAAK,CACV,YAAY,EAAE,WAAW,GAAG,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,GAAQ;IAMnB;;OAEG;IACI,OAAO,CACZ,YAAY,EAAE,WAAW,GAAG,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,GAAQ;IAYnB;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM;CAG5B;AAED,eAAO,MAAM,MAAM,QAAe,CAAC;AAEnC,eAAO,MAAM,GAAG,EAAE,GAEjB,CAAC"}
package/esm/logger.js ADDED
@@ -0,0 +1,112 @@
1
+ import {Random}from'@mongez/reinforcements';import {clearMessage}from'./utils/clear-message.js';class Logger {
2
+ /**
3
+ * Current channel
4
+ */
5
+ channels = [];
6
+ id = "logger-" + Random.string(32);
7
+ /**
8
+ * Add a new channel
9
+ */
10
+ addChannel(channel) {
11
+ this.channels.push(channel);
12
+ return this;
13
+ }
14
+ /**
15
+ * Set base configurations
16
+ */
17
+ configure(config) {
18
+ this.channels = config.channels;
19
+ return this;
20
+ }
21
+ /**
22
+ * Set channels
23
+ */
24
+ setChannels(channels) {
25
+ this.channels = channels;
26
+ return this;
27
+ }
28
+ /**
29
+ * Normalize log data to a single object
30
+ */
31
+ normalizeLogData(dataOrModule, action, message = "", level) {
32
+ if (typeof dataOrModule === "object") {
33
+ // If level is provided, override type
34
+ return {
35
+ type: (level || dataOrModule.type || "info"),
36
+ module: dataOrModule.module,
37
+ action: dataOrModule.action,
38
+ message: dataOrModule.message,
39
+ ...(dataOrModule.context ? { context: dataOrModule.context } : {}),
40
+ };
41
+ }
42
+ return {
43
+ type: (level || "info"),
44
+ module: dataOrModule,
45
+ action: action,
46
+ message,
47
+ };
48
+ }
49
+ /**
50
+ * Make log
51
+ */
52
+ async log(data) {
53
+ for (const channel of this.channels) {
54
+ if (channel.terminal === false) {
55
+ data.message = clearMessage(data.message);
56
+ }
57
+ channel.log(data);
58
+ }
59
+ return this;
60
+ }
61
+ /**
62
+ * Make debug log
63
+ */
64
+ debug(dataOrModule, action, message = "") {
65
+ const data = this.normalizeLogData(dataOrModule, action, message, "debug");
66
+ return this.log(data);
67
+ }
68
+ /**
69
+ * Make info log
70
+ */
71
+ info(dataOrModule, action, message = "") {
72
+ const data = this.normalizeLogData(dataOrModule, action, message, "info");
73
+ return this.log(data);
74
+ }
75
+ /**
76
+ * Make warn log
77
+ */
78
+ warn(dataOrModule, action, message = "") {
79
+ const data = this.normalizeLogData(dataOrModule, action, message, "warn");
80
+ return this.log(data);
81
+ }
82
+ /**
83
+ * Make error log
84
+ */
85
+ error(dataOrModule, action, message = "") {
86
+ const data = this.normalizeLogData(dataOrModule, action, message, "error");
87
+ return this.log(data);
88
+ }
89
+ /**
90
+ * Make success log
91
+ */
92
+ success(dataOrModule, action, message = "") {
93
+ const data = this.normalizeLogData(dataOrModule, action, message, "success");
94
+ return this.log(data);
95
+ }
96
+ /**
97
+ * Get channel by name
98
+ */
99
+ channel(name) {
100
+ return this.channels.find(channel => channel.name === name);
101
+ }
102
+ }
103
+ const logger = new Logger();
104
+ const log = (data) => {
105
+ return logger.log(data);
106
+ };
107
+ log.info = logger.info.bind(logger);
108
+ log.debug = logger.debug.bind(logger);
109
+ log.warn = logger.warn.bind(logger);
110
+ log.error = logger.error.bind(logger);
111
+ log.success = logger.success.bind(logger);
112
+ log.channel = logger.channel.bind(logger);export{Logger,log,logger};//# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sources":["../src/logger.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/esm/types.d.ts ADDED
@@ -0,0 +1,94 @@
1
+ import type { LogChannel } from "./log-channel";
2
+ import type { Logger } from "./logger";
3
+ export type LogLevel = "debug" | "info" | "warn" | "error" | "success";
4
+ export type DebugMode = "daily" | "monthly" | "yearly" | "hourly";
5
+ export type BasicLogConfigurations = {
6
+ /**
7
+ * Set what level of logs should be logged
8
+ *
9
+ * @default all
10
+ */
11
+ levels?: LogLevel[];
12
+ /**
13
+ * Date and time format
14
+ */
15
+ dateFormat?: {
16
+ date?: string;
17
+ time?: string;
18
+ };
19
+ /**
20
+ * Advanced filter to determine if the message should be logged or not
21
+ */
22
+ filter: (data: LoggingData) => boolean;
23
+ /**
24
+ * Add additional context to the log
25
+ */
26
+ context?: (data: LoggingData) => Promise<Record<string, any>>;
27
+ };
28
+ export type LogMessage = {
29
+ content: string;
30
+ level: LogLevel;
31
+ date: string;
32
+ module: string;
33
+ action: string;
34
+ stack?: string;
35
+ };
36
+ export interface LogContract {
37
+ /**
38
+ * Channel name
39
+ */
40
+ name: string;
41
+ /**
42
+ * Channel description
43
+ */
44
+ description?: string;
45
+ /**
46
+ * Determine if channel is logging in terminal
47
+ */
48
+ terminal?: boolean;
49
+ /**
50
+ * Log the given message
51
+ */
52
+ log(data: LoggingData): void | Promise<void>;
53
+ }
54
+ export type LoggingData = {
55
+ type: "info" | "debug" | "warn" | "error" | "success";
56
+ module: string;
57
+ action: string;
58
+ message: any;
59
+ context?: Record<string, any>;
60
+ };
61
+ export type OmittedLoggingData = Omit<LoggingData, "type">;
62
+ export interface Log {
63
+ (data: LoggingData): Promise<Logger>;
64
+ /**
65
+ * Make info log
66
+ */
67
+ info(data: OmittedLoggingData): Promise<Logger>;
68
+ info(module: string, action: string, message: any): Promise<Logger>;
69
+ /**
70
+ * Make debug log
71
+ */
72
+ debug(data: OmittedLoggingData): Promise<Logger>;
73
+ debug(module: string, action: string, message: any): Promise<Logger>;
74
+ /**
75
+ * Make warn log
76
+ */
77
+ warn(data: OmittedLoggingData): Promise<Logger>;
78
+ warn(module: string, action: string, message: any): Promise<Logger>;
79
+ /**
80
+ * Make error log
81
+ */
82
+ error(data: OmittedLoggingData): Promise<Logger>;
83
+ error(module: string, action: string, message: any): Promise<Logger>;
84
+ /**
85
+ * Make success log
86
+ */
87
+ success(data: OmittedLoggingData): Promise<Logger>;
88
+ success(module: string, action: string, message: any): Promise<Logger>;
89
+ /**
90
+ * Get channel by name
91
+ */
92
+ channel(name: string): LogChannel | undefined;
93
+ }
94
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function captureAnyUnhandledRejection(): void;
2
+ //# sourceMappingURL=capture-unhandled-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-unhandled-errors.d.ts","sourceRoot":"","sources":["../../src/utils/capture-unhandled-errors.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,SAY3C"}
@@ -0,0 +1,12 @@
1
+ import {log}from'../logger.js';function captureAnyUnhandledRejection() {
2
+ process.on("unhandledRejection", (reason, promise) => {
3
+ log.error("app", "unhandledRejection", reason);
4
+ console.log(promise);
5
+ // console.trace();
6
+ });
7
+ process.on("uncaughtException", error => {
8
+ log.error("app", "uncaughtException", error);
9
+ // console.trace();
10
+ console.log(error);
11
+ });
12
+ }export{captureAnyUnhandledRejection};//# sourceMappingURL=capture-unhandled-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-unhandled-errors.js","sources":["../../src/utils/capture-unhandled-errors.ts"],"sourcesContent":[null],"names":[],"mappings":"wCAEgB,4BAA4B,GAAA;IAC1C,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAW,EAAE,OAAO,KAAI;QACxD,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;AAC/C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;AAEvB,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,IAAG;QACtC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;;AAE7C,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,KAAC,CAAC,CAAC;AACL"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Clear message from any terminal codes
3
+ */
4
+ export declare function clearMessage(message: any): any;
5
+ //# sourceMappingURL=clear-message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-message.d.ts","sourceRoot":"","sources":["../../src/utils/clear-message.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,OAKxC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Clear message from any terminal codes
3
+ */
4
+ function clearMessage(message) {
5
+ if (typeof message !== "string")
6
+ return message;
7
+ // eslint-disable-next-line no-control-regex
8
+ return message.replace(/\u001b[^m]*?m/g, "");
9
+ }export{clearMessage};//# sourceMappingURL=clear-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-message.js","sources":["../../src/utils/clear-message.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;AAEG;AACG,SAAU,YAAY,CAAC,OAAY,EAAA;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;AAAE,QAAA,OAAO,OAAO,CAAC;;IAGhD,OAAO,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAC/C"}
@@ -0,0 +1,3 @@
1
+ export * from "./capture-unhandled-errors";
2
+ export * from "./clear-message";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,41 +1,40 @@
1
1
  {
2
- "name": "@warlock.js/logger",
3
- "version": "4.0.48",
4
- "description": "A powerful logging system for messages and errors in nodejs.",
5
- "keywords": [
6
- "password",
7
- "hash",
8
- "make",
9
- "generate",
10
- "verify",
11
- "brute-force"
12
- ],
13
- "author": "hassanzohdy",
14
- "license": "MIT",
15
- "repository": {
16
- "type": "git",
17
- "url": "https://github.com/hassanzohdy/mongez-password"
18
- },
19
- "main": "./cjs/index.js",
20
- "module": "./esm/index.js",
21
- "types": "./esm/index.d.ts",
22
- "exports": {
23
- ".": {
24
- "import": {
25
- "types": "./esm/index.d.ts",
26
- "default": "./esm/index.js"
27
- },
28
- "require": {
29
- "types": "./cjs/index.d.ts",
30
- "default": "./cjs/index.js"
31
- }
32
- }
33
- },
34
- "sideEffects": false,
35
- "dependencies": {
36
- "@mongez/fs": "^3.0.4",
37
- "@mongez/copper": "^1.0.1",
38
- "@mongez/reinforcements": "^2.3.17",
39
- "dayjs": "^1.11.9"
40
- }
2
+ "name": "@warlock.js/logger",
3
+ "version": "4.0.59",
4
+ "description": "A powerful logging system for messages and errors in nodejs.",
5
+ "main": "./cjs/index.js",
6
+ "scripts": {
7
+ "test:coverage": "jest ./tests --coverage",
8
+ "test:watch": "jest ./tests --watch",
9
+ "test": "jest ./tests",
10
+ "test:file": "jest"
11
+ },
12
+ "dependencies": {
13
+ "@mongez/fs": "^3.0.4",
14
+ "@mongez/copper": "^1.0.1",
15
+ "@mongez/reinforcements": "^2.3.17",
16
+ "dayjs": "^1.11.9"
17
+ },
18
+ "devDependencies": {
19
+ "@types/jest": "^29.5.0",
20
+ "jest": "^29.5.0",
21
+ "ts-jest": "^29.0.5",
22
+ "typescript": "^5.0.2"
23
+ },
24
+ "keywords": [
25
+ "password",
26
+ "hash",
27
+ "make",
28
+ "generate",
29
+ "verify",
30
+ "brute-force"
31
+ ],
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/hassanzohdy/mongez-password"
35
+ },
36
+ "author": "hassanzohdy",
37
+ "license": "MIT",
38
+ "module": "./esm/index.js",
39
+ "typings": "./cjs/index.d.ts"
41
40
  }