core-mb 1.1.6 → 1.1.7

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/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export * from "./transformer.helper";
7
7
  export * from './logging.helper';
8
8
  export * from './object.helper';
9
9
  export * from "./enums";
10
+ export * from "./uuid.helper";
package/dist/index.js CHANGED
@@ -23,3 +23,4 @@ __exportStar(require("./transformer.helper"), exports);
23
23
  __exportStar(require("./logging.helper"), exports);
24
24
  __exportStar(require("./object.helper"), exports);
25
25
  __exportStar(require("./enums"), exports);
26
+ __exportStar(require("./uuid.helper"), exports);
@@ -1,23 +1,2 @@
1
- declare const baseLogger: import("winston").Logger | {
2
- info: {
3
- (...data: any[]): void;
4
- (message?: any, ...optionalParams: any[]): void;
5
- };
6
- error: {
7
- (...data: any[]): void;
8
- (message?: any, ...optionalParams: any[]): void;
9
- };
10
- warn: {
11
- (...data: any[]): void;
12
- (message?: any, ...optionalParams: any[]): void;
13
- };
14
- };
15
- export declare class Logger {
16
- private context;
17
- constructor(context: string);
18
- private formatMessage;
19
- info(message: string, method?: string): void;
20
- warn(message: string, method?: string): void;
21
- error(message: string, method?: string): void;
22
- }
23
- export { baseLogger as logger };
1
+ declare let logger: any;
2
+ export { logger };
@@ -1,59 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.logger = exports.Logger = void 0;
3
+ exports.logger = void 0;
4
4
  const winston_1 = require("winston");
5
- // Keep your existing getDate() logic
6
5
  function getDate() {
7
6
  const today = new Date();
8
- return today.toISOString().slice(0, 10);
7
+ const formatted = today.toISOString().slice(0, 10);
8
+ return formatted;
9
9
  }
10
- // === Keep your existing Winston logger exactly as before ===
11
- const baseLogger = typeof window === "undefined"
12
- ? (0, winston_1.createLogger)({
10
+ let logger;
11
+ if (typeof window === 'undefined') {
12
+ exports.logger = logger = (0, winston_1.createLogger)({
13
13
  level: "info",
14
14
  format: winston_1.format.combine(winston_1.format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }), winston_1.format.printf(({ level, message, timestamp, ...meta }) => {
15
15
  return `${timestamp} [${level.toUpperCase()}]: ${message} ${Object.keys(meta).length ? JSON.stringify(meta) : ""}`;
16
16
  })),
17
17
  transports: [
18
+ // Console output
18
19
  new winston_1.transports.Console(),
20
+ // File for info
19
21
  new winston_1.transports.File({
20
22
  filename: `logs/info-${getDate()}.log`,
21
23
  level: "info",
22
24
  }),
25
+ // File for warnings
23
26
  new winston_1.transports.File({
24
27
  filename: `logs/warning-${getDate()}.log`,
25
28
  level: "warn",
26
29
  }),
30
+ // File for errors
27
31
  new winston_1.transports.File({
28
32
  filename: `logs/error-${getDate()}.log`,
29
33
  level: "error",
30
34
  }),
31
35
  ],
32
- })
33
- : {
36
+ });
37
+ }
38
+ else {
39
+ exports.logger = logger = {
34
40
  info: console.log,
35
41
  error: console.error,
36
42
  warn: console.warn,
37
43
  };
38
- exports.logger = baseLogger;
39
- // === Class-aware Logger wrapper ===
40
- class Logger {
41
- constructor(context) {
42
- this.context = context;
43
- }
44
- formatMessage(message, method) {
45
- return method
46
- ? `[${this.context}:${method}] ${message}`
47
- : `[${this.context}] ${message}`;
48
- }
49
- info(message, method) {
50
- baseLogger.info(this.formatMessage(message, method));
51
- }
52
- warn(message, method) {
53
- baseLogger.warn(this.formatMessage(message, method));
54
- }
55
- error(message, method) {
56
- baseLogger.error(this.formatMessage(message, method));
57
- }
58
44
  }
59
- exports.Logger = Logger;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generate UUID v4
3
+ */
4
+ export declare const uuid: () => string;
5
+ /**
6
+ * Generate UUID without hyphens (32 chars)
7
+ */
8
+ export declare const uuidCompact: () => string;
9
+ /**
10
+ * Generate UUID with prefix
11
+ * Example: EXP_550e8400-e29b-41d4-a716-446655440000
12
+ */
13
+ export declare const uuidWithPrefix: (prefix: string) => string;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.uuidWithPrefix = exports.uuidCompact = exports.uuid = void 0;
4
+ const uuid_1 = require("uuid");
5
+ /**
6
+ * Generate UUID v4
7
+ */
8
+ const uuid = () => {
9
+ return (0, uuid_1.v4)();
10
+ };
11
+ exports.uuid = uuid;
12
+ /**
13
+ * Generate UUID without hyphens (32 chars)
14
+ */
15
+ const uuidCompact = () => {
16
+ return (0, uuid_1.v4)().replace(/-/g, "");
17
+ };
18
+ exports.uuidCompact = uuidCompact;
19
+ /**
20
+ * Generate UUID with prefix
21
+ * Example: EXP_550e8400-e29b-41d4-a716-446655440000
22
+ */
23
+ const uuidWithPrefix = (prefix) => {
24
+ return `${prefix}_${(0, uuid_1.v4)()}`;
25
+ };
26
+ exports.uuidWithPrefix = uuidWithPrefix;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "core-mb",
3
- "version": "1.1.6",
3
+ "version": "1.1.7",
4
4
  "description": "Core utility functions for the MB ecosystem in TypeScript",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "typescript"
20
20
  ],
21
21
  "author": "Marco Bytes",
22
- "license": "SEE LICENSE IN LICENSE",
22
+ "license": "MIT",
23
23
  "repository": {
24
24
  "type": "git",
25
25
  "url": "git+https://github.com/marcojourney/core-mb.git"
@@ -41,6 +41,7 @@
41
41
  "dependencies": {
42
42
  "class-transformer": "^0.5.1",
43
43
  "class-validator": "^0.14.2",
44
+ "uuid": "^13.0.0",
44
45
  "winston": "^3.17.0"
45
46
  }
46
47
  }
package/src/index.ts CHANGED
@@ -6,4 +6,5 @@ export * from "class-validator"
6
6
  export * from "./transformer.helper";
7
7
  export * from './logging.helper';
8
8
  export * from './object.helper';
9
- export * from "./enums"
9
+ export * from "./enums";
10
+ export * from "./uuid.helper"
@@ -1,68 +1,53 @@
1
1
  import { createLogger, format, transports } from "winston";
2
2
 
3
- // Keep your existing getDate() logic
4
3
  function getDate() {
5
4
  const today = new Date();
6
- return today.toISOString().slice(0, 10);
5
+ const formatted = today.toISOString().slice(0, 10);
6
+ return formatted;
7
7
  }
8
8
 
9
- // === Keep your existing Winston logger exactly as before ===
10
- const baseLogger =
11
- typeof window === "undefined"
12
- ? createLogger({
13
- level: "info",
14
- format: format.combine(
15
- format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
16
- format.printf(({ level, message, timestamp, ...meta }) => {
17
- return `${timestamp} [${level.toUpperCase()}]: ${message} ${
18
- Object.keys(meta).length ? JSON.stringify(meta) : ""
19
- }`;
20
- })
21
- ),
22
- transports: [
23
- new transports.Console(),
24
- new transports.File({
25
- filename: `logs/info-${getDate()}.log`,
26
- level: "info",
27
- }),
28
- new transports.File({
29
- filename: `logs/warning-${getDate()}.log`,
30
- level: "warn",
31
- }),
32
- new transports.File({
33
- filename: `logs/error-${getDate()}.log`,
34
- level: "error",
35
- }),
36
- ],
9
+ let logger;
10
+
11
+ if (typeof window === 'undefined') {
12
+ logger = createLogger({
13
+ level: "info",
14
+ format: format.combine(
15
+ format.timestamp({ format: "YYYY-MM-DD HH:mm:ss" }),
16
+ format.printf(({ level, message, timestamp, ...meta }) => {
17
+ return `${timestamp} [${level.toUpperCase()}]: ${message} ${
18
+ Object.keys(meta).length ? JSON.stringify(meta) : ""
19
+ }`;
37
20
  })
38
- : {
39
- info: console.log,
40
- error: console.error,
41
- warn: console.warn,
42
- };
43
-
44
- // === Class-aware Logger wrapper ===
45
- export class Logger {
46
- constructor(private context: string) {}
47
-
48
- private formatMessage(message: string, method?: string) {
49
- return method
50
- ? `[${this.context}:${method}] ${message}`
51
- : `[${this.context}] ${message}`;
52
- }
53
-
54
- info(message: string, method?: string) {
55
- baseLogger.info(this.formatMessage(message, method));
56
- }
57
-
58
- warn(message: string, method?: string) {
59
- baseLogger.warn(this.formatMessage(message, method));
60
- }
61
-
62
- error(message: string, method?: string) {
63
- baseLogger.error(this.formatMessage(message, method));
64
- }
21
+ ),
22
+ transports: [
23
+ // Console output
24
+ new transports.Console(),
25
+
26
+ // File for info
27
+ new transports.File({
28
+ filename: `logs/info-${getDate()}.log`,
29
+ level: "info",
30
+ }),
31
+
32
+ // File for warnings
33
+ new transports.File({
34
+ filename: `logs/warning-${getDate()}.log`,
35
+ level: "warn",
36
+ }),
37
+
38
+ // File for errors
39
+ new transports.File({
40
+ filename: `logs/error-${getDate()}.log`,
41
+ level: "error",
42
+ }),
43
+ ],
44
+ });
45
+ } else {
46
+ logger = {
47
+ info: console.log,
48
+ error: console.error,
49
+ warn: console.warn,
50
+ };
65
51
  }
66
52
 
67
- // === Optional: export original baseLogger ===
68
- export { baseLogger as logger };
53
+ export { logger };
@@ -0,0 +1,23 @@
1
+ import { v4 as uuidv4 } from "uuid";
2
+
3
+ /**
4
+ * Generate UUID v4
5
+ */
6
+ export const uuid = (): string => {
7
+ return uuidv4();
8
+ };
9
+
10
+ /**
11
+ * Generate UUID without hyphens (32 chars)
12
+ */
13
+ export const uuidCompact = (): string => {
14
+ return uuidv4().replace(/-/g, "");
15
+ };
16
+
17
+ /**
18
+ * Generate UUID with prefix
19
+ * Example: EXP_550e8400-e29b-41d4-a716-446655440000
20
+ */
21
+ export const uuidWithPrefix = (prefix: string): string => {
22
+ return `${prefix}_${uuidv4()}`;
23
+ };