arkos 1.2.29-test → 1.2.31-test

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 (96) hide show
  1. package/dist/cjs/modules/auth/auth.router.js +9 -83
  2. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  3. package/dist/cjs/modules/base/base.service.js.map +1 -1
  4. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +10 -94
  5. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  6. package/dist/cjs/modules/error-handler/error-handler.controller.js +2 -0
  7. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  8. package/dist/cjs/modules/error-handler/utils/catch-async.js +1 -1
  9. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  10. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +6 -0
  11. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  12. package/dist/cjs/modules/file-upload/file-upload.router.js +9 -21
  13. package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
  14. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +7 -0
  15. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  16. package/dist/cjs/modules/swagger/swagger.router.js +1 -1
  17. package/dist/cjs/modules/swagger/swagger.router.js.map +1 -1
  18. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +3 -2
  19. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  20. package/dist/cjs/server.js +2 -2
  21. package/dist/cjs/server.js.map +1 -1
  22. package/dist/cjs/utils/cli/dev.js +16 -14
  23. package/dist/cjs/utils/cli/dev.js.map +1 -1
  24. package/dist/cjs/utils/cli/generate.js +1 -1
  25. package/dist/cjs/utils/cli/generate.js.map +1 -1
  26. package/dist/cjs/utils/cli/utils/cli.helpers.js +1 -1
  27. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +1 -1
  28. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  29. package/dist/cjs/utils/features/api.features.js +9 -3
  30. package/dist/cjs/utils/features/api.features.js.map +1 -1
  31. package/dist/cjs/utils/helpers/global.helpers.js +7 -19
  32. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -1
  33. package/dist/cjs/utils/helpers/models.helpers.js +20 -8
  34. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  35. package/dist/cjs/utils/helpers/prisma.helpers.js +7 -4
  36. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  37. package/dist/cjs/utils/helpers/routers.helpers.js +21 -0
  38. package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -0
  39. package/dist/cjs/utils/sheu.js +101 -125
  40. package/dist/cjs/utils/sheu.js.map +1 -1
  41. package/dist/esm/modules/auth/auth.router.js +9 -83
  42. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  43. package/dist/esm/modules/base/base.service.js.map +1 -1
  44. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +10 -94
  45. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js.map +1 -1
  46. package/dist/esm/modules/error-handler/error-handler.controller.js +2 -0
  47. package/dist/esm/modules/error-handler/error-handler.controller.js.map +1 -1
  48. package/dist/esm/modules/error-handler/utils/catch-async.js +1 -1
  49. package/dist/esm/modules/error-handler/utils/catch-async.js.map +1 -1
  50. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +5 -0
  51. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  52. package/dist/esm/modules/file-upload/file-upload.router.js +9 -21
  53. package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
  54. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +6 -0
  55. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js.map +1 -1
  56. package/dist/esm/modules/swagger/swagger.router.js +1 -1
  57. package/dist/esm/modules/swagger/swagger.router.js.map +1 -1
  58. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +3 -2
  59. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js.map +1 -1
  60. package/dist/esm/server.js +2 -2
  61. package/dist/esm/server.js.map +1 -1
  62. package/dist/esm/utils/cli/dev.js +16 -14
  63. package/dist/esm/utils/cli/dev.js.map +1 -1
  64. package/dist/esm/utils/cli/generate.js +1 -1
  65. package/dist/esm/utils/cli/generate.js.map +1 -1
  66. package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
  67. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +1 -1
  68. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +1 -1
  69. package/dist/esm/utils/features/api.features.js +9 -3
  70. package/dist/esm/utils/features/api.features.js.map +1 -1
  71. package/dist/esm/utils/helpers/global.helpers.js +7 -19
  72. package/dist/esm/utils/helpers/global.helpers.js.map +1 -1
  73. package/dist/esm/utils/helpers/models.helpers.js +19 -8
  74. package/dist/esm/utils/helpers/models.helpers.js.map +1 -1
  75. package/dist/esm/utils/helpers/prisma.helpers.js +7 -4
  76. package/dist/esm/utils/helpers/prisma.helpers.js.map +1 -1
  77. package/dist/esm/utils/helpers/routers.helpers.js +16 -0
  78. package/dist/esm/utils/helpers/routers.helpers.js.map +1 -0
  79. package/dist/esm/utils/sheu.js +101 -125
  80. package/dist/esm/utils/sheu.js.map +1 -1
  81. package/dist/types/modules/auth/auth.controller.d.ts +7 -7
  82. package/dist/types/modules/auth/auth.service.d.ts +1 -1
  83. package/dist/types/modules/base/base.controller.d.ts +9 -9
  84. package/dist/types/modules/base/base.service.d.ts +1 -1
  85. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -1
  86. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +4 -0
  87. package/dist/types/modules/file-upload/file-upload.controller.d.ts +4 -4
  88. package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -1
  89. package/dist/types/modules/file-upload/utils/helpers/file-upload.helpers.d.ts +2 -1
  90. package/dist/types/modules/swagger/utils/helpers/swagger.router.helpers.d.ts +1 -1
  91. package/dist/types/utils/features/api.features.d.ts +1 -0
  92. package/dist/types/utils/helpers/models.helpers.d.ts +7 -4
  93. package/dist/types/utils/helpers/prisma.helpers.d.ts +1 -1
  94. package/dist/types/utils/helpers/routers.helpers.d.ts +2 -0
  95. package/dist/types/utils/sheu.d.ts +66 -21
  96. package/package.json +2 -3
@@ -1,141 +1,117 @@
1
1
  class Sheu {
2
- constructor() {
3
- this.codes = [];
4
- }
5
- _apply(text) {
6
- const openCodes = this.codes.join("");
7
- return `${openCodes}${text}\x1b[0m`;
8
- }
9
- _chain() {
10
- const newInstance = new Sheu();
11
- newInstance.codes = [...this.codes];
12
- return newInstance;
13
- }
14
- red(text) {
15
- if (text !== undefined) {
16
- return `\x1b[31m${text}\x1b[0m`;
17
- }
18
- const instance = this._chain();
19
- instance.codes.push("\x1b[31m");
20
- return instance;
21
- }
22
- blue(text) {
23
- if (text !== undefined) {
24
- return `\x1b[34m${text}\x1b[0m`;
25
- }
26
- const instance = this._chain();
27
- instance.codes.push("\x1b[34m");
28
- return instance;
29
- }
30
- green(text) {
31
- if (text !== undefined) {
32
- return `\x1b[32m${text}\x1b[0m`;
33
- }
34
- const instance = this._chain();
35
- instance.codes.push("\x1b[32m");
36
- return instance;
37
- }
38
- yellow(text) {
39
- if (text !== undefined) {
40
- return `\x1b[33m${text}\x1b[0m`;
41
- }
42
- const instance = this._chain();
43
- instance.codes.push("\x1b[33m");
44
- return instance;
45
- }
46
- cyan(text) {
47
- if (text !== undefined) {
48
- return `\x1b[36m${text}\x1b[0m`;
49
- }
50
- const instance = this._chain();
51
- instance.codes.push("\x1b[36m");
52
- return instance;
53
- }
54
- magenta(text) {
55
- if (text !== undefined) {
56
- return `\x1b[35m${text}\x1b[0m`;
2
+ getTimestamp() {
3
+ return new Date().toTimeString().split(" ")[0];
4
+ }
5
+ formatText(text = "", options = {}) {
6
+ const label = options?.label
7
+ ? text
8
+ ? options?.label + " "
9
+ : options?.label
10
+ : "";
11
+ let result = `${label}${text}`;
12
+ if (options.timestamp) {
13
+ const timestamp = this.getTimestamp();
14
+ if (options.timestamp === true)
15
+ result = `${label}\x1b[90m${timestamp}\x1b[0m ${text}`;
16
+ else if (typeof options.timestamp === "string") {
17
+ const colorCode = this.getColorCode(options.timestamp);
18
+ result = `${label}${colorCode}${timestamp}\x1b[0m ${text}`;
19
+ }
57
20
  }
58
- const instance = this._chain();
59
- instance.codes.push("\x1b[35m");
60
- return instance;
61
- }
62
- white(text) {
63
- if (text !== undefined) {
64
- return `\x1b[37m${text}\x1b[0m`;
65
- }
66
- const instance = this._chain();
67
- instance.codes.push("\x1b[37m");
68
- return instance;
69
- }
70
- black(text) {
71
- if (text !== undefined) {
72
- return `\x1b[30m${text}\x1b[0m`;
73
- }
74
- const instance = this._chain();
75
- instance.codes.push("\x1b[30m");
76
- return instance;
77
- }
78
- gray(text) {
79
- if (text !== undefined) {
80
- return `\x1b[90m${text}\x1b[0m`;
81
- }
82
- const instance = this._chain();
83
- instance.codes.push("\x1b[90m");
84
- return instance;
85
- }
86
- orange(text) {
87
- if (text !== undefined) {
88
- return `\x1b[91m${text}\x1b[0m`;
89
- }
90
- const instance = this._chain();
91
- instance.codes.push("\x1b[91m");
92
- return instance;
93
- }
94
- bold(text) {
95
- if (text !== undefined) {
96
- return `\x1b[1m${text}\x1b[0m`;
97
- }
98
- const instance = this._chain();
99
- instance.codes.push("\x1b[1m");
100
- return instance;
101
- }
102
- apply(text) {
103
- return this._apply(text);
104
- }
105
- info(message) {
21
+ if (options.bold)
22
+ result = `\x1b[1m${result}\x1b[0m`;
23
+ return result;
24
+ }
25
+ getColorCode(color) {
26
+ const colorMap = {
27
+ red: "\x1b[31m",
28
+ blue: "\x1b[34m",
29
+ green: "\x1b[32m",
30
+ yellow: "\x1b[33m",
31
+ cyan: "\x1b[36m",
32
+ magenta: "\x1b[35m",
33
+ white: "\x1b[37m",
34
+ black: "\x1b[30m",
35
+ gray: "\x1b[90m",
36
+ orange: "\x1b[91m",
37
+ };
38
+ return colorMap[color] || "\x1b[90m";
39
+ }
40
+ red(text, options) {
41
+ const coloredText = `\x1b[31m${text}\x1b[0m`;
42
+ return this.formatText(coloredText, options || {});
43
+ }
44
+ blue(text, options) {
45
+ const coloredText = `\x1b[34m${text}\x1b[0m`;
46
+ return this.formatText(coloredText, options || {});
47
+ }
48
+ green(text, options) {
49
+ const coloredText = `\x1b[32m${text}\x1b[0m`;
50
+ return this.formatText(coloredText, options || {});
51
+ }
52
+ yellow(text, options) {
53
+ const coloredText = `\x1b[33m${text}\x1b[0m`;
54
+ return this.formatText(coloredText, options || {});
55
+ }
56
+ cyan(text, options) {
57
+ const coloredText = `\x1b[36m${text}\x1b[0m`;
58
+ return this.formatText(coloredText, options || {});
59
+ }
60
+ magenta(text, options) {
61
+ const coloredText = `\x1b[35m${text}\x1b[0m`;
62
+ return this.formatText(coloredText, options || {});
63
+ }
64
+ white(text, options) {
65
+ const coloredText = `\x1b[37m${text}\x1b[0m`;
66
+ return this.formatText(coloredText, options || {});
67
+ }
68
+ black(text, options) {
69
+ const coloredText = `\x1b[30m${text}\x1b[0m`;
70
+ return this.formatText(coloredText, options || {});
71
+ }
72
+ gray(text, options) {
73
+ const coloredText = `\x1b[90m${text}\x1b[0m`;
74
+ return this.formatText(coloredText, options || {});
75
+ }
76
+ orange(text, options) {
77
+ const coloredText = `\x1b[91m${text}\x1b[0m`;
78
+ return this.formatText(coloredText, options || {});
79
+ }
80
+ bold(text, options) {
81
+ const boldText = `\x1b[1m${text}\x1b[0m`;
82
+ return this.formatText(boldText, { ...options, bold: false });
83
+ }
84
+ info(message, options) {
106
85
  const label = `[\x1b[36mINFO\x1b[0m]`;
107
- const content = message ? `${label} ${message}` : label;
108
- console.info(content);
109
- return content;
86
+ const result = this.formatText(message, { ...options, label });
87
+ console.info(result);
88
+ return result;
110
89
  }
111
- error(message) {
90
+ error(message, options) {
112
91
  const label = `[\x1b[31mERROR\x1b[0m]`;
113
- const content = message ? `${label} ${message}` : label;
114
- console.info(content);
115
- return content;
92
+ const result = this.formatText(message, { ...options, label });
93
+ console.error(result);
94
+ return result;
116
95
  }
117
- ready(message) {
96
+ ready(message, options) {
118
97
  const label = `[\x1b[32mREADY\x1b[0m]`;
119
- const content = message ? `${label} ${message}` : label;
120
- console.info(content);
121
- return content;
98
+ const result = this.formatText(message, { ...options, label });
99
+ console.info(result);
100
+ return result;
122
101
  }
123
- done(message) {
102
+ done(message, options) {
124
103
  const label = `[\x1b[32mDONE\x1b[0m]`;
125
- const content = message ? `${label} ${message}` : label;
126
- console.info(content);
127
- return content;
104
+ const result = this.formatText(message, { ...options, label });
105
+ console.info(result);
106
+ return result;
128
107
  }
129
- warn(message) {
108
+ warn(message, options) {
130
109
  const label = `[\x1b[33mWARN\x1b[0m]`;
131
- console.info(message ? `${label} ${message}` : label);
110
+ const result = this.formatText(message, { ...options, label });
111
+ console.warn(result);
112
+ return result;
132
113
  }
133
114
  }
134
115
  const sheu = new Sheu();
135
- Object.getOwnPropertyNames(Sheu.prototype).forEach((method) => {
136
- if (method !== "constructor" && method !== "_apply" && method !== "_chain") {
137
- sheu[method] = Sheu.prototype[method].bind(new Sheu());
138
- }
139
- });
140
116
  export default sheu;
141
117
  //# sourceMappingURL=sheu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheu.js","sourceRoot":"","sources":["../../../src/utils/sheu.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sheu - Terminal color utility class for styling console output\n * Provides chainable methods for colors and text formatting\n */\nclass Sheu {\n codes: string[];\n\n constructor() {\n this.codes = [];\n }\n\n /**\n * Apply text to the current styling codes\n * @param {string} text - The text to style\n * @returns {string} The styled text with ANSI codes\n */\n _apply(text: string): string {\n const openCodes = this.codes.join(\"\");\n return `${openCodes}${text}\\x1b[0m`;\n }\n\n /**\n * Create a new instance with the current codes\n * @returns {Sheu} New Sheu instance\n */\n _chain(): Sheu {\n const newInstance = new Sheu();\n newInstance.codes = [...this.codes];\n return newInstance;\n }\n\n /**\n * Red color (Tailwind red-500: #ef4444)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n red(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[31m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[31m\");\n return instance;\n }\n\n /**\n * Blue color (Tailwind blue-500: #3b82f6)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n blue(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[34m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[34m\");\n return instance;\n }\n\n /**\n * Green color (Tailwind green-500: #22c55e)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n green(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[32m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[32m\");\n return instance;\n }\n\n /**\n * Yellow color (Tailwind yellow-500: #eab308)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n yellow(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[33m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[33m\");\n return instance;\n }\n\n /**\n * Cyan color (Tailwind cyan-500: #06b6d4)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n cyan(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[36m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[36m\");\n return instance;\n }\n\n /**\n * Magenta color (Tailwind fuchsia-500: #d946ef)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n magenta(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[35m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[35m\");\n return instance;\n }\n\n /**\n * White color (Tailwind white: #ffffff)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n white(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[37m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[37m\");\n return instance;\n }\n\n /**\n * Black color (Tailwind black: #000000)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n black(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[30m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[30m\");\n return instance;\n }\n\n /**\n * Gray color (Tailwind gray-500: #6b7280)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n gray(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[90m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[90m\");\n return instance;\n }\n\n /**\n * Orange color (Tailwind orange-500: #f97316)\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n orange(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[91m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[91m\");\n return instance;\n }\n\n /**\n * Bold text formatting\n * @param {string} [text] - Optional text to style immediately\n * @returns {string|Sheu} Styled text or chainable instance\n */\n bold(text?: string): string | Sheu {\n if (text !== undefined) {\n return `\\x1b[1m${text}\\x1b[0m`;\n }\n const instance = this._chain();\n instance.codes.push(\"\\x1b[1m\");\n return instance;\n }\n\n /**\n * Apply all accumulated styles to text\n * @param {string} text - The text to style\n * @returns {string} The styled text\n */\n apply(text: string): string {\n return this._apply(text);\n }\n\n /**\n * Info label with cyan color [INFO]\n * @param {string} [message] - Optional message to append\n * @returns {string} Formatted info label\n */\n info(message?: string): string {\n const label = `[\\x1b[36mINFO\\x1b[0m]`;\n const content = message ? `${label} ${message}` : label;\n console.info(content);\n return content;\n }\n\n /**\n * Error label with red color [ERROR]\n * @param {string} [message] - Optional message to append\n * @returns {string} Formatted error label\n */\n error(message?: string): string {\n const label = `[\\x1b[31mERROR\\x1b[0m]`;\n const content = message ? `${label} ${message}` : label;\n console.info(content);\n return content;\n }\n\n /**\n * Ready label with green color [READY]\n * @param {string} [message] - Optional message to append\n * @returns {string} Formatted ready label\n */\n ready(message?: string): string {\n const label = `[\\x1b[32mREADY\\x1b[0m]`;\n const content = message ? `${label} ${message}` : label;\n console.info(content);\n return content;\n }\n\n /**\n * Done label with green color [DONE]\n * @param {string} [message] - Optional message to append\n * @returns {string} Formatted done label\n */\n done(message?: string): string {\n const label = `[\\x1b[32mDONE\\x1b[0m]`;\n const content = message ? `${label} ${message}` : label;\n console.info(content);\n return content;\n }\n\n /**\n * Warning label with yellow color [WARN]\n * @param {string} [message] - Optional message to append\n * @returns void\n */\n warn(message?: string) {\n const label = `[\\x1b[33mWARN\\x1b[0m]`;\n console.info(message ? `${label} ${message}` : label);\n }\n}\n\n// Create default instance\nconst sheu = new Sheu();\n\n// Add static methods to the default instance for direct usage\nObject.getOwnPropertyNames(Sheu.prototype).forEach((method) => {\n if (method !== \"constructor\" && method !== \"_apply\" && method !== \"_chain\") {\n (sheu as any)[method] = Sheu.prototype[method as keyof Object].bind(\n new Sheu()\n );\n }\n});\n\nexport default sheu;\n"]}
1
+ {"version":3,"file":"sheu.js","sourceRoot":"","sources":["../../../src/utils/sheu.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Sheu - Simplified terminal color utility for styling console output\n */\nclass Sheu {\n /**\n * Get current timestamp in HH:MM:SS format\n */\n private getTimestamp(): string {\n return new Date().toTimeString().split(\" \")[0];\n }\n\n /**\n * Apply timestamp and bold formatting if requested\n */\n private formatText(\n text: string = \"\",\n options: {\n timestamp?: boolean | string;\n bold?: boolean;\n label?: string;\n } = {}\n ): string {\n const label = options?.label\n ? text\n ? options?.label + \" \"\n : options?.label\n : \"\";\n let result = `${label}${text}`;\n\n // Apply timestamp if requested\n if (options.timestamp) {\n const timestamp = this.getTimestamp();\n if (options.timestamp === true)\n result = `${label}\\x1b[90m${timestamp}\\x1b[0m ${text}`;\n else if (typeof options.timestamp === \"string\") {\n const colorCode = this.getColorCode(options.timestamp);\n result = `${label}${colorCode}${timestamp}\\x1b[0m ${text}`;\n }\n }\n\n if (options.bold) result = `\\x1b[1m${result}\\x1b[0m`;\n\n return result;\n }\n\n /**\n * Get ANSI color code for color name\n */\n private getColorCode(color: string): string {\n const colorMap: { [key: string]: string } = {\n red: \"\\x1b[31m\",\n blue: \"\\x1b[34m\",\n green: \"\\x1b[32m\",\n yellow: \"\\x1b[33m\",\n cyan: \"\\x1b[36m\",\n magenta: \"\\x1b[35m\",\n white: \"\\x1b[37m\",\n black: \"\\x1b[30m\",\n gray: \"\\x1b[90m\",\n orange: \"\\x1b[91m\",\n };\n return colorMap[color] || \"\\x1b[90m\"; // Default to gray if color not found\n }\n\n /**\n * Red color\n */\n red(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[31m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Blue color\n */\n blue(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[34m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Green color\n */\n green(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[32m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Yellow color\n */\n yellow(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[33m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Cyan color\n */\n cyan(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[36m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Magenta color\n */\n magenta(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[35m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * White color\n */\n white(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[37m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Black color\n */\n black(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[30m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Gray color\n */\n gray(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[90m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Orange color\n */\n orange(\n text: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const coloredText = `\\x1b[91m${text}\\x1b[0m`;\n return this.formatText(coloredText, options || {});\n }\n\n /**\n * Bold text formatting\n */\n bold(text: string, options?: { timestamp?: boolean | string }): string {\n const boldText = `\\x1b[1m${text}\\x1b[0m`;\n return this.formatText(boldText, { ...options, bold: false }); // Don't double-bold\n }\n\n /**\n * Info label with cyan color [INFO]\n */\n info(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[36mINFO\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Error label with red color [ERROR]\n */\n error(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[31mERROR\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.error(result);\n return result;\n }\n\n /**\n * Ready label with green color [READY]\n */\n ready(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mREADY\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Done label with green color [DONE]\n */\n done(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[32mDONE\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.info(result);\n return result;\n }\n\n /**\n * Warning label with yellow color [WARN]\n */\n warn(\n message: string,\n options?: { timestamp?: boolean | string; bold?: boolean }\n ): string {\n const label = `[\\x1b[33mWARN\\x1b[0m]`;\n const result = this.formatText(message, { ...options, label });\n console.warn(result);\n return result;\n }\n}\n\nconst sheu = new Sheu();\n\nexport default sheu;\n"]}
@@ -3,11 +3,11 @@ export declare const defaultExcludedUserFields: {
3
3
  password: boolean;
4
4
  };
5
5
  export declare const authControllerFactory: (middlewares?: any) => Promise<{
6
- getMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
7
- updateMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
8
- logout: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
9
- login: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
10
- signup: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
11
- deleteMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
12
- updatePassword: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
6
+ getMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
7
+ updateMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
8
+ logout: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
9
+ login: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
10
+ signup: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
11
+ deleteMe: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
12
+ updatePassword: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
13
13
  }>;
@@ -12,7 +12,7 @@ export declare class AuthService {
12
12
  verifyJwtToken(token: string, secret?: string): Promise<AuthJwtPayload>;
13
13
  handleAccessControl(action: AccessAction, resourceName: string, accessControl?: AccessControlConfig): ArkosRequestHandler;
14
14
  getAuthenticatedUser(req: ArkosRequest): Promise<User | null>;
15
- authenticate: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
15
+ authenticate: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
16
16
  handleAuthenticationControl(action: AccessAction, authenticationControl?: AuthenticationControlConfig | undefined): ArkosRequestHandler;
17
17
  }
18
18
  declare const authService: AuthService;
@@ -4,14 +4,14 @@ export declare class BaseController {
4
4
  private modelName;
5
5
  private middlewares;
6
6
  constructor(modelName: string);
7
- createOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
8
- createMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
9
- findMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
10
- findOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
11
- updateOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
12
- updateMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
13
- deleteOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
14
- deleteMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
7
+ createOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
8
+ createMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
9
+ findMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
10
+ findOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
11
+ updateOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
12
+ updateMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
13
+ deleteOne: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
14
+ deleteMany: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
15
15
  }
16
16
  export declare function getAvalibleRoutes(req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction): void;
17
- export declare const getAvailableResources: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
17
+ export declare const getAvailableResources: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
@@ -20,7 +20,7 @@ export declare class BaseService<ModelDelegate extends Record<string, any> = any
20
20
  where?: infer W;
21
21
  [x: string]: any;
22
22
  } ? W : any): Promise<number>;
23
- findMany<TOptions extends Omit<Parameters<ModelDelegate["findMany"]>[0], "where">>(filters: Parameters<ModelDelegate["findMany"]>[0] extends {
23
+ findMany<TOptions extends Omit<Parameters<ModelDelegate["findMany"]>[0], "where">>(filters?: Parameters<ModelDelegate["findMany"]>[0] extends {
24
24
  where?: infer W;
25
25
  [x: string]: any;
26
26
  } ? W : any, queryOptions?: TOptions): Promise<ModelDelegate["findMany"] extends (args: {
@@ -1,3 +1,4 @@
1
1
  import { ArkosRequest, ArkosResponse, ArkosNextFunction, ArkosRequestHandler } from "../../../types";
2
- declare const catchAsync: (fn: ArkosRequestHandler) => (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
2
+ declare const catchAsync: (fn: ArkosRequestHandler) => (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
3
+ export type CatchAsyncReturnType = ReturnType<typeof catchAsync>;
3
4
  export default catchAsync;
@@ -40,3 +40,7 @@ export declare function handleNetworkError(err: AppError): AppError;
40
40
  export declare function handleUnhandledPromiseError(err: AppError): AppError;
41
41
  export declare function handleDataTypeError(err: AppError): AppError;
42
42
  export declare function handleEmptyResultError(err: AppError): AppError;
43
+ export declare function handleNonExistingRecord(err: {
44
+ meta?: Record<string, any>;
45
+ [x: string]: any;
46
+ }): AppError;
@@ -1,10 +1,10 @@
1
1
  import { ArkosNextFunction, ArkosRequest, ArkosResponse } from "../../types";
2
2
  declare class FileUploadController {
3
3
  private middlewares;
4
- uploadFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
5
- deleteFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
6
- updateFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
7
- streamFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<unknown>;
4
+ uploadFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
5
+ deleteFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
6
+ updateFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
7
+ streamFile: (req: ArkosRequest, res: ArkosResponse, next: ArkosNextFunction) => Promise<void>;
8
8
  }
9
9
  declare const fileUploadController: FileUploadController;
10
10
  export default fileUploadController;
@@ -1,3 +1,3 @@
1
1
  import { Router } from "express";
2
2
  import { ArkosConfig } from "../../types/arkos-config";
3
- export declare function getFileUploadRouter({ fileUpload }: ArkosConfig): Promise<Router>;
3
+ export declare function getFileUploadRouter(arkosConfig: ArkosConfig): Promise<Router>;
@@ -1,4 +1,5 @@
1
- import { ArkosRequest } from "../../../../types";
1
+ import { ArkosNextFunction, ArkosRequest, ArkosResponse } from "../../../../types";
2
+ export declare function adjustRequestUrl(req: ArkosRequest, _: ArkosResponse, next: ArkosNextFunction): void;
2
3
  export declare function extractRequestInfo(req: ArkosRequest): {
3
4
  baseURL: string;
4
5
  baseRoute: string;
@@ -4,4 +4,4 @@ export declare function getOpenAPIJsonSchemasByConfigMode(swaggerConfig: ArkosCo
4
4
  export declare function getCorrectJsonSchemaName(type: string, modelName: string, suffix: "Dto" | "Schema"): string;
5
5
  export declare function kebabToHuman(kebabStr: string): string;
6
6
  export declare function getSchemaRef(schemaName: string, mode: string): string;
7
- export declare function generatePathsForModels(swaggerConfig: ArkosConfig["swagger"]): Promise<OpenAPIV3.PathsObject>;
7
+ export declare function generatePathsForModels(arkosConfig: ArkosConfig): Promise<OpenAPIV3.PathsObject>;
@@ -6,6 +6,7 @@ export default class APIFeatures {
6
6
  searchParams: any;
7
7
  searchParamsWithModifiers: any;
8
8
  filters: any;
9
+ reqFiltersSearchParam: any;
9
10
  modelName?: ModelName;
10
11
  excludedFields: string[];
11
12
  constructor(req?: Request, modelName?: ModelName);
@@ -1,4 +1,7 @@
1
1
  import { AuthConfigs } from "../../types/auth";
2
+ import { ArkosConfig } from "../../exports";
3
+ type ModeModules = Awaited<ReturnType<typeof importPrismaModelModules>>;
4
+ export declare function setModelModules(modelName: string, modules: ModeModules): void;
2
5
  export declare function getModelModules(modelName: string): importPrismaModelModulesReturnType;
3
6
  export declare function getFileModelModulesFileStructure(modelName: string): {
4
7
  core: {
@@ -66,7 +69,7 @@ export declare function getFileModelModulesFileStructure(modelName: string): {
66
69
  updatePassword?: undefined;
67
70
  };
68
71
  };
69
- export declare function processSubdir(modelName: string, type: "dtos" | "schemas", result: Record<string, any>): Promise<void>;
72
+ export declare function processSubdir(modelName: string, type: "dtos" | "schemas", result?: Record<string, any>): Promise<Record<string, any>>;
70
73
  type importPrismaModelModulesReturnType = {
71
74
  service?: any;
72
75
  controller?: any;
@@ -76,12 +79,12 @@ type importPrismaModelModulesReturnType = {
76
79
  prismaQueryOptions?: any;
77
80
  prismaQueryOptionsNew?: any;
78
81
  router?: any;
79
- dtos: Record<string, any>;
80
- schemas: Record<string, any>;
82
+ dtos?: Record<string, any>;
83
+ schemas?: Record<string, any>;
81
84
  };
82
85
  export declare function validateNamingConventions(key: string, fileName: string, result: importPrismaModelModulesReturnType): void;
83
86
  export declare function assignModuleToResult(key: string, module: any, result: importPrismaModelModulesReturnType): void;
84
- export declare function importPrismaModelModules(modelName: string): Promise<importPrismaModelModulesReturnType>;
87
+ export declare function importPrismaModelModules(modelName: string, arkosConfig: ArkosConfig): Promise<importPrismaModelModulesReturnType>;
85
88
  export type ModelFieldDefition = {
86
89
  name: string;
87
90
  type: string;
@@ -1,4 +1,4 @@
1
1
  export declare let prismaInstance: any;
2
2
  export declare function loadPrismaModule(): Promise<any>;
3
3
  export declare function getPrismaInstance(): any;
4
- export declare const checkDatabaseConnection: (req: import("../../types").ArkosRequest, res: import("../../types").ArkosResponse, next: import("../../types").ArkosNextFunction) => Promise<unknown>;
4
+ export declare const checkDatabaseConnection: (req: import("../../types").ArkosRequest, res: import("../../types").ArkosResponse, next: import("../../types").ArkosNextFunction) => Promise<void>;
@@ -0,0 +1,2 @@
1
+ export declare const safeCatchAsync: (middleware: any) => ((req: import("../../types").ArkosRequest, res: import("../../types").ArkosResponse, next: import("../../types").ArkosNextFunction) => Promise<void>) | undefined;
2
+ export declare const processMiddleware: (middleware: any) => ((req: import("../../types").ArkosRequest, res: import("../../types").ArkosResponse, next: import("../../types").ArkosNextFunction) => Promise<void>)[];
@@ -1,25 +1,70 @@
1
1
  declare class Sheu {
2
- codes: string[];
3
- constructor();
4
- _apply(text: string): string;
5
- _chain(): Sheu;
6
- red(text?: string): string | Sheu;
7
- blue(text?: string): string | Sheu;
8
- green(text?: string): string | Sheu;
9
- yellow(text?: string): string | Sheu;
10
- cyan(text?: string): string | Sheu;
11
- magenta(text?: string): string | Sheu;
12
- white(text?: string): string | Sheu;
13
- black(text?: string): string | Sheu;
14
- gray(text?: string): string | Sheu;
15
- orange(text?: string): string | Sheu;
16
- bold(text?: string): string | Sheu;
17
- apply(text: string): string;
18
- info(message?: string): string;
19
- error(message?: string): string;
20
- ready(message?: string): string;
21
- done(message?: string): string;
22
- warn(message?: string): void;
2
+ private getTimestamp;
3
+ private formatText;
4
+ private getColorCode;
5
+ red(text: string, options?: {
6
+ timestamp?: boolean | string;
7
+ bold?: boolean;
8
+ }): string;
9
+ blue(text: string, options?: {
10
+ timestamp?: boolean | string;
11
+ bold?: boolean;
12
+ }): string;
13
+ green(text: string, options?: {
14
+ timestamp?: boolean | string;
15
+ bold?: boolean;
16
+ }): string;
17
+ yellow(text: string, options?: {
18
+ timestamp?: boolean | string;
19
+ bold?: boolean;
20
+ }): string;
21
+ cyan(text: string, options?: {
22
+ timestamp?: boolean | string;
23
+ bold?: boolean;
24
+ }): string;
25
+ magenta(text: string, options?: {
26
+ timestamp?: boolean | string;
27
+ bold?: boolean;
28
+ }): string;
29
+ white(text: string, options?: {
30
+ timestamp?: boolean | string;
31
+ bold?: boolean;
32
+ }): string;
33
+ black(text: string, options?: {
34
+ timestamp?: boolean | string;
35
+ bold?: boolean;
36
+ }): string;
37
+ gray(text: string, options?: {
38
+ timestamp?: boolean | string;
39
+ bold?: boolean;
40
+ }): string;
41
+ orange(text: string, options?: {
42
+ timestamp?: boolean | string;
43
+ bold?: boolean;
44
+ }): string;
45
+ bold(text: string, options?: {
46
+ timestamp?: boolean | string;
47
+ }): string;
48
+ info(message: string, options?: {
49
+ timestamp?: boolean | string;
50
+ bold?: boolean;
51
+ }): string;
52
+ error(message: string, options?: {
53
+ timestamp?: boolean | string;
54
+ bold?: boolean;
55
+ }): string;
56
+ ready(message: string, options?: {
57
+ timestamp?: boolean | string;
58
+ bold?: boolean;
59
+ }): string;
60
+ done(message: string, options?: {
61
+ timestamp?: boolean | string;
62
+ bold?: boolean;
63
+ }): string;
64
+ warn(message: string, options?: {
65
+ timestamp?: boolean | string;
66
+ bold?: boolean;
67
+ }): string;
23
68
  }
24
69
  declare const sheu: Sheu;
25
70
  export default sheu;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arkos",
3
- "version": "1.2.29-test",
3
+ "version": "1.2.31-test",
4
4
  "description": "The Express & Prisma Framework For RESTful API",
5
5
  "main": "dist/cjs/exports/index.js",
6
6
  "module": "dist/esm/exports/index.js",
@@ -138,7 +138,7 @@
138
138
  "@types/html-to-text": "^9.0.4",
139
139
  "@types/jest": "^29.5.14",
140
140
  "@types/jsonwebtoken": "^9.0.9",
141
- "@types/multer": "^1.4.12",
141
+ "@types/multer": "2.0.0",
142
142
  "@types/node": "^22.13.13",
143
143
  "@types/nodemailer": "^6.4.17",
144
144
  "@types/pluralize": "^0.0.33",
@@ -152,7 +152,6 @@
152
152
  "openapi-types": "^12.1.3",
153
153
  "prisma": "^6.4.1",
154
154
  "ts-jest": "^29.3.1",
155
- "ts-node": "^10.9.2",
156
155
  "typescript": "^5.8.2"
157
156
  },
158
157
  "dependencies": {